{"version":3,"sources":["../webpack/bootstrap","components/Meta/ico/apple-touch-icon-144x144-precomposed.png","components/Meta/ico/apple-touch-icon-114x114-precomposed.png","components/Meta/ico/apple-touch-icon-72x72-precomposed.png","components/Meta/ico/apple-touch-icon-57x57-precomposed.png","components/Meta/ico/favicon.png","store/modules/epi.ts","api/epiApi.ts","store/modules/model.ts","store/index.ts","components/Loader/Loader.tsx","components/Text/Text.tsx","components/Text/index.ts","theme/icons/icon-arrow.svg","theme/icons/icon-chevron.svg","theme/icons/icon-chevron-solid.svg","theme/icons/icon-decline-scale.svg","theme/icons/icon-glasses.svg","theme/icons/icon-marker.svg","theme/icons/icon-menu.svg","theme/icons/icon-plus.svg","theme/icons/icon-search.svg","theme/icons/icon-snowflake.svg","theme/icons/icon-angle.svg","theme/icons/icon-border-outer.svg","theme/icons/icon-calendar.svg","theme/icons/icon-chevrons.svg","theme/icons/icon-circle-exclamation.svg","theme/icons/icon-compass.svg","theme/icons/icon-crosshairs.svg","theme/icons/icon-minus.svg","theme/icons/icon-mountain.svg","theme/icons/icon-remove.svg","theme/icons/icon-snowboarding.svg","theme/icons/icon-suitcase.svg","theme/icons/icon-bars.svg","theme/icons/icon-reset.svg","theme/icons/icon-warning.svg","theme/icons/icon-bin.svg","theme/icons/icon-sv-flag.svg","theme/icons/icon-en-flag.svg","theme/icons/icon-info.svg","theme/icons/icon-list.svg","theme/icons/icon-map.svg","theme/icons/icon-circle-info.svg","theme/icons/index.ts","components/Icon/Icon.tsx","components/GoTopButton/GoTopButton.tsx","components/Meta/Meta.tsx","components/Link/Link.tsx","utils/helper-utils.tsx","components/Image/Image.tsx","components/Image/index.ts","hooks/useImageTitle.ts","components/PageFooter/FooterColumn.tsx","components/PageFooter/FooterMountain.tsx","components/PageFooter/PageFooter.tsx","components/LangButton/LangButton.tsx","components/MenuUl/MenuUl.tsx","components/PageHeader/HeaderLogo.tsx","components/Menu/Menu.tsx","components/PageHeader/PageHeader.tsx","layouts/BaseLayout/BaseLayout.tsx","components/BannerImage/BannerImage.tsx","components/Breadcrumb/Breadcrumb.tsx","components/Grid/Grid.tsx","utils/smoothScrollToTarget.tsx","hooks/useCookie.ts","components/EpiForms/EpiForms.dependencies.ts","components/EpiForms/EpiForms.actions.ts","components/Form/hooks/useFieldValidation.ts","components/Form/context/Form.context.tsx","components/Form/fields/Field.tsx","components/Form/fields/TextArea.tsx","components/Form/fields/Checkbox.tsx","components/Form/fields/RadioButton.tsx","components/Form/fields/Select.tsx","components/Form/fields/Multiselect.tsx","components/Form/fields/Button.tsx","components/Form/Labels.tsx","components/Form/fields/Fieldset.tsx","components/Button/Button.tsx","components/EpiForms/FormButtons.tsx","components/EpiForms/FormStep.tsx","components/Form/hooks/useChildClones.ts","components/Form/Form.tsx","components/Form/FormComponent.tsx","hooks/useFormRenderer.tsx","hooks/usePrevious.ts","hooks/useTransitionToggle.tsx","components/EpiForms/EpiForms.helpers.ts","components/EpiForms/EpiForms.submit.ts","components/EpiForms/FormMessage.tsx","components/EpiForms/EpiForms.tsx","components/EpiForms/index.tsx","hooks/useForceUpdate.ts","components/Puff/Puff.tsx","components/Puff/PuffWithImage.tsx","components/RichText/RichText.tsx","components/LinkWithImageBlock/LinkWithImageBlock.tsx","components/RiskTable/DesktopRiskTable.tsx","components/Accordion/Accordion.tsx","components/Accordion/AccordionItem.tsx","components/RiskTable/MobileRiskTable.tsx","components/RiskTable/RiskTable.tsx","components/EpiFragments/EpiFragments.tsx","components/GlossaryContent/GlossaryContent.tsx","components/GlossaryLetter/GlossaryLetter.tsx","pages/GlossaryPage/GlossaryPage.tsx","pages/NewsListPage/NewsListPage.tsx","components/Card/Card.tsx","pages/NavigationPage/NavigationPage.tsx","components/NoContent/NoContent.tsx","components/DirectionMeter/DirectionMeter.tsx","components/Legend/Legend.tsx","components/Map/Controls/CustomControls/BaseCustomControl.tsx","components/Map/MapContext.tsx","components/Map/Controls/CustomControls/CenterUserControl.tsx","components/Map/Controls/CustomControls/CustomControls.tsx","components/Map/Controls/CustomControls/DecliningScaleControl.tsx","components/Map/Controls/CustomControls/ForecastAreasControl.tsx","components/Map/Controls/CustomControls/LegendControl.tsx","components/Map/Controls/CustomControls/ReportedAvalanchesControl.tsx","components/Map/Controls/CustomControls/SlopeControl.tsx","components/Map/Controls/CustomControls/ZoomControls.tsx","components/Map/Controls/CustomControls/ResetDirectionMeterControl.tsx","components/Map/Layers/Layers.tsx","components/Map/Layers/TileLayer.tsx","components/Map/Layers/DecliningScaleLayer.tsx","components/Map/Layers/ForecastLayer.tsx","components/Map/Layers/ForecastPolygonLayer.tsx","components/Map/Layers/ReportedAvalancheLayer.tsx","components/Map/Layers/SlopeDirectionLayer.tsx","components/Map/fullScreenEvents.ts","utils/matomoUtils.ts","components/Map/MapContainer.tsx","api/olApi.ts","components/Map/Layers/ExtraPolygonLayer.tsx","components/Map/Map.tsx","components/MoreInformationBlock/MoreInformationBlock.tsx","components/AltitudeMeter/AltitudeMeter.tsx","pages/AreaPage/components/Problem.tsx","components/DatePickerInput/DatePickerInput.tsx","components/Forecast/Forecast.tsx","pages/AreaPage/components/AreaHeader.tsx","components/DesktopAreaPage/DesktopAreaPage.tsx","components/MobileAreaPage/MobileAreaPage.tsx","pages/AreaPage/AreaPage.tsx","pages/ErrorPage404/ErrorPage404.tsx","components/ForecastListCard/ForecastListCard.tsx","pages/ForecastListPage/ForecastListPage.tsx","pages/FormContainerPage/FormContainerPage.tsx","components/EpiContentArea/EpiContentArea.tsx","pages/PreviewBlockPage/PreviewBlockPage.tsx","pages/StandardPage/StandardPage.tsx","pages/NewsPage/NewsPage.tsx","components/NewsBlock/NewsBlock.tsx","components/AreaStatusLink/AreaStatusLink.tsx","components/AreaList/AreaList.tsx","components/DesktopStartPage/DesktopStartPage.tsx","components/TabButton/TabButton.tsx","components/MobileStartPage/MobileStartPage.tsx","components/CardLink/CardLink.tsx","components/CardLinkList/CardLinkList.tsx","pages/index.tsx","pages/StartPage/StartPage.tsx","pages/OutsideAreaPage/OutsideAreaPage.tsx","routeHandler.tsx","App.tsx","hooks/useTabFocus.ts","index.tsx","store/modules/react.ts","types/epi.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","createSlice","initialState","reducers","updateEpi","state","action","_action$payload","beta","_objectSpread","payload","actions","error","loading","model","content","undefined","isOpen","getModelStart","getModelSuccess","getModelFailed","updateContent","openMenu","closeMenu","toogleMenu","fetchPage","routeApiUrl","route","async","dispatch","apiUrl","concat","indexOf","index","query","substring","endsWith","url","axios","getEpiPage","err","toString","selectMenuIsOpen","selectModel","selectHeader","header","selectBreadcrumbs","breadcrumbs","selectLocalization","localization","selectContent","selectFooter","footer","selectMetaData","metadata","rootReducer","combineReducers","epi","epiReducer","react","reactReducer","modelReducer","preloadedState","Loader","_ref","className","variant","htmlAttributes","_objectWithoutProperties","React","createElement","assign","clsx","tagMapper","h1","h2","h3","h4","h5","h6","preamble","span","div","screenReader","typographyClasses","typographyMarginClasses","Text","children","text","styleAs","as","margin","Component","_extends","e","arguments","stroke","strokeWidth","fill","fillRule","transform","SvgIconArrow","svgRef","title","props","includes","_objectWithoutPropertiesLoose","getOwnPropertySymbols","propertyIsEnumerable","width","height","viewBox","ref","ForwardRef","forwardRef","id","SvgIconChevron","SvgIconChevronSolid","y","rx","x","strokeLinecap","strokeLinejoin","SvgIconDeclineScale","xlinkHref","SvgIconGlasses","role","SvgIconMarker","x1","y1","x2","y2","SvgIconMenu","SvgIconPlus","SvgIconSearch","SvgIconSnowflake","SvgIconAngle","SvgIconBorderOuter","SvgIconCalendar","SvgIconChevrons","SvgIconCircleExclamation","SvgIconCompass","SvgIconCrosshairs","SvgIconMinus","SvgIconMountain","SvgIconRemove","SvgIconSnowboarding","SvgIconSuitcase","SvgIconBars","SvgIconReset","SvgIconWarning","SvgIconBin","SvgIconSvFlag","_ref5","SvgIconEnFlag","SvgIconInfo","SvgIconList","SvgIconMap","SvgIconCircleInfo","chevron","chevronSolid","arrow","plus","search","menu","glasses","marker","snowflake","declineScale","angle","borderOuter","calendar","chevrons","circleExclamation","compass","crosshairs","minus","mountain","remove","snowboarding","suitcase","bars","reset","iconWarning","bin","svFlag","enFlag","info","list","map","cricleInfo","getSize","size","getRotation","direction","Icon","icon","color","animate","expanded","IconSvg","icons","aria-hidden","GoTopButton","footerHeight","fh","showGoTop","setShowGoTop","useState","endOfThePage","setEndOfThePage","isTablet","useMediaQuery","buttonName","useLocation","pathname","startsWith","handleButtonState","window","scrollY","translateYcoord","totalPageHeight","document","body","offsetHeight","scrollPoint","innerHeight","handleScrollUp","scrollTo","left","top","behavior","useEffect","addEventListener","removeEventListener","style","transition","display","onClick","Meta","_metaData$openGraph","_metaData$openGraph2","_metaData$openGraph3","_metaData$openGraph4","_metaData$openGraph5","_metaData$openGraph6","_metaData$twitter","_metaData$twitter2","_metaData$twitter3","_metaData$twitter4","keywords","metaData","useSelector","mappedMetaData","description","ogSiteName","openGraph","siteName","ogType","type","ogTitle","ogUrl","ogDescription","ogImage","image","twitterCard","twitter","card","twitterTitle","twitterDescription","twitterImage","Helmet","ogImages","img","renderOgImage","http-equiv","rel","href","sizes","favicon144","favicon114","favicon72","favicon57","favicon","Link","to","fullReload","toLowerCase","RouterLink","translate","fallback","translations","Image","src","alt","figCaption","figClassName","link","decoding","fetchpriority","srcSet","srcSetSizes","photographer","illustrator","agency","imgTitle","useImageTitle","photographerLabel","agencyLabel","illustratorLabel","parts","labels","sb","join","Fragment","target","getModelType","items","_items$url","_items$url2","modelType","newTab","aria-label","aria-describedby","FooterColumn","FooterMountain","aria-labelledby","version","xmlns","enableBackground","xmlSpace","xmlnsXlink","PageFooter","lavinImage","columns","logo","copyright","logoText","fnFooterHeight","targetRef","useRef","current","col","LangButton","_item$url","_item$url2","item","setMenuIsOpen","isMobile","showTooltip","setShowTooltip","lang","onMouseEnter","onMouseLeave","onFocus","onBlur","MenuUl","menuItems","level","setLastChildRef","tabIndex","createRef","MenuLi","isFirstLi","setLastRef","_ref2","child","setChild","activeChildren","setActiveChildren","optSelected","setOptSelected","areaExpanded","setAreaExpanded","active","setActiveChildrens","childLinks","links","handleSetActiveChildren","preventDefault","prev","aria-expanded","HeaderLogo","linkTo","subtitle","isLogoInMenu","ariaLabel","isInMenu","preserveAspectRatio","strokeMiterlimit","points","Menu","_menu$closeText","_menu$closeText2","langBtnStyle","logoLink","logoAriaLabel","logoSubtitle","logoRef","headerRef","lastChildRef","focusOnLastEle","lastChildObj","setLastChildObj","innerHTML","head","appendChild","focus","getLastMenuItem","lastMenuItem","setLastLiRef","tagName","onKeyDown","event","stopPropagation","closeText","_document$activeEleme","_document$activeEleme2","shiftKey","activeElement","_document$activeEleme3","textContent","onKeyUp","menuBtnClass","PageHeader","pageContent","location","menuIsOpen","maxWidth","useDispatch","epiNavigator","querySelector","epiNavigatorDropDownCMSEdit","prefix","pos","lastIndexOf","BaseLayout","setHeight","skipToContent","setMarginsAndWidth","val","BannerImage","heading","Breadcrumb","nrOfBreadcrumbs","breadcrumsToRender","filter","crumb","breadcrumb","isActive","Grid","padding","renderChildren","Children","cloneElement","getWidthClass","Cell","desktop","tablet","smoothScrollToTarget","_event$target$getAttr","targetId","getAttribute","targetElement","getElementById","targetPosition","getBoundingClientRect","checkFieldConditions","dependency","values","conditions","forEach","field","currentFieldValue","fieldName","expectedValue","fieldValue","operator","console","log","checkIfAnyConditionIsTrue","checkIfAllConditionsAreTrue","performAction","checkOperator","dependencyField","compareValue","useFieldValidation","fieldRef","fieldProps","required","pattern","label","validationMessage","patternMessage","single","fieldsetHasOneCheckedInput","allInputs","querySelectorAll","hasOneValidInput","checked","fieldIsNotValid","checkValidity","requiredFieldIsNotFilledIn","fieldDoesNotMatchPattern","match","singleInputIsNotChecked","message","classList","add","removeAttribute","hideFieldError","setAttribute","FormReducer","validationMessageHasNotChanged","validationMessages","invalidFields","currentInvalidFields","updatedFields","updatedMessages","FormContext","createContext","FormProvider","Provider","useReducer","useFormValue","useContext","Field","placeholder","onFieldChange","defaultValue","autoSubmit","showError","setFocus","visibleFields","noValidate","describedby","resetForm","allProps","setValue","valid","setValid","touched","setTouched","validateField","showFieldError","validatedField","fieldIsValid","describedByAttribute","aria-invalid","onChange","TextArea","disabled","Checkbox","setChecked","shouldBeChecked","Array","isArray","RadioButton","defaultChecked","Select","options","selectedOption","selectedIndex","caption","Multiselect","isInvalid","Fieldset","opt","htmlFor","Button","propsToTransfer","Label","ErrorSpan","fieldId","invalid","aria-live","hidden","partOfVisibleFields","ButtonType","displayWidth","iconType","MdClose","FaChevronRight","FaChevronLeft","getIcon","NextButton","nextId","isExpanded","aria-controls","PreviousButton","previousIndex","previousId","onPrevious","StandardButton","currentStep","FormStep","step","formId","nrOfSteps","stepId","isFirstStep","isLastStep","nextIndex","useChildClones","formFieldNameCounter","initialValues","renderedChildren","isValidElement","element","isValidFormElement","getUniqueKey","Math","random","substr","Form","method","enctype","onSubmit","sendDataType","defaultSubmit","multiStep","getStepFields","formKey","setFormKey","setShowError","setVisibleFields","formRef","encType","FormData","messages","updatedInvalidFields","formData","stepIndex","currentStepFields","some","keys","reduce","obj","valueIsArray","newValue","FormComponent","useFormRenderer","fields","dependencies","isLoading","fieldActionExists","renderLabel","renderFieldError","renderField","min","max","failedMessage","fieldActions","buttonText","checkFieldActions","allActionOutcomes","thenAction","operatorResult","whenValue","attribute","renderFieldset","_ref3","FieldComponent","renderSingleInput","_ref4","fieldLabel","renderAsFieldset","singleCheckboxOrRadio","checkDependency","conditionsFulFilled","dangerouslySetInnerHTML","__html","usePrevious","currentStepNode","getHiddenFieldValues","getSelectValue","getCheckboxAndRadioValue","getUploadedFiles","getFieldValue","hiddenFieldHolder","append","selected","files","handleResponse","response","nextStep","redirectUrl","IsSuccess","handleServerValidationError","AdditionalParams","__FormField","submissionId","Data","SubmissionId","Message","RedirectUrl","successMessage","fieldErrors","InvalidElement","InvalidElementLabel","ValidationMessage","serverValidationError","ErrorSummary","FormMessage","confirmationMessage","hasMessageToShow","messageType","reducer","EpiForms","encodingType","steps","_properties","forceUpdate","useForceUpdate","renderFormElement","showForm","formValues","getInitialFormValues","el","predefinedValue","messageHolderRef","prevInvalidFields","prevStep","successfullySubmitted","formMessageElement","currentValidationMessages","submitForm","form","set","fetch","cache","headers","credentials","redirect","referrer","then","ok","Error","statusText","json","catch","alert","Puff","linkText","block","PuffWithImage","RichText","history","useHistory","nodeRef","handleLinkClick","hasDownloadAttribute","hasAttribute","charAt","nodeRefRef","a","LinkWithImageBlock","DesktopRiskTable","tableHeadTexts","tableRows","tableFootNotes","isEnglish","scaleImage","riskLevel","recommendation","scope","row","_row$cells$","borderTop","cells","backgroundColor","backgroundImage","textColor","footNoteId","split","numberPart","textPart","background","Accordion","AccordionItem","onToggle","open","isRiskScale","Heading","detailsRef","node","handleToggle","MobileRiskTable","probability","sizeAndSpread","riskLevelText","recommendationText","probabilityText","sizeAndSpreadText","pos1","pos2","pos3","pos4","text1","text2","text3","text4","cell","cellIndex","RiskTable","tab","minWidth","getHeadingLevel","getFragment","fragment","linkWithImage","raw","puff","imgData","alignment","tableData","formContainer","listData","iconData","EpiFragments","fragments","GlossaryContent","letter","glossaryContent","uniqueKey","glossaryItem","GlossaryLetter","alphabet","GlossaryPage","bannerImage","glossaryTermModels","LETTERS","Set","glossaryModel","isValidLetter","validEntries","has","searcheableGlossary","setSearcheableGlossary","searchTerm","setSearchTerm","noMatch","setNoMatch","isActiveFocus","setIsActiveFocus","ariaLabelSearch","placeHolder","letterLink","searchGlossaryMatch","updatedSearchableGlossary","currentKey","glossaryValue","foundTerms","termObj","setTimeout","filteredTxt","trimStart","handleReset","NewsListPage","pages","page","date","Card","NavigationPage","NoContent","AiOutlineExclamationCircle","DirectionMeter","_westPanel$label","_southPanel$label","_eastPanel$label","_northPanel$label","eastPanel","northPanel","northEastPanel","northWestPanel","southPanel","southEastPanel","southWestPanel","westPanel","isInteractive","onPanelClicked","executePanelCallback","panel","data-type","cx","cy","ry","clipPath","data-active-d-panel","opacity","textAnchor","Legend","isVisible","linksHeading","hide","dialogRef","closeButtonRef","lastLinkRef","firstLinkRef","aria-modal","_closeButtonRef$curre","_lastLinkRef$current","BaseCustomControl","handleControl","labelPosition","controlTitle","replace","toLocaleLowerCase","iconName","getButtonIcon","MapContext","MapProvider","projection","CenterUserControl","handleClick","myPositionMarkerIconUrl","geolocation","Geolocation","tracking","getView","getProjection","trackingOptions","enableHighAccuracy","alreadyShowingPosition","on","position","getPosition","geometry","getAccuracyGeometry","fit","setZoom","Overlay","stopEvent","addOverlay","iconFeature","ol","Point","setStyle","Style","anchor","anchorXUnits","IconAnchorUnits","FRACTION","anchorYUnits","PIXELS","layerSource","SourceVector","addFeatures","vectorLayer","VectorLayer","source","addLayer","code","CustomControls","DecliningScaleControl","ForecastAreasControl","LegendControl","ReportedAvalanchesControl","SlopeControl","ZoomControl","zoomInLabel","zoomOutLabel","view","currentZoom","getZoom","zoom","duration","easing","linear","ResetDirectionMeterControl","Layers","TileLayer","tileLayer","OLTileLayer","removeLayer","DecliningScaleLayer","layer","layerTile","setLayerTile","paramObjectList","params","parameter","mergedParamObjectList","decliningGradeSource","TileWMS","tempLayerTile","Tile","visible","setVisible","ForecastLayer","areaForecasts","zoomLevel","forecastRefs","initForecastRefs","useCallback","_forecastRefs$current","isMobileOrTablet","isSmallMobile","existingCoordinates","adjustYCoordinate","newCoordinate","newX","newY","getCoordinates","adjustmentFactor","minDistance","getMinYDistance","ranges","mobile","distance","selectedRanges","range","existingPoint","abs","adjustedPoint","addHoverEffect","dragging","pixel","getEventPixel","originalEvent","hit","hasFeatureAtPixel","getTargetElement","cursor","setZoomDependentPosition","_map$getView$getZoom","area","areaIndex","originalCoordinates","coordinates","overlay","getOverlayById","setPosition","Vector","_adjustYCoordinate","markerEl","offset","circleFeature","Feature","Circle","radius","zIndex","un","boxShadow","ForecastPolygonLayer","areaId","viewparams","forecastPolygonSource","tempTile","ReportedAvalancheLayer","_avalanche$icon","_avalanche$icon2","avalanche","handleOnClick","onSetupComplete","isSetupComplete","markerOverlay","setMarkerOverlay","setupReportedAvalancheMarkers","convertedCoordinates","toggleMarkerOverlay","removeOverlay","SlopeDirectionLayer","activeDirections","setLayerSource","newSlopeAspectSource","directions","updateParams","ENV","_d$label","setSource","mOverExpand","fsHtmlEle","mOutCompress","pushMatomoEvent","eventData","_mtm","fslabel","fsLabelActive","MapContainer","centerCoordinates","maxZoomLevel","minZoomLevel","tileUrl","fullscreen","defaultFullscreen","currentPage","heightDevice","mapRef","setMap","fullScreenCss","handleFullScreenToggle","fullscreenElement","event_category","event_action","event_name","_mapRef$current","controls","controlDefaults","attribution","rotate","extend","FullScreen","labelActive","tipLabel","mapObj","Map","View","center","minZoom","maxZoom","extent","transformExtent","layers","interactions","interactionDefaults","mouseWheelZoom","dragPan","doubleClickZoom","keyboard","maxTilesLoading","status","WMTSCapabilities","read","fetchWMTSCapabilities","wmtsCaps","opts","optionsFromCapabilities","matrixSet","WMTS","setTarget","setView","handleFullscreenChange","ExtraPolygonLayer","areaQuery","_avalanchePanel$data","_avalanchePanel$data$","_avalanchePanel$data2","_avalanchePanel$data3","_avalanchePanel$data4","_avalanchePanel$data5","_avalanchePanel$data6","_avalanchePanel$data7","areas","sectionLabel","legend","reportedAvalanches","mapClassName","onCLickBackToArea","isAreaPage","isOutsideAreaPage","decliningScale","forecastArea","legendMeta","myPosition","reportedAvalanchesMeta","slopeDirections","zoomIn","zoomOut","resetDirections","backToArea","tempRef","setMapRef","setupCount","setSetupCount","setIsSetupComplete","handleSetupComplete","prevCount","legendIsVisible","setLegendVisibility","avalanchePanel","setAvalanchePanel","visibility","layerState","setLayers","forecast","slopeDirection","setActiveDirections","handleLayerToggle","mtmEvent","HandleMatomo","resetDirectionMeter","layerStates","prevLayerStates","eventName","handleLegendToggle","prevState","openAvalanchePanel","setDefaults","setHeightDevice","visualViewport","documentElement","clientHeight","imageSmoothing","trigger","character","prevActiveDirections","updateActiveDirections","MoreInformationBlock","showInfoIcon","linkSize","AltitudeMeter","altitudeMeterAboveTreeline","altitudeMeterBelowTreeline","altitudeMeterTreeline","amIInAccordion","textFontSize","data-controller","fillOpacity","fontSize","Problem","altitude","information","floor","registerLocale","sv","enUS","CustomInput","seePreviousForecastText","DatePickerInput","publishedDate","currentDate","setCurrentDate","dayjs","toDate","getDateQuery","day","subtract","format","CustomHeader","decreaseMonth","increaseMonth","toLocaleString","month","year","ReactDatePicker","locale","closeOnScroll","allowSameDay","dateFormat","customInput","keyboardSelectedDay","anchorTag","click","onInputClick","selectedDay","firstDay","onCalendarClose","handleCalendarClose","renderDayContents","popperPlacement","popperClassName","renderCustomHeader","Forecast","forecastDateText","selectedDate","trend","avalancheProblem","assessmentHeading","assessmentContent","snowInfo","weatherInfo","trendLabel","trendImage","trendDate","trendContent","trendHeading","handleAccordionToggle","problems","symbol","button","AreaHeader","areaName","historical","previewControls","avalancheHazardText","avalancheScaleLink","validFrom","validFromPrefix","validToPrefix","validTo","riskImage","riskLabel","isHistorical","previewButton","previousButton","nextButton","DesktopAreaPage","moreInformationBlock","skipMap","MobileAreaPage","mobileMapLabel","activeTab","setActiveTab","handleTapTab","AreaPage","todayText","datepicker","missingForecast","ErrorPage404","ForecastListCard","_parsedDate","parsedDate","severity","issuedOn","dateStr","reversedDate","dateParts","Date","dateTime","toISOString","ForecastListPage","FormContainerPage","renderContent","EpiContentArea","PreviewBlockPage","contentArea","StandardPage","toc","renderedFragments","setRenderedFragments","tocItems","setTocItems","activeSection","setActiveSection","getFragments","mergingFragments","mergedFragments","fragmentsSorted","processFragments","getAllHeadingsFragment","updateActiveSection","headings","currentActiveSection","headingElement","tocLink","isSelected","NewsPage","publishedLabel","contactForMoreInformationLabel","contactPersons","person","telephoneNumbers","telephoneLabel","number","array","emailAddress","emailLabel","NewsBlock","newsBlocks","AreaStatusLink","riskText","AreaList","validUntilText","validToDate","areaPageLinks","DesktopStartPage","areaPageLinksArea","TabButton","ariaControls","MobileStartPage","mobileAreasLabel","tabsConfig","iconClass","swither","setSwither","setSelectedIndex","tabRefs","setTabIndex","count","ArrowRight","nextTab","ArrowLeft","prevTab","Home","firstTab","End","lastTab","scrollHandler","scrollIntoView","inline","handleTabChange","aria-selected","CardLink","CardLinkList","puffs","Pages","LavinStartPage","puffsHeading","currentNews","announcement","LavinNewsListPageModel","LavinNavigationPageModel","LavinStandardPageModel","LavinNewsPageModel","LavinOutsideArea","textNextToMap","bodyText","hasSmallHeight","setHasSmallHeight","renderedBodyFragments","setRenderedBodyFragments","renderedTopFragments","setRenderedTopFragments","_window","mergedBodyFragments","mergedTopFragments","RouteHandler","siteRoute","useParams","ariaLiveRef","emptyFocusDivRef","pageRef","renderingState","selectReact","loaderVisible","setLoaderVisible","Page","PagesMapper","errorPageContent","RenderingStates","ClientSide","updateRenderingState","loaderTimeout","clearTimeout","outline","routePatterns","App","Router","getLocation","keyCode","which","contains","context","Switch","routePattern","Route","path","renderMethod","ReactDOM","render","reactInitialState","__model","hydrate","Hydrate","containerId","store","configureStore","Application","BrowserRouter","clientOnly","siteBaseUrl","_process","process","_process$env","PUBLIC_URL","_process2","_process2$env","apiEditUrl"],"mappings":"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","file":"client/client-main.ddd20c5a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/assets/\";\n\n \tvar jsonpArray = this[\"webpackJsonplavinprognoser-frontend\"] = this[\"webpackJsonplavinprognoser-frontend\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([287,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAYAAACP3YV9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAADsQAAA7EAZUrDhsAABgwSURBVHhe7V0HmBRVtj7d1XFmekiSDWQBBwWUYFYM8AQVAz4UVldc3V3MCQxvXVQMoCArBnSfqz4DqKCC+BR1WdEFEZAMkkGSgJJmuqdTVfWe/9zqYYABhpmemeq2f76epure7q6qv068595yJBiURdrDab1nkebIEpkhyBKZIfhNEGnu3Gb9L3OR8UQmwkEKPXkjJeJRa09mIuOJjLw/huJLZ1N81qfWnsxERhOpb11H0S/Hk7NuAwpPHCvSmanIaCKjH75EFGOV6vZSYscmin76htWSechYIo0NP5I+ZxqR10cOh0PIjH7yd7aVMatHZiFjiQy/9RQlYhEmUZ2iw6mRWRyk8NtPyXamISOJ1FctoPiSmSyFPmaQpdHKQjq8fopNn0jGzp9lO5OQkURGJoxiCXQplcokJgydQKXDyafLDk/0I7adGYaMI1JfOIPi878mh8cr24l4hLTjWpPDNIVM8udS7OtJZKxfKu2ZgowiMqHrFOa40eHPs7bj5GzUjAJPfkSUX4c9IF3ZzHicwuNHS59MQUYRGfvmQ9LXLmHb6GGNyvKXMMl31e18lk7yXvw7dn6iSio9PtKXzCJ9+Rz5XCYgo4iMfjyOHJpb2cZ4lLQWJ5PnrEulzXvJ9aQ1PoF1b1y1M6Xhd0ZIWyYgY4iMTH2NjG0biVxuFkRT9vmvf0DeAQdLof+6IZSIBJVUclxp/DiX4vO+kvZ0R2YQySo0OvlVcrBKFWnj+NHV+TxynXiq1UHB3b0XuVoUsFTGCDJJ3hyKTHpBbGm6IyOIjHz2JpkcGzo0l0hjwoiTr9+dVuv+8PW7S5wdJZUeMlYvoti/P5G2dEbaE2nu3kHRD8aSIyegdrA0es+8lFzNT1LbB8DdrSe52ndhgxpW0uv1UfS90RKmpDPSnsjo5FcoEdzDZ6Kxp8q2keNH37X3Wa1lw3vtvdyPPVvYUnaODNwMU16zWtMTaU2ksX0jxb6dzMz41Y5ohNxn9uHYkb3Tw8DVtgu5TzmHpZelkrcd7CBFJ49j8VZOUjoirYmMjB9FiaI9khAn0yBHXm0VNx4BIM93nZJaxJslCfXxz8i+dETaEmnu2EzxmeykWNKYCIfI0+dG0uo3le0jQWvSkjwXXSe2EnD4cik27Z20re9JWyIjE55FFlwclgRLo7NWPfL2ut5qLR/Eg4Wny7YVCXXcDBEMRqch0pJIfe1SFTIkpTFSTN7eg8iZ9FzLCWetuuS5oB8lLKnE98XZ5hqbVqvtNEJaEhl++2k+ck1Jo6GTs14jto23Wq1HB/81d5GzbkP5HuRkE9FiirybfrYy7YhESs1Y+YOk2CSo1zn4v+LP0lYROPJZJV88oMRWIqEeX/A16Wk2zJV2REYmjIarqYJ5PUZa01bKaakEYFsdxzS2hrkkece/85y8pwvSisjYnGlkbFguqTVIYyIWI1//uyU1VxkgK+S/7n5KFBeqbUjl99NkqCtdkFZERjAY7PGrhHc8Sq6C7uTuerG0VRaec64grXELydMCDn8uRSY+nzZJgrQhMvbNx1LiiCyMSGMkRL4rB6vGFMHX/x5W16jv4V9gqddX/ECxWVOtVnsjLYgEaZFJY0VKBJBGpNlOPkttpwiec/qS1ryA75oY20q+NKyyw++lh61MCyIjU/5Oxtb1atAYJRwcevgHDbNaUwvfwCGsV/nmgUrl3zO3b6LI1H9YrfaF7YlEtiX2z/fEARHbiEHjTueRq/Up0p5quAtOV5Iuxc0OGaxGCUmy6sCusD2RSJlhzFEGjTFMxRfWf03Zg8apgm/AEJmGJ6k7SOXObRT95H+tVnvC1kSaRXtkvgYqxFk8iMLF5D3vKtKOP9HqUTXA93vO7yfDYhKz5gZYKl8mc9d2q4f9YGsiox++WFKLisQ4+fzkTbGneiggdYcsj0qoa2QG91KEVaxdYVsijW0/iW1EgZSEGywd3nOvIGfdRqpDFcPZ8Dhyn3EJ6/aw/L6DjyP+7cek83HZEbYlMvLOCAk7HJoaNMbIhm/gg1Zr9cDf/15y1KnPd5WhhrmKgxR943Gr1V6wJZEIxOMLZihpRLgRi5Knz6B9cWQ1wVmnAXn/6wbWBiG1A6m7H6aT8dMKtW0j2JLI8IRR+xLYGKaq35S8vX5ntVYvvJfcQM56jWWYS46HNUQYiXubwXZEIimOGVUYpgKgzrx9/0jOvNqyXd2AbfRddZuoeQGkct5XpC+frbZtAtsRGX79MZlNheA/gWGqFgXkueha1VhDwHil1riZVKQ78I9jy8jbI8UJsgtsRWRsLt/py74XaRRPlW2jn6URF6+m4WWp5BiIj4uPDAn19csoPtM+S77YisgIZhLzRSoZNG7EIcDZl1utNQskCLRjW8t0A0mo880VmfS8arQBbENkdNrbZK5ZpKRR8poJ8v/BPq4+dIL/hoet1J2SSmPjKor+6wPVoYZhDyJZZUU+GrdPGmWYqiu5O55rdbAHXAWnk+fUHiqhzttIHUYm2mM2ly2IjE57hxI7t7Jrb81tZGK9V7NNsiG8V9/ONiAkNhyJfPPn9RT7aoJqrEHUOJG4m8Mf/E3cepFGvtvdbI/c7btZPewFV+uO5Orak4/TqlDPCbCtfJHMwt2yXVOocSJlNao9v+wroGIykaTWV8wjc9tPUnxsN/gHDhW1KtqDjzWx9xeKTn7Zaq0Z1Oia5hgWCj50pQxXOVwWkXw4WLFKpgPwxUKuE7Gkq+Up5OpwOjmbtFT51xpG6MUhFJ8xiciXK7lgBztpgdGfkbNOQ6tH9aJGiQyNvUcmzjiwdIqTiXQyeVabxGs4NNz1rH4lGOdtR72GpJ3QnlztTiWtbRdytTpZsi/VDWPHJgre34cSyYR6tFgq8XJurZkq9RolMj5rKsWXzyFj7RIyt2+UKXICH0siq6wDIYeKcUlD5xe/s1OEGcfO+seS66TTydW+K2nN28s2si9VjcgHz0ve1Zmbr44tuIfyx80kZ8PjrR7VhxolMgkMGidYzRpb1pK+eiHFvniXEuGiEjJlXgZDtuEQ8SGXHDTIBLlY9RHLlvlzZX1WVMNpbU8jjSVWa9qaVV/qiUX+tXDw2ZKBklKUcEgm2ubeOcbqUX2wBZEHYs/1HfgqgThWWUyQo04DUa/mtg0Soggp/I6RCMmylCY3SSzqU6GOPV5yHtNEyjdArKvDGeRq1l5+JxWIsMcdfv9v5PTnKankGDjv8ffFu61O2I7I0CsPU/yfE2TiqcrwmFRr3HfkyKtFxi9bZAJPfNl3ZK5bJlUEidBeRabLI8Qy+7zNxCbJxekl1TFsLV9orEfnOrY1uU45m21tF9KancRkN1YHUAEU/vksMvfulIo7TNHT2nSmwGPVG1vaikjMSyx6+EohAOSYrKr8fW8h34ChVo9S4D5YkgXJa6T29GWzmeitamEIkIVwBi+Waj5N+YgQnCRX7GxcwgeHL0+p4zYdlQPFatnZ+ATxRMuDKN944Vf/wvbaL9+P7825Ywx5uveyelQ9bEVk8dh7ZWoA7JxII0tSrdfmyrBWeWDu+ZXMLWsozjGosfx7Mjau5Bh1p+IRUmuRm5RYder8MvGCOmaJ5XeEPajZ0Y5vKxKLhZe0E9rKZ8oCbHjwgcvI2LxOSaUek8UM80d/bvWoetiGyPjSWRQafqPkW+WCsSOBdJhUs1UCBttVY9kc0lfMlbkjxubV7KSE97OzKuxR5JZIrKhjqGK2s6ZOjlrHsArmsKdNJ9I6nMkktyEn70tC5+MPDhtAlBOQ+8Ys2k25d4+VaQjVAVsQiQMIPtCXjJ9+FHUGJ8XZ4DgKjJwiFeaphLnnF9JXLSTjRyZ37SJKbN9EZuEukUZMERCptRwokb+k5EJDQB2DYLR7vaTVZ6lteypLbVepfC9+4T7+zsXswbpFSjETOjB6mkhpVcMWRMZ+mE6hETezrUJgzxeuOMiB9Qjyoki4igF1bGxeRcaaJaQv+oZDoDXsQBUxsRzOlKhjyzuGtMqn+C8uG2JZ6cek59WRfghBxNtGe3ER+W8aJgVcVQ1bELn3zoso8csmJY0ck8Ee5T3FtlJEonoBSTI3rSJ95XzSf2Q7u3qxZHEgsSJZkNrSWaikxCLs4T0gMQkp2MrJI9+lt7DkdubYtsO+VGSKUaVEIluDBf8wMUZrzi5+vYNd/Oj098XJcQT4jmYk2I0PjJhMLo757AIzVEj64n/LAoT6ynlWFmq3UrcHquPSdx9fWnHaYhGW4QQ5vTnkPLaVCnkKunMIxHa2wbFW58qhSoksfmkoRb94RxVT5eWT1vAEcrbqQK72fBLsNOAChB7pL0uRyQRWDhu0lh0oMHyi9Q32g0wkYk9Y37CUdCbWWLVAecdsDkCYhDsitQenGEVqYWd1fsF7ZmmFHc198B/yXhlUGZHGjo1UeFsPceWVG8cnYbn4cjKBuuTMr0vmrm3qpOUwEhR44kPxCNMJSEoYWzewKmYHCvEscse7t+N09veOWWpxKdQF578c9iAViZrdnJuHy96KosqIDD7zJ9LnfSUZGlExcvhK9chP4u7EOwJyax/si3ZSd1HF8AKdHMel2mutLpi7drADtYDiC2dw2LNCLcLEpPFZsvZhW8v2VpwivsExcpI/6nN5GkJFUSVE4q4MPjmoFElMGoBpageonqTDAMihICsD6UWONCefnM3aMbndyN2qo+RLkapLRyDsMVkFY7pBfPls0pfPFQ0FbxhEurv1otx7XrB6Hz2qhEgExvqKOTJOKInrug0o744xHL/Np/jimWSsX0aJ3Tv415nUUsQm3QQ5IBwWbgCoYtgU9vYwF8PJd63GpLoxZMV2Nl0lFo9DDE98QYVcOFdTp7z/+T9xhCqClBMZ//5zCo26lciKCfHkm5zBI8lz/tWqgwV93VIyVsxlu8IvdhpQfAU1I2pHiIUXaCXA+RBFNUNSxVnAQHOMnQV2oDhU0VoWkOvks1kddyJn7X3ZFjsjwcQV3dWTzF+3Slgjyfbm7SnAYVdFkHIiC28/X6Zql3ihLQoo7/EPxB4cCmIntrGzAIldxrHb2kX8HSyxyec9In6ziAVKyE16gQjMAVbHWOZTY0JRuqi16CATgJJP5bEbYjM+pBBCr5yA2hEOUc4do8lTgaLslBIZnTmVikcNlgVwgQTHX3CtPaf1kO3yIhELs4Ruo/iahWQsZXvCLr5M+8Z6cThcybZYyW/0l78MEAvPOM7qmJsc/oC49VLz076bDDIjjiur+qBGwDdw0SPX8I27VEklaxoMp+U/P93qUH6kjEgUTAXv7y1DSaWlMfDEJKtH5QAikRvV57MXuHYxe4GrpMJOSjrwArkstewTQmSZbz6tJLEyyByTftoxLLGIZducqqQWoxo1CDiGRQ9eQY7a9dWO4B7yD36GvBf+t9ouJ1JGJFbfwJNtHLnsVfJXgliQiOKoqgAqB1AyKTZ25TxKbFkreVNxrmSQWRELUvezs1DDljqGasZ0Pa1ZW5WkYKl1Ht+a49t61q9UD4JP/F7WvYPjJsl2jq/znvmEj01lu8qDlBCJ0YPg0MvkXWpXWAW6O51LuQ9U35ImGFBGhgWOk44Kgs1MbNEuNkQczoBISG1ZKlUcKMszZluK8EaKudgrdp18piyZXdmsy5GAEZPgIyyByOHiWNk3wOwvP5ZUKydSQiQWwo1OYdLEleYLwy+pW8FyYDUEFEYZm9dICi0+/19krFsmsRw5WUIl01LKzvJLLoO8QCzUsXqEryNQm5xNmnNY0E3yvwh5nFZeOJUIPTuY4niUcLJO1uen/NFfqlLRcqDSRCZYCvf+oauUJcKJQILZ13Mg+W+236IJWHhJX/StBOTmemuQORqx7CxUcdLOMpLkQmI5VJCn97DkgnhHo2YssV1kohHIdTZudlivvDwwdmymoqGXyu9IxoftP6YU5t4+yupxeFSayOKXh8qDNSX4h2PB3lf+qM9YHVXPMioVBp81HtFrrJ4vWRYJebZvlrypOEhJByoZ8shf+Rh/EDaWXwCfr4ZEBaoHkFps01nKRMpbnlIa4beepsjkcZLRElqQunt5piz1fSRUikjz5w1UeG+vfScM3d73T+QfMMTqkT7ARUj8uoVV8HKJZ+F8mOxASdUdWmFfWSWL5EEd82WTCydSCwfKsrNsXnATO4/DcBWr44LuMkFWpP4IwNSJwlvPke+DdoN5kOr12561ehwalSJS6fUvVLEU36HIG+a/uZgPInn/pjdMlk5zwwpJN+pLZrMztYLMvb+KelXll1DFKp8McuVSlhDLpLKdxZQCZ6CuhDzaiV3I3Y4ltiXHs/Duy0B40lhZhrukTpZj6rzh7P0fYRHFChMZX/gNhUb+0ZJGPpFImHzX3UO+vhVfKN7uwM0qq44sZ2JhZ7esk/hW4llch6RnzNdDbmVcF768koFCzhj2FrtZHTubtiKtHceyiGdbdyJH/SYl6nsvS2WCQymJADiMQxVf7qPjS9rLQoWJLGJ3GR6hxD7ISNRvSnkjp8go+G8FieIiMndsknBHX7WIjDVsZ1lihTRcVrGzGAxQFJRcaPGMIbH84ibU++B5XlqzdvI0PZRyRjgKkMQKPsUhVM6dz5Hn9N7WFxyMChEZZ88PQSwy9zhIk2M4JMa9F/a3evx2AU/YWLOY4igNWTlf1fvA25XBAOSMWWLhGSelFR9KesYgFvaRwxsk1R1ohMpGHVOj4yjw3JfoXSYqRGThHT3I/PVndcfEY/KsxrwnU5OKyzSgvtXAkmwomF4xl0xUw0NqAbGzINayswxFhww/C4nJfchb5wx+mrwXlC0sR01k7JuPKDTmzn2Jcfa08v76Nrk7sreVxWEhozx7d5LxE9vZ5GDA9g2UCBaKr5Eks0RSGSWSC2eydn3KR50sx+wH4qiIROK56P4+/OObLGmMSjlG/ojJVo8sjhZILRbed4l6fCIcJuzDH9hZ2FFJVEBinbJmrP+mv5Kv9yDpVxpHlY6IfvKajDoIibhL2Gjn3PSo1ZpFRQDNhjUJUOJSIlFMorvbxeS97GbSGhxvkbhHVG30vTEywnQgyi2R5t5dLI29JfORTIy7TruA8u6376rC6YSioZdLnJqcMoFCrMCIKdIGfwTP6jKWzab40u/IdVJ3yrnxEWlLotxEFr8xnGL//0ZJYhzGOHfYu+Rq2cHqkUVlgHX4MCgvq2LCLrKg+K9/iLy9b7R6KIgm3L3joBGZcqnWRDhIsU9fV4lx/Ei4mNznXJ4lMYXwdLmQ3J3Pl0yOXGO3Rx5/eKCUoa2sYbVyERl+6yl5l9I9DPH4/OS75m7Zl0XqgAm9CDxkmgE7OKY8y/LIeVbgiETCuYnN+FjIk7uD7xg8pg+Pws0itdCatpAF+EvWusNzn78aL8+TPhKOSCTqL+FRScESsg785b5+d1itWaQa3v73SmpPSkP5mmO8NzL1yJUWhyUSs3Dj86bL3HjxifhO8fa7Xc3nyKJKoLH98/YcKFGBwA+pfE+WrTkcDksknvOP8FSMLxLjTVj0LxygGrOoMiB+dNZPLojPFHGUEMGC/YfBIYlEYjy+Yr64w7CNGKrx8Q84/L+d0Y2agrN2ffZDbpBoQfwS9mAx1UJfuUDay8IhiQy/8RirUK+SRiTG23Qid49rrNYsqhq+PoPI1aydaEJIJbJp4dcfVcSWgTKJRA0OlnlGdl4C0EiQ/AOHiCeVRTWBHR0fOz4o9xD/hDWjTKmYVfaC+AcRiaqyyJRXpZhKiIM0YrHZgjOkPYvqA54f7UIlvB6zwpEcKc7C0OGBOIjI2GdvkolJmaUS4/7f/8VqzaK64bvhL2r4C1LJGtJcu5Rinx78hNn9iMSyJGAc4YZIIyrGu/aUUvosagbujmeTJ/mEWexgbqKfvi4DzaWxH5F4PmIiFBT9LAVDXh/5q+l5jVkcGl4kYNhzFU40lyxgGPn4FatVoYRIlP7Fpr6m5j/AU2Vb6TnvaikIyqJmAR8FXIhUghuPT7gyi/daPdh+su4Vjzb00lCK42EkyQrpeJT8twxXDxfDSHUWNQfNTWZwN4VfeYgcHivnzTGmm8nNvXWkdBEijfXLpbxRsjjIqcLJQWuy0DaLmgfKQJgbsZMslTI9g7fyho0nV8sCRWToudso/t3n4t6ikyBJZha2QZJEAfiJFpOrcw/KG8rhYnzpd4miR/pLiQGmnGWRRgCZbDcDw94lR2jcg6JapSo6i/QD6ntOaEcO09BhGHlPVhrTE2wAMUoCG2ntySKNcVCKLov0RJbIDEGWyIwA0X8Ar08oCvBd8Y4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABgUExURUxpcfBeLvBeLvBdLfBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLvBeLgBktPQAAAAgdFJOUwDbxQLP1wyNnwaWpTmxGoQrRBIxaV8hdrxUcPGdt0/k1QJrBQAAARdJREFUOMuVU9t2hCAQA2SwIBcVFNRV//8vq3bprlrY07zocTIwSUaE/onefiCYmWXrNZ6GXL0QqiRthiBxo6lL13lVcTRSnSQ0WCKkiU/VmRLF9uhonyAscJjQBpM4YC5/Xgao/yR08fvzqitaYk7D3uBe8g65V2hKO9sWv4bdb3AwYVqNjeaH5ffMeupsJwgGZZZewiUzzpEJe0qsXswMEFZiT2f4INYxDsZ14yuKyfK2BvBQgIno6thWtFa8gt9nKrQc97aHi1o0Hd/W4Nkm3YPsWuSuxcXUzr6wXQtQ5Rsbvb07y+qhDADrWmey4X01zS6XLrIwsNx+IFQGlt2wzf0uu6ObwUQjM6mvJNRkkC+z8B9/92+tWxADHj8LrQAAAABJRU5ErkJggg==\"","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { EpiEvent } from 'types/epi';\r\nimport { RootState } from 'store';\r\n\r\nlet initialState: EpiEvent = {};\r\n\r\nconst slice = createSlice({\r\n\tname: 'epi',\r\n\tinitialState,\r\n\treducers: {\r\n\t\tupdateEpi: (state, action: PayloadAction) => {\r\n\t\t\tconst beta = { ...state?.beta, ...action.payload?.beta };\r\n\t\t\treturn { ...state, ...beta };\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const selectEpi = (state: RootState) => state.epi;\r\nexport const { updateEpi } = slice.actions;\r\n\r\nexport default slice.reducer;\r\n","import axios from 'axios';\r\nimport { Model } from 'types/epi';\r\n\r\nexport const getEpiPage = async (apiUrl: string, route: string) => {\r\n\tconst appendUrl = '.json';\r\n\r\n\tif (route === '') {\r\n\t\troute = `index${appendUrl}`;\r\n\t} else if (route.indexOf('?') > -1) {\r\n\t\tlet index = route.indexOf('?');\r\n\t\tlet query = route.substring(index);\r\n\t\troute = route.substring(0, index);\r\n\r\n\t\tif (route.endsWith('/')) {\r\n\t\t\troute += `index${appendUrl}`;\r\n\t\t} else {\r\n\t\t\troute += appendUrl;\r\n\t\t}\r\n\r\n\t\troute += query;\r\n\t} else {\r\n\t\troute += appendUrl;\r\n\t}\r\n\r\n\tconst url = `${apiUrl}${route}`;\r\n\tconst { data } = await axios.get(url);\r\n\treturn data;\r\n};\r\n\r\nexport const getEpiPageContent = async (apiUrl: string, route: string) => {\r\n\tlet appendUrl = '.json';\r\n\r\n\tif (route === '') {\r\n\t\troute = `index${appendUrl}`;\r\n\t} else if (route.indexOf('?') > -1) {\r\n\t\tlet index = route.indexOf('?');\r\n\t\tlet query = route.substring(index);\r\n\t\troute = route.substring(0, index);\r\n\r\n\t\tif (route.endsWith('/')) {\r\n\t\t\troute += `index${appendUrl}`;\r\n\t\t} else {\r\n\t\t\troute += appendUrl;\r\n\t\t}\r\n\r\n\t\troute += query;\r\n\t} else {\r\n\t\troute += appendUrl;\r\n\t}\r\n\r\n\tconst url = `${apiUrl}${route}`;\r\n\tconst { data } = await axios.get(url);\r\n\treturn data.content;\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { getEpiPage } from 'api/epiApi';\r\nimport { AppThunk, RootState } from 'store';\r\nimport { Model } from 'types/epi';\r\nimport { ContentTypes } from 'types/pages';\r\n\r\ninterface ModelState {\r\n\tmodel: Model;\r\n\terror: string | null;\r\n\tloading: boolean;\r\n\tisOpen: boolean;\r\n}\r\n\r\nconst initialState: ModelState = {\r\n\terror: null,\r\n\tloading: false,\r\n\tmodel: {\r\n\t\tcontent: undefined,\r\n\t},\r\n\tisOpen: false,\r\n};\r\n\r\nconst slice = createSlice({\r\n\tname: 'model',\r\n\tinitialState,\r\n\treducers: {\r\n\t\tgetModelStart: (state) => {\r\n\t\t\tstate.loading = true;\r\n\t\t},\r\n\t\tgetModelSuccess: (state, action: PayloadAction) => {\r\n\t\t\tstate.model = action.payload;\r\n\t\t\tstate.error = null;\r\n\t\t\tstate.loading = false;\r\n\t\t},\r\n\t\tgetModelFailed: (state, action: PayloadAction) => {\r\n\t\t\tstate.error = action.payload;\r\n\t\t\tstate.loading = false;\r\n\t\t},\r\n\t\tupdateContent: (state, action: PayloadAction) => {\r\n\t\t\tstate.model.content = action.payload;\r\n\t\t},\r\n\t\topenMenu: (state) => {\r\n\t\t\tstate.isOpen = true;\r\n\t\t},\r\n\t\tcloseMenu: (state) => {\r\n\t\t\tstate.isOpen = false;\r\n\t\t},\r\n\t\ttoogleMenu: (state) => {\r\n\t\t\tstate.isOpen = !state.isOpen;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const fetchPage = (\r\n\trouteApiUrl: string,\r\n\troute: string\r\n): AppThunk => async (dispatch) => {\r\n\tlet data;\r\n\tdispatch(getModelStart());\r\n\r\n\ttry {\r\n\t\tdata = await getEpiPage(routeApiUrl, route);\r\n\t} catch (err) {\r\n\t\tdispatch(getModelFailed(err.toString()));\r\n\t\treturn;\r\n\t}\r\n\r\n\tdispatch(getModelSuccess(data));\r\n};\r\n\r\nexport const selectMenuIsOpen = (state: RootState) => state.model.isOpen;\r\nexport const selectModel = (state: RootState) => state.model;\r\nexport const selectHeader = (state: RootState) => state.model.model.header;\r\nexport const selectBreadcrumbs = (state: RootState) =>\r\n\tstate.model.model.breadcrumbs;\r\nexport const selectLocalization = (state: RootState) =>\r\n\tstate.model.model.localization;\r\nexport const selectContent = (state: RootState) => state.model.model.content;\r\nexport const selectMap = (state: RootState) => state.model.model.map;\r\nexport const selectFooter = (state: RootState) => state.model.model.footer;\r\nexport const selectMetaData = (state: RootState) => state.model.model.metadata;\r\nexport const {\r\n\tgetModelStart,\r\n\tgetModelSuccess,\r\n\tgetModelFailed,\r\n\tupdateContent,\r\n\topenMenu,\r\n\tcloseMenu,\r\n\ttoogleMenu,\r\n} = slice.actions;\r\n\r\nexport default slice.reducer;\r\n","import { configureStore, combineReducers, Action } from '@reduxjs/toolkit';\r\nimport { ThunkAction } from 'redux-thunk';\r\nimport epiReducer from './modules/epi';\r\nimport reactReducer from './modules/react';\r\nimport modelReducer from './modules/model';\r\n/* PLOP_INJECT_IMPORT */\r\n\r\nconst rootReducer = combineReducers({\r\n\tepi: epiReducer,\r\n\treact: reactReducer,\r\n\tmodel: modelReducer,\r\n\t/* PLOP_INJECT_REDUCER */\r\n});\r\nexport type RootState = ReturnType;\r\n\r\nexport default (preloadedState: any) => {\r\n\treturn configureStore({\r\n\t\treducer: rootReducer,\r\n\t\tpreloadedState,\r\n\t});\r\n};\r\n\r\n// export type AppDispatch = typeof store.dispatch\r\nexport type AppThunk = ThunkAction>;\r\n","/**\r\n * Loader\r\n * TODO: Variant = breaking changes\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\n\r\ninterface props {\r\n\t/** Variant of loader */\r\n\tvariant?: 'default' | 'static' | 'mini';\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassname?: string;\r\n\r\n\t[htmlattributes: string]: any;\r\n}\r\n\r\nconst Loader: React.FC = ({\r\n\tclassName = '',\r\n\tvariant = 'default',\r\n\t...htmlAttributes\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Loader;\r\n","/**\r\n * Text\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\n\r\ntype Tags =\r\n\t| 'h1'\r\n\t| 'h2'\r\n\t| 'h3'\r\n\t| 'h4'\r\n\t| 'h5'\r\n\t| 'h6'\r\n\t| 'p'\r\n\t| 'preamble'\r\n\t| 'span'\r\n\t| 'div'\r\n\t| 'screenReader';\r\n\r\nexport interface TextProps {\r\n\t/** The text to render (if no children are present) */\r\n\ttext?: string;\r\n\r\n\t/** The html-tag/Component that will be outputted */\r\n\tas: Tags;\r\n\r\n\t/** The style that will be used (instead of the tag default style) */\r\n\tstyleAs?: Tags;\r\n\r\n\t/** Option to remove default text margin */\r\n\tmargin?: boolean;\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassName?: string;\r\n\r\n\t/** Optional other html props will be spread on the component */\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\nconst tagMapper = {\r\n\th1: 'h1',\r\n\th2: 'h2',\r\n\th3: 'h3',\r\n\th4: 'h4',\r\n\th5: 'h5',\r\n\th6: 'h6',\r\n\tp: 'p',\r\n\tpreamble: 'p',\r\n\tspan: 'span',\r\n\tdiv: 'div',\r\n\tscreenReader: 'div',\r\n};\r\n\r\nconst typographyClasses: any = {\r\n\th1: 'font-standard font-medium text-h1',\r\n\th2: 'font-standard font-medium text-h2',\r\n\th3: 'font-standard font-bold text-h3',\r\n\th4: 'font-standard font-bold text-h4',\r\n\th5: 'font-standard font-bold text-h5',\r\n\th6: 'font-standard font-medium text-h6',\r\n\tp: 'font-standard text-p',\r\n\tpreamble: 'font-alt font-medium text-preamble',\r\n\tspan: 'font-standard',\r\n\tdiv: 'font-standard',\r\n\tscreenReader: 'sr-only',\r\n};\r\n\r\nconst typographyMarginClasses: any = {\r\n\th1: 'mb-4',\r\n\th2: 'mb-2',\r\n\th3: 'mb-2',\r\n\th4: 'mb-2',\r\n\th5: 'mb-2',\r\n\th6: 'mb-2',\r\n\tp: 'mb-4',\r\n\tpreamble: 'mb-4',\r\n\tspan: '',\r\n\tdiv: '',\r\n\tscreenReader: '',\r\n};\r\n\r\n/** Text component to render texts, also has handling for Epi server on page editor. */\r\nconst Text: React.FC = ({\r\n\tchildren,\r\n\ttext,\r\n\tstyleAs,\r\n\tas,\r\n\tmargin = true,\r\n\tclassName = '',\r\n\t...htmlAttributes\r\n}) => {\r\n\tconst content = children || text;\r\n\tconst Component: any = tagMapper[as];\r\n\r\n\tif (!content) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{content}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Text;\r\n","import Text, { TextProps } from './Text';\r\nexport default Text;\r\nexport type { TextProps };\r\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#000\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.51555027,-2.98983061e-13 L15.999,7.999 L16,8 L16,8 C15.9787734,8.02618776 13.9042323,10.585592 9.77622454,15.6784007 L9.51555027,16 L8,14.6970696 L12.674,8.999 L-1.02282627e-11,9 L-1.02282627e-11,7 L12.675,6.999 L8,1.30293044 L9.51555027,-2.98983061e-13 Z\",\n transform: \"translate(8.000000, 8.000000) scale(-1, -1) rotate(-180.000000) translate(-8.000000, -8.000000) \"\n})));\nconst SvgIconArrow = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconArrow, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-arrow.30eb99cd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"chevron-left\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"chevron-left\",\n transform: \"translate(0.590149, 0.749921)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5817264,0.166094466 C8.71602342,0.288789436 8.78313288,0.456640884 8.78313288,0.625078841 C8.78313288,0.777070686 8.72821078,0.929024383 8.61711726,1.04929702 L1.51024207,8.75007884 L8.58446106,16.4492978 C8.81883606,16.7032041 8.80418763,17.0992972 8.54906246,17.3325016 C8.29515621,17.5668766 7.90101573,17.551017 7.66664073,17.2977127 L0.166640729,9.17271273 C-0.0555469096,8.93224375 -0.0555469096,8.56490032 0.166640729,8.32427518 L7.66664073,0.19927518 C7.93328866,-0.0522647656 8.32782015,-0.0682805336 8.5817264,0.166094466 Z\",\n id: \"Path\"\n})));\nconst SvgIconChevron = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"19px\",\n viewBox: \"0 0 10 19\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconChevron, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-chevron.b8822c00.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\n});\nconst SvgIconChevronSolid = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 320 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconChevronSolid, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-chevron-solid.e1b2911e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 47.309,\n width: 74.4267,\n height: 6.34074,\n rx: 3.17037,\n transform: \"rotate(-39.4679 0 47.309)\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.00049,\n y: 45,\n width: 62.9848,\n height: 5.79483,\n rx: 2.89742\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 15.0049C36.5035 25.418 42.6909 42.2144 35 60.0049\",\n strokeWidth: 7,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nconst SvgIconDeclineScale = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 64,\n height: 64,\n viewBox: \"0 0 64 64\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconDeclineScale, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-decline-scale.3b3e841f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#symbol_glasses\",\n height: 64,\n width: 64\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"symbol\", {\n fill: \"currentColor\",\n viewBox: \"0 0 64 64\",\n id: \"symbol_glasses\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.9340451,30.7562821 L56.9340451,33.188094 C56.9340451,33.3654274 56.846204,33.5421624 56.7148873,33.5864957 C55.5314353,34.072547 54.172242,35.7977179 53.2080071,37.4337436 C51.4103796,40.750547 47.990866,42.9174359 44.1768683,42.9174359 C43.3440095,42.9174359 42.4671412,42.7845556 41.5903321,42.563906 C38.959312,41.856188 36.7677343,40.1315556 35.4524318,37.6996838 C34.6634638,36.328641 34.2250297,34.7807436 34.1371886,33.232906 L34.1371886,32.2159915 C34.1371886,31.0216838 33.1724199,30.0490427 31.9450771,30.0490427 C30.7616251,30.0490427 29.7969158,31.0216838 29.7969158,32.2159915 L29.7969158,33.2324274 C29.7090154,34.780265 29.2705813,36.3281624 28.4816133,37.6992051 C27.1224199,40.1310171 24.9303084,41.8556496 22.2998221,42.5633675 C21.4669039,42.7840171 20.5900949,42.9170171 19.7131673,42.9170171 C15.9426453,42.9170171 12.4797153,40.7500684 10.726038,37.4332051 C9.76132859,35.7972393 8.40260973,34.0721282 7.21868327,33.5860171 C7.08784104,33.5421624 7,33.3648889 7,33.188094 L7,30.7562821 C7,30.535094 7.1752669,30.3140256 7.39442467,30.3140256 L7.61316726,30.3140256 C8.66530249,30.3140256 9.58606168,29.5625128 10.3750297,27.9703419 C10.5068802,27.7492137 10.6381969,27.4837521 10.7694543,27.2182906 C12.128707,24.786 14.3207592,23.0613077 16.9513642,22.3535897 C17.7847568,22.1325214 18.6615658,22 19.5379004,22 C22.9578885,22 26.1142349,23.7690256 27.9992289,26.5992393 L27.9992289,26.5549658 L27.9992289,26.5992393 C28.0427046,26.6874274 28.0866548,26.7317607 28.1745552,26.8203675 C28.3063464,27.0414957 28.61293,27.2182906 29.0074733,27.0414957 C29.8408066,26.4224444 30.8489917,25.9359145 31.9450771,25.9359145 C33.0406287,25.9359145 34.0492289,26.4219658 34.9261566,27.0414957 C35.3205813,27.2182906 35.5837485,27.0414957 35.7590747,26.8203675 C35.8029656,26.7317607 35.8908066,26.6874274 35.9348161,26.5992393 L35.9348161,26.5549658 L35.9348161,26.5992393 C37.8198102,23.7690256 40.9322064,22 44.3956109,22 C45.2724792,22 46.1058719,22.1325214 46.9827402,22.3535897 C49.6132859,23.0613077 51.8048636,24.786 53.1201661,27.2182906 C53.2958482,27.4837521 53.4267497,27.7048803 53.5145907,27.9703419 C54.4353499,29.650641 55.2682681,30.3140256 56.2764531,30.3140256 L56.4956702,30.3140256 C56.7148873,30.3134872 56.9340451,30.5346752 56.9340451,30.7562821 L56.9340451,30.7562821 Z M26.4213523,30.6232821 C25.5445433,27.4394188 22.7386714,25.1838632 19.5384342,25.1838632 C18.9247331,25.1838632 18.3549822,25.2720513 17.7847568,25.4493846 C14.0141756,26.4662991 11.8225979,30.4021538 12.8747331,34.293735 C13.7075919,37.4775385 16.5134045,39.7331538 19.7137011,39.7331538 C20.3274021,39.7331538 20.8970937,39.6444872 21.5113286,39.5125043 C23.3089561,39.0259145 24.7994662,37.8316667 25.7202847,36.1513077 C26.6840451,34.4710085 26.9032028,32.5252479 26.4213523,30.6232821 L26.4213523,30.6232821 Z M46.1492883,25.4493846 C45.5790629,25.2720513 44.9653618,25.1838632 44.3951364,25.1838632 C41.1948399,25.1838632 38.3456109,27.4394188 37.5126928,30.6232821 C37.0303084,32.5247094 37.2495848,34.4709487 38.1698102,36.1513077 C39.0901542,37.8316667 40.6251483,39.0259145 42.4227165,39.5125043 C42.9930012,39.6449658 43.6061684,39.7331538 44.1764531,39.7331538 C47.3767497,39.7331538 50.2264531,37.4775385 51.059312,34.293735 C52.1114472,30.4021538 49.8753855,26.4662991 46.1492883,25.4493846 Z\"\n}));\nconst SvgIconGlasses = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n role: \"img\",\n height: 64,\n width: 64,\n viewBox: \"0 0 64 64\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconGlasses, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-glasses.03731328.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#symbol_marker\",\n height: 64,\n width: 64\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"symbol\", {\n fill: \"currentColor\",\n viewBox: \"0 0 64 64\",\n id: \"symbol_marker\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.001,32.986c-2.964,0-5.365-2.402-5.365-5.365s2.401-5.364,5.365-5.364 c2.962,0,5.364,2.401,5.364,5.364S34.963,32.986,32.001,32.986z M32.001,14.695c-6.592,0-11.935,5.343-11.935,11.934c0,2.072,0.528,4.019,1.457,5.717c0.027,0.129,9.339,16.303,9.339,16.303c0.234,0.406,0.669,0.658,1.138,0.658c0.47-0.002,0.902-0.252,1.139-0.658c0,0,9.31-16.174,9.338-16.303c0.93-1.697,1.457-3.645,1.457-5.717C43.934,20.038,38.592,14.695,32.001,14.695z\"\n}));\nconst SvgIconMarker = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n role: \"img\",\n height: 64,\n width: 64,\n viewBox: \"0 0 64 64\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconMarker, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-marker.4e02e915.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 3,\n y1: 12,\n x2: 21,\n y2: 12\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 3,\n y1: 6,\n x2: 21,\n y2: 6\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 3,\n y1: 18,\n x2: 21,\n y2: 18\n});\nconst SvgIconMenu = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconMenu, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-menu.dec04d8a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"plus\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"plus\",\n transform: \"translate(0.625000, 0.375391)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.25,8.12460899 C16.25,8.46835852 15.9687495,8.74960899 15.625,8.74960899 L8.75,8.74960899 L8.75,15.624609 C8.75,15.9700775 8.47046852,16.25 8.125,16.25 C7.77953148,16.25 7.5,15.9683585 7.5,15.624609 L7.5,8.74960899 L0.625,8.74960899 C0.279531479,8.74960899 0,8.47031236 0,8.125 C0,7.78085887 0.279687643,7.49960899 0.625,7.49960899 L7.5,7.49960899 L7.5,0.624608994 C7.5,0.279140472 7.77953148,0 8.125,0 C8.47046852,0 8.75,0.279296637 8.75,0.624608994 L8.75,7.49960899 L15.625,7.49960899 C15.9687495,7.49960899 16.25,7.78085887 16.25,8.12460899 Z\",\n id: \"Path\"\n})));\nconst SvgIconPlus = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"17px\",\n height: \"17px\",\n viewBox: \"0 0 17 17\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconPlus, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-plus.e45fe0fa.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"S\\xF6k\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Desktop---Sidor\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Startsida---Bildheader\",\n transform: \"translate(-1253.000000, -38.000000)\",\n fill: \"#333333\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Header-new-Copy-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Header-v1\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"S\\\\xF6k\",\n transform: \"translate(1253.000000, 38.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9,18 C4.03714286,18 0,13.9628571 0,9 C0,4.03714286 4.03714286,0 9,0 C13.9628571,0 18,4.03714286 18,9 C18,13.9628571 13.9628571,18 9,18 Z M9,2.18181818 C5.24045455,2.18181818 2.18181818,5.24045455 2.18181818,9 C2.18181818,12.7595455 5.24045455,15.8181818 9,15.8181818 C12.7595455,15.8181818 15.8181818,12.7595455 15.8181818,9 C15.8181818,5.24045455 12.7595455,2.18181818 9,2.18181818 Z\",\n id: \"Shape\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5365983,19.2594726 L14.3612518,14 C13.8978438,14.5816775 13.5964546,14.7907716 13,15.2426987 L18.1257045,20.598435 C18.3455696,20.812853 19.1034792,21.2999167 19.7422499,20.7403862 C20.205504,20.3345992 19.9875164,19.6939694 19.5365983,19.2594726 Z\",\n id: \"Path\"\n}))))));\nconst SvgIconSearch = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"21px\",\n viewBox: \"0 0 20 21\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3, _ref4);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconSearch, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-search.4ae5de32.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#symbol_snowflake\",\n height: 64,\n width: 64\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"symbol\", {\n fill: \"currentColor\",\n viewBox: \"0 0 64 64\",\n id: \"symbol_snowflake\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.103,31.132c-0.286-0.528-0.947-0.727-1.476-0.438l-7.962,4.315c-0.034,0.02-0.056,0.051-0.086,0.072l-4.862-2.814 l13.026-7.501c0.521-0.3,0.7-0.966,0.399-1.487c-0.299-0.521-1.289-0.699-1.812-0.4L32,30.369V25.48l8.828-4.857 c0.523-0.298,0.867-0.963,0.568-1.485c-0.298-0.522-1.207-0.705-1.729-0.405L32,22.973V15.29c0-0.601-0.398-1.088-1-1.088 c-0.601,0-1,0.487-1,1.088v7.655l-6.399-4.156c-0.51-0.319-1.062-0.165-1.381,0.345c-0.319,0.509-0.343,1.181,0.167,1.5L30,25.514 v4.878l-12.794-7.543c-0.521-0.302-1.068-0.123-1.369,0.397c-0.301,0.52-0.064,1.186,0.456,1.487l7.07,4.075l-7.05,4.037 c-0.521,0.297-0.695,0.963-0.397,1.485c0.201,0.352,0.572,0.549,0.95,0.549c0.183,0,0.371-0.047,0.541-0.145l8.165-4.665 l3.791,2.193l-13.026,7.502c-0.521,0.301-0.7,0.967-0.4,1.486c0.202,0.35,0.568,0.545,0.944,0.545c0.185,0,0.133-0.047,0.305-0.145 L30,34.135v4.701l-7.378,4.35c-0.522,0.299-0.584,0.963-0.286,1.486c0.201,0.352,0.627,0.547,1.005,0.547 c0.183,0,0.161-0.045,0.331-0.143L30,41.342v7.367c0,0.602,0.399,1.09,1,1.09c0.602,0,1-0.488,1-1.09v-7.686l7.305,4.369 c0.18,0.113,0.542,0.166,0.739,0.166c0.363,0,0.799-0.18,1.005-0.512c0.319-0.508-0.119-1.18-0.628-1.5L32,38.453v-4.285 l13.312,7.516c0.172,0.1,0.521,0.146,0.706,0.146c0.376,0,0.822-0.195,1.024-0.543c0.302-0.521,0.164-1.188-0.355-1.488 l-5.942-3.451l6.91-3.739C48.184,32.322,48.39,31.661,48.103,31.132z\"\n}));\nconst SvgIconSnowflake = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n role: \"img\",\n height: 64,\n width: 64,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconSnowflake, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-snowflake.b352e6a1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Angle\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Angle\",\n transform: \"translate(0.034063, 0.713170)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.641718,14.5055802 C12.689335,14.814486 12.9554292,15.0352676 13.258905,15.0352676 C13.2906433,15.0352676 13.3223816,15.0328262 13.3547255,15.0279434 C13.6958977,14.9754436 13.9297255,14.6556384 13.8769909,14.3150527 C13.7268349,13.3408339 13.4625383,12.3838026 13.0914446,11.4681775 C12.9614445,11.1483343 12.5953504,10.9896619 12.2773822,11.1239583 C11.9575389,11.2533338 11.8039449,11.6169269 11.933163,11.9368489 C12.2354683,12.7633924 12.5049993,13.5954244 12.641718,14.5055802 Z M16.8409368,16.2516744 L1.60226546,16.2516744 L9.27414022,0.904018389 C9.4285544,0.595190036 9.3034371,0.219643819 8.99460874,0.0653464668 C8.68515573,-0.0872318871 8.31101499,0.0360495918 8.15593682,0.344877946 L0.0660928327,16.5948779 C-0.0309381646,16.7889793 -0.0205866259,17.0187063 0.093558057,17.2026904 C0.20770274,17.3866744 0.374531372,17.5368304 0.59093736,17.5368304 L16.8409374,17.5368304 C17.1864059,17.5368304 17.4659374,17.2572989 17.4659374,16.9118304 C17.4659374,16.5680809 17.1846869,16.2516744 16.8409374,16.2516744 L16.8409368,16.2516744 Z M8.12218748,6.22042369 C7.91124962,6.49386178 7.96203099,6.88839267 8.23546849,7.09933053 C9.05343734,7.72550236 9.78390597,8.45675241 10.4069533,9.27276801 C10.5302348,9.43327616 10.7164063,9.5181198 10.9042194,9.5181198 C11.03668,9.5181198 11.1697271,9.47601031 11.2832429,9.38995551 C11.5573051,9.17999457 11.6097667,8.78800224 11.4004304,8.51339291 C10.7094147,7.60948669 9.90082107,6.80011164 8.99574302,6.10675286 C8.72374974,5.89620541 8.32921885,5.94698619 8.12218748,6.22042369 Z\",\n id: \"Shape\"\n})));\nconst SvgIconAngle = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"19px\",\n viewBox: \"0 0 18 19\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconAngle, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-angle.bb024cc7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Border-outer\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Border-outer\",\n transform: \"translate(0.000000, 0.750000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.75,11.5625 C8.23242188,11.5625 7.8125,11.9820309 7.8125,12.5 C7.8125,13.0175781 8.23242188,13.4375 8.75,13.4375 C9.26757812,13.4375 9.6875,13.0175781 9.6875,12.5 C9.6875,11.9804692 9.26953137,11.5625 8.75,11.5625 Z M5,7.8125 C4.48046863,7.8125 4.0625,8.23046863 4.0625,8.75 C4.0625,9.26757812 4.48242188,9.6875 5,9.6875 C5.51757812,9.6875 5.9375,9.26953077 5.9375,8.75 C5.9375,8.23046863 5.51953137,7.8125 5,7.8125 Z M8.75,7.8125 C8.23046863,7.8125 7.8125,8.23046863 7.8125,8.75 C7.8125,9.26757812 8.23242188,9.6875 8.75,9.6875 C9.26757812,9.6875 9.6875,9.26953077 9.6875,8.75 C9.6875,8.23046863 9.26953137,7.8125 8.75,7.8125 Z M12.5,7.8125 C11.9824219,7.8125 11.5625,8.23203146 11.5625,8.75 C11.5625,9.26757812 11.9824219,9.6875 12.5,9.6875 C13.0175781,9.6875 13.4375,9.26953077 13.4375,8.75 C13.4375,8.23046863 13.0195308,7.8125 12.5,7.8125 Z M8.75,4.0625 C8.23046863,4.0625 7.8125,4.48046923 7.8125,5 C7.8125,5.51757812 8.23242188,5.9375 8.75,5.9375 C9.26757812,5.9375 9.6875,5.51953077 9.6875,5 C9.6875,4.48046923 9.26953137,4.0625 8.75,4.0625 Z M15.625,0 L1.875,0 C0.83945334,0 0,0.839452744 0,1.875 L0,15.625 C0,16.6601562 0.83945334,17.5 1.875,17.5 L15.625,17.5 C16.6605473,17.5 17.5,16.6605473 17.5,15.625 L17.5,1.875 C17.5,0.839452744 16.6601562,0 15.625,0 Z M16.2499994,15.625 C16.2499994,15.969609 15.9696877,16.25 15.625,16.25 L1.875,16.25 C1.53046846,16.25 1.2499994,15.9687495 1.2499994,15.625 L1.2499994,1.875 C1.2499994,1.53046846 1.53046846,1.25 1.875,1.25 L15.625,1.25 C15.9687495,1.25 16.2499994,1.53046846 16.2499994,1.875 L16.2499994,15.625 Z\",\n id: \"Shape\"\n})));\nconst SvgIconBorderOuter = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"19px\",\n viewBox: \"0 0 18 19\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconBorderOuter, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-border-outer.0a502ba0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"calendar\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"calendar\",\n transform: \"translate(0.000000, 0.050000)\",\n fill: \"#000000\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15,2.5 L13.75,2.5 L13.75,0.589843988 C13.75,0.279804468 13.4687495,0 13.125,0 C12.7812505,0 12.5,0.279804468 12.5,0.589843988 L12.5,2.5 L5,2.5 L5,0.589843988 C5,0.279804468 4.71875012,0 4.375,0 C4.03124988,0 3.75,0.279804468 3.75,0.589843988 L3.75,2.5 L2.5,2.5 C1.11914039,2.5 0,3.61914039 0,5 L0,17.5 C0,18.8808596 1.11914039,20 2.5,20 L15,20 C16.3808596,20 17.5,18.8808596 17.5,17.5 L17.5,5 C17.5,3.61914039 16.3789058,2.5 15,2.5 Z M2.5,3.75 L15,3.75 C15.6902349,3.75 16.25,4.30976629 16.25,5 L16.25,6.25 L1.25,6.25 L1.25,5 C1.25,4.30859327 1.8097657,3.75 2.5,3.75 Z M15,18.75 L2.5,18.75 C1.8097657,18.75 1.25,18.1902349 1.25,17.5 L1.25,7.5 L16.25,7.5 L16.25,17.5 C16.25,18.1914067 15.6914067,18.75 15,18.75 Z\",\n id: \"Shape\"\n})));\nconst SvgIconCalendar = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"21px\",\n viewBox: \"0 0 18 21\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconCalendar, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-calendar.2c1b052a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"chevrons-right\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"chevrons-right\",\n transform: \"translate(0.625390, 0.748430)\",\n fill: \"#000000\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.66367197,1.05078815 L14.7378904,8.75000774 L7.66367197,16.450789 C7.55257845,16.5710235 7.49765635,16.7230153 7.49765635,16.8750071 C7.49765635,17.0434451 7.56480455,17.2112965 7.69906282,17.3339915 C7.95296907,17.5683665 8.34710956,17.5525069 8.58148456,17.2992027 L16.081484,9.17420267 C16.303671,8.93373369 16.303671,8.56639026 16.081484,8.32576512 L8.58148396,0.200765121 C8.34710896,-0.0525164727 7.95296848,-0.0684142236 7.69906223,0.165976274 C7.44492233,0.400788772 7.42929697,0.796881902 7.66367197,1.05078815 Z M8.58554721,9.17735099 C8.80773485,8.93688201 8.80773485,8.56953858 8.58554721,8.32891344 L1.08554721,0.203913438 C0.851172209,-0.0493681554 0.457031727,-0.0652659062 0.203125477,0.169124591 C-0.0519919395,0.402288425 -0.066640377,0.798420894 0.167726874,1.05232714 L7.24194586,8.75154673 L0.166015625,16.450789 C0.0549221039,16.5710235 0,16.7230153 0,16.8750071 C0,17.0434451 0.0671482086,17.2112965 0.201405883,17.3339915 C0.455312133,17.5683665 0.849452615,17.5525069 1.08382761,17.2992027 L8.58554661,9.17735099 L8.58554721,9.17735099 Z\",\n id: \"Shape\"\n})));\nconst SvgIconChevrons = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"17px\",\n height: \"19px\",\n viewBox: \"0 0 17 19\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconChevrons, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-chevrons.867919a1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"circle-exclamation\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"circle-exclamation\",\n transform: \"translate(0.000000, 0.500000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,0 C4.47656274,0 0,4.47656274 0,10 C0,15.5234373 4.47656274,20 10,20 C15.5234373,20 20,15.5234373 20,10 C20,4.47656274 15.5234373,0 10,0 Z M10,18.75 C5.17578125,18.75 1.25,14.8242188 1.25,10 C1.25,5.17578125 5.17578125,1.25 10,1.25 C14.8242188,1.25 18.75,5.17578125 18.75,10 C18.75,14.8242188 14.8242188,18.75 10,18.75 Z M10,11.875 C10.3454685,11.875 10.625,11.5954685 10.625,11.25 L10.625,5 C10.625,4.65453148 10.3454685,4.375 10,4.375 C9.65453148,4.375 9.375,4.65625048 9.375,5 L9.375,11.25 C9.375,11.5937495 9.65624988,11.875 10,11.875 Z M10,13.4375 C9.48242188,13.4375 9.0625,13.8574219 9.0625,14.375 C9.0625,14.8925781 9.48242188,15.3125 10,15.3125 C10.5175781,15.3125 10.9375,14.8925781 10.9375,14.375 C10.9375,13.8574219 10.5195308,13.4375 10,13.4375 Z\",\n id: \"Shape\"\n})));\nconst SvgIconCircleExclamation = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"21px\",\n viewBox: \"0 0 20 21\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconCircleExclamation, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-circle-exclamation.e65cacf3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"compass\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"compass\",\n transform: \"translate(0.296875, 0.500000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6132805,10.6289065 C10.9816396,10.2632427 10.9816396,9.66835976 10.6132805,9.30234432 C10.2495694,8.93660188 9.65468645,8.93660188 9.29101467,9.30234432 C8.9225769,9.66808677 8.9225769,10.2628911 9.29101467,10.6289065 C9.65624928,11.0273433 10.2499998,11.0273433 10.6132805,10.6289065 Z M13.9023435,5 C13.8191009,5 13.7312889,5.01426578 13.6480463,5.04296899 L7.7343744,7.17578173 C7.44781196,7.28078127 7.23046839,7.49546885 7.12890565,7.77695298 L4.99804616,13.6910152 C4.78124976,14.289062 5.3906244,15 6.00390553,15 C6.09171808,15 6.17496014,14.9856567 6.25812411,14.957031 L12.1760929,12.8242183 C12.4580848,12.7192187 12.6753116,12.5045311 12.7768743,12.2183585 L14.9077332,6.30820274 C15.1249993,5.71093798 14.515624,5 13.9023435,5 Z M11.640625,11.6875005 L6.36328101,13.5894537 L8.26445282,8.31210971 L13.5417962,6.40781283 L11.640625,11.6875005 Z M10,0 C4.47656274,0 0,4.47656274 0,10 C0,15.5234373 4.47656274,20 10,20 C15.5234373,20 20,15.5234373 20,10 C20,4.47656274 15.5234373,0 10,0 Z M10,18.75 C5.17578125,18.75 1.25,14.8242188 1.25,10 C1.25,5.17578125 5.17578125,1.25 10,1.25 C14.8242188,1.25 18.75,5.17578125 18.75,10 C18.75,14.8242188 14.8242188,18.75 10,18.75 Z\",\n id: \"Shape\"\n})));\nconst SvgIconCompass = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"21px\",\n height: \"21px\",\n viewBox: \"0 0 21 21\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconCompass, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-compass.aa5e5b5f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"crosshairs\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"crosshairs\",\n transform: \"translate(0.000000, 0.500000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.375,9.375 L18.0933595,9.375 C17.7890623,5.38671851 14.6132815,2.21093774 10.625,1.90664053 L10.625,0.625 C10.625,0.279531479 10.3437495,0 10,0 C9.65625048,0 9.375,0.279531479 9.375,0.625 L9.375,1.90664053 C5.38671851,2.21093774 2.21093714,5.38671851 1.90664053,9.375 L0.625,9.375 C0.279531479,9.375 0,9.65624988 0,10 C0,10.3437495 0.279531479,10.625 0.625,10.625 L1.90664053,10.625 C2.21093714,14.6132815 5.38671851,17.7890623 9.375,18.0937505 L9.375,19.375 C9.375,19.7204685 9.65453148,20 9.96484399,20 C10.2751565,20 10.625,19.7187495 10.625,19.375 L10.625,18.0933595 C14.6132815,17.7890623 17.7890623,14.6132815 18.0937505,10.625 L19.375,10.625 C19.7187495,10.625 20,10.3437495 20,10 C20,9.65625048 19.7187495,9.375 19.375,9.375 Z M15.625,10.625 L16.8433595,10.625 C16.5429688,13.9179683 13.9179683,16.5429688 10.625,16.8437505 L10.625,15.625 C10.625,15.2795315 10.3454685,15 10,15 C9.65453148,15 9.375,15.2795315 9.375,15.625 L9.375,16.8433595 C6.08203113,16.5429688 3.45507801,13.9179683 3.15664053,10.625 L4.375,10.625 C4.71875012,10.625 5,10.3437495 5,10 C5,9.65625048 4.71875012,9.375 4.375,9.375 L3.15664053,9.375 C3.45507801,6.08203173 6.08203113,3.4550786 9.375,3.15664053 L9.375,4.375 C9.375,4.71874952 9.65624988,5 10,5 C10.3437495,5 10.625,4.72046852 10.625,4.375 L10.625,3.15664053 C13.9179683,3.4550786 16.5429688,6.08203173 16.8437505,9.375 L15.625,9.375 C15.2812505,9.375 15,9.65624988 15,10 C15,10.3437495 15.2812505,10.625 15.625,10.625 Z M9.96484399,9.0625 C9.44726586,9.0625 9.02734399,9.48242188 9.02734399,10 C9.02734399,10.5175781 9.44726586,10.9375 9.96484399,10.9375 C10.4824221,10.9375 10.902344,10.5175781 10.902344,10 C10.902344,9.48242188 10.5156255,9.0625 9.96484399,9.0625 Z\",\n id: \"Shape\"\n})));\nconst SvgIconCrosshairs = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"21px\",\n viewBox: \"0 0 20 21\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconCrosshairs, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-crosshairs.0bfa5bc0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"minus\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"minus\",\n transform: \"translate(0.625000, 0.875000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.25,0.625 C16.25,0.968749523 15.9687495,1.25 15.625,1.25 L0.625,1.25 C0.279531479,1.25 0,0.970703363 0,0.625391006 C0,0.281249881 0.279687643,0 0.625,0 L15.625,0 C15.9687495,0 16.25,0.281249881 16.25,0.625 Z\",\n id: \"Path\"\n})));\nconst SvgIconMinus = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"17px\",\n height: \"3px\",\n viewBox: \"0 0 17 3\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconMinus, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-minus.b5e80736.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Mountain\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Mountain\",\n transform: \"translate(0.000107, 0.750000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.6561435,14.132812 L10.9412995,0.478515625 C10.738174,0.159375668 10.3670802,0 9.99989299,0 C9.63270573,0 9.26161198,0.159375668 9.0584865,0.478515625 L0.343916692,14.132812 C-0.0900677072,14.8128903 -0.115067683,15.6726551 0.278838552,16.3769531 C0.666690148,17.0351565 1.40301851,17.5 2.19950286,17.5 L17.8010651,17.5 C18.5975489,17.5 19.3338772,17.0691407 19.7221586,16.3761723 C20.1131758,15.6718755 20.0897369,14.8125005 19.6561441,14.132812 L19.6561435,14.132812 Z M9.99989358,1.32851601 L13.5389563,6.875 L9.99989358,6.875 C9.80336992,6.875 9.61782304,6.96777344 9.49989346,7.1252346 L8.12489358,8.95703077 L6.7498937,7.12499976 C6.6717687,7.01953113 6.5545812,6.95703149 6.43348721,6.91796899 L9.99989358,1.32851601 Z M18.6287996,15.7656252 C18.4647378,16.0625005 18.1444248,16.25 17.8006753,16.25 L2.19950286,16.25 C1.85473708,16.25 1.53661219,16.0643744 1.36942474,15.7660151 C1.20106546,15.4648435 1.2116125,15.0976562 1.39754979,14.8046875 L5.66004959,8.125 L5.93739358,8.125 L7.62489346,10.3746092 C7.74208096,10.5312502 7.89442507,10.625 8.12489358,10.625 C8.35536209,10.625 8.50696412,10.5322266 8.6248937,10.3747654 L10.3123936,8.125 L14.3397376,8.125 L18.6053619,14.8046875 C18.7538001,15.0976562 18.8006744,15.4648435 18.6287996,15.7656252 Z\",\n id: \"Shape\"\n})));\nconst SvgIconMountain = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"19px\",\n viewBox: \"0 0 20 19\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconMountain, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-mountain.388a6393.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"remove\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"remove\",\n transform: \"translate(-0.000772, 0.249228)\",\n fill: \"#000000\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.3171775,12.3171774 C12.0729201,12.5614348 11.6777246,12.5614348 11.4331929,12.3171774 L6.25077173,7.13358432 L1.0671781,12.3171774 C0.822920054,12.5614348 0.42772457,12.5614348 0.183193535,12.3171774 C-0.0610645115,12.0729199 -0.0610645115,11.6777244 0.183193535,11.4331928 L5.36795899,6.25077158 L0.183974952,1.06717736 C-0.0602830946,0.822919905 -0.0602830946,0.427724421 0.183974952,0.183193982 C0.428232998,-0.0610646605 0.823428482,-0.0610646605 1.06795952,0.183193982 L6.25077173,5.36795884 L11.434366,0.184365809 C11.6786234,-0.0598928332 12.0738189,-0.0598928332 12.3183505,0.184365809 C12.562608,0.428623259 12.562608,0.823818743 12.3183505,1.06834918 L7.13358447,6.25077158 L12.3171775,11.4343658 C12.563272,11.6765526 12.563272,12.0749906 12.3171775,12.3171774 Z\",\n id: \"Path\"\n})));\nconst SvgIconRemove = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"13px\",\n height: \"13px\",\n viewBox: \"0 0 13 13\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconRemove, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-remove.ea9ffa93.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"snowboarding\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"snowboarding\",\n transform: \"translate(-0.000002, 0.499258)\",\n fill: \"#000000\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.8164081,8.93433513 L18.9609396,8.07886662 C17.4179709,6.53589728 15.6871116,5.18433573 13.8164091,4.0632415 C13.5094165,3.87828114 13.1742215,3.74828102 12.8210961,3.67808583 L11.4484405,3.40343716 C10.8253932,3.27890517 10.3121125,2.85148384 10.0757837,2.26125004 L9.32851788,0.393670819 C9.20035359,0.0726163599 8.8347679,-0.0836729792 8.51601776,0.0451553079 C8.19922086,0.174062273 8.04297086,0.537850878 8.16797134,0.858163855 L8.91523715,2.72574188 C9.30898722,3.71011736 10.1644563,4.42183497 11.2039089,4.62964775 L11.658597,4.72058537 L9.4335961,6.24683501 C8.61406501,6.83199169 8.12500235,7.78316321 8.12500235,8.789804 L8.12500235,10.8026946 L4.80078336,11.9108975 C4.47363492,12.0195306 4.29648634,12.3733974 4.40586146,12.7015221 C4.49312743,12.9633582 4.73668214,13.128866 4.99844011,13.128866 C5.06375309,13.128866 5.13027605,13.1184876 5.19621368,13.096515 L8.94621368,11.846515 C9.2013311,11.7616713 9.37355753,11.5229988 9.37355753,11.2539363 L9.37355753,8.75464799 C9.37355753,8.15035107 9.66715153,7.58042934 10.148558,7.2358978 L13.1637925,5.17105343 C13.1824094,5.15831234 13.192175,5.13885858 13.2089489,5.12460949 C13.8355118,5.50203087 14.4394177,5.9148431 15.0308233,6.3445306 L10.92969,8.84058537 C10.7514482,8.94738199 10.6379324,9.13660111 10.6269556,9.34410097 C10.6165808,9.55222609 10.7099634,9.75191357 10.8766037,9.87652304 L13.0324632,11.4933205 L11.9004315,15.4542577 C11.8058222,15.7857025 11.9980877,16.1316014 12.330119,16.226914 C12.3875016,16.2427807 12.4448841,16.2507189 12.5022286,16.2507189 C12.7738303,16.2507189 13.024103,16.0718906 13.10301,15.7972038 L14.35301,11.4222038 C14.4237917,11.1731804 14.3340879,10.9057975 14.1265648,10.7507193 L12.370705,9.43353178 L16.1019545,7.194469 C16.7894548,7.75189104 17.4546891,8.33704712 18.0804699,8.96321895 L18.9351576,9.81790664 C19.0572279,9.93997695 19.2171496,10.0010312 19.3769544,10.0010312 C19.536876,10.0010312 19.6967977,9.93997636 19.8187512,9.81790604 C20.062502,9.57496049 20.062502,9.14527299 19.8164087,8.93433513 L19.8164081,8.93433513 Z M16.5156275,4.42261698 C17.7218777,4.42261698 18.7031275,3.44097616 18.7031275,2.23511698 C18.7031275,1.0292566 17.7214867,0.0476169798 16.5156275,0.0476169798 C15.3093773,0.0476169798 14.3281275,1.0292566 14.3281275,2.23511698 C14.3281275,3.44097616 15.3085965,4.42261698 16.5156275,4.42261698 Z M16.5156275,1.2983978 C17.0324248,1.2983978 17.4531275,1.7191005 17.4531275,2.2358978 C17.4531275,2.7526951 17.0324248,3.1733978 16.5156275,3.1733978 C15.9988302,3.1733978 15.5781275,2.7526951 15.5781275,2.2358978 C15.5781275,1.7191005 16.0000032,1.2983978 16.5156275,1.2983978 Z M18.5429722,18.485117 C17.4734407,18.8592577 16.3054722,18.836093 15.2511757,18.4216404 L3.75390943,13.9226163 C2.77539369,13.5380852 1.95078429,12.851913 1.36797186,11.9362879 L1.15156587,11.5398038 C0.96523758,11.246835 0.578909479,11.1608982 0.288557969,11.3483978 C-0.00198904426,11.5358973 -0.0874579325,11.922617 0.0981282815,12.2116792 L0.348987542,12.6054287 C1.07398745,13.7448824 2.10562821,14.6015227 3.33258148,15.0827718 L14.7974252,19.5866776 C15.4960978,19.8640228 16.2421906,20.0007415 16.9843781,20.0007415 C17.6503932,20.0007415 18.3175814,19.889648 18.9550817,19.6668744 C19.2810189,19.5527339 19.4531285,19.1961718 19.3396127,18.8703895 C19.2265665,18.5437107 18.8710975,18.3718348 18.5429728,18.485117 L18.5429722,18.485117 Z\",\n id: \"Shape\"\n})));\nconst SvgIconSnowboarding = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 21\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconSnowboarding, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-snowboarding.05f9e448.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Suitcase\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Suitcase\",\n transform: \"translate(0.000000, 0.050000)\",\n fill: \"#000000\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5,3.75 L15,3.75 L15,1.875 C15,0.841015577 14.1601562,0 13.125,0 L6.875,0 C5.83984375,0 5,0.841015577 5,1.875 L5,3.75 L2.5,3.75 C1.11914039,3.75 0,4.87109423 0,6.25 L0,16.25 C0,17.6308596 1.11914039,18.75 2.5,18.75 L17.5,18.75 C18.8808596,18.75 20,17.6308596 20,16.25 L20,6.25 C20,4.87109423 18.8789058,3.75 17.5,3.75 Z M6.25,1.875 C6.25,1.53007746 6.53124988,1.25 6.875,1.25 L13.125,1.25 C13.4687495,1.25 13.75,1.53007746 13.75,1.875 L13.75,3.75 L6.25,3.75 L6.25,1.875 Z M3.75,17.5 L2.5,17.5 C1.81093752,17.5 1.25,16.9390631 1.25,16.25 L1.25,6.25 C1.25,5.56093693 1.81093752,5 2.5,5 L3.75,5 L3.75,17.5 Z M15,17.5 L5,17.5 L5,5 L15,5 L15,17.5 Z M18.75,16.25 C18.75,16.9390631 18.1890631,17.5 17.5,17.5 L16.25,17.5 L16.25,5 L17.5,5 C18.1890631,5 18.75,5.56093693 18.75,6.25 L18.75,16.25 Z\",\n id: \"Shape\"\n})));\nconst SvgIconSuitcase = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 19\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconSuitcase, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-suitcase.1a1bf9ae.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Bars Copy\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Bars-Copy\",\n transform: \"translate(0.000000, 0.906250)\",\n fill: \"#000000\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.714285714,1.42857143 L19.2857143,1.42857143 C19.6805355,1.42857143 20,1.10910688 20,0.754464013 C20,0.399821145 19.6785709,0 19.2857143,0 L0.714285714,0 C0.319464547,0 0,0.319643021 0,0.674107415 C0,1.02857045 0.319464547,1.42857143 0.714285714,1.42857143 Z M19.2857143,7.14285714 L0.714285714,7.14285714 C0.319464547,7.14285714 0,7.46428558 0,7.85714286 C0,8.24999946 0.319464547,8.57142857 0.714285714,8.57142857 L19.2857143,8.57142857 C19.6785709,8.57142857 20,8.24999946 20,7.85714286 C20,7.46428626 19.6785709,7.14285714 19.2857143,7.14285714 Z M19.2857143,14.2857143 L0.714285714,14.2857143 C0.319464547,14.2857143 0,14.6051788 0,14.9598217 C0,15.3144646 0.319464547,15.7142857 0.714285714,15.7142857 L19.2857143,15.7142857 C19.6805355,15.7142857 20,15.3948212 20,15.0401783 C20,14.6855354 19.6785709,14.2857143 19.2857143,14.2857143 Z\",\n id: \"Shape\"\n})));\nconst SvgIconBars = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"17px\",\n viewBox: \"0 0 20 17\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconBars, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-bars.6ee20366.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"arrow-rotate-right\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Version_2\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"arrow-rotate-right\",\n transform: \"translate(0.500000, 0.500000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.4953122,0.00515556335 C14.2204685,0.00515556335 17.6109381,1.96265602 19.5,5.13328171 L19.5,0.75 C19.5,0.335625172 19.8375006,0 20.25,0 C20.6624994,0 21,0.335625172 21,0.75 L21,6.75 C21,7.16249943 20.6624994,7.5 20.25,7.5 L14.25,7.5 C13.8375006,7.5 13.5,7.16249943 13.5,6.75 C13.5,6.33750057 13.8375006,6 14.25,6 L18.274219,6 C16.6640625,3.22031307 13.7296872,1.5 10.5,1.5 C5.53593779,1.5 1.5,5.53593779 1.5,10.5 C1.5,15.4640622 5.53734398,19.5 10.5,19.5 C13.2881255,19.5 15.8765631,18.2385936 17.5921869,16.0387502 C17.8470926,15.7106252 18.3178124,15.650578 18.6454682,15.9098439 C18.9713902,16.1647496 19.0292344,16.6364064 18.7743745,16.961719 C16.7681251,19.5281253 13.7446861,20.9953136 10.4915621,20.9953136 C4.70624971,20.9953136 0,16.2890625 0,10.5 C0,4.7109375 4.70624971,0.00515556335 10.4953122,0.00515556335 Z\",\n id: \"Path\"\n})));\nconst SvgIconReset = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconReset, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-reset.c3c36e3c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"Warning\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Final\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Grafiska-element\",\n transform: \"translate(-705.000000, -868.000000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M732.68738,888.957661 L721.022118,869.143145 C720.12904,867.618952 717.875286,867.618952 716.976191,869.143145 L705.316397,888.957661 C704.418944,890.476411 705.536742,892.387097 707.335533,892.387097 L730.666059,892.387097 C732.457686,892.387097 733.578819,890.481855 732.687381,888.957661 L732.68738,888.957661 Z M717.645161,874.774194 C717.645161,874.02621 718.252016,873.419355 719,873.419355 C719.747984,873.419355 720.354839,874.029032 720.354839,874.774194 L720.354839,882 C720.354839,882.747984 719.747984,883.354839 719.050806,883.354839 C718.353628,883.354839 717.645161,882.750806 717.645161,882 L717.645161,874.774194 Z M719.451613,890.580645 C718.454157,890.580645 717.645161,889.77165 717.645161,888.774194 C717.645161,887.776739 718.453583,886.967742 719.451613,886.967742 C720.449643,886.967742 721.258065,887.776737 721.258065,888.774194 C721.255766,889.7705 720.451366,890.580645 719.451613,890.580645 Z\",\n id: \"Warning\"\n})));\nconst SvgIconWarning = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"28px\",\n height: \"25px\",\n viewBox: \"0 0 28 25\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconWarning, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-warning.c84f13fb.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"circle-exclamation copy 4\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Invision\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"circle-exclamation-copy-4\",\n transform: \"translate(0.000000, 0.500000)\",\n fill: \"currentColor\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.875,2.5 L13.125,2.5 L11.8113279,0.751953125 C11.4609373,0.278320312 10.902344,0 10.3125,0 L7.1875,0 C6.59765601,0 6.03906274,0.278320312 5.68750024,0.751953125 L4.375,2.5 L0.625,2.5 C0.28128922,2.5 0,2.78125048 0,3.125 C0,3.46871138 0.28128922,3.75 0.625,3.75 L16.875,3.75 C17.2187889,3.75 17.5,3.46871138 17.5,3.125 C17.5,2.78125048 17.2187495,2.5 16.875,2.5 Z M5.9375,2.5 L6.68945312,1.49921894 C6.80859387,1.34296894 6.9921875,1.25 7.1875,1.25 L10.3125,1.25 C10.5078125,1.25 10.6933594,1.34277344 10.8105469,1.49902344 L11.5625,2.5 L5.9375,2.5 Z M15.625,5 C15.2812505,5 15,5.28125048 15,5.625 L15,16.875 C15,17.9089844 14.1589844,18.75 13.125,18.75 L4.375,18.75 C3.34101558,18.75 2.5,17.9101562 2.5,16.875 L2.5,5.625 C2.5,5.28125048 2.22031236,5 1.875,5 C1.52968764,5 1.25,5.28125048 1.25,5.625 L1.25,16.875 C1.25,18.5976565 2.6519531,20 4.375,20 L13.125,20 C14.8480463,20 16.25,18.5980463 16.25,16.875 L16.25,5.625 C16.25,5.28125048 15.9687495,5 15.625,5 Z M5.6250006,16.25 L5.6250006,7.5 C5.6250006,7.15453148 5.34546852,6.875 5,6.875 C4.65453148,6.875 4.375,7.15625048 4.375,7.5 L4.375,16.25 C4.375,16.5954685 4.65453148,16.875 5.0000006,16.875 C5.34546912,16.875 5.6250006,16.5937495 5.6250006,16.25 L5.6250006,16.25 Z M9.3750006,16.25 L9.3750006,7.5 C9.3750006,7.15453148 9.09546912,6.875 8.7500006,6.875 C8.40453207,6.875 8.1250006,7.15625048 8.1250006,7.5 L8.1250006,16.25 C8.1250006,16.5954685 8.40453207,16.875 8.7500006,16.875 C9.09546912,16.875 9.3750006,16.5937495 9.3750006,16.25 Z M13.1250006,16.25 L13.1250006,7.5 C13.1250006,7.15453148 12.8454691,6.875 12.5000006,6.875 C12.1545321,6.875 11.8750006,7.15625048 11.8750006,7.5 L11.8750006,16.25 C11.8750006,16.5954685 12.1545321,16.875 12.5000006,16.875 C12.8454691,16.875 13.1250006,16.5937495 13.1250006,16.25 Z\",\n id: \"Shape\"\n})));\nconst SvgIconBin = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"21px\",\n viewBox: \"0 0 18 21\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconBin, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-bin.695601f7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#006aa7\",\n d: \"M0 0h16v10H0z\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fecc00\",\n d: \"M5 0h2v10H5z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fecc00\",\n d: \"M0 4h16v2H0z\"\n});\nconst SvgIconSvFlag = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"2 0 10 10\",\n width: 24,\n height: 24,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconSvFlag, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-sv-flag.1db4fb0f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FEFEFE\",\n d: \"M2.87 38.4h49.46c1.59-.09 2.87-1.42 2.87-3.03V3.03c0-1.66-1.35-3.02-3.01-3.03H3.01A3.037 3.037 0 0 0 0 3.03v32.33c0 1.62 1.28 2.95 2.87 3.04z\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8102E\",\n d: \"M23.74 23.03V38.4h7.68V23.03H55.2v-7.68H31.42V0h-7.68v15.35H0v7.68h23.74z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#012169\",\n d: \"M33.98 12.43V0h18.23c1.26.02 2.34.81 2.78 1.92L33.98 12.43zM33.98 25.97V38.4h18.35c1.21-.07 2.23-.85 2.66-1.92L33.98 25.97zM21.18 25.97V38.4H2.87a3.043 3.043 0 0 1-2.66-1.94l20.97-10.49zM21.18 12.43V0H2.99A3.04 3.04 0 0 0 .21 1.94l20.97 10.49zM0 12.8h7.65L0 8.97v3.83zM55.2 12.8h-7.69l7.69-3.85v3.85zM55.2 25.6h-7.69l7.69 3.85V25.6zM0 25.6h7.65L0 29.43V25.6z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8102E\",\n d: \"M55.2 3.25 36.15 12.8h4.26L55.2 5.4V3.25zM19.01 25.6h-4.26L0 32.98v2.15l19.05-9.53h-.04zM10.52 12.81h4.26L0 5.41v2.14l10.52 5.26zM44.63 25.59h-4.26l14.83 7.43v-2.14l-10.57-5.29z\"\n});\nconst SvgIconEnFlag = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"9 0 38 38\",\n width: 24,\n height: 24,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconEnFlag, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-en-flag.c2f6f3da.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"\n});\nconst SvgIconInfo = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 192 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconInfo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-info.e5a73bc9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM184 72c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H184zm0 160c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H184zm0 160c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H184zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"\n});\nconst SvgIconList = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 512 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconList, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-list.1f5a7b7a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 16L7 14.5M7 14.5L1 17.5V4.5L7 1.5M7 14.5V1.5M7 1.5L13 4.5M13 4.5L19 1.5V9M13 4.5V10M17 15.5V15.51M19.121 17.621C19.5406 17.2015 19.8265 16.6669 19.9423 16.085C20.0581 15.503 19.9988 14.8997 19.7717 14.3515C19.5447 13.8033 19.1602 13.3347 18.6668 13.005C18.1734 12.6753 17.5934 12.4994 17 12.4994C16.4066 12.4994 15.8266 12.6753 15.3332 13.005C14.8398 13.3347 14.4553 13.8033 14.2283 14.3515C14.0012 14.8997 13.9419 15.503 14.0577 16.085C14.1735 16.6669 14.4594 17.2015 14.879 17.621C15.297 18.0397 16.004 18.666 17 19.5C18.0513 18.61 18.7583 17.9837 19.121 17.621Z\",\n stroke: \"#272723\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nconst SvgIconMap = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 21,\n viewBox: \"0 0 21 21\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconMap, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-map.b5341234.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V248c0-13.3-10.7-24-24-24H216c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v64H216zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"\n});\nconst SvgIconCircleInfo = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 512 512\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\nconst ForwardRef = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIconCircleInfo, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icon-circle-info.43cbd44f.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as arrow } from './icon-arrow.svg';\r\nimport { ReactComponent as chevron } from './icon-chevron.svg';\r\nimport { ReactComponent as chevronSolid } from './icon-chevron-solid.svg';\r\nimport { ReactComponent as declineScale } from './icon-decline-scale.svg';\r\nimport { ReactComponent as glasses } from './icon-glasses.svg';\r\nimport { ReactComponent as marker } from './icon-marker.svg';\r\nimport { ReactComponent as menu } from './icon-menu.svg';\r\nimport { ReactComponent as plus } from './icon-plus.svg';\r\nimport { ReactComponent as search } from './icon-search.svg';\r\nimport { ReactComponent as snowflake } from './icon-snowflake.svg';\r\nimport { ReactComponent as angle } from './icon-angle.svg';\r\nimport { ReactComponent as borderOuter } from './icon-border-outer.svg';\r\nimport { ReactComponent as calendar } from './icon-calendar.svg';\r\nimport { ReactComponent as chevrons } from './icon-chevrons.svg';\r\nimport { ReactComponent as circleExclamation } from './icon-circle-exclamation.svg';\r\nimport { ReactComponent as compass } from './icon-compass.svg';\r\nimport { ReactComponent as crosshairs } from './icon-crosshairs.svg';\r\nimport { ReactComponent as minus } from './icon-minus.svg';\r\nimport { ReactComponent as mountain } from './icon-mountain.svg';\r\nimport { ReactComponent as remove } from './icon-remove.svg';\r\nimport { ReactComponent as snowboarding } from './icon-snowboarding.svg';\r\nimport { ReactComponent as suitcase } from './icon-suitcase.svg';\r\nimport { ReactComponent as bars } from './icon-bars.svg';\r\nimport { ReactComponent as reset } from './icon-reset.svg';\r\nimport { ReactComponent as iconWarning } from './icon-warning.svg';\r\nimport { ReactComponent as bin } from './icon-bin.svg';\r\nimport { ReactComponent as svFlag } from './icon-sv-flag.svg';\r\nimport { ReactComponent as enFlag } from './icon-en-flag.svg';\r\nimport { ReactComponent as info } from './icon-info.svg';\r\nimport { ReactComponent as list } from './icon-list.svg';\r\nimport { ReactComponent as map } from './icon-map.svg';\r\nimport { ReactComponent as cricleInfo } from './icon-circle-info.svg';\r\n\r\nexport interface IconList {\r\n\t/** The icon to be shown */\r\n\ticon:\r\n\t\t| 'chevron'\r\n\t\t| 'chevronSolid'\r\n\t\t| 'arrow'\r\n\t\t| 'plus'\r\n\t\t| 'search'\r\n\t\t| 'menu'\r\n\t\t| 'glasses'\r\n\t\t| 'marker'\r\n\t\t| 'snowflake'\r\n\t\t| 'declineScale'\r\n\t\t| 'angle'\r\n\t\t| 'borderOuter'\r\n\t\t| 'calendar'\r\n\t\t| 'chevrons'\r\n\t\t| 'circleExclamation'\r\n\t\t| 'compass'\r\n\t\t| 'crosshairs'\r\n\t\t| 'minus'\r\n\t\t| 'mountain'\r\n\t\t| 'remove'\r\n\t\t| 'snowboarding'\r\n\t\t| 'suitcase'\r\n\t\t| 'bars'\r\n\t\t| 'reset'\r\n\t\t| 'iconWarning'\r\n\t\t| 'bin'\r\n\t\t| 'svFlag'\r\n\t\t| 'enFlag'\r\n\t\t| 'info'\r\n\t\t| 'list'\r\n\t\t| 'map'\r\n\t\t| 'cricleInfo';\r\n}\r\n\r\nexport default {\r\n\tchevron,\r\n\tchevronSolid,\r\n\tarrow,\r\n\tplus,\r\n\tsearch,\r\n\tmenu,\r\n\tglasses,\r\n\tmarker,\r\n\tsnowflake,\r\n\tdeclineScale,\r\n\tangle,\r\n\tborderOuter,\r\n\tcalendar,\r\n\tchevrons,\r\n\tcircleExclamation,\r\n\tcompass,\r\n\tcrosshairs,\r\n\tminus,\r\n\tmountain,\r\n\tremove,\r\n\tsnowboarding,\r\n\tsuitcase,\r\n\tbars,\r\n\treset,\r\n\ticonWarning,\r\n\tbin,\r\n\tsvFlag,\r\n\tenFlag,\r\n\tinfo,\r\n\tlist,\r\n\tmap,\r\n\tcricleInfo,\r\n};\r\n","/**\r\n * Icon\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\nimport icons, { IconList } from 'theme/icons';\r\n\r\ntype IconSizes = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 77 | 88 | 99;\r\ntype IconDirections = 'left' | 'up' | 'right' | 'down';\r\n\r\ninterface Props extends IconList {\r\n\t/** Set the size of the icon.
1 = 24px
2 = 32px
3 = 40px
4 = 48px*/\r\n\tsize?: IconSizes;\r\n\r\n\t/** Set the color of the icon */\r\n\tcolor?: string;\r\n\r\n\t/** Set the direction of the icon. */\r\n\tdirection?: IconDirections;\r\n\r\n\t/** Animate the icon. */\r\n\tanimate?: 'spin';\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassName?: string;\r\n\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\nconst getSize = (size: IconSizes) => {\r\n\tswitch (size) {\r\n\t\tcase 1:\r\n\t\t\treturn 'w-4 h-4';\r\n\t\tcase 2:\r\n\t\t\treturn 'w-6 h-6';\r\n\t\tcase 3:\r\n\t\t\treturn 'w-8 h-8';\r\n\t\tcase 4:\r\n\t\t\treturn 'w-10 h-10';\r\n\t\tcase 5:\r\n\t\t\treturn 'w-12 h-12';\r\n\t\tcase 6:\r\n\t\t\treturn 'w-16 h-16';\r\n\t\tcase 7:\r\n\t\t\treturn 'w-22 h-22';\r\n\t\tcase 99:\r\n\t\t\treturn 'w-3 h-3';\r\n\t\tcase 88:\r\n\t\t\treturn 'w-2 h-2';\r\n\t\tcase 77:\r\n\t\t\treturn 'w-5 h-5';\r\n\t}\r\n};\r\n\r\nconst getRotation = (direction: IconDirections) => {\r\n\tswitch (direction) {\r\n\t\tcase 'up':\r\n\t\t\treturn '-rotate-90';\r\n\t\tcase 'right':\r\n\t\t\treturn 'rotate-0';\r\n\t\tcase 'down':\r\n\t\t\treturn 'rotate-90';\r\n\t\tcase 'left':\r\n\t\t\treturn 'rotate-180';\r\n\t}\r\n};\r\n\r\n/** This is the icon component that handles all the icons in the project.
The user will be able to set the color, size, direction and animation for all the icons. */\r\nconst Icon: React.FC = ({\r\n\ticon,\r\n\tcolor = '#000',\r\n\tsize = 1,\r\n\tdirection = 'right',\r\n\tanimate = undefined,\r\n\tclassName,\r\n\texpanded,\r\n\t...htmlAttributes\r\n}) => {\r\n\tconst IconSvg = icons[icon];\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Icon;\r\n","import React, { useEffect, useState } from 'react';\r\nimport Button from 'components/Button';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport Icon from 'components/Icon';\r\nimport { useSelector } from 'react-redux';\r\n//import { selectSkipToTop } from 'store/modules/model';\r\nimport clsx from 'clsx';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nexport interface Props {\r\n\tfooterHeight: number;\r\n}\r\ntype Fn = () => void;\r\n\r\nconst GoTopButton: React.FC = ({ footerHeight }) => {\r\n\t//const skipToTop: any = useSelector(selectSkipToTop);\r\n\tconst fh = footerHeight;\r\n\tconst [showGoTop, setShowGoTop] = useState(false);\r\n\tconst [endOfThePage, setEndOfThePage] = useState(true);\r\n\tconst isTablet = useMediaQuery({ query: '(max-width: 767px)' });\r\n\tconst location = useLocation();\r\n\tconst isEnglish = location.pathname.startsWith('/en/');\r\n\tlet buttonName = isEnglish ? 'To the top' : 'Till toppen';\r\n\r\n\tconst handleButtonState: Fn = () => {\r\n\t\t// show button\r\n\t\tif (window.scrollY > 100) {\r\n\t\t\tsetShowGoTop(true);\r\n\t\t\ttranslateYcoord();\r\n\t\t} else {\r\n\t\t\tsetShowGoTop(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst translateYcoord: Fn = () => {\r\n\t\tconst totalPageHeight: number = document.body.offsetHeight;\r\n\t\tconst scrollPoint: number =\r\n\t\t\twindow.scrollY + window.innerHeight + footerHeight;\r\n\r\n\t\tif (scrollPoint >= totalPageHeight - 100) {\r\n\t\t\tsetEndOfThePage(true);\r\n\t\t} else {\r\n\t\t\tsetEndOfThePage(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleScrollUp: Fn = () => {\r\n\t\twindow.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\r\n\t};\r\n\r\n\tconst handleTranslateY = () => {\r\n\t\tlet total = endOfThePage ? -fh : 0;\r\n\t\treturn `translateY(${total.toString()}px)`;\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\twindow.addEventListener('scroll', handleButtonState);\r\n\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('scroll', handleButtonState);\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{isTablet ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{buttonName}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GoTopButton;\r\n","/**\r\n * Meta\r\n */\r\n\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { selectMetaData } from 'store/modules/model';\r\nimport favicon144 from './ico/apple-touch-icon-144x144-precomposed.png';\r\nimport favicon114 from './ico/apple-touch-icon-114x114-precomposed.png';\r\nimport favicon72 from './ico/apple-touch-icon-72x72-precomposed.png';\r\nimport favicon57 from './ico/apple-touch-icon-57x57-precomposed.png';\r\nimport favicon from './ico/favicon.png';\r\n\r\nimport { Helmet } from 'react-helmet';\r\n\r\ninterface Props {\r\n\t/** Title for the page */\r\n\ttitle?: string;\r\n\r\n\t/** Meta description */\r\n\tdescription?: string;\r\n\r\n\t/** Meta keywords */\r\n\tkeywords?: string;\r\n\r\n\t/** Open graph site name\r\n\t *\r\n\t * _A one to two sentence description of your object._\r\n\t */\r\n\togSiteName?: string;\r\n\r\n\t/** Open graph type\r\n\t *\r\n\t * _The [type](https://ogp.me/#types) of your object, e.g., \"video.movie\". Depending on the type you specify, other properties may also be required._\r\n\t */\r\n\togType?: string;\r\n\r\n\t/** Open graph title\r\n\t *\r\n\t * _The title of your object as it should appear within the graph, e.g., \"The Rock\"._\r\n\t */\r\n\togTitle?: string;\r\n\r\n\t/** Open graph url\r\n\t *\r\n\t * _The canonical URL of your object that will be used as its permanent ID in the graph, e.g., \"http://www.imdb.com/title/tt0117500/\"._\r\n\t */\r\n\togUrl?: string;\r\n\r\n\t/** Open graph description\r\n\t *\r\n\t * _A one to two sentence description of your object._\r\n\t */\r\n\togDescription?: string;\r\n\r\n\t/** Open graph image\r\n\t *\r\n\t * _An image URL which should represent your object within the graph._\r\n\t *\r\n\t * Read more: [Formats for open graph images](https://whatabout.dev/formats-for-open-graph-images)\r\n\t */\r\n\togImage?: string | string[];\r\n\r\n\t/** Twitter card\r\n\t *\r\n\t * _The card type, which will be one of “summary”, “summary_large_image”, “app”, or “player”._\r\n\t */\r\n\ttwitterCard?: string;\r\n\r\n\t/** Twitter card title\r\n\t *\r\n\t * _A concise title for the related content._\r\n\t */\r\n\ttwitterTitle?: string;\r\n\r\n\t/** Twitter card description\r\n\t *\r\n\t * _A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description or use this field to describe the general services provided by the website._\r\n\t */\r\n\ttwitterDescription?: string;\r\n\r\n\t/** Twitter card image\r\n\t *\r\n\t * _A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card support an aspect ratio of 2:1 with minimum dimensions of 300x157 or maximum of 4096x4096 pixels. Images must be less than 5MB in size. JPG, PNG, WEBP and GIF formats are supported. Only the first frame of an animated GIF will be used. SVG is not supported._\r\n\t *\r\n\t * Read more: [Formats for open graph images](https://whatabout.dev/formats-for-open-graph-images)\r\n\t */\r\n\ttwitterImage?: string;\r\n}\r\n\r\n/**\r\n * Component that handles meta data for the .\r\n *\r\n * - https://ogp.me/\r\n * - https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup\r\n * - https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started\r\n */\r\nconst Meta: React.FC = ({ keywords }) => {\r\n\tconst metaData = useSelector(selectMetaData);\r\n\tconst mappedMetaData = {\r\n\t\ttitle: metaData?.title || undefined,\r\n\t\tdescription: metaData?.description || undefined,\r\n\t\togSiteName: metaData?.openGraph?.siteName || undefined,\r\n\t\togType: metaData?.openGraph?.type || 'website',\r\n\t\togTitle: metaData?.openGraph?.title || undefined,\r\n\t\togUrl: metaData?.openGraph?.url || undefined,\r\n\t\togDescription: metaData?.openGraph?.description || undefined,\r\n\t\togImage: metaData?.openGraph?.image || undefined,\r\n\t\ttwitterCard: metaData?.twitter?.card || 'summary',\r\n\t\ttwitterTitle: metaData?.twitter?.title || undefined,\r\n\t\ttwitterDescription: metaData?.twitter?.description || undefined,\r\n\t\ttwitterImage: metaData?.twitter?.image || undefined,\r\n\t};\r\n\tconst {\r\n\t\ttitle,\r\n\t\tdescription,\r\n\t\togSiteName,\r\n\t\togType,\r\n\t\togTitle,\r\n\t\togUrl,\r\n\t\togImage,\r\n\t\ttwitterCard,\r\n\t\ttwitterTitle,\r\n\t\ttwitterImage,\r\n\t\togDescription = description,\r\n\t\ttwitterDescription = description,\r\n\t} = mappedMetaData;\r\n\r\n\tconst renderOgImage = (image: string | string[]) => {\r\n\t\tlet ogImages: string[];\r\n\r\n\t\tif (typeof image === 'string') {\r\n\t\t\togImages = [image];\r\n\t\t} else {\r\n\t\t\togImages = image;\r\n\t\t}\r\n\r\n\t\treturn ogImages.map((img: string) => {\r\n\t\t\treturn ;\r\n\t\t});\r\n\t};\r\n\r\n\t// prettier-ignore\r\n\treturn (\r\n\t\t\r\n\t\t\t{title && {title}}\r\n\t\t\t{description && }\r\n\t\t\t{keywords && }\r\n\t\t\t{ogSiteName && }\r\n\t\t\t{ogType && }\r\n\t\t\t{(ogTitle || title) && }\r\n\t\t\t{ogUrl && }\r\n\t\t\t{(ogDescription) && }\r\n\t\t\t{ogImage && renderOgImage(ogImage)}\r\n\r\n\t\t\t{twitterCard && }\r\n\t\t\t{twitterCard && twitterTitle && }\r\n\t\t\t{twitterCard && (twitterDescription) && }\r\n\t\t\t{twitterCard && twitterImage && }\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{/* */}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Meta;\r\n","/**\r\n * Link\r\n */\r\n\r\nimport React, { forwardRef } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\n\r\ninterface Props {\r\n\t/** The url the link should navigate to */\r\n\tto?: string;\r\n\r\n\t/** The url the link should navigate to */\r\n\thref?: string;\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassName?: string;\r\n\r\n\t/** Whether or not the page requires a full reload */\r\n\tfullReload?: boolean;\r\n\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\nconst Link = React.forwardRef(\r\n\t(\r\n\t\t{\r\n\t\t\tto,\r\n\t\t\thref,\r\n\t\t\tchildren,\r\n\t\t\tclassName = '',\r\n\t\t\tfullReload = false,\r\n\t\t\t...htmlAttributes\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst url = to || href || '#';\r\n\r\n\t\tif (fullReload || url.toLowerCase().includes('?')) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport default Link;\r\n","import { ModelLocalization } from \"types/epi\";\r\n\r\nexport const translate = (\r\n\tid: string,\r\n\tfallback: string,\r\n\tlocalization: ModelLocalization | undefined\r\n) => {\r\n\tif (localization && id in localization.translations) {\r\n\t\treturn localization.translations[id];\r\n\t}\r\n\r\n\treturn fallback;\r\n};","/**\r\n * Image\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\nimport { IImage } from 'types/global';\r\nimport Link from 'components/Link';\r\nimport { useImageTitle } from 'hooks/useImageTitle';\r\n\r\nexport interface ImageProps extends IImage {\r\n\t/** The image figure caption */\r\n\tfigCaption?: string;\r\n\r\n\t/** Optional classname for figure-tag. */\r\n\tfigClassName?: string;\r\n\r\n\t/** Optional other html props will be spread on the component */\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\n/** The image component with or without the figure caption. */\r\nconst Image: React.FC = ({\r\n\tsrc,\r\n\talt = \"\",\r\n\tclassName,\r\n\tfigCaption,\r\n\tfigClassName,\r\n\ttitle,\r\n\tlink,\r\n\tloading = \"eager\",\r\n\tdecoding = \"auto\",\r\n\tfetchpriority = \"auto\",\r\n\tsrcSet,\r\n\tsrcSetSizes,\r\n\tphotographer,\r\n\tillustrator,\r\n\tagency,\r\n\theight,\r\n\twidth,\r\n\t...htmlAttributes\r\n}) => {\r\n\r\n\tconst imgTitle = useImageTitle(photographer, agency, illustrator);\r\n\r\n\tif (!src) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{!figCaption && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t{link ? \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{figCaption && (\r\n\t\t\t\t
\r\n\t\t\t\t{link ? \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t:\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t
\r\n\t\t\t\t\t{figCaption}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Image;\r\n","import Image, { ImageProps } from './Image';\r\nexport default Image;\r\nexport type { ImageProps };\r\n","import { useSelector } from \"react-redux\";\r\nimport { selectLocalization } from \"store/modules/model\";\r\nimport { translate } from \"utils/helper-utils\";\r\n\r\nexport const useImageTitle = (photographer?: string, agency?: string, illustrator?: string) => {\r\n \r\n const localization = useSelector(selectLocalization);\r\n\tconst photographerLabel = translate(\r\n\t\t'/frontend/image/photographer',\r\n\t\t'Photographer',\r\n\t\tlocalization\r\n\t);\r\n\r\n\tconst agencyLabel = translate(\r\n\t\t'/frontend/image/agency',\r\n\t\t'Agency',\r\n\t\tlocalization\r\n\t);\r\n\r\n\tconst illustratorLabel = translate(\r\n\t\t'/frontend/image/illustrator',\r\n\t\t'Illustrator',\r\n\t\tlocalization\r\n\t);\r\n\r\n let parts: string[] = [];\r\n let labels: string[] = [];\r\n const separator = \":\";\r\n\r\n if (photographer) {\r\n parts = [photographer ?? \"\", agency ?? \"\"];\r\n labels = [photographerLabel, agencyLabel];\r\n }\r\n\r\n if (illustrator) {\r\n parts = [illustrator ?? \"\", agency ?? \"\"];\r\n labels = [illustratorLabel, agencyLabel];\r\n }\r\n\r\n if (parts.length != labels.length) {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tconst sb: string[] = [];\r\n\r\n\tfor (let i: number = 0; i < parts.length; i++) {\r\n\t\tif (parts[i] && labels[i]) {\r\n sb.push(`${labels[i]}${separator} ${parts[i]}`);\r\n }\r\n\t}\r\n\r\n\treturn sb.join(\"\\n\");\r\n};","import Link from 'components/Link';\r\nimport React from 'react';\r\n\r\nimport { FooterColumnItems } from 'types/global';\r\n\r\ninterface Props {\r\n\theader: string;\r\n\titems: FooterColumnItems[];\r\n\tindex: number;\r\n}\r\n\r\nconst getModelType = (items: FooterColumnItems, index: number) => {\r\n\tswitch (items.modelType) {\r\n\t\tcase 'FooterTextModel':\r\n\t\t\treturn (\r\n\t\t\t\t

\r\n\t\t\t\t\t{items.text}\r\n\t\t\t\t

\r\n\t\t\t);\r\n\t\tcase 'FooterLinkModel':\r\n\t\t\tif (items.url?.includes('mailto:') || !items.url?.startsWith('/')) {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{items.text}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{items.text}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\t}\r\n};\r\n\r\nconst FooterColumn: React.FC = ({ header, items, index }) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{header}\r\n\t\t\t\r\n\r\n\t\t\t<>{items.map(getModelType)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default FooterColumn;\r\n","import React from 'react';\r\n\r\ninterface Props {\r\n\tclassName?: string;\r\n\tstyle?: React.CSSProperties;\r\n}\r\n\r\nconst FooterMountain: React.FC = ({ className, style }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\tMountain\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default FooterMountain;\r\n","/**\r\n * PageFooter\r\n */\r\n\r\nimport React, { useEffect } from 'react';\r\nimport { IImage as LavinImage, FooterColumnItems } from 'types/global';\r\nimport { useSelector } from 'react-redux';\r\nimport { selectMenuIsOpen } from 'store/modules/model';\r\nimport Image from 'components/Image';\r\nimport FooterColumn from 'components/PageFooter/FooterColumn';\r\nimport FooterMountain from 'components/PageFooter/FooterMountain';\r\n\r\ninterface Props {\r\n\tlavinImage?: LavinImage;\r\n\t/* Columns containing list of Page Links and/or other Content (like contact us info) */\r\n\tcolumns?: Array<{\r\n\t\tmodelType: 'FooterColumnModel' | string;\r\n\t\theader: string;\r\n\t\titems: Array;\r\n\t}>;\r\n\r\n\t/* This is the Naturvardsverket Logo sent from the backend */\r\n\tlogo?: {\r\n\t\tmodelType: string;\r\n\t\tsrc: string;\r\n\t\talt: string;\r\n\t};\r\n\r\n\t/* This is the Caption Text for the Logo sent from the backend */\r\n\tlogoText?: string;\r\n\tcopyright?: string;\r\n\r\n\t/* get the component height */\r\n\tfnFooterHeight: (val: number) => void;\r\n}\r\n\r\n/** Page Footer for Lavinprognoser */\r\nconst PageFooter: React.FC = ({\r\n\tlavinImage,\r\n\tcolumns,\r\n\tlogo,\r\n\tcopyright,\r\n\tlogoText,\r\n\tfnFooterHeight,\r\n}) => {\r\n\tconst targetRef = React.useRef(null);\r\n\tuseEffect(() => {\r\n\t\tif (targetRef.current) {\r\n\t\t\t//const isTablet = useMediaQuery({ query: '(max-width: 767px)' });\r\n\t\t\t// TODO fix mobile height\r\n\t\t\tfnFooterHeight(targetRef.current.offsetHeight);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst hideFooter = useSelector(selectMenuIsOpen);\r\n\r\n\t// Conditionally hide the footer when the menu is open and i mobile\r\n\tif (hideFooter) {\r\n\t\treturn null; // Return null when the menu is open to hide the footer\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{lavinImage && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{columns !== undefined &&\r\n\t\t\t\t\tcolumns.map((col, index) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{logo && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{logoText && (\r\n\t\t\t\t\t\t\t

{logoText}

\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t

{`${copyright}`}

\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default PageFooter;\r\n","/**\r\n * LangButton\r\n */\r\n\r\nimport React, { useState } from 'react';\r\nimport { Link } from 'types/global';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport Icon from 'components/Icon';\r\n\r\ninterface Props {\r\n\t/** Link contain languages properties */\r\n\titem: Link;\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassName?: string;\r\n\r\n\t/** Callback method when the menu closes */\r\n\tsetMenuIsOpen: (value: React.SetStateAction) => void;\r\n\r\n\t/** this bool allow to know if we are in mobile device or not */\r\n\tisMobile?: boolean;\r\n}\r\n\r\n/* Switch language component. */\r\nconst LangButton: React.FC = ({\r\n\titem,\r\n\tclassName,\r\n\tsetMenuIsOpen,\r\n\tisMobile,\r\n}) => {\r\n\tconst [showTooltip, setShowTooltip] = React.useState(false);\r\n\tconst lang = item?.url?.startsWith('/en') ? 'en' : 'sv';\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{showTooltip && {item?.text}}\r\n\t\t\t setMenuIsOpen(false)}\r\n\t\t\t\tlang={lang}\r\n\t\t\t\tonMouseEnter={() => setShowTooltip(true)}\r\n\t\t\t\tonMouseLeave={() => setShowTooltip(false)}\r\n\t\t\t\tonFocus={() => setShowTooltip(true)}\r\n\t\t\t\tonBlur={() => setShowTooltip(false)}\r\n\t\t\t>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default LangButton;\r\n","/**\r\n * MenuUl\r\n */\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport Link from 'components/Link';\r\nimport Icon from 'components/Icon';\r\nimport clsx from 'clsx';\r\n\r\ninterface MenuUlProps {\r\n\t/** The pane level (1, 2, 3) */\r\n\tlevel: number;\r\n\t/** Main menu items */\r\n\tmenuItems?: any;\r\n\t/** Callback method when the menu closes */\r\n\tsetMenuIsOpen: (value: React.SetStateAction) => void;\r\n\r\n\tsetLastChildRef: (ref: React.RefObject) => void;\r\n}\r\n\r\n/* Main description for this component. */\r\nconst MenuUl: React.FC = ({\r\n\tmenuItems,\r\n\tlevel,\r\n\tsetMenuIsOpen,\r\n\tsetLastChildRef,\r\n}) => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{menuItems.map((link: any, index: number) => {\r\n\t\t\t\tconst ref = React.createRef();\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default MenuUl;\r\n\r\n/**\r\n * MenuLi\r\n */\r\n\r\ninterface MenuLiProps {\r\n\t/** The link level (1, 2, 3) */\r\n\tlevel: number;\r\n\tlink: any;\r\n\t/** Callback method when the menu closes */\r\n\tsetMenuIsOpen: (value: React.SetStateAction) => void;\r\n\t/** add margin top if its the 1st li */\r\n\tisFirstLi: boolean;\r\n\r\n\tsetLastRef: (ref: any) => void;\r\n}\r\n\r\n/** Main description for this component. */\r\nconst MenuLi = React.forwardRef(\r\n\t({ level, link, setMenuIsOpen, isFirstLi, setLastRef }, ref) => {\r\n\t\tconst [child, setChild] = useState(null);\r\n\t\tconst [activeChildren, setActiveChildren] = useState(false);\r\n\t\tconst [optSelected, setOptSelected] = useState(false);\r\n\t\tconst [areaExpanded, setAreaExpanded] = useState(false);\r\n\t\tuseEffect(() => {\r\n\t\t\tif (link && link.active) {\r\n\t\t\t\tsetActiveChildrens(link);\r\n\t\t\t}\r\n\t\t}, []);\r\n\r\n\t\t// set the last li Ref\r\n\t\tsetLastRef(ref);\r\n\r\n\t\tconst setActiveChildrens = (link: any) => {\r\n\t\t\tconst childLinks = link.children || [];\r\n\t\t\tlet links: any[] = [];\r\n\t\t\tif (level >= 2) {\r\n\t\t\t\tlinks = [...childLinks];\r\n\t\t\t} else {\r\n\t\t\t\tsetOptSelected(true);\r\n\t\t\t\tlinks = childLinks;\r\n\t\t\t}\r\n\r\n\t\t\tsetChild(\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tconst handleSetActiveChildren = (e: MouseEvent, link: any) => {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tif (!activeChildren) {\r\n\t\t\t\tsetActiveChildrens(link);\r\n\t\t\t} else {\r\n\t\t\t\tsetChild(null);\r\n\t\t\t\tsetOptSelected(false);\r\n\t\t\t}\r\n\r\n\t\t\tsetActiveChildren(!activeChildren);\r\n\t\t\tsetAreaExpanded((prev: boolean) => !prev);\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{optSelected && (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t setMenuIsOpen(false)}\r\n\t\t\t\t\t\tclassName={clsx(\r\n\t\t\t\t\t\t\t'text-h5 mb-px py-4 focus:shadow-sm group flex items-center flex-grow',\r\n\t\t\t\t\t\t\tlevel === 1 && 'pl-8 py-5',\r\n\t\t\t\t\t\t\tlevel === 2 && 'pl-16',\r\n\t\t\t\t\t\t\tlevel === 3 && 'pl-20',\r\n\t\t\t\t\t\t\tlevel === 4 && 'pl-32'\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{link.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{link.children && link.children.length > 0 && (\r\n\t\t\t\t\t\t handleSetActiveChildren(e, link)}\r\n\t\t\t\t\t\t\tid={!child ? 'btnPlus' : 'btnMinus'}\r\n\t\t\t\t\t\t\taria-expanded={areaExpanded}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{!child ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t{child && child}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n);\r\n","import React, { forwardRef } from 'react';\r\nimport clsx from 'clsx';\r\nimport Link from 'components/Link';\r\n\r\ninterface Props {\r\n\tlinkTo?: string;\r\n\tclassName?: string;\r\n\tisLogoInMenu?: boolean;\r\n\tisMobile?: boolean;\r\n\tisInMenu?: boolean;\r\n\r\n\t/** ariaLabel & subtitle are used to logo accessibility */\r\n\tariaLabel?: string;\r\n\tsubtitle?: string;\r\n\r\n\t/** Callback method when the menu closes */\r\n\tsetMenuIsOpen?: (value: React.SetStateAction) => void;\r\n\tref?: any;\r\n}\r\n\r\nconst HeaderLogo: React.FC = forwardRef(\r\n\t(\r\n\t\t{\r\n\t\t\tlinkTo,\r\n\t\t\tsubtitle,\r\n\t\t\tclassName,\r\n\t\t\tsetMenuIsOpen,\r\n\t\t\tisLogoInMenu = false,\r\n\t\t\tisMobile = false,\r\n\t\t\tariaLabel,\r\n\t\t\tisInMenu,\r\n\t\t},\r\n\t\tref: any\r\n\t) => {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t setMenuIsOpen && setMenuIsOpen(false)}\r\n\t\t\t\t\tclassName={clsx(\r\n\t\t\t\t\t\t'my-2 mr-2 inline-flex transform scale-100',\r\n\t\t\t\t\t\tclassName\r\n\t\t\t\t\t)}\r\n\t\t\t\t>\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tLavinprognoser Logo\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{!isInMenu && !isMobile && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subtitle}\r\n\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport default HeaderLogo;\r\n","/**\r\n * Menu\r\n */\r\n\r\nimport LangButton from 'components/LangButton';\r\nimport MenuUl from 'components/MenuUl';\r\nimport HeaderLogo from 'components/PageHeader/HeaderLogo';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport Icon from 'components/Icon';\r\nimport { Link } from 'types/global';\r\n\r\ninterface Props {\r\n\t/** Pass an URL if the logo should be linked */\r\n\tlogoLink?: string;\r\n\r\n\t/** Logo image subtitle */\r\n\tlogoSubtitle?: string;\r\n\r\n\tlogoAriaLabel?: string;\r\n\r\n\t/** Main menu links */\r\n\tmenu?: any;\r\n\r\n\t/** Language options */\r\n\tlang: Array;\r\n\t/** Language btn style */\r\n\tlangBtnStyle: string;\r\n\r\n\tisOpen: boolean;\r\n\r\n\t/** Callback method when the menu closes */\r\n\tsetMenuIsOpen: (value: React.SetStateAction) => void;\r\n\r\n\tisMobile?: boolean;\r\n}\r\n\r\n/** Main description for this component. */\r\nconst Menu: React.FC = ({\r\n\tmenu,\r\n\tlang,\r\n\tisOpen,\r\n\tsetMenuIsOpen,\r\n\tlangBtnStyle,\r\n\tlogoLink,\r\n\tlogoAriaLabel,\r\n\tlogoSubtitle,\r\n\tisMobile,\r\n}) => {\r\n\tconst logoRef = useRef(null);\r\n\tconst headerRef = useRef(null);\r\n\tconst lastChildRef = useRef(null);\r\n\tconst focusOnLastEle = useRef(null);\r\n\tconst [lastChildObj, setLastChildObj] = useState();\r\n\r\n\tuseEffect(() => {\r\n\t\t// hide the body scrollbar if menu is open\r\n\t\tvar style = document.createElement('style');\r\n\r\n\t\tif (isOpen) {\r\n\t\t\tstyle.innerHTML = `body::-webkit-scrollbar {display: none;}`;\r\n\t\t\tdocument.head.appendChild(style);\r\n\t\t\t// focus on the Logo when menu is opening\r\n\t\t\theaderRef.current.focus();\r\n\t\t} else {\r\n\t\t\tstyle.innerHTML = `body::-webkit-scrollbar {display: block;}`;\r\n\t\t\tdocument.head.appendChild(style);\r\n\t\t}\r\n\t\tgetLastMenuItem(menu.menuItems);\r\n\t}, [isOpen]);\r\n\r\n\t// Callback function to be called by the Grandchild component\r\n\tconst setLastLiRef = (ref: React.RefObject) => {\r\n\t\tlastChildRef.current = ref;\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (lastChildRef.current) {\r\n\t\t\tif (\r\n\t\t\t\tlastChildRef.current.current &&\r\n\t\t\t\tlastChildRef.current.current.tagName === 'BUTTON'\r\n\t\t\t) {\r\n\t\t\t\tfocusOnLastEle.current = lastChildRef.current;\r\n\t\t\t} else {\r\n\t\t\t\tfocusOnLastEle.current = lastChildRef.current;\r\n\t\t\t}\r\n\t\t}\r\n\t}, [setLastLiRef]);\r\n\r\n\tfunction getLastMenuItem(menu: any): any {\r\n\t\tconst menuItems = menu;\r\n\t\tconst lastMenuItem =\r\n\t\t\tmenuItems && menuItems.length ? menuItems[menuItems.length - 1] : null;\r\n\r\n\t\tif (\r\n\t\t\tlastMenuItem &&\r\n\t\t\tlastMenuItem.children &&\r\n\t\t\tlastMenuItem.children.length > 0\r\n\t\t) {\r\n\t\t\treturn getLastMenuItem(lastMenuItem.children);\r\n\t\t} else {\r\n\t\t\tsetLastChildObj(lastMenuItem);\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleEscKeyPress = (event: React.KeyboardEvent) => {\r\n\t\tswitch (event.key) {\r\n\t\t\tcase 'Escape':\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t\tsetMenuIsOpen(false);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleContainerKeyPress = (\r\n\t\tevent: React.KeyboardEvent\r\n\t) => {\r\n\t\tswitch (event.key) {\r\n\t\t\tcase 'Tab':\r\n\t\t\t\tif (\r\n\t\t\t\t\t(event.shiftKey && document.activeElement === logoRef.current) ||\r\n\t\t\t\t\t(event.shiftKey && document.activeElement === headerRef.current)\r\n\t\t\t\t) {\r\n\t\t\t\t\t// do focus on the last element of the list or button \"+\"\r\n\r\n\t\t\t\t\t/* if (focusOnLastEle.current.current && document.activeElement?.tagName === 'BUTTON' &&\r\n\t\t\t\t\tfocusOnLastEle.current.current.id === \"btnMinus\"\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (lastChildObj.text === document.activeElement?.textContent) {\r\n\t\t\t\t\t\t\t// Tab from the last item should focus on the logo\r\n\t\t\t\t\t\t\tlogoRef.current.focus();\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} */\r\n\t\t\t\t\tfocusOnLastEle.current.current.focus();\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tevent.shiftKey &&\r\n\t\t\t\t\tdocument.activeElement === focusOnLastEle.current.current\r\n\t\t\t\t) {\r\n\t\t\t\t\t// do not remove this empty code\r\n\t\t\t\t\t// Shift+Tab within the list should focus on the previous item\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tdocument.activeElement === focusOnLastEle.current.current &&\r\n\t\t\t\t\tdocument.activeElement?.tagName !== 'BUTTON'\r\n\t\t\t\t) {\r\n\t\t\t\t\t// Tab from the last item should focus on the logo\r\n\t\t\t\t\tlogoRef.current.focus();\r\n\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tdocument.activeElement === focusOnLastEle.current.current &&\r\n\t\t\t\t\tdocument.activeElement?.tagName === 'BUTTON'\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (document.activeElement.id === 'btnPlus') {\r\n\t\t\t\t\t\tlogoRef.current.focus();\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (document.activeElement !== focusOnLastEle.current.current) {\r\n\t\t\t\t\tif (lastChildObj.text === document.activeElement?.textContent) {\r\n\t\t\t\t\t\t// Tab from the last item should focus on the logo\r\n\t\t\t\t\t\tlogoRef.current.focus();\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleContainerKeyUpPress = (\r\n\t\te: React.KeyboardEvent\r\n\t) => {\r\n\t\t// Block all keyup\r\n\t\te.stopPropagation();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{isOpen && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{lang?.map((item, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t setMenuIsOpen(false)}\r\n\t\t\t\t\t\t\t\t\t\taria-label={\r\n\t\t\t\t\t\t\t\t\t\t\tmenu?.closeText?.startsWith('Stäng')\r\n\t\t\t\t\t\t\t\t\t\t\t\t? 'Stäng meny'\r\n\t\t\t\t\t\t\t\t\t\t\t\t: 'Close menu'\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{menu.closeText}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tsetMenuIsOpen(false);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Menu;\r\n","/**\r\n * PageHeader\r\n */\r\n\r\nimport React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { selectContent, openMenu, closeMenu } from 'store/modules/model';\r\nimport { useLocation } from 'react-router';\r\nimport LangButton from 'components/LangButton';\r\nimport Menu from 'components/Menu';\r\nimport HeaderLogo from 'components/PageHeader/HeaderLogo';\r\nimport Icon from 'components/Icon';\r\nimport { Link } from 'types/global';\r\nimport { ModelHeader } from 'types/epi';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport clsx from 'clsx';\r\n\r\ninterface Props {\r\n\t/** Pass an URL if the logo should be linked */\r\n\tlogoLink?: string;\r\n\r\n\t/** Logo image subtitle */\r\n\tlogoSubtitle?: string;\r\n\r\n\t/** Language optionos */\r\n\tlang: Array;\r\n\r\n\tmenu: any;\r\n}\r\n\r\nconst menuBtnClass =\r\n\t'flex items-center justify-center px-2 mr-1 md:mr-0 min-w-menu-btn h-10 bg-grey-light hover:bg-gray-500 hover:shadow-md focus:outline-primary outline-reverse-offset-1 rounded-md uppercase bg-grey';\r\n\r\n/** The page header component. */\r\nconst PageHeader: React.FC = (header) => {\r\n\tconst pageContent = useSelector(selectContent);\r\n\tconst location = useLocation();\r\n\tconst [menuIsOpen, setMenuIsOpen] = React.useState(false);\r\n\t/** this bool allow to know if we are in mobile device or not */\r\n\tconst isMobile = useMediaQuery({\r\n\t\tmaxWidth: 768,\r\n\t});\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst { logo, lang, menu } = header;\r\n\tuseEffect(() => {\r\n\t\t// This is to updated epi quicknavigator link with current page id\r\n\t\tvar epiNavigator: HTMLAnchorElement | null = document.querySelector(\r\n\t\t\t'#epi-quickNavigator > li:first-of-type > a:first-of-type'\r\n\t\t);\r\n\t\tvar epiNavigatorDropDownCMSEdit: HTMLAnchorElement | null = document.querySelector(\r\n\t\t\t'#epi-quickNavigator > li:nth-of-type(2) > #epi-quickNavigator-menu > li:nth-of-type(2)> a:first-of-type'\r\n\t\t);\r\n\r\n\t\tif (epiNavigator && pageContent && epiNavigator.href) {\r\n\t\t\tconst prefix = ':///';\r\n\t\t\tconst pos = epiNavigator.href.lastIndexOf(prefix);\r\n\t\t\tif (pos !== -1) {\r\n\t\t\t\tepiNavigator.href =\r\n\t\t\t\t\tepiNavigator.href.substring(0, pos) + prefix + pageContent.id;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tepiNavigatorDropDownCMSEdit &&\r\n\t\t\tpageContent &&\r\n\t\t\tepiNavigatorDropDownCMSEdit.href\r\n\t\t) {\r\n\t\t\tconst prefix = ':///';\r\n\t\t\tconst pos = epiNavigatorDropDownCMSEdit.href.lastIndexOf(prefix);\r\n\t\t\tif (pos !== -1) {\r\n\t\t\t\tepiNavigatorDropDownCMSEdit.href =\r\n\t\t\t\t\tepiNavigatorDropDownCMSEdit.href.substring(0, pos) +\r\n\t\t\t\t\tprefix +\r\n\t\t\t\t\tpageContent.id;\r\n\t\t\t}\r\n\t\t}\r\n\t}, [location, pageContent]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (isMobile) {\r\n\t\t\tif (menuIsOpen) {\r\n\t\t\t\tdispatch(openMenu());\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(closeMenu());\r\n\t\t\t}\r\n\t\t}\r\n\t}, [menuIsOpen]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{logo && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{!isMobile &&\r\n\t\t\t\t\t\t\tlang?.items.map((item, index) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t setMenuIsOpen(true)}\r\n\t\t\t\t\t\t\taria-expanded={menuIsOpen}\r\n\t\t\t\t\t\t\taria-label={\r\n\t\t\t\t\t\t\t\tmenu?.closeText?.startsWith('Stäng')\r\n\t\t\t\t\t\t\t\t\t? 'Öppna meny'\r\n\t\t\t\t\t\t\t\t\t: 'Close menu'\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default PageHeader;\r\n","/**\r\n * BaseLayout\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport GoTopButton from 'components/GoTopButton/GoTopButton';\r\nimport Meta from 'components/Meta';\r\nimport PageFooter from 'components/PageFooter';\r\nimport PageHeader from 'components/PageHeader';\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { selectFooter, selectHeader } from 'store/modules/model';\r\nimport { ContentTypes } from 'types/pages';\r\n\r\ninterface Props {\r\n\tmodelType: ContentTypes['modelType'];\r\n}\r\n\r\n/** BaseLayout that adds header and footer to the page. */\r\nconst BaseLayout: React.FC = ({ modelType, children }) => {\r\n\tconst header = useSelector(selectHeader);\r\n\tconst footer = useSelector(selectFooter);\r\n\tconst [height, setHeight] = React.useState(0);\r\n\r\n\tconst handleCallback = (val: number) => {\r\n\t\tsetHeight(val + 90); // added 90px bc mountain img on footer\r\n\t};\r\n\r\n\tfunction setMarginsAndWidth(modelType: string) {\r\n\t\tswitch (modelType) {\r\n\t\t\tcase 'LavinStartPage':\r\n\t\t\tcase 'AreaPage':\r\n\t\t\t\treturn 'main-w-container mx-auto';\r\n\t\t\tcase 'LavinOutsideArea':\r\n\t\t\t\treturn 'main-w-container mx-auto';\r\n\t\t\tcase 'ErrorPage':\r\n\t\t\tcase 'LavinNavigationPageModel':\r\n\t\t\tcase 'LavinStandardPageModel':\r\n\t\t\tcase 'LavinNewsPageModel':\r\n\t\t\tcase 'LavinNewsListPageModel':\r\n\t\t\tcase 'GlossaryPage':\r\n\t\t\t\treturn 'max-w-full mt-0';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'main-w-container mx-auto mt-8 md:mt-8';\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{header?.skipToContent}\r\n\t\t\t\r\n\r\n\t\t\t{header?.menu && header.lang && }\r\n\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t{modelType === 'GlossaryPage' && }\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default BaseLayout;\r\n","/**\r\n * BannerImage\r\n */\r\n\r\nimport Image from 'components/Image';\r\nimport React from 'react';\r\nimport { IImage } from 'types/global';\r\n\r\ninterface Props {\r\n\t/** Banner image heading */\r\n\theading: string;\r\n\r\n\t/** Banner image src */\r\n\timage: IImage;\r\n}\r\n\r\n/** Banner image component. */\r\nconst BannerImage: React.FC = ({ image, heading }) => (\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n);\r\n\r\nexport default BannerImage;\r\n","/**\r\n * Breadcrumb\r\n */\r\n\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport { Breadcrumb as BreadcrumbModel } from '../../types/global';\r\nimport { selectBreadcrumbs } from 'store/modules/model';\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\nimport Link from 'components/Link';\r\nimport Icon from 'components/Icon';\r\n\r\ninterface Props {\r\n\tclassName?: string;\r\n}\r\n\r\n/** Breadcrumb component. */\r\nconst Breadcrumb: React.FC = ({ className }) => {\r\n\tconst breadcrumbs = useSelector(selectBreadcrumbs);\r\n\r\n\tconst isMobile = useMediaQuery({\r\n\t\tmaxWidth: 768,\r\n\t});\r\n\r\n\tif (!breadcrumbs) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst nrOfBreadcrumbs: number = breadcrumbs?.breadcrumbs.length || 0;\r\n\r\n\tconst breadcrumsToRender = isMobile\r\n\t\t? breadcrumbs?.breadcrumbs.filter((crumb, i) => i >= nrOfBreadcrumbs - 2)\r\n\t\t: breadcrumbs?.breadcrumbs;\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Breadcrumb;\r\n","/**\r\n * Grid\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\n\r\n// Interfaces\r\ninterface GridProps {\r\n\t/** Option to remove default grid padding */\r\n\tpadding?: boolean;\r\n\r\n\t/** Option to remove default grid margin */\r\n\tmargin?: boolean;\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassName?: string;\r\n}\r\n\r\ninterface CellProps {\r\n\t/** Specifies the number of columns the cell spans */\r\n\tspan?: number;\r\n\r\n\t/** Specifies the number of columns the cell spans on a type of device (desktop) */\r\n\tdesktop?: number;\r\n\r\n\t/** Specifies the number of columns the cell spans on a type of device (tablet) */\r\n\ttablet?: number;\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassName?: string;\r\n\r\n\t/** Option to remove default grid margin */\r\n\tmargin?: boolean;\r\n}\r\n\r\nconst renderChildren = (children: any, margin: boolean) => {\r\n\tconst renderedChildren = React.Children.map(children, (child) => {\r\n\t\tconst props: any = child && child.props ? { ...child.props } : {};\r\n\t\tprops.margin = margin;\r\n\t\tif (child) {\r\n\t\t\treturn React.cloneElement(child, props);\r\n\t\t} else return false;\r\n\t});\r\n\r\n\treturn renderedChildren;\r\n};\r\n\r\n/** Grid component using tailwind classes. */\r\nconst Grid: React.FC = ({\r\n\tpadding = true,\r\n\tmargin = true,\r\n\tclassName,\r\n\tchildren,\r\n}) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{renderChildren(children, margin)}\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst getWidthClass = (span: number, margin: boolean) => {\r\n\tif (!span) {\r\n\t\treturn span;\r\n\t}\r\n\tif (span === 12) {\r\n\t\treturn 'w-full';\r\n\t} else if (margin) {\r\n\t\treturn `w-grid-${span}/12`;\r\n\t} else {\r\n\t\treturn `w-${span}/12`;\r\n\t}\r\n};\r\n\r\n/** Grid Cell component using tailwind classes. */\r\nconst Cell: React.FC = ({\r\n\tspan,\r\n\tdesktop,\r\n\ttablet,\r\n\tclassName,\r\n\tmargin = true,\r\n\tchildren,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { Grid, Cell };\r\n","// Function to handle smooth scrolling to the target element\r\nexport function smoothScrollToTarget(event: any) {\r\n\tevent.preventDefault();\r\n\tconst targetId = event.target.getAttribute('href')?.substring(1);\r\n\r\n\tconst targetElement = document.getElementById(targetId);\r\n\r\n\tif (targetElement) {\r\n\t\tconst offsetTop = targetElement.getBoundingClientRect().top;\r\n\t\tconst targetPosition = offsetTop + window.scrollY - 150; // 150 because header component + 50 padding\r\n\r\n\t\twindow.scrollTo({\r\n\t\t\ttop: targetPosition,\r\n\t\t\tbehavior: 'smooth',\r\n\t\t});\r\n\t}\r\n}\r\n","/**\r\n * useCookie\r\n */\r\n\r\nimport { useState } from 'react';\r\n\r\ninterface ISetCookieActionOptions {\r\n\tdays?: number;\r\n\tpath: string;\r\n}\r\n\r\nconst setCookie = (\r\n\tname: string,\r\n\tvalue: string,\r\n\toptions: ISetCookieActionOptions\r\n) => {\r\n\tif (typeof document !== 'undefined') {\r\n\t\tconst expires = options.days\r\n\t\t\t? new Date(Date.now() + options.days * 864e5).toUTCString()\r\n\t\t\t: '';\r\n\t\tdocument.cookie =\r\n\t\t\tname +\r\n\t\t\t'=' +\r\n\t\t\tencodeURIComponent(value) +\r\n\t\t\t'; expires=' +\r\n\t\t\texpires +\r\n\t\t\t'; path=' +\r\n\t\t\toptions.path;\r\n\t}\r\n};\r\n\r\nconst getCookie = (name: string): string => {\r\n\tif (typeof document === 'undefined') {\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn document.cookie.split('; ').reduce((r, v) => {\r\n\t\tconst parts = v.split('=');\r\n\t\treturn parts[0] === name ? decodeURIComponent(parts[1]) : r;\r\n\t}, '');\r\n};\r\n\r\nexport const useCookie = (key: string, initialValue: string): [string, any] => {\r\n\tconst [item, setItem] = useState(() => {\r\n\t\treturn getCookie(key) || initialValue;\r\n\t});\r\n\r\n\tconst updateItem = (\r\n\t\tvalue: string,\r\n\t\toptions: ISetCookieActionOptions = { path: '/' }\r\n\t) => {\r\n\t\tsetItem(value);\r\n\t\tsetCookie(key, value, options);\r\n\t};\r\n\r\n\treturn [item, updateItem];\r\n};\r\n","/**\r\n * Runs through and checks a field's conditions/dependencies\r\n */\r\nexport const checkDependency = (\r\n\tname: string,\r\n\tdependencies: any[],\r\n\tvalues: any\r\n) => {\r\n\tconst dependency = dependencies.filter(\r\n\t\t(field) => field.fieldName === name\r\n\t)[0];\r\n\r\n\tconst conditions = checkFieldConditions(dependency, values);\r\n\tlet conditionsFulFilled = null;\r\n\r\n\tif (dependency.type === 'any') {\r\n\t\tconditionsFulFilled = checkIfAnyConditionIsTrue(conditions);\r\n\t} else if (dependency.type === 'all') {\r\n\t\tconditionsFulFilled = checkIfAllConditionsAreTrue(conditions);\r\n\t}\r\n\r\n\treturn conditionsFulFilled\r\n\t\t? performAction(dependency.action)\r\n\t\t: performAction(dependency.action === 'show' ? 'hide' : 'show');\r\n};\r\n\r\n/**\r\n * Loops through all conditions and checks if they're fulfilled.\r\n */\r\nconst checkFieldConditions = (dependency: any, values: any) => {\r\n\tlet conditions: boolean[] = [];\r\n\r\n\tdependency.conditions.forEach((field: any) => {\r\n\t\tconst currentFieldValue = values[field.fieldName];\r\n\t\tconst expectedValue = field.fieldValue;\r\n\r\n\t\tswitch (field.operator) {\r\n\t\t\tcase 'equals':\r\n\t\t\t\tconditions.push(currentFieldValue === expectedValue);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'notEquals':\r\n\t\t\t\tconditions.push(currentFieldValue !== expectedValue);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'contains':\r\n\t\t\t\t!currentFieldValue\r\n\t\t\t\t\t? conditions.push(false)\r\n\t\t\t\t\t: conditions.push(currentFieldValue.includes(expectedValue));\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'notContains':\r\n\t\t\t\t!currentFieldValue\r\n\t\t\t\t\t? conditions.push(true)\r\n\t\t\t\t\t: conditions.push(!currentFieldValue.includes(expectedValue));\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'notApplicable':\r\n\t\t\t\tconditions.push(false);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.log(`The operator '${field.operator}' is not yet implemented.`);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\treturn conditions;\r\n};\r\n\r\nconst checkIfAnyConditionIsTrue = (conditions: boolean[]) => {\r\n\treturn conditions.includes(true);\r\n};\r\n\r\nconst checkIfAllConditionsAreTrue = (conditions: boolean[]) => {\r\n\treturn conditions.includes(false) ? false : true;\r\n};\r\n\r\n/**\r\n * Performs the given action and returns true/false based on if field should be rendered\r\n */\r\nconst performAction = (action: string) => {\r\n\tswitch (action) {\r\n\t\tcase 'show':\r\n\t\t\treturn true;\r\n\t\tcase 'hide':\r\n\t\t\treturn false;\r\n\t\tdefault:\r\n\t\t\tconsole.log(`The action ${action} is not yet implemented.`);\r\n\t\t\tbreak;\r\n\t}\r\n};\r\n","/**\r\n * Checks and returns outcome of field actions the given field is dependent on\r\n * @param {Array} fieldActions - Actions the field is depending on\r\n * @param {Object} values - The current values in form\r\n */\r\nexport const checkFieldActions = (fieldActions: any[], values: any) => {\r\n\tlet actions = {};\r\n\tif (fieldActions && fieldActions.length > 0) {\r\n\t\tlet allActionOutcomes: any = {\r\n\t\t\trequired: [],\r\n\t\t};\r\n\r\n\t\tfieldActions.forEach((action) => {\r\n\t\t\tconst fieldId = `__field_${action.field}`;\r\n\r\n\t\t\tswitch (action.thenAction) {\r\n\t\t\t\tcase 'Hem.Features.Forms.Validators.IsRequiredValidator':\r\n\t\t\t\t\tconst operatorResult = checkOperator(\r\n\t\t\t\t\t\taction.operator,\r\n\t\t\t\t\t\tvalues[fieldId],\r\n\t\t\t\t\t\taction.whenValue\r\n\t\t\t\t\t);\r\n\t\t\t\t\tallActionOutcomes.required.push(operatorResult);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tObject.keys(allActionOutcomes).forEach((attribute) => {\r\n\t\t\tif (allActionOutcomes[attribute].includes(false)) {\r\n\t\t\t\tactions = { ...actions, [attribute]: false };\r\n\t\t\t} else {\r\n\t\t\t\tactions = { ...actions, [attribute]: true };\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\treturn actions;\r\n};\r\n\r\n/**\r\n * Checks the outcome of an operator\r\n * @param {String} operator - equal\r\n * @param {String/Number} dependencyField - Value of the field the action is connected to\r\n * @param {String} compareValue - Value to compare against/expected value\r\n */\r\nconst checkOperator = (\r\n\toperator: string,\r\n\tdependencyField: string,\r\n\tcompareValue: string\r\n) => {\r\n\tswitch (operator) {\r\n\t\tcase 'equal':\r\n\t\t\treturn dependencyField === compareValue;\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\t}\r\n};\r\n","interface Props {\r\n\tid: string;\r\n\tlabel: string;\r\n\trequired?: boolean;\r\n\tpattern?: string;\r\n\ttype?: string;\r\n\tvalidationMessage?: string;\r\n\tpatternMessage?: string;\r\n\tsingle?: boolean;\r\n\tmultiple?: boolean;\r\n}\r\ninterface FieldValidation {\r\n\t(fieldRef: any, fieldProps: Props): [\r\n\t\tValidateField,\r\n\t\tShowFieldError,\r\n\t\tHideFieldError\r\n\t];\r\n}\r\ninterface ValidateField {\r\n\t(value: string[] | string | number | boolean): Field;\r\n}\r\ninterface ShowFieldError {\r\n\t(field: Field): void;\r\n}\r\ninterface HideFieldError {\r\n\t(): void;\r\n}\r\ninterface Field {\r\n\tlabel: string;\r\n\tid: string;\r\n\tmessage?: string;\r\n}\r\n\r\n/**\r\n * Custom hook for validating a field\r\n */\r\nexport const useFieldValidation: FieldValidation = (fieldRef, fieldProps) => {\r\n\tconst {\r\n\t\trequired,\r\n\t\tpattern,\r\n\t\tlabel,\r\n\t\tid,\r\n\t\ttype,\r\n\t\tvalidationMessage,\r\n\t\tpatternMessage,\r\n\t\tsingle,\r\n\t} = fieldProps;\r\n\r\n\tconst validateField: ValidateField = (value) => {\r\n\t\tlet field: Field = { id, label };\r\n\r\n\t\tconst fieldIsNotValid = value !== '' && !fieldRef.current.checkValidity();\r\n\t\tconst requiredFieldIsNotFilledIn =\r\n\t\t\t(required && value === '') ||\r\n\t\t\t(required && value === 'fieldset' && !fieldsetHasOneCheckedInput());\r\n\t\tconst fieldDoesNotMatchPattern =\r\n\t\t\tpattern && !value.toString().match(pattern) && value !== '';\r\n\t\tconst singleInputIsNotChecked = single && required && !value;\r\n\r\n\t\tif (type === 'url' && fieldIsNotValid) {\r\n\t\t\tfield.message = validationMessage || 'Tillhandahåll en giltig url.';\r\n\t\t} else if (type === 'email' && fieldIsNotValid) {\r\n\t\t\tfield.message =\r\n\t\t\t\tpatternMessage ||\r\n\t\t\t\tvalidationMessage ||\r\n\t\t\t\t'Tillhandahåll en giltig e-postadress.';\r\n\t\t} else if (requiredFieldIsNotFilledIn || singleInputIsNotChecked) {\r\n\t\t\tfield.message =\r\n\t\t\t\tvalidationMessage ||\r\n\t\t\t\t'Du måste fylla i det här fältet för att gå vidare.';\r\n\t\t} else if (pattern && fieldDoesNotMatchPattern) {\r\n\t\t\tfield.message =\r\n\t\t\t\tpatternMessage || 'Vänligen matcha det förväntade formatet.';\r\n\t\t}\r\n\r\n\t\treturn field;\r\n\t};\r\n\r\n\t/**\r\n\t * Checks if any input (radio/checkbox) within the fieldset group has been checked\r\n\t */\r\n\tconst fieldsetHasOneCheckedInput = () => {\r\n\t\tconst allInputs = fieldRef.current.querySelectorAll('input');\r\n\t\tlet hasOneValidInput = false;\r\n\r\n\t\tallInputs.forEach((field: any) => {\r\n\t\t\tif (field.checked) {\r\n\t\t\t\thasOneValidInput = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn hasOneValidInput;\r\n\t};\r\n\r\n\t/**\r\n\t * Displays a field error with message\r\n\t */\r\n\tconst showFieldError: ShowFieldError = (field) => {\r\n\t\tlet label: any = document.querySelector(`#form${id}__desc`);\r\n\t\tfieldRef.current.classList.add('invalid');\r\n\r\n\t\tif (label) {\r\n\t\t\tlabel.textContent = field.message;\r\n\t\t\tlabel.removeAttribute('hidden');\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Hides field error and clears message\r\n\t */\r\n\tconst hideFieldError: HideFieldError = () => {\r\n\t\tlet label = document.querySelector(`#form${id}__desc`);\r\n\t\tfieldRef.current.classList.remove('invalid');\r\n\r\n\t\tif (label) {\r\n\t\t\tlabel.textContent = '';\r\n\t\t\tlabel.setAttribute('hidden', 'true');\r\n\t\t}\r\n\t};\r\n\r\n\treturn [validateField, showFieldError, hideFieldError];\r\n};\r\n","import React, { createContext, useContext, useReducer } from 'react';\r\n\r\nconst FORM_UPDATE = 'FORM_UPDATE';\r\nconst FIELD_INVALID = 'FIELD_INVALID';\r\nconst FIELD_VALID = 'FIELD_VALID';\r\n\r\ntype InitialState = {\r\n\tvalues: any;\r\n\tvalidationMessages: any;\r\n\tinvalidFields: string[];\r\n};\r\n\r\ninterface Props {\r\n\tchildren?: any;\r\n\tinitialState: InitialState;\r\n}\r\n\r\ntype State = {\r\n\tvalues: any;\r\n\tvalidationMessages: any;\r\n\tinvalidFields: string[];\r\n};\r\n\r\ntype Action =\r\n\t| { type: 'FORM_UPDATE'; values: any }\r\n\t| { type: 'FIELD_INVALID'; field: any }\r\n\t| { type: 'FIELD_VALID'; field: any };\r\n\r\nconst FormReducer = (state: State, action: Action) => {\r\n\tswitch (action.type) {\r\n\t\tcase FORM_UPDATE:\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tvalues: action.values,\r\n\t\t\t};\r\n\t\tcase FIELD_INVALID:\r\n\t\t\tconst validationMessageHasNotChanged =\r\n\t\t\t\tstate.validationMessages.hasOwnProperty(action.field.id) &&\r\n\t\t\t\tstate.validationMessages[action.field.id].message &&\r\n\t\t\t\tstate.validationMessages[action.field.id].message ===\r\n\t\t\t\t\taction.field.message;\r\n\r\n\t\t\tif (\r\n\t\t\t\tstate.invalidFields.includes(action.field.id) &&\r\n\t\t\t\tvalidationMessageHasNotChanged\r\n\t\t\t) {\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\tconst currentInvalidFields = state.invalidFields\r\n\t\t\t\t.slice(0)\r\n\t\t\t\t.filter((item: any) => {\r\n\t\t\t\t\treturn item !== action.field.id;\r\n\t\t\t\t});\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tinvalidFields: [...currentInvalidFields, action.field.id],\r\n\t\t\t\tvalidationMessages: {\r\n\t\t\t\t\t...state.validationMessages,\r\n\t\t\t\t\t[action.field.id]: action.field,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\tcase FIELD_VALID:\r\n\t\t\tconst updatedFields = state.invalidFields.slice(0).filter((item: any) => {\r\n\t\t\t\treturn item !== action.field.id;\r\n\t\t\t});\r\n\r\n\t\t\tconst updatedMessages = { ...state.validationMessages };\r\n\r\n\t\t\tif (updatedMessages[action.field.id]) {\r\n\t\t\t\tdelete updatedMessages[action.field.id];\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tinvalidFields: updatedFields,\r\n\t\t\t\tvalidationMessages: updatedMessages,\r\n\t\t\t};\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n};\r\n\r\nexport const FormContext = createContext>([]);\r\n\r\nexport const FormProvider: React.FC = ({ initialState, children }) => (\r\n\t\r\n\t\t{children}\r\n\t\r\n);\r\n\r\nexport const useFormValue = () => useContext(FormContext);\r\n","/**\r\n * Field\r\n */\r\n\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport { useFieldValidation } from '../hooks/useFieldValidation';\r\nimport { FieldProps } from '../types';\r\n\r\nimport { useFormValue } from '../context/Form.context';\r\nimport clsx from 'clsx';\r\n\r\nconst Field: React.FC = (props) => {\r\n\tconst {\r\n\t\tclassName,\r\n\t\tplaceholder,\r\n\t\tdescription,\r\n\t\tonFieldChange,\r\n\t\tdefaultValue,\r\n\t\tautoSubmit,\r\n\t\tname,\r\n\t\tid,\r\n\t\tshowError,\r\n\t\tsetFocus,\r\n\t\tvisibleFields,\r\n\t\tnoValidate,\r\n\t\ttype,\r\n\t\tlabel,\r\n\t\tdescribedby,\r\n\t\trequired,\r\n\t\tresetForm,\r\n\t\tpatternMessage,\r\n\t\tvalidationMessage,\r\n\t\t...allProps\r\n\t} = props;\r\n\r\n\tconst [{ invalidFields }, dispatch] = useFormValue();\r\n\tconst [value, setValue] = useState(defaultValue || '');\r\n\tconst [valid, setValid] = useState(false);\r\n\tconst [touched, setTouched] = useState(false);\r\n\tconst fieldRef = useRef(null);\r\n\tconst [validateField, showFieldError, hideFieldError] = useFieldValidation(\r\n\t\tfieldRef,\r\n\t\tprops\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst validatedField = validateField(value);\r\n\t\tconst fieldIsValid = !validatedField.message;\r\n\r\n\t\tif (validatedField.message) {\r\n\t\t\tsetValid(false);\r\n\t\t\tdispatch({ type: 'FIELD_INVALID', field: validatedField });\r\n\t\t} else {\r\n\t\t\tsetValid(true);\r\n\r\n\t\t\tif (invalidFields.includes(validatedField.id)) {\r\n\t\t\t\tdispatch({ type: 'FIELD_VALID', field: validatedField });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!noValidate) {\r\n\t\t\tif (touched && !fieldIsValid) {\r\n\t\t\t\tshowFieldError(validatedField);\r\n\t\t\t} else if (\r\n\t\t\t\t(showError &&\r\n\t\t\t\t\t!fieldIsValid &&\r\n\t\t\t\t\tvisibleFields &&\r\n\t\t\t\t\tvisibleFields.includes(id)) ||\r\n\t\t\t\t(showError && !fieldIsValid && !visibleFields)\r\n\t\t\t) {\r\n\t\t\t\tsetTouched(true);\r\n\t\t\t\tshowFieldError(validatedField);\r\n\t\t\t} else {\r\n\t\t\t\thideFieldError();\r\n\t\t\t}\r\n\r\n\t\t\tif (setFocus) {\r\n\t\t\t\tfieldRef.current.focus();\r\n\t\t\t}\r\n\t\t}\r\n\t}, [touched, showError, value, setFocus, visibleFields, required]);\r\n\r\n\tconst onChange = (e: React.FormEvent) => {\r\n\t\tconst target = e.target as HTMLFormElement;\r\n\r\n\t\tsetValue(target.value);\r\n\t\tonFieldChange({\r\n\t\t\tname,\r\n\t\t\tvalue: target.value,\r\n\t\t\ttype: 'Field',\r\n\t\t\tautoSubmit,\r\n\t\t});\r\n\t};\r\n\r\n\tconst describedByAttribute = `form${id}__desc${\r\n\t\tdescribedby ? ` ${describedby}` : ''\r\n\t}`;\r\n\r\n\treturn (\r\n\t\t setTouched(true)}\r\n\t\t\tref={fieldRef}\r\n\t\t\tid={id}\r\n\t\t\taria-describedby={!noValidate ? describedByAttribute : undefined}\r\n\t\t\ttype={type === null ? 'text' : type}\r\n\t\t\t{...allProps}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default Field;\r\n","/**\r\n * TextArea\r\n */\r\n\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport { TextAreaProps } from '../types';\r\nimport { useFieldValidation } from '../hooks/useFieldValidation';\r\nimport { useFormValue } from '../context/Form.context';\r\nimport clsx from 'clsx';\r\n\r\nconst TextArea: React.FC = (props) => {\r\n\tconst {\r\n\t\tclassName,\r\n\t\tid,\r\n\t\tdescription,\r\n\t\tname,\r\n\t\tplaceholder,\r\n\t\tdefaultValue,\r\n\t\trequired,\r\n\t\tdisabled,\r\n\t\tautoSubmit,\r\n\t\tonFieldChange,\r\n\t\tshowError,\r\n\t\tvisibleFields,\r\n\t} = props;\r\n\r\n\tconst [{ invalidFields }, dispatch] = useFormValue();\r\n\tconst [value, setValue] = useState(defaultValue || '');\r\n\tconst [valid, setValid] = useState(false);\r\n\tconst [touched, setTouched] = useState(false);\r\n\tconst fieldRef = useRef(null);\r\n\tconst [validateField, showFieldError, hideFieldError] = useFieldValidation(\r\n\t\tfieldRef,\r\n\t\tprops\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst validatedField = validateField(value);\r\n\t\tconst fieldIsValid = !validatedField.message;\r\n\r\n\t\tif (validatedField.message) {\r\n\t\t\tsetValid(false);\r\n\t\t\tdispatch({ type: 'FIELD_INVALID', field: validatedField });\r\n\t\t} else {\r\n\t\t\tsetValid(true);\r\n\r\n\t\t\tif (invalidFields.includes(validatedField.id)) {\r\n\t\t\t\tdispatch({ type: 'FIELD_VALID', field: validatedField });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (touched && !fieldIsValid) {\r\n\t\t\tshowFieldError(validatedField);\r\n\t\t} else if (\r\n\t\t\t(showError &&\r\n\t\t\t\t!fieldIsValid &&\r\n\t\t\t\tvisibleFields &&\r\n\t\t\t\tvisibleFields.includes(id)) ||\r\n\t\t\t(showError && !fieldIsValid && !visibleFields)\r\n\t\t) {\r\n\t\t\tsetTouched(true);\r\n\t\t\tshowFieldError(validatedField);\r\n\t\t} else {\r\n\t\t\thideFieldError();\r\n\t\t}\r\n\t}, [touched, showError, value]);\r\n\r\n\tconst onChange = (e: React.FormEvent) => {\r\n\t\tconst target = e.target as HTMLFormElement;\r\n\r\n\t\tsetValue(target.value);\r\n\t\tonFieldChange({\r\n\t\t\tname,\r\n\t\t\tvalue: target.value,\r\n\t\t\ttype: 'TextArea',\r\n\t\t\tautoSubmit,\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t setTouched(true)}\r\n\t\t\tref={fieldRef}\r\n\t\t\taria-describedby={`form${id}__desc`}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default TextArea;\r\n","/**\r\n * Checkbox\r\n */\r\n\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { useFieldValidation } from '../hooks/useFieldValidation';\r\nimport { useFormValue } from '../context/Form.context';\r\nimport { CheckboxProps } from '../types';\r\n\r\n/**\r\n * Checks if the checkbox should be checked.\r\n */\r\nconst shouldBeChecked = (value: string, defaultValue: any) => {\r\n\tif (Array.isArray(defaultValue)) {\r\n\t\treturn defaultValue.indexOf(value) !== -1;\r\n\t} else {\r\n\t\treturn value === defaultValue;\r\n\t}\r\n};\r\n\r\nconst Checkbox: React.FC = (props) => {\r\n\tconst {\r\n\t\tid,\r\n\t\tname,\r\n\t\tonFieldChange,\r\n\t\tautoSubmit,\r\n\t\tvalue,\r\n\t\tsingle,\r\n\t\tshowError,\r\n\t\tclassName,\r\n\t\tvisibleFields,\r\n\t\tdisabled,\r\n\t\tindex,\r\n\t} = props;\r\n\tconst [checked, setChecked] = useState(\r\n\t\tshouldBeChecked(props.value, props.defaultValue)\r\n\t);\r\n\r\n\tconst [{ invalidFields }, dispatch] = useFormValue();\r\n\tconst [valid, setValid] = useState(false);\r\n\tconst [touched, setTouched] = useState(false);\r\n\tconst fieldRef = useRef(null);\r\n\tconst [validateField, showFieldError, hideFieldError] = useFieldValidation(\r\n\t\tfieldRef,\r\n\t\tprops\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (single) {\r\n\t\t\tconst validatedField = validateField(checked);\r\n\r\n\t\t\tif (validatedField.message) {\r\n\t\t\t\tsetValid(false);\r\n\t\t\t\tdispatch({ type: 'FIELD_INVALID', field: validatedField });\r\n\t\t\t} else {\r\n\t\t\t\tsetValid(true);\r\n\r\n\t\t\t\tif (invalidFields.includes(validatedField.id)) {\r\n\t\t\t\t\tdispatch({ type: 'FIELD_VALID', field: validatedField });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (touched && !valid) {\r\n\t\t\t\tshowFieldError(validatedField);\r\n\t\t\t} else if (\r\n\t\t\t\t(showError && !valid && visibleFields && visibleFields.includes(id)) ||\r\n\t\t\t\t(showError && !valid && !visibleFields)\r\n\t\t\t) {\r\n\t\t\t\tsetTouched(true);\r\n\t\t\t\tshowFieldError(validatedField);\r\n\t\t\t} else {\r\n\t\t\t\thideFieldError();\r\n\t\t\t}\r\n\t\t}\r\n\t}, [touched, showError, invalidFields, visibleFields, checked]);\r\n\r\n\tconst onChange = (e: React.FormEvent) => {\r\n\t\tconst target = e.target as HTMLFormElement;\r\n\r\n\t\tsetChecked(target.checked);\r\n\t\tif (!touched) {\r\n\t\t\tsetTouched(true);\r\n\t\t}\r\n\r\n\t\tonFieldChange({\r\n\t\t\tname,\r\n\t\t\tvalue: target.value,\r\n\t\t\tchecked: target.checked,\r\n\t\t\tautoSubmit,\r\n\t\t\ttype: 'Checkbox',\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t= 0 ? `${id}-${index}` : id}\r\n\t\t\tname={name}\r\n\t\t\tclassName={className}\r\n\t\t\tvalue={value}\r\n\t\t\tchecked={checked}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tonChange={onChange}\r\n\t\t\tref={fieldRef}\r\n\t\t\taria-describedby={`form${id}__desc`}\r\n\t\t\taria-invalid={single ? !valid : undefined}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default Checkbox;\r\n","/**\r\n * RadioButton\r\n */\r\n\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { useFieldValidation } from '../hooks/useFieldValidation';\r\nimport { useFormValue } from '../context/Form.context';\r\nimport { RadioButtonProps } from '../types';\r\n\r\nconst RadioButton: React.FC = (props) => {\r\n\tconst {\r\n\t\tid,\r\n\t\tname,\r\n\t\tdefaultValue,\r\n\t\tonFieldChange,\r\n\t\tautoSubmit,\r\n\t\tvalue,\r\n\t\tsingle,\r\n\t\tshowError,\r\n\t\tdisabled,\r\n\t\tclassName,\r\n\t\tvisibleFields,\r\n\t\tindex,\r\n\t} = props;\r\n\tconst [checked, setChecked] = useState('');\r\n\r\n\tconst [{ invalidFields }, dispatch] = useFormValue();\r\n\tconst [valid, setValid] = useState(false);\r\n\tconst [touched, setTouched] = useState(false);\r\n\tconst fieldRef = useRef(null);\r\n\tconst [validateField, showFieldError, hideFieldError] = useFieldValidation(\r\n\t\tfieldRef,\r\n\t\tprops\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (single) {\r\n\t\t\tconst validatedField = validateField(checked);\r\n\r\n\t\t\tif (validatedField.message) {\r\n\t\t\t\tsetValid(false);\r\n\t\t\t\tdispatch({ type: 'FIELD_INVALID', field: validatedField });\r\n\t\t\t} else {\r\n\t\t\t\tsetValid(true);\r\n\r\n\t\t\t\tif (invalidFields.includes(validatedField.id)) {\r\n\t\t\t\t\tdispatch({ type: 'FIELD_VALID', field: validatedField });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (touched && !valid) {\r\n\t\t\t\tshowFieldError(validatedField);\r\n\t\t\t} else if (\r\n\t\t\t\t(showError && !valid && visibleFields && visibleFields.includes(id)) ||\r\n\t\t\t\t(showError && !valid && !visibleFields)\r\n\t\t\t) {\r\n\t\t\t\tsetTouched(true);\r\n\t\t\t\tshowFieldError(validatedField);\r\n\t\t\t} else {\r\n\t\t\t\thideFieldError();\r\n\t\t\t}\r\n\t\t}\r\n\t}, [touched, showError, invalidFields, visibleFields, checked]);\r\n\r\n\tconst onChange = (e: React.FormEvent) => {\r\n\t\tconst target = e.target as HTMLFormElement;\r\n\r\n\t\tsetChecked(target.value);\r\n\t\tif (!touched) {\r\n\t\t\tsetTouched(true);\r\n\t\t}\r\n\r\n\t\tonFieldChange({\r\n\t\t\tname,\r\n\t\t\tvalue: target.value,\r\n\t\t\ttype: 'RadioButton',\r\n\t\t\tautoSubmit,\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t= 0 ? `${id}-${index}` : id}\r\n\t\t\tname={name}\r\n\t\t\tvalue={value}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tclassName={className}\r\n\t\t\tdefaultChecked={value === defaultValue}\r\n\t\t\tref={fieldRef}\r\n\t\t\tonChange={onChange}\r\n\t\t\taria-describedby={`form${id}__desc`}\r\n\t\t\taria-invalid={single ? !valid : undefined}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default RadioButton;\r\n","/**\r\n * Select\r\n */\r\n\r\nimport React, { useRef, useState, useEffect } from 'react';\r\nimport { useFieldValidation } from '../hooks/useFieldValidation';\r\nimport { useFormValue } from '../context/Form.context';\r\nimport { SelectProps } from '../types';\r\n\r\nconst Select: React.FC = (props) => {\r\n\tconst {\r\n\t\tid,\r\n\t\tname,\r\n\t\toptions,\r\n\t\tdefaultValue,\r\n\t\tdescription,\r\n\t\tonFieldChange,\r\n\t\tautoSubmit,\r\n\t\tshowError,\r\n\t\tvalidationMessage,\r\n\t\tlabel,\r\n\t\tvisibleFields,\r\n\t\tclassName,\r\n\t} = props;\r\n\r\n\tconst [{ invalidFields }, dispatch] = useFormValue();\r\n\tconst [value, setValue] = useState(defaultValue || options[0] || '');\r\n\tconst [valid, setValid] = useState(false);\r\n\tconst [touched, setTouched] = useState(false);\r\n\tconst fieldRef = useRef(null);\r\n\r\n\tconst [validateField, showFieldError, hideFieldError] = useFieldValidation(\r\n\t\tfieldRef,\r\n\t\tprops\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst validatedField: any = validateField(value);\r\n\r\n\t\tif (validatedField.message) {\r\n\t\t\tsetValid(false);\r\n\t\t\tdispatch({ type: 'FIELD_INVALID', field: validatedField });\r\n\t\t} else {\r\n\t\t\tsetValid(true);\r\n\r\n\t\t\tif (invalidFields.includes(validatedField.id)) {\r\n\t\t\t\tdispatch({ type: 'FIELD_VALID', field: validatedField });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (touched && !valid) {\r\n\t\t\tshowFieldError(validatedField);\r\n\t\t} else if (\r\n\t\t\t(showError && !valid && visibleFields && visibleFields.includes(id)) ||\r\n\t\t\t(showError && !valid && !visibleFields)\r\n\t\t) {\r\n\t\t\tsetTouched(true);\r\n\t\t\tshowFieldError(validatedField);\r\n\t\t} else {\r\n\t\t\thideFieldError();\r\n\t\t}\r\n\t}, [touched, showError, value, invalidFields, visibleFields]);\r\n\r\n\tconst onChange = (e: React.FormEvent) => {\r\n\t\tconst target = e.target as HTMLFormElement;\r\n\t\tconst selectedOption = target.options[target.selectedIndex];\r\n\r\n\t\tsetValue(selectedOption.value || selectedOption.caption);\r\n\t\tonFieldChange({\r\n\t\t\tname,\r\n\t\t\tvalue: selectedOption.value || selectedOption.caption,\r\n\t\t\ttype: 'Select',\r\n\t\t\tautoSubmit,\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t setTouched(true)}\r\n\t\t\tref={fieldRef}\r\n\t\t\taria-describedby={`form${id}__desc`}\r\n\t\t\tclassName={className}\r\n\t\t>\r\n\t\t\t{options.map(({ value, caption }) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Select;\r\n","/**\r\n * Multiselect\r\n */\r\n\r\nimport React from 'react';\r\nimport { MultiselectProps, Option } from '../types';\r\nimport { Fieldset, Checkbox } from '../index';\r\n\r\nconst Multiselect: React.FC = ({\r\n\tid,\r\n\tdescription,\r\n\trequired,\r\n\tlabel,\r\n\tisInvalid,\r\n\tvalidationMessage,\r\n\toptions,\r\n\tonFieldChange,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{options.map((opt: Option, index: number) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Multiselect;\r\n","/**\r\n * Button\r\n */\r\n\r\nimport React from 'react';\r\nimport { ButtonProps } from '../types';\r\n\r\nconst Button: React.FC = ({\r\n\ttype = 'button',\r\n\tonFieldChange,\r\n\tresetForm,\r\n\tshowError,\r\n\tvisibleFields,\r\n\tchildren,\r\n\t...propsToTransfer\r\n}) => {\r\n\tif (type === 'reset') {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default Button;\r\n","import React from 'react';\r\nimport { LabelProps, ErrorSpanProps } from './types';\r\nimport clsx from 'clsx';\r\n\r\nexport const Label: React.FC = ({\r\n\thtmlFor,\r\n\trequired,\r\n\tchildren,\r\n}) => (\r\n\t\r\n);\r\n\r\nexport const ErrorSpan: React.FC = ({\r\n\tfieldId,\r\n\tinvalid,\r\n\tchildren,\r\n\tclassName,\r\n\t...props\r\n}) => (\r\n\t\r\n\t\t{children}\r\n\t\r\n);\r\n","/**\r\n * Fieldset\r\n */\r\n\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport { useFieldValidation } from '../hooks/useFieldValidation';\r\nimport { useFormValue } from '../context/Form.context';\r\nimport { FieldsetProps } from '../types';\r\nimport { ErrorSpan } from '../Labels';\r\n\r\nconst Fieldset: React.FC = (props) => {\r\n\tconst {\r\n\t\tlabel,\r\n\t\tdescription,\r\n\t\tchildren,\r\n\t\tid,\r\n\t\trequired,\r\n\t\tvalidationMessage,\r\n\t\tisInvalid,\r\n\t\tshowError,\r\n\t\tvisibleFields,\r\n\t\tclassName,\r\n\t} = props;\r\n\r\n\tconst [{ invalidFields }, dispatch] = useFormValue();\r\n\tconst [valid, setValid] = useState(false);\r\n\tconst [touched, setTouched] = useState(false);\r\n\tconst fieldRef = useRef(null);\r\n\tconst [validateField, showFieldError, hideFieldError] = useFieldValidation(\r\n\t\tfieldRef,\r\n\t\tprops\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst validatedField = validateField('fieldset');\r\n\r\n\t\tif (validatedField.message) {\r\n\t\t\tsetValid(false);\r\n\t\t\tdispatch({ type: 'FIELD_INVALID', field: validatedField });\r\n\t\t} else {\r\n\t\t\tsetValid(true);\r\n\r\n\t\t\tif (invalidFields.includes(validatedField.id)) {\r\n\t\t\t\tdispatch({ type: 'FIELD_VALID', field: validatedField });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst partOfVisibleFields =\r\n\t\t\tvisibleFields &&\r\n\t\t\tvisibleFields.filter((fieldName) => fieldName.includes(id));\r\n\r\n\t\tif (touched && !valid) {\r\n\t\t\tshowFieldError(validatedField);\r\n\t\t} else if (\r\n\t\t\t(showError &&\r\n\t\t\t\t!valid &&\r\n\t\t\t\tvisibleFields &&\r\n\t\t\t\tpartOfVisibleFields &&\r\n\t\t\t\tpartOfVisibleFields.length > 0) ||\r\n\t\t\t(showError && !valid && !visibleFields)\r\n\t\t) {\r\n\t\t\tsetTouched(true);\r\n\t\t\tshowFieldError(validatedField);\r\n\t\t} else {\r\n\t\t\thideFieldError();\r\n\t\t}\r\n\t}, [\r\n\t\tvalid,\r\n\t\tdispatch,\r\n\t\ttouched,\r\n\t\tshowError,\r\n\t\tsetValid,\r\n\t\tvalidateField,\r\n\t\tshowFieldError,\r\n\t\thideFieldError,\r\n\t\tinvalidFields,\r\n\t\tvisibleFields,\r\n\t\tid,\r\n\t]);\r\n\r\n\treturn (\r\n\t\t setTouched(true)}\r\n\t\t>\r\n\t\t\t\r\n\t\t\t\t{label}\r\n\t\t\t\t{required && *}\r\n\t\t\t\r\n\r\n\t\t\t
{children}
\r\n\r\n\t\t\t\r\n\t\t\t\t{validationMessage || ''}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Fieldset;\r\n","/**\r\n * Button\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport Link from 'components/Link';\r\nimport React from 'react';\r\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa';\r\nimport { MdClose } from 'react-icons/md';\r\n\r\ninterface Props {\r\n\t/** Sets the size of the button */\r\n\tsize?: 'large' | 'medium' | 'small';\r\n\r\n\t/** Sets the variant of the button */\r\n\tvariant?: 'primary' | 'secondary';\r\n\r\n\t/** Button type */\r\n\ttype?: 'button' | 'link' | 'externalLink';\r\n\r\n\t/** href */\r\n\thref?: string;\r\n\r\n\t/** Sets the width of the button */\r\n\tdisplayWidth?: 'dynamic' | 'fixed' | 'full';\r\n\r\n\t/** Pass optional classnames for the html */\r\n\tclassName?: string;\r\n\r\n\t/** On click handler */\r\n\tonClick?: (e: any) => void;\r\n\r\n\t/** Should the button be disabled */\r\n\tdisabled?: boolean;\r\n\r\n\t/** Whether Button includes icon. False if empty. */\r\n\ticon?: 'close' | 'next' | 'previous' | string;\r\n\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\n/** A reusable button component. */\r\nconst Button: React.FC = ({\r\n\tchildren,\r\n\tclassName = '',\r\n\tvariant = 'primary',\r\n\ttype = 'button',\r\n\thref,\r\n\tdisabled = false,\r\n\tdisplayWidth = 'dynamic',\r\n\tonClick,\r\n\ticon = undefined,\r\n\t...htmlAttributes\r\n}) => {\r\n\tfunction getIcon(iconType: typeof icon) {\r\n\t\tswitch (iconType) {\r\n\t\t\tcase 'close':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'next':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'previous':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tlet ButtonType;\r\n\tswitch (type) {\r\n\t\tcase 'button':\r\n\t\t\tButtonType = 'button';\r\n\t\t\tbreak;\r\n\t\tcase 'link':\r\n\t\t\tButtonType = Link;\r\n\t\t\tbreak;\r\n\t\tcase 'externalLink':\r\n\t\t\tButtonType = 'a';\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{icon ? (\r\n\t\t\t\t
\r\n\t\t\t\t\t{getIcon(icon)}\r\n\t\t\t\t
\r\n\t\t\t) : (\r\n\t\t\t\tchildren\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Button;\r\n","/**\r\n * FormButtons\r\n */\r\n\r\nimport React from 'react';\r\nimport { Button } from 'components/Form';\r\nimport StandardButton from 'components/Button';\r\n\r\ninterface NextButtonProps {\r\n\tnextId?: string;\r\n\tisExpanded: boolean;\r\n\tid: string | number;\r\n}\r\n\r\ninterface PrevButtonProps {\r\n\tpreviousIndex?: number;\r\n\tpreviousId?: string;\r\n\tisExpanded: boolean;\r\n\tid: string | number;\r\n\tonPrevious: any;\r\n}\r\n\r\nconst NextButton: React.FC = ({ nextId, isExpanded, id }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\tNästa\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst PreviousButton: React.FC = ({\r\n\tpreviousIndex,\r\n\tpreviousId,\r\n\tisExpanded,\r\n\tid,\r\n\tonPrevious,\r\n}) => (\r\n\t\r\n\t\t\tonPrevious({\r\n\t\t\t\tcurrentStep: previousIndex,\r\n\t\t\t\tinvalidFields: [],\r\n\t\t\t})\r\n\t\t}\r\n\t>\r\n\t\tTillbaka\r\n\t\r\n);\r\n\r\nexport { PreviousButton, NextButton };\r\n","/**\r\n * FormStep\r\n */\r\n\r\nimport React from 'react';\r\nimport { NextButton, PreviousButton } from './FormButtons';\r\n\r\ntype Step = {\r\n\ttitle: string;\r\n\tdescription?: string;\r\n\tindex: number;\r\n};\r\n\r\ninterface FormStepProps {\r\n\t/** Current step data */\r\n\tstep: Step;\r\n\r\n\t/** Current step number */\r\n\tcurrentStep: number;\r\n\r\n\t/** Number of steps in Form */\r\n\tnrOfSteps: number;\r\n\r\n\t/** Form id */\r\n\tformId: string;\r\n\r\n\t/** Callback function when PreviousButton is clicked */\r\n\tonPrevious: any;\r\n}\r\n\r\nconst FormStep: React.FC = ({\r\n\tstep,\r\n\tformId,\r\n\tnrOfSteps,\r\n\tcurrentStep,\r\n\tchildren,\r\n\tonPrevious,\r\n}) => {\r\n\tconst { title, description, index } = step;\r\n\r\n\tconst stepId = `form-${formId}-step-${index}`;\r\n\tconst isFirstStep = index === 0;\r\n\tconst isLastStep = index + 2 === nrOfSteps;\r\n\r\n\tconst previousIndex = isFirstStep ? undefined : index - 1;\r\n\tconst previousId = isFirstStep\r\n\t\t? undefined\r\n\t\t: `form-${formId}-step-${previousIndex}`;\r\n\r\n\tconst nextIndex = isLastStep ? undefined : index + 1;\r\n\tconst nextId = isLastStep ? undefined : `form-${formId}-step-${nextIndex}`;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{title && (\r\n\t\t\t\t
\r\n\t\t\t\t\t

{title}

\r\n\t\t\t\t\t{description &&

{description}

}\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\t\t\t{children}\r\n\r\n\t\t\t
\r\n\t\t\t\t{!isFirstStep && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{!isLastStep && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default FormStep;\r\n","import React from 'react';\r\nimport {\r\n\tField,\r\n\tTextArea,\r\n\tCheckbox,\r\n\tRadioButton,\r\n\tSelect,\r\n\tMultiselect,\r\n\tButton,\r\n\tFieldset,\r\n} from '../index';\r\nimport FormStep from 'components/EpiForms/FormStep';\r\n\r\nconst isValidFormElement = (element: JSX.Element) => {\r\n\tswitch (element.type) {\r\n\t\tcase Checkbox:\r\n\t\tcase Field:\r\n\t\tcase TextArea:\r\n\t\tcase RadioButton:\r\n\t\tcase Button:\r\n\t\tcase Select:\r\n\t\tcase Multiselect:\r\n\t\tcase Fieldset:\r\n\t\tcase FormStep:\r\n\t\t\treturn true;\r\n\t\tdefault:\r\n\t\t\treturn false;\r\n\t}\r\n};\r\n\r\n/**\r\n * Custom hook for cloning pand rendering children with custom props in form\r\n */\r\nexport const useChildClones = (\r\n\tshowError: boolean,\r\n\tvisibleFields: string[] | boolean\r\n) => {\r\n\tconst formFieldNameCounter: any = {};\r\n\r\n\tconst renderChildren = (\r\n\t\tchildren: any,\r\n\t\tinitialValues: any,\r\n\t\tresetForm: any,\r\n\t\tonFieldChange: any\r\n\t) => {\r\n\t\tif (!children) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst renderedChildren = React.Children.map(children, (child) => {\r\n\t\t\tconst props: any = child && child.props ? { ...child.props } : {};\r\n\r\n\t\t\tif (!React.isValidElement(child)) {\r\n\t\t\t\treturn child;\r\n\t\t\t}\r\n\r\n\t\t\tif (isValidFormElement(child)) {\r\n\t\t\t\tconst { name } = props;\r\n\r\n\t\t\t\tprops.onFieldChange = onFieldChange;\r\n\t\t\t\tprops.resetForm = resetForm;\r\n\t\t\t\tprops.showError = showError;\r\n\t\t\t\tprops.visibleFields = visibleFields;\r\n\r\n\t\t\t\tif (initialValues[name]) {\r\n\t\t\t\t\tprops.defaultValue = initialValues[name];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!formFieldNameCounter[name]) {\r\n\t\t\t\t\tformFieldNameCounter[name] = 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tformFieldNameCounter[name] += 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (props && props.children) {\r\n\t\t\t\tprops.children = renderChildren(\r\n\t\t\t\t\tprops.children,\r\n\t\t\t\t\tinitialValues,\r\n\t\t\t\t\tresetForm,\r\n\t\t\t\t\tonFieldChange\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn React.cloneElement(child, props);\r\n\t\t});\r\n\r\n\t\treturn renderedChildren.length === 1\r\n\t\t\t? renderedChildren[0]\r\n\t\t\t: renderedChildren;\r\n\t};\r\n\r\n\treturn [renderChildren, formFieldNameCounter];\r\n};\r\n","/**\r\n * Form\r\n */\r\n\r\nimport React, { useState, useRef } from 'react';\r\nimport { useFormValue } from './context/Form.context';\r\nimport { useChildClones } from './hooks/useChildClones';\r\nimport { FormProps } from './types';\r\n\r\ninterface Field {\r\n\tname: string;\r\n\tvalue: string;\r\n\ttype?: string;\r\n\tautoSubmit?: boolean;\r\n\tchecked?: boolean;\r\n}\r\n\r\n// Generates a unique key (used by the reset-method).\r\nconst getUniqueKey = () => '_' + Math.random().toString(36).substr(2, 9);\r\n\r\nconst Form: React.FC = ({\r\n\tchildren,\r\n\tmethod = 'post',\r\n\taction = '',\r\n\tenctype = 'application/x-www-form-urlencoded',\r\n\tinitialValues,\r\n\tclassName,\r\n\tid,\r\n\tonChange,\r\n\tonSubmit,\r\n\tsendDataType,\r\n\tdefaultSubmit,\r\n\tmultiStep,\r\n\tcurrentStep,\r\n\tgetStepFields,\r\n}) => {\r\n\tconst [formKey, setFormKey] = useState(getUniqueKey());\r\n\tconst [showError, setShowError] = useState(false);\r\n\tconst [visibleFields, setVisibleFields] = useState(false);\r\n\tconst formRef = useRef(null);\r\n\tlet [\r\n\t\t{ values, invalidFields, validationMessages },\r\n\t\tdispatch,\r\n\t] = useFormValue();\r\n\tconst [renderChildren, formFieldNameCounter] = useChildClones(\r\n\t\tshowError,\r\n\t\tvisibleFields\r\n\t);\r\n\r\n\tconst resetForm = () => setFormKey(getUniqueKey());\r\n\r\n\tconst onFieldChange = (field: Field) => {\r\n\t\tconst { name, value, type, autoSubmit, checked } = field;\r\n\r\n\t\tconst valueIsArray =\r\n\t\t\tvalues[name] && Array.isArray(values[name]) && checked !== undefined;\r\n\r\n\t\tlet newValue: string[] | string = value;\r\n\r\n\t\t// Handle checkboxes when they have array values\r\n\t\tif (type === 'Checkbox') {\r\n\t\t\tif (valueIsArray) {\r\n\t\t\t\tnewValue = checked\r\n\t\t\t\t\t? [...values[name], value]\r\n\t\t\t\t\t: values[name].filter((item: string) => item !== value);\r\n\t\t\t} else if (formFieldNameCounter[name] > 1 && checked !== undefined) {\r\n\t\t\t\tnewValue = [value];\r\n\t\t\t} else if (checked === false) {\r\n\t\t\t\tnewValue = '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdispatch({ type: 'FORM_UPDATE', values: { ...values, [name]: newValue } });\r\n\r\n\t\tif (autoSubmit) {\r\n\t\t\tonSubmit();\r\n\t\t}\r\n\t\tif (onChange) {\r\n\t\t\tonChange({ name, value: newValue }, { ...values, [name]: newValue });\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleOnSubmit = (e: React.FormEvent) => {\r\n\t\tif (sendDataType === 'formdata' && typeof FormData === 'undefined') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif (e && !defaultSubmit) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\r\n\t\tlet index = null;\r\n\t\tlet messages = { ...validationMessages };\r\n\t\tlet updatedInvalidFields = invalidFields;\r\n\r\n\t\tif (multiStep) {\r\n\t\t\tconst [formData, stepIndex, currentStepFields] = getStepFields(\r\n\t\t\t\tcurrentStep,\r\n\t\t\t\tid\r\n\t\t\t);\r\n\t\t\tsetVisibleFields(currentStepFields);\r\n\r\n\t\t\tvalues = formData;\r\n\t\t\tindex = stepIndex;\r\n\t\t\tupdatedInvalidFields = invalidFields.filter((fieldId: string) =>\r\n\t\t\t\tcurrentStepFields.some((field: string) => field.indexOf(fieldId) >= 0)\r\n\t\t\t);\r\n\r\n\t\t\tmessages = Object.keys(validationMessages)\r\n\t\t\t\t.filter((key) =>\r\n\t\t\t\t\tcurrentStepFields.some((field: string) => field.indexOf(key) >= 0)\r\n\t\t\t\t)\r\n\t\t\t\t.reduce((obj, key) => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...obj,\r\n\t\t\t\t\t\t[key]: validationMessages[key],\r\n\t\t\t\t\t};\r\n\t\t\t\t}, {});\r\n\t\t} else if (sendDataType === 'formdata') {\r\n\t\t\tvalues = new FormData(formRef.current);\r\n\t\t}\r\n\r\n\t\tif (updatedInvalidFields.length > 0) {\r\n\t\t\tsetShowError(true);\r\n\t\t}\r\n\r\n\t\tif (onSubmit) {\r\n\t\t\tonSubmit(values, index, messages, updatedInvalidFields);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{renderChildren(children, initialValues, resetForm, onFieldChange)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Form;\r\n","import React from 'react';\r\nimport { FormProvider } from './context/Form.context';\r\nimport Form from './Form';\r\nimport { FormProps } from './types';\r\n\r\nconst FormComponent: React.FC = ({\r\n\tinitialValues,\r\n\tchildren,\r\n\t...props\r\n}) => {\r\n\tconst initialState = {\r\n\t\tvalues: initialValues || {},\r\n\t\tvalidationMessages: {},\r\n\t\tinvalidFields: [],\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t{children}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default FormComponent;\r\n","import React from 'react';\r\n\r\nimport { checkDependency } from 'components/EpiForms/EpiForms.dependencies';\r\nimport { checkFieldActions } from 'components/EpiForms/EpiForms.actions';\r\nimport {\r\n\tField,\r\n\tTextArea,\r\n\tSelect,\r\n\tMultiselect,\r\n\tRadioButton,\r\n\tCheckbox,\r\n\tFieldset,\r\n\tButton,\r\n\tLabel,\r\n\tErrorSpan,\r\n} from 'components/Form';\r\n\r\ninterface Field {\r\n\tid: string;\r\n\tlabel: string;\r\n\trequired?: boolean;\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\ninterface RenderFunction {\r\n\t(field: Field): JSX.Element | null;\r\n}\r\n\r\nexport const useFormRenderer = (fields: any, state: any, dependencies: any) => {\r\n\tconst { invalidFields, validationMessages, isLoading, values } = state;\r\n\tlet fieldActionExists = false;\r\n\r\n\tconst renderFormElement = (fieldName: string) => {\r\n\t\tconst field = fields[fieldName];\r\n\t\tconst { name, text } = fields[fieldName];\r\n\t\tlet { type } = fields[fieldName];\r\n\r\n\t\tif (type === null) {\r\n\t\t\ttype = 'text';\r\n\t\t}\r\n\r\n\t\tconst renderAsFieldset =\r\n\t\t\t(type === 'radio' || type === 'checkbox') && field.options.length > 1;\r\n\t\tconst singleCheckboxOrRadio =\r\n\t\t\t(type === 'radio' || type === 'checkbox') && field.options.length === 1;\r\n\r\n\t\tconst fieldHasDependency =\r\n\t\t\tdependencies &&\r\n\t\t\tdependencies.filter((field: any) => field.fieldName === name).length > 0;\r\n\r\n\t\tif (fieldHasDependency) {\r\n\t\t\tconst fieldShouldBeRendered = checkDependency(name, dependencies, values);\r\n\r\n\t\t\tif (!fieldShouldBeRendered) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (renderAsFieldset) {\r\n\t\t\treturn
{renderFieldset(field)}
;\r\n\t\t} else if (singleCheckboxOrRadio) {\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t{renderSingleInput(field)}\r\n\t\t\t\t\t{renderFieldError(field.name)}\r\n\t\t\t\t
\r\n\t\t\t);\r\n\t\t} else if (type === 'ParagraphText') {\r\n\t\t\treturn
;\r\n\t\t} else {\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t{field.type !== 'multiselect' && renderLabel(field)}\r\n\t\t\t\t\t{renderField(field)}\r\n\t\t\t\t\t{renderFieldError(field.name)}\r\n\t\t\t\t
\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tconst renderLabel: RenderFunction = ({ id, label, required, type }) => {\r\n\t\tif (!label || type === 'submit' || type === 'reset') {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst renderFieldError = (id: string) => {\r\n\t\tconst validationMessage =\r\n\t\t\tvalidationMessages[id] && validationMessages[id].message;\r\n\t\tconst isInvalid = invalidFields.indexOf(id) !== -1;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{validationMessage}\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst renderField: RenderFunction = ({\r\n\t\tname,\r\n\t\ttype,\r\n\t\trequired,\r\n\t\tpattern,\r\n\t\tplaceholder,\r\n\t\tdisabled,\r\n\t\tdescription,\r\n\t\tmin,\r\n\t\tmax,\r\n\t\tlabel,\r\n\t\tfailedMessage,\r\n\t\tpatternMessage,\r\n\t\toptions,\r\n\t\tfieldActions,\r\n\t}) => {\r\n\t\tlet buttonText = label || type;\r\n\r\n\t\tswitch (type) {\r\n\t\t\tcase 'submit':\r\n\t\t\tcase 'reset':\r\n\t\t\t\tif (type === 'submit' && isLoading) {\r\n\t\t\t\t\tbuttonText = 'Loading...';\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\tcase 'textarea':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\tcase 'select':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\tcase 'multiselect':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\tcase 'text':\r\n\t\t\tdefault:\r\n\t\t\t\tlet actions: any = {};\r\n\r\n\t\t\t\tif (fieldActions) {\r\n\t\t\t\t\tactions = checkFieldActions(fieldActions, values);\r\n\t\t\t\t\tfieldActionExists = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tconst renderFieldset: RenderFunction = ({\r\n\t\tname,\r\n\t\ttype,\r\n\t\toptions,\r\n\t\tlabel,\r\n\t\trequired,\r\n\t\tdescription,\r\n\t\tvalidationMessage,\r\n\t}) => {\r\n\t\tconst isInvalid = invalidFields.indexOf(name) !== -1;\r\n\t\tconst FieldComponent = type === 'radio' ? RadioButton : Checkbox;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{options.map((opt: any, index: number) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst renderSingleInput: RenderFunction = ({\r\n\t\tname,\r\n\t\ttype,\r\n\t\toptions,\r\n\t\trequired,\r\n\t\tdisabled,\r\n\t\tdescription,\r\n\t\tvalidationMessage,\r\n\t}) => {\r\n\t\tconst fieldLabel = options[0].caption;\r\n\t\tconst fieldValue = options[0].value;\r\n\r\n\t\tconst FieldComponent = type === 'radio' ? RadioButton : Checkbox;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\treturn [renderFormElement, fieldActionExists];\r\n};\r\n","import { useEffect, useRef } from 'react';\r\n\r\nexport const usePrevious = (value: any): any => {\r\n\tconst ref = useRef();\r\n\tuseEffect(() => {\r\n\t\tref.current = value;\r\n\t});\r\n\treturn ref.current;\r\n};\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport { Transition } from 'react-transition-group';\r\nimport { TransitionState } from 'types/global';\r\nimport clsx from 'clsx';\r\n\r\ninterface UseTransitionToggle {\r\n\t(initialState: boolean, dropdown?: boolean): [boolean, () => void, any, any];\r\n}\r\n\r\ninterface ContentWrapperProps {\r\n\ttimeout?: number;\r\n\texpanded: boolean;\r\n\tcontainerRef: any;\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\nconst ContentWrapper: React.FC = ({\r\n\tchildren,\r\n\texpanded,\r\n\tcontainerRef,\r\n\ttimeout = 500,\r\n\t...htmlAttributes\r\n}) => (\r\n\t\r\n\t\t{(state: TransitionState) => (\r\n\t\t\t\r\n\t\t\t\t
{children}
\r\n\t\t\t
\r\n\t\t)}\r\n\t\r\n);\r\n\r\nexport const useTransitionToggle: UseTransitionToggle = (\r\n\tinitialState,\r\n\tdropdown = false\r\n) => {\r\n\tconst [expanded, setExpanded] = useState(initialState || false);\r\n\tconst containerRef = useRef(null);\r\n\r\n\tconst handleClickOutsideComponent = (e: MouseEvent) => {\r\n\t\tif (containerRef && !containerRef.current.contains(e.target) && expanded) {\r\n\t\t\tsetExpanded(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst toggle = () => setExpanded((expanded) => !expanded);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (dropdown) {\r\n\t\t\tdocument.addEventListener('click', handleClickOutsideComponent);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (dropdown) {\r\n\t\t\t\tdocument.removeEventListener('click', handleClickOutsideComponent);\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n\treturn [expanded, toggle, containerRef, ContentWrapper];\r\n};\r\n","interface Option {\r\n\tvalue: string;\r\n\tcaption: string;\r\n\tchecked?: boolean;\r\n}\r\n\r\n/**\r\n * Extracts the initial form values for the Form-component.\r\n */\r\nexport const getInitialFormValues = (fields: any, currentStep: number): any => {\r\n\tconst formValues: any = {};\r\n\r\n\tObject.keys(fields).map((key) => {\r\n\t\tconst el = fields[key];\r\n\r\n\t\tif (\r\n\t\t\tel.type === 'select' ||\r\n\t\t\tel.type === 'radio' ||\r\n\t\t\tel.type === 'checkbox' ||\r\n\t\t\tel.type === 'multiselect'\r\n\t\t) {\r\n\t\t\tformValues[el.name] = [];\r\n\r\n\t\t\tel.options.forEach((opt: Option) => {\r\n\t\t\t\tif (opt.checked) {\r\n\t\t\t\t\tformValues[el.name].push(opt.value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (el.type === 'select') {\r\n\t\t\t\tformValues[el.name] = formValues[el.name][0]\r\n\t\t\t\t\t? formValues[el.name][0]\r\n\t\t\t\t\t: '';\r\n\t\t\t}\r\n\t\t} else if (el.predefinedValue) {\r\n\t\t\tif (el.name === '__FormCurrentStepIndex') {\r\n\t\t\t\tformValues[el.name] = currentStep;\r\n\t\t\t} else {\r\n\t\t\t\tformValues[el.name] = el.predefinedValue;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\treturn formValues;\r\n};\r\n\r\n/**\r\n * Returns data and visible fields for current form step\r\n */\r\nexport const getStepFields = (currentStep: number, formId: string) => {\r\n\tconst stepId = `form-${formId}-step-${currentStep}`;\r\n\tconst currentStepNode = document.getElementById(stepId);\r\n\tlet formData = new FormData();\r\n\tlet currentStepFields: any = [];\r\n\r\n\tformData = getHiddenFieldValues(formData, formId);\r\n\r\n\tif (currentStepNode) {\r\n\t\tcurrentStepFields = currentStepNode.querySelectorAll(\r\n\t\t\t'input, select, textarea'\r\n\t\t);\r\n\t\tconst visibleFields: string[] = [];\r\n\r\n\t\tcurrentStepFields.forEach((field: any) => {\r\n\t\t\tconst type = field.getAttribute('type');\r\n\t\t\tconst fieldId = field.getAttribute('id') || field.getAttribute('name');\r\n\r\n\t\t\tif (fieldId.indexOf('-') !== -1) {\r\n\t\t\t\tvisibleFields.push(fieldId.slice(0, fieldId.indexOf('-')));\r\n\t\t\t} else {\r\n\t\t\t\tvisibleFields.push(fieldId);\r\n\t\t\t}\r\n\r\n\t\t\tif (field.options) {\r\n\t\t\t\tformData = getSelectValue(field, formData);\r\n\t\t\t} else if (type === 'checkbox' || type === 'radio') {\r\n\t\t\t\tformData = getCheckboxAndRadioValue(field, formData);\r\n\t\t\t} else if (type === 'file') {\r\n\t\t\t\tformData = getUploadedFiles(field, formData);\r\n\t\t\t} else {\r\n\t\t\t\tformData = getFieldValue(field, formData);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn [formData, currentStep, visibleFields];\r\n\t}\r\n};\r\n\r\n/**\r\n * Appends values of hidden fields to formData\r\n */\r\nconst getHiddenFieldValues = (formData: FormData, formId: string) => {\r\n\tconst hiddenFieldHolder = document.getElementById(\r\n\t\t`form-${formId}-hiddenfields`\r\n\t);\r\n\r\n\tif (hiddenFieldHolder) {\r\n\t\tconst hiddenFields = hiddenFieldHolder.querySelectorAll('input, select');\r\n\r\n\t\thiddenFields.forEach((field: any) => {\r\n\t\t\tformData.append(field.getAttribute('name'), field.value);\r\n\t\t});\r\n\t}\r\n\treturn formData;\r\n};\r\n\r\n/**\r\n * Appends value of select element to formData\r\n */\r\nconst getSelectValue = (field: any, formData: FormData) => {\r\n\tfor (var i = 0; i < field.options.length; i++) {\r\n\t\tif (field.options[i].selected) {\r\n\t\t\tformData.append(field.getAttribute('name'), field.options[i].value);\r\n\t\t}\r\n\t}\r\n\treturn formData;\r\n};\r\n\r\n/**\r\n * Appends value of checkbox or radio button to formData\r\n */\r\nconst getCheckboxAndRadioValue = (field: any, formData: FormData) => {\r\n\tif (field.checked) {\r\n\t\tformData.append(field.getAttribute('name'), field.value);\r\n\t}\r\n\treturn formData;\r\n};\r\n\r\n/**\r\n * Appends value of uploaded files to formData\r\n */\r\nconst getUploadedFiles = (field: any, formData: FormData) => {\r\n\tfor (var j = 0; j < field.files.length; j++) {\r\n\t\tformData.append(field.getAttribute('name'), field.files[j]);\r\n\t}\r\n\treturn formData;\r\n};\r\n\r\n/**\r\n * Appends value of input field to formData\r\n */\r\nconst getFieldValue = (field: any, formData: FormData) => {\r\n\tformData.append(field.getAttribute('name'), field.value);\r\n\treturn formData;\r\n};\r\n","// import fetch from 'unfetch';\r\n\r\n/**\r\n * Submits an Episerver form\r\n */\r\nexport const submitForm = (\r\n\tvalues: any,\r\n\tstepIndex: number,\r\n\tdispatch: any,\r\n\tsteps: any[],\r\n\tform: any\r\n) => {\r\n\tconst { currentStep, submissionId, action, method, redirectUrl } = form;\r\n\r\n\tconst multiStep = steps.length > 2 && stepIndex !== steps.length - 2;\r\n\tconst nextStep = multiStep ? stepIndex + 1 : currentStep + 1;\r\n\r\n\tvalues.set('__FormCurrentStepIndex', currentStep);\r\n\tvalues.set('__FormSubmissionId', submissionId);\r\n\r\n\tdispatch({\r\n\t\ttype: 'UPDATE_STATE',\r\n\t\tpayload: { isLoading: true, serverValidationError: false },\r\n\t});\r\n\r\n\tfetch(action, {\r\n\t\tbody: values,\r\n\t\tcache: 'no-cache',\r\n\t\theaders: {\r\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t},\r\n\t\tmethod,\r\n\t\tcredentials: 'same-origin',\r\n\t\tredirect: 'follow',\r\n\t\treferrer: 'no-referrer',\r\n\t})\r\n\t\t.then((response) => {\r\n\t\t\tif (response.ok) {\r\n\t\t\t\treturn response;\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error(response.statusText);\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then((response) => response.json())\r\n\t\t.then((response) => {\r\n\t\t\treturn handleResponse(\r\n\t\t\t\tresponse,\r\n\t\t\t\tmultiStep,\r\n\t\t\t\tnextStep,\r\n\t\t\t\tdispatch,\r\n\t\t\t\tredirectUrl\r\n\t\t\t);\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tconst message =\r\n\t\t\t\ttypeof error === 'string'\r\n\t\t\t\t\t? error\r\n\t\t\t\t\t: 'An error occurred, try again later';\r\n\r\n\t\t\talert(message);\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: 'UPDATE_STATE',\r\n\t\t\t\tpayload: { isLoading: false },\r\n\t\t\t});\r\n\t\t});\r\n};\r\n\r\n/**\r\n * Handles the submission response\r\n */\r\nconst handleResponse = (\r\n\tresponse: any,\r\n\tmultiStep: boolean,\r\n\tnextStep: number,\r\n\tdispatch: any,\r\n\tredirectUrl: string\r\n) => {\r\n\tdispatch({\r\n\t\ttype: 'UPDATE_STATE',\r\n\t\tpayload: {\r\n\t\t\tisLoading: false,\r\n\t\t\tinvalidFields: [],\r\n\t\t\tvalidationMessages: {},\r\n\t\t\tcurrentStep: nextStep,\r\n\t\t},\r\n\t});\r\n\r\n\tif (!response.IsSuccess) {\r\n\t\thandleServerValidationError(\r\n\t\t\tresponse.AdditionalParams.__FormField,\r\n\t\t\tdispatch\r\n\t\t);\r\n\t}\r\n\r\n\tif (multiStep && response.IsSuccess) {\r\n\t\tdispatch({\r\n\t\t\ttype: 'UPDATE_STATE',\r\n\t\t\tpayload: {\r\n\t\t\t\tsubmissionId: response.Data ? response.Data.SubmissionId : '',\r\n\t\t\t},\r\n\t\t});\r\n\t} else if (response.Message && response.Message !== '') {\r\n\t\tif (\r\n\t\t\t(response.RedirectUrl && response.RedirectUrl.length > 0) ||\r\n\t\t\t(redirectUrl && redirectUrl.length > 0)\r\n\t\t) {\r\n\t\t\twindow.location.href = response.RedirectUrl || redirectUrl;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tdispatch({\r\n\t\t\ttype: 'UPDATE_STATE',\r\n\t\t\tpayload: { successMessage: response.Message },\r\n\t\t});\r\n\t}\r\n};\r\n\r\n/**\r\n * Sums up server validation errors with fields and validationmessages\r\n */\r\nconst handleServerValidationError = (fieldErrors: any[], dispatch: any) => {\r\n\tconst invalidFields: string[] = [];\r\n\tconst validationMessages: any = {};\r\n\r\n\tfieldErrors.forEach((field) => {\r\n\t\tinvalidFields.push(field.InvalidElement);\r\n\t\tvalidationMessages[field.InvalidElement] = {\r\n\t\t\tlabel: field.InvalidElementLabel,\r\n\t\t\tmessage: field.ValidationMessage,\r\n\t\t};\r\n\t});\r\n\r\n\tdispatch({\r\n\t\ttype: 'UPDATE_STATE',\r\n\t\tpayload: {\r\n\t\t\tinvalidFields,\r\n\t\t\tvalidationMessages,\r\n\t\t\tserverValidationError: true,\r\n\t\t},\r\n\t});\r\n};\r\n","import React, { forwardRef } from 'react';\r\n\r\ntype State = {\r\n\tsuccessMessage: string;\r\n\tinvalidFields: string[];\r\n\tserverValidationError: string | boolean;\r\n\tvalidationMessages: any;\r\n};\r\n\r\ninterface FormMessageProps {\r\n\t/** Message to display when successfully submitted */\r\n\tconfirmationMessage: string | null;\r\n\r\n\t/** Current form state */\r\n\tstate: State;\r\n\r\n\t/** FormMessage ref to set */\r\n\tref: any;\r\n}\r\n\r\ninterface ErrorSummaryProps {\r\n\tvalidationMessages: any;\r\n}\r\n\r\nconst ErrorSummary: React.FC = ({ validationMessages }) => (\r\n\t<>\r\n\t\t

\r\n\t\t\tFormuläret innehåller {Object.keys(validationMessages).length} fel:\r\n\t\t

\r\n\r\n\t\t
\r\n\t\t\t
    \r\n\t\t\t\t{validationMessages &&\r\n\t\t\t\t\tObject.keys(validationMessages).map((key, i) => (\r\n\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{validationMessages[key].message}\r\n\t\t\t\t\t\t
  • \r\n\t\t\t\t\t))}\r\n\t\t\t
\r\n\t\t
\r\n\t\r\n);\r\n\r\nconst FormMessage: React.FC = forwardRef(\r\n\t({ confirmationMessage, state }, ref: any) => {\r\n\t\tconst {\r\n\t\t\tsuccessMessage,\r\n\t\t\tinvalidFields,\r\n\t\t\tserverValidationError,\r\n\t\t\tvalidationMessages,\r\n\t\t} = state;\r\n\t\tconst hasMessageToShow = confirmationMessage || successMessage;\r\n\t\tconst messageType =\r\n\t\t\tserverValidationError || invalidFields.length > 0 ? 'error' : 'success';\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{(serverValidationError || invalidFields.length > 0) && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{confirmationMessage &&

{confirmationMessage}

}\r\n\t\t\t\t\t{successMessage && (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport default FormMessage;\r\n","/**\r\n * EpiForms\r\n */\r\n\r\nimport React, { useReducer, useRef, useEffect } from 'react';\r\n\r\nimport { useForceUpdate, useFormRenderer, usePrevious } from 'hooks';\r\nimport { getInitialFormValues, getStepFields } from './EpiForms.helpers';\r\nimport { submitForm } from './EpiForms.submit';\r\n\r\nimport { Form } from 'components/Form';\r\nimport FormStep from './FormStep';\r\nimport FormMessage from './FormMessage';\r\n\r\nexport interface EpiFormsProps {\r\n\t/** Form id */\r\n\tid: string;\r\n\r\n\t/** Fields within the Form */\r\n\tfields: any;\r\n\r\n\t/** Form steps */\r\n\tsteps: any[];\r\n\r\n\t/** Message to show when successfully submitted */\r\n\tconfirmationMessage: string | null;\r\n\r\n\t/** Form method */\r\n\tmethod?: string;\r\n\r\n\t/** Form action */\r\n\taction?: string;\r\n\r\n\t/** Form encoding type */\r\n\tencodingType?: string;\r\n\r\n\t/** Form dependencies */\r\n\tdependencies?: any[];\r\n\r\n\t/** Form title (h1) */\r\n\ttitle?: string | null;\r\n\r\n\t/** Form description (p) */\r\n\tdescription?: string | null;\r\n\r\n\t/** Url to redirect to when successfully submitted */\r\n\tredirectUrl?: string;\r\n\r\n\t/** Epi properties for on-page editing */\r\n\t_properties?: any;\r\n\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\nconst initialState = {\r\n\tisLoading: false,\r\n\tinvalidFields: [],\r\n\tvalidationMessages: {},\r\n\tsuccessMessage: '',\r\n\tcurrentStep: 0,\r\n\tvalues: {},\r\n\tsubmissionId: '',\r\n\tserverValidationError: false,\r\n};\r\n\r\nconst reducer = (state: any, action: any) => {\r\n\tswitch (action.type) {\r\n\t\tcase 'UPDATE_STATE':\r\n\t\t\treturn { ...state, ...action.payload };\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n};\r\n\r\n/** Rendering of an EpiForms block. */\r\nconst EpiForms: React.FC = ({\r\n\tfields,\r\n\tmethod = 'GET',\r\n\taction,\r\n\tencodingType = 'multipart/form-data',\r\n\tsteps,\r\n\tdependencies,\r\n\tid,\r\n\ttitle,\r\n\tdescription,\r\n\tconfirmationMessage,\r\n\tredirectUrl,\r\n\t_properties = {},\r\n}) => {\r\n\tconst [state, dispatch] = useReducer(reducer, initialState);\r\n\tconst { currentStep, successMessage, submissionId, invalidFields } = state;\r\n\r\n\tconst forceUpdate = useForceUpdate();\r\n\tconst [renderFormElement, fieldActionExists] = useFormRenderer(\r\n\t\tfields,\r\n\t\tstate,\r\n\t\tdependencies\r\n\t);\r\n\r\n\tconst showForm = !confirmationMessage && !successMessage;\r\n\tconst formValues = getInitialFormValues(fields, currentStep);\r\n\r\n\tconst messageHolderRef = useRef(null);\r\n\tconst prevInvalidFields = usePrevious(invalidFields);\r\n\tlet prevStep = usePrevious(currentStep);\r\n\r\n\tif (prevStep === undefined) {\r\n\t\tprevStep = 0;\r\n\t}\r\n\r\n\t// Focus messageHolderRef if success or error\r\n\tuseEffect(() => {\r\n\t\tconst successfullySubmitted =\r\n\t\t\tinvalidFields.length > 0 || confirmationMessage || successMessage;\r\n\t\tconst formMessageElement = messageHolderRef && messageHolderRef.current;\r\n\r\n\t\tif (\r\n\t\t\tsuccessfullySubmitted &&\r\n\t\t\tformMessageElement &&\r\n\t\t\tprevInvalidFields !== invalidFields\r\n\t\t) {\r\n\t\t\tmessageHolderRef.current.focus();\r\n\t\t}\r\n\t}, [invalidFields, messageHolderRef]);\r\n\r\n\t// Jump back to top if step changes\r\n\tuseEffect(() => {\r\n\t\tif (window && prevStep !== currentStep && steps.length > 2) {\r\n\t\t\twindow.location.href = `#${id}`;\r\n\t\t}\r\n\t}, [currentStep]);\r\n\r\n\t// If we have dependencies (conditional fields), we re-render.\r\n\tconst onChange = (field: any, values: any) => {\r\n\t\tif ((dependencies && dependencies.length > 0) || fieldActionExists) {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: 'UPDATE_STATE',\r\n\t\t\t\tpayload: { values },\r\n\t\t\t});\r\n\r\n\t\t\tif (dependencies && dependencies.length > 0) {\r\n\t\t\t\tforceUpdate();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst onSubmit = (\r\n\t\tvalues: any,\r\n\t\tstepIndex: number,\r\n\t\tcurrentValidationMessages: any,\r\n\t\tcurrentInvalidFields: string[]\r\n\t) => {\r\n\t\tif (currentInvalidFields && currentInvalidFields.length > 0) {\r\n\t\t\tdispatch({\r\n\t\t\t\ttype: 'UPDATE_STATE',\r\n\t\t\t\tpayload: {\r\n\t\t\t\t\tinvalidFields: currentInvalidFields,\r\n\t\t\t\t\tvalidationMessages: currentValidationMessages,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsubmitForm(values, stepIndex, dispatch, steps, {\r\n\t\t\tcurrentStep,\r\n\t\t\tsubmissionId,\r\n\t\t\taction,\r\n\t\t\tmethod,\r\n\t\t\tredirectUrl,\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t 2}\r\n\t\t\tcurrentStep={currentStep}\r\n\t\t\tgetStepFields={getStepFields}\r\n\t\t\tid={id}\r\n\t\t>\r\n\t\t\t
\r\n\t\t\t\t{title &&

{title}

}\r\n\r\n\t\t\t\t{description && (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t{description}\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t\t{showForm && (\r\n\t\t\t\t
\r\n\t\t\t\t\t{steps.map((step: any, i: number) =>\r\n\t\t\t\t\t\tstep.index === -1 ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : steps.length === 2 ? (\r\n\t\t\t\t\t\t\tstep.fields.map(renderFormElement)\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\tdispatch({\r\n\t\t\t\t\t\t\t\t\t\ttype: 'UPDATE_STATE',\r\n\t\t\t\t\t\t\t\t\t\tpayload: state,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{step.fields.map(renderFormElement)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default EpiForms;\r\n","import EpiForms from './EpiForms';\r\n\r\nexport default EpiForms;\r\n","import { useState } from 'react';\r\n\r\nexport const useForceUpdate = () => {\r\n\tconst [value, setValue] = useState(0);\r\n\treturn () => setValue((value) => ++value);\r\n};\r\n","/**\r\n * Puff\r\n */\r\n\r\nimport React from 'react';\r\nimport { PuffModel } from 'types/blocks';\r\n\r\nimport Text from 'components/Text';\r\nimport Link from 'components/Link';\r\n\r\n/** Puff with text and link */\r\nconst Puff: React.FC = ({\r\n\tid,\r\n\theading,\r\n\turl,\r\n\tlinkText,\r\n\ttext,\r\n\t_properties = {},\r\n}) => (\r\n\t\r\n\t\t\r\n\t\t\t{heading}\r\n\t\t\r\n\t\t\r\n\t\t\t{text}\r\n\t\t\r\n\r\n\t\t{url && linkText && (\r\n\t\t\t\r\n\t\t\t\t{linkText}\r\n\t\t\t\r\n\t\t)}\r\n\r\n\t\t{_properties?.linkText && (\r\n\t\t\t\r\n\t\t\t\t{linkText}\r\n\t\t\t\r\n\t\t)}\r\n\t\r\n);\r\n\r\nexport default Puff;\r\n","/**\r\n * Puff\r\n */\r\n\r\nimport React from 'react';\r\nimport { PuffWithImageModel } from 'types/blocks';\r\n\r\nimport Text from 'components/Text';\r\nimport Link from 'components/Link';\r\nimport Image from 'components/Image';\r\n\r\n/** Puff with image, text and link. */\r\nexport const PuffWithImage: React.FC = ({\r\n\tid,\r\n\theading,\r\n\timage,\r\n\turl,\r\n\tlinkText,\r\n\ttext,\r\n\t_properties = {},\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t{heading}\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{heading}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{text}\r\n\t\t\t\r\n\r\n\t\t\t{url && linkText && (\r\n\t\t\t\t\r\n\t\t\t\t\t{linkText}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{_properties?.linkText && (\r\n\t\t\t\t\r\n\t\t\t\t\t{linkText}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default PuffWithImage;\r\n","/**\r\n * RichText\r\n */\r\n\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { selectEpi } from 'store/modules/epi';\r\n\r\ninterface Props {\r\n\tclassName?: string;\r\n}\r\n\r\n/** Richtext components which handles links. */\r\nconst RichText: React.FC = ({ className, children }) => {\r\n\tconst history = useHistory();\r\n\t//const epi = useSelector(selectEpi);\r\n\tconst nodeRef = useRef(null);\r\n\r\n\tfunction handleLinkClick(this: HTMLAnchorElement, event: MouseEvent): void {\r\n\t\tconst href = this.getAttribute('href');\r\n\t\tconst target = this.getAttribute('target');\r\n\t\tconst hasDownloadAttribute = this.hasAttribute('download');\r\n\t\tif (\r\n\t\t\thref &&\r\n\t\t\thref.charAt(0) === '/' &&\r\n\t\t\ttarget !== '_blank' &&\r\n\t\t\t!hasDownloadAttribute\r\n\t\t) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\thistory.push(href);\r\n\t\t}\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tconst nodeRefRef = nodeRef;\r\n\t\tif (nodeRef.current) {\r\n\t\t\tnodeRef.current.querySelectorAll('a').forEach((a) => {\r\n\t\t\t\ta.addEventListener('click', handleLinkClick);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (nodeRefRef.current) {\r\n\t\t\t\tnodeRefRef.current.querySelectorAll('a').forEach((a) => {\r\n\t\t\t\t\ta.removeEventListener('click', handleLinkClick);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\t// eslint-disable-next-line\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{children}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default RichText;\r\n","/**\r\n * LinkWithImageBlock\r\n */\r\n\r\nimport React from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport Link from 'components/Link';\r\nimport Icon from 'components/Icon';\r\nimport { IImage } from 'types/global';\r\nimport Image from 'components/Image';\r\n\r\nexport interface LinkProps {\r\n\t/** Link heading */\r\n\theading: string;\r\n\r\n\t/** Link image */\r\n\timage: IImage;\r\n\r\n\t/** Link url */\r\n\turl: string;\r\n\r\n\t/** Link size (size changes for text/image) */\r\n\tsize?: 'small' | 'large';\r\n\r\n\t/** index for id */\r\n\tindex: number;\r\n}\r\n\r\n/** Tiny image links block used by Legend */\r\nconst LinkWithImageBlock: React.FC = ({\r\n\theading,\r\n\timage,\r\n\turl,\r\n\tsize = 'small',\r\n\tindex,\r\n}) => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{heading}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t
\r\n\t\r\n);\r\n\r\nexport default LinkWithImageBlock;\r\n","import RichText from 'components/RichText';\r\nimport React from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { TableRowsBlock } from 'types/blocks';\r\nimport { IImage } from 'types/global';\r\nimport Image from \"components/Image\";\r\n\r\ninterface Props {\r\n\t/** Table Headings */\r\n\ttableHeadTexts: string[];\r\n\r\n\t/** Table Rows */\r\n\ttableRows: Array;\r\n\r\n\t/** Table Name */\r\n\theading?: string;\r\n\r\n\t/** Table Caption */\r\n\tcaption?: string;\r\n\r\n\t/** Table Foot notes */\r\n\ttableFootNotes?: string;\r\n\r\n\t/** Lavin logo */\r\n\timage: IImage;\r\n\r\n\tclassName?: string;\r\n}\r\n\r\nconst DesktopRiskTable: React.FC = ({\r\n\theading,\r\n\tcaption,\r\n\timage,\r\n\ttableHeadTexts,\r\n\ttableRows,\r\n\ttableFootNotes,\r\n\tclassName,\r\n}) => {\r\n\tconst location = useLocation();\r\n\tconst isEnglish = location.pathname.startsWith('/en/');\r\n\tlet scaleImage = isEnglish ? 'Risk Condition' : 'Riskförhållande';\r\n\tlet riskLevel = isEnglish ? 'Risk Level' : 'Risknivå';\r\n\tlet recommendation = isEnglish ? 'Risk Description' : 'Riskbeskrivning';\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t\t{heading}\r\n\t\t\t\t

\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{tableHeadTexts && tableHeadTexts.map((heading, index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{tableRows && tableRows.map((row, index) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{row.cells.map((item, i) => {\r\n\t\t\t\t\t\t\t\tconst {\r\n\t\t\t\t\t\t\t\t\ttext,\r\n\t\t\t\t\t\t\t\t\tbackgroundImage,\r\n\t\t\t\t\t\t\t\t\tbackgroundColor,\r\n\t\t\t\t\t\t\t\t\ttextColor,\r\n\t\t\t\t\t\t\t\t\tfootNoteId,\r\n\t\t\t\t\t\t\t\t} = item;\r\n\t\t\t\t\t\t\t\t// Split the text if it contains \" - \" separator\r\n\t\t\t\t\t\t\t\tconst parts = text?.includes(' - ')\r\n\t\t\t\t\t\t\t\t\t? text.split(' - ')\r\n\t\t\t\t\t\t\t\t\t: [text];\r\n\t\t\t\t\t\t\t\tconst [numberPart, textPart] = parts; // Destructure the parts if applicable\r\n\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{backgroundImage ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{text?.includes(' - ') ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{numberPart}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{textPart}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
\r\n\t\t\t
{caption}
\r\n\t\t\t{tableFootNotes && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default DesktopRiskTable;\r\n","/**\r\n * Accordion\r\n */\r\n\r\nimport React from 'react';\r\n\r\nconst renderChildren = (children: any) => {\r\n\tconst renderedChildren = React.Children.map(children, (child, index) => {\r\n\t\tif (!child) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst props: any = child && child.props ? { ...child.props } : {};\r\n\r\n\t\treturn React.cloneElement(child, props);\r\n\t});\r\n\r\n\treturn renderedChildren;\r\n};\r\n\r\n/** An accessible accordion used for toggling content. */\r\nconst Accordion: React.FC = ({ children }) => {\r\n\treturn
{renderChildren(children)}
;\r\n};\r\n\r\nexport default Accordion;\r\n","/**\r\n * AccordionItem\r\n */\r\n\r\nimport React, { useEffect, useRef } from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport Image from 'components/Image';\r\n\r\nexport interface AccordionItemProps {\r\n\t/** The title/heading text for the accordion item. */\r\n\ttitle: string;\r\n\r\n\t/** Subtitle for accordion */\r\n\tsubtitle?: string;\r\n\r\n\t/** Should the item be opened by default? */\r\n\topen?: boolean;\r\n\r\n\t/** Tag type to set the header to */\r\n\tas?: any;\r\n\r\n\t/** Callback when the item is toggled */\r\n\tonToggle?: (title: string, isOpen: boolean) => void;\r\n\r\n\t/** Accordion id (if not set, a unique id is generated) */\r\n\tid?: string;\r\n\r\n\t/** Optional side image (rounded) */\r\n\timage?: any;\r\n\r\n\t/** boolean if is Risk scale data */\r\n\tisRiskScale?: boolean;\r\n\r\n\t/** Optional background color (risk mobile table) */\r\n\tbackgroundColor?: string;\r\n\r\n\t/** Optional text color color (risk mobile table) */\r\n\ttextColor?: string;\r\n}\r\n\r\n/** A single item inside an accordion. */\r\nconst AccordionItem: React.FC = ({\r\n\ttitle,\r\n\tsubtitle,\r\n\timage,\r\n\tchildren,\r\n\tonToggle,\r\n\topen = false,\r\n\tas = 'h2',\r\n\tid,\r\n\tisRiskScale = false,\r\n\tbackgroundColor,\r\n\ttextColor,\r\n}) => {\r\n\tconst Heading = as;\r\n\tconst detailsRef = useRef(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst node = detailsRef.current;\r\n\t\tif (node) {\r\n\t\t\tconst handleToggle = () => {\r\n\t\t\t\tonToggle && onToggle(title, node.open);\r\n\t\t\t};\r\n\r\n\t\t\tnode.addEventListener('toggle', handleToggle);\r\n\r\n\t\t\treturn () => {\r\n\t\t\t\tnode.removeEventListener('toggle', handleToggle);\r\n\t\t\t};\r\n\t\t}\r\n\t}, [onToggle, title]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{!isRiskScale && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{image && (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t{subtitle && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{subtitle}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!image && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{isRiskScale && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{image && (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{subtitle}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!image && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t
{children}
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AccordionItem;\r\n","import React from 'react';\r\nimport { TableRowsBlock } from 'types/blocks';\r\nimport { IImage } from 'types/global';\r\nimport { Accordion, AccordionItem } from 'components/Accordion';\r\nimport RichText from 'components/RichText';\r\n\r\ninterface Props {\r\n\t/** Table Headings */\r\n\ttableHeadTexts: string[];\r\n\r\n\t/** Table Rows */\r\n\ttableRows: Array;\r\n\r\n\t/** Table Name */\r\n\theading?: string;\r\n\r\n\t/** Table Foot notes */\r\n\ttableFootNotes?: string;\r\n\r\n\t/** Lavin logo */\r\n\timage: IImage;\r\n\r\n\tclassName?: string;\r\n}\r\n\r\nconst MobileRiskTable: React.FC = ({\r\n\ttableHeadTexts,\r\n\ttableRows,\r\n\theading,\r\n\ttableFootNotes,\r\n\timage,\r\n\tclassName,\r\n}) => {\r\n\tconst [\r\n\t\tscaleImage,\r\n\t\triskLevel,\r\n\t\trecommendation,\r\n\t\tprobability,\r\n\t\tsizeAndSpread,\r\n\t] = tableHeadTexts;\r\n\r\n\t// Create an empty array to store the texts\r\n\tconst riskLevelText: string[] = [];\r\n\tconst recommendationText: string[] = [];\r\n\tconst probabilityText: string[] = [];\r\n\tconst sizeAndSpreadText: string[] = [];\r\n\r\n\t// Loop through the tableRows array and extract the texts\r\n\tfor (const row of tableRows) {\r\n\t\tconst [pos1, pos2, pos3, pos4] = row.cells.slice(1, 5); // Get cells at positions 1, 2, 3, and 4\r\n\r\n\t\tconst text1 = pos1?.text;\r\n\t\tconst text2 = pos2?.text;\r\n\t\tconst text3 = pos3?.text;\r\n\t\tconst text4 = pos4?.text;\r\n\r\n\t\tif (text1) {\r\n\t\t\triskLevelText.push(text1);\r\n\t\t}\r\n\t\tif (text2) {\r\n\t\t\trecommendationText.push(text2);\r\n\t\t}\r\n\t\tif (text3) {\r\n\t\t\tprobabilityText.push(text3);\r\n\t\t}\r\n\t\tif (text4) {\r\n\t\t\tsizeAndSpreadText.push(text4);\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t

\r\n\t\t\t\t{heading}\r\n\t\t\t

\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{scaleImage}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{riskLevel}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\r\n\t\t\t\t{tableRows &&\r\n\t\t\t\t\ttableRows.map((row, i) => {\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\treturn row.cells.map((cell, cellIndex) => {\r\n\t\t\t\t\t\t\t\tif (cellIndex === 0) {\r\n\t\t\t\t\t\t\t\t\tconst { backgroundImage, backgroundColor, textColor } = cell;\r\n\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{recommendation}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{recommendationText[i]}\r\n\t\t\t\t\t\t\t\t\t\t\t

\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{probability}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{probabilityText[i]}\r\n\t\t\t\t\t\t\t\t\t\t\t

\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{sizeAndSpread}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{sizeAndSpreadText[i]}\r\n\t\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})}\r\n\t\t\t
\r\n\t\t\t{tableFootNotes && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default MobileRiskTable;\r\n","/**\r\n * RiskTable\r\n */\r\nimport DesktopRiskTable from 'components/RiskTable/DesktopRiskTable';\r\nimport MobileRiskTable from 'components/RiskTable/MobileRiskTable';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { TableRowsBlock } from 'types/blocks';\r\nimport { IImage } from 'types/global';\r\n\r\ninterface Props {\r\n\t/**Title for component */\r\n\theading?: string;\r\n\r\n\t/**Lavin Logo image */\r\n\timage: IImage;\r\n\r\n\t/** Table Headings */\r\n\ttableHeadTexts: string[];\r\n\r\n\t/** Table Rows */\r\n\ttableRows: Array;\r\n}\r\n\r\n/** Table containing all the skill/risk ratings and what they mean. */\r\nconst RiskTable: React.FC = (props) => {\r\n\tconst tab = useMediaQuery({\r\n\t\tminWidth: 768,\r\n\t});\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{tab && }\r\n\t\t\t{!tab && }\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default RiskTable;\r\n","/**\r\n * EpiFragments\r\n */\r\n\r\nimport React from 'react';\r\nimport EpiForms from 'components/EpiForms';\r\nimport { EpiFormsProps } from 'components/EpiForms/EpiForms';\r\nimport Image from 'components/Image';\r\nimport { PuffWithImage } from 'components/Puff';\r\nimport RichText from 'components/RichText';\r\nimport Text from 'components/Text';\r\nimport LinkWithImageBlock from 'components/LinkWithImageBlock';\r\nimport RiskTable from 'components/RiskTable';\r\nimport { PuffWithImageModel } from 'types/blocks';\r\nimport {\r\n\tFragmentModelTypes,\r\n\tHeadingFragmentModel,\r\n\tImageFragmentModel,\r\n\tListFragmentModel,\r\n\tRawFragmentModel,\r\n\tTableFragmentModel,\r\n\tUrlFragmentModel,\r\n\tLinkWithImageModel,\r\n\tIconFragmentModel,\r\n} from 'types/fragments';\r\nimport clsx from 'clsx';\r\n\r\ninterface Props {\r\n\t/** Epi properties to use for on page editing */\r\n\t[htmlAttributes: string]: any;\r\n\r\n\t/** Fragments that should be rendered. */\r\n\tfragments?: FragmentModelTypes[];\r\n}\r\n\r\nconst getHeadingLevel = (level: number) => {\r\n\tswitch (level) {\r\n\t\tcase 1:\r\n\t\t\treturn 'h1';\r\n\t\tcase 2:\r\n\t\t\treturn 'h2';\r\n\t\tcase 3:\r\n\t\t\treturn 'h3';\r\n\t\tcase 4:\r\n\t\t\treturn 'h4';\r\n\t\tcase 5:\r\n\t\t\treturn 'h5';\r\n\t\tcase 6:\r\n\t\t\treturn 'h6';\r\n\t\tdefault:\r\n\t\t\treturn 'h2';\r\n\t}\r\n};\r\n\r\nconst getFragment = (fragment: FragmentModelTypes, index: number) => {\r\n\tswitch (fragment.modelType) {\r\n\t\tcase 'LinkWithImageBlock':\r\n\t\t\tconst linkWithImage = fragment as LinkWithImageModel;\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tcase 'HeadingFragment':\r\n\t\t\tconst data = fragment as HeadingFragmentModel;\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase 'PuffWithLargeImage':\r\n\t\t\tconst puff = fragment as PuffWithImageModel;\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t);\r\n\t\tcase 'LavinImageModel':\r\n\t\t\tconst imgData = fragment as ImageFragmentModel;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tcase 'TableFragment':\r\n\t\t\tconst tableData = fragment as TableFragmentModel;\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t);\r\n\t\tcase 'FormContainer':\r\n\t\t\tconst formContainer = fragment as EpiFormsProps;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t);\r\n\t\tcase 'ListFragment':\r\n\t\t\tconst listData = fragment as ListFragmentModel;\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tcase 'RawFragment':\r\n\t\t\tconst raw = fragment as RawFragmentModel;\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase 'UrlFragment':\r\n\t\t\tconst { href, target, text, title, rel } = fragment as UrlFragmentModel;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase 'IconFragment':\r\n\t\t\tconst iconData = fragment as IconFragmentModel;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t{iconData?.icon && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{iconData?.raw && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t);\r\n\t\tdefault:\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n\r\n/** Component for rendering Episerver fragments. */\r\nconst EpiFragments: React.FC = ({ fragments, ...htmlAttributes }) => {\r\n\treturn
{fragments?.map(getFragment)}
;\r\n};\r\n\r\nexport default EpiFragments;\r\n","/**\r\n * GlossaryContent\r\n */\r\n\r\nimport EpiFragments from 'components/EpiFragments';\r\nimport React from 'react';\r\n\r\n/** Main Glossary Content component */\r\nconst GlossaryContent: React.FC = (props: any) => {\r\n\tconst { letter, glossaryContent } = props;\r\n\tlet uniqueKey = letter + Math.random().toString(36).substring(2, 9);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t\t{letter}\r\n\t\t\t\t

\r\n\t\t\t
\r\n\r\n\t\t\t{glossaryContent &&\r\n\t\t\t\tglossaryContent.map((glossaryItem: any, i: number) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

{glossaryItem.heading}

\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default GlossaryContent;\r\n","/**\r\n * GlossaryLetter\r\n */\r\n\r\nimport React from 'react';\r\nimport { smoothScrollToTarget } from 'utils/smoothScrollToTarget';\r\n\r\n/** alphabet letter component. */\r\nconst GlossaryLetter: React.FC = (props: any) => {\r\n\t// Access the alphabet prop\r\n\tconst { alphabet, isEnglish } = props;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{alphabet && (\r\n\t\t\t\t
  • \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{alphabet}\r\n\t\t\t\t\t\r\n\t\t\t\t
  • \r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GlossaryLetter;\r\n","/**\r\n * GlossaryPage\r\n */\r\n\r\nimport React, { useEffect, useState } from 'react';\r\nimport BannerImage from 'components/BannerImage';\r\nimport Breadcrumb from 'components/Breadcrumb';\r\nimport { Cell, Grid } from 'components/Grid';\r\nimport Icon from 'components/Icon/Icon';\r\nimport { GlossaryPageModel } from 'types/pages';\r\nimport { smoothScrollToTarget } from 'utils/smoothScrollToTarget';\r\nimport { useLocation } from 'react-router-dom';\r\nimport GlossaryContent from 'components/GlossaryContent';\r\nimport GlossaryLetter from 'components/GlossaryLetter';\r\nimport { GlossaryTerm } from 'types/global';\r\nimport EpiFragments from 'components/EpiFragments';\r\nimport clsx from 'clsx';\r\n\r\n/** Glossary Page for lavinprognoser */\r\nconst GlossaryPage: React.FC = ({\r\n\theading,\r\n\tpreamble,\r\n\ttext,\r\n\tbannerImage,\r\n\tglossaryTermModels,\r\n}) => {\r\n\tconst location = useLocation();\r\n\tconst isEnglish = location.pathname.startsWith('/en/');\r\n\tconst targetRef = React.useRef(null);\r\n\r\n\tconst LETTERS = new Set('abcdefghijklmnopqrstuvwxyzåäö');\r\n\tconst isValidLetter = () => {\r\n\t\tconst validEntries: [string, GlossaryTerm[]][] = [];\r\n\r\n\t\tfor (const key in glossaryTermModels) {\r\n\t\t\tif (LETTERS.has(key.toLowerCase())) {\r\n\t\t\t\tvalidEntries.push([key.toLowerCase(), glossaryTermModels[key]]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn validEntries;\r\n\t};\r\n\tconst glossaryModel = isValidLetter(); // ask if glossaryTermModels has valid key/letter\r\n\tconst [searcheableGlossary, setSearcheableGlossary] = React.useState(\r\n\t\t[]\r\n\t);\r\n\tconst [searchTerm, setSearchTerm] = useState('');\r\n\tconst [noMatch, setNoMatch] = useState();\r\n\tconst [isActiveFocus, setIsActiveFocus] = useState(false);\r\n\tconst ariaLabelSearch = isEnglish\r\n\t\t? 'Search for a definition'\r\n\t\t: 'sök i lavinprognosers ordlista';\r\n\r\n\tconst placeHolder = isEnglish ? 'Search' : 'Sök';\r\n\r\n\t// useEffect to listen smoothScrollToTarget function\r\n\tuseEffect(() => {\r\n\t\t// Attach click event listeners to each anchor link\r\n\t\tconst letterLink = document.querySelectorAll('.glossary-filter');\r\n\t\tletterLink.forEach((link) => {\r\n\t\t\tlink.addEventListener('click', smoothScrollToTarget);\r\n\t\t});\r\n\r\n\t\t// Clean up the event listeners when the component is unmounted\r\n\t\treturn () => {\r\n\t\t\tletterLink.forEach((link) => {\r\n\t\t\t\tlink.removeEventListener('click', smoothScrollToTarget);\r\n\t\t\t});\r\n\t\t};\r\n\t}, []);\r\n\r\n\t// clean input & results\r\n\tconst handleReset = () => {\r\n\t\tsetNoMatch(false);\r\n\t\tsetSearchTerm('');\r\n\t\tsetSearcheableGlossary([]);\r\n\t\tsetIsActiveFocus(false);\r\n\t};\r\n\r\n\tconst handleSearch = (e: React.ChangeEvent) => {\r\n\t\tsetNoMatch(false);\r\n\t\t// Get the search term from the input field\r\n\t\tconst filteredTxt = e.target.value.trimStart();\r\n\r\n\t\t// Update the search input with the new value\r\n\t\tsetSearchTerm(filteredTxt);\r\n\t\t// Call search function with the new search term\r\n\t\tif (filteredTxt) {\r\n\t\t\tsearchGlossaryMatch(filteredTxt);\r\n\t\t} else {\r\n\t\t\t// clean search values to show original data\r\n\t\t\tsetSearcheableGlossary([]);\r\n\t\t}\r\n\t};\r\n\r\n\tconst searchGlossaryMatch = (text: string) => {\r\n\t\t// Iterate through the glossaryValue to find the matching text\r\n\t\tconst updatedSearchableGlossary = [];\r\n\t\tlet currentKey: string = '';\r\n\r\n\t\tfor (const [key, glossaryValue] of glossaryModel) {\r\n\t\t\tconst foundTerms = glossaryValue.filter((termObj: any) => {\r\n\t\t\t\treturn termObj.heading.toLowerCase().includes(text.toLowerCase());\r\n\t\t\t});\r\n\t\t\tif (foundTerms.length > 0) {\r\n\t\t\t\tsetNoMatch(false);\r\n\t\t\t\tcurrentKey = key;\r\n\t\t\t\tupdatedSearchableGlossary.push([currentKey, foundTerms]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (updatedSearchableGlossary.length === 0) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tsetNoMatch(true);\r\n\t\t\t}, 200);\r\n\t\t}\r\n\r\n\t\tsetSearcheableGlossary(updatedSearchableGlossary);\r\n\r\n\t\treturn null; // If not found, return null\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{bannerImage && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{preamble &&

    {preamble}

    }\r\n\t\t\t\t\t\t{text && }\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t setIsActiveFocus(false)}\r\n\t\t\t\t\t\t\t\t\tonFocus={() => setIsActiveFocus(true)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{searchTerm.length > 0 ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{noMatch && searcheableGlossary.length === 0 && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{isEnglish ? 'No results!' : 'Inga resultat!'}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{searcheableGlossary.length > 0 ? (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{isEnglish\r\n\t\t\t\t\t\t\t\t\t\t? `found it ${searcheableGlossary.length} results`\r\n\t\t\t\t\t\t\t\t\t\t: `hittade ${searcheableGlossary.length} resultat`}\r\n\t\t\t\t\t\t\t\t

    \r\n\r\n\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t{searcheableGlossary.map((alphabet, i: number) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t{searcheableGlossary.map(\r\n\t\t\t\t\t\t\t\t\t([letter, glossaryContent], index: number) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t{glossaryModel && (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t{glossaryModel.map((alphabet, i) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t\t\t{glossaryModel.map(\r\n\t\t\t\t\t\t\t\t\t\t\t([letter, glossaryContent], index: number) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{/* \r\n\t\t\t\t\t\t// use this in case we want to have aside colum\r\n\t\t\t\t\t */}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GlossaryPage;\r\n","/**\r\n * NewsListPage\r\n */\r\n\r\nimport React from 'react';\r\nimport { NewsListPageModel } from 'types/pages';\r\n\r\nimport Breadcrumb from 'components/Breadcrumb';\r\nimport BannerImage from 'components/BannerImage';\r\nimport Link from 'components/Link';\r\nimport Icon from 'components/Icon';\r\n\r\n/** News list page (listing NewsPages). */\r\nconst NewsListPage: React.FC = ({\r\n\theading,\r\n\tbannerImage,\r\n\tpages,\r\n}) => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t

    {heading}

    \r\n\t\t\t{bannerImage && }\r\n\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t{pages.map((page, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

    {page.date}

    \r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{page.heading}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{page.body &&

    {page.body}

    }\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{page.link.text}\r\n\t\t\t\t\t\t\t\t\"{page.heading}\"\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default NewsListPage;\r\n","/**\r\n * Card\r\n */\r\n\r\nimport React from 'react';\r\nimport { IImage } from 'types/global';\r\nimport Image from 'components/Image';\r\n\r\nimport Icon from 'components/Icon';\r\nimport Link from 'components/Link';\r\n\r\ninterface Props {\r\n\tid: number | string;\r\n\ticon?: 'circleExclamation' | 'suitcase' | 'snowboarding';\r\n\timage?: IImage;\r\n\tbody: string;\r\n\theading: string;\r\n\turl: string;\r\n}\r\n\r\n/** Navigation Page Card. */\r\nconst Card: React.FC = ({ image, icon, heading, body, url, id }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{icon && (\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{image && (\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t

    {body}

    \r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Card;\r\n","/**\r\n * NavigationPage\r\n */\r\n\r\nimport React from 'react';\r\nimport { NavigationPageModel } from 'types/pages';\r\n\r\nimport Breadcrumb from 'components/Breadcrumb';\r\nimport Card from 'components/Card';\r\nimport BannerImage from 'components/BannerImage';\r\n\r\n/** Navigational page with listing. */\r\nconst NavigationPage: React.FC = ({\r\n\theading,\r\n\tbannerImage,\r\n\tpages,\r\n}) => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{bannerImage && }\r\n\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t{pages.map((page, i) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default NavigationPage;\r\n","/**\r\n * NoContent\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\nimport { AiOutlineExclamationCircle } from 'react-icons/ai';\r\n\r\ninterface Props {\r\n\ttitle: String;\r\n\tmessage: String;\r\n}\r\n\r\n/** Content Block for Page with No Content */\r\nconst NoContent: React.FC = ({ title, message }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t

    \r\n\t\t\t\t{title}\r\n\t\t\t

    \r\n\t\t\t

    \r\n\t\t\t\t{message}\r\n\t\t\t

    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default NoContent;\r\n","/**\r\n * DirectionMeter\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\nimport { ProblemDynamicData } from 'types/pageTypes/area_page';\r\n\r\ntype Panel = keyof Omit<\r\n\tProps,\r\n\t| 'title'\r\n\t| 'className'\r\n\t| 'isInteractive'\r\n\t| 'onPanelClicked'\r\n\t| 'id'\r\n\t| 'height'\r\n\t| 'width'\r\n>;\r\ninterface Props {\r\n\tid?: string;\r\n\r\n\t/** Label and State of East Block */\r\n\teastPanel: ProblemDynamicData;\r\n\r\n\t/** Label and State of North Block */\r\n\tnorthPanel: ProblemDynamicData;\r\n\r\n\t/** Label and State of North East Block */\r\n\tnorthEastPanel: ProblemDynamicData;\r\n\r\n\t/** Label and State of North West Block */\r\n\tnorthWestPanel: ProblemDynamicData;\r\n\r\n\t/** Label and State of South Block */\r\n\tsouthPanel: ProblemDynamicData;\r\n\r\n\t/** Label and State of South East Block */\r\n\tsouthEastPanel: ProblemDynamicData;\r\n\r\n\t/** Label and State of South West Block */\r\n\tsouthWestPanel: ProblemDynamicData;\r\n\r\n\t/** Label and State of West Block */\r\n\twestPanel: ProblemDynamicData;\r\n\r\n\t/** Title for Screen Reader */\r\n\ttitle: string;\r\n\r\n\t/** Whether the panels of the direction meter should be interactive or not */\r\n\tisInteractive?: boolean;\r\n\r\n\t/** CSS Classes */\r\n\tclassName?: string;\r\n\r\n\t/** custom sizes */\r\n\theight?: string;\r\n\r\n\twidth?: string;\r\n\r\n\t/** Function for when Panel is Clicked */\r\n\tonPanelClicked?(panel: Panel): void;\r\n}\r\n\r\n/** Direction Meter showing distribution of spread. */\r\nconst DirectionMeter = ({\r\n\tid = undefined,\r\n\teastPanel,\r\n\tnorthPanel,\r\n\tnorthEastPanel,\r\n\tnorthWestPanel,\r\n\tsouthPanel,\r\n\tsouthEastPanel,\r\n\tsouthWestPanel,\r\n\twestPanel,\r\n\ttitle,\r\n\tclassName,\r\n\tisInteractive = false,\r\n\twidth,\r\n\theight,\r\n\tonPanelClicked,\r\n}: Props) => {\r\n\tfunction executePanelCallback(panel: Panel) {\r\n\t\tif (onPanelClicked) onPanelClicked(panel);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t executePanelCallback('northWestPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t executePanelCallback('westPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t executePanelCallback('southWestPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t executePanelCallback('southPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t executePanelCallback('southEastPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t executePanelCallback('eastPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t executePanelCallback('northEastPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t executePanelCallback('northPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{northWestPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('northWestPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{westPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('westPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{southWestPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('southWestPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{southPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('southPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{southEastPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('southEastPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{eastPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('eastPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{northEastPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('northEastPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{northPanel?.state && (\r\n\t\t\t\t\t\t executePanelCallback('northPanel')}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{isInteractive && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{southWestPanel?.label}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{southEastPanel?.label}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{northEastPanel?.label}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{northWestPanel?.label}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{westPanel?.label ?? 'W'}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{southPanel?.label ?? 'S'}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{eastPanel?.label ?? 'E'}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{northPanel?.label ?? 'N'}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default DirectionMeter;\r\n","/**\r\n * Legend\r\n */\r\n\r\nimport React, { useEffect } from 'react';\r\nimport { LinkWithImage } from 'types/global';\r\nimport MoreInformationBlock from 'components/MoreInformationBlock';\r\nimport Icon from 'components/Icon';\r\nimport clsx from 'clsx';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { Cell, Grid } from 'components/Grid';\r\nimport Link from 'components/Link';\r\nimport Image from 'components/Image';\r\n\r\ninterface Props {\r\n\t/** Used to see if the Legend Sider should be visible or not */\r\n\tisVisible?: boolean;\r\n\r\n\t/* callback to close the modal */\r\n\thide: () => void;\r\n\r\n\t/** Legend heading */\r\n\theading: string;\r\n\r\n\t/** Legend description */\r\n\tdescription?: string;\r\n\r\n\t/** Legend links */\r\n\tlinks: LinkWithImage[];\r\n\r\n\t/** Legend links heading */\r\n\tlinksHeading?: string;\r\n}\r\n\r\n/** Custom Modal of Legend. */\r\nconst Legend: React.FC = ({\r\n\tisVisible = false,\r\n\theading,\r\n\tdescription,\r\n\tlinks,\r\n\tlinksHeading,\r\n\thide,\r\n}) => {\r\n\tconst dialogRef = React.useRef(null);\r\n\tconst closeButtonRef = React.useRef(null);\r\n\tconst lastLinkRef = React.useRef(null);\r\n\tconst firstLinkRef = React.useRef(null);\r\n\r\n\tconst isMobile = useMediaQuery({\r\n\t\tmaxWidth: 767,\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (isVisible && dialogRef.current) {\r\n\t\t\tdialogRef.current.focus();\r\n\t\t}\r\n\t}, [isVisible]);\r\n\r\n\tconst handleContainerKeyDownPress = (\r\n\t\tevent: React.KeyboardEvent\r\n\t) => {\r\n\t\tswitch (event.key) {\r\n\t\t\tcase 'Escape':\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t\thide();\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Tab':\r\n\t\t\t\tif (!event.shiftKey && document.activeElement === lastLinkRef.current) {\r\n\t\t\t\t\tif (closeButtonRef && 'current' in closeButtonRef) {\r\n\t\t\t\t\t\tcloseButtonRef?.current?.focus();\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tevent.shiftKey &&\r\n\t\t\t\t\tdocument.activeElement === closeButtonRef.current\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (lastLinkRef && 'current' in lastLinkRef) {\r\n\t\t\t\t\t\tlastLinkRef?.current?.focus();\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{isVisible && (\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tStäng {heading}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t{description && (\r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t{description}\r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{linksHeading}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{links &&\r\n\t\t\t\t\t\t\t\t\tlinks.map((link: LinkWithImage, index: number) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{link.heading}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Legend;\r\n","import clsx from 'clsx';\r\nimport Icon from 'components/Icon';\r\nimport React from 'react';\r\nimport { FaMountain, FaRegCompass } from 'react-icons/fa';\r\nimport {\r\n\tMdClose,\r\n\tMdInfoOutline,\r\n\tMdMyLocation,\r\n\tMdRefresh,\r\n\tMdZoomOutMap,\r\n} from 'react-icons/md';\r\nimport { RiShapeLine } from 'react-icons/ri';\r\nimport { LegendInfoIcon } from 'types/mapTypes/MapModel';\r\n\r\nexport interface BaseCustomControlProps {\r\n\thandleControl(): void;\r\n\ttitle?: string;\r\n\ticon: LegendInfoIcon;\r\n\tclassName?: string;\r\n\tlabelPosition: 'left' | 'top' | 'top-right' | 'right';\r\n\tactive: boolean;\r\n}\r\n\r\nconst BaseCustomControl: React.FC = ({\r\n\ttitle,\r\n\thandleControl,\r\n\ticon,\r\n\tclassName = '',\r\n\tlabelPosition,\r\n\tactive,\r\n}) => {\r\n\tconst controlTitle = `control-${title?.replace(/ /g, '')}-title`;\r\n\r\n\tfunction getButtonIcon(iconName: typeof icon) {\r\n\t\tswitch (iconName) {\r\n\t\t\tcase 'zoomOut':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'zoomIn':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'myPosition':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'decliningScale':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'reportedAvalanches':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'slopeDirection':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'avalancheScale':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tcase 'legend':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\r\n\t\t\tcase 'reset':\r\n\t\t\t\treturn ;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{icon && icon !== 'legend' && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{getButtonIcon(icon)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default BaseCustomControl;\r\n","/**\r\n * MapContext\r\n */\r\n\r\nimport { Map } from 'ol';\r\nimport React from 'react';\r\n\r\ntype MapModel = {\r\n\tprojection?: string;\r\n\tmap: Map;\r\n\t// customControlIds: any[]\r\n};\r\n\r\nconst MapContext = React.createContext({} as MapModel);\r\n\r\nexport const MapProvider: React.FC = ({\r\n\tmap,\r\n\tprojection,\r\n\tchildren,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MapContext;\r\n","import BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport MapContext from 'components/Map/MapContext';\r\nimport React, { useContext } from 'react';\r\n\r\nimport { Geolocation, Overlay } from 'ol';\r\nimport * as ol from 'ol';\r\nimport { Vector as SourceVector } from 'ol/source';\r\nimport { Style, Icon } from 'ol/style';\r\nimport Point from 'ol/geom/Point';\r\nimport VectorLayer from 'ol/layer/Vector';\r\nimport IconAnchorUnits from 'ol/style/IconAnchorUnits';\r\ninterface Props {\r\n\ttitle: string;\r\n\thandleClick?: () => void;\r\n\tmyPositionMarkerIconUrl: string;\r\n\tactive?: boolean;\r\n}\r\n\r\nconst CenterUserControl: React.FC = ({\r\n\ttitle,\r\n\thandleClick,\r\n\tmyPositionMarkerIconUrl,\r\n\tactive = false,\r\n}) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\tfunction handleMyLocation() {\r\n\t\tconst geolocation = new Geolocation({\r\n\t\t\ttracking: true,\r\n\t\t\tprojection: map.getView().getProjection(),\r\n\t\t\ttrackingOptions: {\r\n\t\t\t\tenableHighAccuracy: true,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tlet alreadyShowingPosition = false;\r\n\r\n\t\tgeolocation.on('change', () => {\r\n\t\t\tif (alreadyShowingPosition === false) {\r\n\t\t\t\tconst position = geolocation.getPosition();\r\n\t\t\t\tconst geometry = geolocation.getAccuracyGeometry();\r\n\r\n\t\t\t\tif (position && geometry) {\r\n\t\t\t\t\tmap.getView().fit(geometry, {});\r\n\t\t\t\t\tmap.getView().setZoom(10);\r\n\r\n\t\t\t\t\tvar marker = new Overlay({\r\n\t\t\t\t\t\tid: 'myPositionMarker',\r\n\t\t\t\t\t\tposition: position,\r\n\t\t\t\t\t\tstopEvent: false,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tmap.addOverlay(marker);\r\n\r\n\t\t\t\t\tconst iconFeature = new ol.Feature({\r\n\t\t\t\t\t\tgeometry: new Point(position),\r\n\t\t\t\t\t\tname: 'Min Position',\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\ticonFeature.setStyle(\r\n\t\t\t\t\t\tnew Style({\r\n\t\t\t\t\t\t\timage: new Icon({\r\n\t\t\t\t\t\t\t\tsrc: myPositionMarkerIconUrl,\r\n\t\t\t\t\t\t\t\tanchor: [0.5, 40],\r\n\t\t\t\t\t\t\t\tanchorXUnits: IconAnchorUnits.FRACTION,\r\n\t\t\t\t\t\t\t\tanchorYUnits: IconAnchorUnits.PIXELS,\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tconst layerSource = new SourceVector({});\r\n\t\t\t\t\tlayerSource.addFeatures([iconFeature]);\r\n\r\n\t\t\t\t\tconst vectorLayer = new VectorLayer({\r\n\t\t\t\t\t\tsource: layerSource,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tmap.addLayer(vectorLayer);\r\n\t\t\t\t}\r\n\t\t\t\talreadyShowingPosition = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tgeolocation.on('error', (e) => {\r\n\t\t\tif (e.code === 1) {\r\n\t\t\t\twindow.alert('You have to allow location access to use this feature.');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CenterUserControl;\r\n","import React from 'react';\r\n\r\ninterface Props {}\r\n\r\nconst CustomControls: React.FC = ({ children }) => {\r\n\treturn <>{children};\r\n};\r\n\r\nexport default CustomControls;\r\n","import BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport React from 'react';\r\n\r\ninterface Props {\r\n\ttitle: string;\r\n\tactive?: boolean;\r\n\thandleClick?: () => void;\r\n}\r\n\r\nconst DecliningScaleControl: React.FC = ({\r\n\ttitle,\r\n\thandleClick,\r\n\tactive = false,\r\n}) => {\r\n\tfunction toggleDecliningScale() {}\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default DecliningScaleControl;\r\n","import BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport React from 'react';\r\n\r\ninterface Props {\r\n\ttitle?: string;\r\n\thandleClick?: () => void;\r\n\tactive?: boolean;\r\n}\r\n\r\nconst ForecastAreasControl: React.FC = ({\r\n\ttitle,\r\n\thandleClick,\r\n\tactive = false,\r\n}) => {\r\n\tfunction toggleForecastAreas() {}\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ForecastAreasControl;\r\n","import BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport React from 'react';\r\n\r\ninterface Props {\r\n\ttitle?: string;\r\n\tactive?: boolean;\r\n\thandleClick?: () => void;\r\n}\r\n\r\nconst LegendControl: React.FC = ({\r\n\ttitle,\r\n\thandleClick,\r\n\tactive = false,\r\n}) => {\r\n\tfunction handleLegendVisibility() {}\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LegendControl;\r\n","import BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport React from 'react';\r\n\r\ninterface Props {\r\n\ttitle?: string;\r\n\tactive?: boolean;\r\n\thandleClick?: () => void;\r\n}\r\n\r\nconst ReportedAvalanchesControl: React.FC = ({\r\n\ttitle,\r\n\thandleClick,\r\n\tactive = false,\r\n}) => {\r\n\tfunction toggleReportedAvalanchesLayer() {}\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ReportedAvalanchesControl;\r\n","import BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport React from 'react';\r\n\r\ninterface Props {\r\n\ttitle?: string;\r\n\thandleClick?: () => void;\r\n\tactive?: boolean;\r\n}\r\n\r\nconst SlopeControl: React.FC = ({\r\n\ttitle,\r\n\thandleClick,\r\n\tactive = false,\r\n}) => {\r\n\tfunction toggleSlopeDirection() {}\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default SlopeControl;\r\n","import clsx from 'clsx';\r\nimport BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport MapContext from 'components/Map/MapContext';\r\nimport { linear } from 'ol/easing';\r\nimport React, { useContext } from 'react';\r\n\r\ninterface Props {\r\n\tzoomInLabel?: string;\r\n\tzoomOutLabel?: string;\r\n}\r\n\r\nconst ZoomControl: React.FC = ({ zoomInLabel, zoomOutLabel }) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\tfunction handleZoomin() {\r\n\t\tconst view = map.getView();\r\n\t\tconst currentZoom = view.getZoom();\r\n\r\n\t\tif (currentZoom)\r\n\t\t\tview.animate({\r\n\t\t\t\tzoom: currentZoom + 2,\r\n\t\t\t\tduration: 250,\r\n\t\t\t\teasing: linear,\r\n\t\t\t});\r\n\t}\r\n\r\n\tfunction handleZoomOut() {\r\n\t\tconst view = map.getView();\r\n\t\tconst currentZoom = view.getZoom();\r\n\r\n\t\tif (currentZoom)\r\n\t\t\tview.animate({\r\n\t\t\t\tzoom: currentZoom - 2,\r\n\t\t\t\tduration: 250,\r\n\t\t\t\teasing: linear,\r\n\t\t\t});\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ZoomControl;\r\n","import BaseCustomControl from 'components/Map/Controls/CustomControls/BaseCustomControl';\r\nimport React from 'react';\r\n\r\ninterface Props {\r\n\ttitle: string;\r\n\tactive?: boolean;\r\n\thandleClick: () => void;\r\n}\r\n\r\nconst ResetDirectionMeterControl: React.FC = ({\r\n\ttitle,\r\n\thandleClick,\r\n\tactive = false,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ResetDirectionMeterControl;\r\n","/**\r\n * Layers\r\n */\r\n\r\nimport React from 'react';\r\n\r\ntype Props = {\r\n\tchildren?: any;\r\n};\r\n\r\nconst Layers: React.FC = ({ children }) =>
    {children}
    ;\r\n\r\nexport default Layers;\r\n","/**\r\n * Layer wrapper\r\n */\r\n\r\nimport { Tile as OLTileLayer } from 'ol/layer';\r\nimport { useContext, useEffect } from 'react';\r\nimport MapContext from '../MapContext';\r\n\r\ntype Props = {\r\n\tsource: any;\r\n};\r\n\r\nconst TileLayer: React.FC = ({ source }) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!map) return;\r\n\r\n\t\tlet tileLayer = new OLTileLayer({\r\n\t\t\tsource,\r\n\t\t});\r\n\r\n\t\tmap.addLayer(tileLayer);\r\n\r\n\t\treturn () => {\r\n\t\t\tif (map) {\r\n\t\t\t\tmap.removeLayer(tileLayer);\r\n\t\t\t}\r\n\t\t};\r\n\t}, [map, source]);\r\n\treturn null;\r\n};\r\n\r\nexport default TileLayer;\r\n","import MapContext from 'components/Map/MapContext';\r\nimport { Tile } from 'ol/layer';\r\nimport { get } from 'ol/proj';\r\nimport { TileWMS } from 'ol/source';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\n\r\ninterface Props {\r\n\tlayer: {\r\n\t\tname: 'SlopeInclination' | 'SlopeAspect' | 'Polygon' | 'ExtraPolygon';\r\n\t\turl: string;\r\n\t\tparams: Array<{ parameter: string; value: string }>;\r\n\t};\r\n\tactive: boolean;\r\n}\r\n\r\nconst DecliningScaleLayer: React.FC = ({ layer, active }) => {\r\n\tconst { map } = useContext(MapContext);\r\n\tconst [layerTile, setLayerTile] = useState();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!map) return;\r\n\r\n\t\tconst paramObjectList = layer.params.map((e) => ({\r\n\t\t\t[e.parameter]: e.value,\r\n\t\t}));\r\n\r\n\t\tconst mergedParamObjectList = Object.assign({}, ...paramObjectList);\r\n\r\n\t\tconst decliningGradeSource = new TileWMS({\r\n\t\t\tprojection: get('EPSG:3857'),\r\n\t\t\tparams: mergedParamObjectList,\r\n\t\t\turl: layer.url,\r\n\t\t});\r\n\r\n\t\tconst tempLayerTile = new Tile({\r\n\t\t\tsource: decliningGradeSource,\r\n\t\t\tvisible: active,\r\n\t\t});\r\n\r\n\t\tsetLayerTile(tempLayerTile);\r\n\r\n\t\tmap.addLayer(tempLayerTile);\r\n\t}, [map, layer]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (layerTile) layerTile.setVisible(active);\r\n\t}, [active]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default DecliningScaleLayer;\r\n","import clsx from 'clsx';\r\nimport Icon from 'components/Icon';\r\nimport Image from 'components/Image';\r\nimport MapContext from 'components/Map/MapContext';\r\nimport { MapBrowserEvent, Overlay } from 'ol';\r\nimport Feature from 'ol/Feature';\r\nimport Point from 'ol/geom/Point';\r\nimport VectorLayer from 'ol/layer/Vector';\r\nimport { Vector } from 'ol/source';\r\nimport { Circle, Style } from 'ol/style';\r\nimport React, { useCallback, useContext, useEffect, useRef } from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { MapArea } from 'types/mapTypes/MapModel';\r\n\r\ninterface Props {\r\n\tareaForecasts: MapArea[];\r\n\tzoomLevel: number;\r\n}\r\n\r\nconst ForecastLayer: React.FC = ({ areaForecasts = [], zoomLevel }) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\t// This will contain the ref's we use to set the Markers\r\n\t// At mount, it will generate a list of empty references\r\n\tconst forecastRefs = useRef>([]);\r\n\r\n\t/**\r\n\t * Will generate a list of (existing/new) refs which will either be empty or not depending on whether the UI was rendered.\r\n\t * If the UI was rendered it should contain a list of empty references, else a list of populated element refs\r\n\t * @see {@link https://stackoverflow.com/a/56063129/11677503 answer by Olivier Boissé}\r\n\t * */\r\n\tconst initForecastRefs = useCallback(() => {\r\n\t\tforecastRefs.current = forecastRefs?.current?.slice(\r\n\t\t\t0,\r\n\t\t\tareaForecasts.length\r\n\t\t);\r\n\t}, [areaForecasts]);\r\n\r\n\tconst isMobileOrTablet = useMediaQuery({\r\n\t\tmaxWidth: 1023,\r\n\t});\r\n\tconst isSmallMobile = useMediaQuery({\r\n\t\tmaxWidth: 380,\r\n\t});\r\n\r\n\tconst getMinYDistance = (isMobileOrTablet: boolean, zoomLevel: number) => {\r\n\t\tconst ranges = {\r\n\t\t\tmobile: [\r\n\t\t\t\t{ min: 4, max: 4.7, distance: isSmallMobile ? 300000 : 220000 },\r\n\t\t\t\t{ min: 4.7, max: 4.9, distance: 185000 },\r\n\t\t\t\t{ min: 4.9, max: 5.2, distance: 160000 },\r\n\t\t\t\t{ min: 5.2, max: 5.4, distance: 140000 },\r\n\t\t\t\t{ min: 5.3, max: 5.6, distance: 120000 },\r\n\t\t\t\t{ min: 5.6, max: 6, distance: 100000 },\r\n\t\t\t],\r\n\t\t\tdesktop: [\r\n\t\t\t\t{ min: 4, max: 4.7, distance: 180000 },\r\n\t\t\t\t{ min: 4.7, max: 5, distance: 185000 },\r\n\t\t\t\t{ min: 5, max: 5.2, distance: 150000 },\r\n\t\t\t\t{ min: 5.2, max: 5.4, distance: 130000 },\r\n\t\t\t\t{ min: 5.4, max: 5.6, distance: 110000 },\r\n\t\t\t\t{ min: 5.6, max: 6, distance: 100000 },\r\n\t\t\t],\r\n\t\t};\r\n\r\n\t\tconst selectedRanges = isMobileOrTablet ? ranges.mobile : ranges.desktop;\r\n\r\n\t\tfor (const range of selectedRanges) {\r\n\t\t\tif (zoomLevel >= range.min && zoomLevel <= range.max) {\r\n\t\t\t\treturn range.distance;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn 200000;\r\n\t};\r\n\r\n\t/**below config values are used to fix overlapping of forecast areas */\r\n\r\n\tconst Y_OFFSET = 10000; // we use this value to increment distance in y-axis while overlapping\r\n\tconst Y_ZOOM_LEVEL = 6; //we use this value to determine whether to adjust overlapping\r\n\tlet existingCoordinates: Point[] = []; // Track placed Point geometries\r\n\r\n\t/**method to update the y-coordinates to avoid overlapping */\r\n\tconst adjustYCoordinate = (\r\n\t\tnewCoordinate: Point,\r\n\t\texistingCoordinates: Point[],\r\n\t\tzoom: number\r\n\t): Point => {\r\n\t\tlet [newX, newY] = newCoordinate.getCoordinates();\r\n\t\tlet adjustmentFactor = 0;\r\n\t\tlet minDistance = getMinYDistance(isMobileOrTablet, zoom);\r\n\r\n\t\t// Check for overlap in Y-coordinates\r\n\t\twhile (\r\n\t\t\texistingCoordinates.some(\r\n\t\t\t\t(existingPoint) =>\r\n\t\t\t\t\tMath.abs(newY - existingPoint.getCoordinates()[1]) < minDistance\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\tadjustmentFactor += 1;\r\n\t\t\tnewY = newCoordinate.getCoordinates()[1] + Y_OFFSET * adjustmentFactor; // Increment Y coordinate\r\n\t\t}\r\n\r\n\t\t// Create a new Point with adjusted Y position\r\n\t\tconst adjustedPoint = new Point([newX, newY]);\r\n\t\texistingCoordinates.push(adjustedPoint);\r\n\r\n\t\treturn adjustedPoint;\r\n\t};\r\n\r\n\tuseEffect(initForecastRefs, [areaForecasts]);\r\n\tuseEffect(() => {\r\n\t\tfunction addHoverEffect(e: MapBrowserEvent) {\r\n\t\t\tif (e.dragging) return;\r\n\r\n\t\t\tconst pixel = map.getEventPixel(e.originalEvent);\r\n\t\t\tconst hit = map.hasFeatureAtPixel(pixel);\r\n\r\n\t\t\tmap.getTargetElement().style.cursor = hit ? 'pointer' : '';\r\n\t\t}\r\n\t\tfunction setZoomDependentPosition() {\r\n\t\t\tconst currentZoom = map.getView().getZoom() ?? zoomLevel;\r\n\t\t\texistingCoordinates = [];\r\n\t\t\tareaForecasts.forEach((area, areaIndex) => {\r\n\t\t\t\tconst markerEl = forecastRefs.current[areaIndex];\r\n\t\t\t\tif (!markerEl) return;\r\n\r\n\t\t\t\tconst originalCoordinates = new Point(area.coordinates);\r\n\t\t\t\tconst adjustedPoint = adjustYCoordinate(\r\n\t\t\t\t\toriginalCoordinates,\r\n\t\t\t\t\texistingCoordinates,\r\n\t\t\t\t\tcurrentZoom\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// Access the overlay by ID to update its position based on zoom level\r\n\t\t\t\tconst overlay = map.getOverlayById('marker' + areaIndex);\r\n\t\t\t\tif (overlay) {\r\n\t\t\t\t\toverlay.setPosition(\r\n\t\t\t\t\t\tcurrentZoom && currentZoom < Y_ZOOM_LEVEL\r\n\t\t\t\t\t\t\t? adjustedPoint.getCoordinates()\r\n\t\t\t\t\t\t\t: area.coordinates\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (!map) return;\r\n\r\n\t\tconst layerSource = new Vector({});\r\n\r\n\t\tareaForecasts.forEach((area, areaIndex) => {\r\n\t\t\tconst markerEl = forecastRefs.current[areaIndex];\r\n\r\n\t\t\tif (markerEl == null) return;\r\n\r\n\t\t\tconst originalCoordinates = new Point(area.coordinates); // Create a Point from coordinates\r\n\r\n\t\t\t// Define marker position based on zoom level\r\n\t\t\tconst position =\r\n\t\t\t\tzoomLevel && zoomLevel < Y_ZOOM_LEVEL\r\n\t\t\t\t\t? adjustYCoordinate(\r\n\t\t\t\t\t\t\toriginalCoordinates,\r\n\t\t\t\t\t\t\texistingCoordinates,\r\n\t\t\t\t\t\t\tzoomLevel\r\n\t\t\t\t\t )?.getCoordinates()\r\n\t\t\t\t\t: area.coordinates;\r\n\r\n\t\t\tvar marker = new Overlay({\r\n\t\t\t\tid: 'marker' + areaIndex,\r\n\t\t\t\tposition,\r\n\t\t\t\toffset: [5, -17],\r\n\t\t\t\telement: markerEl,\r\n\t\t\t\tstopEvent: false,\r\n\t\t\t});\r\n\r\n\t\t\tmap.addOverlay(marker);\r\n\r\n\t\t\tconst circleFeature = new Feature({\r\n\t\t\t\tgeometry: new Point(area.coordinates),\r\n\t\t\t\tname: area.name,\r\n\t\t\t});\r\n\r\n\t\t\tcircleFeature.setStyle(\r\n\t\t\t\tnew Style({\r\n\t\t\t\t\timage: new Circle({\r\n\t\t\t\t\t\tradius: 15,\r\n\t\t\t\t\t}),\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\tlayerSource.addFeatures([circleFeature]);\r\n\t\t});\r\n\r\n\t\tconst vectorLayer = new VectorLayer({\r\n\t\t\tsource: layerSource,\r\n\t\t\tzIndex: 22,\r\n\t\t});\r\n\r\n\t\t// Adds Layer with Area Markers\r\n\t\tmap.addLayer(vectorLayer);\r\n\r\n\t\t//To add hover effect on Area Markers\r\n\t\tmap.on('pointermove', addHoverEffect);\r\n\r\n\t\t// Attach listener to 'moveend' on the map\r\n\t\tmap.on('moveend', setZoomDependentPosition);\r\n\r\n\t\treturn () => {\r\n\t\t\tif (map) {\r\n\t\t\t\tmap.removeLayer(vectorLayer);\r\n\t\t\t\tmap.un('pointermove', addHoverEffect);\r\n\t\t\t\tmap.un('moveend', setZoomDependentPosition);\r\n\t\t\t}\r\n\t\t};\r\n\t}, [map, areaForecasts, forecastRefs.current]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{areaForecasts &&\r\n\t\t\t\tareaForecasts.map((area, areaIndex) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t (forecastRefs.current[areaIndex] = el)}\r\n\t\t\t\t\t\t\tid={`marker${areaIndex}`}\r\n\t\t\t\t\t\t\tclassName={clsx(\r\n\t\t\t\t\t\t\t\t'relative',\r\n\t\t\t\t\t\t\t\t'w-full',\r\n\t\t\t\t\t\t\t\t'rounded-md border border-grey-border',\r\n\t\t\t\t\t\t\t\t'group',\r\n\t\t\t\t\t\t\t\t'bg-white',\r\n\t\t\t\t\t\t\t\t'hover:underline',\r\n\t\t\t\t\t\t\t\t'flex'\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\thref={area.url}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{area.name}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ForecastLayer;\r\n","import MapContext from 'components/Map/MapContext';\r\nimport { Tile } from 'ol/layer';\r\nimport { get } from 'ol/proj';\r\nimport { TileWMS } from 'ol/source';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\n\r\ninterface Props {\r\n\tlayer: {\r\n\t\tname: 'SlopeInclination' | 'SlopeAspect' | 'Polygon' | 'ExtraPolygon';\r\n\t\turl: string;\r\n\t\tparams: Array<{ parameter: string; value: string }>;\r\n\t};\r\n\tactive: boolean;\r\n\tareaId?: number | null;\r\n}\r\n\r\nconst ForecastPolygonLayer: React.FC = ({ active, layer, areaId }) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\tconst [layerTile, setLayerTile] = useState();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!map) return;\r\n\r\n\t\tconst paramObjectList = layer.params.map((e) => ({\r\n\t\t\t[e.parameter]: e.value,\r\n\t\t}));\r\n\r\n\t\tif (areaId) {\r\n\t\t\tparamObjectList.push({\r\n\t\t\t\tviewparams: `location:${areaId}`,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst mergedParamObjectList = Object.assign({}, ...paramObjectList);\r\n\r\n\t\tconst forecastPolygonSource = new TileWMS({\r\n\t\t\tprojection: get('EPSG:3857'),\r\n\t\t\turl: layer.url,\r\n\t\t\tparams: mergedParamObjectList,\r\n\t\t});\r\n\r\n\t\tconst tempTile = new Tile({\r\n\t\t\tsource: forecastPolygonSource,\r\n\t\t\tvisible: active,\r\n\t\t});\r\n\r\n\t\tsetLayerTile(tempTile);\r\n\r\n\t\tmap.addLayer(tempTile);\r\n\t}, [map, layer]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (layerTile) layerTile.setVisible(active);\r\n\t}, [active]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default ForecastPolygonLayer;\r\n","import clsx from 'clsx';\r\nimport MapContext from 'components/Map/MapContext';\r\nimport { MapBrowserEvent, Overlay } from 'ol';\r\nimport Feature from 'ol/Feature';\r\nimport Point from 'ol/geom/Point';\r\nimport VectorLayer from 'ol/layer/Vector';\r\nimport { transform } from 'ol/proj';\r\nimport { Vector } from 'ol/source';\r\nimport { Circle, Style } from 'ol/style';\r\nimport React, { useCallback, useContext, useEffect, useState } from 'react';\r\nimport { ReportedAvalanches } from 'types/mapTypes/MapModel';\r\n\r\ninterface Props {\r\n\tavalanche: ReportedAvalanches;\r\n\thandleOnClick(data: ReportedAvalanches): any;\r\n\tactive: boolean;\r\n\tonSetupComplete: () => void;\r\n\tisSetupComplete: boolean;\r\n}\r\n\r\nconst ReportedAvalancheLayer: React.FC = ({\r\n\tavalanche,\r\n\thandleOnClick,\r\n\tactive,\r\n\tonSetupComplete,\r\n\tisSetupComplete,\r\n}) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\tconst [markerOverlay, setMarkerOverlay] = useState();\r\n\r\n\tconst setupReportedAvalancheMarkers = useCallback(() => {\r\n\t\tfunction addHoverEffect(e: MapBrowserEvent) {\r\n\t\t\tif (e.dragging) return;\r\n\r\n\t\t\tconst pixel = map.getEventPixel(e.originalEvent);\r\n\t\t\tconst hit = map.hasFeatureAtPixel(pixel);\r\n\r\n\t\t\tmap.getTargetElement().style.cursor = hit ? 'pointer' : '';\r\n\t\t}\r\n\r\n\t\tif (!map) return;\r\n\r\n\t\tconst layerSource = new Vector({});\r\n\r\n\t\tconst markerEl = document.getElementById(\r\n\t\t\t'reportedAvalanche' + avalanche.coordinates\r\n\t\t);\r\n\t\tconst convertedCoordinates = transform(\r\n\t\t\tavalanche.coordinates,\r\n\t\t\t'EPSG:4326',\r\n\t\t\t'EPSG:3857'\r\n\t\t);\r\n\r\n\t\tif (markerEl == null) return;\r\n\r\n\t\tvar markerOverlay = new Overlay({\r\n\t\t\tid: 'marker' + avalanche.coordinates,\r\n\t\t\tposition: convertedCoordinates,\r\n\t\t\toffset: [-16, -45],\r\n\t\t\telement: markerEl,\r\n\t\t\tstopEvent: false,\r\n\t\t});\r\n\r\n\t\tsetMarkerOverlay(markerOverlay);\r\n\r\n\t\tconst circleFeature = new Feature({\r\n\t\t\tgeometry: new Point(avalanche.coordinates),\r\n\t\t});\r\n\r\n\t\tcircleFeature.setStyle(\r\n\t\t\tnew Style({\r\n\t\t\t\timage: new Circle({\r\n\t\t\t\t\tradius: 15,\r\n\t\t\t\t}),\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tlayerSource.addFeatures([circleFeature]);\r\n\r\n\t\tconst vectorLayer = new VectorLayer({\r\n\t\t\tsource: layerSource,\r\n\t\t\tzIndex: 22,\r\n\t\t\tvisible: active,\r\n\t\t});\r\n\r\n\t\t// Adds Layer with Area Markers\r\n\t\tmap.addLayer(vectorLayer);\r\n\r\n\t\t//To add hover effect on Area Markers\r\n\t\tmap.on('pointermove', addHoverEffect);\r\n\r\n\t\t// Notify that the setup is complete\r\n\t\tonSetupComplete();\r\n\r\n\t\treturn () => {\r\n\t\t\tif (map) {\r\n\t\t\t\tmap.removeLayer(vectorLayer);\r\n\t\t\t\tmap.un('pointermove', addHoverEffect);\r\n\t\t\t}\r\n\t\t};\r\n\t}, [map, avalanche, active]);\r\n\r\n\tconst toggleMarkerOverlay = useCallback(() => {\r\n\t\tif (markerOverlay) {\r\n\t\t\tactive ? map.addOverlay(markerOverlay) : map.removeOverlay(markerOverlay);\r\n\t\t}\r\n\t}, [active, markerOverlay, map]);\r\n\r\n\tuseEffect(setupReportedAvalancheMarkers, [setupReportedAvalancheMarkers]);\r\n\r\n\tuseEffect(toggleMarkerOverlay, [toggleMarkerOverlay]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
    \r\n\t\t\t\t handleOnClick(avalanche)}\r\n\t\t\t\t\tclassName={clsx(\r\n\t\t\t\t\t\t'focus:outline-none',\r\n\t\t\t\t\t\t'cursor-pointer',\r\n\t\t\t\t\t\t'hover:bg-opacity-100 hover:shadow-sm'\r\n\t\t\t\t\t)}\r\n\t\t\t\t>\r\n\t\t\t\t\t{isSetupComplete && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ReportedAvalancheLayer;\r\n","import MapContext from 'components/Map/MapContext';\r\nimport { Tile } from 'ol/layer';\r\nimport { get } from 'ol/proj';\r\nimport { TileWMS } from 'ol/source';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport { DirectionMeter } from 'types/pageTypes/area_page';\r\n\r\ninterface Props {\r\n\tlayer: {\r\n\t\tname: 'SlopeInclination' | 'SlopeAspect' | 'Polygon' | 'ExtraPolygon';\r\n\t\turl: string;\r\n\t\tparams: Array<{ parameter: string; value: string }>;\r\n\t};\r\n\tactiveDirections: Record<\r\n\t\tkeyof Omit,\r\n\t\t{ state: boolean; code: string; label?: string }\r\n\t>;\r\n\tactive: boolean;\r\n}\r\n\r\nconst SlopeDirectionLayer: React.FC = ({\r\n\tlayer,\r\n\tactiveDirections,\r\n\tactive,\r\n}) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\tconst [layerSource, setLayerSource] = useState();\r\n\tconst [layerTile, setLayerTile] = useState();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!map) return;\r\n\r\n\t\tconst paramObjectList = layer.params.map((e) => ({\r\n\t\t\t[e.parameter]: e.value,\r\n\t\t}));\r\n\r\n\t\tconst mergedParamObjectList = Object.assign({}, ...paramObjectList);\r\n\r\n\t\tconst newSlopeAspectSource = new TileWMS({\r\n\t\t\tprojection: get('EPSG:3857'),\r\n\t\t\tparams: mergedParamObjectList,\r\n\t\t\turl: layer.url,\r\n\t\t});\r\n\r\n\t\tconst tempLayerTile = new Tile({\r\n\t\t\tsource: newSlopeAspectSource,\r\n\t\t\tvisible: active,\r\n\t\t});\r\n\r\n\t\tsetLayerSource(newSlopeAspectSource);\r\n\t\tsetLayerTile(tempLayerTile);\r\n\r\n\t\tmap.addLayer(tempLayerTile);\r\n\t}, [map]);\r\n\r\n\tuseEffect(() => {\r\n\t\t/**\r\n\t\t * @param directions ActiveDirections\r\n\t\t * @returns String combination of directions and weight of 0.7\r\n\t\t */\r\n\t\tfunction getDirection(directions: typeof activeDirections): string {\r\n\t\t\tconst directionList = Object.values(directions).filter((d) => d.state);\r\n\r\n\t\t\t// There is a risk here where when translated, label might change the params. Something to consider.\r\n\t\t\tconst paramString = directionList\r\n\t\t\t\t.map((d) => `${d.label?.toLowerCase()}:0.7`)\r\n\t\t\t\t.join(';');\r\n\r\n\t\t\treturn paramString;\r\n\t\t}\r\n\r\n\t\tif (layerSource && layerTile) {\r\n\t\t\tlayerSource.updateParams({ ENV: getDirection(activeDirections) });\r\n\t\t\tlayerTile.setSource(layerSource);\r\n\t\t\tlayerTile.setVisible(active);\r\n\t\t}\r\n\t}, [activeDirections, active]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default SlopeDirectionLayer;\r\n","export function mOverExpand(fsHtmlEle: HTMLImageElement, iconName: string) {\r\n\tfsHtmlEle.src = iconName;\r\n\tfsHtmlEle.setAttribute(\r\n\t\t'style',\r\n\t\t'background-color:#333; padding: 7px; border-radius: 0.25rem;'\r\n\t);\r\n}\r\n\r\nexport function mOutCompress(fsHtmlEle: HTMLImageElement, iconName: string) {\r\n\tfsHtmlEle.src = iconName;\r\n\tfsHtmlEle.setAttribute('style', ' ');\r\n}\r\n","type MatomoEvent = {\r\n\tevent: string;\r\n\tevent_category: string;\r\n\tevent_action: string;\r\n\tevent_name: string;\r\n};\r\n\r\nexport const pushMatomoEvent = (eventData: MatomoEvent) => {\r\n\tif (typeof window !== 'undefined' && Array.isArray((window as any)._mtm)) {\r\n\t\t(window as any)._mtm.push(eventData);\r\n\t} else {\r\n\t\tconsole.error('Matomo _mtm object is not available.');\r\n\t}\r\n};\r\n","import clsx from 'clsx';\r\nimport { MapProvider } from 'components/Map/MapContext';\r\nimport { Map, View } from 'ol';\r\nimport { FullScreen, defaults as controlDefaults } from 'ol/control';\r\nimport Point from 'ol/geom/Point';\r\nimport { defaults as interactionDefaults } from 'ol/interaction';\r\nimport { Tile } from 'ol/layer';\r\nimport { get, transformExtent } from 'ol/proj';\r\nimport WMTS from 'ol/source/WMTS';\r\nimport { optionsFromCapabilities } from 'ol/source/WMTS';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { ControlMetaData } from 'types/mapTypes/MapModel';\r\nimport { fetchWMTSCapabilities } from 'api/olApi';\r\n\r\nimport { mOverExpand, mOutCompress } from './fullScreenEvents';\r\nimport { pushMatomoEvent } from 'utils/matomoUtils';\r\n\r\ninterface Props {\r\n\tcenterCoordinates: number[];\r\n\tzoomLevel: number;\r\n\tmaxZoomLevel: number;\r\n\tminZoomLevel: number;\r\n\ttileUrl: string;\r\n\tfullscreen?: ControlMetaData;\r\n\tdefaultFullscreen?: boolean;\r\n\tcurrentPage?: string;\r\n\theightDevice?: number;\r\n}\r\n\r\nlet fslabel: HTMLImageElement;\r\nlet fsLabelActive: HTMLImageElement;\r\n\r\nconst MapContainer: React.FC = ({\r\n\tcenterCoordinates,\r\n\tzoomLevel,\r\n\tmaxZoomLevel,\r\n\tminZoomLevel,\r\n\tchildren,\r\n\ttileUrl,\r\n\tfullscreen,\r\n\tdefaultFullscreen = false,\r\n\tcurrentPage = 'startsida',\r\n\theightDevice,\r\n}) => {\r\n\tconst mapRef = useRef(null);\r\n\tconst [map, setMap] = useState(null);\r\n\r\n\tconst fullScreenCss =\r\n\t\tfullscreen?.title === 'Fullskärm'\r\n\t\t\t? 'full-screen-btn'\r\n\t\t\t: 'full-screen-btn-en';\r\n\r\n\tuseEffect(() => {\r\n\t\tfslabel = document.createElement('img');\r\n\t\tfslabel.id = 'full-screen-inactive';\r\n\t\tfslabel.alt = 'full-screen-inactive';\r\n\t\tfslabel.src = '/assets/images/icon-expand.png';\r\n\r\n\t\tfsLabelActive = document.createElement('img');\r\n\t\tfsLabelActive.id = 'full-screen-active';\r\n\t\tfslabel.alt = 'full-screen-active';\r\n\t\tfsLabelActive.src = '/assets/images/icon-compress.png';\r\n\r\n\t\tfslabel.addEventListener(\r\n\t\t\t'mouseover',\r\n\t\t\t() => mOverExpand(fslabel, '/assets/images/icon-expand-hover.png'),\r\n\t\t\tfalse\r\n\t\t);\r\n\t\tfsLabelActive.addEventListener(\r\n\t\t\t'mouseover',\r\n\t\t\t() =>\r\n\t\t\t\tmOverExpand(fsLabelActive, '/assets/images/icon-compress-hover.png'),\r\n\t\t\tfalse\r\n\t\t);\r\n\t\tfslabel.addEventListener(\r\n\t\t\t'mouseout',\r\n\t\t\t() => mOutCompress(fslabel, '/assets/images/icon-expand.png'),\r\n\t\t\tfalse\r\n\t\t);\r\n\t\tfsLabelActive.addEventListener(\r\n\t\t\t'mouseout',\r\n\t\t\t() => mOutCompress(fsLabelActive, '/assets/images/icon-compress.png'),\r\n\t\t\tfalse\r\n\t\t);\r\n\r\n\t\tconst handleFullScreenToggle = () => {\r\n\t\t\tconst isFullScreen = document.fullscreenElement !== null;\r\n\t\t\tif (isFullScreen) {\r\n\t\t\t\tpushMatomoEvent({\r\n\t\t\t\t\tevent: 'klick_karta',\r\n\t\t\t\t\tevent_category: 'klick_karta',\r\n\t\t\t\t\tevent_action: currentPage,\r\n\t\t\t\t\tevent_name: 'Fullskärm',\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener('fullscreenchange', handleFullScreenToggle);\r\n\r\n\t\treturn () => {\r\n\t\t\tfslabel.removeEventListener('mouseover', () => mOverExpand, false);\r\n\t\t\tfsLabelActive.removeEventListener('mouseover', () => mOverExpand, false);\r\n\t\t\tfslabel.removeEventListener('mouseout', () => mOutCompress, false);\r\n\t\t\tfsLabelActive.removeEventListener('mouseout', () => mOutCompress, false);\r\n\t\t\tdocument.removeEventListener('fullscreenchange', handleFullScreenToggle);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (mapRef.current) {\r\n\t\t\tconst controls = controlDefaults({\r\n\t\t\t\tattribution: false,\r\n\t\t\t\tzoom: false,\r\n\t\t\t\trotate: false,\r\n\t\t\t});\r\n\t\t\tif (!defaultFullscreen) {\r\n\t\t\t\tcontrols.extend([\r\n\t\t\t\t\tnew FullScreen({\r\n\t\t\t\t\t\tlabel: fslabel,\r\n\t\t\t\t\t\tlabelActive: fsLabelActive,\r\n\t\t\t\t\t\ttipLabel: fullscreen?.title,\r\n\t\t\t\t\t\tclassName: fullScreenCss,\r\n\t\t\t\t\t}),\r\n\t\t\t\t]);\r\n\t\t\t}\r\n\t\t\t// Create map\r\n\t\t\tconst mapObj = new Map({\r\n\t\t\t\ttarget: mapRef.current ?? undefined,\r\n\t\t\t\tview: new View({\r\n\t\t\t\t\tprojection: get('EPSG:3857'),\r\n\t\t\t\t\tcenter: new Point(centerCoordinates).getCoordinates(),\r\n\t\t\t\t\tzoom: zoomLevel,\r\n\t\t\t\t\tminZoom: minZoomLevel,\r\n\t\t\t\t\tmaxZoom: maxZoomLevel,\r\n\t\t\t\t\textent: transformExtent([-15, 54, 51, 70], 'EPSG:4326', 'EPSG:3857'),\r\n\t\t\t\t}),\r\n\t\t\t\tlayers: [],\r\n\t\t\t\tcontrols: controls,\r\n\t\t\t\tinteractions: interactionDefaults({\r\n\t\t\t\t\tmouseWheelZoom: true,\r\n\t\t\t\t\tdragPan: true,\r\n\t\t\t\t\tdoubleClickZoom: true,\r\n\t\t\t\t\tkeyboard: true,\r\n\t\t\t\t}),\r\n\t\t\t\tmaxTilesLoading: 4,\r\n\t\t\t});\r\n\t\t\tfetchWMTSCapabilities(tileUrl)\r\n\t\t\t\t.then((wmtsCaps) => {\r\n\t\t\t\t\t// Extract options from capabilities\r\n\t\t\t\t\tconst opts = optionsFromCapabilities(wmtsCaps, {\r\n\t\t\t\t\t\tlayer: 'lantmateriet:lantmateriet_base',\r\n\t\t\t\t\t\tmatrixSet: 'EPSG:3857',\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// Create WMTS source\r\n\t\t\t\t\tconst source = new WMTS(opts);\r\n\r\n\t\t\t\t\tconst layer = new Tile({\r\n\t\t\t\t\t\tsource: source,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tmapObj.addLayer(layer);\r\n\t\t\t\t\tsetMap(mapObj);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => {\r\n\t\t\t\t\tconsole.error('Error fetching WMTS capabilities:', error);\r\n\t\t\t\t});\r\n\t\t\treturn () => mapObj.setTarget(undefined);\r\n\t\t}\r\n\t}, [zoomLevel, maxZoomLevel, minZoomLevel, centerCoordinates, heightDevice]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!map) return;\r\n\r\n\t\t(map as Map).setView(\r\n\t\t\tnew View({\r\n\t\t\t\tprojection: get('EPSG:3857'),\r\n\t\t\t\tcenter: new Point(centerCoordinates).getCoordinates(),\r\n\t\t\t\tzoom: zoomLevel,\r\n\t\t\t\tminZoom: minZoomLevel,\r\n\t\t\t\tmaxZoom: maxZoomLevel,\r\n\t\t\t\textent: transformExtent([-15, 54, 51, 70], 'EPSG:4326', 'EPSG:3857'),\r\n\t\t\t})\r\n\t\t);\r\n\t}, [centerCoordinates, zoomLevel, minZoomLevel, maxZoomLevel, map]);\r\n\r\n\tconst handleFullscreenChange = () => {\r\n\t\tif (!map) return;\r\n\r\n\t\tif (!document.fullscreenElement) {\r\n\t\t\tmap.setView(\r\n\t\t\t\tnew View({\r\n\t\t\t\t\tprojection: get('EPSG:3857'),\r\n\t\t\t\t\tcenter: new Point(centerCoordinates).getCoordinates(),\r\n\t\t\t\t\tzoom: zoomLevel,\r\n\t\t\t\t\tminZoom: minZoomLevel,\r\n\t\t\t\t\tmaxZoom: maxZoomLevel,\r\n\t\t\t\t\textent: transformExtent([-15, 54, 51, 70], 'EPSG:4326', 'EPSG:3857'),\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\t/**atttaching full screen event */\r\n\tuseEffect(() => {\r\n\t\tdocument.addEventListener('fullscreenchange', handleFullscreenChange);\r\n\t\treturn () => {\r\n\t\t\tdocument.removeEventListener('fullscreenchange', handleFullscreenChange);\r\n\t\t};\r\n\t}, [map]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MapContainer;\r\n","import axios from 'axios';\r\nimport { WMTSCapabilities } from 'ol/format';\r\nexport const fetchWMTSCapabilities = async (\r\n\turl: string\r\n): Promise => {\r\n\tconst response = await axios.get(url);\r\n\tif (response.status !== 200) {\r\n\t\tthrow new Error('Failed to fetch WMTS capabilities');\r\n\t}\r\n\treturn new WMTSCapabilities().read(response.data);\r\n};\r\n","import MapContext from 'components/Map/MapContext';\r\nimport { Tile } from 'ol/layer';\r\nimport { get } from 'ol/proj';\r\nimport { TileWMS } from 'ol/source';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\n\r\ninterface Props {\r\n\tlayer: {\r\n\t\tname: 'SlopeInclination' | 'SlopeAspect' | 'Polygon' | 'ExtraPolygon';\r\n\t\turl: string;\r\n\t\tparams: Array<{ parameter: string; value: string }>;\r\n\t};\r\n\tactive: boolean;\r\n\tareaId: number | undefined;\r\n}\r\n\r\nconst ExtraPolygonLayer: React.FC = ({ active, layer, areaId }) => {\r\n\tconst { map } = useContext(MapContext);\r\n\r\n\tconst [layerTile, setLayerTile] = useState();\r\n\r\n\tconst areaQuery = `id IN (${areaId})`;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!map) return;\r\n\r\n\t\tconst paramObjectList = layer.params.map((e) => ({\r\n\t\t\t[e.parameter]: e.value,\r\n\t\t}));\r\n\r\n\t\tparamObjectList.push({ ['CQL_FILTER']: areaQuery });\r\n\r\n\t\tconst mergedParamObjectList = Object.assign({}, ...paramObjectList);\r\n\r\n\t\tconst forecastPolygonSource = new TileWMS({\r\n\t\t\tprojection: get('EPSG:3857'),\r\n\t\t\turl: layer.url,\r\n\t\t\tparams: mergedParamObjectList,\r\n\t\t});\r\n\r\n\t\tconst tempTile = new Tile({\r\n\t\t\tsource: forecastPolygonSource,\r\n\t\t\tvisible: active,\r\n\t\t});\r\n\r\n\t\tsetLayerTile(tempTile);\r\n\r\n\t\tmap.addLayer(tempTile);\r\n\t}, [map, layer]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (layerTile) layerTile.setVisible(active);\r\n\t}, [active]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default ExtraPolygonLayer;\r\n","/**\r\n * Map\r\n */\r\n\r\nimport React, {\r\n\tRefObject,\r\n\tuseCallback,\r\n\tuseEffect,\r\n\tuseRef,\r\n\tuseState,\r\n} from 'react';\r\nimport clsx from 'clsx';\r\nimport DirectionMeter from 'components/DirectionMeter';\r\nimport Icon from 'components/Icon';\r\nimport Legend from 'components/Legend';\r\nimport {\r\n\tCenterUserControl,\r\n\tCustomControls,\r\n\tDecliningScaleControl,\r\n\tForecastAreasControl,\r\n\tLegendControl,\r\n\tReportedAvalanchesControl,\r\n\tSlopeControl,\r\n\tZoomControl,\r\n} from 'components/Map/Controls';\r\nimport ResetDirectionMeterControl from 'components/Map/Controls/CustomControls/ResetDirectionMeterControl';\r\nimport { Layers, TileLayer } from 'components/Map/Layers';\r\nimport DecliningScaleLayer from 'components/Map/Layers/DecliningScaleLayer';\r\nimport ForecastLayer from 'components/Map/Layers/ForecastLayer';\r\nimport ForecastPolygonLayer from 'components/Map/Layers/ForecastPolygonLayer';\r\nimport ReportedAvalancheLayer from 'components/Map/Layers/ReportedAvalancheLayer';\r\nimport SlopeDirectionLayer from 'components/Map/Layers/SlopeDirectionLayer';\r\nimport MapContainer from 'components/Map/MapContainer';\r\nimport 'ol/ol.css';\r\nimport * as source from 'ol/source';\r\nimport { MapModel } from 'types/epi';\r\nimport { ReportedAvalanches } from 'types/mapTypes/MapModel';\r\nimport { DirectionMeter as DirectionMeterModel } from 'types/pageTypes/area_page';\r\nimport ExtraPolygonLayer from './Layers/ExtraPolygonLayer';\r\nimport { pushMatomoEvent } from 'utils/matomoUtils';\r\n\r\n/** Main description for this component. */\r\nconst Map: React.FC<\r\n\tMapModel & {\r\n\t\tmapClassName?: string;\r\n\t\t/** this bool allow to know if we are in mobile device or not */\r\n\t\tisMobile?: boolean;\r\n\t\tonCLickBackToArea?: (tab: 'map' | 'area') => void;\r\n\t\tisAreaPage?: boolean;\r\n\t\tisOutsideAreaPage?: boolean;\r\n\t}\r\n> = ({\r\n\tcenterCoordinates,\r\n\tzoomLevel,\r\n\tmaxZoomLevel,\r\n\tminZoomLevel,\r\n\ttileUrl,\r\n\tareas,\r\n\tsectionLabel,\r\n\tcontrols,\r\n\tlegend,\r\n\treportedAvalanches,\r\n\tcloseText,\r\n\tlayers,\r\n\tdirections,\r\n\tmapClassName,\r\n\tmyPositionMarkerIconUrl,\r\n\tisMobile,\r\n\tareaId,\r\n\tonCLickBackToArea,\r\n\tisAreaPage = false,\r\n\tisOutsideAreaPage = false,\r\n}) => {\r\n\tconst {\r\n\t\tdecliningScale,\r\n\t\tforecastArea,\r\n\t\tfullscreen,\r\n\t\tlegend: legendMeta,\r\n\t\tmyPosition,\r\n\t\treportedAvalanches: reportedAvalanchesMeta,\r\n\t\tslopeDirections,\r\n\t\tzoomIn,\r\n\t\tzoomOut,\r\n\t\tresetDirections,\r\n\t\tbackToArea,\r\n\t} = controls;\r\n\r\n\tconst tempRef = useRef(null);\r\n\tconst [mapRef, setMapRef] = useState>(tempRef);\r\n\tconst defaultFullscreen = isMobile && (isAreaPage || isOutsideAreaPage);\r\n\tconst currentPage = isAreaPage\r\n\t\t? 'prognosområde'\r\n\t\t: isOutsideAreaPage\r\n\t\t? 'utanför prognosområde'\r\n\t\t: 'startsida';\r\n\r\n\tconst [setupCount, setSetupCount] = useState(0);\r\n\tconst [isSetupComplete, setIsSetupComplete] = useState(false);\r\n\r\n\tconst handleSetupComplete = useCallback(() => {\r\n\t\tsetSetupCount((prevCount) => prevCount + 1);\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (setupCount === reportedAvalanches.length) {\r\n\t\t\tsetIsSetupComplete(true);\r\n\t\t}\r\n\t}, [setupCount, reportedAvalanches.length]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (setupCount === reportedAvalanches.length) {\r\n\t\t\tsetIsSetupComplete(true);\r\n\t\t}\r\n\t}, [setupCount, reportedAvalanches.length]);\r\n\r\n\tconst [legendIsVisible, setLegendVisibility] = useState(false);\r\n\tconst [avalanchePanel, setAvalanchePanel] = useState<{\r\n\t\tvisibility: boolean;\r\n\t\tdata?: ReportedAvalanches;\r\n\t}>({\r\n\t\tvisibility: false,\r\n\t\tdata: undefined,\r\n\t});\r\n\r\n\t// Used to toggle layers on and off using controls.\r\n\tconst [layerState, setLayers] = useState({\r\n\t\tforecast: true,\r\n\t\treportedAvalanches: false,\r\n\t\tslopeDirection: false,\r\n\t\tdecliningScale: false,\r\n\t});\r\n\r\n\t/**\r\n\t * Used to handle the direction meter on the left hand side of the map.\r\n\t */\r\n\ttype DirectionData = { state: boolean; code: string; label?: string };\r\n\tconst [activeDirections, setActiveDirections] = useState<\r\n\t\tRecord, DirectionData>\r\n\t>({\r\n\t\teastPanel: directions.eastPanel,\r\n\t\tnorthEastPanel: directions.northEastPanel,\r\n\t\tnorthPanel: directions.northPanel,\r\n\t\tnorthWestPanel: directions.northWestPanel,\r\n\t\tsouthEastPanel: directions.southEastPanel,\r\n\t\tsouthPanel: directions.southPanel,\r\n\t\tsouthWestPanel: directions.southWestPanel,\r\n\t\twestPanel: directions.westPanel,\r\n\t});\r\n\r\n\tfunction handleLayerToggle(\r\n\t\tlayer: keyof typeof layerState,\r\n\t\tmtmEvent: string = ''\r\n\t) {\r\n\t\tmtmEvent && !layerState[layer] && HandleMatomo(mtmEvent);\r\n\t\tif (layer === 'decliningScale' && layerState.slopeDirection) {\r\n\t\t\tresetDirectionMeter();\r\n\t\t\tsetLayers((layerStates) => ({\r\n\t\t\t\t...layerStates,\r\n\t\t\t\tslopeDirection: false,\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\tsetLayers((prevLayerStates) => ({\r\n\t\t\t...prevLayerStates,\r\n\t\t\t[layer]: !prevLayerStates[layer],\r\n\t\t}));\r\n\t}\r\n\r\n\tfunction HandleMatomo(eventName: string) {\r\n\t\teventName &&\r\n\t\t\tpushMatomoEvent({\r\n\t\t\t\tevent: 'klick_karta',\r\n\t\t\t\tevent_category: 'klick_karta',\r\n\t\t\t\tevent_action: currentPage,\r\n\t\t\t\tevent_name: eventName,\r\n\t\t\t});\r\n\t}\r\n\r\n\tfunction handleLegendToggle() {\r\n\t\t!legendIsVisible && HandleMatomo('Teckenförklaring');\r\n\t\tsetLegendVisibility((prevState) => !prevState);\r\n\t}\r\n\r\n\tfunction openAvalanchePanel(data: ReportedAvalanches) {\r\n\t\tsetAvalanchePanel({\r\n\t\t\tvisibility: true,\r\n\t\t\tdata: data,\r\n\t\t});\r\n\t}\r\n\r\n\tfunction updateActiveDirections(panel: keyof typeof activeDirections) {\r\n\t\tsetLayers((layerStates) => ({\r\n\t\t\t...layerStates,\r\n\t\t\tdecliningScale: false,\r\n\t\t}));\r\n\t\tsetActiveDirections((prevActiveDirections) => ({\r\n\t\t\t...prevActiveDirections,\r\n\t\t\t[panel]: {\r\n\t\t\t\t...activeDirections[panel],\r\n\t\t\t\tstate: !activeDirections[panel].state,\r\n\t\t\t},\r\n\t\t}));\r\n\t}\r\n\r\n\tfunction resetDirectionMeter() {\r\n\t\tsetActiveDirections({\r\n\t\t\teastPanel: directions.eastPanel,\r\n\t\t\tnorthEastPanel: directions.northEastPanel,\r\n\t\t\tsouthEastPanel: directions.southEastPanel,\r\n\t\t\twestPanel: directions.westPanel,\r\n\t\t\tnorthWestPanel: directions.northWestPanel,\r\n\t\t\tsouthWestPanel: directions.southWestPanel,\r\n\t\t\tnorthPanel: directions.northPanel,\r\n\t\t\tsouthPanel: directions.southPanel,\r\n\t\t});\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tfunction setDefaults() {\r\n\t\t\tsetLayers({\r\n\t\t\t\tforecast: true,\r\n\t\t\t\tdecliningScale: false,\r\n\t\t\t\treportedAvalanches: false,\r\n\t\t\t\tslopeDirection: false,\r\n\t\t\t});\r\n\t\t\tsetLegendVisibility(false);\r\n\t\t\tresetDirectionMeter();\r\n\t\t}\r\n\r\n\t\tsetDefaults();\r\n\r\n\t\treturn setDefaults;\r\n\t}, []);\r\n\r\n\tconst [heightDevice, setHeightDevice] = useState(0);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst heightDevice = (window as any).visualViewport\r\n\t\t\t? (window as any).visualViewport.height\r\n\t\t\t: document.documentElement.clientHeight;\r\n\t\tsetHeightDevice(heightDevice);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{!isAreaPage && !isOutsideAreaPage && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{reportedAvalanches &&\r\n\t\t\t\t\t\treportedAvalanches.length > 0 &&\r\n\t\t\t\t\t\treportedAvalanches.map((a, i) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t{layers &&\r\n\t\t\t\t\t\tlayers\r\n\t\t\t\t\t\t\t.filter((l) => l.name === 'Polygon')\r\n\t\t\t\t\t\t\t.map((l, index) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t{layers &&\r\n\t\t\t\t\t\tareaId &&\r\n\t\t\t\t\t\tlayers\r\n\t\t\t\t\t\t\t.filter((l) => l.name === 'ExtraPolygon')\r\n\t\t\t\t\t\t\t.map((l, index) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t{layers &&\r\n\t\t\t\t\t\tlayers\r\n\t\t\t\t\t\t\t.filter((l) => l.name === 'SlopeAspect')\r\n\t\t\t\t\t\t\t.map((l, index) => (\r\n\t\t\t\t\t\t\t\t d.state)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t))}\r\n\r\n\t\t\t\t\t{layers &&\r\n\t\t\t\t\t\tlayers\r\n\t\t\t\t\t\t\t.filter((l) => l.name === 'SlopeInclination')\r\n\t\t\t\t\t\t\t.map((l, index) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\t{typeof window !== 'undefined' && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\thandleLayerToggle('decliningScale', decliningScale.title)\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tactive={layerState.decliningScale}\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\thandleLayerToggle('slopeDirection', slopeDirections.title)\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tactive={layerState.slopeDirection}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\thandleLayerToggle(\r\n\t\t\t\t\t\t\t\t\t\t'reportedAvalanches',\r\n\t\t\t\t\t\t\t\t\t\treportedAvalanchesMeta.title\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t handleLayerToggle('forecast')}\r\n\t\t\t\t\t\t\t\tactive={layerState.forecast}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t HandleMatomo(myPosition.title)}\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{isMobile && backToArea && (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t onCLickBackToArea && onCLickBackToArea('area')}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{backToArea.title}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t{/* reported-avalanche-slide-block */}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{avalanchePanel.visibility && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{avalanchePanel.data?.date}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{avalanchePanel.data?.size}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{avalanchePanel.data?.trigger}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{avalanchePanel.data?.character}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tsetAvalanchePanel((panel) => ({\r\n\t\t\t\t\t\t\t\t\t...panel,\r\n\t\t\t\t\t\t\t\t\tvisibility: false,\r\n\t\t\t\t\t\t\t\t}))\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tclassName={clsx(\r\n\t\t\t\t\t\t\t\t'w-10 h-10 bg-white mt-6 mr-6',\r\n\t\t\t\t\t\t\t\t'shadow-md rounded-md',\r\n\t\t\t\t\t\t\t\t'flex justify-center items-center'\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{avalanchePanel.visibility && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t{/* This Component only works for the SlopeDirection */}\r\n\t\t\t\t\t{layerState.slopeDirection && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t updateActiveDirections(panel)}\r\n\t\t\t\t\t\t\t\tisInteractive\r\n\t\t\t\t\t\t\t\tclassName=\"ml-6\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t{Object.values(activeDirections).some((e) => e.state) &&\r\n\t\t\t\t\t\t\t\tlayerState.slopeDirection && (\r\n\t\t\t\t\t\t\t\t\t resetDirectionMeter()}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Map;\r\n","/**\r\n * MoreInformationBlock\r\n */\r\n\r\nimport React from 'react';\r\nimport { LinkWithImage } from 'types/global';\r\nimport clsx from 'clsx';\r\nimport { Grid, Cell } from 'components/Grid';\r\nimport Icon from 'components/Icon';\r\nimport LinkWithImageBlock from 'components/LinkWithImageBlock';\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\ninterface Props {\r\n\t/** Description of this property */\r\n\theading: string;\r\n\r\n\t/** Description of this property */\r\n\tlinksHeading?: string;\r\n\r\n\t/** Optional text below heading */\r\n\tdescription?: string;\r\n\r\n\t/** Link list with images */\r\n\tlinks?: LinkWithImage[];\r\n\r\n\t/** If information icon should be shown in heading */\r\n\tshowInfoIcon?: boolean;\r\n\r\n\t/** Size of link list items (size changes for image/text) */\r\n\tlinkSize?: 'small' | 'large';\r\n}\r\n\r\n/** More Information block (as used in Legend). */\r\nconst MoreInformationBlock: React.FC = ({\r\n\theading,\r\n\tlinksHeading,\r\n\tdescription,\r\n\tlinks,\r\n\tshowInfoIcon,\r\n\tlinkSize = 'large',\r\n\tchildren,\r\n}) => {\r\n\tconst isMobile = useMediaQuery({\r\n\t\tmaxWidth: 767,\r\n\t});\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
    {children}
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{showInfoIcon && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{description && (\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t{description}\r\n\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{linksHeading}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{links &&\r\n\t\t\t\t\tlinks.map((link: LinkWithImage, index: number) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MoreInformationBlock;\r\n","/**\r\n * AltitudeMeter\r\n */\r\n\r\nimport React from 'react';\r\nimport { Altitude } from 'types/pageTypes/area_page';\r\n\r\n/** Altitude Meter for showing state of treeline. */\r\nconst AltitudeMeter = ({\r\n\ttitle,\r\n\taltitudeMeterAboveTreeline,\r\n\taltitudeMeterBelowTreeline,\r\n\taltitudeMeterTreeline,\r\n\tid,\r\n\twidth,\r\n\theight,\r\n\tamIInAccordion,\r\n\tisMobile,\r\n}: Altitude) => {\r\n\tconst textFontSize: string = isMobile ? '2.5rem' : '2rem';\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{altitudeMeterAboveTreeline.state && (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{altitudeMeterTreeline.state && (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{altitudeMeterBelowTreeline.state && (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{amIInAccordion && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{altitudeMeterAboveTreeline.state && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{altitudeMeterAboveTreeline.label}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{altitudeMeterTreeline.state && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{altitudeMeterTreeline.label}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{altitudeMeterBelowTreeline.state && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{altitudeMeterBelowTreeline.label}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default AltitudeMeter;\r\n","import React from 'react';\r\nimport {\r\n\tAltitude,\r\n\tDirectionMeter as DirectionMeterModel,\r\n} from 'types/pageTypes/area_page';\r\n\r\nimport AltitudeMeter from 'components/AltitudeMeter';\r\nimport DirectionMeter from 'components/DirectionMeter';\r\nimport RichText from 'components/RichText';\r\nimport Link from 'components/Link';\r\n\r\ninterface Props {\r\n\tdescription: {\r\n\t\ttitle: string;\r\n\t\tcontent: string;\r\n\t\turl?: string;\r\n\t\tanchorUrl?: string;\r\n\t};\r\n\taltitude: Altitude;\r\n\tdirection: DirectionMeterModel;\r\n\tinformation?: Array<{\r\n\t\ttext: string;\r\n\t\thref: string;\r\n\t\tdescription: string;\r\n\t}>;\r\n\tposition?: {\r\n\t\theading: string;\r\n\t\tcontent: string;\r\n\t};\r\n\tisMobile?: boolean;\r\n}\r\n\r\nconst Problem: React.FC = ({\r\n\tdescription,\r\n\taltitude,\r\n\tdirection,\r\n\tinformation,\r\n\tposition,\r\n\tisMobile,\r\n}) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\t{position && (\r\n\t\t\t\t
    \r\n\t\t\t\t\t{position.heading && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{position.heading}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{position.content && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\r\n\t\t\t{information?.map((i, index) => (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{i.text}\r\n\t\t\t\t\t\r\n\t\t\t\t\t

    {i.description}

    \r\n\t\t\t\t
    \r\n\t\t\t))}\r\n\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{description.content}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Problem;\r\n","/**\r\n * DatePickerInput\r\n */\r\n\r\nimport Icon from 'components/Icon';\r\nimport { enUS, sv } from 'date-fns/locale';\r\nimport dayjs from 'dayjs';\r\nimport React, { forwardRef, useEffect, useState } from 'react';\r\nimport ReactDatePicker, { registerLocale } from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { useLocation } from 'react-router';\r\n\r\nregisterLocale('sv', sv);\r\nregisterLocale('en-US', enUS);\r\n\r\ninterface Props {\r\n\t/** Description of this property */\r\n\tpublishedDate?: string;\r\n\tseePreviousForecastText?: string;\r\n}\r\n\r\nconst CustomInput = forwardRef(\r\n\t(\r\n\t\t{\r\n\t\t\tonClick,\r\n\t\t\tseePreviousForecastText,\r\n\t\t\tareaExpanded,\r\n\t\t\tsetAreaExpanded,\r\n\t\t\tisEnglish,\r\n\t\t}: any,\r\n\t\tref: any\r\n\t) => {\r\n\t\tconst handleClick = () => {\r\n\t\t\tif (onClick) {\r\n\t\t\t\tonClick();\r\n\t\t\t}\r\n\t\t\tsetAreaExpanded((prev: boolean) => !prev);\r\n\t\t};\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{seePreviousForecastText}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n);\r\n\r\nconst DatePickerInput: React.FC = ({\r\n\tpublishedDate,\r\n\tseePreviousForecastText,\r\n}) => {\r\n\tconst location = useLocation();\r\n\r\n\tconst [currentDate, setCurrentDate] = useState(\r\n\t\tdayjs(publishedDate).toDate()\r\n\t);\r\n\r\n\tconst [areaExpanded, setAreaExpanded] = useState(false);\r\n\r\n\t//method to handle enter key from calendar\r\n\tconst handleKeyDown = (event: any) => {\r\n\t\tif (event.key === 'Enter') {\r\n\t\t\tconst activeElement = document.activeElement as HTMLElement;\r\n\t\t\tconst keyboardSelectedDay = document.querySelector(\r\n\t\t\t\t'.react-datepicker__day--keyboard-selected'\r\n\t\t\t);\r\n\t\t\t// Check if focus is on a div with the class react-datepicker__day\r\n\t\t\tif (keyboardSelectedDay) {\r\n\t\t\t\tconst anchorTag = keyboardSelectedDay.querySelector('a');\r\n\t\t\t\tif (anchorTag) {\r\n\t\t\t\t\tanchorTag.click();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If focus is directly on an anchor tag\r\n\t\t\telse if (activeElement?.tagName === 'A') {\r\n\t\t\t\tactiveElement.click();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction getDateQuery(date: Date, direction?: 'next' | 'before') {\r\n\t\tlet day = dayjs(date);\r\n\t\tconst dateFormatStr = 'YYYY-MM-DD';\r\n\r\n\t\tif (direction !== undefined) {\r\n\t\t\tday = direction === 'next' ? day.add(1, 'day') : day.subtract(1, 'day');\r\n\t\t}\r\n\r\n\t\treturn `${location.pathname}?forecast_date=${dayjs(day).format(\r\n\t\t\tdateFormatStr\r\n\t\t)}`;\r\n\t}\r\n\r\n\tfunction renderDayContents(day: number, date: Date) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{day}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tconst handleCalendarClose = () => {\r\n\t\tsetAreaExpanded(false);\r\n\t};\r\n\r\n\tconst isEnglish = location.pathname.startsWith('/en/');\r\n\r\n\tconst renderCustomPrevButtonLabel = () => {\r\n\t\treturn isEnglish ? 'Previous Month' : 'Föregående månad';\r\n\t};\r\n\r\n\tconst renderCustomNextButtonLabel = () => {\r\n\t\treturn isEnglish ? 'Next Month' : 'Nästa månad';\r\n\t};\r\n\r\n\tconst CustomHeader = ({ date, decreaseMonth, increaseMonth }: any) => (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t<\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{date.toLocaleString(isEnglish ? 'en-US' : 'sv', {\r\n\t\t\t\t\tmonth: 'long',\r\n\t\t\t\t\tyear: 'numeric',\r\n\t\t\t\t})}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t>\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n\r\n\treturn (\r\n\t\t setCurrentDate(date as Date)}\r\n\t\t\tcloseOnScroll={(e) => e.target === document}\r\n\t\t\tselected={currentDate}\r\n\t\t\tallowSameDay={false}\r\n\t\t\tdateFormat=\"yyyy-MM-dd\"\r\n\t\t\tclassName=\"text-center p-2 w-64 focus:outline-none cursor-pointer\"\r\n\t\t\tcustomInput={\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\tonInputClick={() => {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tconst selectedDay = document.querySelector(\r\n\t\t\t\t\t\t'.react-datepicker__day--selected a'\r\n\t\t\t\t\t) as HTMLElement;\r\n\r\n\t\t\t\t\tif (selectedDay) {\r\n\t\t\t\t\t\tselectedDay.focus(); // Focus on the selected day if it exists\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst firstDay = document.querySelector(\r\n\t\t\t\t\t\t\t'.react-datepicker__day a'\r\n\t\t\t\t\t\t) as HTMLElement;\r\n\t\t\t\t\t\tif (firstDay) {\r\n\t\t\t\t\t\t\tfirstDay.focus(); // Focus on the first interactive day\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 10);\r\n\t\t\t}}\r\n\t\t\tonCalendarClose={handleCalendarClose}\r\n\t\t\trenderDayContents={renderDayContents}\r\n\t\t\tpopperPlacement=\"auto\"\r\n\t\t\tpopperClassName=\"custom-popper\"\r\n\t\t\trenderCustomHeader={({ date, decreaseMonth, increaseMonth }) => (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default DatePickerInput;\r\n","/**\r\n * Forecast\r\n */\r\nimport React from 'react';\r\nimport { Forecast as ForecastType } from 'types/pageTypes/area_page';\r\n\r\nimport RichText from 'components/RichText';\r\nimport { Accordion, AccordionItem } from 'components/Accordion';\r\nimport Problem from 'pages/AreaPage/components/Problem';\r\nimport Link from 'components/Link';\r\nimport Image from 'components/Image';\r\nimport DatePickerInput from 'components/DatePickerInput';\r\nimport { pushMatomoEvent } from 'utils/matomoUtils';\r\n\r\ninterface Props {\r\n\t/** Description of this property */\r\n\tforecast: ForecastType;\r\n\tforecastDateText: string;\r\n\tseePreviousForecastText: string;\r\n\tselectedDate: string;\r\n}\r\n\r\n/** Main description for this component. */\r\nconst Forecast: React.FC = ({\r\n\tforecast,\r\n\tforecastDateText,\r\n\tseePreviousForecastText,\r\n\tselectedDate,\r\n}) => {\r\n\tconst {\r\n\t\ttrend,\r\n\t\tavalancheProblem,\r\n\t\tassessmentHeading,\r\n\t\tassessmentContent,\r\n\t\tpublishedDate,\r\n\t\tsnowInfo,\r\n\t\tweatherInfo,\r\n\t} = forecast || {};\r\n\r\n\tconst { trendLabel, trendImage, trendDate, trendContent, trendHeading } =\r\n\t\ttrend || {};\r\n\r\n\tconst handleAccordionToggle = (title: string, isOpen: boolean) => {\r\n\t\tif (isOpen) {\r\n\t\t\tpushMatomoEvent({\r\n\t\t\t\tevent: 'klick_block',\r\n\t\t\t\tevent_category: 'klick_block',\r\n\t\t\t\tevent_action: 'prognosområde',\r\n\t\t\t\tevent_name: title,\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\treturn (\r\n\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t{assessmentHeading && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{assessmentHeading}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{assessmentContent && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t
    \r\n\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{avalancheProblem &&\r\n\t\t\t\t\t\tavalancheProblem.problems.length > 0 &&\r\n\t\t\t\t\t\tavalancheProblem.problems.map(\r\n\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\theading,\r\n\t\t\t\t\t\t\t\t\tsymbol,\r\n\t\t\t\t\t\t\t\t\tdescription,\r\n\t\t\t\t\t\t\t\t\tdirection,\r\n\t\t\t\t\t\t\t\t\taltitude,\r\n\t\t\t\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\t\t\t\tinformation,\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tindex\r\n\t\t\t\t\t\t\t) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{snowInfo && snowInfo.heading && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{snowInfo.button && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{snowInfo.button.text}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{weatherInfo && weatherInfo.heading && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{weatherInfo.button && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{weatherInfo.button.text}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\r\n\t\t\t\t{trendHeading && trendLabel && (\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{trendHeading}\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{trendLabel && (\r\n\t\t\t\t\t\t\t\t\t

    {trendLabel}

    \r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{forecastDateText} {trendDate}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t{trendContent && (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t{publishedDate && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t

    {seePreviousForecastText}

    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default Forecast;\r\n","import Button from 'components/Button';\r\nimport Icon from 'components/Icon';\r\nimport Link from 'components/Link';\r\nimport React from 'react';\r\nimport { Link as LinkCustom } from 'types/global';\r\nimport { Forecast as ForecastType } from 'types/pageTypes/area_page';\r\n\r\ninterface Props {\r\n\theading: string;\r\n\tareaName: string;\r\n\tforecast: ForecastType;\r\n\thistorical: {\r\n\t\tisHistorical: boolean;\r\n\t\tcontent: string;\r\n\t\tlink: Omit;\r\n\t};\r\n\tpreviewControls?: {\r\n\t\tpreviewButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t\tnextButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t\tpreviousButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t};\r\n\tavalancheHazardText: string;\r\n\tavalancheScaleLink: LinkCustom;\r\n\tisMobile: boolean;\r\n}\r\n\r\nconst AreaHeader: React.FC = ({\r\n\theading,\r\n\tareaName,\r\n\tforecast,\r\n\thistorical,\r\n\tpreviewControls,\r\n\tavalancheHazardText,\r\n\tavalancheScaleLink,\r\n\tisMobile,\r\n}) => {\r\n\tconst {\r\n\t\tvalidFrom,\r\n\t\tvalidFromPrefix,\r\n\t\tvalidToPrefix,\r\n\t\tvalidTo,\r\n\t\triskImage,\r\n\t\triskLabel,\r\n\t} = forecast || {};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {heading}\r\n\t\t\t\t\t\t{areaName}\r\n\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t{validFromPrefix} \r\n\t\t\t\t\t\t\t{validFrom}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t{!isMobile && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t{validToPrefix} \r\n\t\t\t\t\t\t\t{validTo}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t{historical?.isHistorical && (\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{historical.content}\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{historical.link.text}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{previewControls && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{previewControls.previewButton && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{previewControls.previewButton.text}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{previewControls.previousButton && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{previewControls.previousButton.text}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t{previewControls.nextButton && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{previewControls.nextButton.text}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{avalancheHazardText}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t{riskLabel}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t{avalancheScaleLink && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{avalancheScaleLink.text}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{riskImage && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t{!isMobile && (\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AreaHeader;\r\n","/**\r\n * DesktopAreaPage\r\n */\r\n\r\nimport React, { useState } from 'react';\r\nimport Map from 'components/Map';\r\nimport { MapModel } from 'types/epi';\r\nimport { Forecast as ForecastType } from 'types/pageTypes/area_page';\r\nimport MoreInformationBlock from 'components/MoreInformationBlock';\r\n\r\nimport Forecast from 'components/Forecast';\r\nimport { MoreInformationBlockModel } from 'types/blocks';\r\nimport { Link as LinkCustom } from 'types/global';\r\nimport AreaHeader from 'pages/AreaPage/components/AreaHeader';\r\n\r\ninterface Props {\r\n\t/** Description of this property */\r\n\tareaId: number;\r\n\tmap: MapModel;\r\n\tforecast: ForecastType;\r\n\tforecastDateText: string;\r\n\tseePreviousForecastText: string;\r\n\tselectedDate: string;\r\n\tmoreInformationBlock: MoreInformationBlockModel | undefined;\r\n\r\n\t/* area header props */\r\n\theading: string;\r\n\tareaName: string;\r\n\thistorical: {\r\n\t\tisHistorical: boolean;\r\n\t\tcontent: string;\r\n\t\tlink: Omit;\r\n\t};\r\n\tpreviewControls?: {\r\n\t\tpreviewButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t\tnextButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t\tpreviousButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t};\r\n\tavalancheHazardText: string;\r\n\tavalancheScaleLink: LinkCustom;\r\n\tskipMap?: string;\r\n}\r\n\r\n/** Main description for this component. */\r\nconst DesktopAreaPage: React.FC = ({\r\n\tareaId,\r\n\tmap,\r\n\tforecast,\r\n\tforecastDateText,\r\n\tseePreviousForecastText,\r\n\tselectedDate,\r\n\tmoreInformationBlock,\r\n\theading,\r\n\tareaName,\r\n\thistorical,\r\n\tpreviewControls,\r\n\tavalancheHazardText,\r\n\tavalancheScaleLink,\r\n\tskipMap,\r\n}) => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{skipMap && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{skipMap}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\t{moreInformationBlock && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default DesktopAreaPage;\r\n","/**\r\n * MobileAreaPage\r\n */\r\n\r\nimport Forecast from 'components/Forecast';\r\nimport Map from 'components/Map';\r\nimport MoreInformationBlock from 'components/MoreInformationBlock';\r\nimport AreaHeader from 'pages/AreaPage/components/AreaHeader';\r\nimport React, { useState } from 'react';\r\nimport { MoreInformationBlockModel } from 'types/blocks';\r\nimport { MapModel } from 'types/epi';\r\nimport { Forecast as ForecastType } from 'types/pageTypes/area_page';\r\nimport { Link as LinkCustom } from 'types/global';\r\nimport Icon from 'components/Icon';\r\nimport { pushMatomoEvent } from 'utils/matomoUtils';\r\n\r\ninterface Props {\r\n\t/** Description of this property */\r\n\tareaId: number;\r\n\tmap: MapModel;\r\n\tforecast: ForecastType;\r\n\tforecastDateText: string;\r\n\tseePreviousForecastText: string;\r\n\tselectedDate: string;\r\n\tmoreInformationBlock: MoreInformationBlockModel | undefined;\r\n\tactiveTab: 'map' | 'area';\r\n\r\n\t/* area header props */\r\n\theading: string;\r\n\tareaName: string;\r\n\thistorical: {\r\n\t\tisHistorical: boolean;\r\n\t\tcontent: string;\r\n\t\tlink: Omit;\r\n\t};\r\n\tpreviewControls?: {\r\n\t\tpreviewButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t\tnextButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t\tpreviousButton: {\r\n\t\t\turl: string;\r\n\t\t\ttext: string;\r\n\t\t};\r\n\t};\r\n\tavalancheHazardText: string;\r\n\tavalancheScaleLink: LinkCustom;\r\n\tmobileMapLabel: string;\r\n}\r\n\r\n/** Main description for this component. */\r\nconst MobileAreaPage: React.FC = ({\r\n\tareaId,\r\n\tmap,\r\n\tforecast,\r\n\tforecastDateText,\r\n\tseePreviousForecastText,\r\n\tselectedDate,\r\n\tmoreInformationBlock,\r\n\t//activeTab,\r\n\theading,\r\n\tareaName,\r\n\thistorical,\r\n\tpreviewControls,\r\n\tavalancheHazardText,\r\n\tavalancheScaleLink,\r\n\tmobileMapLabel,\r\n}) => {\r\n\tconst [activeTab, setActiveTab] = React.useState<'map' | 'area'>('area');\r\n\tconst handleTapTab = (tab: 'map' | 'area') => {\r\n\t\tsetActiveTab(tab);\r\n\t\tif (tab === 'map') {\r\n\t\t\tpushMatomoEvent({\r\n\t\t\t\tevent: 'klick_mobil_prognossida',\r\n\t\t\t\tevent_category: 'klick_mobil_prognossida',\r\n\t\t\t\tevent_action: 'prognosområde',\r\n\t\t\t\tevent_name: 'kartknapp',\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{activeTab === 'area' && (\r\n\t\t\t\t handleTapTab('map')}\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{mobileMapLabel}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{activeTab === 'map' ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{moreInformationBlock && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileAreaPage;\r\n","/**\r\n * AreaPage\r\n */\r\n\r\nimport React, { useState, useEffect } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { AreaPageModel } from 'types/pages';\r\nimport Icon from 'components/Icon';\r\nimport Link from 'components/Link';\r\nimport NoContent from 'components/NoContent';\r\nimport DesktopAreaPage from 'components/DesktopAreaPage';\r\nimport MobileAreaPage from 'components/MobileAreaPage';\r\n\r\n/** This page contains the full description and information of a Forecast */\r\nconst AreaPage: React.FC = ({\r\n\tforecast,\r\n\theading,\r\n\tselectedDate,\r\n\ttodayText,\r\n\tseePreviousForecastText,\r\n\tavalancheHazardText,\r\n\tforecastDateText,\r\n\tdatepicker,\r\n\thistorical,\r\n\tmissingForecast,\r\n\tmap,\r\n\tareaName,\r\n\tpreviewControls,\r\n\tmoreInformationBlock,\r\n\tareaId,\r\n\tavalancheScaleLink,\r\n\tmobileMapLabel,\r\n\tskipMap,\r\n}) => {\r\n\tconst isMobileOrTablet = useMediaQuery({\r\n\t\tmaxWidth: 1023,\r\n\t});\r\n\r\n\tconst [activeTab, setActiveTab] = React.useState<'map' | 'area'>('area');\r\n\tconst handleTapTab = (tab: 'map' | 'area') => {\r\n\t\tsetActiveTab(tab);\r\n\t};\r\n\t/**\r\n\t *\r\n\t\tif there is not forecast (usually in summer) or is null\r\n\t* */\r\n\r\n\tif (!forecast) {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{areaName}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{historical?.isHistorical && (\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{historical.content}{' '}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{historical.link.text}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{isMobileOrTablet ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AreaPage;\r\n","/**\r\n * ErrorPage404\r\n */\r\n\r\nimport React from 'react';\r\nimport Button from 'components/Button';\r\nimport BannerImage from 'components/BannerImage';\r\n\r\nimport { IImage } from 'types/global';\r\nimport { Cell, Grid } from 'components/Grid';\r\n\r\ninterface Props {\r\n\terror?: string;\r\n\theading: string;\r\n\ttext?: string;\r\n\tbuttonText?: string;\r\n\tlinkTo: string;\r\n\tbannerImage?: IImage;\r\n}\r\n\r\n/** Page template for error handling. */\r\nconst ErrorPage404: React.FC = ({\r\n\terror,\r\n\theading,\r\n\ttext,\r\n\tbuttonText = 'Tillbaka till hemsidan SW',\r\n\tlinkTo = '/',\r\n\tbannerImage,\r\n}) => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{bannerImage && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t

    {heading}

    \r\n\t\t\t\t\t\t

    {text}

    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{buttonText}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default ErrorPage404;\r\n","/**\r\n * ForecastListCard\r\n */\r\n\r\nimport clsx from 'clsx';\r\nimport Icon from 'components/Icon';\r\nimport Link from 'components/Link';\r\nimport React from 'react';\r\n\r\ninterface Props {\r\n\t/** Name of the Mountain Range */\r\n\tname: string;\r\n\r\n\t/** Weather Severity */\r\n\tseverity: string;\r\n\r\n\t/** Date the forecast was issued on */\r\n\tissuedOn: string;\r\n\r\n\t/** Icon showing the weather severity and it's indicator (number) */\r\n\timage: {\r\n\t\tsrc: string;\r\n\t\talt: string;\r\n\t};\r\n\r\n\t/** Additional information regarding forecast */\r\n\tdescription: string;\r\n\r\n\t/** URL which will re-route to when the card is clicked */\r\n\turl: string;\r\n\r\n\t/** Classnames */\r\n\tclassName?: string;\r\n\r\n\t/** Index */\r\n\tindex: number;\r\n}\r\n\r\n/** Card displaying overview of a Forecast */\r\nconst ForecastListCard: React.FC = ({\r\n\tname,\r\n\tseverity,\r\n\tissuedOn,\r\n\timage,\r\n\tdescription,\r\n\turl,\r\n\tclassName,\r\n\tindex,\r\n}) => {\r\n\tlet dateStr = issuedOn.split(' ').slice(-2, -1)[0]; // Extract the date part\r\n\r\n\tlet parsedDate,\r\n\t\treversedDate = null; // Initialize parsedDate\r\n\r\n\tif (dateStr) {\r\n\t\tdateStr = dateStr.replace(/\\//g, '-'); // for en lang\r\n\t\tconst dateParts = dateStr.split('-');\r\n\t\treversedDate = dateParts[2] + '-' + dateParts[1] + '-' + dateParts[0];\r\n\t\tparsedDate = new Date(reversedDate);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{image.src && (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\r\n\t\t\t
    \r\n\t\t\t\t{name && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{name}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{severity && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{severity}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{reversedDate && parsedDate && (\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{issuedOn}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t

    {description}

    \r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ForecastListCard;\r\n","/**\r\n * ForecastListPage\r\n */\r\n\r\nimport ForecastListCard from 'components/ForecastListCard';\r\nimport React from 'react';\r\nimport { ForecastListPageModel } from 'types/pages';\r\n\r\n/** This is the component for the page containing the overview of all available Forecasts */\r\nconst ForecastListPage: React.FC = ({\r\n\theading,\r\n\titems,\r\n}) => {\r\n\tconst forecastListHeadingID = 'forecastListHeading';\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t{heading}\r\n\t\t\t\r\n\r\n\t\t\t
    \r\n\t\t\t\t{items?.map((forecast, index) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default ForecastListPage;\r\n","/**\r\n * FormContainerPage\r\n */\r\n\r\nimport React from 'react';\r\nimport EpiForms from 'components/EpiForms';\r\nimport { EpiFormsProps } from 'components/EpiForms/EpiForms';\r\n\r\nimport { Grid, Cell } from 'components/Grid';\r\n\r\n/** Container page for showing Forms in Epi */\r\nconst FormContainerPage: React.FC = (props) => (\r\n\t\r\n\t\t\r\n\t\t\t \r\n\t\t\r\n\t\t{props.fields && }\r\n\t\r\n);\r\n\r\nexport default FormContainerPage;\r\n","/**\r\n * EpiContentArea\r\n */\r\n\r\nimport React from 'react';\r\nimport {\r\n\tPuffModel,\r\n\tPuffWithImageModel,\r\n\tMoreInformationBlockModel,\r\n} from 'types/blocks';\r\n\r\nimport { Cell, Grid } from 'components/Grid';\r\nimport { Puff, PuffWithImage } from 'components/Puff';\r\nimport MoreInformationBlock from 'components/MoreInformationBlock';\r\n\r\ninterface Props {\r\n\t/** Epi property containing content for the content area */\r\n\tcontent?: any;\r\n\r\n\t/** Epi properties for on page editing */\r\n\t[htmlAttributes: string]: any;\r\n}\r\n\r\nexport const renderContent = (\r\n\tblock: PuffModel | PuffWithImageModel | MoreInformationBlockModel,\r\n\ti: number\r\n) => {\r\n\tswitch (block.modelType) {\r\n\t\tcase 'Puff':\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tcase 'PuffWithImage':\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tcase 'PuffWithLargeImage':\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tcase 'MoreInformationBlock':\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tdefault:\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n\r\n/** Epi content area for handling blocks */\r\nconst EpiContentArea: React.FC = ({\r\n\tcontent = [],\r\n\t...htmlAttributes\r\n}) => (\r\n\t
    \r\n\t\t{content.map(renderContent)}\r\n\t
    \r\n);\r\n\r\nexport default EpiContentArea;\r\n","/**\r\n * PreviewBlockPage\r\n */\r\n\r\nimport React from 'react';\r\nimport { PreviewBlockPageModel } from 'types/pages';\r\n\r\nimport { Grid, Cell } from 'components/Grid';\r\nimport EpiContentArea from 'components/EpiContentArea';\r\n\r\n/** Page template to enable OPE on blocks */\r\nconst PreviewBlockPage: React.FC = ({ contentArea }) => (\r\n\t\r\n\t\t\r\n\t\t\t \r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default PreviewBlockPage;\r\n","/**\r\n * StandardPage\r\n */\r\nimport React, { useEffect, useState } from 'react';\r\nimport { StandardPageModel } from 'types/pages';\r\nimport Breadcrumb from 'components/Breadcrumb';\r\nimport EpiFragments from 'components/EpiFragments';\r\nimport BannerImage from 'components/BannerImage';\r\nimport { Grid, Cell } from 'components/Grid';\r\nimport clsx from 'clsx';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { smoothScrollToTarget } from 'utils/smoothScrollToTarget';\r\n/** Standard page component. */\r\nconst StandardPage: React.FC = ({\r\n\theading,\r\n\tpreamble,\r\n\ttext,\r\n\tbannerImage,\r\n\ttoc,\r\n}) => {\r\n\tconst [renderedFragments, setRenderedFragments] = useState();\r\n\tconst [tocItems, setTocItems] = useState([]);\r\n\t// New state to track the ID of the currently active section\r\n\tconst [activeSection, setActiveSection] = useState(null);\r\n\r\n\tconst isMobile = useMediaQuery({\r\n\t\tmaxWidth: 768,\r\n\t});\r\n\r\n\t// Function to get all \"raw\" values for \"HeadingFragment\"\r\n\tfunction getFragments(data: any) {\r\n\t\tconst mergingFragments: any = [];\r\n\t\tconst fragment =\r\n\t\t\tdata.modelType === 'HeadingFragment' ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tmergingFragments.push(fragment);\r\n\t\treturn mergingFragments;\r\n\t}\r\n\r\n\tfunction processFragments() {\r\n\t\tconst mergedFragments = [];\r\n\t\tfor (let i = 0; i < text.fragments.length; i++) {\r\n\t\t\tconst fragmentsSorted = getFragments(text.fragments[i]);\r\n\t\t\tmergedFragments.push(fragmentsSorted);\r\n\t\t}\r\n\t\tsetRenderedFragments(mergedFragments);\r\n\t}\r\n\r\n\tfunction getAllHeadingsFragment(): void {\r\n\t\tconst fragments = text.fragments;\r\n\t\tconst headingFragments = fragments.filter(\r\n\t\t\t(fragment: any) => fragment.modelType === 'HeadingFragment'\r\n\t\t);\r\n\r\n\t\tconst heading = headingFragments.map((val: any) => val);\r\n\t\tsetTocItems(heading);\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tprocessFragments();\r\n\t\tgetAllHeadingsFragment();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Function to check which section is currently active based on scroll position\r\n\t\tfunction updateActiveSection() {\r\n\t\t\tconst headings = tocItems.map((item) => item.id);\r\n\t\t\tlet currentActiveSection: string = '';\r\n\r\n\t\t\tfor (let i = headings.length - 1; i >= 0; i--) {\r\n\t\t\t\tconst headingElement = document.getElementById(headings[i]);\r\n\t\t\t\tif (\r\n\t\t\t\t\theadingElement &&\r\n\t\t\t\t\theadingElement.getBoundingClientRect().top <= 200\r\n\t\t\t\t) {\r\n\t\t\t\t\tcurrentActiveSection = headings[i];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (currentActiveSection !== activeSection) {\r\n\t\t\t\tsetActiveSection(currentActiveSection);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add scroll event listener to update the active section on scroll\r\n\t\twindow.addEventListener('scroll', updateActiveSection);\r\n\r\n\t\t// Clean up the event listener when the component is unmounted\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('scroll', updateActiveSection);\r\n\t\t};\r\n\t}, [tocItems, activeSection]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Attach click event listeners to each anchor link\r\n\t\tconst tocLink = document.querySelectorAll('.table-of-contents');\r\n\t\ttocLink.forEach((link) => {\r\n\t\t\tlink.addEventListener('click', smoothScrollToTarget);\r\n\t\t});\r\n\r\n\t\t// Clean up the event listeners when the component is unmounted\r\n\t\treturn () => {\r\n\t\t\ttocLink.forEach((link) => {\r\n\t\t\t\tlink.removeEventListener('click', smoothScrollToTarget);\r\n\t\t\t});\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{bannerImage && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{preamble &&

    {preamble}

    }\r\n\t\t\t\t\t\t{renderedFragments}\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t{!isMobile && tocItems.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{toc}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{tocItems &&\r\n\t\t\t\t\t\t\t\t\t\ttocItems.map((item, i) => {\r\n\t\t\t\t\t\t\t\t\t\t\t// Check if the current option is selected\r\n\t\t\t\t\t\t\t\t\t\t\tconst isSelected = item.id == activeSection;\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default StandardPage;\r\n","/**\r\n * NewsPage\r\n */\r\nimport React from 'react';\r\nimport { NewsPageModel } from 'types/pages';\r\n\r\nimport Breadcrumb from 'components/Breadcrumb';\r\nimport EpiFragments from 'components/EpiFragments';\r\nimport BannerImage from 'components/BannerImage';\r\nimport { Grid, Cell } from 'components/Grid';\r\n\r\n/** Newspage component. */\r\nconst NewsPage: React.FC = ({\r\n\theading,\r\n\tpreamble,\r\n\ttext,\r\n\tbannerImage,\r\n\tpublishedDate,\r\n\tpublishedLabel,\r\n\tcontactForMoreInformationLabel,\r\n\tcontactPersons,\r\n}) => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{bannerImage && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{publishedDate && (\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{publishedLabel}: {publishedDate}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{preamble &&

    {preamble}

    }\r\n\r\n\t\t\t\t\t\t{text && }\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t{contactPersons && contactPersons.length > 0 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{contactForMoreInformationLabel}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t{contactPersons.map((person, i) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{person.name}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t{person.role && (\r\n\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{person.role}\r\n\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t{person.telephoneNumbers &&\r\n\t\t\t\t\t\t\t\t\t\t\tperson.telephoneNumbers.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{person.telephoneLabel}:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{person.telephoneNumbers.map(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(number, index, array) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{number}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{index !== array.length - 1 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t, \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t''\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t{person.emailAddress && (\r\n\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{person.emailLabel}:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{person.emailAddress}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default NewsPage;\r\n","/**\r\n * NewsBlock\r\n */\r\n\r\nimport React from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport { Link } from 'react-router-dom';\r\nimport { NewsBlock as NewsBlockType } from 'types/blocks';\r\nimport Icon from 'components/Icon';\r\nimport Button from 'components/Button';\r\nimport Image from 'components/Image';\r\n\r\ninterface Props {\r\n\t/** NewsBlock heading */\r\n\theading: string;\r\n\r\n\t/** Newsblock button */\r\n\tbutton?: {\r\n\t\thref: string;\r\n\t\ttext: string;\r\n\t};\r\n\r\n\t/** Array of news blocks */\r\n\tnewsBlocks: NewsBlockType[];\r\n}\r\n\r\n/** NewsBlock listing three news articles. */\r\nconst NewsBlock: React.FC = ({ heading, button, newsBlocks }) => (\r\n\t
    \r\n\t\t
    \r\n\t\t\t

    \r\n\t\t\t\t{heading}\r\n\t\t\t

    \r\n\r\n\t\t\t{button && button.text && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{button.text}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
    \r\n\r\n\t\t{newsBlocks && (\r\n\t\t\t
    \r\n\t\t\t\t{newsBlocks.map((block, index) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{block.image && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{block.publishedDate}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{block.heading}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t

    {block.text}

    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t
    \r\n\t\t)}\r\n\t\r\n);\r\n\r\nexport default NewsBlock;\r\n","/**\r\n * AreaStatusLink\r\n */\r\n\r\nimport React from 'react';\r\nimport Icon from 'components/Icon';\r\nimport Link from 'components/Link';\r\n\r\ninterface Props {\r\n\t/** The url to the area page */\r\n\turl: string;\r\n\r\n\t/** Risk icon image */\r\n\triskImage: any;\r\n\r\n\t/** Risk text */\r\n\triskText: string;\r\n\r\n\t/** Area name for stated risk */\r\n\tareaName: string;\r\n\r\n\t/** Areas name for popular destination */\r\n\tareas: string;\r\n\r\n\t/** Area index for id */\r\n\tindex: number;\r\n}\r\n\r\nconst AreaStatusLink: React.FC = ({\r\n\turl,\r\n\triskImage,\r\n\triskText,\r\n\tareaName,\r\n\tareas,\r\n\tindex,\r\n}) => (\r\n\t
  • \r\n\t\t\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{areaName}\r\n\t\t\t\t\t\r\n\t\t\t\t\t

    {riskText}

    \r\n\t\t\t\t\t{areas}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\r\n\t\t\t\r\n\t\t\r\n\t
  • \r\n);\r\n\r\nexport default AreaStatusLink;\r\n","/**\r\n * AreaList\r\n */\r\n\r\nimport React from 'react';\r\nimport { AreaPageLink } from 'types/global';\r\n\r\nimport AreaStatusLink from 'components/AreaStatusLink';\r\n\r\ninterface Props {\r\n\t/** AreaList heading */\r\n\theading: string;\r\n\r\n\t/** Valid until text */\r\n\tvalidUntilText: string;\r\n\r\n\t/** Valid to date */\r\n\tvalidToDate?: string;\r\n\r\n\t/** Array of area page links */\r\n\tareaPageLinks: AreaPageLink[];\r\n}\r\n\r\n/** AreaList component listing area pages. */\r\nconst AreaList: React.FC = ({\r\n\theading,\r\n\tvalidUntilText,\r\n\tvalidToDate,\r\n\tareaPageLinks,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{heading}\r\n\t\t\t\r\n\r\n\t\t\t
    \r\n\t\t\t\t

    {validUntilText}

    \r\n\t\t\t\t

    {validToDate}

    \r\n\t\t\t
    \r\n\r\n\t\t\t{areaPageLinks && (\r\n\t\t\t\t
      \r\n\t\t\t\t\t{areaPageLinks.map((link: any, index: number) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AreaList;\r\n","/**\r\n * DesktopStartPage\r\n */\r\n\r\nimport React from 'react';\r\nimport Map from 'components/Map';\r\nimport AreaList from 'components/AreaList';\r\nimport { AreaPageLink } from 'types/global';\r\nimport { MapModel } from 'types/epi';\r\n\r\nexport interface DesktopStartPageProps {\r\n\tareaPageLinksArea: {\r\n\t\theading: string;\r\n\t\tvalidUntilText: string;\r\n\t\tvalidToDate?: string;\r\n\t\tareaPageLinks: Array;\r\n\t};\r\n\tmap: MapModel;\r\n\tskipMap: string;\r\n}\r\n\r\n/** Main description for this component. */\r\nconst DesktopStartPage: React.FC = ({\r\n\tareaPageLinksArea,\r\n\tmap,\r\n\tskipMap,\r\n}) => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t{skipMap && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{skipMap}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default DesktopStartPage;\r\n","/**\r\n * TabButton\r\n */\r\n\r\nimport React from 'react';\r\nimport clsx from 'clsx';\r\n\r\ninterface Props {\r\n\t/** Description of this property */\r\n\tid: string;\r\n\tlabel?: string;\r\n\tactive: boolean;\r\n\tchildren: React.ReactNode;\r\n\tonClick?: () => void;\r\n\tonKeyDown?: (event: React.KeyboardEvent) => void;\r\n\tonFocus?: () => void;\r\n\ttabIndex?: number;\r\n\tariaControls?: string;\r\n}\r\n\r\nconst TabButton = React.forwardRef(\r\n\t(\r\n\t\t{\r\n\t\t\tid,\r\n\t\t\tlabel,\r\n\t\t\tactive,\r\n\t\t\tchildren,\r\n\t\t\tonClick,\r\n\t\t\tonKeyDown,\r\n\t\t\tonFocus,\r\n\t\t\ttabIndex,\r\n\t\t\tariaControls,\r\n\t\t},\r\n\t\tref\r\n\t) => (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\t{label}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n);\r\n\r\nexport default TabButton;\r\n","/**\r\n * MobileStartPage\r\n */\r\nimport React, { useEffect, useState } from 'react';\r\nimport Icon from 'components/Icon';\r\nimport TabButton from 'components/TabButton';\r\nimport { StartPageModel } from 'types/pages';\r\nimport Map from 'components/Map';\r\nimport AreaList from 'components/AreaList';\r\nimport { AreaPageLink } from 'types/global';\r\nimport { MapModel } from 'types/epi';\r\nimport icons from 'theme/icons';\r\nimport { pushMatomoEvent } from 'utils/matomoUtils';\r\n\r\ntype IconList = keyof typeof icons;\r\n\r\nexport interface MobileStartPageProps {\r\n\tareaPageLinksArea: {\r\n\t\theading: string;\r\n\t\tvalidUntilText: string;\r\n\t\tvalidToDate?: string;\r\n\t\tareaPageLinks: Array;\r\n\t};\r\n\tmap: MapModel;\r\n\tmobileMapLabel?: string;\r\n\tmobileAreasLabel?: string;\r\n}\r\n\r\ntype TabsConfig = {\r\n\tlabel?: string;\r\n\ticon: IconList;\r\n\ticonClass?: string;\r\n};\r\n\r\ntype KeyMap = {\r\n\tArrowRight: any;\r\n\tArrowLeft: any;\r\n\tHome: any;\r\n\tEnd: any;\r\n};\r\n\r\n/** Main description for this component. */\r\nconst MobileStartPage: React.FC = ({\r\n\tareaPageLinksArea,\r\n\tmap,\r\n\tmobileMapLabel,\r\n\tmobileAreasLabel,\r\n}) => {\r\n\tconst tabsConfig: TabsConfig[] = [\r\n\t\t{\r\n\t\t\tlabel: mobileMapLabel,\r\n\t\t\ticon: 'map' as IconList,\r\n\t\t\ticonClass: 'fill-none',\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: mobileAreasLabel,\r\n\t\t\ticon: 'list' as IconList,\r\n\t\t},\r\n\t];\r\n\r\n\tconst [swither, setSwither] = useState(true);\r\n\tconst [selectedIndex, setSelectedIndex] = useState(0);\r\n\tconst tabRefs = React.useRef({});\r\n\tconst handleTabChange = (index: number) => setSelectedIndex(index);\r\n\r\n\tconst setTabIndex = (index: number) => {\r\n\t\tconst tab = tabRefs.current[index];\r\n\t\tif (tab) {\r\n\t\t\ttab.focus();\r\n\t\t}\r\n\t};\r\n\tconst onKeyDown = (event: React.KeyboardEvent) => {\r\n\t\tconst count = tabsConfig.length;\r\n\t\tconst nextTab = () => setTabIndex((selectedIndex + 1) % count);\r\n\t\tconst prevTab = () => setTabIndex((selectedIndex - 1 + count) % count);\r\n\t\tconst firstTab = () => setTabIndex(0);\r\n\t\tconst lastTab = () => setTabIndex(count - 1);\r\n\r\n\t\tconst keyMap: KeyMap = {\r\n\t\t\tArrowRight: nextTab,\r\n\t\t\tArrowLeft: prevTab,\r\n\t\t\tHome: firstTab,\r\n\t\t\tEnd: lastTab,\r\n\t\t};\r\n\r\n\t\tconst action = keyMap[event.key as keyof KeyMap];\r\n\r\n\t\tif (action) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\taction();\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (selectedIndex === 1) {\r\n\t\t\tpushMatomoEvent({\r\n\t\t\t\tevent: 'klick_mobil_startsida',\r\n\t\t\t\tevent_category: 'klick_mobil_startsida',\r\n\t\t\t\tevent_action: 'startsida',\r\n\t\t\t\tevent_name: 'lista prognoser',\r\n\t\t\t});\r\n\t\t}\r\n\t}, [selectedIndex]);\r\n\tconst scrollHandler = (swither: boolean) => {\r\n\t\tif (swither) {\r\n\t\t\tconst button = document.getElementById('scroll-switcher');\r\n\t\t\tbutton?.scrollIntoView({\r\n\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\tblock: 'start',\r\n\t\t\t\tinline: 'nearest',\r\n\t\t\t});\r\n\t\t\tsetSwither(false);\r\n\t\t} else {\r\n\t\t\tconst button = document.getElementById('scroll-switcher');\r\n\t\t\tbutton?.scrollIntoView({\r\n\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\tblock: 'end',\r\n\t\t\t\tinline: 'nearest',\r\n\t\t\t});\r\n\t\t\tsetSwither(true);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
    \r\n\t\t\t\t{tabsConfig.map((tab, index) => (\r\n\t\t\t\t\t handleTabChange(index)}\r\n\t\t\t\t\t\tref={(element) => (tabRefs.current[index] = element)}\r\n\t\t\t\t\t\taria-controls={`tabpanel-id-${index}`}\r\n\t\t\t\t\t\taria-selected={selectedIndex === index}\r\n\t\t\t\t\t\tid={`tab-id-${index}`}\r\n\t\t\t\t\t\tonKeyDown={onKeyDown}\r\n\t\t\t\t\t\tonFocus={() => setSelectedIndex(index)}\r\n\t\t\t\t\t\ttabIndex={selectedIndex === index ? 0 : -1}\r\n\t\t\t\t\t\tlabel={tab.label}\r\n\t\t\t\t\t\tactive={selectedIndex === index}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t scrollHandler && scrollHandler(swither)}\r\n\t\t\t\t>\r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileStartPage;\r\n","/**\r\n * Card Link\r\n */\r\n\r\nimport React from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport Link from 'components/Link';\r\nimport Icon from 'components/Icon';\r\nimport { IImage } from 'types/global';\r\n\r\nexport interface LinkProps {\r\n\t/** Card Link heading */\r\n\theading: string;\r\n\r\n\t/** Card Link image */\r\n\timage?: IImage;\r\n\r\n\t/** Card Link url */\r\n\turl: string;\r\n\r\n\tid: number | string;\r\n\r\n\t/**we wont use this body in this component- will remove it later */\r\n\tbody?: string;\r\n\r\n\t/** Link size (size changes for text/image) */\r\n\tsize?: 'small' | 'large';\r\n}\r\n\r\n/** Tiny image links block used by Legend */\r\nconst CardLink: React.FC = ({\r\n\theading,\r\n\timage,\r\n\turl,\r\n\tsize = 'small',\r\n\tid,\r\n}) => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t{heading}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t
    \r\n\t\r\n);\r\n\r\nexport default CardLink;\r\n","/**\r\n * Card Link List\r\n */\r\n\r\nimport React from 'react';\r\nimport { Card } from 'types/global';\r\nimport CardLink from 'components/CardLink/CardLink';\r\n\r\nexport interface LinkProps {\r\n\t/** Card Link heading */\r\n\theading: string;\r\n\r\n\tpuffs: Card[];\r\n\r\n\tisMobileOrTablet?: 'small' | 'large';\r\n}\r\n\r\n/** Card link list used in start page */\r\nconst CardLinkList: React.FC = ({\r\n\theading,\r\n\tpuffs,\r\n\tisMobileOrTablet,\r\n}) => (\r\n\t
    \r\n\t\t\r\n\t\t\t{heading}\r\n\t\t\r\n\t\t
      \r\n\t\t\t{/* Flexbox layout */}\r\n\t\t\t{puffs.map((puff) => (\r\n\t\t\t\t
    • \r\n\t\t\t\t\t\r\n\t\t\t\t
    • \r\n\t\t\t))}\r\n\t\t
    \r\n\t
    \r\n);\r\n\r\nexport default CardLinkList;\r\n","import { ContentTypes } from 'types/pages';\r\n/* PLOP_INJECT_IMPORT */\r\nimport GlossaryPage from './GlossaryPage';\r\nimport NewsListPage from './NewsListPage';\r\nimport NavigationPage from './NavigationPage';\r\nimport AreaPage from './AreaPage';\r\nimport ErrorPage404 from './ErrorPage404';\r\nimport ForecastListPage from './ForecastListPage';\r\nimport FormContainerPage from './FormContainerPage';\r\nimport PreviewBlockPage from './PreviewBlockPage';\r\n/* PLOP_INJECT_IMPORT */\r\nimport StandardPage from './StandardPage';\r\nimport NewsPage from './NewsPage';\r\nimport StartPage from './StartPage';\r\nimport OutsideAreaPage from './OutsideAreaPage';\r\n\r\nconst Pages: any = {\r\n\tLavinStartPage: StartPage,\r\n\tErrorPage404,\r\n\t/* PLOP_INJECT_PAGE */\r\n\tGlossaryPage,\r\n\tLavinNewsListPageModel: NewsListPage,\r\n\tLavinNavigationPageModel: NavigationPage,\r\n\tAreaPage,\r\n\tForecastListPage,\r\n\tLavinStandardPageModel: StandardPage,\r\n\tLavinNewsPageModel: NewsPage,\r\n\tLavinOutsideArea: OutsideAreaPage,\r\n\tFormContainerPage,\r\n\tPreviewBlockPage,\r\n};\r\n\r\nexport const PagesMapper = (pageContent: ContentTypes | undefined) => {\r\n\tif (pageContent) {\r\n\t\tlet page: any = Pages[pageContent.modelType];\r\n\r\n\t\tif (page) {\r\n\t\t\treturn page;\r\n\t\t}\r\n\t}\r\n\r\n\treturn ErrorPage404;\r\n};\r\n","/**\r\n * StartPage\r\n */\r\n\r\nimport React, { useEffect, useState } from 'react';\r\nimport { StartPageModel } from 'types/pages';\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\nimport NewsBlock from 'components/NewsBlock';\r\n\r\nimport DesktopStartPage from 'components/DesktopStartPage';\r\nimport MobileStartPage from 'components/MobileStartPage';\r\nimport CardLinkList from 'components/CardLinkList';\r\n\r\n/** Page template for startpage. */\r\nconst StartPage: React.FC = ({\r\n\tmodelType,\r\n\theading,\r\n\tpuffs,\r\n\tpuffsHeading,\r\n\tcurrentNews,\r\n\tannouncement,\r\n\tareaPageLinksArea,\r\n\tmap,\r\n\tmobileMapLabel,\r\n\tmobileAreasLabel,\r\n\tskipMap,\r\n\t_properties = {},\r\n}) => {\r\n\tconst isMobileOrTablet = useMediaQuery({\r\n\t\tmaxWidth: 1023,\r\n\t});\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t

    {heading}

    \r\n\r\n\t\t\t{isMobileOrTablet ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{puffs && puffs.length > 0 && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{currentNews && (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StartPage;\r\n","/**\r\n * OutsideAreaPage\r\n */\r\n\r\nimport React, { useEffect, useState } from 'react';\r\nimport { OutsideAreaPageModel } from 'types/pages';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport EpiFragments from 'components/EpiFragments';\r\nimport { smoothScrollToTarget } from 'utils/smoothScrollToTarget';\r\nimport Map from 'components/Map';\r\nimport { Cell, Grid } from 'components/Grid';\r\nimport clsx from 'clsx';\r\nimport Icon from 'components/Icon';\r\nimport { Accordion, AccordionItem } from 'components/Accordion';\r\nimport { FragmentModelTypes } from 'types/fragments';\r\nimport { pushMatomoEvent } from 'utils/matomoUtils';\r\n\r\n/** Page template for OutsideAreaPage. */\r\nconst OutsideAreaPage: React.FC = ({\r\n\theading,\r\n\ttextNextToMap,\r\n\tbodyText,\r\n\tmap,\r\n\tskipMap,\r\n\ttoc,\r\n}) => {\r\n\tconst isMobileOrTablet = useMediaQuery({\r\n\t\tmaxWidth: 1023,\r\n\t});\r\n\r\n\tconst [activeTab, setActiveTab] = React.useState<'map' | 'area'>('area');\r\n\tconst [hasSmallHeight, setHasSmallHeight] = useState();\r\n\tconst [renderedBodyFragments, setRenderedBodyFragments] = useState<\r\n\t\tJSX.Element[][]\r\n\t>();\r\n\tconst [renderedTopFragments, setRenderedTopFragments] = useState<\r\n\t\tJSX.Element[][]\r\n\t>();\r\n\tconst [tocItems, setTocItems] = useState([]);\r\n\t// New state to track the ID of the currently active section\r\n\tconst [activeSection, setActiveSection] = useState(null);\r\n\r\n\tconst handleTabChange = (tab: 'map' | 'area') => {\r\n\t\tsetActiveTab(tab);\r\n\t\tif (tab === 'map') {\r\n\t\t\tpushMatomoEvent({\r\n\t\t\t\tevent: 'klick_mobil_prognossida',\r\n\t\t\t\tevent_category: 'klick_mobil_prognossida',\r\n\t\t\t\tevent_action: 'utanför prognosområde',\r\n\t\t\t\tevent_name: 'kartknapp',\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleAccordionToggle = (title: string, isOpen: boolean) => {\r\n\t\tif (isOpen) {\r\n\t\t\tpushMatomoEvent({\r\n\t\t\t\tevent: 'klick_block',\r\n\t\t\t\tevent_category: 'klick_block',\r\n\t\t\t\tevent_action: 'utanför prognosområde',\r\n\t\t\t\tevent_name: title,\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (typeof window !== 'undefined') {\r\n\t\t\tsetHasSmallHeight(window?.innerHeight < 900);\r\n\t\t}\r\n\t}, [hasSmallHeight]);\r\n\r\n\t// Function to get all \"raw\" values for \"HeadingFragment\"\r\n\tfunction getFragments(data: any) {\r\n\t\tconst mergingFragments: any = [];\r\n\t\tconst fragment =\r\n\t\t\tdata.modelType === 'AccordionBlock' ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{data.text.fragments.map(\r\n\t\t\t\t\t\t\t(fragment: FragmentModelTypes, index: number) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\tmergingFragments.push(fragment);\r\n\t\treturn mergingFragments;\r\n\t}\r\n\r\n\tfunction processFragments() {\r\n\t\tconst mergedBodyFragments = [];\r\n\t\tconst mergedTopFragments = [];\r\n\t\tfor (let i = 0; i < textNextToMap.fragments.length; i++) {\r\n\t\t\tconst fragmentsSorted = getFragments(textNextToMap.fragments[i]);\r\n\t\t\tmergedTopFragments.push(fragmentsSorted);\r\n\t\t}\r\n\t\tfor (let i = 0; i < bodyText.fragments.length; i++) {\r\n\t\t\tconst fragmentsSorted = getFragments(bodyText.fragments[i]);\r\n\t\t\tmergedBodyFragments.push(fragmentsSorted);\r\n\t\t}\r\n\t\tsetRenderedTopFragments(mergedTopFragments);\r\n\t\tsetRenderedBodyFragments(mergedBodyFragments);\r\n\t}\r\n\r\n\tfunction getAllHeadingsFragment(): void {\r\n\t\tconst fragments = bodyText.fragments;\r\n\t\tconst headingFragments = fragments.filter(\r\n\t\t\t(fragment: any) => fragment.modelType === 'HeadingFragment'\r\n\t\t);\r\n\r\n\t\tconst heading = headingFragments.map((val: any) => val);\r\n\t\tsetTocItems(heading);\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tprocessFragments();\r\n\t\tgetAllHeadingsFragment();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Function to check which section is currently active based on scroll position\r\n\t\tfunction updateActiveSection() {\r\n\t\t\tconst headings = tocItems.map((item) => item.id);\r\n\t\t\tlet currentActiveSection: string = '';\r\n\r\n\t\t\tfor (let i = headings.length - 1; i >= 0; i--) {\r\n\t\t\t\tconst headingElement = document.getElementById(headings[i]);\r\n\t\t\t\tif (\r\n\t\t\t\t\theadingElement &&\r\n\t\t\t\t\theadingElement.getBoundingClientRect().top <= 200\r\n\t\t\t\t) {\r\n\t\t\t\t\tcurrentActiveSection = headings[i];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (currentActiveSection !== activeSection) {\r\n\t\t\t\tsetActiveSection(currentActiveSection);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add scroll event listener to update the active section on scroll\r\n\t\twindow.addEventListener('scroll', updateActiveSection);\r\n\r\n\t\t// Clean up the event listener when the component is unmounted\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('scroll', updateActiveSection);\r\n\t\t};\r\n\t}, [tocItems, activeSection]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// Attach click event listeners to each anchor link\r\n\t\tconst tocLink = document.querySelectorAll('.table-of-contents');\r\n\t\ttocLink.forEach((link) => {\r\n\t\t\tlink.addEventListener('click', smoothScrollToTarget);\r\n\t\t});\r\n\r\n\t\t// Clean up the event listeners when the component is unmounted\r\n\t\treturn () => {\r\n\t\t\ttocLink.forEach((link) => {\r\n\t\t\t\tlink.removeEventListener('click', smoothScrollToTarget);\r\n\t\t\t});\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{activeTab === 'area' && isMobileOrTablet && (\r\n\t\t\t\t handleTabChange('map')}\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{'map'}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{activeTab === 'map' ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{heading}\r\n\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{!isMobileOrTablet && (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{skipMap && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{skipMap}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{renderedTopFragments}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{renderedBodyFragments}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{!isMobileOrTablet && tocItems.length > 0 && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{toc && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{toc}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{tocItems &&\r\n\t\t\t\t\t\t\t\t\t\t\ttocItems.map((item, i) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Check if the current option is selected\r\n\t\t\t\t\t\t\t\t\t\t\t\tconst isSelected = item.id == activeSection;\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default OutsideAreaPage;\r\n","/**\r\n * RouteHandler\r\n */\r\n\r\nimport Loader from 'components/Loader';\r\nimport Text from 'components/Text';\r\nimport BaseLayout from 'layouts/BaseLayout';\r\nimport { PagesMapper } from 'pages';\r\nimport ErrorPage404 from 'pages/ErrorPage404';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { fetchPage, selectContent, selectModel } from 'store/modules/model';\r\nimport { selectReact, updateRenderingState } from 'store/modules/react';\r\nimport { RenderingStates } from 'types/epi';\r\nimport { ErrorPage404Model } from 'types/pages';\r\n\r\nexport interface ParamTypes {\r\n\tsiteRoute: string;\r\n}\r\n/** Loads data and renders the correct page based on the route. */\r\nconst RouteHandler: React.FC = () => {\r\n\tlet { siteRoute } = useParams();\r\n\tsiteRoute = siteRoute || '/';\r\n\tconst ariaLiveRef = useRef(null);\r\n\tconst emptyFocusDivRef = useRef(null);\r\n\tconst pageRef = useRef(null);\r\n\tconst { action } = useHistory();\r\n\tconst dispatch = useDispatch();\r\n\tconst { error, loading } = useSelector(selectModel);\r\n\tconst pageContent = useSelector(selectContent);\r\n\tconst { renderingState, apiUrl } = useSelector(selectReact);\r\n\tconst [loaderVisible, setLoaderVisible] = useState(false);\r\n\tconst Page = PagesMapper(pageContent);\r\n\tconst errorPageContent = useSelector(selectContent) as ErrorPage404Model;\r\n\r\n\t// Fix siteRoute so we don't request '//'.\r\n\tif (\r\n\t\tapiUrl &&\r\n\t\tsiteRoute &&\r\n\t\tapiUrl.charAt(apiUrl.length - 1) === '/' &&\r\n\t\tsiteRoute.charAt(0) === '/'\r\n\t) {\r\n\t\tsiteRoute = siteRoute.substr(1);\r\n\t}\r\n\r\n\t// Load the page\r\n\tuseEffect(() => {\r\n\t\t// First hydrate rendering we wont be doing any request, becase we already have the data from the SSR.\r\n\t\tif (renderingState !== RenderingStates.ClientSide && pageContent) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tdispatch(fetchPage(apiUrl, siteRoute));\r\n\t\t// eslint-disable-next-line\r\n\t}, [apiUrl, siteRoute, dispatch]);\r\n\r\n\t// Set renderingState to clientside after the first (hydration) render.\r\n\tuseEffect(() => {\r\n\t\tdispatch(updateRenderingState(RenderingStates.ClientSide));\r\n\t\t// eslint-disable-next-line\r\n\t}, []);\r\n\r\n\t// If we have been waiting for the response more than 400ms we display the loader\r\n\tuseEffect(() => {\r\n\t\tlet loaderTimeout: any;\r\n\r\n\t\tif (loading) {\r\n\t\t\tloaderTimeout = setTimeout(() => {\r\n\t\t\t\t// Tell sighted users\r\n\t\t\t\tsetLoaderVisible(true);\r\n\t\t\t\tif (ariaLiveRef.current) {\r\n\t\t\t\t\tariaLiveRef.current.innerHTML = 'Sidan laddar';\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (ariaLiveRef.current) {\r\n\t\t\t\t\t\tariaLiveRef.current.innerHTML = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\t\t\t}, 400);\r\n\t\t} else {\r\n\t\t\tsetLoaderVisible(false);\r\n\t\t\tif (action === 'PUSH') {\r\n\t\t\t\twindow.scrollTo(0, 0);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tif (loaderTimeout) {\r\n\t\t\t\tclearTimeout(loaderTimeout);\r\n\t\t\t}\r\n\t\t};\r\n\t\t// eslint-disable-next-line\r\n\t}, [loading]);\r\n\r\n\t// Page is loaded\r\n\t/*useEffect(() => {\r\n\t\tif (renderingState !== RenderingStates.ClientSide && pageContent) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (pageContent) {\r\n\t\t\tif (ariaLiveRef.current) {\r\n\t\t\t\tariaLiveRef.current.innerHTML = 'Sidan har laddats';\r\n\t\t\t}\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (ariaLiveRef.current) {\r\n\t\t\t\t\tariaLiveRef.current.innerHTML = '';\r\n\t\t\t\t}\r\n\t\t\t}, 100);\r\n\r\n\t\t\tif (emptyFocusDivRef.current) {\r\n\t\t\t\temptyFocusDivRef.current.focus();\r\n\t\t\t\temptyFocusDivRef.current.scrollTo(0, 0);\r\n\t\t\t}\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (pageRef.current) {\r\n\t\t\t\t\tconst firstH1 = pageRef.current.querySelector('h1');\r\n\t\t\t\t\tif (firstH1) {\r\n\t\t\t\t\t\tfirstH1.setAttribute('tabindex', -1);\r\n\t\t\t\t\t\tfirstH1.style.outline = 'none';\r\n\t\t\t\t\t\tfirstH1.focus();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpageRef.current.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t\tpageRef.current?.scrollTo(0, 0);\r\n\t\t}\r\n\t}, [pageContent]);*/\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{loading && loaderVisible && (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\r\n\t\t\t{error && error.indexOf('404') !== -1 && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{pageContent && !error && (\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\nexport { RouteHandler };\r\n","import React from 'react';\r\nimport './tailwind.output.css';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport { RouteHandler } from './routeHandler';\r\n\r\nimport { useTabFocus } from 'hooks';\r\nimport { selectContent } from 'store/modules/model';\r\nimport { ContentTypes } from 'types/pages';\r\n\r\ninterface PropsInterface {\r\n\tRouter: any;\r\n}\r\n\r\nexport const routePatterns = ['/:siteRoute*'];\r\n\r\nconst getLocation = (pageContent: ContentTypes | undefined) => {\r\n\tlet location = '';\r\n\r\n\tif (pageContent?.url) {\r\n\t\tlocation = pageContent.url;\r\n\t} else if (typeof window !== 'undefined') {\r\n\t\tlocation = window.location.pathname;\r\n\t}\r\n\r\n\treturn location;\r\n};\r\n\r\nconst App: React.FC = ({ Router }) => {\r\n\tconst pageContent = useSelector(selectContent);\r\n\tconst location = getLocation(pageContent);\r\n\tuseTabFocus();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{routePatterns.map((routePattern) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default App;\r\n","/**\r\n * useTabFocus\r\n */\r\n\r\nimport { useEffect } from 'react';\r\n\r\nexport const useTabFocus = () => {\r\n\tuseEffect(() => {\r\n\t\tconst onKeyUp = (event: KeyboardEvent) => {\r\n\t\t\tconst el = event.target as Element;\r\n\t\t\tconst keyCode = event.keyCode ? event.keyCode : event.which;\r\n\r\n\t\t\tif (\r\n\t\t\t\t['a', 'button', 'input', 'textarea', 'select'].indexOf(\r\n\t\t\t\t\tel.tagName.toLowerCase()\r\n\t\t\t\t) !== -1 &&\r\n\t\t\t\t!el.hasAttribute('disabled') &&\r\n\t\t\t\tkeyCode === 9\r\n\t\t\t) {\r\n\t\t\t\tel.classList.add('usability--tab-focus');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst onClick = (event: MouseEvent) => {\r\n\t\t\tconst el = event.target as Element;\r\n\r\n\t\t\tif (['input', 'textarea'].indexOf(el.tagName.toLowerCase()) !== -1) {\r\n\t\t\t\tel.classList.add('usability--tab-focus');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst onBlur = (event: FocusEvent) => {\r\n\t\t\tconst el = event.target as Element;\r\n\r\n\t\t\tif (el.classList && el.classList.contains('usability--tab-focus')) {\r\n\t\t\t\tel.classList.remove('usability--tab-focus');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener('keyup', onKeyUp);\r\n\t\tdocument.addEventListener('click', onClick);\r\n\t\tdocument.addEventListener('blur', onBlur, true);\r\n\r\n\t\treturn () => {\r\n\t\t\tdocument.removeEventListener('keyup', onKeyUp);\r\n\t\t\tdocument.removeEventListener('click', onClick);\r\n\t\t\tdocument.removeEventListener('blur', onBlur, true);\r\n\t\t};\r\n\t}, []);\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport initStore from 'store';\r\nimport { initialState as reactInitialState } from 'store/modules/react';\r\nimport { RenderingStates } from 'types/epi';\r\nimport Application from './App';\r\n\r\n// Set default rendermethod and a basic model.\r\n// eslint-disable-next-line\r\nlet renderMethod = ReactDOM.render;\r\nlet model = {\r\n\thead: {},\r\n\tepi: {},\r\n\treact: reactInitialState,\r\n};\r\n\r\n// Replace our basic model if one exitst on the window-object,\r\n// then we also change rendermethod to hydrate.\r\nif (window.__model) {\r\n\t// eslint-disable-next-line\r\n\tlet renderMethod = ReactDOM.hydrate;\r\n\tmodel = window.__model;\r\n\tmodel.react.renderingState = RenderingStates.Hydrate;\r\n}\r\n\r\nlet react = model.react;\r\ndelete model.react;\r\n\r\nconst preloadedState = {\r\n\treact,\r\n\tepi: model.epi,\r\n\tmodel: { model },\r\n};\r\n\r\n// Render the application to the DOM\r\nconst element = document.getElementById(react.containerId);\r\nif (element) {\r\n\trenderMethod(\r\n\t\t\r\n\t\t\t\r\n\t\t,\r\n\t\telement\r\n\t);\r\n}\r\n","/**\r\n * React\r\n */\r\n\r\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { ModelReact, RenderingStates } from 'types/epi';\r\nimport { RootState } from 'store';\r\n\r\nexport const initialState: ModelReact = {\r\n\tcontainerId: 'root',\r\n\tclientOnly: true,\r\n\trenderingState: RenderingStates.ClientSide,\r\n\tsiteBaseUrl: process?.env?.PUBLIC_URL,\r\n\tapiUrl: `${process?.env?.PUBLIC_URL}/api/`,\r\n\tapiEditUrl: '/api/content',\r\n};\r\n\r\nconst slice = createSlice({\r\n\tname: 'react',\r\n\tinitialState,\r\n\treducers: {\r\n\t\tupdateRenderingState: (state, action: PayloadAction) => {\r\n\t\t\tstate.renderingState = action.payload;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport const selectReact = (state: RootState) => state.react;\r\nexport const { updateRenderingState } = slice.actions;\r\n\r\nexport default slice.reducer;\r\n","import { MenuLink, FooterColumnItems, Link, Breadcrumb } from 'types/global';\r\nimport {\r\n\tLegendInfo,\r\n\tMapArea,\r\n\tMapControls,\r\n\tReportedAvalanches,\r\n} from 'types/mapTypes/MapModel';\r\nimport { ContentTypes } from 'types/pages';\r\nimport { DirectionMeter } from 'types/pageTypes/area_page';\r\n\r\n/**\r\n * @fileoverview EPIServer Related Components\r\n */\r\n\r\ndeclare global {\r\n\tinterface Window {\r\n\t\t__model: any;\r\n\t\tepi: any;\r\n\t}\r\n\t// eslint-disable-next-line @typescript-eslint/no-namespace\r\n\tnamespace NodeJS {\r\n\t\tinterface Global {\r\n\t\t\twindow: any;\r\n\t\t\tdocument: any;\r\n\t\t\tStyled: any;\r\n\t\t\tReact: any;\r\n\t\t\tReactDOM: any;\r\n\t\t\tReactDOMServer: any;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport interface EpiEvent {\r\n\tbeta?: {\r\n\t\tisEditable: boolean;\r\n\t\tinEditMode: boolean;\r\n\t\tinPreviewMode: boolean;\r\n\t\tready: boolean;\r\n\t};\r\n}\r\n\r\nexport interface Model {\r\n\thead?: ModelHead;\r\n\tmetadata?: ModelMetadata;\r\n\theader?: ModelHeader;\r\n\tlocalization?: ModelLocalization;\r\n\tbreadcrumbs?: ModelBreadcrumb;\r\n\tmap?: MapModel;\r\n\tcontent?: ContentTypes;\r\n\tfooter?: ModelFooter;\r\n}\r\n\r\ninterface ModelMetadata {\r\n\ttitle?: string | null;\r\n\tkeywords?: string | null;\r\n\tdescription?: string | null;\r\n\ttwitter?: {\r\n\t\tcard?: string | null;\r\n\t\ttitle?: string | null;\r\n\t\tdescription?: string | null;\r\n\t\timage?: string | null;\r\n\t};\r\n\topenGraph?: {\r\n\t\ttitle?: string | null;\r\n\t\tsiteName?: string | null;\r\n\t\ttype?: string | null;\r\n\t\turl?: string | null;\r\n\t\tdescription?: string | null;\r\n\t\timage?: string | null;\r\n\t};\r\n}\r\n\r\ninterface ModelMetadata {\r\n\ttitle?: string | null;\r\n\tkeywords?: string | null;\r\n\tdescription?: string | null;\r\n\ttwitter?: {\r\n\t\tcard?: string | null;\r\n\t\ttitle?: string | null;\r\n\t\tdescription?: string | null;\r\n\t\timage?: string | null;\r\n\t};\r\n\topenGraph?: {\r\n\t\ttitle?: string | null;\r\n\t\tsiteName?: string | null;\r\n\t\ttype?: string | null;\r\n\t\turl?: string | null;\r\n\t\tdescription?: string | null;\r\n\t\timage?: string | null;\r\n\t};\r\n}\r\n\r\nexport interface ModelLocalization {\r\n\tculture: string;\r\n\ttranslations: any;\r\n}\r\n\r\ninterface ModelHead {\r\n\ttitle?: string | null;\r\n\tkeywords?: string | null;\r\n\tdescription?: string | null;\r\n\topenGraphTitle?: string | null;\r\n\topenGraphImageUrl?: string | null;\r\n\topenGraphDescription?: string | null;\r\n\ttwitterTitle?: string | null;\r\n\ttwitterDescription?: string | null;\r\n\ttwitterImageUrl?: string | null;\r\n}\r\n\r\nexport interface ModelHeader {\r\n\tskipToContent: string;\r\n\tlogo: {\r\n\t\tsrc: string;\r\n\t\talt?: string;\r\n\t\tariaLabel?: string;\r\n\t\turl: string;\r\n\t\tsubtitle?: string;\r\n\t};\r\n\tlang: {\r\n\t\titems: Array;\r\n\t};\r\n\tmenu: {\r\n\t\ttype: string;\r\n\t\tcloseText: string;\r\n\t\tmenuItems: Array;\r\n\t};\r\n}\r\n\r\ninterface ModelBreadcrumb {\r\n\tbreadcrumbs: Array;\r\n}\r\n\r\nexport interface MapModel {\r\n\tsectionLabel: string;\r\n\tcenterCoordinates: number[];\r\n\treportedAvalanches: ReportedAvalanches[];\r\n\tzoomLevel: number;\r\n\tmaxZoomLevel: number;\r\n\tminZoomLevel: number;\r\n\ttileUrl: string;\r\n\tcontrols: MapControls;\r\n\tcloseText: string;\r\n\tlegend: LegendInfo;\r\n\tareas: MapArea[];\r\n\tdirections: DirectionMeter;\r\n\tlayers: Array<{\r\n\t\tname: 'SlopeInclination' | 'SlopeAspect' | 'Polygon' | 'ExtraPolygon';\r\n\t\turl: string;\r\n\t\tparams: Array<{ parameter: string; value: string }>;\r\n\t}>;\r\n\tmyPositionMarkerIconUrl: string;\r\n\tareaId?: number;\r\n}\r\n\r\nexport interface ModelFooter {\r\n\tcolumns?: Array<{\r\n\t\tmodelType: 'FooterColumnModel' | string;\r\n\t\theader: string;\r\n\t\titems: Array;\r\n\t}>;\r\n\tlogo?: {\r\n\t\tmodelType: string;\r\n\t\tsrc: string;\r\n\t\talt: string;\r\n\t};\r\n\tlogoText?: string;\r\n\tcopyright?: string;\r\n}\r\n\r\nexport interface ModelReact {\r\n\tcontainerId: string;\r\n\tclientOnly: boolean;\r\n\tsiteBaseUrl: string;\r\n\tapiUrl: string;\r\n\tapiEditUrl: string;\r\n\trenderingState: RenderingStates;\r\n}\r\n\r\nexport enum RenderingStates {\r\n\tServerSide = 1,\r\n\tHydrate,\r\n\tClientSide,\r\n}\r\n"],"sourceRoot":""}