{"version":3,"file":"static/js/963.e9cd51b2.chunk.js","mappings":"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","sources":["platformui/AdjustableLinkBlock/index.js","platformui/ArticleFooter/regionarticlefooter.js","platformui/ArticleFooter/index.js","platformui/ArticleHeader/regionlabel.js","platformui/ArticleHeader/index.js","platformui/Base/Sensors/viewport.js","platformui/Base/Sensors/isInRange.js","platformui/Buttons/LinkButton/index.js","platformui/Hooks/useShare.js","platformui/Buttons/ShareButton/index.js","platformui/Buttons/index.js","platformui/CollapsibleText/index.js","platformui/Contact-card/components/list.js","platformui/Contact-card/contact-alert/index.js","platformui/Contact-card/contact-card-panel/index.js","platformui/Contact-card/contact-header/index.js","platformui/Contact-card/contact-subheading/index.js","platformui/Contact-card/current-info/index.js","platformui/Contact-card/e-services/index.js","platformui/Contact-card/find-us/index.js","platformui/Contact-card/offering/index.js","platformui/Contact-card/toggle-more/index.js","platformui/Contact-card/unit/ownerAndFinancing.js","platformui/Contact-card/unit/index.js","platformui/Contact-card/unit/unit-section.js","platformui/Containers/toggleContainer.js","platformui/Containers/withAnchorNav.js","platformui/Containers/withLazyLoad.js","platformui/Containers/withSensitiveImage.js","platformui/Containers/withSrcSets.js","platformui/Facets/index.js","platformui/FormatDateTime/index.js","platformui/Forms/error.js","platformui/Forms/field.js","platformui/Forms/helpers.js","platformui/Forms/input.js","platformui/Forms/label.js","platformui/Forms/select.js","platformui/Forms/textarea.js","platformui/Hooks/useArrowNavigation.js","platformui/Hooks/useWindowLocation.js","platformui/IDSDescriptionList/index.js","platformui/ImageBlock/index.js","platformui/ImageZoom/index.js","platformui/Image/index.js","platformui/Inputs/custom-select.js","platformui/KeywordHints/index.js","platformui/Localnav/item.js","platformui/Localnav/index.js","platformui/Person/index.js","platformui/PrintIframe/index.js","platformui/PrintSidebar/index.js","platformui/SearchBlock/searchheading.js","platformui/SearchBlock/index.js","platformui/Section/index.js","platformui/Share/index.js","platformui/Shortcuts/index.js","platformui/TabMenu/index.js","platformui/ArticleList/index.js","platformui/Teaser/list-view-toggler.js","platformui/Teaser/index.js","platformui/Theme/index.js","platformui/ToggleChapter/index.js","platformui/Iframe/index.js","platformui/Video/index.js","platformui/AOListBlock/list.js","platformui/AOListBlock/navigation.js","platformui/Base/Sensors/track.js","platformui/AOListBlock/aolist.js","platformui/Chapter/responsive-images.js","platformui/Chapter/view.js","platformui/Chapter/index.js","platformui/Containers/withToggleHeaderOnScroll.js","platformui/Containers/withUpdateProps.js","platformui/Forms/radio.js","platformui/Forms/checkbox.js","platformui/Forms/button.js","platformui/TextBlock/RegionalHighlightTextBlock/index.js","platformui/HighLight/index.js","platformui/Hooks/useMatomoTrackEventOnChange.js","platformui/Intro/index.js","platformui/Hooks/usePagination.js","platformui/MediaGallery/components/content.js","platformui/MediaGallery/components/image.js","platformui/MediaGallery/components/pagination.js","platformui/MediaGallery/components/video.js","platformui/MediaGallery/index.js","platformui/QuizContainerBlock/infoBox.js","platformui/QuizContainerBlock/RadioButton/index.js","platformui/QuizContainerBlock/quizQuestion.js","platformui/QuizContainerBlock/index.js","platformui/SearchEntryFormBlock/entryform-searchfield.js","platformui/SearchEntryFormBlock/index.js","platformui/TabPanel/index.js","platformui/Tabs/index.js","platformui/Typeahead/index.js","platformui/DescriptionList/index.js","platformui/Progressbar/index.js","platformui/Contact-card/components/timelist.js"],"sourcesContent":["import React from 'react';\r\nimport { node, bool, string, shape } from 'prop-types';\r\n\r\nconst AdjustableLinkBlock = (props) => {\r\n  if (!props.Content) return false;\r\n\r\n  const { Heading, Text, LinkText, LinkUrl } = props.Content;\r\n\r\n  return (\r\n    <div className=\"c-navigationpush\">\r\n      {props.useBackgroundImage && (\r\n        <div className=\"c-navigationpush__bg\">\r\n          <div className=\"c-navigationpush__bg__inner\" />\r\n        </div>\r\n      )}\r\n      <div className=\"c-navigationpush__content\">\r\n        {Heading && (\r\n          <h2 className=\"c-navigationpush__content__heading\">{Heading}</h2>\r\n        )}\r\n\r\n        {LinkUrl && (\r\n          <p>\r\n            <a href={LinkUrl}>\r\n              {Text}\r\n              {props.useIconLink && <i className=\"c-navigationpush__icon\" />}\r\n            </a>\r\n          </p>\r\n        )}\r\n        {!LinkUrl && <p>{Text}</p>}\r\n\r\n        {LinkText && (\r\n          <a className=\"c-navigationpush__content__link\" href={LinkUrl}>\r\n            {LinkText}\r\n          </a>\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nAdjustableLinkBlock.propTypes = {\r\n  useBackgroundImage: bool,\r\n  useIconLink: bool,\r\n  Content: shape({\r\n    LinkUrl: string,\r\n    LinkText: node,\r\n    Heading: node,\r\n    Text: node,\r\n  }),\r\n};\r\n\r\nexport default AdjustableLinkBlock;\r\n","import React from 'react';\r\n\r\nconst RegionArticleFooter = (props) => {\r\n  return (\r\n    <div className=\"regional-articlefooter\">\r\n      <h3 className=\"regional-articlefooter__heading\">{props.Heading}</h3>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default RegionArticleFooter;\r\n","import React from 'react';\r\nimport { shape, node, bool, arrayOf, string } from 'prop-types';\r\nimport Person, { propTypes as personPropTypes } from '../Person';\r\nimport classNames from 'classnames';\r\nimport RegionalArticleFooter from './regionarticlefooter';\r\nimport CollapsiblePanel from '../CollapsiblePanel';\r\n\r\nconst FirstColumn = (props) => {\r\n  return (\r\n    <div\r\n      className={classNames({\r\n        'medium-4': props.contentDirection !== 'rows',\r\n        columns: true,\r\n      })}\r\n    >\r\n      {props.children}\r\n    </div>\r\n  );\r\n};\r\n\r\nconst SecondColumn = (props) => {\r\n  return (\r\n    <div\r\n      className={classNames({\r\n        'medium-8': props.contentDirection !== 'rows',\r\n        columns: true,\r\n      })}\r\n    >\r\n      {props.children}\r\n    </div>\r\n  );\r\n};\r\n\r\nconst ArticleFooter = (props) => {\r\n  const {\r\n    ArticleFooter,\r\n    Translations,\r\n    FooterHasCollapsibleRoleGroups,\r\n    isRegional,\r\n    RegionalName,\r\n  } = props;\r\n\r\n  if (!ArticleFooter) return null;\r\n\r\n  const cssClasses = classNames({\r\n    'c-articlefooter': true,\r\n    'c-articlefooter--regional-below': isRegional,\r\n  });\r\n\r\n  const dataPrintSidebarTitle = Translations?.articlefooter || '';\r\n\r\n  return (\r\n    <footer className={cssClasses}>\r\n      <div\r\n        className=\"c-articlefooter__wrapper\"\r\n        data-print-sidebar-title={dataPrintSidebarTitle}\r\n        data-print-sidebar-title-region={RegionalName ?? ''}\r\n      >\r\n        {ArticleFooter.Region && (\r\n          <RegionalArticleFooter Heading={ArticleFooter.Region} />\r\n        )}\r\n        <ArticleFooterReviewDate\r\n          Label={Translations.revisiondate}\r\n          LastReview={ArticleFooter.LastReview}\r\n          contentDirection={props.contentDirection}\r\n        />\r\n        <ArticleFooterPublishDate\r\n          Label={Translations.publishdate}\r\n          PublishDate={ArticleFooter.PublishDate}\r\n          contentDirection={props.contentDirection}\r\n        />\r\n        <ArticleFooterApprovedDate\r\n          Label={Translations.approved}\r\n          ApprovedDate={ArticleFooter.approvedDate}\r\n        />\r\n        <ArticleFooterApprovedBy\r\n          Label={Translations.approvedby}\r\n          isRegional={isRegional}\r\n          ApprovedBy={ArticleFooter.approvedBy || ArticleFooter.Organizations}\r\n        />\r\n\r\n        {ArticleFooter.RoleGroups && (\r\n          <ArticleFooterContent\r\n            ArticleFooter={ArticleFooter}\r\n            FooterHasCollapsibleRoleGroups={FooterHasCollapsibleRoleGroups}\r\n            contentDirection={props.contentDirection}\r\n            Translations={Translations}\r\n          />\r\n        )}\r\n      </div>\r\n      {ArticleFooter.InformationText && (\r\n        <div\r\n          className=\"c-articlefooter__info-text\"\r\n          dangerouslySetInnerHTML={{\r\n            __html: props.ArticleFooter.InformationText,\r\n          }}\r\n        />\r\n      )}\r\n    </footer>\r\n  );\r\n};\r\n\r\nconst ArticleFooterContent = (props) => {\r\n  return (\r\n    props.ArticleFooter.RoleGroups &&\r\n    props.ArticleFooter.RoleGroups.map((item, index) => {\r\n      return (\r\n        <div key={index} className=\"c-articlefooter__content\">\r\n          <div className=\"row\">\r\n            <FirstColumn contentDirection={props.contentDirection}>\r\n              <span className=\"c-articlefooter__key\">{item.Label}: </span>\r\n            </FirstColumn>\r\n\r\n            {props.FooterHasCollapsibleRoleGroups ? (\r\n              <SecondColumn contentDirection={props.contentDirection}>\r\n                <CollapsiblePanel\r\n                  Id=\"rolegroup\"\r\n                  className=\"c-collapsible-panel__workgroup c-collapsible-panel\"\r\n                  DefaultCollapsed={true}\r\n                  Heading={props.Translations?.showworkgroup}\r\n                >\r\n                  <RoleItem key={index} {...item} />\r\n                </CollapsiblePanel>\r\n              </SecondColumn>\r\n            ) : (\r\n              <SecondColumn contentDirection={props.contentDirection}>\r\n                <RoleItem key={index} {...item} />\r\n              </SecondColumn>\r\n            )}\r\n          </div>\r\n        </div>\r\n      );\r\n    })\r\n  );\r\n};\r\n\r\nconst RoleItem = (props) => {\r\n  const items =\r\n    props.Persons &&\r\n    props.Persons.map((person, index) => {\r\n      return <Person key={index} {...person} />;\r\n    });\r\n  return items;\r\n};\r\n\r\nconst ArticleFooterReviewDate = ({ Label, LastReview, contentDirection }) => {\r\n  if (!LastReview) return null;\r\n\r\n  return (\r\n    <div className=\"row c-articlefooter__content\">\r\n      <FirstColumn contentDirection={contentDirection}>\r\n        <span className=\"c-articlefooter__key\">{Label}:</span>\r\n      </FirstColumn>\r\n      <SecondColumn contentDirection={contentDirection}>\r\n        <span className=\"c-articlefooter__value\">{LastReview}</span>\r\n      </SecondColumn>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst ArticleFooterPublishDate = ({ Label, PublishDate, contentDirection }) => {\r\n  if (!PublishDate) return null;\r\n\r\n  return (\r\n    <div className=\"row c-articlefooter__content\">\r\n      <FirstColumn contentDirection={contentDirection}>\r\n        <span className=\"c-articlefooter__key\">{Label}:</span>\r\n      </FirstColumn>\r\n      <SecondColumn contentDirection={contentDirection}>\r\n        <span className=\"c-articlefooter__value\">{PublishDate}</span>\r\n      </SecondColumn>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst ArticleFooterApprovedDate = ({ Label, ApprovedDate }) => {\r\n  if (!ApprovedDate) return null;\r\n\r\n  return (\r\n    <div className=\"row c-articlefooter__content\">\r\n      <FirstColumn>\r\n        <span className=\"c-articlefooter__key\">{Label}:</span>\r\n      </FirstColumn>\r\n      <SecondColumn>\r\n        <span className=\"c-articlefooter__value\">{ApprovedDate}</span>\r\n      </SecondColumn>\r\n    </div>\r\n  );\r\n};\r\n\r\nconst ArticleFooterApprovedBy = ({ Label, ApprovedBy, isRegional }) => {\r\n  if (!ApprovedBy) return null;\r\n  return (\r\n    <div className=\"row c-articlefooter__content\">\r\n      <FirstColumn>\r\n        <span className=\"c-articlefooter__key\">{Label}:</span>\r\n      </FirstColumn>\r\n      <SecondColumn>\r\n        {isRegional ? (\r\n          <span className=\"c-articlefooter__value\">{ApprovedBy}</span>\r\n        ) : (\r\n          ApprovedBy.map(\r\n            (item, i) =>\r\n              item.name && (\r\n                <span className=\"c-articlefooter__value\" key={i}>\r\n                  {item.url ? <a href={item.url}>{item.name}</a> : item.name}\r\n                </span>\r\n              )\r\n          )\r\n        )}\r\n      </SecondColumn>\r\n    </div>\r\n  );\r\n};\r\n\r\nArticleFooter.propTypes = {\r\n  ArticleFooter: shape({\r\n    Region: node,\r\n    PublishDate: node,\r\n    LastReview: node,\r\n    ApprovedDate: node,\r\n    ApprovedBy: node,\r\n    Rolegroups: arrayOf(\r\n      shape({\r\n        Label: node,\r\n        Persons: arrayOf(\r\n          shape({\r\n            ...personPropTypes,\r\n          })\r\n        ),\r\n      })\r\n    ),\r\n  }),\r\n  Translations: shape({\r\n    revisiondate: string,\r\n    publishdate: string,\r\n    approveddate: string,\r\n    approvedby: string,\r\n  }),\r\n  isRegional: bool,\r\n  RegionalName: string,\r\n  HasFooterHeading: bool,\r\n  NationalHeading: string,\r\n  FooterHasCollapsibleRoleGroups: bool,\r\n  contentDirection: string,\r\n};\r\n\r\nexport default ArticleFooter;\r\n","import { bool, node, shape, string } from 'prop-types';\r\nimport React from 'react';\r\nimport Badge from '../IDSBadge';\r\n\r\nconst RegionLabel = ({ useIdsBadge, ...props }) => {\r\n  return useIdsBadge ? (\r\n    <Badge\r\n      type=\"secondary\"\r\n      text={`${props.Content.Translations.regionlabel} ${props.Content.CurrentRegionName}`}\r\n    />\r\n  ) : (\r\n    <span className=\"regionlabel\">\r\n      {props.Content.Translations.regionlabel} {props.Content.CurrentRegionName}\r\n    </span>\r\n  );\r\n};\r\n\r\nRegionLabel.propTypes = {\r\n  useIdsBadge: bool,\r\n  Content: shape({\r\n    Translations: shape({\r\n      regionlabel: string,\r\n    }),\r\n    CurrentRegionName: node,\r\n  }),\r\n};\r\n\r\nexport default RegionLabel;\r\n","import classNames from 'classnames';\r\nimport { arrayOf, bool, node, object, shape, string } from 'prop-types';\r\nimport React from 'react';\r\nimport { useSweLang } from '../Helpers/helpers';\r\nimport Video from '../Video';\r\nimport RegionLabel from './regionlabel';\r\n\r\nconst ArticleTags = (props) => {\r\n  const tags = props.Content.ArticleTags;\r\n  return (\r\n    <div className=\"c-articletags__container\">\r\n      {tags.map((item, key) => {\r\n        return (\r\n          <div className=\"article-tag\" key={key}>\r\n            {item}\r\n          </div>\r\n        );\r\n      })}\r\n    </div>\r\n  );\r\n};\r\n\r\nconst ArticleVideoWrapper = ({ TopMediaVideo, isAboveTitle }) => {\r\n  return (\r\n    <div\r\n      className={`c-articleheader__video-wrapper ${\r\n        isAboveTitle ? 'isAboveTitle' : ''\r\n      }`}\r\n    >\r\n      {TopMediaVideo && <Video {...TopMediaVideo} />}\r\n    </div>\r\n  );\r\n};\r\n\r\nconst ArticleHeader = (props) => {\r\n  const componentClasses = classNames({\r\n    'c-articleheader': true,\r\n    ...props.Modifiers,\r\n    'c-articleheader--has-regionlabel':\r\n      props.Content && props.Content.CurrentRegionName,\r\n    'c-articleheader--has-subject':\r\n      props.Content &&\r\n      props.Content.SubjectHeading &&\r\n      !props.Content.HideSubjectHeading,\r\n  });\r\n\r\n  const showSubject =\r\n    props.Content &&\r\n    props.Content.SubjectHeading &&\r\n    !props.Content.HideSubjectHeading;\r\n\r\n  const dataPrintSidebarTitle = {\r\n    heading: 'Rubrik',\r\n    preamble: 'Inledning',\r\n  };\r\n\r\n  return (\r\n    <header className={componentClasses}>\r\n      {props.isFaqPage && (\r\n        <span className=\"c-articleheader__vignette\">\r\n          {props.Content.Translations.question}\r\n        </span>\r\n      )}\r\n\r\n      <div className=\"c-articleheader__inner-container\">\r\n        {showSubject && props.SubjectAboveHeading && (\r\n          <a\r\n            className=\"c-articleheader__subject\"\r\n            href={\r\n              props.Content.SubjectHeadingLink &&\r\n              props.Content.SubjectHeadingLink\r\n            }\r\n          >\r\n            {props.Content.SubjectHeading}\r\n          </a>\r\n        )}\r\n\r\n        {props.Content?.VideoAboveTitle && props.Content?.TopMediaVideo && (\r\n          <ArticleVideoWrapper\r\n            TopMediaVideo={props.Content.TopMediaVideo}\r\n            isAboveTitle={props.Content.VideoAboveTitle}\r\n          />\r\n        )}\r\n\r\n        {props.Content && props.Content.ArticleTags && (\r\n          <ArticleTags {...props} />\r\n        )}\r\n\r\n        {props.Heading && (\r\n          <h1\r\n            className=\"c-articleheader__heading\"\r\n            data-print-sidebar-title={dataPrintSidebarTitle.heading}\r\n          >\r\n            {props.Heading}\r\n          </h1>\r\n        )}\r\n\r\n        {props.HeadingTranslation && (\r\n          <span\r\n            className=\"c-articleheader__translation\"\r\n            dir=\"ltr\"\r\n            lang={useSweLang(props.Language)}\r\n          >\r\n            {props.HeadingTranslation}\r\n          </span>\r\n        )}\r\n\r\n        {props.Content && props.Content.CurrentRegionName && (\r\n          <RegionLabel {...props} useIdsBadge={props?.Site === '1177'} />\r\n        )}\r\n\r\n        {showSubject && !props.SubjectAboveHeading && (\r\n          <a\r\n            className={classNames({\r\n              'c-articleheader__subject': true,\r\n              'c-articleheader__subject--hidden':\r\n                props.PageTypeName === 'CollectionPage',\r\n            })}\r\n            href={\r\n              props.Content.SubjectHeadingLink &&\r\n              props.Content.SubjectHeadingLink\r\n            }\r\n          >\r\n            {props.Content.SubjectHeading}\r\n          </a>\r\n        )}\r\n\r\n        {!props.Content?.VideoAboveTitle && props.Content?.TopMediaVideo && (\r\n          <ArticleVideoWrapper TopMediaVideo={props.Content.TopMediaVideo} />\r\n        )}\r\n\r\n        {props.Preamble && (\r\n          <p\r\n            className=\"preamble\"\r\n            data-print-sidebar-title={dataPrintSidebarTitle.preamble}\r\n          >\r\n            {props.Preamble}\r\n          </p>\r\n        )}\r\n\r\n        {props.children}\r\n      </div>\r\n    </header>\r\n  );\r\n};\r\n\r\nArticleHeader.propTypes = {\r\n  Preamble: node,\r\n  children: node,\r\n  isFaqPage: bool,\r\n  PageTypeName: string,\r\n  /** Classnames compatible object */\r\n  Modifiers: object,\r\n  Heading: node,\r\n  HeadingTranslation: node,\r\n  Translations: shape({\r\n    question: string,\r\n  }),\r\n  Content: shape({\r\n    ArticleTags: arrayOf(string),\r\n    SubjectHeadingLink: string,\r\n    SubjectHeading: string,\r\n    CurrentRegionName: node,\r\n    HideSubjectHeading: bool,\r\n  }),\r\n  SubjectAboveHeading: bool,\r\n};\r\n\r\nexport default ArticleHeader;\r\n","import React, { useRef, useState, useEffect } from 'react';\r\n\r\nconst Container = (WrappedComponent, offsetTop) => {\r\n  const handles = [];\r\n  const printHandler = [];\r\n  let ticking = false;\r\n  const throttleScroll = () => {\r\n    ticking =\r\n      ticking ||\r\n      requestAnimationFrame(() => {\r\n        ticking = false;\r\n        handles.map((handle) => handle());\r\n      });\r\n  };\r\n\r\n  if (typeof window !== 'undefined') {\r\n    window.addEventListener('scroll', throttleScroll, false);\r\n\r\n    window.addEventListener('resize', throttleScroll, false);\r\n\r\n    const mediaQueryList = window.matchMedia('print');\r\n    mediaQueryList.addListener((mql) => {\r\n      if (mql.matches) {\r\n        printHandler.map((handle) => handle());\r\n      }\r\n    });\r\n  }\r\n  return (props) => {\r\n    const viewport = useRef();\r\n    const [isInViewPort, setIsInViewPort] = useState(false);\r\n    const [isViewed, setIsViewed] = useState(false);\r\n    const [isBrowserTop, setIsBrowserTop] = useState(false);\r\n    const [isBottomBrowserTop, setIsBottomBrowserTop] = useState(null);\r\n    const [isInRange, setIsInRange] = useState(false);\r\n\r\n    const getBoundingClientRect = () => {\r\n      return viewport.current.getBoundingClientRect();\r\n    };\r\n\r\n    const isComponentInViewPort = () => {\r\n      requestAnimationFrame(() => {\r\n        if (!viewport.current) return;\r\n\r\n        const rect = getBoundingClientRect();\r\n        const offset = offsetTop ? offsetTop : 0;\r\n\r\n        if (rect.top - (window.innerHeight + offset) <= 0) {\r\n          if (!isInViewPort) {\r\n            setIsInViewPort(true);\r\n            setIsViewed(true);\r\n          }\r\n        } else {\r\n          isInViewPort && setIsInViewPort(false);\r\n        }\r\n      });\r\n    };\r\n\r\n    const isComponentBrowserTop = () => {\r\n      if (!viewport.current) return;\r\n\r\n      const rect = getBoundingClientRect();\r\n      if (rect.top < 1) {\r\n        !isBrowserTop && setIsBrowserTop(true);\r\n      } else {\r\n        isBrowserTop && setIsBrowserTop(false);\r\n      }\r\n    };\r\n\r\n    const isComponentBottomBrowserTop = () => {\r\n      if (!viewport.current) return;\r\n\r\n      const rect = getBoundingClientRect();\r\n      if (rect.bottom > 0) {\r\n        isBottomBrowserTop === false && setIsBottomBrowserTop(true);\r\n      } else {\r\n        isBottomBrowserTop !== false && setIsBottomBrowserTop(false);\r\n      }\r\n    };\r\n\r\n    const isComponentWithinRange = () => {\r\n      if (!viewport.current) return;\r\n\r\n      const rect = getBoundingClientRect();\r\n      if (rect.top < 1 && rect.bottom > 0) {\r\n        !isInRange && setIsInRange(true);\r\n      } else {\r\n        isInRange && setIsInRange(false);\r\n      }\r\n    };\r\n\r\n    const isPrinting = () => {\r\n      setIsInViewPort(true);\r\n      setIsViewed(true);\r\n    };\r\n\r\n    useEffect(() => {\r\n      isComponentInViewPort();\r\n      setTimeout(() => {\r\n        isComponentInViewPort();\r\n      }, 200);\r\n\r\n      handles.push(isComponentInViewPort);\r\n      handles.push(isComponentBrowserTop);\r\n      handles.push(isComponentBottomBrowserTop);\r\n      handles.push(isComponentWithinRange);\r\n      printHandler.push(isPrinting);\r\n    }, [isInRange]);\r\n\r\n    return (\r\n      <div ref={viewport}>\r\n        <WrappedComponent\r\n          {...props}\r\n          isInViewPort={isInViewPort}\r\n          isViewed={isViewed}\r\n          isBrowserTop={isBrowserTop}\r\n          isBottomBrowserTop={isBottomBrowserTop}\r\n          isInRange={isInRange}\r\n        />\r\n      </div>\r\n    );\r\n  };\r\n};\r\n\r\nexport default Container;\r\n","import React, { useRef, useState, useEffect } from 'react';\r\n\r\nconst isInRange = (WrappedComponent, offset = 1) => {\r\n  const handles = [];\r\n\r\n  const IsInRangeContainer = (props) => {\r\n    const viewport = useRef();\r\n    const [isInRange, setIsInrange] = useState(false);\r\n\r\n    const getBoundingClientRect = () => {\r\n      return viewport.current.getBoundingClientRect();\r\n    };\r\n\r\n    const isComponentWithinRange = () => {\r\n      if (!viewport.current) return;\r\n\r\n      const rect = getBoundingClientRect();\r\n      if (rect.top < offset && rect.bottom > 0) {\r\n        !isInRange && setIsInrange(true);\r\n      } else {\r\n        isInRange && setIsInrange(false);\r\n      }\r\n    };\r\n\r\n    useEffect(() => {\r\n      handles.push(isComponentWithinRange);\r\n    }, [isInRange]);\r\n\r\n    return (\r\n      <div ref={viewport}>\r\n        <WrappedComponent {...props} isInRange={isInRange} offset={offset} />\r\n      </div>\r\n    );\r\n  };\r\n\r\n  let ticking = false;\r\n  const throttleScroll = () => {\r\n    ticking =\r\n      ticking ||\r\n      requestAnimationFrame(() => {\r\n        ticking = false;\r\n        handles.map((handle) => handle());\r\n      });\r\n  };\r\n\r\n  if (typeof window !== 'undefined') {\r\n    window.addEventListener('scroll', throttleScroll, false);\r\n    window.addEventListener('resize', throttleScroll, false);\r\n  }\r\n\r\n  return IsInRangeContainer;\r\n};\r\n\r\nexport default isInRange;","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport useWindowLocationHref from '../../Hooks/useWindowLocation';\r\nconst LinkButton = ({ link, linkText, buttonClass, altLinkText }) => {\r\n  const href = useWindowLocationHref();\r\n  return link ? (\r\n    <div\r\n      data-event-category={href || 'novalue'}\r\n      data-event-action={linkText}\r\n      data-event-name=\"LinkButton\"\r\n      className={buttonClass}\r\n      role=\"button\"\r\n      aria-label={linkText ?? 'Läs mer'}\r\n    >\r\n      <a data-event-include href={link}>\r\n        {linkText ?? altLinkText ?? 'Läs mer'}\r\n      </a>\r\n    </div>\r\n  ) : null;\r\n};\r\n\r\nLinkButton.propTypes = {\r\n  link: PropTypes.string,\r\n  linkText: PropTypes.string,\r\n  buttonClass: PropTypes.string,\r\n};\r\n\r\nexport default LinkButton;\r\n","import { useCallback, useEffect, useState } from 'react';\r\n\r\nconst useShare = () => {\r\n  const [copiedToClipboard, setCopiedToClipboard] = useState(false);\r\n\r\n  useEffect(() => {\r\n    if (copiedToClipboard) {\r\n      const timer = setTimeout(() => {\r\n        setCopiedToClipboard(false);\r\n      }, 4000);\r\n      return () => clearTimeout(timer);\r\n    }\r\n  }, [copiedToClipboard]);\r\n\r\n  const share = useCallback(async ({ title, text, url }) => {\r\n    if (navigator.canShare && navigator.canShare({ title, text, url })) {\r\n      try {\r\n        await navigator.share({ title, text, url });\r\n      } catch (error) {\r\n        console.error('Sharing attempt failed:', error.message);\r\n      }\r\n    } else {\r\n      try {\r\n        await navigator.clipboard.writeText(url || text);\r\n        setCopiedToClipboard(true);\r\n      } catch (error) {\r\n        console.error('Could not copy to clipboard', error.message);\r\n      }\r\n    }\r\n  }, []);\r\n\r\n  return { share, copiedToClipboard };\r\n};\r\n\r\nexport default useShare;\r\n","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport useShare from '../../Hooks/useShare';\r\nimport useWindowLocationHref from '../../Hooks/useWindowLocation';\r\n\r\nconst ShareButton = ({\r\n  description,\r\n  buttonText = 'Dela sidan',\r\n  link,\r\n  requireLink = true,\r\n  title,\r\n  copiedToClipboardMessage,\r\n  trackCategory,\r\n  trackAction,\r\n  trackName,\r\n}) => {\r\n  const href = useWindowLocationHref();\r\n  const { share, copiedToClipboard } = useShare();\r\n\r\n  const handleShare = async () => {\r\n    await share({\r\n      title: title,\r\n      text: description,\r\n      url: link,\r\n    });\r\n  };\r\n\r\n  const textToDisplay =\r\n    copiedToClipboard && copiedToClipboardMessage\r\n      ? copiedToClipboardMessage\r\n      : buttonText;\r\n\r\n  if (requireLink && !link) {\r\n    return null;\r\n  }\r\n\r\n  return (\r\n    <button\r\n      data-event-category={trackCategory || href || 'novalue'}\r\n      data-event-action={trackAction || title}\r\n      data-event-value={link || href || 'novalue'}\r\n      data-event-name={trackName || 'Dela knapp'}\r\n      className=\"c-share-button\"\r\n      onClick={handleShare}\r\n      data-matomo-id=\"share-button\"\r\n    >\r\n      <i className=\"c-share-button__icon\" aria-hidden=\"true\"></i>\r\n      <span data-event-include aria-live=\"polite\">\r\n        {textToDisplay}\r\n      </span>\r\n    </button>\r\n  );\r\n};\r\n\r\nShareButton.propTypes = {\r\n  link: PropTypes.string,\r\n  description: PropTypes.string,\r\n  buttonText: PropTypes.string,\r\n  title: PropTypes.string,\r\n  copiedToClipboardMessage: PropTypes.string,\r\n};\r\n\r\nexport default ShareButton;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport T from 'prop-types';\r\n\r\n/* eslint-disable react/no-unknown-property */\r\n\r\nconst expandableButtonPropTypes = {\r\n  buttonText: T.node,\r\n  onClick: T.func,\r\n  buttonClass: T.string,\r\n  iconClass: T.string,\r\n  textClass: T.string,\r\n  /** Used for aria-collapsed and data-open attributes */\r\n  open: T.bool,\r\n  /** Should match ID of element being opened/closed for aria-controls attribute */\r\n  controlsElementId: T.string,\r\n  buttonId: T.string,\r\n  /* Will spread on <button> element. Only use valid attributes for html button. */\r\n  attr: T.object,\r\n};\r\n\r\nconst ExpandableButton = (props) => {\r\n  const {\r\n    buttonText,\r\n    onClick,\r\n    buttonClass,\r\n    iconClass,\r\n    textClass,\r\n    open,\r\n    controlsElementId,\r\n    buttonId,\r\n    attr,\r\n  } = props;\r\n\r\n  return (\r\n    <button\r\n      type=\"button\"\r\n      className={`${buttonClass} c-expandable-button`}\r\n      matomo-id=\"expandable-button\"\r\n      id={buttonId}\r\n      onClick={onClick}\r\n      aria-controls={controlsElementId}\r\n      aria-expanded={open}\r\n      data-open={open ? 'true' : 'false'}\r\n      {...attr}\r\n    >\r\n      <i\r\n        data-open={open ? 'true' : 'false'}\r\n        matomo-id=\"expandable-button\"\r\n        id={buttonId ? `${buttonId}-i` : 'expandable-button-i'}\r\n        className={classNames({\r\n          [`${iconClass}`]: true,\r\n          [`${iconClass}--is-open`]: open,\r\n        })}\r\n      ></i>\r\n\r\n      <span\r\n        aria-expanded={open}\r\n        matomo-id=\"expandable-button\"\r\n        id={buttonId ? `${buttonId}-span` : 'expandable-button-span'}\r\n        className={textClass}\r\n      >\r\n        {buttonText}\r\n      </span>\r\n    </button>\r\n  );\r\n};\r\n\r\nExpandableButton.defaultProps = {\r\n  buttonClass: '',\r\n  attr: {},\r\n};\r\n\r\nExpandableButton.propTypes = expandableButtonPropTypes;\r\n\r\nexport default ExpandableButton;\r\n","import React, { useRef, useState } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nconst DEFAULT_CLASSNAME = 'c-collapsible-text';\r\n\r\nconst CollapsibleText = (props) => {\r\n  const collapsibleContentInner = useRef();\r\n  const collapsibleContent = useRef();\r\n  const [isExpanded, setIsExpanded] = useState(false);\r\n  const extendsContent =\r\n    collapsibleContentInner.clientHeight > collapsibleContent.clientHeight;\r\n\r\n  const handleClick = () => {\r\n    setIsExpanded(!isExpanded);\r\n  };\r\n\r\n  const componentClass = props.className ? props.className : DEFAULT_CLASSNAME;\r\n  const buttonText = isExpanded\r\n    ? props.buttonReadLessText\r\n    : props.buttonReadMoreText;\r\n  const classes = classNames({\r\n    [`${componentClass}`]: true,\r\n    [`${componentClass}--expanded`]: isExpanded,\r\n    [`${componentClass}--extends-content`]: extendsContent,\r\n    ...props.Modifiers,\r\n  });\r\n  if (props.hideCollapsibleText)\r\n    return <div className={componentClass}>{props.children}</div>;\r\n\r\n  return (\r\n    <div className={classes}>\r\n      {props.heading && (\r\n        <h2 className={`${componentClass}__heading`}>{props.heading}</h2>\r\n      )}\r\n      <div ref={collapsibleContent} className={`${componentClass}__content`}>\r\n        <div ref={collapsibleContentInner}>{props.children}</div>\r\n      </div>\r\n\r\n      <button\r\n        aria-hidden=\"true\"\r\n        className={`${componentClass}__button`}\r\n        onClick={() => handleClick()}\r\n        type=\"button\"\r\n      >\r\n        {props.buttonChildren && props.buttonChildren}\r\n\r\n        <span className={`${componentClass}__button__inner`}>{buttonText}</span>\r\n      </button>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default CollapsibleText;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nconst Listitem = (props) => {\r\n  return (\r\n    <li\r\n      className={classNames({\r\n        'card-link-list__list-item': true,\r\n        'full-width': props.fullWidth,\r\n      })}>\r\n      <a className={`card-link-list__link ${props.matomoTrackingClass ? props.matomoTrackingClass : ''}`} href={props.Url}>\r\n        <span>{props.Text}</span>\r\n      </a>\r\n\r\n      {props.itemChildren && props.itemChildren(props)}\r\n    </li>\r\n  );\r\n};\r\n\r\nconst List = (props) => {\r\n  if (!props.items) return null;\r\n  return (\r\n    <div\r\n      className={classNames({\r\n        'card-link-list': true,\r\n        ...props.modifiers,\r\n      })}\r\n    >\r\n      <ul className=\"card-link-list__list\">\r\n        {props.items.map((item, key) => (\r\n          <Listitem\r\n            {...item}\r\n            itemChildren={props.itemChildren}\r\n            key={key}\r\n            fullWidth={props.fullWidth}\r\n            matomoTrackingClass={props.matomoTrackingClass}\r\n          />\r\n        ))}\r\n        {!props.fullWidth && props.items.length % 2 !== 0 && (\r\n          <li key=\"fill\" className=\"card-link-list__list-item empty\">\r\n            <span tabIndex=\"-1\"></span>\r\n          </li>\r\n        )}\r\n      </ul>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default List;\r\n","import React from 'react';\r\nimport Alert from '../../Alert';\r\nimport { any, arrayOf, string, shape } from 'prop-types';\r\n\r\nconst ContactAlert = (props) => {\r\n  if (!props.TemporaryInformation) return null;\r\n\r\n  const { Comment, FromDate, ToDate } = props.TemporaryInformation;\r\n\r\n  const showComments = () => {\r\n    if (!FromDate && !ToDate) return true;\r\n\r\n    const date = new Date().toISOString();\r\n    if (!FromDate && ToDate > date) return true;\r\n    if (FromDate < date && !ToDate) return true;\r\n    if (FromDate < date && ToDate > date) return true;\r\n\r\n    return false;\r\n  };\r\n  const showAlert = Comment.length > 0 && showComments();\r\n\r\n  if (showAlert) {\r\n    const comments = Comment.map((item, index) => <p key={index}>{item}</p>);\r\n    return (\r\n      <div className=\"contact-alert\">\r\n        <Alert type=\"warning\">\r\n          <div className=\"row\">\r\n            <div className=\"small-12 columns\">\r\n              <div className=\"c-alert--content contact-alert--content\">\r\n                {comments}\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </Alert>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  return null;\r\n};\r\n\r\nContactAlert.propTypes = {\r\n  TemporaryInformation: shape({\r\n    Comment: arrayOf(string),\r\n    FromDate: any,\r\n    ToDate: any,\r\n  }),\r\n};\r\n\r\nexport default ContactAlert;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport ToggleContainer from '../../Containers/toggleContainer';\r\nimport ExpandableButton from '../../Buttons';\r\nimport SemanticHeader from '../../Chapter/semantic-header';\r\n\r\nconst ContactCardPanel = (props) => {\r\n  return (\r\n    <ToggleContainer subheading={props.subheading} open={props.open}>\r\n      {({ open, animation, toggle }) => (\r\n        <div\r\n          className={classNames({\r\n            'contact-card': true,\r\n            'contact-card--open': open,\r\n            subheading: props.subheading,\r\n            'is-last': props.isLast,\r\n            ...props.Modifiers,\r\n          })}\r\n          id={props.id}\r\n        >\r\n          <div className=\"contact-card__inner\">\r\n            <div className=\"contact-card__content\">\r\n              <div className=\"contact-card__button-container\">\r\n                <SemanticHeader\r\n                  className={`contact-card__content__heading ${props.matomoTrackingClass ? props.matomoTrackingClass : ''}`}\r\n                  isH3={props.hasH3}\r\n                  isH4={props.hasH4}\r\n                >\r\n                  <ExpandableButton\r\n                    onClick={toggle}\r\n                    open={open}\r\n                    buttonClass=\"contact-card__button\"\r\n                    iconClass={\r\n                      props.subheading\r\n                        ? 'plus--subheading'\r\n                        : 'chevron--contact-panel'\r\n                    }\r\n                    buttonText={props.contactCardHeading}\r\n                    textClass=\"contact-card__heading\"\r\n                    buttonId={`contact-card-accordion-${props.id}`}\r\n                  />\r\n                </SemanticHeader>\r\n              </div>\r\n\r\n              <div\r\n                className={classNames({\r\n                  'contact-card__content__inner': true,\r\n                  animation: animation,\r\n                })}\r\n              >\r\n                {props.children}\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      )}\r\n    </ToggleContainer>\r\n  );\r\n};\r\n\r\nexport default ContactCardPanel;\r\n","import React, { Fragment } from 'react';\r\nimport { string, number, shape } from 'prop-types';\r\nimport scrollIt from '../../Base/Scroll';\r\nimport classNames from 'classnames';\r\n\r\n// Add a discrete word break character to Ungdomsmottagning.\r\n// Use \"domsmottagning\" (no Ung/ung) to be less case sensetive.\r\nconst formatHeadingHtml = (heading) => ({\r\n  __html: heading.replace('domsmottagning', 'doms&shy;mottagning'),\r\n});\r\n\r\nconst ContactHeader = (Card) => {\r\n  const classes = classNames({\r\n    'contact-header': true,\r\n    'contact-header--no-links': !Card.Address && !Card.Location,\r\n  });\r\n\r\n  function openIndoorRouteDescriptionIfClosed() {\r\n    //if panel is closed, open it\r\n    let findUsPanel = document.getElementById('contact');\r\n    if (findUsPanel !== null) {\r\n      let open = document.querySelector('#contact .c-expandable-button').dataset\r\n        .open;\r\n      if (open === 'false')\r\n        document.querySelector('#contact .c-expandable-button').click();\r\n    }\r\n\r\n    let indoorRouteDescription = document.getElementById(\r\n      'indoor-route-description'\r\n    );\r\n    if (indoorRouteDescription !== null) {\r\n      let open = document.getElementById('indoor-route-description').dataset\r\n        .open;\r\n      if (open === 'false')\r\n        document.getElementById('indoor-route-description').click();\r\n    }\r\n  }\r\n  const showRouteDescriptionLink = Boolean(\r\n    Card.Address ||\r\n      (Card.Location && Card.Location.latitude && Card.Location.longitude) ||\r\n      Card.IndoorRouteDescription ||\r\n      Card.RoadDescription\r\n  );\r\n\r\n  return (\r\n    <header className={classes}>\r\n      <h1\r\n        dangerouslySetInnerHTML={formatHeadingHtml(Card.DisplayName)}\r\n        className=\"contact-header__heading\"\r\n      />\r\n      {Card.LogotypeUrl && (\r\n        <div className=\"contact-header__logo\">\r\n          <img src={Card.LogotypeUrl} alt=\"Mottagningens logotyp\" />\r\n        </div>\r\n      )}\r\n      {Card.Address && (\r\n        <p className=\"contact-header__address\">{Card.Address}</p>\r\n      )}\r\n\r\n      {Card.Location && (\r\n        <Fragment>\r\n          <a\r\n            className=\"contact-header__link contact-header__link--map\"\r\n            href={`https://www.google.se/maps/dir/?api=1&destination=${Card.Location.latitude},${Card.Location.longitude}`}\r\n          >\r\n            <span>Visa på karta</span>\r\n          </a>\r\n        </Fragment>\r\n      )}\r\n\r\n      {showRouteDescriptionLink && (\r\n        <Fragment>\r\n          {/* On click: Scroll down to find us section and open the indoor route description text */}\r\n          <a\r\n            className=\"contact-header__link contact-header__link--path\"\r\n            onClick={(e) => {\r\n              e.preventDefault();\r\n              scrollIt(\r\n                document.getElementById(`contact`),\r\n                300,\r\n                'easeOutQuad',\r\n                openIndoorRouteDescriptionIfClosed\r\n              );\r\n            }}\r\n            href={`#contact`}\r\n          >\r\n            <span>{Card.Translations.roaddescription}</span>\r\n          </a>\r\n        </Fragment>\r\n      )}\r\n    </header>\r\n  );\r\n};\r\n\r\nContactHeader.propTypes = {\r\n  DisplayName: string,\r\n  Address: string,\r\n  Location: shape({\r\n    latitude: number,\r\n    longitude: number,\r\n  }),\r\n  LogotypeUrl: string,\r\n  Translations: shape({\r\n    roaddescription: string,\r\n  }),\r\n};\r\n\r\nexport default ContactHeader;\r\n","import React from 'react';\r\n\r\nconst SubHeading = (props) => {\r\n  return (\r\n    <div className=\"contact-subheading\">\r\n      <h3>{props.Heading}</h3>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default SubHeading;\r\n","import React from 'react';\r\nimport { shape, string, arrayOf } from 'prop-types';\r\n\r\nimport ContactCardPanel from '../contact-card-panel';\r\n\r\nconst CurrentInfo = (props) => {\r\n  const matomoTrackingClass = 'aktuellt';\r\n  return props.Items.map((item, index) => (\r\n    <div className=\"current-info\" key={index}>\r\n      <ContactCardPanel\r\n        subheading={true}\r\n        hasH3={true}\r\n        contactCardHeading={item.Title}\r\n        Modifiers={{ 'child-overflow-visible': true }}\r\n        isLast={index === props.Items.length - 1}\r\n      >\r\n        {item.PublishFrom && (\r\n          <span className=\"current-info__publishdate\">\r\n            {props.Translations.published}\r\n            {item.PublishFrom}\r\n          </span>\r\n        )}\r\n\r\n        {item.Text && (\r\n          <div\r\n            className=\"current-info__publishdate__content\"\r\n            dangerouslySetInnerHTML={{ __html: item.Text }}\r\n          />\r\n        )}\r\n        {item.Link && (\r\n          <div className={`${matomoTrackingClass}`}>\r\n            <a href={item.Link.Url}>{item.Link.Text}</a>\r\n          </div>\r\n        )}\r\n      </ContactCardPanel>\r\n    </div>\r\n  ));\r\n};\r\n\r\nCurrentInfo.propTypes = {\r\n  /** (BE) */\r\n  Translations: shape({\r\n    showmoretext: string,\r\n    showlesstext: string,\r\n  }),\r\n  /** (BE) */\r\n  Items: arrayOf(\r\n    shape({\r\n      PublishFrom: string,\r\n      Text: string,\r\n      Link: shape({\r\n        Text: string,\r\n        Url: string,\r\n      })\r\n    })\r\n  ),\r\n};\r\n\r\nexport default CurrentInfo;\r\n","import React, { useRef, Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport Modal from '../../Modal';\r\nimport { OpenModalButton, ModalPanel, CloseModalButton } from '../../Modal';\r\nimport ToggleMore from '../toggle-more';\r\nimport List from '../components/list';\r\n\r\nconst EServices = (props) => {\r\n  const expandableList = useRef();\r\n  const matomoTrackingClass = 'e-tjänster';\r\n\r\n  const { EServices, Translations } = props;\r\n  if (!EServices) return null;\r\n\r\n  const setFocus = (id) => {\r\n    const activeBtn = document.querySelector(`[data-buttonid='open${id}']`);\r\n    if (activeBtn) {\r\n      const content = activeBtn?.nextSibling?.getElementsByClassName(\r\n        'e-services__modal-panel__content'\r\n      );\r\n      if (content) {\r\n        content[0].focus();\r\n      }\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div ref={expandableList}>\r\n      <ToggleMore allVisibleItems={EServices.length}>\r\n        {({ visible, toggleMore }) => (\r\n          <div className=\"e-services\">\r\n            <Modal>\r\n              <List\r\n                items={EServices}\r\n                matomoTrackingClass={matomoTrackingClass}\r\n                modifiers={{\r\n                  'card-link-list--is-collapsible': true,\r\n                  'card-link-list--is-open': visible,\r\n                }}\r\n                itemChildren={(child) => {\r\n                  const modal = child.Description && (\r\n                    <div\r\n                      key={child.ExternalId}\r\n                      className=\"e-services__modal-container\"\r\n                    >\r\n                      <OpenModalButton\r\n                        open={child.ExternalId}\r\n                        id={child.ExternalId}\r\n                        className={'e-services__modal-open'}\r\n                        ariaLabel={`${Translations.moreinformationabout} ${child.Text}`}\r\n                        clickCallback={() => {\r\n                          setTimeout(() => {\r\n                            setFocus(child.ExternalId);\r\n                          }, 0);\r\n                        }}\r\n                      >\r\n                        <span />\r\n                      </OpenModalButton>\r\n                      <ModalPanel whenActive={child.ExternalId}>\r\n                        <div\r\n                          className={classNames({\r\n                            'e-services__modal-panel': true,\r\n                            'e-services__modal-panel--small':\r\n                              !child.Description,\r\n                          })}\r\n                        >\r\n                          <CloseModalButton\r\n                            id={`${child.ExternalId}--close`}\r\n                            className={'e-services__modal-close'}\r\n                          >\r\n                            <span className=\"show-for-sr\">\r\n                              {Translations.close}\r\n                            </span>\r\n                          </CloseModalButton>\r\n                          <div\r\n                            className=\"e-services__modal-panel__content\"\r\n                            tabIndex=\"0\"\r\n                            role=\"group\"\r\n                            aria-labelledby={child.Text}\r\n                          >\r\n                            <Fragment>\r\n                              <span className=\"e-services__modal-panel__conditions\">\r\n                                {child.Heading}\r\n                              </span>\r\n                              <h4 id={child.Text}>{child.Text}</h4>\r\n                              <div\r\n                                className=\"e-services__modal-panel__description\"\r\n                                dangerouslySetInnerHTML={{\r\n                                  __html: child.Description,\r\n                                }}\r\n                              />\r\n                            </Fragment>\r\n                          </div>\r\n                        </div>\r\n                      </ModalPanel>\r\n                    </div>\r\n                  );\r\n\r\n                  return [\r\n                    modal,\r\n                    <span key={`tab${child.ExternalId}`} tabIndex=\"-1\" />,\r\n                  ];\r\n                }}\r\n              />\r\n            </Modal>\r\n\r\n            <div\r\n              className={classNames({\r\n                'e-services__togglebtn-container': true,\r\n                'e-services__togglebtn-container--is-gt-4':\r\n                  EServices.length > 4,\r\n                'e-services__togglebtn-container--is-gt-10':\r\n                  EServices.length > 10,\r\n              })}\r\n            >\r\n              <button\r\n                className=\"e-services__toggle-button\"\r\n                type=\"button\"\r\n                onClick={() => toggleMore(expandableList.current)}\r\n              >\r\n                <i\r\n                  className={classNames({\r\n                    'e-services__toggle-icon': true,\r\n                    'e-services__toggle-icon--is-open': visible,\r\n                  })}\r\n                />\r\n                <span>\r\n                  {visible\r\n                    ? `${Translations.showless}`\r\n                    : `${Translations.showmore}`}\r\n                </span>\r\n              </button>\r\n            </div>\r\n          </div>\r\n        )}\r\n      </ToggleMore>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default EServices;\r\n","import React, { Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport ToggleContainer from '../../Containers/toggleContainer';\r\nimport { isSmallViewport } from '../../Hooks/useMedia';\r\nimport ExpandableButton from '../../Buttons';\r\n\r\nconst Label = (props) => {\r\n  if (!props.data) return null;\r\n\r\n  return <dt>{props.label}</dt>;\r\n};\r\n\r\nconst Value = (props) => {\r\n  if (!props.data) return null;\r\n\r\n  return <dd>{props.data}</dd>;\r\n};\r\n\r\nconst ValueLink = (props) => {\r\n  if (!props.data) return null;\r\n  const matomoTrackingClass = 'hitta-oss';\r\n  return (\r\n    <dd>\r\n      <a className={`find-us__webpage ${matomoTrackingClass}`} href={props.data}>\r\n        <span>{props.data}</span>\r\n      </a>\r\n    </dd>\r\n  );\r\n};\r\n\r\nconst AccessibilityUrl = (props) => {\r\n  if (!props.url) return null;\r\n  const matomoTrackingClass = 'accessibilityurl';\r\n  return (\r\n    <dd>\r\n      <a className={`${matomoTrackingClass}`} href={props.url}>\r\n        <span>{props.text}</span>\r\n      </a>\r\n    </dd>\r\n  );\r\n};\r\n\r\nconst FindUs = (props) => {\r\n  const Card = props;\r\n  const isSmall = isSmallViewport();\r\n  \r\n  return (\r\n    <div className=\"find-us\">\r\n      <div className=\"find-us__inner\">\r\n        <div className={props.wrapperClasses}>\r\n          {Card.Location && Card.Location.latitude && Card.Location.longitude && (\r\n            <div className={props.mapGrid}>\r\n              <div className=\"find-us__map-wrapper\">\r\n                <div className=\"find-us__map-planner\">\r\n                  <a\r\n                    className=\"find-us__map-planner__link\"\r\n                    href={`https://www.google.se/maps/dir/?api=1&destination=${Card.Location.latitude},${Card.Location.longitude}`}\r\n                  >\r\n                    <span>{Card.Translations.biggermaptravelplanner}</span>\r\n                  </a>\r\n                </div>\r\n\r\n                {Card.StaticMapUrl && (\r\n                  <img\r\n                    className=\"find-us__map\"\r\n                    src={Card.StaticMapUrl}\r\n                    alt=\"\"\r\n                  />\r\n                )}\r\n              </div>\r\n            </div>\r\n          )}\r\n          <div className={props.addressGrid}>\r\n            <dl className=\"find-us__address\">\r\n              {Card.Address && Card.Translations.visitoraddress && (\r\n                <Fragment>\r\n                  <Label\r\n                    data={Card.Address}\r\n                    label={Card.Translations.visitoraddress}\r\n                  />\r\n                  <Value data={Card.Address} />\r\n                </Fragment>\r\n              )}\r\n\r\n              {Card.County && Card.Translations.county && (\r\n                <Fragment>\r\n                  <Label data={Card.County} label={Card.Translations.county} />\r\n                  <Value\r\n                    data={`${Card.County}${\r\n                      Card.Municipality ? ', ' + Card.Municipality : ''\r\n                    }`}\r\n                  />\r\n                </Fragment>\r\n              )}\r\n\r\n              {Card.PostalAddress && Card.Translations.postaladdress && (\r\n                <Fragment>\r\n                  <Label\r\n                    data={Card.PostalAddress}\r\n                    label={Card.Translations.postaladdress}\r\n                  />\r\n                  <Value data={Card.PostalAddress} />\r\n                </Fragment>\r\n              )}\r\n\r\n              {Card.WebsiteUrl && Card.Translations.websiteurl && (\r\n                <Fragment>\r\n                  <Label\r\n                    data={Card.WebsiteUrl}\r\n                    label={Card.Translations.websiteurl}\r\n                  />\r\n                  <ValueLink data={Card.WebsiteUrl} />\r\n                </Fragment>\r\n              )}\r\n\r\n              {Card.AccessibilityUrl && Card.Translations.accessibilityurl && (\r\n                <Fragment>\r\n                  <Label\r\n                    data={Card.AccessibilityUrl}\r\n                    label={Card.Translations.accessibilityurl}\r\n                  />\r\n                  <AccessibilityUrl url={Card.AccessibilityUrl} text={Card.AccessibilityUrlText} />\r\n                </Fragment>\r\n              )}\r\n            </dl>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div>\r\n        <ToggleContainer open={isSmall ? true : undefined}>\r\n          {({ open, toggle }) => (\r\n            <div\r\n              className={classNames({\r\n                'extended-info': true,\r\n                'extended-info--is-open': open,\r\n              })}\r\n            >\r\n              {!isSmall &&\r\n                (Card.IndoorRouteDescription || Card.RoadDescription) && (\r\n                  <h3>\r\n                    <ExpandableButton\r\n                      onClick={toggle}\r\n                      open={open}\r\n                      buttonClass=\"find-us__toggle-button\"\r\n                      iconClass=\"plus--extended-info\"\r\n                      buttonText={\r\n                        open\r\n                          ? Card.Translations.hideroutedescription\r\n                          : Card.Translations.showroutedescription\r\n                      }\r\n                      buttonId=\"indoor-route-description\"\r\n                      textClass=\"find-us__toggle-button__text\"\r\n                    />\r\n                  </h3>\r\n                )}\r\n              <div\r\n                className={classNames({\r\n                  'extended-info__content': true,\r\n                  visible: open,\r\n                })}\r\n              >\r\n                {(Card.IndoorRouteDescription || Card.RoadDescription) && (\r\n                  <div>\r\n                    <h3 className=\"extended-info__heading\">\r\n                      {Card.Translations.roaddescription}\r\n                    </h3>\r\n                    {Card.RoadDescription && (\r\n                      <div className=\"outdoor-description\">\r\n                        <h4>{Card.Translations.outdoorroutedescription}</h4>\r\n                        {Card.RoadDescription.map((description, index) => (\r\n                          <p key={index}>{description}</p>\r\n                        ))}\r\n                      </div>\r\n                    )}\r\n                    {Card.IndoorRouteDescription && (\r\n                      <div className=\"indoor-description\">\r\n                        <h4>{Card.Translations.indoorroutedescription}</h4>\r\n                        {Card.IndoorRouteDescription.map(\r\n                          (description, index) => (\r\n                            <p key={index}>{description}</p>\r\n                          )\r\n                        )}\r\n                      </div>\r\n                    )}\r\n                  </div>\r\n                )}\r\n              </div>\r\n            </div>\r\n          )}\r\n        </ToggleContainer>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nFindUs.defaultProps = {\r\n  wrapperClasses: 'row',\r\n  mapGrid: 'columns large-6 large-push-6',\r\n  addressGrid: 'columns large-6',\r\n};\r\n\r\nexport default FindUs;\r\n","import React from 'react';\r\nimport ContactCardPanel from '../contact-card-panel';\r\n\r\nimport Linklist from '../../Linklist';\r\n\r\nconst Offering = (props) => (\r\n  <div className=\"offering\">\r\n    <div className=\"offering__general-text\">\r\n      {props.GeneralText && (\r\n        <div dangerouslySetInnerHTML={{ __html: props.GeneralText }} />\r\n      )}\r\n      {props.GeneralFiles && <Linklist Links={props.GeneralFiles} />}\r\n    </div>\r\n    <ul className=\"offering__list\">\r\n      {props.Offers &&\r\n        props.Offers?.map((offer, index) => (\r\n          <li key={`${index}--${offer.Title}`}>\r\n            <ContactCardPanel\r\n              subheading={true}\r\n              hasH3={true}\r\n              contactCardHeading={offer.Title}\r\n              isLast={index === props.Offers.length - 1}\r\n            >\r\n              <div dangerouslySetInnerHTML={{ __html: offer.Text }} />\r\n              {offer.Files && <Linklist Links={offer.Files} />}\r\n            </ContactCardPanel>\r\n          </li>\r\n        ))}\r\n    </ul>\r\n  </div>\r\n);\r\n\r\nexport default Offering;\r\n","import { useState } from 'react';\r\n\r\nexport default function ToggleMore(props) {\r\n  const [visible, setVisible] = useState(false);\r\n\r\n  const toggleMore = (list) => {\r\n    //Handle focus on toggle\r\n    if (!visible) {\r\n      // IE11 is not supporting spreaded arrays [...list] and Array.from(), instead of polyfill\r\n      // create a NodeList\r\n      const visElements = list.querySelectorAll('li');\r\n      // create array from NodeList\r\n      const visElementsArray = Array.prototype.slice.call(visElements);\r\n      // filter array\r\n      visElementsArray.filter(\r\n        (el) => window.getComputedStyle(el).display !== 'none'\r\n      );\r\n      const lastItem = visElementsArray && visElementsArray.pop();\r\n      const span = lastItem && lastItem.querySelector('span[tabindex]');\r\n      span.focus();\r\n    }\r\n\r\n    setVisible(!visible);\r\n  };\r\n\r\n  const { children } = props;\r\n\r\n  return children({\r\n    visible: visible,\r\n    toggleMore: toggleMore,\r\n  });\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst OwnerAndFinancing = (props) => { \r\n    return <div className=\"ownerAndFinancing\">\r\n        {props.OwnerAndFinancing.OwnerType && <div className=\"ownerAndFinancing__item\">\r\n            <p className='ownerAndFinancing__item__text'>\r\n            <span className='ownerAndFinancing__item__text__header'>{props.Translations.ownertype}:</span> {props.OwnerAndFinancing.OwnerType}\r\n            </p>\r\n        </div>}\r\n        {props.OwnerAndFinancing.FinancingText && <div className=\"ownerAndFinancing__item\">\r\n            <p className='ownerAndFinancing__item__text'>\r\n                {props.OwnerAndFinancing.FinancingText}\r\n            </p>\r\n        </div>}\r\n        {props.OwnerAndFinancing.PriceLinks && (\r\n            <div className=\"ownerAndFinancing__item\">\r\n                <div className=\"ownerAndFinancing__item__pricelinks\">\r\n                    {props.OwnerAndFinancing.PriceLinks.map((link, index) =>\r\n                        <a key={index} href={link.Url}>{link.Text}</a>\r\n                    )} \r\n                </div>\r\n            </div>\r\n        )}\r\n    </div>;\r\n}\r\n\r\nconst {string, shape, arrayOf } = PropTypes;\r\n\r\nOwnerAndFinancing.propTypes = {\r\n    OwnerAndFinancing: shape({\r\n        FinancingText: string,\r\n        OwnerType: string,\r\n        PriceLinks: arrayOf(shape({\r\n            Text: string,\r\n            Url: string\r\n        }))\r\n    }),\r\n    Translations: shape({\r\n        ownertype: string,\r\n    })\r\n};\r\n\r\nexport default OwnerAndFinancing;","import React from 'react';\r\nimport AboutUsSection from './unit-section';\r\nimport OwnerAndFinancing from './ownerAndFinancing';\r\nimport ContactCardPanel from '../contact-card-panel';\r\nimport Linklist from '../../Linklist';\r\n\r\nconst Unit = (props) => {\r\n  const matomoTrackingClass = 'om-oss';\r\n  return (\r\n    <div className=\"unit\">\r\n      {props.Description && (\r\n        <AboutUsSection\r\n          Content={props.Description}\r\n          PhotoUrl={props.PhotoUrl}\r\n          PhotoAlt={props.PhotoAltText}\r\n          FullWidth={props.FullWidth}\r\n        />\r\n      )}\r\n      {props.OwnerAndFinancing && <AboutUsSection>\r\n        <OwnerAndFinancing {...props} />\r\n      </AboutUsSection>}\r\n      {(props.Offers || props.GeneralText || props.GeneralFiles) && (\r\n        <ContactCardPanel\r\n          subheading={true}\r\n          hasH3={true}\r\n          contactCardHeading=\"Det här kan du få hjälp med\"\r\n          Modifiers={{ 'unit__contact-card': true }}\r\n        >\r\n          {props.GeneralText && (\r\n            <div\r\n              className=\"offering__general-text\"\r\n              dangerouslySetInnerHTML={{ __html: props.GeneralText }}\r\n            />\r\n          )}\r\n          {props.GeneralFiles && <Linklist Links={props.GeneralFiles} />}\r\n          {props.Offers && (\r\n            <ul className=\"offering__list\">\r\n              {props.Offers?.map((offer, index) => (\r\n                <li key={`${index}--${offer.Title}`}>\r\n                  <ContactCardPanel\r\n                    subheading={true}\r\n                    hasH4={true}\r\n                    contactCardHeading={offer.Title}\r\n                    Modifiers={{ 'contact-card--sublevel': true }}\r\n                    matomoTrackingClass={matomoTrackingClass}\r\n                  >\r\n                    <div dangerouslySetInnerHTML={{ __html: offer.Text }} />\r\n                    {offer.Files && <Linklist Links={offer.Files} />}\r\n                  </ContactCardPanel>\r\n                </li>\r\n              ))}\r\n            </ul>\r\n          )}\r\n        </ContactCardPanel>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\nexport default Unit;\r\n","import React from 'react';\r\nimport SubHeading from '../contact-subheading';\r\nimport classNames from 'classnames';\r\nimport Image from '../../Image';\r\n\r\nconst AboutUsSection = (props) => {\r\n  const heading =\r\n    props.Heading && props.SubSection ? (\r\n      <h4>{props.Heading}</h4>\r\n    ) : props.Heading ? (\r\n      <SubHeading {...props} />\r\n    ) : null;\r\n\r\n  return (\r\n    <div\r\n      className={classNames({\r\n        unit__section: true,\r\n        subsection: props.SubSection,\r\n      })}\r\n    >\r\n      {heading}\r\n      <div className=\"row\">\r\n        <div\r\n          className={classNames({\r\n            'large-9': !props.SubSection && !props.FullWidth,\r\n            'large-12': props.FullWidth,\r\n            columns: true,\r\n          })}\r\n        >\r\n          <div className=\"unit__section__content\">\r\n            {props.PhotoUrl && (\r\n              <div className=\"unit__section__img\">\r\n                <Image ImageUrl={props.PhotoUrl} Alt={props.PhotoAlt} />\r\n              </div>\r\n            )}\r\n            {props.Content &&\r\n              props.Content.map((item, index) =>\r\n                item.match(/^\\s*$/) !== null ? (\r\n                  <br key={index} />\r\n                ) : (\r\n                  <p key={index} dangerouslySetInnerHTML={{ __html: item }}></p>\r\n                )\r\n              )}\r\n            {props.children}\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default AboutUsSection;\r\n","import { useState } from 'react';\r\n\r\nconst ToggleContainer = (props) => {\r\n  const [open, setOpen] = useState(props.open);\r\n  const [animation, setAnimation] = useState(props.open);\r\n\r\n  const toggleHandler = () => {\r\n    setOpen(!open);\r\n\r\n    animation\r\n      ? setAnimation(!animation)\r\n      : setTimeout(() => setAnimation(!animation), 100);\r\n  };\r\n\r\n  const { children } = props;\r\n\r\n  return children({\r\n    open: open,\r\n    toggle: toggleHandler,\r\n    animation: animation,\r\n  });\r\n};\r\n\r\nexport default ToggleContainer;\r\n","import React, { useState } from 'react';\r\n\r\nexport default (WrappedComponent) => {\r\n  return (props) => {\r\n    const [itemId, setItemId] = useState(null);\r\n\r\n    const currentActiveMenuItem = (id) => {\r\n      setItemId(id);\r\n    };\r\n\r\n    return (\r\n      <WrappedComponent\r\n        {...props}\r\n        currentActiveId={itemId}\r\n        currentActiveMenuItem={(id) => currentActiveMenuItem(id)}\r\n      />\r\n    );\r\n  };\r\n};\r\n\r\nexport function equalSectionIdsOnPageLoad(id) {\r\n  if (typeof window !== 'undefined') {\r\n    return window.location.hash === '#' + id;\r\n  }\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Viewport } from '../Base/Sensors';\r\n\r\nconst withLazyLoad = (WrappedComponent) => {\r\n  const LazyLoad = (props) => {\r\n    const { CurrentPageProps, ImageUrl, isViewed } = props;\r\n    const { IsEditMode } = CurrentPageProps;\r\n\r\n    const [isLazyLoaded, setIsLazyLoaded] = useState(IsEditMode);\r\n    const [currentSrc, setCurrentSrc] = useState(IsEditMode ? ImageUrl : null);\r\n\r\n    const imgIsTouched = () => ImageUrl?.indexOf('?') > 0;\r\n\r\n    const handleOnLoad = (e) => {\r\n      const img = e.currentTarget;\r\n\r\n      if (isViewed) {\r\n        setIsLazyLoaded(true);\r\n        setCurrentSrc(\r\n          typeof img?.currentSrc !== 'undefined' ? img?.currentSrc : ImageUrl\r\n        );\r\n      }\r\n    };\r\n\r\n    const paramOrQuery = imgIsTouched() ? '&' : '?';\r\n    const presetLowResUrl = `${ImageUrl}${paramOrQuery}preset=low-res`;\r\n    const imageUrl = props.isViewed || IsEditMode ? ImageUrl : presetLowResUrl;\r\n    return (\r\n      <WrappedComponent\r\n        isLazyLoad={!IsEditMode}\r\n        handleOnLoad={handleOnLoad}\r\n        LazyLoadImageUrl={imageUrl}\r\n        {...props}\r\n        {...{ isLazyLoaded, currentSrc }}\r\n      />\r\n    );\r\n  };\r\n\r\n  //Trigger load img with offset 200px\r\n  return Viewport(LazyLoad, 200);\r\n};\r\n\r\nexport default withLazyLoad;\r\n","import React, { useState, useContext } from 'react';\r\nimport * as Cookies from '../Base/Cookies';\r\nimport { CookieContext } from '../Context/cookies';\r\n\r\nconst COOKIE_NAME = 'showSensitiveImages';\r\nexport default (WrappedComponent) => {\r\n  const SensitiveImage = (props) => {\r\n    const [isLoading, setIsLoading] = useState(false);\r\n\r\n    const handleShowSensitiveImages = (cookieContext) => {\r\n      if (cookieContext.isAllowed('ShowSensitiveImagesCookie')) {\r\n        Cookies.eraseCookie(COOKIE_NAME);\r\n        Cookies.createCookie(COOKIE_NAME, 'true');\r\n      }\r\n\r\n      setIsLoading(true);\r\n\r\n      setTimeout(() => {\r\n        location.reload();\r\n      }, 1200);\r\n    };\r\n\r\n    const cookieContext = useContext(CookieContext);\r\n\r\n    const cookieData = props.CurrentPageProps.cookies;\r\n    const hideSensitiveImage =\r\n      Cookies.parseCookieData(COOKIE_NAME, cookieData) === 'false' &&\r\n      props.IsSensitiveInContext &&\r\n      props.CurrentPageProps.IsEditMode === false;\r\n\r\n    return (\r\n      <WrappedComponent\r\n        {...props}\r\n        hideSensitiveImage={hideSensitiveImage}\r\n        handleShowSensitiveImages={() =>\r\n          handleShowSensitiveImages(cookieContext)\r\n        }\r\n        showSensitiveImageIsLoading={isLoading}\r\n      />\r\n    );\r\n  };\r\n\r\n  return SensitiveImage;\r\n};\r\n","import React from 'react';\r\n\r\n//TODO: Get this from config object\r\nconst PRESET_300 = {\r\n  name: 'preset_300',\r\n  width: '300w',\r\n};\r\nconst PRESET_400 = {\r\n  name: 'preset_400',\r\n  width: '400w',\r\n};\r\nconst PRESET_500 = {\r\n  name: 'preset_500',\r\n  width: '500w',\r\n};\r\nconst PRESET_600 = {\r\n  name: 'preset_600',\r\n  width: '600w',\r\n};\r\nconst PRESET_700 = {\r\n  name: 'preset_700',\r\n  width: '700w',\r\n};\r\nconst PRESET_800 = {\r\n  name: 'preset_800',\r\n  width: '800w',\r\n};\r\nconst PRESET_1000 = {\r\n  name: 'preset_1000',\r\n  width: '1000w',\r\n};\r\nconst PRESET_1200 = {\r\n  name: 'preset_1200',\r\n  width: '1200w',\r\n};\r\nconst PRESET_1500 = {\r\n  name: 'preset_1500',\r\n  width: '1500w',\r\n};\r\nconst PRESET_1800 = {\r\n  name: 'preset_1800',\r\n  width: '1800w',\r\n};\r\nconst PRESET_2000 = {\r\n  name: 'preset_2000',\r\n  width: '2000w',\r\n};\r\nconst PRESET_2200 = {\r\n  name: 'preset_2200',\r\n  width: '2200w',\r\n};\r\nconst PRESET_2500 = {\r\n  name: 'preset_2500',\r\n  width: '2500w',\r\n};\r\n\r\nexport default (WrappedComponent) => {\r\n  const SrcSets = (props) => {\r\n    const imgIsTouched = () => {\r\n      return props.ImageUrl && props.ImageUrl.indexOf('?') > 0;\r\n    };\r\n\r\n    const defaultPreset = () => {\r\n      if (!props.DefaultPreset) return props.ImageUrl;\r\n      const paramOrQuery = imgIsTouched() ? '&' : '?';\r\n      return `${props.ImageUrl}${paramOrQuery}preset=${props.DefaultPreset.name}`;\r\n    };\r\n\r\n    const paramOrQuery = imgIsTouched() ? '&' : '?';\r\n\r\n    const srcSets =\r\n      props.isViewed !== false\r\n        ? `${props.ImageUrl}${paramOrQuery}preset=${PRESET_300.name} ${PRESET_300.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_400.name} ${PRESET_400.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_500.name} ${PRESET_500.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_600.name} ${PRESET_600.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_700.name} ${PRESET_700.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_800.name} ${PRESET_800.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_1000.name} ${PRESET_1000.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_1200.name} ${PRESET_1200.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_1500.name} ${PRESET_1500.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_1800.name} ${PRESET_1800.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_2000.name} ${PRESET_2000.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_2200.name} ${PRESET_2200.width},\r\n       ${props.ImageUrl}${paramOrQuery}preset=${PRESET_2500.name} ${PRESET_2500.width}`\r\n        : null;\r\n\r\n    return (\r\n      <WrappedComponent\r\n        {...props}\r\n        isSrcSets={true}\r\n        SrcSets={{\r\n          srcSet: srcSets,\r\n        }}\r\n        ImageUrl={defaultPreset()}\r\n      />\r\n    );\r\n  };\r\n\r\n  return SrcSets;\r\n};\r\n","import classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport qs from 'qs';\r\nimport React from 'react';\r\n\r\nconst FacetItem = (props) => {\r\n  const query = {\r\n    ...props.queryString,\r\n  };\r\n\r\n  //Remove page param\r\n  if (query.p) delete query.p;\r\n  if (query.site) delete query.site;\r\n\r\n  let isSelected = false;\r\n\r\n  if (typeof query[props.Name] === 'string') {\r\n    isSelected = query[props.Name] === props.Id.toString();\r\n  }\r\n\r\n  //Selects the \"show all results\" facet\r\n  if (typeof query[props.Name] === 'undefined' && query.q?.length > 0) {\r\n    isSelected = 'all' === props.Id.toString();\r\n  }\r\n\r\n  if (typeof query[props.Name] === 'object') {\r\n    isSelected =\r\n      query[props.Name].filter((key) => key === props.Id.toString()).length > 0;\r\n  }\r\n\r\n  const classes = classNames({\r\n    'c-facets__item': true,\r\n    [`c-facets__item--theme-${props.Id}`]: true,\r\n    'c-facets__item--selected': isSelected,\r\n  });\r\n\r\n  const makeItemArray = (key, array) => {\r\n    if (!array[key]) return [];\r\n    if (typeof array[key] === 'string') {\r\n      return array[key].split();\r\n    }\r\n    return array[key];\r\n  };\r\n  const handleChange = (e) => {\r\n    query[props.Name] = makeItemArray(props.Name, query);\r\n    // We push the name to the URL for the tracking function to get.\r\n    query['categoryname'] = makeItemArray('categoryname', query);\r\n\r\n    if (e.currentTarget.checked) {\r\n      query[props.Name].push(props.Id);\r\n      if (props.Name === 'category') {\r\n        query['categoryname'].push(props.Text);\r\n      }\r\n    } else {\r\n      query[props.Name] = query[props.Name].filter((key) => key !== props.Id);\r\n      if (props.Name === 'category' && query.categoryname) {\r\n        query['categoryname'] = query['categoryname'].filter(\r\n          (key) => key !== props.Text\r\n        );\r\n      }\r\n    }\r\n\r\n    props.history.push({\r\n      search: `?${qs.stringify(query, { indices: false })}`,\r\n    });\r\n  };\r\n\r\n  const handleRadioButtonChange = () => {\r\n    props.names.forEach((name) => delete query[name]);\r\n    query[props.Name] = props.Id;\r\n\r\n    props.history.push({\r\n      search: `?${qs.stringify(query, { indices: false })}`,\r\n    });\r\n  };\r\n\r\n  return (\r\n    <label className={classes}>\r\n      <input\r\n        className=\"c-facets__item__checkbox\"\r\n        type=\"checkbox\"\r\n        defaultChecked={isSelected}\r\n        name={props.Name}\r\n        value={props.Id}\r\n        onChange={(e) =>\r\n          props.FacetsRadioButton ? handleRadioButtonChange(e) : handleChange(e)\r\n        }\r\n      />\r\n      <span className=\"c-facets__item__label\">{props.Text}</span>\r\n      {props.showCount && (\r\n        <span className=\"c-facets__item__count\">({props.count})</span>\r\n      )}\r\n    </label>\r\n  );\r\n};\r\n\r\nconst FacetsItems = ({\r\n  names,\r\n  history,\r\n  Facets,\r\n  queryString,\r\n  pathname,\r\n  FacetsRadioButton,\r\n  facetCounts,\r\n  showCount,\r\n}) =>\r\n  Facets.map((item, index) => (\r\n    <FacetItem\r\n      key={index}\r\n      names={names}\r\n      {...item}\r\n      history={history}\r\n      queryString={queryString}\r\n      pathname={pathname}\r\n      FacetsRadioButton={FacetsRadioButton}\r\n      count={facetCounts?.[item?.Id] ?? 0}\r\n      showCount={showCount}\r\n    />\r\n  ));\r\n\r\nconst Facets = ({\r\n  history,\r\n  Facets,\r\n  queryString = [],\r\n  pathname,\r\n  FacetsRadioButton,\r\n}) => {\r\n  if (Facets.Items.length === 0) return null;\r\n\r\n  const Names = Facets.Items.reduce((acc, cur) => {\r\n    cur.Facets.forEach((item) => {\r\n      if (!acc.some((i) => i === item.Name)) {\r\n        acc.push(item.Name);\r\n      }\r\n    });\r\n\r\n    return acc;\r\n  }, []);\r\n\r\n  const items = Facets.Items.map((item, index) => {\r\n    if (item.Facets.length === 0) return null;\r\n\r\n    return (\r\n      <div className=\"c-facets__items\" key={index}>\r\n        {item.Heading && <h2 className=\"c-facets__heading\">{item.Heading}</h2>}\r\n        <FacetsItems\r\n          {...item}\r\n          names={Names}\r\n          history={history}\r\n          queryString={queryString}\r\n          pathname={pathname}\r\n          FacetsRadioButton={FacetsRadioButton}\r\n        />\r\n      </div>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <div className=\"c-facets\">\r\n      <div className=\"c-facets__inner\">{items}</div>\r\n    </div>\r\n  );\r\n};\r\n\r\nFacets.propTypes = {\r\n  /** React router history object **/\r\n  history: PropTypes.object,\r\n  /** (BE) */\r\n  Facets: PropTypes.shape({\r\n    Items: PropTypes.arrayOf(\r\n      PropTypes.shape({\r\n        /** We also recieve a \"Checked=false\" property that is not used on Facets object. */\r\n        Facets: PropTypes.arrayOf(\r\n          PropTypes.shape({\r\n            Name: PropTypes.string,\r\n            Id: PropTypes.string,\r\n            Text: PropTypes.string,\r\n          })\r\n        ),\r\n        Heading: PropTypes.string,\r\n      })\r\n    ),\r\n    ErrorMessage: PropTypes.string,\r\n  }),\r\n  queryString: PropTypes.object,\r\n  pathname: PropTypes.string /** is this used? */,\r\n  /** (BE) */\r\n  FacetsRadioButton: PropTypes.bool,\r\n};\r\n\r\nexport default Facets;\r\n","import React from 'react';\r\n\r\nconst formatDate = (date, year, month, day) => {\r\n  if (!date) return null;\r\n\r\n  let options = {\r\n    year: year,\r\n    month: month,\r\n    day: day,\r\n  };\r\n  let fmDate = new Date(date.toString()).toLocaleDateString('sv-SE', options);\r\n\r\n  return fmDate.toUpperCase();\r\n};\r\n\r\nconst FormatDateTime = ({ date, year, month, day }) => {\r\n  return (\r\n    <time dateTime={new Date(date).toISOString()} className=\"search-list__date\">\r\n      {formatDate(date, year, month, day)}\r\n    </time>\r\n  );\r\n};\r\nFormatDateTime.defaultProps = {\r\n  year: 'numeric',\r\n  month: 'long',\r\n  day: 'numeric',\r\n};\r\n\r\nexport default FormatDateTime;\r\n","import React from 'react';\r\nimport { bool, shape, string, node } from 'prop-types';\r\n\r\n/**\r\n * Error message component\r\n * \r\n```\r\n<Error\r\n  isError={true}\r\n  errorMessages={{ prefix: 'Fel!', warning: 'Det här är felmeddelandet.' }} \r\n  label=\"500\" \r\n  errorType=\"warning\" \r\n/>\r\n```\r\n * \r\n */\r\nconst Error = (props) => {\r\n  if (!props.isError) return null;\r\n\r\n  return (\r\n    <div className=\"c-forms__error\" id={`${props.name}-error`}>\r\n      {props.errorMessages && props.errorMessages['prefix'] && (\r\n        <strong>{props.errorMessages['prefix']} </strong>\r\n      )}\r\n      {props.label && (\r\n        <span className=\"c-forms__error__label\">{props.label}.</span>\r\n      )}\r\n      {props.errorMessages &&\r\n        props.errorMessages[props.errorType] &&\r\n        props.errorMessages[props.errorType]}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport const propTypes = {\r\n  /** If `true` display error message */\r\n  isError: bool,\r\n  /** Label is displayed before the error message */\r\n  label: node,\r\n  /** errorType must be a string with the name of a key that exists in `errorMessages` */\r\n  errorType: string,\r\n  /** errorMessages must contain a key with the the errorType */\r\n  errorMessages: shape({\r\n    prefix: node,\r\n  }),\r\n};\r\n\r\nError.propTypes = propTypes;\r\n\r\nexport default Error;\r\n","import React, { useState } from 'react';\r\nimport classNames from 'classnames';\r\nimport { bool, oneOf, string, object, number, oneOfType } from 'prop-types';\r\nimport Error, { propTypes as errorPropTypes } from './error';\r\n\r\nimport Select from './select';\r\nimport Input from './input';\r\nimport Textarea from './textarea';\r\n\r\n/**\r\n * Will spread all non-specified props (...rest) to the `input` element.\r\n *\r\n * Includes the `<Error>` component\r\n */\r\nconst Field = (props) => {\r\n  const [isFocus, setIsFocus] = useState(false);\r\n\r\n  const {\r\n    className,\r\n    disabled,\r\n    component,\r\n    classNameModifiers,\r\n    isValid,\r\n    isTouched,\r\n    label,\r\n    errorType,\r\n    errorMessages,\r\n    name,\r\n    ...rest\r\n  } = props;\r\n\r\n  const classes = classNames(className, {\r\n    [`${className}--is-error`]: !isValid && isTouched,\r\n    [`${className}--is-valid`]: isValid && isTouched,\r\n    [`${className}--disabled`]: disabled,\r\n    [`${className}--has-focus`]: isFocus,\r\n    ...classNameModifiers,\r\n  });\r\n\r\n  let ErrorComponent = (\r\n    <Error\r\n      isError={!isValid && isTouched}\r\n      label={label}\r\n      errorType={errorType}\r\n      errorMessages={errorMessages}\r\n      name={name}\r\n    />\r\n  );\r\n\r\n  if (component === 'input') {\r\n    return (\r\n      <Input\r\n        onFocus={() => setIsFocus(true)}\r\n        removeFocus={() => setIsFocus(false)}\r\n        disabled={disabled}\r\n        error={ErrorComponent}\r\n        classes={classes}\r\n        name={name}\r\n        {...rest}\r\n      />\r\n    );\r\n  }\r\n  if (component === 'textarea') {\r\n    return (\r\n      <Textarea\r\n        onFocus={() => setIsFocus(true)}\r\n        removeFocus={() => setIsFocus(false)}\r\n        disabled={disabled}\r\n        className={className}\r\n        error={ErrorComponent}\r\n        classes={classes}\r\n        name={name}\r\n        {...rest}\r\n      />\r\n    );\r\n  }\r\n  if (component === 'select') {\r\n    return (\r\n      <Select\r\n        onFocus={() => setIsFocus(true)}\r\n        removeFocus={() => setIsFocus(false)}\r\n        disabled={disabled}\r\n        error={ErrorComponent}\r\n        classes={classes}\r\n        name={name}\r\n        {...rest}\r\n      />\r\n    );\r\n  }\r\n  return null;\r\n};\r\n\r\nconst propTypes = {\r\n  component: oneOf(['input', 'textarea', 'select']),\r\n  /** Base classname*/\r\n  className: string,\r\n  /** classnames compatible object */\r\n  classNameModifiers: object,\r\n  /** Use `false` to display error message - if isTouched is true */\r\n  isValid: bool,\r\n  /** Use `true` to indicate that element is touched and error messages can be displayed */\r\n  isTouched: bool,\r\n  /** Not used */\r\n  isFocus: bool,\r\n  /** Used as `defaultValue` for input element */\r\n  value: oneOfType([string, number]),\r\n  /** input element id */\r\n  name: string,\r\n  ...errorPropTypes,\r\n};\r\n\r\nField.propTypes = propTypes;\r\n\r\nexport default Field;\r\n","export const getAriaDescribedBy = (error, name) =>\r\n  error?.props?.isError && {\r\n    'aria-describedby': `${name}-error`,\r\n  };\r\n","import React from 'react';\r\nimport T from 'prop-types';\r\nimport { getAriaDescribedBy } from './helpers';\r\n\r\n/** All other props will be spread to the <input> element */\r\nconst Input = (props) => {\r\n  const { value, error, removeFocus, classes, name, onBlur, ...rest } = props;\r\n  return (\r\n    <div className={classes}>\r\n      <input\r\n        {...rest}\r\n        onBlur={(e) => {\r\n          removeFocus();\r\n          onBlur(e);\r\n        }}\r\n        defaultValue={value}\r\n        {...getAriaDescribedBy(error, name)}\r\n        name={name}\r\n        id={name}\r\n      />\r\n      {error}\r\n    </div>\r\n  );\r\n};\r\n\r\nInput.propTypes = {\r\n  /** Used for name and id property. */\r\n  name: T.string.isRequired,\r\n  /** Used for wrapping <div> classnamae. */\r\n  classes: T.string,\r\n  /**  Error message. */\r\n  error: T.node,\r\n  /** Used for defaultValue prop (react) */\r\n  value: T.oneOfType([T.string, T.number]),\r\n};\r\n\r\nexport default Input;\r\n","import React from 'react';\r\nimport { string, node, bool } from 'prop-types';\r\n\r\nconst Label = (props) => {\r\n  return (\r\n    <label className={props.className} htmlFor={props.htmlFor}>\r\n      {props.label}\r\n      {props.children}\r\n      {props.required && <span className=\"c-forms__label__required\">*</span>}\r\n    </label>\r\n  );\r\n};\r\n\r\nexport const propTypes = {\r\n  label: node,\r\n  children: node,\r\n  required: bool,\r\n  className: string,\r\n  htmlFor: string,\r\n};\r\n\r\nLabel.propTypes = propTypes;\r\n\r\nexport default Label;\r\n","import React from 'react';\r\nimport { callIfFunction } from '../Helpers/helpers';\r\nimport { getAriaDescribedBy } from './helpers';\r\n\r\nconst Select = (props) => {\r\n  const { classes, error, removeFocus, onBlur, children, name, ...rest } =\r\n    props;\r\n\r\n  return (\r\n    <div>\r\n      <div className={classes}>\r\n        <select\r\n          name={name}\r\n          onBlur={(e) => {\r\n            callIfFunction(removeFocus);\r\n            callIfFunction(onBlur, e);\r\n          }}\r\n          {...getAriaDescribedBy(error, name)}\r\n          {...rest}\r\n        >\r\n          {children}\r\n        </select>\r\n      </div>\r\n      {error}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Select;\r\n","import React, { useRef, useState, useEffect } from 'react';\r\nimport classNames from 'classnames';\r\nimport { getAriaDescribedBy } from './helpers';\r\n\r\nconst Textarea = (props) => {\r\n  const [charsLeft, setCharsLeft] = useState(\r\n    props.maxLength && props.value\r\n      ? props.maxLength - props.value.length\r\n      : props.maxLength\r\n  );\r\n\r\n  const textarea = useRef();\r\n\r\n  function getValue() {\r\n    return textarea.current.value;\r\n  }\r\n\r\n  function getCharsLeft() {\r\n    return props.maxLength ? props.maxLength - getLength() : null;\r\n  }\r\n\r\n  function getLength() {\r\n    return getValue().length;\r\n  }\r\n\r\n  useEffect(() => {\r\n    setCharsLeft(getCharsLeft());\r\n  }, []);\r\n\r\n  function handleKeyUp() {\r\n    setCharsLeft(getCharsLeft());\r\n  }\r\n\r\n  const {\r\n    value,\r\n    className,\r\n    classes,\r\n    removeFocus,\r\n    disabled,\r\n    children,\r\n    onBlur,\r\n    maxLength,\r\n    error,\r\n    maxLengthTranslation,\r\n    name,\r\n    ...rest\r\n  } = props;\r\n\r\n  const charsClasses = classNames({\r\n    [`${className}__chars`]: true,\r\n    [`${className}__chars--disabled`]: disabled,\r\n  });\r\n\r\n  return (\r\n    <div>\r\n      {children}\r\n      {maxLength && (\r\n        <span className={charsClasses}>\r\n          {charsLeft} {maxLengthTranslation}\r\n        </span>\r\n      )}\r\n      <div className={classes}>\r\n        <textarea\r\n          ref={textarea}\r\n          defaultValue={value}\r\n          disabled={disabled}\r\n          {...getAriaDescribedBy(error, name)}\r\n          name={name}\r\n          id={name}\r\n          onBlur={(e) => {\r\n            removeFocus();\r\n            onBlur(e);\r\n          }}\r\n          onKeyUp={() => {\r\n            handleKeyUp();\r\n          }}\r\n          {...rest}\r\n        />\r\n      </div>\r\n      {error}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Textarea;\r\n","import { useState } from 'react';\r\n\r\n/**\r\n * Custom hook to manage arrow key navigation in a list.\r\n * @param {number} maxIndex - The maximum index in the list.\r\n * @param {object} options - Additional options for navigation.\r\n * @returns {object} An object containing the highlighted index and navigation functions.\r\n */\r\nconst useArrowNavigation = (maxIndex, options = {}) => {\r\n  const [highlightedIndex, setHighlightedIndex] = useState(-1);\r\n\r\n  const {\r\n    isOpen = true,\r\n    onItemSelect = () => {},\r\n    onClose = () => {},\r\n    getItemByIndex = () => {},\r\n    selectionKeys = ['Enter'],\r\n  } = options;\r\n\r\n  const incrementIndex = () => {\r\n    setHighlightedIndex((prevIndex) =>\r\n      prevIndex < maxIndex ? prevIndex + 1 : 0\r\n    );\r\n  };\r\n\r\n  const decrementIndex = () => {\r\n    setHighlightedIndex((prevIndex) =>\r\n      prevIndex > 0 ? prevIndex - 1 : maxIndex\r\n    );\r\n  };\r\n\r\n  const resetIndex = () => {\r\n    setHighlightedIndex(-1);\r\n  };\r\n\r\n  const handleKeyDown = (e) => {\r\n    if (!isOpen) return;\r\n\r\n    if (e.key === 'ArrowDown') {\r\n      e.preventDefault();\r\n      incrementIndex();\r\n    } else if (e.key === 'ArrowUp') {\r\n      e.preventDefault();\r\n      decrementIndex();\r\n    } else if (selectionKeys.includes(e.key)) {\r\n      e.preventDefault();\r\n      if (highlightedIndex >= 0) {\r\n        const item = getItemByIndex(highlightedIndex);\r\n        onItemSelect(item);\r\n      }\r\n    } else if (e.key === 'Escape') {\r\n      onClose();\r\n      resetIndex();\r\n    }\r\n  };\r\n\r\n  return {\r\n    highlightedIndex,\r\n    setHighlightedIndex,\r\n    resetIndex,\r\n    handleKeyDown,\r\n  };\r\n};\r\n\r\nexport default useArrowNavigation;\r\n","import { useEffect, useState } from 'react';\r\nconst useWindowLocationHref = () => {\r\n  const [href, setHref] = useState(null);\r\n  useEffect(() => {\r\n    if (typeof window !== 'undefined') {\r\n      setHref(window.location.href);\r\n    }\r\n  }, []);\r\n  return href;\r\n};\r\nexport default useWindowLocationHref;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst IDSDescriptionList = ({ list, useColumnView }) => {\r\n  if (!list || list.length <= 0) {\r\n    return null;\r\n  }\r\n\r\n  const useClasses = classNames({\r\n    'ids-description-list': true,\r\n    ['ids-description-list--column']: useColumnView,\r\n  });\r\n\r\n  return (\r\n    <dl className={useClasses}>\r\n      {list.map((item, index) => {\r\n        return <Row key={index} rowItem={item} />;\r\n      })}\r\n    </dl>\r\n  );\r\n};\r\n\r\nconst Row = ({ rowItem }) => {\r\n  if (!rowItem) {\r\n    return null;\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <dt className=\"ids-description-list__term\">{rowItem?.Term}</dt>\r\n      <dd className=\"ids-description-list__description\">\r\n        {rowItem?.DescriptionItems.map((descItem, index) => (\r\n          <span\r\n            key={index}\r\n            className=\"ids-description-list__description__value\"\r\n          >\r\n            {descItem}\r\n          </span>\r\n        ))}\r\n      </dd>\r\n    </>\r\n  );\r\n};\r\n\r\nIDSDescriptionList.propTypes = {\r\n  list: PropTypes.arrayOf(\r\n    PropTypes.shape({\r\n      Term: PropTypes.string,\r\n      DescriptionItems: PropTypes.arrayOf(PropTypes.string),\r\n    })\r\n  ),\r\n  useColumnView: PropTypes.bool,\r\n};\r\n\r\nexport default IDSDescriptionList;\r\n","//TODO: använd plattformens Image komponent!\r\nimport React from 'react';\r\nimport classNames from 'classnames';\r\nimport Image from '../Image';\r\nimport ImageZoom from '../ImageZoom';\r\nimport { withRouter } from 'react-router';\r\n\r\nconst ImageBlock = ({\r\n  ImageUrl,\r\n  ImageDescription,\r\n  ImageText,\r\n  UniqueBlockId,\r\n  Modifiers = null,\r\n  ShowCaption = true,\r\n  ShowPhotoCred = false,\r\n  UseZoom,\r\n  Translations = {},\r\n  Sizes = {\r\n    sizes: '(min-width: 1025px) 900px, 100vw',\r\n  },\r\n  ...props\r\n}) => {\r\n  const classes = classNames({\r\n    'c-imageblock': true,\r\n    'c-imageblock--is-sensitive': props.hideSensitiveImage,\r\n    ...Modifiers,\r\n  });\r\n\r\n  const btnClasses = classNames({\r\n    'c-imageblock__sensitive__button': true,\r\n    'c-imageblock__sensitive__button--is-loading':\r\n      props.showSensitiveImageIsLoading,\r\n  });\r\n\r\n  if (props.location.search.includes('ThrowTestError=true')) {\r\n    throw new Error('This is a test');\r\n  }\r\n\r\n  const dataPrintSidebarTitle = props.CurrentPageProps?.Content?.Translations?.imageblock || '';\r\n\r\n  return (\r\n    <figure className={classes} data-print-sidebar-title={dataPrintSidebarTitle} data-img-block={'data-img-block'} data-is-member-of-chapter-container={props.isMemberOfChapterContainer || 'false'} data-is-member-of-chapter={props.isMemberOfChapter|| 'false'}>\r\n      {props.hideSensitiveImage && (\r\n        <div className=\"c-imageblock__sensitive\">\r\n          <div className=\"c-imageblock__sensitive__content\">\r\n            <span className=\"c-imageblock__sensitive__heading\">\r\n              {Translations.sensetiveheading}\r\n            </span>\r\n            <span className=\"c-imageblock__sensitive__text\">\r\n              {ImageDescription}\r\n            </span>\r\n            <button\r\n              onClick={props.handleShowSensitiveImages}\r\n              className={btnClasses}\r\n              type=\"button\"\r\n            >\r\n              {props.showSensitiveImageIsLoading &&\r\n                props.SensitiveImageLoadingIcon}\r\n              <span>\r\n                {\r\n                  props.CurrentPageProps.Content.Translations\r\n                    .showsensetiveimages\r\n                }\r\n              </span>\r\n            </button>\r\n          </div>\r\n        </div>\r\n      )}\r\n\r\n      {!props.hideSensitiveImage && (\r\n        <ImageZoom\r\n          ImageUrl={ImageUrl}\r\n          Description={ImageDescription}\r\n          ImageText={ImageText}\r\n          UniqueBlockId={'z-' + UniqueBlockId}\r\n          UseZoom={UseZoom}\r\n          Sizes={{\r\n            sizes: '(min-width: 1025px) 900px, 100vw',\r\n          }}\r\n          {...props}\r\n        >\r\n          <Image\r\n            className=\"c-imageblock__image\"\r\n            ImageUrl={ImageUrl}\r\n            Alt={ImageDescription}\r\n            Sizes={Sizes}\r\n            {...props}\r\n          />\r\n        </ImageZoom>\r\n      )}\r\n      {ShowCaption &&\r\n        (ImageText ||\r\n          (ShowPhotoCred && (props.Photographer || props.Illustrator))) && (\r\n          <figcaption className=\"c-imageblock__text\">\r\n            {ImageText}\r\n            {ShowPhotoCred && (\r\n              <div className=\"c-imageblock__text__photo-cred\">\r\n                {props.Photographer && (\r\n                  <div className=\"c-imageblock__text__photo-cred_text\">\r\n                    {Translations.photographer + props.Photographer}\r\n                  </div>\r\n                )}\r\n                {props.Illustrator && (\r\n                  <div className=\"c-imageblock__text__photo-cred_text\">\r\n                    {Translations.illustrator + props.Illustrator}\r\n                  </div>\r\n                )}\r\n              </div>\r\n            )}\r\n          </figcaption>\r\n        )}\r\n    </figure>\r\n  );\r\n};\r\n\r\nexport default withRouter(ImageBlock);\r\n","import React, { useEffect, useState, createRef } from 'react';\r\nimport classNames from 'classnames';\r\nimport Image from '../Image';\r\n\r\nconst TABBABLE_ELEMENTS = 'a[href], button';\r\nconst KEYCODE_ESC = 27;\r\nconst KEYCODE_TAB = 9;\r\n\r\nconst ImageZoom = (props) => {\r\n  const zoomImage = createRef();\r\n  const zoomTrigger = createRef();\r\n\r\n  const [isZoomed, setIsZoomed] = useState(false);\r\n\r\n  useEffect(() => {\r\n    //Listen for esc key\r\n    const keyListener = (event) => {\r\n      const keyCode = event.which || event.keyCode; // Get the current keycode\r\n\r\n      if (keyCode === KEYCODE_ESC) {\r\n        removeZoomClassName();\r\n        setIsZoomed(false);\r\n      }\r\n    };\r\n\r\n    document.addEventListener('keydown', keyListener, false);\r\n  });\r\n\r\n  function keepFocus() {\r\n    const context = zoomImage.current;\r\n    const allTabbableElements = context.querySelectorAll(TABBABLE_ELEMENTS);\r\n    const firstTabbableElement = allTabbableElements[0];\r\n    const lastTabbableElement =\r\n      allTabbableElements[allTabbableElements.length - 1];\r\n\r\n    const keyListener = (event) => {\r\n      var keyCode = event.which || event.keyCode; // Get the current keycode\r\n      // Polyfill to prevent the default behavior of events\r\n      event.preventDefault =\r\n        event.preventDefault ||\r\n        function () {\r\n          event.returnValue = false;\r\n        };\r\n\r\n      // If it is TAB\r\n      if (keyCode === KEYCODE_TAB) {\r\n        // Move focus to first element that can be tabbed if Shift isn't used\r\n        if (event.target === lastTabbableElement && !event.shiftKey) {\r\n          event.preventDefault();\r\n          firstTabbableElement.focus();\r\n\r\n          // Move focus to last element that can be tabbed if Shift is used\r\n        } else if (event.target === firstTabbableElement && event.shiftKey) {\r\n          event.preventDefault();\r\n          lastTabbableElement.focus();\r\n        }\r\n      }\r\n    };\r\n\r\n    context.addEventListener('keydown', keyListener, false);\r\n  }\r\n\r\n  function removeZoomClassName() {\r\n    document.getElementsByTagName('html')[0].classList.remove('is-img-zoom');\r\n  }\r\n\r\n  function addZoomClassName() {\r\n    document.getElementsByTagName('html')[0].classList.add('is-img-zoom');\r\n  }\r\n\r\n  function handleClick(e) {\r\n    e.preventDefault();\r\n    //Keep focus within zoom modal\r\n    keepFocus();\r\n    //Reset focus state\r\n    if (isZoomed) {\r\n      removeZoomClassName();\r\n      zoomTrigger.current.focus();\r\n    } else {\r\n      addZoomClassName();\r\n      zoomImage.current.focus();\r\n    }\r\n\r\n    setIsZoomed(!isZoomed);\r\n  }\r\n\r\n  const {\r\n    ImageUrl,\r\n    Description,\r\n    ImageText,\r\n    UniqueBlockId,\r\n    UseZoom,\r\n    ShowCaption,\r\n    ShowPhotoCred,\r\n  } = props;\r\n\r\n  if (!UseZoom) return props.children;\r\n\r\n  const zoomClass = classNames({\r\n    'c-imageblock__zoom__overlay': true,\r\n    'c-imageblock__zoom__overlay--zoomed': isZoomed,\r\n  });\r\n\r\n  return (\r\n    <div className=\"c-imageblock__zoom\">\r\n      <a\r\n        ref={zoomTrigger}\r\n        className=\"c-imageblock__zoom__trigger\"\r\n        onClick={(e) => handleClick(e)}\r\n        aria-controls={UniqueBlockId}\r\n        aria-expanded={isZoomed}\r\n        href={ImageUrl}\r\n      >\r\n        {props.children}\r\n        <span className=\"show-for-sr\">Förstora bilden</span>\r\n      </a>\r\n\r\n      <div\r\n        id={UniqueBlockId}\r\n        className={zoomClass}\r\n        aria-hidden={!isZoomed}\r\n        onClick={(e) => handleClick(e)}\r\n      >\r\n        <div\r\n          ref={zoomImage}\r\n          onClick={(e) => e.stopPropagation()}\r\n          tabIndex=\"-1\"\r\n          className=\"c-imageblock__zoom__image\"\r\n        >\r\n          {isZoomed && (\r\n            <div>\r\n              <figure className=\"c-imageblock__zoom__image__inner\">\r\n                <Image ImageUrl={ImageUrl} Alt={Description} {...props} />\r\n\r\n                {ShowCaption &&\r\n                  (ImageText ||\r\n                    (ShowPhotoCred &&\r\n                      (props.Photographer || props.Illustrator))) && (\r\n                    <figcaption className=\"c-imageblock__zoom__text\">\r\n                      {ImageText}\r\n                    </figcaption>\r\n                  )}\r\n              </figure>\r\n              <button\r\n                className=\"c-imageblock__zoom__image__close\"\r\n                type=\"button\"\r\n                onClick={(e) => handleClick(e)}\r\n                aria-controls={UniqueBlockId}\r\n                aria-expanded={isZoomed}\r\n              >\r\n                <span className=\"show-for-sr\">Stäng</span>\r\n              </button>\r\n            </div>\r\n          )}\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ImageZoom;\r\n","import classNames from 'classnames';\r\nimport T from 'prop-types';\r\nimport React from 'react';\r\nimport withLazyLoad from '../Containers/withLazyLoad';\r\nimport withSrcSets from '../Containers/withSrcSets';\r\n\r\nconst Image = (props) => {\r\n  const classes = classNames({\r\n    'c-image': true,\r\n    'c-image--is-lazyloaded': props.isLazyLoaded || !props.isLazyLoad,\r\n    'c-image--is-background-image': props.isBackgroundImage,\r\n    [props.className]: true && props.className,\r\n  });\r\n\r\n  const src = props.isLazyLoad ? props.LazyLoadImageUrl : props.ImageUrl;\r\n\r\n  let alt = props.Description ?? props.ImageDescription;\r\n  if (props.Alt !== undefined) alt = props.Alt;\r\n  //If IMG is decorative alt text should be empty.\r\n  if (props.isBackgroundImage || props.ariaHidden) alt = '';\r\n\r\n  const style =\r\n    props.isBackgroundImage && props.currentSrc\r\n      ? {\r\n          style: {\r\n            backgroundImage: `url(\"${props.currentSrc}\")`,\r\n          },\r\n        }\r\n      : null;\r\n\r\n  const sizes = props.SrcSets && props.SrcSets.srcSet ? props.Sizes : null;\r\n\r\n  const attributes = props.isBackgroundImage ? { role: 'presentation' } : {};\r\n\r\n  return (\r\n    <div {...style} className={classes} {...attributes}>\r\n      {(!props.isBackgroundImage || props.isViewed || !props.isLazyLoad) && (\r\n        <img\r\n          data-event-include={props.includeTracking ? true : undefined}\r\n          src={src}\r\n          {...props.SrcSets}\r\n          alt={alt}\r\n          onLoad={props.handleOnLoad}\r\n          aria-hidden={props.ariaHidden}\r\n          {...sizes}\r\n        />\r\n      )}\r\n      {props.isLazyLoad && (\r\n        <noscript\r\n          dangerouslySetInnerHTML={{\r\n            __html: `<img src=\"${props.ImageUrl}\" alt=\"${alt}\" />`,\r\n          }}\r\n        />\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nImage.propTypes = {\r\n  className: T.string,\r\n  currentSrc: T.string,\r\n  Alt: T.string,\r\n  isViewed: T.bool,\r\n  isBackgroundImage: T.bool,\r\n  isLazyLoad: T.bool,\r\n  ariaHidden: T.bool,\r\n  LazyLoadImageUrl: T.string,\r\n  ImageUrl: T.string,\r\n  SrcSets: T.shape({ srcSet: T.any }),\r\n  Sizes: T.object,\r\n};\r\n\r\nexport const LazyLoadImage = withSrcSets(withLazyLoad(Image));\r\n\r\nexport default Image;\r\n","import classNames from 'classnames';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport useArrowNavigation from '../Hooks/useArrowNavigation';\r\n\r\nconst CustomSelect = ({\r\n  label,\r\n  srLabel,\r\n  options,\r\n  selectedItem,\r\n  onChange,\r\n  id,\r\n}) => {\r\n  const [isOpen, setIsOpen] = useState(false);\r\n  const dropdownRef = useRef(null);\r\n\r\n  const maxIndex = options.length - 1;\r\n\r\n  const { highlightedIndex, setHighlightedIndex, resetIndex, handleKeyDown } =\r\n    useArrowNavigation(maxIndex, {\r\n      isOpen,\r\n      selectionKeys: ['Enter', ' '],\r\n      onItemSelect: (item) => {\r\n        onChange(item);\r\n        setIsOpen(false);\r\n        resetIndex();\r\n      },\r\n      onClose: () => {\r\n        setIsOpen(false);\r\n        resetIndex();\r\n      },\r\n      getItemByIndex: (index) => options[index] || 0,\r\n    });\r\n\r\n  const toggleDropdown = () => setIsOpen(!isOpen);\r\n\r\n  useEffect(() => {\r\n    isOpen && dropdownRef.current?.focus();\r\n  }, [isOpen]);\r\n\r\n  const defaultOption = options.find(\r\n    (option) => option.key === selectedItem.key\r\n  );\r\n\r\n  if (!options) return null;\r\n\r\n  return (\r\n    <div className=\"c-custom-select\">\r\n      {label && (\r\n        <label className=\"c-custom-select__label\" htmlFor=\"c-custom-select\">\r\n          {label}\r\n        </label>\r\n      )}\r\n      <button\r\n        className=\"c-custom-select__toggle\"\r\n        aria-haspopup=\"listbox\"\r\n        aria-expanded={isOpen}\r\n        aria-controls=\"c-custom-select-dropdown\"\r\n        id={`custom-select-${id}`}\r\n        aria-label={srLabel}\r\n        onClick={(e) => {\r\n          e.preventDefault();\r\n          toggleDropdown();\r\n        }}\r\n        onKeyDown={(e) => {\r\n          if (isOpen) {\r\n            handleKeyDown(e);\r\n          } else if (\r\n            e.key === 'ArrowDown' ||\r\n            e.key === 'Enter' ||\r\n            e.key === ' '\r\n          ) {\r\n            e.preventDefault();\r\n            setIsOpen(true);\r\n            setHighlightedIndex(0);\r\n          }\r\n        }}\r\n      >\r\n        {selectedItem.value || defaultOption.value}\r\n\r\n        <div\r\n          aria-hidden\r\n          className={classNames({\r\n            'c-custom-select__chevron': true,\r\n            'c-custom-select__chevron--is-expanded': isOpen,\r\n          })}\r\n        />\r\n      </button>\r\n\r\n      {isOpen && (\r\n        <div className=\"c-custom-select__dropdown\">\r\n          <ul\r\n            className=\"c-custom-select__content\"\r\n            role=\"listbox\"\r\n            id={`custom-select-${id}-dropdown`}\r\n            aria-labelledby={`custom-select-${id}`}\r\n            tabIndex={0}\r\n            aria-activedescendant={`select-${id}-option-${highlightedIndex}`}\r\n            onKeyDown={handleKeyDown}\r\n            ref={dropdownRef}\r\n            onBlur={() => {\r\n              setIsOpen(false);\r\n            }}\r\n          >\r\n            {options.map((option, index) => (\r\n              <li\r\n                className={classNames('c-custom-select__item', {\r\n                  'c-custom-select__item--highlighted':\r\n                    highlightedIndex === index,\r\n                  'c-custom-select__item--selected':\r\n                    selectedItem.key === option.key,\r\n                })}\r\n                key={option.key}\r\n                id={`select-${id}-option-${index}`}\r\n                role=\"option\"\r\n                aria-selected={selectedItem.key === option.key}\r\n                onClick={() => [\r\n                  onChange(option),\r\n                  toggleDropdown(),\r\n                  resetIndex(),\r\n                ]}\r\n              >\r\n                <span>{option.value}</span>\r\n              </li>\r\n            ))}\r\n          </ul>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default CustomSelect;\r\n","import React from 'react';\r\n\r\nconst KeywordHints = ({ KeywordMessage }) => {\r\n  if (!KeywordMessage) return null;\r\n  return (\r\n    <div className=\"keyword-hints\">\r\n      <div className=\"c-keyword__icon-container\">\r\n        <i className=\"c-keyword__icon\" />\r\n      </div>\r\n      <div dangerouslySetInnerHTML={{ __html: KeywordMessage }}></div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default KeywordHints;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nconst Item = (item) => {\r\n  const classes = classNames({\r\n    'c-localnav__list__item': true,\r\n    'c-localnav__list__item--has-children': !!item.Children,\r\n    'c-localnav__list__item--is-selected': item.IsCurrentPage,\r\n    'c-localnav__list__item--is-open': item.ActivePath,\r\n  });\r\n\r\n  const secondLevel =\r\n    item.Children &&\r\n    item.Children.map((child, index) => (\r\n      <li\r\n        className={classNames({\r\n          'c-localnav__list__item': true,\r\n          'c-localnav__list__item--is-selected': child.IsCurrentPage,\r\n        })}\r\n        key={index}\r\n      >\r\n        <a href={child.Url}>\r\n          <span>{child.Text}</span>\r\n        </a>\r\n      </li>\r\n    ));\r\n\r\n  return (\r\n    <li className={classes}>\r\n      <a href={item.Url}>\r\n        <span>{item.Text}</span>\r\n      </a>\r\n      {item.Children && (\r\n        <ul className=\"c-localnav__list__secondary\">{secondLevel}</ul>\r\n      )}\r\n    </li>\r\n  );\r\n};\r\n\r\nexport default Item;\r\n","import React from 'react';\r\nimport Item from './item';\r\n\r\nconst Localnav = (props) => {\r\n  if (!props.Menu) return null;\r\n\r\n  const firstLevel = props.Menu.map((menuItem, index) => {\r\n    return <Item key={index} {...menuItem} />;\r\n  });\r\n\r\n  return (\r\n    <nav className=\"c-localnav\">\r\n      <h2 className=\"c-localnav__heading\">\r\n        <a href={props.Ancestor.Url}>{props.Ancestor.Name}</a>\r\n      </h2>\r\n\r\n      <ul className=\"c-localnav__list\">{firstLevel}</ul>\r\n    </nav>\r\n  );\r\n};\r\n\r\nexport default Localnav;\r\n","import React from 'react';\r\nimport { node } from 'prop-types';\r\n\r\nconst Person = (props) => {\r\n  return (\r\n    <span className=\"c-articlefooter__value\">\r\n      {props.FirstName} {props.LastName} {props.Title} {props.Workplace}{' '}\r\n      {props.City}\r\n    </span>\r\n  );\r\n};\r\n\r\nexport const propTypes = {\r\n  FirstName: node,\r\n  LastName: node,\r\n  Title: node,\r\n  Workplace: node,\r\n  City: node,\r\n};\r\n\r\nPerson.propTypes = propTypes;\r\n\r\nexport default Person;\r\n","import React, { useRef, useEffect } from 'react';\r\n\r\nconst PrintIframe = (props) => {\r\n  const { SelectedRadio, PrintableItems, CheckedItems, SetPrintClicked } =\r\n    props;\r\n  const iframeRef = useRef(null);\r\n\r\n  const prepareContent = () => {\r\n    if (iframeRef.current) {\r\n      const doc =\r\n        iframeRef.current.contentDocument ||\r\n        iframeRef.current.contentWindow.document;\r\n\r\n      var printItems = PrintableItems;\r\n\r\n      if (SelectedRadio !== 1) {\r\n        const filteredItems = PrintableItems?.filter((item) => {\r\n          return CheckedItems?.includes(item);\r\n        });\r\n        printItems = filteredItems;\r\n      }\r\n\r\n      const styleElements = Array.from(\r\n        document.querySelectorAll('style')\r\n      ).filter((style) => style.id !== 'onetrust-style');\r\n      var styleContent = styleElements.map((style) => style.outerHTML).join('');\r\n\r\n      const headerMainDiv = document.querySelector('.c-header__main');\r\n      const headerMainHTML = headerMainDiv ? headerMainDiv.outerHTML : '';\r\n      const regionLabel = document.querySelector('.regionlabel');\r\n      const regionLabelHTML = regionLabel ? regionLabel.outerHTML : '';\r\n\r\n      const outerHTML =\r\n        printItems?.map((item) => item.outerHTML).join('') ?? '';\r\n\r\n      const updatedOuterHTML = outerHTML.replace(\r\n        /\\/\\/play\\.media/g,\r\n        'https://play.media'\r\n      );\r\n\r\n      doc.open();\r\n      doc.write(`\r\n        <html>\r\n          <head>\r\n            ${styleContent}\r\n            <style>\r\n              @media print {\r\n                @page {\r\n                  margin: 2cm;\r\n                }\r\n                body, html {\r\n                  height: 100%;\r\n                }\r\n                body > * {\r\n                  page-break-after: avoid;\r\n                  page-break-inside: avoid;\r\n                  break-inside: avoid;\r\n                  break-after: avoid;\r\n                  clear: both;\r\n                }\r\n                img {\r\n                  width: auto !important;\r\n                  height: auto !important;\r\n                  max-height: 400px !important;\r\n                  max-width: 100% !important;\r\n                }\r\n                a {\r\n                  color: #353535 !important;\r\n                  text-decoration: none !important;\r\n                }\r\n                .logo__link {\r\n                  left: 0px;\r\n                  top: 40px\r\n                }\r\n                .logo__link svg {\r\n                  fill: #353535;\r\n                }\r\n                .c-header__main {\r\n                  float: none;\r\n                  width: 100%;\r\n                  padding-left: 0 !important;\r\n                  padding-right: 0 !important;\r\n                }\r\n                .c-articleheader__heading {\r\n                  clear: both !important;\r\n                }\r\n                .c-header__logo {\r\n                  margin-bottom: 40px;\r\n                }  \r\n                .c-header__search-mobile {\r\n                  display: none;\r\n                }\r\n                .header-tools__regions, .c-header-tools {\r\n                  display: none;\r\n                }\r\n                iframe, .c-video {\r\n                  display: none;\r\n                }\r\n                .region-logo__container:before {\r\n                  background-color: transparent !important;\r\n                }\r\n                .region-logo__container:after {\r\n                  background-color: transparent !important;\r\n                }\r\n                .region-logo__container {\r\n                  background-color: transparent;\r\n                  right: 0px;\r\n                  top: 32px;\r\n                  width: auto !important;\r\n                }\r\n                .region-logo__img__vastragotaland {\r\n                  height: 60px;\r\n                  top: 0px;\r\n                }\r\n                #region-background {\r\n                  fill: none;\r\n                }\r\n                .region-logo__img mask {\r\n                  display: none;\r\n                }\r\n                .region-logo__img path {\r\n                  fill: #353535;\r\n                }\r\n                .c-articlefooter__wrapper{\r\n                  margin-top: 40px;\r\n                }\r\n                .c-articlefooter__content {\r\n                  margin-left: 0;\r\n                }\r\n                .c-articlefooter__content .columns {\r\n                  padding-left: 0;\r\n                }\r\n                .c-action-table__large-headings {\r\n                  display: none;\r\n                }\r\n                .c-action-table__column__heading {\r\n                  font-size: 18px;\r\n                  font-weight: 700;\r\n                }\r\n                .c-media-gallery__item__text-container {\r\n                  visibility: visible !important;\r\n                }\r\n                .c-highlight--important, \r\n                .c-highlight--importantinfo, \r\n                .c-highlight--localinstructions, \r\n                .c-highlight--recommendations, \r\n                .c-highlight--routines {\r\n                    padding-left: 15px;\r\n                }\r\n                .c-highlight--color1, .c-highlight--frame {\r\n                    border: 1px solid #737373;\r\n                    border-radius: 10px;\r\n                }\r\n                .c-chapter--regional-content::before {\r\n                    content: attr(data-print-sidebar-title-region);\r\n                    color: #3b4266;\r\n                    font-weight: bold;\r\n                    display: block;\r\n                    margin-top: 15px;\r\n                    \r\n                }\r\n                .c-chapter--regional-content {\r\n                    border: 1px solid #3b4266;\r\n                    border-radius: 10px;\r\n                    padding-left: 20px;\r\n                    padding-bottom: 20px;\r\n                    margin-top: 20px;\r\n                }\r\n                .regionlabel {\r\n                  position: relative;\r\n                  top: 0px;\r\n                  left: 0;\r\n                  color: #3b4266;\r\n                  font-size: 0.875rem;\r\n                  display: block;\r\n                  padding: 0px 0px;\r\n                }\r\n                .c-image {\r\n                  opacity: 1 !important;\r\n                  transition: none !important;\r\n                }\r\n                .c-image-gallery__current {\r\n                  display: none;\r\n                }\r\n              }\r\n            </style>\r\n          </head>\r\n          <body>\r\n            ${headerMainHTML}\r\n            ${regionLabelHTML}\r\n            ${updatedOuterHTML}\r\n          </body>\r\n        </html>\r\n      `);\r\n\r\n      const elements = doc?.querySelectorAll('.regional-container');\r\n      elements?.forEach((element) => element.remove());\r\n      doc.close();\r\n    }\r\n  };\r\n\r\n  const handleLoad = () => {\r\n    if (iframeRef.current) {\r\n      iframeRef.current.contentWindow.focus();\r\n      iframeRef.current.contentWindow.print();\r\n      SetPrintClicked(false);\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    const initializeIframe = async () => {\r\n      prepareContent();\r\n    };\r\n\r\n    initializeIframe();\r\n  }, [SelectedRadio, PrintableItems, CheckedItems]);\r\n\r\n  return (\r\n    <>\r\n      <iframe\r\n        ref={iframeRef}\r\n        style={{\r\n          display: 'block',\r\n          backgroundColor: 'white',\r\n          width: 1000,\r\n          height: 1000,\r\n          position: 'absolute',\r\n          top: -9999,\r\n          left: -9999,\r\n          zIndex: -1,\r\n        }}\r\n        title=\"Skriv ut\"\r\n        onLoad={handleLoad}\r\n      />\r\n    </>\r\n  );\r\n};\r\n\r\nexport default PrintIframe;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport classNames from 'classnames';\r\nimport { stripHtml } from '../Helpers';\r\nimport useWindowLocationHref from '../Hooks/useWindowLocation';\r\nimport PrintIframe from '../PrintIframe';\r\n\r\nconst PrintSidebar = (props) => {\r\n  const { Translations } = props;\r\n  const href = useWindowLocationHref();\r\n\r\n  const [isSidebarOpen, setSidebarOpen] = useState(false);\r\n  const [checkedItems, setCheckedItems] = useState([]);\r\n  const [selectedRadio, setSelectedRadio] = useState(0);\r\n  const [printableItems, setPrintableItems] = useState([]);\r\n  const [printableChildren, setPrintableChildren] = useState([]);\r\n  const [printClicked, setPrintClicked] = useState(false);\r\n\r\n  const sidebarRef = useRef(null);\r\n  const sidebarToggleButtonRef = useRef(null);\r\n  const elementsRef = useRef([]);\r\n\r\n  const handleClickOutside = (event) => {\r\n    if (\r\n      sidebarRef.current &&\r\n      !sidebarRef.current.contains(event.target) &&\r\n      sidebarToggleButtonRef.current &&\r\n      !sidebarToggleButtonRef.current.contains(event.target)\r\n    ) {\r\n      setSidebarOpen(false);\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    const mainElement = document.querySelector('main');\r\n    const elements = mainElement\r\n      ? mainElement.querySelectorAll('[data-print-sidebar-title]')\r\n      : [];\r\n    const heading = mainElement ? mainElement.querySelector('h1') : '';\r\n    elementsRef.current = elements ?? [];\r\n\r\n    const imgblockMediaSliderChildren = Array.from(elements)\r\n      .filter((item) => item.nodeName === 'FIGURE')\r\n      .filter((figures) =>\r\n        figures.className.includes('c-imageblock--is-gallery')\r\n      );\r\n\r\n    const chapterContainerChildren = Array.from(elements).filter(\r\n      (item) =>\r\n        item.getAttribute('data-is-member-of-chapter-container') === 'true'\r\n    );\r\n\r\n    const chapterChildren = Array.from(elements).filter(\r\n      (item) => item.getAttribute('data-is-member-of-chapter') === 'true'\r\n    );\r\n\r\n    const links = Array.from(elements).filter(\r\n      (item) =>\r\n        item.dataset.linklist === 'link-list-container' &&\r\n        item.offsetParent &&\r\n        item.offsetParent.hasAttribute('data-list-container')\r\n    );\r\n\r\n    setPrintableChildren([\r\n      ...imgblockMediaSliderChildren,\r\n      ...links,\r\n      ...chapterContainerChildren,\r\n      ...chapterChildren,\r\n    ]);\r\n\r\n    const removedContainerChildren = Array.from(elements).filter(\r\n      (item) =>\r\n        item.offsetParent &&\r\n        !item.offsetParent.hasAttribute('data-list-container') &&\r\n        !item.className.includes('c-imageblock--is-gallery') &&\r\n        item.getAttribute('data-is-member-of-chapter-container') !== 'true' &&\r\n        item.getAttribute('data-is-member-of-chapter') !== 'true'\r\n    );\r\n\r\n    setPrintableItems(removedContainerChildren);\r\n\r\n    if (elements?.item(0) === heading) {\r\n      handlePrintSelection(heading);\r\n    }\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (isSidebarOpen) {\r\n      document.addEventListener('mousedown', handleClickOutside);\r\n    } else {\r\n      document.removeEventListener('mousedown', handleClickOutside);\r\n    }\r\n\r\n    return () => {\r\n      document.removeEventListener('mousedown', handleClickOutside);\r\n    };\r\n  }, [isSidebarOpen]);\r\n\r\n  const handleRadioChange = (index) => {\r\n    setSelectedRadio(index);\r\n  };\r\n\r\n  const handlePrintSelection = (item) => {\r\n    const mediaType = item.getAttribute('data-type-media-slider');\r\n    const linkListContainer = item.getAttribute('data-list-container');\r\n    const chapterContainer = item.getAttribute('data-chapter-container');\r\n    const chapter = item.getAttribute('data-is-chapter');\r\n\r\n    let listOfImgElement = [];\r\n    const isMediaSlider = mediaType === 'MediaSlider';\r\n    const isLinkListContainer = linkListContainer === 'data-list-container';\r\n    const isChapterContainer = chapterContainer === 'data-chapter-container';\r\n    const isChapter = chapter === 'isChapter';\r\n\r\n    if (isMediaSlider) {\r\n      listOfImgElement = printableChildren\r\n        ?.filter((item) => item.nodeName === 'FIGURE')\r\n        .filter((figures) =>\r\n          figures.className.includes('c-imageblock--is-gallery')\r\n        );\r\n    }\r\n    if (isChapter) {\r\n      const listOfElementblockchapter = printableChildren?.filter(\r\n        (name) => name.getAttribute('data-is-member-of-chapter') === 'true'\r\n      );\r\n      listOfImgElement = [...listOfImgElement, ...listOfElementblockchapter];\r\n    }\r\n    if (isChapterContainer) {\r\n      const listOfElementblock = printableChildren?.filter(\r\n        (name) =>\r\n          name.getAttribute('data-is-member-of-chapter-container') === 'true'\r\n      );\r\n      listOfImgElement = [...listOfImgElement, ...listOfElementblock];\r\n    }\r\n    if (isLinkListContainer) {\r\n      const listOfElement = printableChildren?.filter((item) =>\r\n        item.offsetParent.hasAttribute('data-list-container')\r\n      );\r\n      listOfImgElement = [...listOfImgElement, ...listOfElement];\r\n    }\r\n\r\n    setCheckedItems((prevItems) => {\r\n      if (!prevItems.includes(item)) {\r\n        const newItemsList = [...prevItems, item, ...listOfImgElement];\r\n        return [...new Set(newItemsList)];\r\n      }\r\n\r\n      const filteredItems = prevItems.filter((i) => i !== item);\r\n\r\n      if (isMediaSlider) {\r\n        return filteredItems.filter(\r\n          (figures) => !figures.className.includes('c-imageblock--is-gallery')\r\n        );\r\n      }\r\n\r\n      if (isLinkListContainer) {\r\n        return filteredItems.filter(\r\n          (item) => !item.offsetParent?.hasAttribute('data-list-container')\r\n        );\r\n      }\r\n      if (isChapterContainer) {\r\n        return filteredItems.filter(\r\n          (item) =>\r\n            item.getAttribute('data-is-member-of-chapter-container') !== 'true'\r\n        );\r\n      }\r\n      if (isChapter) {\r\n        return filteredItems.filter(\r\n          (item) => item.getAttribute('data-is-member-of-chapter') !== 'true'\r\n        );\r\n      }\r\n      return filteredItems;\r\n    });\r\n  };\r\n\r\n  const togglePrintSidebar = () => {\r\n    setSidebarOpen(!isSidebarOpen);\r\n  };\r\n\r\n  const getPrintSelectionTitle = (item) => {\r\n    let dataPrintSidebarTitle = item.getAttribute('data-print-sidebar-title');\r\n    let dataPrintSidebarTitleRegion = item.getAttribute(\r\n      'data-print-sidebar-title-region'\r\n    );\r\n\r\n    if (dataPrintSidebarTitle) {\r\n      const words = dataPrintSidebarTitle.split(/\\s+/);\r\n      return words.length > 5\r\n        ? words.slice(0, 5).join(' ') +\r\n            '...' +\r\n            (dataPrintSidebarTitleRegion ? ` (Regionalt)` : '')\r\n        : dataPrintSidebarTitle +\r\n            (dataPrintSidebarTitleRegion ? ` (Regionalt)` : '');\r\n    } else {\r\n      const words = item.innerText.split(/\\s+/);\r\n      return words.length > 5\r\n        ? words.slice(0, 5).join(' ') + '...'\r\n        : item.innerText;\r\n    }\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <button\r\n        ref={sidebarToggleButtonRef}\r\n        role=\"button\"\r\n        aria-label={Translations && Translations.print}\r\n        onClick={(e) => {\r\n          e.preventDefault();\r\n          togglePrintSidebar();\r\n        }}\r\n        title={Translations && Translations.print}\r\n        className=\"c-printsidebar-toggle-button\"\r\n        data-event-category={href || 'novalue'}\r\n        data-event-action={Translations.print}\r\n        data-event-value={href || 'novalue'}\r\n        data-event-name={Translations.print}\r\n      >\r\n        <span\r\n          data-event-include\r\n          className=\"c-share__icon c-share__icon--print\"\r\n        ></span>\r\n        <span className=\"show-for-sr\">\r\n          {Translations && Translations.print}\r\n        </span>\r\n      </button>\r\n      <div\r\n        ref={sidebarRef}\r\n        className={classNames('c-printsidebar', {\r\n          'c-printsidebar__is-open': isSidebarOpen,\r\n        })}\r\n        aria-hidden={!isSidebarOpen}\r\n      >\r\n        <div className=\"c-printsidebar__header\">\r\n          <h1 className=\"c-printsidebar__header__heading\">\r\n            {Translations.printsidebartitle}\r\n          </h1>\r\n          <button\r\n            className=\"c-printsidebar__header__close-button\"\r\n            data-event-category={href || 'novalue'}\r\n            data-event-action={Translations.print}\r\n            data-event-value={href || 'novalue'}\r\n            data-event-name={Translations.print}\r\n            onClick={togglePrintSidebar}\r\n          >\r\n            {Translations.printsidebarclose}\r\n            <i className=\"c-printsidebar__header__close-button__icon--close\" />\r\n          </button>\r\n        </div>\r\n        <div className=\"c-printsidebar__subheader\">\r\n          <h2 className=\"c-printsidebar__subheading\">\r\n            {Translations.printsidebarselectiontitle}\r\n          </h2>\r\n          <div className=\"c-printsidebar__radio-container\">\r\n            {Translations.printsidebarselectionparts && (\r\n              <div\r\n                aria-label={Translations.printsidebarselectionparts}\r\n                onClick={() => handleRadioChange(0)}\r\n              >\r\n                <button\r\n                  type=\"radio\"\r\n                  className={classNames({ selected: selectedRadio === 0 })}\r\n                />\r\n                <span>{Translations.printsidebarselectionparts}</span>\r\n              </div>\r\n            )}\r\n            {Translations.printsidebarselectionwholepage && (\r\n              <div\r\n                aria-label={Translations.printsidebarselectionwholepage}\r\n                onClick={() => handleRadioChange(1)}\r\n              >\r\n                <button\r\n                  type=\"radio\"\r\n                  className={classNames({ selected: selectedRadio === 1 })}\r\n                />\r\n                <span>{Translations.printsidebarselectionwholepage}</span>\r\n              </div>\r\n            )}\r\n          </div>\r\n        </div>\r\n        {selectedRadio !== 1 && (\r\n          <div className=\"c-printsidebar__selection-container\">\r\n            <p>{Translations.printsidebarselectionwhatparts}</p>\r\n            <div className=\"c-printsidebar__selection-container__checkbox-container\">\r\n              {printableItems &&\r\n                printableItems.map((item, index) => {\r\n                  if (!item?.innerText) return;\r\n                  let content = (\r\n                    <span\r\n                      dangerouslySetInnerHTML={{\r\n                        __html: stripHtml(getPrintSelectionTitle(item)),\r\n                      }}\r\n                    />\r\n                  );\r\n                  return (\r\n                    <div\r\n                      key={index}\r\n                      aria-label={Translations.printsidebarselectionparts}\r\n                      onClick={() => handlePrintSelection(item)}\r\n                    >\r\n                      <button\r\n                        type=\"checkbox\"\r\n                        id={`print-checkbox-${index}`}\r\n                        className={classNames({\r\n                          checked: checkedItems.includes(item),\r\n                        })}\r\n                      />\r\n                      {content}\r\n                    </div>\r\n                  );\r\n                })}\r\n            </div>\r\n          </div>\r\n        )}\r\n        <div className=\"c-printsidebar__button-container\">\r\n          {selectedRadio === 1 ? (\r\n            <button\r\n              data-event-category={href || 'novalue'}\r\n              data-event-action={Translations.printbuttonwholepage}\r\n              data-event-value={href || 'novalue'}\r\n              data-event-name={Translations.printbuttonwholepage}\r\n              className=\"c-printsidebar__button\"\r\n              type=\"button\"\r\n              onClick={() => setPrintClicked(true)}\r\n            >\r\n              <i className=\"c-printsidebar__button__icon--print\" />\r\n              {Translations.printbuttonwholepage}\r\n            </button>\r\n          ) : (\r\n            <button\r\n              data-event-category={href || 'novalue'}\r\n              data-event-action={Translations.printbuttonparts}\r\n              data-event-value={href || 'novalue'}\r\n              data-event-name={Translations.printbuttonparts}\r\n              className=\"c-printsidebar__button\"\r\n              type=\"button\"\r\n              onClick={() => setPrintClicked(true)}\r\n            >\r\n              <i className=\"c-printsidebar__button__icon--print\" />\r\n              {Translations.printbuttonparts}\r\n            </button>\r\n          )}\r\n        </div>\r\n      </div>\r\n      {printClicked && (\r\n        <PrintIframe\r\n          SelectedRadio={selectedRadio}\r\n          PrintableItems={printableItems}\r\n          CheckedItems={checkedItems}\r\n          SetPrintClicked={setPrintClicked}\r\n        />\r\n      )}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default PrintSidebar;\r\n","import classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\n\r\n/**\r\n * Heading for search result list\r\n *  \r\n * Example output: \r\n * \r\n ```html\r\n <h2><span class=\"t-total-hits\">12</span> sökträffar på <strong>feber</strong></h2>\r\n ```\r\n *\r\n */\r\nconst SearchHeading = ({\r\n  hideSearchHeading,\r\n  TotalHits,\r\n  ResultText,\r\n  SuggestionText,\r\n  ContentAfter = '',\r\n  query,\r\n  Modifiers,\r\n  activeFilterFacet,\r\n  showFilterResultText,\r\n  translations,\r\n  isVardpersonal1177,\r\n  siteAdress,\r\n}) => {\r\n  if (hideSearchHeading) return null;\r\n  if (!query && TotalHits === 0) return null;\r\n\r\n  SuggestionText\r\n    ? (SuggestionText.Query = decodeURIComponent(SuggestionText.Query))\r\n    : null;\r\n\r\n  const componentClass = classNames({\r\n    'c-searchlist__heading': true,\r\n    ...Modifiers,\r\n  });\r\n\r\n  const resultQueryText = query ? <strong>{query}</strong> : null;\r\n\r\n  const filterResultText =\r\n    showFilterResultText && activeFilterFacet ? (\r\n      <>\r\n        {isVardpersonal1177 ? translations.withfilter : translations.within}{' '}\r\n        <strong>{activeFilterFacet}</strong>{' '}\r\n      </>\r\n    ) : null;\r\n\r\n  const resultSiteText = siteAdress ? (\r\n    <>\r\n      {translations.on} {translations.site} <strong>{siteAdress}</strong>\r\n    </>\r\n  ) : null;\r\n\r\n  return (\r\n    <h2 className={componentClass}>\r\n      <span className=\"t-total-hits\" data-cy=\"ui-searchform-totalhits\">\r\n        {TotalHits}\r\n      </span>{' '}\r\n      {ResultText} {resultQueryText} {filterResultText} {resultSiteText}\r\n      {SuggestionText && SuggestionText?.Query && (\r\n        <span>\r\n          . {SuggestionText.Text}{' '}\r\n          <a href={SuggestionText.Url}>{SuggestionText.Query}</a>?\r\n        </span>\r\n      )}{' '}\r\n      {ContentAfter}\r\n    </h2>\r\n  );\r\n};\r\n\r\nSearchHeading.propTypes = {\r\n  /** If `true` component will not render */\r\n  hideSearchHeading: PropTypes.bool,\r\n  TotalHits: PropTypes.number,\r\n  ResultText: PropTypes.string,\r\n  showFilterResultText: PropTypes.bool,\r\n  translations: PropTypes.objectOf(PropTypes.string),\r\n  activeFilterFacet: PropTypes.string,\r\n  SuggestionText: PropTypes.shape({\r\n    Text: PropTypes.string,\r\n    Url: PropTypes.string,\r\n    Query: PropTypes.string,\r\n  }),\r\n  ContentAfter: PropTypes.node,\r\n  query: PropTypes.string,\r\n  Modifiers: PropTypes.object,\r\n  isVardpersonal1177: PropTypes.bool,\r\n};\r\n\r\nexport default SearchHeading;\r\n","/**\r\n * Repo: PWT.PlattformUI\r\n * Component: <SearchBlock>\r\n *\r\n * @description\r\n *  Complete search page block component\r\n *  with form, field and results list.\r\n */\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport queryString from 'qs';\r\nimport React, { Fragment } from 'react';\r\nimport MatomoTrackSearch from '../../platformui/Matomo/matomo-track-search';\r\nimport Alert from '../Alert';\r\nimport CollapsiblePanel from '../CollapsiblePanel';\r\nimport withSearch from '../Containers/withSearch';\r\nimport Facets from '../Facets';\r\nimport KeywordHints from '../KeywordHints';\r\nimport Pagination from '../Pagination';\r\nimport SearchField from '../Search/searchfield';\r\nimport Spinner from '../Spinner';\r\nimport TabMenu from '../TabMenu';\r\nimport { getExternalSiteAdress } from './external-search-utils';\r\nimport List from './list';\r\nimport SearchHeading from './searchheading';\r\n\r\nconst Search = (props) => {\r\n  const qs = queryString.parse(props.location.search, {\r\n    ignoreQueryPrefix: true,\r\n  });\r\n  const classes = classNames({\r\n    'is-loading': props.SearchResult.isLoading,\r\n    searchblock: true,\r\n  });\r\n\r\n  const searchToolsClasses = classNames({\r\n    'c-search__tools': true,\r\n    'c-search__tools--has-facets': props?.Facets,\r\n  });\r\n\r\n  const alertType = props.alertType ? props.alertType : 'warning';\r\n\r\n  let activeFilterFacet = '';\r\n\r\n  if (props.showFilterResultText) {\r\n    props.Facets?.Items?.map((item) => {\r\n      item.Facets.some((item) => {\r\n        if (item.Id === qs.facet && item.Id !== 'all') {\r\n          activeFilterFacet = item.Text;\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  return (\r\n    <div className={classes}>\r\n      <form\r\n        className=\"c-search\"\r\n        method=\"get\"\r\n        autoComplete=\"off\"\r\n        data-cy=\"ui-searchform\"\r\n        onSubmit={(e) => {\r\n          props.onSubmit(e, {\r\n            q: document.getElementById('section-search').value,\r\n            t: qs.t,\r\n            ...(props.useExternalSearch && { site: qs.site }),\r\n          });\r\n        }}\r\n      >\r\n        <div className=\"c-search__field\">\r\n          <label\r\n            className=\"c-search__field__label icon-search\"\r\n            htmlFor=\"section-search\"\r\n          >\r\n            {props.Placeholder ? (\r\n              <span className=\"show-for-sr\">{props.Placeholder}</span>\r\n            ) : null}\r\n          </label>\r\n\r\n          <SearchField\r\n            id=\"section-search\"\r\n            className=\"c-search\"\r\n            searchUrl=\"\"\r\n            placeholder={props.Placeholder}\r\n            defaultValue={qs.q}\r\n            hasQuickSearch={props.hasQuickSearch}\r\n            hasNoAutocomplete={props.hasNoAutocomplete}\r\n            SearchApiAutoCompleteUrl={props.SearchApiAutoCompleteUrl}\r\n            showSearchHitsHeadingSuffix={props.showSearchHitsHeadingSuffix}\r\n            defaultQuickSearch={props.CurrentPageProps.QuickSearchSettings}\r\n            site={props.CurrentPageProps.Site}\r\n          />\r\n          <input type=\"hidden\" name=\"t\" value={qs.t} />\r\n          <button\r\n            className=\"c-search__field__button\"\r\n            type=\"submit\"\r\n            data-cy=\"ui-searchform-submit-btn\"\r\n          >\r\n            {props.Translations.searchbutton}\r\n          </button>\r\n        </div>\r\n        {props.SearchResult.KeywordMessage && (\r\n          <KeywordHints KeywordMessage={props.SearchResult.KeywordMessage} />\r\n        )}\r\n\r\n        {props.SearchResult.IsSimpleFallbackSearch && (\r\n          <Alert type={alertType} alert={props}>\r\n            {props.SearchResult.ResultDisclaimer}\r\n          </Alert>\r\n        )}\r\n\r\n        {props.searchTabs && props.ExternalSearchContent && (\r\n          <TabMenu\r\n            key={props.searchApiIndex}\r\n            tabs={props.searchTabs?.map((tab) => ({\r\n              key: tab.SearchApiIndex,\r\n              label: tab.TabHeader,\r\n              count: tab.SearchResult?.TotalHits || 0,\r\n              isActive: tab.SearchApiIndex === props.searchApiIndex,\r\n              screenReaderText: `${tab.SearchResult?.TotalHits} ${\r\n                tab.SearchResult?.ResultText\r\n              } ${getExternalSiteAdress(tab.SearchApiIndex)}`,\r\n            }))}\r\n            handleTabChange={props.handleTabChange}\r\n            showCount\r\n            showResponsiveDropdown\r\n            srLabel={props?.Translations?.selectsearchsource}\r\n          />\r\n        )}\r\n\r\n        {props.Facets &&\r\n          props.CurrentPageProps.hasFilterBar &&\r\n          !props.showFilterBarWithFacets && (\r\n            <Facets\r\n              {...props}\r\n              queryString={qs}\r\n              pathname={props.location.pathname}\r\n            />\r\n          )}\r\n\r\n        {qs.q && (\r\n          <Fragment>\r\n            <div className={searchToolsClasses}>\r\n              <SearchHeading\r\n                {...props.SearchResult}\r\n                query={qs.q}\r\n                activeFilterFacet={activeFilterFacet}\r\n                showFilterResultText={props.showFilterResultText}\r\n                within={props.Translations.within}\r\n                translations={props.Translations}\r\n                isVardpersonal1177={props.vardpersonal1177}\r\n                siteAdress={!!qs?.site && getExternalSiteAdress(qs?.site)}\r\n              />\r\n              {((props.showFilterBarWithFacets && props.Facets) ||\r\n                ((props.HideCategoryFacets === false ||\r\n                  props.HideThemeFacets === false) &&\r\n                  !props.CurrentPageProps.hasFilterBar)) && (\r\n                <CollapsiblePanel\r\n                  Id=\"facetspanel\"\r\n                  className=\"c-collapsible-facets\"\r\n                  DefaultCollapsed={\r\n                    qs.category || qs.theme || !props?.filterBarDefaultOpen\r\n                  }\r\n                  Heading={props.Translations.filtersearchhitsheading}\r\n                >\r\n                  <Facets\r\n                    {...props}\r\n                    queryString={qs}\r\n                    pathname={props.location.pathname}\r\n                  />\r\n                </CollapsiblePanel>\r\n              )}\r\n            </div>\r\n\r\n            {qs.q.length > 0 &&\r\n              props.SearchResult.TotalHits === 0 &&\r\n              props.SearchResult.EmptySearchResultText && (\r\n                <Alert type={alertType} alert={props}>\r\n                  <div\r\n                    dangerouslySetInnerHTML={{\r\n                      __html: props.SearchResult.EmptySearchResultText,\r\n                    }}\r\n                  ></div>\r\n                </Alert>\r\n              )}\r\n          </Fragment>\r\n        )}\r\n      </form>\r\n      <List\r\n        {...props.SearchResult}\r\n        DisableClickTracking={props.DisableClickTracking}\r\n        translations={props.Translations}\r\n        query={qs.q}\r\n        revisedAsPublished={props.revisedAsPublished}\r\n        vardpersonal1177={props.vardpersonal1177}\r\n        isExternalSearchHit={props?.isExternalSearch}\r\n        regionalizeSearchHits={props?.searchApiIndex === '1177'}\r\n        availableLanguagesHeader={props?.AvailableLanguagesHeader}\r\n      >\r\n        <Pagination\r\n          onClick={() => document.getElementById('search-list-last').focus()}\r\n          {...props.SearchResult}\r\n          Spinner={<Spinner Modifiers={{ 'c-spinner--search': true }} />}\r\n        >\r\n          {props.SearchResult.BatchText}\r\n        </Pagination>\r\n      </List>\r\n      <MatomoTrackSearch\r\n        Search={qs?.q}\r\n        SearchCategory={props.searchApiIndex || 'Globalt sök'}\r\n        SearchHits={props.SearchResult?.TotalHits}\r\n        ExternalSearchHits={props.searchTabs}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n\r\nSearch.propTypes = {\r\n  //**Used when any website wants the revised text to be published text */\r\n  revisedAsPublished: PropTypes.bool,\r\n  location: PropTypes.object,\r\n  /** When we use custom click tracking - disable it with `true`. */\r\n  DisableClickTracking: PropTypes.bool,\r\n  /** isLoading is used by autocomplete. See search reducers */\r\n  showFilterResultText: PropTypes.bool,\r\n  SearchResult: PropTypes.shape({\r\n    isLoading: PropTypes.bool,\r\n    TotalHits: PropTypes.number,\r\n    EmptySearchResultText: PropTypes.string,\r\n    BatchText: PropTypes.string,\r\n  }),\r\n  /** From withSearch class */\r\n  onSubmit: PropTypes.func.isRequired,\r\n  Translations: PropTypes.shape({\r\n    searchprevioussr: PropTypes.string,\r\n    searchbutton: PropTypes.string,\r\n    filtersearchhitsheading: PropTypes.string,\r\n  }),\r\n  Placeholder: PropTypes.string,\r\n  HideCategoryFacets: PropTypes.bool,\r\n  HideThemeFacets: PropTypes.bool,\r\n  vardpersonal1177: PropTypes.bool,\r\n  showFilterBarWithFacets: PropTypes.bool,\r\n  useExternalSearch: PropTypes.bool,\r\n  showSearchHitsHeadingSuffix: PropTypes.bool,\r\n  filterBarDefaultOpen: PropTypes.bool,\r\n  searchOnMount: PropTypes.bool,\r\n  isExternalSearch: PropTypes.bool,\r\n  availableLanguagesHeader: PropTypes.string,\r\n};\r\n\r\nexport default withSearch(Search, 'Search', null, {});\r\n\r\nexport { Search };\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nconst Section = (props) => {\r\n  const classes = classNames('c-section', props.customClass, {\r\n    ...props.Modifiers,\r\n  });\r\n\r\n  const sectionClasses = classNames({\r\n    'c-section__inner': true,\r\n    'c-section__inner--double-column':\r\n      props.Modifiers && props.Modifiers['c-section__double-column'],\r\n  });\r\n\r\n  return (\r\n    <section className={classes}>\r\n      <div className=\"row\">\r\n        <div className=\"columns\">\r\n          <div className={sectionClasses}>{props.children}</div>\r\n        </div>\r\n      </div>\r\n    </section>\r\n  );\r\n};\r\n\r\nexport default Section;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport PrintSidebar from '../PrintSidebar';\r\nimport useWindowLocationHref from '../Hooks/useWindowLocation';\r\n\r\nconst Share = ({ ShareChannels, Translations, PrintsideBarEnabled }) => {\r\n  if (!ShareChannels) return null;\r\n  const href = useWindowLocationHref();\r\n\r\n  return (\r\n    <div className=\"c-share show-for-large\">\r\n      <h2 className=\"c-share__heading\">{Translations && Translations.share}</h2>\r\n      <ul className=\"c-share__list\">\r\n        {ShareChannels.map((item, key) => {\r\n          const shareChannelClass = classNames({\r\n            'c-share__icon': true,\r\n            [`c-share__icon--${item.Channel}`]: true,\r\n          });\r\n\r\n          return (\r\n            <li key={key} className=\"c-share__list__item\">\r\n              {item.Channel !== 'mailto' ? (\r\n                <button\r\n                  data-event-category={href || 'novalue'}\r\n                  data-event-action={Translations.copylink}\r\n                  data-event-value={href || 'novalue'}\r\n                  data-event-name={Translations.copylink}\r\n                  className=\"c-share__list__item__share-btn\"\r\n                  type=\"button\"\r\n                  title={Translations && Translations.copylink}\r\n                  onClick={() => {\r\n                    navigator.clipboard.writeText(item.ShareURL);\r\n                  }}\r\n                >\r\n                  <span data-event-include className={shareChannelClass} />\r\n                  <span className=\"show-for-sr\">\r\n                    {Translations && Translations.copylink}\r\n                  </span>\r\n                </button>\r\n              ) : (\r\n                <button\r\n                  data-event-category={href || 'novalue'}\r\n                  data-event-action={Translations.tipafriend}\r\n                  data-event-value={href || 'novalue'}\r\n                  data-event-name={Translations.tipafriend}\r\n                  type=\"button\"\r\n                  className=\"c-share__list__item__share-btn\"\r\n                  title={Translations && Translations.tipafriend}\r\n                  onClick={() => {\r\n                    if (typeof window !== 'undefined') {\r\n                      window.location.href = item.ShareURL;\r\n                    }\r\n                  }}\r\n                >\r\n                  <span data-event-include className={shareChannelClass} />\r\n                  <span className=\"show-for-sr\">\r\n                    {Translations && Translations.tipafriend}\r\n                  </span>\r\n                </button>\r\n              )}\r\n            </li>\r\n          );\r\n        })}\r\n        <li className=\"c-share__list__item\">\r\n          {PrintsideBarEnabled ? (\r\n            <PrintSidebar\r\n              ShareChannels={ShareChannels}\r\n              Translations={Translations}\r\n            />\r\n          ) : (\r\n            <button\r\n              data-event-category={href || 'novalue'}\r\n              data-event-action={Translations.print}\r\n              data-event-value={href || 'novalue'}\r\n              data-event-name={Translations.print}\r\n              className=\"c-share__list__item__share-btn\"\r\n              type=\"button\"\r\n              onClick={() => {\r\n                window.print();\r\n              }}\r\n              title={Translations && Translations.print}\r\n            >\r\n              <span\r\n                data-event-include\r\n                className=\"c-share__icon c-share__icon--print\"\r\n              />\r\n              <span className=\"show-for-sr\">\r\n                {Translations && Translations.print}\r\n              </span>\r\n            </button>\r\n          )}\r\n        </li>\r\n      </ul>\r\n    </div>\r\n  );\r\n};\r\n\r\nShare.propTypes = {\r\n  ShareChannels: PropTypes.array,\r\n  Translations: PropTypes.object,\r\n  PrintsideBarEnabled: PropTypes.bool,\r\n};\r\n\r\nexport default Share;\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\nimport SemanticHeader from '../Chapter/semantic-header';\r\n\r\nconst Shortcuts = (props) => {\r\n  if (!props.LinkContent || props.LinkContent.length === 0) return null;\r\n\r\n  return (\r\n    <div className=\"c-shortcuts\" data-cy=\"ui-shortcuts\">\r\n      {props.Heading && (\r\n        <SemanticHeader\r\n          isH3={!!props?.isH3}\r\n          className={classNames({\r\n            'c-shortcuts__heading': true,\r\n            'c-shortcuts__heading--chapter-container':\r\n              props?.isMemberOfChapterContainer,\r\n            'c-shortcuts__heading--isH3': props?.isH3,\r\n          })}\r\n        >\r\n          {props.Heading}\r\n        </SemanticHeader>\r\n      )}\r\n      <ul className=\"c-shortcuts__list\">\r\n        {props.LinkContent.map((item, index) => {\r\n          return (\r\n            <li key={`compliment${index}`} className=\"c-shortcuts__list__item\">\r\n              <a href={item.Link}>\r\n                <span className=\"c-shortcuts__list__item__container\">\r\n                  {item.ImageUrl && (\r\n                    <span\r\n                      className=\"c-shortcuts__list__item__container__img\"\r\n                      style={{\r\n                        backgroundImage: `url(${\r\n                          item.ImageUrl + '?preset=preset_300'\r\n                        })`,\r\n                      }}\r\n                    ></span>\r\n                  )}\r\n                  <span className=\"c-shortcuts__list__item__container__text\">\r\n                    <span className=\"c-shortcuts__list__item__container__title\">\r\n                      {item.Heading}\r\n                    </span>\r\n                    {item.Description && (\r\n                      <span className=\"c-shortcuts__list__item__container__description\">\r\n                        {item.Description}\r\n                      </span>\r\n                    )}\r\n                  </span>\r\n                </span>\r\n              </a>\r\n            </li>\r\n          );\r\n        })}\r\n      </ul>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Shortcuts;\r\n","import classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { isMediumViewport } from '../Hooks/useMedia';\r\nimport useWindowLocationHref from '../Hooks/useWindowLocation';\r\nimport CustomSelect from '../Inputs/custom-select';\r\n\r\nconst TabMenu = ({\r\n  tabs,\r\n  handleTabChange,\r\n  showCount,\r\n  showResponsiveDropdown,\r\n  srLabel,\r\n}) => {\r\n  const handleClick = (key) => {\r\n    handleTabChange(key);\r\n  };\r\n\r\n  const href = useWindowLocationHref();\r\n  const isMedium = isMediumViewport();\r\n\r\n  if (showResponsiveDropdown && isMedium) {\r\n    return (\r\n      <CustomSelect\r\n        srLabel={srLabel}\r\n        options={tabs.map((tab) => ({\r\n          key: tab.key,\r\n          value: tab.label + (showCount && ` (${tab.count})`),\r\n        }))}\r\n        selectedItem={tabs.find((tab) => tab.isActive)}\r\n        onChange={(selectedOption) => {\r\n          handleClick(selectedOption.key);\r\n        }}\r\n        id={'search'}\r\n      />\r\n    );\r\n  }\r\n  return (\r\n    <nav className=\"c-tab-menu\">\r\n      <ul className=\"c-tab-menu__list\">\r\n        {tabs.map((tab) => (\r\n          <li\r\n            data-event-category=\"Syskonsajtsök 1177 Vårdperonal\"\r\n            data-event-action={tab.label}\r\n            data-event-name={href || 'novalue'}\r\n            data-event-value={tab.count}\r\n            key={tab.key}\r\n            className={'c-tab-menu__item'}\r\n          >\r\n            <button\r\n              onClick={(e) => {\r\n                e.preventDefault();\r\n                handleClick(tab.key);\r\n              }}\r\n              className={classNames({\r\n                'c-tab-menu__button': true,\r\n                'c-tab-menu__button--active': tab.isActive,\r\n              })}\r\n              aria-label={tab.screenReaderText}\r\n            >\r\n              <span aria-hidden data-event-include>\r\n                {tab.label}\r\n                {showCount && ` (${tab.count})`}\r\n              </span>\r\n            </button>\r\n          </li>\r\n        ))}\r\n      </ul>\r\n    </nav>\r\n  );\r\n};\r\n\r\nTabMenu.propTypes = {\r\n  tabs: PropTypes.arrayOf(\r\n    PropTypes.shape({\r\n      key: PropTypes.string.isRequired,\r\n      label: PropTypes.string.isRequired,\r\n      totalHits: PropTypes.number,\r\n      isActive: PropTypes.bool.isRequired,\r\n      screenReaderText: PropTypes.string,\r\n    })\r\n  ).isRequired,\r\n  handleTabChange: PropTypes.func.isRequired,\r\n  showCount: PropTypes.bool,\r\n};\r\n\r\nexport default TabMenu;\r\n","import classNames from 'classnames';\r\nimport { any, node, number, string } from 'prop-types';\r\nimport React from 'react';\r\nimport * as Render from '../Base/Render';\r\nimport FormatDateTime from '../FormatDateTime';\r\nimport { LazyLoadImage } from '../Image';\r\n\r\nconst SplitColumns = ({ children, split, className }) => {\r\n  if (!split) return children;\r\n\r\n  return <div className={className}>{children}</div>;\r\n};\r\n\r\nconst ArticleList = (props) => {\r\n  const getColumnClasses = (numOfItems, blockName) => {\r\n    if (blockName === 'DoubleColumnBlock') {\r\n      return 'column';\r\n    }\r\n\r\n    return classNames({\r\n      columns: true,\r\n      'medium-8': numOfItems === 1,\r\n      'medium-4': numOfItems === 3 || numOfItems === 2,\r\n      'medium-6 large-3': numOfItems > 3,\r\n    });\r\n  };\r\n\r\n  const columnClasses = getColumnClasses(\r\n    props.numOfItems,\r\n    props.blockName ? props.blockName : props.pageName\r\n  );\r\n\r\n  const teaserTheme = classNames({\r\n    'c-article-list__theme--default': !props.Theme,\r\n    [`c-article-list__theme--${props.Theme}`]: props.Theme,\r\n  });\r\n\r\n  const headerClasses = classNames({\r\n    'c-article-list__heading': true,\r\n    [teaserTheme]: props.Theme,\r\n  });\r\n\r\n  const infoType = `c-article-list__type--${props.InformationType}`;\r\n  const teaserClasses = classNames({\r\n    'c-article-list': true,\r\n    'c-article-list--related': true,\r\n    'c-article-list--no-text': !props.Preamble,\r\n    'c-article-list--full-layout': props.numOfItems === 1,\r\n    'c-article-list--nth1': props.numOfItems === 1,\r\n    'c-article-list--nth2': props.numOfItems === 2,\r\n    'c-article-list--nth3': props.numOfItems === 3,\r\n    'c-article-list--gt1': props.numOfItems > 1,\r\n    'c-article-list--gt2': props.numOfItems > 2,\r\n    'c-article-list--gt3': props.numOfItems > 3,\r\n    'c-article-list--double-column': props.blockName === 'DoubleColumnBlock',\r\n    [`c-article-list--${props.Theme}`]: props.Theme,\r\n    [teaserTheme]: props.Theme,\r\n    [infoType]: props.InformationType,\r\n  });\r\n\r\n  const setPreset = () => {\r\n    switch (props.numOfItems) {\r\n      case 1:\r\n      case 2:\r\n        return '1200px';\r\n      default:\r\n        return '407px';\r\n    }\r\n  };\r\n\r\n  //If only one then split into two columnClasses\r\n  const rowSplit = classNames({\r\n    row: props.numOfItems === 1,\r\n    'u-flexwrap': props.numOfItems === 1,\r\n    'c-article-list--center': props.numOfItems <= 2,\r\n  });\r\n\r\n  const splitColumns = classNames({\r\n    'medium-6 columns': props.Media && props.numOfItems === 1,\r\n    'medium-12 columns': !props.Media && props.numOfItems === 1,\r\n  });\r\n\r\n  const teaserContainsImage =\r\n    props.Media &&\r\n    props.Media[0] &&\r\n    props.Media[0].ImageUrl &&\r\n    props.Media[0].ImageUrl.length > 0;\r\n\r\n  return (\r\n    <div className={columnClasses}>\r\n      {props.Title && (\r\n        <div className={teaserClasses}>\r\n          <SplitColumns\r\n            {...props}\r\n            split={props.numOfItems === 1}\r\n            className={rowSplit}\r\n          >\r\n            {props.Media && (\r\n              <SplitColumns\r\n                {...props}\r\n                split={props.numOfItems === 1}\r\n                className={splitColumns}\r\n              >\r\n                <div className=\"c-article-list__img-container\">\r\n                  {props.ShowVideoPlayIcon && teaserContainsImage && (\r\n                    <img\r\n                      src={'/ClientResources/Icons/play-button-small-white.svg'}\r\n                      alt={'Artikel innehåller video'}\r\n                      title={'Artikel innehåller video'}\r\n                      className=\"c-teaser-videoicon\"\r\n                      tabIndex={'-1'}\r\n                    />\r\n                  )}\r\n\r\n                  <Render.Block\r\n                    blocks={props.Media}\r\n                    propertyName=\"TeaserMedia\"\r\n                    currentPageProps={props}\r\n                  >\r\n                    <LazyLoadImage\r\n                      className=\"c-article-list__img\"\r\n                      isBackgroundImage={true}\r\n                      DefaultPreset={{ name: 'preset_1000' }}\r\n                      Alt={props.ImageDescription}\r\n                      Sizes={{\r\n                        sizes: `(min-width: 1025px) ${setPreset()}, (min-width: 640px) calc(100vw / 3), 100vw`,\r\n                      }}\r\n                    />\r\n                  </Render.Block>\r\n                </div>\r\n              </SplitColumns>\r\n            )}\r\n            <SplitColumns\r\n              {...props}\r\n              split={props.numOfItems === 1}\r\n              className={splitColumns}\r\n            >\r\n              <div className=\"c-article-list__content-wrapper\">\r\n                <div className=\"c-article-list__content\">\r\n                  {props.Vignette && (\r\n                    <span className=\"c-article-list__vignette\">\r\n                      {props.Vignette}\r\n                    </span>\r\n                  )}\r\n                  {props.Date && <FormatDateTime date={props.Date} />}\r\n                  {props.use1177ProfessionDesign ? (\r\n                    <h3 className={headerClasses}>\r\n                      <i className=\"c-article-list__vardpersonal__icon-arrow-right-blue\"></i>\r\n                      <a\r\n                        className=\"c-article-list__vardpersonal__link\"\r\n                        href={props.Url}\r\n                      >\r\n                        {props.Title}\r\n                      </a>\r\n                    </h3>\r\n                  ) : (\r\n                    <h3 className={headerClasses}>\r\n                      <a\r\n                        data-event-category={props.Url}\r\n                        data-event-action={props.Title}\r\n                        data-event-name=\"Artikel i lista\"\r\n                        className=\"c-article-list__link\"\r\n                        href={props.Url}\r\n                      >\r\n                        {props.Title}\r\n                      </a>\r\n                    </h3>\r\n                  )}\r\n                  {typeof props.Preamble === 'string' && (\r\n                    <div className=\"c-article-list__text\">\r\n                      <p>{props.Preamble}</p>\r\n                    </div>\r\n                  )}\r\n                </div>\r\n              </div>\r\n            </SplitColumns>\r\n          </SplitColumns>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nArticleList.propTypes = {\r\n  Preamble: node,\r\n  numOfItems: number,\r\n  Vignette: node,\r\n  Theme: string,\r\n  Title: string,\r\n  Url: string,\r\n  Media: any,\r\n};\r\n\r\nexport default ArticleList;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { useSweLang } from '../Helpers/helpers';\r\n\r\nconst ListViewToggler = (props) => {\r\n  return (\r\n    <div className=\"list-view-toggler\">\r\n      <span\r\n        className=\"list-view-toggler__text\"\r\n        lang={useSweLang(props.Language)}\r\n      >\r\n        {props.translations.showcontentas}\r\n      </span>\r\n      <button\r\n        className={classNames({\r\n          'list-view-toggler__btn': true,\r\n          'list-view-toggler__btn--brickview': true,\r\n          'list-view-toggler__btn--is-selected': props.toggleBrickView,\r\n        })}\r\n        aria-checked={props.toggleBrickView}\r\n        role=\"radio\"\r\n        type=\"radio\"\r\n        onClick={() => props.onClick(true)}\r\n      >\r\n        <span className=\"show-for-sr\" lang={useSweLang(props.Language)}>\r\n          {props.translations.showasbricks}\r\n        </span>\r\n      </button>\r\n      <button\r\n        className={classNames({\r\n          'list-view-toggler__btn': true,\r\n          'list-view-toggler__btn--listview': true,\r\n          'list-view-toggler__btn--is-selected': !props.toggleBrickView,\r\n        })}\r\n        aria-checked={!props.toggleBrickView}\r\n        role=\"radio\"\r\n        type=\"radio\"\r\n        onClick={() => props.onClick(false)}\r\n      >\r\n        <span className=\"show-for-sr\" lang={useSweLang(props.Language)}>\r\n          {props.translations.showaslist}\r\n        </span>\r\n      </button>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ListViewToggler;\r\n","import React, { useState } from 'react';\r\nimport classNames from 'classnames';\r\nimport ArticleList from '../ArticleList'; //TODO fixa mer generiskt\r\nimport * as Render from '../Base/Render';\r\nimport { useSweLang } from '../Helpers/helpers';\r\nimport { LazyLoadImage } from '../Image';\r\nimport Linklist from '../Linklist';\r\nimport Section from '../Section';\r\nimport ListViewToggler from './list-view-toggler';\r\nimport useWindowLocationHref from '../Hooks/useWindowLocation';\r\n\r\nconst TeaserItemLinkList = (props) => {\r\n  const href = useWindowLocationHref();\r\n  const contentClassNames = classNames({\r\n    'c-teaser__content': true,\r\n    'c-teaser__content--with-img': props.Media,\r\n  });\r\n\r\n  const teaserContainsImage =\r\n    props.Media &&\r\n    props.Media[0] &&\r\n    props.Media[0].ImageUrl &&\r\n    props.Media[0].ImageUrl.length > 0;\r\n\r\n  return (\r\n    <li className=\"medium-6 large-3 columns\">\r\n      <div\r\n        className={classNames({\r\n          'c-teaser': true,\r\n        })}\r\n      >\r\n        {props.Media && (\r\n          <div className=\"c-teaser__img-container\">\r\n            {props.ShowVideoPlayIcon && teaserContainsImage && (\r\n              <img\r\n                src={'/ClientResources/Icons/play-button-small-white.svg'}\r\n                alt={'Artikel innehåller video'}\r\n                title={'Artikel innehåller video'}\r\n                className=\"c-teaser-videoicon\"\r\n                tabIndex={'-1'}\r\n              />\r\n            )}\r\n\r\n            <div className=\"c-teaser__img\">\r\n              <Render.Block\r\n                blocks={props.Media}\r\n                propertyName=\"TeaserMedia\"\r\n                currentPageProps={props}\r\n              >\r\n                <LazyLoadImage\r\n                  isBackgroundImage={true}\r\n                  DefaultPreset={{ name: 'preset_600' }}\r\n                  Sizes={{\r\n                    sizes:\r\n                      '(min-width: 1025px) 300px, (min-width: 640px) calc(100vw / 3) , 100vw',\r\n                  }}\r\n                />\r\n              </Render.Block>\r\n            </div>\r\n          </div>\r\n        )}\r\n        <div className={contentClassNames}>\r\n          <h3\r\n            data-event-category={href || 'novalue'}\r\n            data-event-action={props.Title}\r\n            data-event-value={props.Url}\r\n            data-event-name=\"TeaserItemLinkList\"\r\n            className=\"c-teaser__heading\"\r\n            dir={props.Dir}\r\n          >\r\n            <a\r\n              data-event-include\r\n              className=\"c-teaser__heading__link\"\r\n              href={props.Url}\r\n            >\r\n              <span data-event-include>{props.Title}</span>\r\n            </a>\r\n          </h3>\r\n          {props.TitleTranslation && (\r\n            <span\r\n              dir=\"ltr\"\r\n              className=\"c-teaser__translation\"\r\n              lang={useSweLang(props.Lang)}\r\n            >\r\n              {props.TitleTranslation}\r\n            </span>\r\n          )}\r\n          <div className=\"c-teaser__text\">\r\n            {props.Preamble && <p>{props.Preamble}</p>}\r\n            <Linklist Modifiers={{ 'teaser-linklist': true }} {...props} />\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </li>\r\n  );\r\n};\r\n\r\nconst TeaserItemLink = (props) => {\r\n  const href = useWindowLocationHref();\r\n  const classes = props.className\r\n    ? props.className\r\n    : props.horizontalDirection\r\n    ? 'columns c-teaser-outer'\r\n    : 'medium-6 large-3 columns c-teaser-outer';\r\n\r\n  const teaserHeadingLink = classNames({\r\n    'c-teaser__heading--no-text': !props.Preamble,\r\n  });\r\n\r\n  const teaserClasses = classNames({\r\n    'c-teaser': true,\r\n    'c-teaser--eq-height': true,\r\n    'c-teaser--has-img': props.Media,\r\n  });\r\n\r\n  const teaserContainsImage =\r\n    props.Media &&\r\n    props.Media[0] &&\r\n    props.Media[0].ImageUrl &&\r\n    props.Media[0].ImageUrl.length > 0;\r\n\r\n  return (\r\n    <li className={classes} data-cy=\"ui-teaser\">\r\n      <div className={teaserClasses} aria-label={props.Title}>\r\n        <div\r\n          className={classNames({\r\n            'c-teaser__wrapper': true,\r\n            'c-teaser__direction-row': props.horizontalDirection,\r\n          })}\r\n        >\r\n          {props.Media && (\r\n            <div className=\"c-teaser__img-container\">\r\n              {props.ShowVideoPlayIcon && teaserContainsImage && (\r\n                <img\r\n                  src={'/ClientResources/Icons/play-button-small-white.svg'}\r\n                  alt={'Artikel innehåller video'}\r\n                  title={'Artikel innehåller video'}\r\n                  className=\"c-teaser-videoicon\"\r\n                  tabIndex={'-1'}\r\n                />\r\n              )}\r\n\r\n              <Render.Block\r\n                blocks={props.Media}\r\n                propertyName=\"TeaserMedia\"\r\n                currentPageProps={props}\r\n              >\r\n                <LazyLoadImage\r\n                  isBackgroundImage={true}\r\n                  className=\"c-teaser__img\"\r\n                  DefaultPreset={{ name: 'preset_600' }}\r\n                  Sizes={{\r\n                    sizes:\r\n                      '(min-width: 1025px) 300px, (min-width: 640px) calc(100vw / 3), 100vw',\r\n                  }}\r\n                />\r\n              </Render.Block>\r\n            </div>\r\n          )}\r\n          <div className=\"c-teaser__content\">\r\n            <h3\r\n              data-event-category={href || 'novalue'}\r\n              data-event-action={props.Title}\r\n              data-event-value={props.Url}\r\n              data-event-name=\"TeaserItemLink\"\r\n              className=\"c-teaser__heading\"\r\n              dir={props.Dir}\r\n            >\r\n              <a className={teaserHeadingLink} href={props.Url}>\r\n                <span data-event-include className=\"c-teaser__heading__link\">\r\n                  <span data-event-include>{props.Title}</span>\r\n                </span>\r\n              </a>\r\n            </h3>\r\n            {props.TitleTranslation && (\r\n              <span\r\n                dir=\"ltr\"\r\n                className=\"c-teaser__translation\"\r\n                lang={useSweLang(props.Lang)}\r\n              >\r\n                {props.TitleTranslation}\r\n              </span>\r\n            )}\r\n            {props.Preamble && (\r\n              <div className=\"c-teaser__text\">\r\n                <p>{props.Preamble}</p>\r\n              </div>\r\n            )}\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </li>\r\n  );\r\n};\r\n\r\nconst ListChildren = (props) => {\r\n  if (!props.Items) return null;\r\n  let masonryLayout = props.IsListOfChildren || props.masonryLayout;\r\n\r\n  const listStyle = classNames({\r\n    row: props.Items.length > 2,\r\n    'u-flexwrap': !masonryLayout || !props.toggleBrickView,\r\n    'u-columns': masonryLayout,\r\n    'u-columns--gt-3': masonryLayout && props.Items.length > 3,\r\n    'u-columns--gt-4': masonryLayout && props.Items.length > 4,\r\n    'u-columns--is-listview': masonryLayout && !props.toggleBrickView,\r\n    'u-flexwrap--is-listview': !props.toggleBrickView,\r\n    'u-article--center': props.Items.length <= 2,\r\n    ...props.WrapperModifiers,\r\n  });\r\n\r\n  const Items = props.Items.map((item, index) => {\r\n    if (\r\n      props.BlockTypeName === 'PageListBlock' ||\r\n      props.Design === 'page-list'\r\n    ) {\r\n      return props.IsListOfChildren ? (\r\n        <TeaserItemLinkList key={`teaser${index}`} {...item} />\r\n      ) : (\r\n        <TeaserItemLink key={`teaser${index}`} {...item} />\r\n      );\r\n    } else if (props.CurrentPageProps.BlockTypeName === 'DoubleColumnBlock') {\r\n      return (\r\n        <ArticleList\r\n          key={`teaser${index}`}\r\n          {...item}\r\n          numOfItems={props.Items.length}\r\n          blockName={props.CurrentPageProps.BlockTypeName}\r\n        />\r\n      );\r\n    } else {\r\n      return (\r\n        <ArticleList\r\n          key={`teaser${index}`}\r\n          {...item}\r\n          numOfItems={props.Items.length}\r\n          pageName={props.CurrentPageProps.PageTypeName}\r\n          use1177ProfessionDesign={\r\n            props.CurrentPageProps?.FeatureToggleSettings\r\n              ?.Use1177ProfessionDesign\r\n          }\r\n        />\r\n      );\r\n    }\r\n  });\r\n\r\n  let cypressValues = classNames({\r\n    'ui-article-list': props.BlockTypeName === 'ManuelPageListBlock',\r\n    'ui-search-article-list': props.BlockTypeName == 'SearchArticleListBlock',\r\n  });\r\n  if (cypressValues.length < 1) cypressValues = null;\r\n\r\n  return props.BlockTypeName === 'PageListBlock' ? (\r\n    <ul className={listStyle} data-cy={cypressValues}>\r\n      {props.BlockTypeName === 'PageListBlock'\r\n        ? Render.Property(Items, 'ListRoot')\r\n        : Render.Property(Items, 'MainContent')}\r\n    </ul>\r\n  ) : (\r\n    <div className={listStyle} data-cy={cypressValues}>\r\n      {props.BlockTypeName === 'PageListBlock'\r\n        ? Render.Property(Items, 'ListRoot')\r\n        : Render.Property(Items, 'MainContent')}\r\n    </div>\r\n  );\r\n};\r\n\r\nconst Teaser = (props) => {\r\n  const modifiers = {\r\n    ...props.SectionModifiers,\r\n    'c-section--navigation': props.BlockTypeName === 'PageListBlock',\r\n  };\r\n\r\n  const [toggleBrickView, setToggleBrickView] = useState(!props.ShowListView);\r\n\r\n  const showListViewToggler =\r\n    props.BlockTypeName === 'PageListBlock' && props.UseListToggler;\r\n\r\n  const sectionHeader = classNames({\r\n    'c-section__header': true,\r\n    'c-section__header--listview-shown': showListViewToggler,\r\n    'c-section__header--heading-shown': props.Heading,\r\n    'c-section__header--double-column':\r\n      props.CurrentPageProps.BlockTypeName == 'DoubleColumnBlock',\r\n  });\r\n\r\n  return (\r\n    <Section Modifiers={modifiers}>\r\n      <div className=\"row\">\r\n        <div className=\"columns\">\r\n          <header className={sectionHeader}>\r\n            {props.Heading ? (\r\n              <h2 className=\"c-section__heading\">\r\n                <span>{props.Heading}</span>\r\n              </h2>\r\n            ) : (\r\n              <h2 className=\"show-for-sr\">\r\n                {props.Translations?.currentarticles}\r\n              </h2>\r\n            )}\r\n            {showListViewToggler && (\r\n              <ListViewToggler\r\n                Language={props.CurrentPageProps.Language}\r\n                translations={props.Translations}\r\n                onClick={(value) => {\r\n                  setToggleBrickView(value);\r\n                }}\r\n                toggleBrickView={toggleBrickView}\r\n              />\r\n            )}\r\n          </header>\r\n        </div>\r\n      </div>\r\n      {props.Items && (\r\n        <ListChildren {...props} toggleBrickView={toggleBrickView} />\r\n      )}\r\n      {props.children}\r\n    </Section>\r\n  );\r\n};\r\n\r\nexport { Teaser, TeaserItemLink };\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nconst Theme = (props) => {\r\n  if (!props.Content) return props.children;\r\n\r\n  const theme = classNames({\r\n    'theme--faq':\r\n      props.Content.Theme === 'faq' || props.PageTypeName === 'FaqPage',\r\n    'theme--story':\r\n      props.Content.Theme === 'story' || props.PageTypeName === 'StoryPage',\r\n    'theme--pod':\r\n      props.Content.Theme === 'podcast' || props.PageTypeName === 'PodcastPage',\r\n    'theme--forum':\r\n      props.Content.Theme === 'forum' || props.PageTypeName === 'ForumPage',\r\n  });\r\n\r\n  const themeClass = classNames(\r\n    {\r\n      'theme--is-theme': theme.length > 0,\r\n    },\r\n    theme\r\n  );\r\n\r\n  return theme.length > 0 ? (\r\n    <div className={themeClass}>\r\n      <div className=\"theme__icon\"></div>\r\n      {props.children}\r\n    </div>\r\n  ) : (\r\n    props.children\r\n  );\r\n};\r\n\r\nexport default Theme;\r\n","import React, { useState, useEffect } from 'react';\r\nimport classNames from 'classnames';\r\nimport { equalSectionIdsOnPageLoad } from '../Containers/withAnchorNav';\r\nimport { isMediumViewport } from '../Hooks/useMedia';\r\n\r\nconst ToggleChapter = (props) => {\r\n  const [isOpen, setIsOpen] = useState(\r\n    !isMediumViewport()\r\n      ? true\r\n      : equalSectionIdsOnPageLoad(props.AnchorSectionId)\r\n  );\r\n\r\n  useEffect(() => {\r\n    if (!equalSectionIdsOnPageLoad(props.AnchorSectionId)) return;\r\n    const element = document.getElementById(props.AnchorSectionId);\r\n    if (!element) return;\r\n    const elementTop = element.getBoundingClientRect().top + window.scrollY;\r\n    window.scrollTo({ top: elementTop, behavior: 'smooth' });\r\n  }, [props.AnchorSectionId]);\r\n\r\n  return (\r\n    <div\r\n      className=\"toggle-chapter\"\r\n      id={props.isChapterContainer ? props.AnchorSectionId : undefined}\r\n    >\r\n      {isMediumViewport() ? (\r\n        <details\r\n          open={isOpen}\r\n          onToggle={(e) => setIsOpen(e.target.open)}\r\n          id={props.id}\r\n        >\r\n          <summary className=\"toggle-chapter__button\" aria-expanded={isOpen}>\r\n            <h2 className=\"toggle-chapter__heading\">{props.Heading}</h2>\r\n            <i\r\n              className={classNames({\r\n                'chevron--toggle-chapter': true,\r\n                'chevron--toggle-chapter--is-open': isOpen,\r\n              })}\r\n            />\r\n          </summary>\r\n          {props.children}\r\n        </details>\r\n      ) : (\r\n        props.children\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ToggleChapter;\r\n","import React from 'react';\r\nimport SemanticHeader from '../Chapter/semantic-header';\r\n\r\nconst Iframe = ({\r\n  title,\r\n  src,\r\n  caption,\r\n  className,\r\n  heading,\r\n  isH3,\r\n  isStandingVideo,\r\n  hideTitle,\r\n  hideCaption,\r\n  isGallery,\r\n  galleryLink,\r\n}) => {\r\n  return (\r\n    <>\r\n      {heading && !hideTitle && !isGallery && (\r\n        <SemanticHeader className={`${className}__heading`} isH3={isH3}>\r\n          {heading}\r\n        </SemanticHeader>\r\n      )}\r\n      <div\r\n        className={`${className} ${isStandingVideo ? 'standing' : ''} ${\r\n          isGallery ? 'gallery' : ''\r\n        }`}\r\n      >\r\n        <div className={`${className}__container`}>\r\n          <iframe\r\n            title={title}\r\n            src={src}\r\n            allow=\"encrypted-media\"\r\n            allowFullScreen\r\n            sandbox=\"allow-scripts allow-same-origin allow-presentation\"\r\n          ></iframe>\r\n        </div>\r\n        <div className={`${className}__container__wrapper`}>\r\n          {heading && !hideTitle && isGallery && (\r\n            <SemanticHeader className={`${className}__heading`} isH3={isH3}>\r\n              {heading}\r\n            </SemanticHeader>\r\n          )}\r\n          {caption && !hideCaption && (\r\n            <div className={`${className}__caption`}>\r\n              <p>{caption}</p>\r\n            </div>\r\n          )}\r\n          {galleryLink.Link && galleryLink.LinkText && (\r\n            <div className=\"c-linklist\">\r\n              <a\r\n                className=\"c-linklist c-anchor c-linklist__link\"\r\n                href={galleryLink.Link}\r\n              >\r\n                <span>{galleryLink.LinkText}</span>\r\n              </a>\r\n            </div>\r\n          )}\r\n        </div>\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\nexport default Iframe;\r\n","import T from 'prop-types';\r\nimport React, { Fragment } from 'react';\r\nimport Iframe from '../Iframe';\r\n\r\nconst DREAMBROKER_URL = (videoId) => `https://dreambroker.com/${videoId}`;\r\n\r\nconst Video = ({\r\n  Heading,\r\n  VideoTitle,\r\n  VideoId,\r\n  VideoText,\r\n  IsMediaFlowPro,\r\n  IsDreamBroker,\r\n  IsQbrick,\r\n  isH3,\r\n  IsStandingVideo,\r\n  hideTitle,\r\n  hideCaption,\r\n  isGallery,\r\n  Link,\r\n  InternalLinkName,\r\n  LinkText,\r\n  CurrentPageProps,\r\n}) => {\r\n  if (!VideoId) return null;\r\n\r\n  let videoUrl = null;\r\n  videoUrl =\r\n    (IsDreamBroker && DREAMBROKER_URL(VideoId)) ||\r\n    (IsQbrick && VideoId) ||\r\n    (IsMediaFlowPro && VideoId);\r\n\r\n  const addTimeUpdateParam = (videourl) => {\r\n    if (\r\n      (/play\\.mediaflowpro\\.com/.test(videourl) ||\r\n        /play\\.mediaflow\\.com/.test(videourl)) &&\r\n      !/(\\?|&)timeupdate\\b/.test(videourl)\r\n    ) {\r\n      const separator = videourl.includes('?') ? '&' : '?';\r\n      videourl += `${separator}timeupdate`;\r\n    }\r\n    return videourl;\r\n  };\r\n\r\n  const dataPrintSidebarTitle =\r\n    Heading || CurrentPageProps?.Content?.Translations?.videoblock || 'Film';\r\n\r\n  return (\r\n    <Fragment>\r\n      <div\r\n        className=\"c-video__wrapper\"\r\n        data-print-sidebar-title={dataPrintSidebarTitle}\r\n      >\r\n        <Iframe\r\n          title={VideoTitle}\r\n          data-matomo-title={VideoTitle}\r\n          className=\"c-video\"\r\n          src={addTimeUpdateParam(videoUrl)}\r\n          caption={VideoText}\r\n          heading={Heading}\r\n          isH3={isH3}\r\n          isStandingVideo={IsStandingVideo}\r\n          hideCaption={hideCaption}\r\n          hideTitle={hideTitle}\r\n          isGallery={isGallery}\r\n          galleryLink={{ Link, LinkText: LinkText || InternalLinkName }}\r\n        />\r\n        <div className=\"c-video__print-info print-only\">\r\n          <span>Video: {videoUrl}</span>\r\n          <p>{VideoText}</p>\r\n        </div>\r\n      </div>\r\n    </Fragment>\r\n  );\r\n};\r\n\r\nVideo.propTypes = {\r\n  Heading: T.string,\r\n  VideoTitle: T.string,\r\n  /** Component will return `null` if no VideoId is provided */\r\n  VideoId: T.string,\r\n  VideoText: T.string,\r\n  isH3: T.string,\r\n};\r\n\r\nexport default Video; // killed the radio star\r\n","import React, { useEffect } from 'react';\r\nimport IsInRange from '../Base/Sensors/isInRange';\r\n\r\nconst List = (props) => {\r\n  useEffect(() => {\r\n    props.handleLetterChange(props.letter);\r\n  }, [props.isInRange]);\r\n\r\n  return (\r\n    <div className=\"ao-list__wrapper\" id={`${props.letter.toLowerCase()}`}>\r\n      <h2 className=\"ao-list__wrapper__letter\">{props.letter}</h2>\r\n      <ul className=\"ao-list__wrapper__list\">\r\n        {props.list.map((item, key) => (\r\n          <li key={key}>\r\n            <a href={item.Url}>{item.Name}</a>\r\n          </li>\r\n        ))}\r\n      </ul>\r\n      <a\r\n        className=\"ao-list__wrapper__back\"\r\n        href={`#nav-${props.letter.toLowerCase()}`}\r\n      >\r\n        <span>Tillbaka till navigering</span>\r\n      </a>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default IsInRange(List);\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport Track from '../Base/Sensors/track';\r\nimport scrollIt from '../Base/Scroll';\r\n\r\nconst AOListNavigation = ({\r\n  alphabet,\r\n  compare,\r\n  activeLetter,\r\n  handleLetterChange,\r\n  ...props\r\n}) => {\r\n  const Anchors = alphabet.map((Key) => {\r\n    return { Key };\r\n  });\r\n\r\n  const classes = classNames({\r\n    'c-anchorlinks': true,\r\n    'c-anchorlinks--is-fixed': props.isWithinTrac,\r\n    'c-anchorlinks--is-bottom': props.isTrackBottom,\r\n  });\r\n\r\n  return (\r\n    <ul className={classes}>\r\n      {Anchors.map((item, index) => {\r\n        const matched = typeof compare !== 'undefined' ? compare(item) : true;\r\n\r\n        const classes = classNames({\r\n          'c-anchorlinks__item': true,\r\n          'c-anchorlinks__item--selected':\r\n            activeLetter.toLowerCase() === item.Key.toLowerCase(),\r\n          'c-anchorlinks__item--matched': matched,\r\n        });\r\n\r\n        const attributes = {\r\n          'data-cy': matched ? 'ui-anchor-item' : 'ui-empty-item',\r\n        };\r\n\r\n        return (\r\n          <li key={index}>\r\n            {matched ? (\r\n              <a\r\n                {...attributes}\r\n                className={classes}\r\n                id={`nav-${item.Key}`}\r\n                href={`#${item.Key}`}\r\n                onClick={() => {\r\n                  if (!document.getElementById(`${item.Key}`)) return false;\r\n                  scrollIt(\r\n                    document.getElementById(`${item.Key}`),\r\n                    300,\r\n                    'easeOutQuad',\r\n                    () => {\r\n                      if (typeof handleLetterChange !== 'undefined')\r\n                        handleLetterChange(item.Key);\r\n                      //if (typeof onClickedAnchor !== 'undefined') onClickedAnchor(false);\r\n                    }\r\n                  );\r\n                }}\r\n              >\r\n                {item.Key}\r\n              </a>\r\n            ) : (\r\n              <span {...attributes} className={classes}>\r\n                {item.Key}\r\n              </span>\r\n            )}\r\n          </li>\r\n        );\r\n      })}\r\n    </ul>\r\n  );\r\n};\r\n\r\nexport default Track(AOListNavigation);\r\n","import React, { useState, useEffect, useRef } from 'react';\r\n\r\nexport default (WrappedComponent) => {\r\n  const handles = [];\r\n\r\n  const Track = (props) => {\r\n    const [isWithinTrac, setIsWithinTrac] = useState();\r\n    const [isTrackBottom, setIsTrackBottom] = useState();\r\n\r\n    const nodeRef = useRef();\r\n\r\n    const getBoundingClientRect = (node) => node.getBoundingClientRect();\r\n\r\n    const getParentNode = () => nodeRef && nodeRef.current?.parentNode;\r\n\r\n    const getFirstChild = () => nodeRef.current?.firstChild;\r\n\r\n    const isComponentWithinTrack = () => {\r\n      if (!getParentNode()) return;\r\n\r\n      const parentRect = getBoundingClientRect(getParentNode());\r\n      const comp = getBoundingClientRect(getFirstChild());\r\n      const trackBottom =\r\n        window.pageYOffset + parentRect.top + parentRect.height - comp.height;\r\n\r\n      if (parentRect.top < 1 && window.pageYOffset < trackBottom) {\r\n        if (!isWithinTrac) {\r\n          setIsWithinTrac(true);\r\n          setIsTrackBottom(false);\r\n        }\r\n      } else {\r\n        if (isWithinTrac) {\r\n          setIsWithinTrac(false);\r\n          setIsTrackBottom(window.pageYOffset >= trackBottom);\r\n        }\r\n      }\r\n    };\r\n\r\n    useEffect(() => {\r\n      handles.push(isComponentWithinTrack);\r\n      requestAnimationFrame(() => {\r\n        isComponentWithinTrack();\r\n      });\r\n    }, [isTrackBottom]);\r\n\r\n    return (\r\n      <div ref={nodeRef}>\r\n        <WrappedComponent\r\n          {...props}\r\n          isWithinTrac={isWithinTrac}\r\n          isTrackBottom={isTrackBottom}\r\n        />\r\n      </div>\r\n    );\r\n  };\r\n\r\n  let ticking = false;\r\n  const throttleScroll = () => {\r\n    ticking =\r\n      ticking ||\r\n      requestAnimationFrame(() => {\r\n        ticking = false;\r\n        handles.map((handle) => handle());\r\n      });\r\n  };\r\n\r\n  if (typeof window !== 'undefined') {\r\n    window.addEventListener('scroll', throttleScroll, false);\r\n    window.addEventListener('resize', throttleScroll, false);\r\n  }\r\n\r\n  return Track;\r\n};\r\n","import React, { useState } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport List from './list';\r\nimport Navigation from './navigation';\r\n\r\nconst AOListWithTrack = (props) => {\r\n  const [activeLetter, setActiveLetter] = useState(\r\n    props.location.hash\r\n      ? props.location.hash.substring(1)\r\n      : props.list[0]?.Key.toLowerCase()\r\n  );\r\n\r\n  const handleLetterChange = (activeLetter) => {\r\n    setActiveLetter(activeLetter);\r\n  };\r\n\r\n  if (props.list.length === 0) return null;\r\n\r\n  return (\r\n    <div className=\"ao-list-track-container\" data-print-sidebar-title={props.dataPrintSidebarTitle}>\r\n      <div className=\"ao-list__container\">\r\n        <Navigation\r\n          alphabet={props.alphabet}\r\n          activeLetter={activeLetter}\r\n          compare={props.compare}\r\n          handleLetterChange={(activeLetter) =>\r\n            handleLetterChange(activeLetter)\r\n          }\r\n          list={props.list}\r\n        />\r\n      </div>\r\n\r\n      <div className=\"ao-list__drugs\">\r\n        {props.list.map((letter, key) => (\r\n          <List\r\n            handleLetterChange={(activeLetter) =>\r\n              handleLetterChange(activeLetter)\r\n            }\r\n            key={key}\r\n            letter={letter.Key}\r\n            list={letter.Items}\r\n          />\r\n        ))}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default withRouter(AOListWithTrack);\r\n","const ResponsiveImages = (props) => {\r\n  return (\r\n    (props.ImageProperties === 'small-bleed' && {\r\n      sizes: '(min-width: 640px) 315px, (min-width: 1024px) 403px, 100vw',\r\n    }) ||\r\n    (props.ImageProperties === 'mini-bleed' && {\r\n      sizes: '(min-width: 640px) 315px, (min-width: 1024px) 193px, 100vw',\r\n    }) ||\r\n    (props.ImageProperties === 'mini' && {\r\n      sizes: '(min-width: 640px) 315px, (min-width: 1024px) 193px, 100vw',\r\n    }) ||\r\n    (props.ImageProperties === 'mini-reverse' && {\r\n      sizes: '(min-width: 640px) 315px, (min-width: 1024px) 193px, 100vw',\r\n    }) ||\r\n    (props.ImageProperties === 'xsmall-bleed' && {\r\n      sizes: '(min-width: 640px) 315px, (min-width: 1024px) 300px, 100vw',\r\n    }) ||\r\n    (props.ImageProperties === 'xsmall' && {\r\n      sizes: '(min-width: 640px) 315px, (min-width: 1024px) 300px, 100vw',\r\n    }) ||\r\n    (props.ImageProperties === 'xsmall-reverse' && {\r\n      sizes: '(min-width: 640px) 315px, (min-width: 1024px) 300px, 100vw',\r\n    }) ||\r\n    (props.ImageProperties && { sizes: '(min-width: 640px) 652px, 100vw' })\r\n  );\r\n};\r\n\r\nexport default ResponsiveImages;\r\n","import React, { Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport * as Render from '../Base/Render';\r\nimport ImageBlock from '../ImageBlock';\r\nimport withLazyLoad from '../Containers/withLazyLoad';\r\nimport withSrcSets from '../Containers/withSrcSets';\r\nimport withSensitiveImage from '../Containers/withSensitiveImage';\r\nimport SemanticHeader from './semantic-header';\r\nimport ResponsiveImages from './responsive-images';\r\n\r\nconst ImageBlockLazyLoad = withLazyLoad(\r\n  withSrcSets(withSensitiveImage(ImageBlock))\r\n);\r\n\r\nconst View = (props) => (\r\n  <Fragment>\r\n    {props.Heading && (\r\n      <SemanticHeader\r\n        isH3={props.isH3}\r\n        className={classNames({\r\n          'c-chapter__heading': true,\r\n          'c-chapter__story-heading': props.StoryPageHeading,\r\n          'c-chapter__heading--is-anchornav':\r\n            props.AnchorSectionId &&\r\n            !props.isH3 &&\r\n            !props.CurrentPageProps.Content.HideAnchorNavigation &&\r\n            !props.HideAnchorLink,\r\n        })}\r\n      >\r\n        {props.Heading}\r\n      </SemanticHeader>\r\n    )}\r\n    {props.RegionAddition?.ContentAbove && (\r\n      <Render.Block\r\n        blocks={props.RegionAddition.ContentAbove}\r\n        propertyName=\"ContentAbove\"\r\n        CurrentPageProps={props.CurrentPageProps} \r\n      >\r\n        <Render.BlockTypeRenderer\r\n          Blocks={props.Blocks}\r\n          isH3={props.Heading}\r\n          isMemberOfChapterContainer={props.isMemberOfChapterContainer}\r\n        />\r\n      </Render.Block>\r\n    )}\r\n    {props.Preamble && <p>{props.Preamble}</p>}\r\n    {props.Image && (\r\n      <div className={`c-chapter__img-container--${props.ImageProperties}`}>\r\n        <Render.Block\r\n          blocks={props.Image}\r\n          propertyName=\"Image\"\r\n          CurrentPageProps={props.CurrentPageProps}\r\n          isMemberOfChapterContainer={props.isMemberOfChapterContainer}\r\n          isMemberOfChapter={true}\r\n        >\r\n          <ImageBlockLazyLoad\r\n            Modifiers={{\r\n              [`c-imageblock--${props.ImageProperties}`]: props.ImageProperties,\r\n            }}\r\n            Sizes={ResponsiveImages(props)}\r\n            {...props}\r\n          />\r\n        </Render.Block>\r\n      </div>\r\n    )}\r\n    {props.ContentString}\r\n    {props.RegionAddition?.ContentBelow && (\r\n      <Render.Block\r\n        blocks={props.RegionAddition.ContentBelow}\r\n        propertyName=\"ContentBelow\"\r\n        CurrentPageProps={props.CurrentPageProps}\r\n      >\r\n        <Render.BlockTypeRenderer\r\n          Blocks={props.Blocks}\r\n          isH3={props.Heading}\r\n          isMemberOfChapterContainer={props.isMemberOfChapterContainer}\r\n        />\r\n      </Render.Block>\r\n    )}\r\n  </Fragment>\r\n);\r\n\r\nexport default View;\r\n","import classNames from 'classnames';\r\nimport React, { createRef, useEffect } from 'react';\r\nimport ToggleChapter from '../ToggleChapter';\r\nimport View from './view';\r\n\r\nconst Chapter = (props) => {\r\n  const content = createRef(null);\r\n  function fitInWidth() {\r\n    if (content.current === null) {\r\n      return null;\r\n    }\r\n    const elements = content.current.querySelectorAll('.table-wrapper-inner');\r\n    for (let i = 0; i < elements.length; i++) {\r\n      const wideTable = elements[i].className.indexOf('wide');\r\n\r\n      const offsetWidth = elements[i].offsetWidth;\r\n\r\n      // If tables width is greater than scrollwidth it should have overflow\r\n      if (offsetWidth < elements[i].scrollWidth) {\r\n        // If table has class .wide, eg is not -1, set classes for overflow AND for wide\r\n        if (wideTable !== -1) {\r\n          elements[i].parentNode.className =\r\n            'table-wrapper table-wrapper--is-wide table-wrapper--is-overflow';\r\n        } else {\r\n          elements[i].parentNode.className =\r\n            'table-wrapper table-wrapper--is-overflow';\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  function wrapTables() {\r\n    if (!props.ContentString || content.current === null) {\r\n      return null;\r\n    }\r\n\r\n    const table = content.current.querySelectorAll('table');\r\n    if (table.length === 0) return;\r\n\r\n    for (var i = 0; table.length - i; i++) {\r\n      const parent = table[i].parentNode;\r\n\r\n      if (parent.parentNode.className.indexOf('table-wrapper-inner') > -1)\r\n        continue;\r\n\r\n      const wrapper = document.createElement('div');\r\n      wrapper.className = 'table-wrapper';\r\n\r\n      const tableWrapper = document.querySelectorAll('.table-wrapper');\r\n      const wrapperInner = document.createElement('div');\r\n      const innerTableWrapper = document.createElement('div');\r\n      const tableClasses = table[i].className;\r\n      wrapperInner.className = `table-wrapper-inner ${tableClasses}`;\r\n      tableWrapper.className = `table-wrapper ${tableClasses}`;\r\n\r\n      // insert wrapper before el in the DOM tree\r\n      parent.insertBefore(wrapperInner, table[i]);\r\n      innerTableWrapper.appendChild(table[i]);\r\n      wrapperInner.appendChild(innerTableWrapper);\r\n      parent.insertBefore(wrapper, wrapperInner);\r\n      wrapper.appendChild(wrapperInner);\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    if (typeof window !== 'undefined') {\r\n      window.requestAnimationFrame(() => {\r\n        wrapTables();\r\n        fitInWidth();\r\n      });\r\n    }\r\n  }, []);\r\n\r\n  const hasInlineImage =\r\n    props.ImageProperties === 'mini' ||\r\n    props.ImageProperties === 'mini-reverse' ||\r\n    props.ImageProperties === 'xsmall' ||\r\n    props.ImageProperties === 'xsmall-reverse';\r\n\r\n  const dataPrintSidebarTitle = props.Heading || '';\r\n\r\n  return (\r\n    <div\r\n      ref={content}\r\n      className={classNames('c-chapter', {\r\n        'c-chapter--inline-image': hasInlineImage,\r\n        'c-chapter--regional-content': props?.regionalName,\r\n      })}\r\n      id={props.AnchorSectionId}\r\n      data-print-sidebar-title={dataPrintSidebarTitle}\r\n      data-print-sidebar-title-region={props?.regionalName ?? ''}\r\n      data-is-member-of-chapter-container={\r\n        props.isMemberOfChapterContainer || 'false'\r\n      }\r\n      data-is-chapter={'isChapter'}\r\n    >\r\n      {!props.noToggle &&\r\n      props.Heading &&\r\n      props.AnchorSectionId &&\r\n      !props.isH3 &&\r\n      !props.CurrentPageProps.Content.HideAnchorNavigation &&\r\n      !props.HideAnchorLink ? (\r\n        <ToggleChapter\r\n          Heading={props.Heading}\r\n          id={props.UniqueBlockId}\r\n          AnchorSectionId={props.AnchorSectionId}\r\n        >\r\n          <View {...props} />\r\n        </ToggleChapter>\r\n      ) : (\r\n        <View {...props} />\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Chapter;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\n\r\nexport default (WrapperComponent) => {\r\n  return (props) => {\r\n    if (typeof window === 'undefined') {\r\n      return null;\r\n    }\r\n    let lastScrollTop = 0;\r\n    let maxWidth = props.MaxWidth ? props.MaxWidth : 768;\r\n\r\n    const [isMobile, setIsMobile] = useState(window.innerWidth < maxWidth);\r\n    const [isHidden, setIsHidden] = useState(true);\r\n\r\n    let header = useRef(null);\r\n\r\n    useEffect(() => {\r\n      header.current = document.querySelector('.c-header');\r\n    }, []);\r\n\r\n    const setHeaderIsHidden = () => {\r\n      let scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n      if (header.current) {\r\n        if (scrollTop > lastScrollTop) {\r\n          header.current.classList.add('c-header--hidden');\r\n          header.current.classList.remove('c-header--visible');\r\n          setIsHidden(false);\r\n        } else if (scrollTop < lastScrollTop) {\r\n          header.current.classList.remove('c-header--hidden');\r\n          header.current.classList.add('c-header--visible');\r\n          setIsHidden(true);\r\n        }\r\n        lastScrollTop = scrollTop <= 0 ? 0 : scrollTop;\r\n      }\r\n    };\r\n\r\n    useEffect(() => {\r\n      const handleResize = () => {\r\n        setIsMobile(window.innerWidth < maxWidth);\r\n      };\r\n\r\n      window.addEventListener('resize', handleResize);\r\n\r\n      return () => window.removeEventListener('resize', handleResize);\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n      if (isMobile) {\r\n        window.addEventListener('scroll', setHeaderIsHidden);\r\n        if (header.current) {\r\n          header.current.classList.add('c-header--visible');\r\n        }\r\n      } else {\r\n        window.removeEventListener('scroll', setHeaderIsHidden);\r\n        if (header.current) {\r\n          header.current.classList.remove('hidden', 'c-header--visible');\r\n        }\r\n      }\r\n\r\n      return () => window.removeEventListener('scroll', setHeaderIsHidden);\r\n    }, [isMobile]);\r\n\r\n    return (\r\n      <WrapperComponent IsHidden={isHidden} IsMobile={isMobile} {...props} />\r\n    );\r\n  };\r\n};\r\n\r\n","import React from 'react';\r\n\r\nexport default (WrappedComponent, initialState) => (props) =>\r\n  <WrappedComponent {...props} {...initialState(props)} />;\r\n","import { node } from 'prop-types';\r\n\r\nconst Radio = (props) => {\r\n  return props.children;\r\n};\r\n\r\nRadio.propTypes = {\r\n  /** The only thing that renders */\r\n  children: node,\r\n};\r\n\r\nexport default Radio;\r\n","import { node } from 'prop-types';\r\n\r\nconst Checkbox = (props) => {\r\n  return props.children;\r\n};\r\n\r\nCheckbox.propTypes = {\r\n  /** The only thing that renders */\r\n  children: node,\r\n};\r\n\r\nexport default Checkbox;\r\n","import React from 'react';\r\nimport { bool, node, func, number, string, oneOf } from 'prop-types';\r\n\r\nconst Button = (props) => {\r\n  const disabled = !(props.canSubmit && props.disabled !== true);\r\n\r\n  return (\r\n    <button\r\n      tabIndex={props.tabIndex}\r\n      disabled={disabled}\r\n      className={props.className}\r\n      onClick={props.onClick}\r\n      type={props.type}\r\n    >\r\n      {props.text || props.children}\r\n    </button>\r\n  );\r\n};\r\n\r\nButton.propTypes = {\r\n  canSubmit: bool,\r\n  tabIndex: number,\r\n  disabled: bool,\r\n  onClick: func,\r\n  className: string,\r\n  type: oneOf(['submit', 'button', 'reset']).isRequired,\r\n  children: node,\r\n  text: string,\r\n};\r\n\r\nexport default Button;\r\n","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport Badge from '../../IDSBadge';\r\n\r\nconst RegionalHighlightTextBlock = ({ regionalContent, translation }) => {\r\n  const regionName = regionalContent[0]?.CurrentRegionName;\r\n  const langLabel = (translation || 'Innehållet gäller') + ' ' + regionName;\r\n\r\n  return regionalContent?.some((e) => e.Content) ? (\r\n    <div className=\"c-highlight__text-container__regional-container\">\r\n      <Badge type={'secondary'} text={langLabel} />\r\n      {regionalContent.map((block, index) => {\r\n        return <p key={index}>{block.Content}</p>;\r\n      })}\r\n    </div>\r\n  ) : (\r\n    ''\r\n  );\r\n};\r\n\r\nRegionalHighlightTextBlock.propTypes = {\r\n  regionalContent: PropTypes.array,\r\n};\r\n\r\nexport default RegionalHighlightTextBlock;\r\n","import classNames from 'classnames';\r\nimport { object, string, array } from 'prop-types';\r\nimport React from 'react';\r\nimport LinkButton from '../Buttons/LinkButton';\r\nimport SemanticHeader from '../Chapter/semantic-header';\r\nimport RegionalHighlightTextBlock from '../TextBlock/RegionalHighlightTextBlock';\r\n\r\nconst HighLight = (props) => {\r\n  const {\r\n    SelectedType,\r\n    SelectedIcon,\r\n    SelectedBackgroundColor,\r\n    Buttons,\r\n    Heading,\r\n    ContentString,\r\n    isMemberOfChapterContainer,\r\n    isH3,\r\n    RegionalContent,\r\n  } = props;\r\n  const classes = classNames({\r\n    'c-highlight': true,\r\n    [`c-highlight--${SelectedType}`]: SelectedType,\r\n    [`c-highlight--${SelectedIcon}`]: SelectedIcon,\r\n    [`c-highlight--${SelectedBackgroundColor}`]: SelectedBackgroundColor,\r\n  });\r\n\r\n  const dataPrintSidebarTitle =\r\n    Heading ||\r\n    props.CurrentPageProps?.Content?.Translations?.highlightblock ||\r\n    '';\r\n  return (\r\n    <aside\r\n      className={classes}\r\n      id={props.AnchorSectionId}\r\n      data-print-sidebar-title={dataPrintSidebarTitle}\r\n      data-is-member-of-chapter-container={\r\n        isMemberOfChapterContainer || 'false'\r\n      }\r\n    >\r\n      {Heading && (\r\n        <SemanticHeader\r\n          className=\"c-highlight__header\"\r\n          isH3={isH3 && isMemberOfChapterContainer}\r\n        >\r\n          {Heading}\r\n        </SemanticHeader>\r\n      )}\r\n      <div className=\"c-highlight__text-container\">{ContentString}</div>\r\n\r\n      {RegionalContent && (\r\n        <RegionalHighlightTextBlock\r\n          regionalContent={RegionalContent}\r\n          translation={\r\n            props.CurrentPageProps?.Content?.Translations?.regionlabel\r\n          }\r\n        />\r\n      )}\r\n\r\n      {Buttons && Buttons[0] && (\r\n        <div className=\"c-highlight__cta-container\">\r\n          <LinkButton\r\n            link={Buttons[0].ButtonLink}\r\n            linkText={Buttons[0].ButtonText}\r\n            buttonClass={`c-highlight__cta-container__${Buttons[0].ButtonStyling}`}\r\n          />\r\n          {Buttons[1] && (\r\n            <LinkButton\r\n              link={Buttons[1].ButtonLink}\r\n              linkText={Buttons[1].ButtonText}\r\n              buttonClass={`c-highlight__cta-container__${Buttons[1].ButtonStyling}`}\r\n            />\r\n          )}\r\n        </div>\r\n      )}\r\n    </aside>\r\n  );\r\n};\r\n\r\nHighLight.propTypes = {\r\n  SelectedType: string,\r\n  SelectedIcon: string,\r\n  SelectedBackgroundColor: string,\r\n  Buttons: array,\r\n  Heading: string,\r\n  ContentString: object,\r\n};\r\n\r\nexport default HighLight;\r\n","import { useEffect, useRef } from 'react';\r\n\r\n/**\r\n * Custom hook for creating Matomo track-events. The event-parameters corresponds to their Matomo equivalents. (e.g., eventCategory = Event Category)\r\n * @param {string} eventCategory - The category of the tracked event.\r\n * @param {string} eventAction - The action associated with the event.\r\n * @param {string} eventName - The name of the event.\r\n * @param {number} eventValue - The value to track (e.g., an index).\r\n * @param {number} debounceTime - Debounce time in milliseconds.\r\n */\r\nconst useMatomoTrackEventOnChange = (\r\n  eventCategory,\r\n  eventAction,\r\n  eventName,\r\n  eventValue,\r\n  debounceTime = 300\r\n) => {\r\n  if (\r\n    typeof window === undefined ||\r\n    !eventCategory ||\r\n    !eventAction ||\r\n    !eventName ||\r\n    eventValue == null\r\n  ) {\r\n    return;\r\n  }\r\n\r\n  const timeoutRef = useRef(null);\r\n  const eventValueUnchanged = useRef(true);\r\n\r\n  useEffect(() => {\r\n    if (eventValueUnchanged.current) {\r\n      eventValueUnchanged.current = false;\r\n      return;\r\n    }\r\n\r\n    clearTimeout(timeoutRef.current);\r\n\r\n    timeoutRef.current = setTimeout(() => {\r\n      window?._paq?.push([\r\n        'trackEvent',\r\n        eventCategory,\r\n        eventAction,\r\n        eventName,\r\n        eventValue,\r\n      ]);\r\n    }, debounceTime);\r\n\r\n    return () => {\r\n      clearTimeout(timeoutRef.current);\r\n    };\r\n  }, [eventCategory, eventAction, eventValue]);\r\n};\r\n\r\nexport default useMatomoTrackEventOnChange;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport ArticleHeader from '../ArticleHeader';\r\nimport * as Render from '../Base/Render';\r\nimport ImageBlock from '../ImageBlock';\r\nimport Section from '../Section';\r\nimport withSrcSets from '../Containers/withSrcSets';\r\nimport withLazyLoad from '../Containers/withLazyLoad';\r\nimport withSensitiveImage from '../Containers/withSensitiveImage';\r\n\r\nconst Intro = (props) => {\r\n  const ImageBlockWithSrcSet = withLazyLoad(\r\n    withSrcSets(withSensitiveImage(ImageBlock))\r\n  );\r\n\r\n  const introClasses = classNames({\r\n    'medium-8': true,\r\n    'medium-centered': true,\r\n    'large-uncentered': true,\r\n    'large-7': props.Media,\r\n    'large-8': !props.Media,\r\n    columns: true,\r\n  });\r\n\r\n  return (\r\n    <Section Modifiers={{ 'c-section--first': true, 'c-section--intro': true }}>\r\n      <div className=\"row\">\r\n        <div className={introClasses}>\r\n          <ArticleHeader\r\n            Heading={props.Heading}\r\n            HeadingTranslation={props.HeadingTranslation}\r\n            Preamble={props.Preamble}\r\n          />\r\n        </div>\r\n        {(props.Media || props.CurrentPageProps.IsEditMode) && (\r\n          <div className=\"medium-8 medium-centered large-uncentered large-offset-1 large-4 columns\">\r\n            <Render.Block\r\n              blocks={props.Media}\r\n              propertyName=\"Image\"\r\n              currentPageProps={props.CurrentPageProps}\r\n            >\r\n              <ImageBlockWithSrcSet\r\n                isBackgroundImage={true}\r\n                UseZoom={false}\r\n                ShowCaption={false}\r\n                Modifiers={{\r\n                  'c-imageblock--medium-margin': true,\r\n                  'c-imageblock--is-intro': true,\r\n                }}\r\n                Sizes={{\r\n                  sizes: '(min-width: 1025px) 407px, 100vw',\r\n                }}\r\n              />\r\n            </Render.Block>\r\n          </div>\r\n        )}\r\n      </div>\r\n    </Section>\r\n  );\r\n};\r\n\r\nexport default Intro;\r\n","import { useState } from 'react';\r\n\r\nfunction usePagination(data, itemsPerPage, keepPreviousPages = false) {\r\n  const [currentPage, setCurrentPage] = useState(1);\r\n  const maxPage = Math.ceil(data.length / itemsPerPage);\r\n\r\n  function currentData() {\r\n    const begin = keepPreviousPages ? 0 : (currentPage - 1) * itemsPerPage;\r\n    const end = keepPreviousPages\r\n      ? itemsPerPage * currentPage\r\n      : begin + itemsPerPage;\r\n    return data.slice(begin, end);\r\n  }\r\n\r\n  function next() {\r\n    setCurrentPage((currentPage) => Math.min(currentPage + 1, maxPage));\r\n  }\r\n\r\n  function prev() {\r\n    setCurrentPage((currentPage) => Math.max(currentPage - 1, 1));\r\n  }\r\n\r\n  function jump(page) {\r\n    const pageNumber = Math.max(1, page);\r\n    setCurrentPage(() => Math.min(pageNumber, maxPage));\r\n  }\r\n\r\n  return { next, prev, jump, currentData, currentPage, maxPage };\r\n}\r\n\r\nexport default usePagination;\r\n","import React from 'react';\r\n\r\nconst MediaGalleryContent = ({\r\n  heading,\r\n  text,\r\n  links,\r\n  showAuthor,\r\n  photographer,\r\n  illustrator,\r\n  translations,\r\n}) => {\r\n  return (\r\n    <>\r\n      {heading && <h3 style={{ marginBottom: '15px' }}>{heading}</h3>}\r\n      {text && (\r\n        <div\r\n          className=\"c-media-gallery__item__text\"\r\n          dangerouslySetInnerHTML={{\r\n            __html: text,\r\n          }}\r\n        ></div>\r\n      )}\r\n      {showAuthor && (\r\n        <div className=\"c-media-gallery__item__text__photo-cred\">\r\n          {photographer && (\r\n            <p>{`${translations.photographer}: ${photographer}`}</p>\r\n          )}\r\n          {illustrator && (\r\n            <p>{`${translations.illustrator}: ${illustrator}`}</p>\r\n          )}\r\n        </div>\r\n      )}\r\n      {links && (\r\n        <div className=\"c-media-gallery__item__linklist\">\r\n          <div className=\"c-linklist\">\r\n            <ul className=\"c-linklist__list\">\r\n              {links.map((link, index) => (\r\n                <li key={index}>\r\n                  <a className=\"c-anchor c-linklist__link\" href={link.Href}>\r\n                    <span>{link.Text}</span>\r\n                  </a>\r\n                </li>\r\n              ))}\r\n            </ul>\r\n          </div>\r\n        </div>\r\n      )}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default MediaGalleryContent;\r\n","import React from 'react';\r\nimport withSensitiveImage from '../../Containers/withSensitiveImage';\r\nimport withSrcSets from '../../Containers/withSrcSets';\r\nimport ImageBlock from '../../ImageBlock';\r\nimport MediaGalleryContent from './content';\r\n\r\nconst MediaGalleryImage = (props) => {\r\n  const {\r\n    activeIndex,\r\n    index,\r\n    pageProps,\r\n    counter,\r\n    numberOfItems,\r\n    ImageHeading,\r\n    ImageText,\r\n    ImageLinks,\r\n    isStanding,\r\n    slideWidth,\r\n    showAuthor,\r\n    translations,\r\n    isArticlePage,\r\n    isMobile,\r\n    alwaysShowCurrentImage,\r\n  } = props;\r\n  const ImageBlockWithSrcSets = withSrcSets(withSensitiveImage(ImageBlock));\r\n\r\n  const forciblyShowCurrentCount =\r\n    (alwaysShowCurrentImage && !isMobile) ||\r\n    (activeIndex === index && isMobile);\r\n\r\n  return (\r\n    <div\r\n      className={`c-media-gallery__item ${\r\n        activeIndex === index ? 'active' : ''\r\n      } ${isStanding ? 'standing' : ''}`}\r\n      style={{ width: slideWidth }}\r\n      key={index}\r\n    >\r\n      <span className=\"show-for-sr\">\r\n        {counter} {activeIndex + 1}\r\n      </span>\r\n\r\n      <div className=\"c-media-gallery__item__image\">\r\n        <ImageBlockWithSrcSets\r\n          {...props}\r\n          CurrentPageProps={pageProps}\r\n          ImageText={null}\r\n          Modifiers={{ 'c-imageblock--is-gallery': true }}\r\n        />\r\n        <div\r\n          style={{\r\n            visibility: forciblyShowCurrentCount ? 'visible' : 'hidden',\r\n          }}\r\n          className=\"c-media-gallery__current\"\r\n        >\r\n          <span>\r\n            {alwaysShowCurrentImage ? index + 1 : activeIndex + 1}/\r\n            {numberOfItems}\r\n          </span>\r\n        </div>\r\n      </div>\r\n      {(ImageHeading || ImageText || ImageLinks) && (\r\n        <div\r\n          className=\"c-media-gallery__item__text-container\"\r\n          style={{\r\n            visibility:\r\n              !isArticlePage || activeIndex === index ? 'visible' : 'hidden',\r\n          }}\r\n        >\r\n          <div\r\n            className={`c-media-gallery__item__text-wrapper ${\r\n              isArticlePage ? 'article-page' : ''\r\n            }`}\r\n          >\r\n            <MediaGalleryContent\r\n              heading={ImageHeading}\r\n              text={ImageText}\r\n              links={ImageLinks}\r\n              showAuthor={showAuthor}\r\n              photographer={props.Photographer}\r\n              illustrator={props.Illustrator}\r\n              translations={translations}\r\n            />\r\n          </div>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default MediaGalleryImage;\r\n","import React from 'react';\r\n\r\nconst MediaGalleryPagination = ({\r\n  totalSlides,\r\n  currentSlide,\r\n  visibleRange,\r\n  handleClick,\r\n  hasGroupedDots\r\n}) => {\r\n  const calculateDotSize = (index) => {\r\n    const distance = Math.abs(currentSlide - index);\r\n    if (distance === 0) return hasGroupedDots ? 60 : 30; // Active dot size\r\n    return Math.max(2, 12 - distance); // Decrease size by 1px per step, with a minimum size of 2px\r\n  };\r\n\r\n  return (\r\n    <div className=\"pagination\">\r\n      {Array.from(\r\n        { length: hasGroupedDots ? totalSlides - 2 : totalSlides },\r\n        (_, index) =>\r\n          index >= visibleRange[0] &&\r\n          index <= visibleRange[1] && (\r\n            <button\r\n              key={index}\r\n              className={`pagination-dot ${\r\n                currentSlide === index ? 'active' : ''\r\n              }`}\r\n              style={{\r\n                width: `${calculateDotSize(index)}px`,\r\n                height: `${calculateDotSize(index)}px`,\r\n              }}\r\n              onClick={() => handleClick(index)}\r\n            ></button>\r\n          )\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default MediaGalleryPagination;\r\n","import React from 'react';\r\nimport Video from '../../Video';\r\n\r\nconst MediaGalleryVideo = (props) => {\r\n  const {\r\n    activeIndex,\r\n    index,\r\n    numberOfItems,\r\n    counter,\r\n    VideoText,\r\n    slideWidth,\r\n    isMobile,\r\n    alwaysShowCurrentImage,\r\n  } = props;\r\n\r\n  const forciblyShowCurrentCount =\r\n    (alwaysShowCurrentImage && !isMobile) ||\r\n    (activeIndex === index && isMobile);\r\n\r\n  return (\r\n    <div\r\n      className={`c-media-gallery__item ${\r\n        activeIndex === index ? 'active' : ''\r\n      }`}\r\n      key={index}\r\n      style={{ width: slideWidth }}\r\n    >\r\n      <span className=\"show-for-sr\">\r\n        {counter} {activeIndex + 1}\r\n      </span>\r\n\r\n      <div className=\"c-media-gallery__item__video\">\r\n        <Video {...props} VideoText={VideoText} isGallery={true} />\r\n        <div\r\n          style={{\r\n            visibility: forciblyShowCurrentCount ? 'visible' : 'hidden',\r\n          }}\r\n          className=\"c-media-gallery__current\"\r\n        >\r\n          <span>\r\n            {alwaysShowCurrentImage ? index + 1 : activeIndex + 1}/\r\n            {numberOfItems}\r\n          </span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default MediaGalleryVideo;\r\n","import classNames from 'classnames';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport SemanticHeader from '../Chapter/semantic-header';\r\nimport { useMatomoTrackEventOnChange } from '../Hooks/index';\r\nimport { isMediumViewport } from '../Hooks/useMedia';\r\nimport MediaGalleryImage from './components/image';\r\nimport MediaGalleryPagination from './components/pagination';\r\nimport MediaGalleryVideo from './components/video';\r\nimport useWindowLocationHref from '../Hooks/useWindowLocation';\r\n\r\nconst MediaGallery = (props) => {\r\n  const href = useWindowLocationHref();\r\n  const {\r\n    Heading,\r\n    Media,\r\n    Translations,\r\n    CurrentPageProps,\r\n    Dir,\r\n    ShowPagination,\r\n  } = props;\r\n\r\n  const containsMedia = (media) => {\r\n    let hasMedia = false;\r\n    try {\r\n      media?.length > 0 ? (hasMedia = true) : (hasMedia = false);\r\n    } catch (error) {\r\n      throw new Error('Du måste ha minst en bild i bildspelet');\r\n    }\r\n\r\n    return hasMedia;\r\n  };\r\n\r\n  const totalItems = Media?.length;\r\n\r\n  const hasMedia = containsMedia(Media);\r\n  const isMobile = isMediumViewport();\r\n  const isArticlePage = CurrentPageProps.PageTypeName === 'ArticlePage';\r\n  const isThreeSlidesLayout = !isArticlePage && !isMobile;\r\n  const isFullWidthLayout = totalItems === 4;\r\n  const galleryIsScrollable = totalItems > 4 || isArticlePage;\r\n  const alwaysShowCurrentImageIndicator =\r\n    !ShowPagination && galleryIsScrollable;\r\n\r\n  const getSlideWidth = () => {\r\n    if (isArticlePage && !isMobile) {\r\n      return '100%';\r\n    }\r\n    if ((galleryIsScrollable && !isMobile) || (totalItems < 4 && !isMobile)) {\r\n      return '33%';\r\n    }\r\n    if (isFullWidthLayout && !isMobile) {\r\n      return '25%';\r\n    }\r\n    return '83%';\r\n  };\r\n\r\n  const slideWidth = getSlideWidth();\r\n\r\n  const scrollContainerRef = useRef(null);\r\n  const [activeIndex, setActiveIndex] = useState(0);\r\n\r\n  const maxVisiblePaginationDots = 10;\r\n  const [visiblePaginationRange, setVisiblePaginationRange] = useState([0, 9]);\r\n\r\n  const updatePaginationRange = (newSlide) => {\r\n    let newStart = Math.max(\r\n      newSlide - Math.floor(maxVisiblePaginationDots / 2),\r\n      0\r\n    );\r\n    let newEnd = Math.min(\r\n      newStart + maxVisiblePaginationDots - 1,\r\n      totalItems - 1\r\n    );\r\n\r\n    if (newEnd - newStart < maxVisiblePaginationDots - 1) {\r\n      newStart = Math.max(newEnd - maxVisiblePaginationDots + 1, 0);\r\n    }\r\n\r\n    setVisiblePaginationRange([newStart, newEnd]);\r\n  };\r\n\r\n  const handlePaginationClick = (index) => {\r\n    scrollToIndex(index);\r\n    updatePaginationRange(index);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (isMobile) {\r\n      const scrollContainer = scrollContainerRef.current;\r\n\r\n      const handleScroll = () => {\r\n        let scrollLeft = scrollContainer.scrollLeft;\r\n        const containerWidth = scrollContainer.clientWidth;\r\n        const itemWidth = containerWidth * 0.83; // width: 83% in mobile always\r\n\r\n        let newIndex;\r\n\r\n        if (Dir === 'rtl') {\r\n          const maxScrollLeft = scrollContainer.scrollWidth - containerWidth;\r\n          if (scrollLeft < 0) {\r\n            scrollLeft = Math.abs(scrollLeft);\r\n          } else if (scrollLeft == -maxScrollLeft) {\r\n            scrollLeft = maxScrollLeft;\r\n          } else {\r\n            scrollLeft = 0;\r\n          }\r\n        }\r\n\r\n        newIndex = Math.round(scrollLeft / itemWidth);\r\n\r\n        setActiveIndex(newIndex);\r\n        updatePaginationRange(newIndex);\r\n      };\r\n\r\n      scrollContainer.addEventListener('scroll', handleScroll);\r\n\r\n      return () => {\r\n        scrollContainer.removeEventListener('scroll', handleScroll);\r\n      };\r\n    }\r\n  }, []);\r\n\r\n  const scrollToIndex = (index) => {\r\n    const scrollContainer = scrollContainerRef.current;\r\n    const containerWidth = scrollContainer.clientWidth;\r\n    const itemWidth = containerWidth * (isMobile ? 0.83 : 0.33); // width: 83%\r\n    const scrollLeft = index * itemWidth;\r\n\r\n    // Temporarily disable 'scroll-snap-type', because it interferes with the 'scrollTo' in Chrome\r\n    scrollContainer.style.scrollSnapType = 'none';\r\n\r\n    if (Dir === 'ltr') {\r\n      scrollContainer.scrollTo({\r\n        left: isMobile ? scrollLeft - 15 : scrollLeft,\r\n        behavior: 'smooth',\r\n      });\r\n    } else {\r\n      scrollContainer.scrollTo({\r\n        left: isMobile ? -scrollLeft + 15 : -scrollLeft,\r\n        behavior: 'smooth',\r\n      });\r\n    }\r\n\r\n    setTimeout(() => {\r\n      // Re-enable 'scroll-snap-type' after the scrolling is done\r\n      scrollContainer.style.scrollSnapType = 'x mandatory';\r\n    }, 300);\r\n\r\n    if (!isMobile) setActiveIndex(index);\r\n    updatePaginationRange(index);\r\n  };\r\n\r\n  const nextSlide = () => {\r\n    let newIndex;\r\n\r\n    if (isArticlePage && !isMobile && activeIndex + 1 >= totalItems) {\r\n      newIndex = 0;\r\n    } else {\r\n      newIndex =\r\n        activeIndex < (isThreeSlidesLayout ? totalItems - 3 : totalItems - 1)\r\n          ? activeIndex + 1\r\n          : activeIndex;\r\n    }\r\n\r\n    scrollToIndex(newIndex);\r\n  };\r\n\r\n  const prevSlide = () => {\r\n    let newIndex;\r\n\r\n    if (isArticlePage && !isMobile && activeIndex === 0) {\r\n      newIndex = totalItems - 1;\r\n    } else {\r\n      newIndex = activeIndex !== 0 ? activeIndex - 1 : 0;\r\n    }\r\n\r\n    scrollToIndex(newIndex);\r\n  };\r\n\r\n  useMatomoTrackEventOnChange(\r\n    'Bildspel',\r\n    'Bläddrar',\r\n    href || 'novalue',\r\n    activeIndex + 1\r\n  );\r\n\r\n  const dataPrintSidebarTitle = Heading || 'Mediakarusell';\r\n\r\n  if (!Translations)\r\n    throw new Error(`There is no Translation object for MediaGallery`);\r\n  return (\r\n    <div\r\n      className={`c-media-gallery ${isFullWidthLayout ? 'full-width' : ''} ${\r\n        isArticlePage ? 'article-page' : ''\r\n      }`}\r\n      data-print-sidebar-title={dataPrintSidebarTitle}\r\n      data-type-media-slider={'MediaSlider'}\r\n      data-is-member-of-chapter-container={\r\n        props.isMemberOfChapterContainer || 'false'\r\n      }\r\n    >\r\n      {Heading && (\r\n        <SemanticHeader\r\n          isH3={props.isH3}\r\n          className={classNames({\r\n            'c-media-gallery__heading': true,\r\n            'c-media-gallery__heading__article-page': isArticlePage,\r\n            'c-media-gallery__heading__h2-style':\r\n              props.isMemberOfChapterContainer,\r\n          })}\r\n        >\r\n          {Heading}\r\n        </SemanticHeader>\r\n      )}\r\n      <div className=\"c-media-gallery__wrapper\">\r\n        {!!ShowPagination && (galleryIsScrollable || isMobile) && (\r\n          <MediaGalleryPagination\r\n            totalSlides={totalItems}\r\n            currentSlide={activeIndex}\r\n            visibleRange={visiblePaginationRange}\r\n            handleClick={handlePaginationClick}\r\n            hasGroupedDots={isThreeSlidesLayout}\r\n          />\r\n        )}\r\n\r\n        <div className=\"c-media-gallery__content\">\r\n          <div className=\"c-media-gallery__items-container\">\r\n            <div\r\n              className=\"c-media-gallery__items\"\r\n              aria-live=\"polite\"\r\n              ref={scrollContainerRef}\r\n            >\r\n              {hasMedia &&\r\n                Media.map((media, index) =>\r\n                  media.BlockTypeName === 'SlideshowImageBlock' ? (\r\n                    <MediaGalleryImage\r\n                      {...media}\r\n                      key={index}\r\n                      activeIndex={activeIndex}\r\n                      index={index}\r\n                      numberOfItems={totalItems}\r\n                      pageProps={CurrentPageProps}\r\n                      counter={props.Translations.counter}\r\n                      isStanding={media.IsStandingImage}\r\n                      slideWidth={slideWidth}\r\n                      showAuthor={props.ShowAuthor}\r\n                      translations={Translations}\r\n                      isArticlePage={isArticlePage}\r\n                      isMobile={isMobile}\r\n                      alwaysShowCurrentImage={alwaysShowCurrentImageIndicator}\r\n                    />\r\n                  ) : (\r\n                    <MediaGalleryVideo\r\n                      {...media}\r\n                      key={index}\r\n                      activeIndex={activeIndex}\r\n                      index={index}\r\n                      numberOfItems={totalItems}\r\n                      counter={props.Translations.counter}\r\n                      slideWidth={slideWidth}\r\n                      isMobile={isMobile}\r\n                      alwaysShowCurrentImage={alwaysShowCurrentImageIndicator}\r\n                    />\r\n                  )\r\n                )}\r\n            </div>\r\n          </div>\r\n          {(galleryIsScrollable || isMobile) && (\r\n            <div className=\"c-media-gallery__ctrls\">\r\n              <button\r\n                type=\"button\"\r\n                className=\"c-media-gallery__nextprev c-media-gallery__nextprev--next\"\r\n                onClick={() => (Dir === 'ltr' ? nextSlide() : prevSlide())}\r\n              >\r\n                <span className=\"show-for-sr\">\r\n                  {Dir === 'ltr' ? Translations.next : Translations.previous}\r\n                </span>\r\n              </button>\r\n              <button\r\n                type=\"button\"\r\n                className=\"c-media-gallery__nextprev c-media-gallery__nextprev--prev\"\r\n                onClick={() => (Dir === 'ltr' ? prevSlide() : nextSlide())}\r\n              >\r\n                <span className=\"show-for-sr\">\r\n                  {Dir === 'ltr' ? Translations.previous : Translations.next}\r\n                </span>\r\n              </button>\r\n            </div>\r\n          )}\r\n        </div>\r\n\r\n        {props.Link && (props.LinkText || props.InternalLinkName) && (\r\n          <div\r\n            className={classNames({\r\n              'c-media-gallery__link': true,\r\n              'c-media-gallery__link__article-page': isArticlePage,\r\n            })}\r\n          >\r\n            <a className=\"c-anchor c-linklist__link\" href={props.Link}>\r\n              {props.LinkText || props.InternalLinkName}\r\n            </a>\r\n          </div>\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default MediaGallery;\r\n","import React from 'react';\r\n\r\nconst InfoBox = ({\r\n  quizInProgress,\r\n  currentQuestionNr,\r\n  nrOfQuestions,\r\n  correctNrOfQuestions,\r\n  finishedQuizText,\r\n  link,\r\n  linkText,\r\n  friendlyLinkName,\r\n}) => {\r\n  return (\r\n    <div className=\"c-quiz-container__infobox\">\r\n      {quizInProgress ? (\r\n        <div className=\"c-quiz-container__infobox__heading\">\r\n          <p style={{ marginBottom: 0 }}>\r\n            Fråga {currentQuestionNr} av {nrOfQuestions}\r\n          </p>\r\n        </div>\r\n      ) : (\r\n        <>\r\n          <div className=\"c-quiz-container__infobox__heading\">\r\n            <p>\r\n              Du fick {correctNrOfQuestions}/{nrOfQuestions} rätt!\r\n            </p>\r\n          </div>\r\n          <p>{finishedQuizText}</p>\r\n          {link && (linkText || friendlyLinkName) && (\r\n            <a className=\"c-quiz-container__infobox__link\" href={link}>\r\n              {linkText || friendlyLinkName}\r\n            </a>\r\n          )}\r\n        </>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default InfoBox;\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\n\r\n/**\r\n * @typedef RadioButtonProps\r\n * @property {string | undefined} id\r\n * @property {string | undefined} name\r\n * @property {string} text\r\n * @property {boolean} checked\r\n * @property {React.ChangeEventHandler<HTMLInputElement> | undefined} checked\r\n * @property {boolean} isValid\r\n * @property {boolean} isValidated\r\n */\r\n\r\nexport const RadioButton = (\r\n  /** @type {RadioButtonProps} */ {\r\n    id,\r\n    name,\r\n    text,\r\n    checked = false,\r\n    onChange,\r\n    isValid,\r\n    isValidated,\r\n  }\r\n) => {\r\n  const classes = classNames('c-quiz-radio-button', {\r\n    '': !isValidated,\r\n    'is-valid': isValidated && isValid,\r\n    'is-invalid': isValidated && !isValid,\r\n    inactive: isValidated,\r\n  });\r\n\r\n  const handleKeyDown = (event) => {\r\n    if (event.key === ' ') {\r\n      event.preventDefault();\r\n      onChange({ target: { checked: !checked } });\r\n    }\r\n  };\r\n\r\n  return (\r\n    <label className={classes} onKeyDown={handleKeyDown} tabIndex={0}>\r\n      <input\r\n        className=\"c-quiz-radio-button__input\"\r\n        type=\"radio\"\r\n        id={id}\r\n        name={name}\r\n        checked={checked}\r\n        onChange={onChange}\r\n        tabIndex={-1}\r\n      />\r\n      <div className=\"c-quiz-radio-button__icon\"></div>\r\n      <span className=\"c-quiz-radio-button__text\">{text}</span>\r\n    </label>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport SemanticHeader from '../Chapter/semantic-header';\r\nimport ImageBlock from '../ImageBlock';\r\nimport { RadioButton } from './RadioButton';\r\n\r\nconst QuizQuestion = ({\r\n  questionText,\r\n  answerAlternatives,\r\n  image,\r\n  onAnswer,\r\n  blockId,\r\n  selectedAnswer,\r\n  quizInProgress,\r\n  correctFeedbackText,\r\n  incorrectFeedbackText,\r\n  correctAnswerLink,\r\n  correctAnswerLinkText,\r\n  friendlyCorrectLinkName,\r\n  incorrectAnswerLink,\r\n  incorrectAnswerLinkText,\r\n  friendlyIncorrectLinkName,\r\n  currentAnswerIndex,\r\n  chapterContainerHasHeading,\r\n}) => {\r\n  const correctLinkText = correctAnswerLinkText || friendlyCorrectLinkName;\r\n\r\n  const incorrectLinkText =\r\n    incorrectAnswerLinkText || friendlyIncorrectLinkName;\r\n\r\n  const link = selectedAnswer?.IsCorrect\r\n    ? correctAnswerLink\r\n    : incorrectAnswerLink;\r\n\r\n  const linkText = selectedAnswer?.IsCorrect\r\n    ? correctLinkText\r\n    : incorrectLinkText;\r\n\r\n  const answerQuestion = (answer) => {\r\n    onAnswer(answer);\r\n  };\r\n\r\n  return (\r\n    <div className={'c-quiz-question'}>\r\n      <SemanticHeader\r\n        isH3={!chapterContainerHasHeading}\r\n        isH4={chapterContainerHasHeading}\r\n        className=\"c-quiz-container__heading\"\r\n      >\r\n        {`${\r\n          currentAnswerIndex && !quizInProgress ? currentAnswerIndex + '.' : ''\r\n        } ${questionText}`}\r\n      </SemanticHeader>\r\n      <div>{image && <ImageBlock {...image}></ImageBlock>}</div>\r\n      <ul>\r\n        {answerAlternatives?.map((answer, i) => (\r\n          <RadioButton\r\n            key={i}\r\n            text={answer.AnswerText}\r\n            name={`question-${blockId}`}\r\n            checked={selectedAnswer?.AnswerText === answer.AnswerText}\r\n            onChange={() => answerQuestion(answer)}\r\n            isValid={\r\n              selectedAnswer?.AnswerText === answer.AnswerText &&\r\n              selectedAnswer?.IsCorrect\r\n            }\r\n            isValidated={!quizInProgress}\r\n          />\r\n        ))}\r\n      </ul>\r\n      {selectedAnswer && !quizInProgress && (\r\n        <div className=\"c-quiz-question__feedback\">\r\n          <div\r\n            dangerouslySetInnerHTML={{\r\n              __html: selectedAnswer?.IsCorrect\r\n                ? correctFeedbackText\r\n                : incorrectFeedbackText,\r\n            }}\r\n          />\r\n          {link && linkText && (\r\n            <a className=\"c-quiz-question__feedback__link\" href={link}>\r\n              {linkText}\r\n            </a>\r\n          )}\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default QuizQuestion;\r\n","import classNames from 'classnames';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport ShareButton from '../Buttons/ShareButton';\r\nimport SemanticHeader from '../Chapter/semantic-header';\r\nimport InfoBox from './infoBox';\r\nimport QuizQuestion from './quizQuestion';\r\nimport useWindowLocationHref from '../Hooks/useWindowLocation';\r\n\r\nconst QuizContainerBlock = ({\r\n  heading,\r\n  introText,\r\n  link,\r\n  linkText,\r\n  internalLinkName,\r\n  questions,\r\n  answerSpans,\r\n  blockId,\r\n  chapterContainerHasHeading,\r\n  isCollectionPage,\r\n  shareButton,\r\n}) => {\r\n  const href = useWindowLocationHref();\r\n  const [answeredQuestions, setAnsweredQuestions] = useState({});\r\n  const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);\r\n  const [quizInProgress, setQuizInProgress] = useState(true);\r\n  const [correctNumberOfQuestions, setCorrectNumberOfQuestions] = useState(0);\r\n  const [finishedQuizText, setFinishedQuizText] = useState('');\r\n  const [hideQuizBlock, setHideQuizBlock] = useState(false);\r\n  const quizResultsRef = useRef(null);\r\n\r\n  const currentQuestion = questions?.[currentQuestionIndex];\r\n\r\n  const nextPaginationButtonActive =\r\n    currentQuestionIndex === 0\r\n      ? Object.keys(answeredQuestions).length > 0\r\n      : currentQuestionIndex <= Object.keys(answeredQuestions).length - 1;\r\n\r\n  const handleQuestionAnswer = (questionId, answer) => {\r\n    setAnsweredQuestions({\r\n      ...answeredQuestions,\r\n      [questionId]: answer,\r\n    });\r\n  };\r\n\r\n  const handleNext = () => {\r\n    if (currentQuestionIndex < questions?.length - 1) {\r\n      setCurrentQuestionIndex(currentQuestionIndex + 1);\r\n      scrollToTop();\r\n    } else {\r\n      setQuizInProgress(false);\r\n    }\r\n  };\r\n\r\n  const handlePrev = () => {\r\n    if (currentQuestionIndex > 0) {\r\n      setCurrentQuestionIndex(currentQuestionIndex - 1);\r\n      scrollToTop();\r\n    }\r\n  };\r\n\r\n  const scrollToTop = () => {\r\n    requestAnimationFrame(() => {\r\n      const heading = document.getElementById(`quiz-heading-${blockId}`);\r\n      if (heading) {\r\n        const headingTop = heading.getBoundingClientRect().top + window.scrollY;\r\n        window.scrollTo({ top: headingTop + -150 });\r\n        heading.focus();\r\n      }\r\n    });\r\n  };\r\n\r\n  const handleHideQuiz = () => {\r\n    setHideQuizBlock(!hideQuizBlock);\r\n    scrollToTop();\r\n  };\r\n\r\n  useEffect(() => {\r\n    const correctAnswersCount = Object.values(answeredQuestions).filter(\r\n      (question) => question.IsCorrect\r\n    ).length;\r\n    setCorrectNumberOfQuestions(correctAnswersCount);\r\n    const answerSpan = answerSpans\r\n      ?.sort((a, b) => a.Max - b.Max)\r\n      ?.find((answer) => correctAnswersCount < answer.Max);\r\n    setFinishedQuizText(answerSpan?.Text);\r\n  }, [answeredQuestions]);\r\n\r\n  const updateQuizResultHeight = () => {\r\n    if (quizResultsRef.current) {\r\n      const currentContentHeight = hideQuizBlock\r\n        ? 0\r\n        : quizResultsRef.current.scrollHeight;\r\n      quizResultsRef.current.style.maxHeight = `${currentContentHeight}px`;\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    updateQuizResultHeight();\r\n  }, [hideQuizBlock, quizInProgress]);\r\n\r\n  if (!questions || questions.length === 0) {\r\n    return null;\r\n  }\r\n\r\n  return (\r\n    <div\r\n      className={classNames('c-quiz-container', {\r\n        'c-quiz-container--collection-page': isCollectionPage,\r\n      })}\r\n    >\r\n      <div className=\"c-quiz-container__inner\">\r\n        <SemanticHeader\r\n          isH3={chapterContainerHasHeading}\r\n          className=\"c-quiz-container__heading\"\r\n          id={`quiz-heading-${blockId}`}\r\n          tabIndex={-1}\r\n        >\r\n          {heading}\r\n        </SemanticHeader>\r\n        <p className=\"c-quiz-container__intro\">{introText}</p>\r\n        <InfoBox\r\n          quizInProgress={quizInProgress}\r\n          currentQuestionNr={currentQuestionIndex + 1}\r\n          nrOfQuestions={questions.length}\r\n          correctNrOfQuestions={correctNumberOfQuestions}\r\n          finishedQuizText={finishedQuizText}\r\n          link={link}\r\n          linkText={linkText}\r\n          friendlyLinkName={internalLinkName}\r\n        />\r\n        {quizInProgress ? (\r\n          currentQuestion ? (\r\n            <QuizQuestion\r\n              questionText={currentQuestion.QuestionText}\r\n              answerAlternatives={currentQuestion.AnswerAlternatives}\r\n              image={currentQuestion.Image?.[0]}\r\n              onAnswer={(answer) =>\r\n                handleQuestionAnswer(currentQuestion.BlockId, answer)\r\n              }\r\n              selectedAnswer={answeredQuestions[currentQuestion.BlockId]}\r\n              blockId={currentQuestion.BlockId}\r\n              correctFeedbackText={currentQuestion.CorrectFeedbackText}\r\n              incorrectFeedbackText={currentQuestion.IncorrectFeedbackText}\r\n              correctAnswerLink={currentQuestion.CorrectAnswerLink}\r\n              correctAnswerLinkText={currentQuestion.CorrectAnswerLinkText}\r\n              friendlyCorrectLinkName={currentQuestion.FriendlyCorrectLinkName}\r\n              incorrectAnswerLink={currentQuestion.IncorrectAnswerLink}\r\n              incorrectAnswerLinkText={currentQuestion.IncorrectAnswerLinkText}\r\n              friendlyIncorrectLinkName={\r\n                currentQuestion.FriendlyIncorrectLinkName\r\n              }\r\n              quizInProgress={quizInProgress}\r\n              chapterContainerHasHeading={chapterContainerHasHeading}\r\n            />\r\n          ) : null\r\n        ) : (\r\n          <div className=\"c-quiz-result\">\r\n            <div\r\n              ref={quizResultsRef}\r\n              id={`quiz-result-${blockId}`}\r\n              className={`c-quiz-result__questions ${\r\n                hideQuizBlock ? 'hidden' : 'visible'\r\n              }`}\r\n            >\r\n              {questions.map((question, i) =>\r\n                question ? (\r\n                  <div key={question.BlockId}>\r\n                    <QuizQuestion\r\n                      questionText={question.QuestionText}\r\n                      answerAlternatives={question.AnswerAlternatives}\r\n                      image={question.Image?.[0]}\r\n                      onAnswer={(answer) =>\r\n                        handleQuestionAnswer(question.BlockId, answer)\r\n                      }\r\n                      selectedAnswer={answeredQuestions[question.BlockId]}\r\n                      blockId={question.BlockId}\r\n                      correctFeedbackText={question.CorrectFeedbackText}\r\n                      incorrectFeedbackText={question.IncorrectFeedbackText}\r\n                      correctAnswerLink={question.CorrectAnswerLink}\r\n                      correctAnswerLinkText={question.CorrectAnswerLinkText}\r\n                      friendlyCorrectLinkName={question.FriendlyCorrectLinkName}\r\n                      incorrectAnswerLink={question.IncorrectAnswerLink}\r\n                      incorrectAnswerLinkText={question.IncorrectAnswerLinkText}\r\n                      friendlyIncorrectLinkName={\r\n                        question.FriendlyIncorrectLinkName\r\n                      }\r\n                      quizInProgress={quizInProgress}\r\n                      currentAnswerIndex={i + 1}\r\n                    />\r\n                  </div>\r\n                ) : null\r\n              )}\r\n              {shareButton && (\r\n                <div className=\"c-quiz-result__share-container\">\r\n                  <ShareButton\r\n                    description={shareButton.ShareDescription}\r\n                    buttonText={shareButton.ShareButtonText}\r\n                    link={shareButton.ShareButtonLink}\r\n                    title={shareButton.ShareTitle}\r\n                    copiedToClipboardMessage={'Länken blev kopierad'}\r\n                  />\r\n                </div>\r\n              )}\r\n            </div>\r\n\r\n            <div className=\"c-quiz-result__show-toggle\">\r\n              <button\r\n                onClick={() => handleHideQuiz()}\r\n                className={`c-quiz-result__show-toggle-btn ${\r\n                  hideQuizBlock ? 'closed' : 'open'\r\n                }`}\r\n                aria-expanded={\r\n                  currentQuestionIndex === questions.length - 1\r\n                    ? quizInProgress\r\n                      ? 'true'\r\n                      : 'false'\r\n                    : undefined\r\n                }\r\n                aria-controls={`quiz-result-${blockId}`}\r\n              >\r\n                {hideQuizBlock ? 'Visa mitt resultat' : 'Dölj mitt resultat'}\r\n              </button>\r\n            </div>\r\n          </div>\r\n        )}\r\n        {quizInProgress && (\r\n          <div className=\"c-quiz-pagination\">\r\n            <button\r\n              aria-label={\r\n                currentQuestionIndex === 0 ? '' : `Gå till föregående fråga`\r\n              }\r\n              type=\"button\"\r\n              onClick={handlePrev}\r\n              className=\"c-quiz-pagination__action c-quiz-pagination__action--prev\"\r\n              style={{\r\n                visibility: currentQuestionIndex === 0 ? 'hidden' : 'visible',\r\n              }}\r\n            >\r\n              Föregående fråga\r\n            </button>\r\n            <button\r\n              data-event-category={href || 'novalue'}\r\n              data-event-action={heading}\r\n              data-event-name=\"Nästa fråga\"\r\n              data-event-value={currentQuestionIndex}\r\n              type=\"button\"\r\n              onClick={handleNext}\r\n              disabled={!nextPaginationButtonActive}\r\n              aria-disabled={!nextPaginationButtonActive}\r\n              className=\"c-quiz-pagination__action c-quiz-pagination__action--next\"\r\n              aria-label={\r\n                currentQuestionIndex === questions.length - 1\r\n                  ? 'Se ditt resultat'\r\n                  : 'Gå till nästa fråga'\r\n              }\r\n            >\r\n              {currentQuestionIndex === questions.length - 1\r\n                ? 'Se ditt resultat'\r\n                : 'Nästa fråga'}\r\n            </button>\r\n          </div>\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default QuizContainerBlock;\r\n","import React, { useState } from 'react';\r\n\r\n/**\r\n * Repo: PWT-PlatformUI\r\n *\r\n * Sites: RGS\r\n *\r\n * @description Limited search field with no autocomplete or suggestions.\r\n * Uses local state and initialValue props.\r\n *\r\n */\r\nconst EntryFormSearchField = ({\r\n  handleKeyDown,\r\n  handleChange,\r\n  handleBlur,\r\n  initialValue,\r\n  id,\r\n  className,\r\n  placeholder,\r\n}) => {\r\n  const [value, setValue] = useState(initialValue);\r\n\r\n  return (\r\n    <div className={`${className}__field-container`}>\r\n      <input\r\n        value={value}\r\n        onKeyDown={(e) => handleKeyDown(e)}\r\n        onChange={(e) => {\r\n          setValue(e.target.value);\r\n          if (typeof handleChange === 'function') {\r\n            handleChange(e);\r\n          }\r\n        }}\r\n        onBlur={(e) => handleBlur(e)}\r\n        type=\"text\"\r\n        id={id}\r\n        name=\"q\"\r\n        placeholder={placeholder}\r\n        className={`${className}__field__query`}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n\r\nEntryFormSearchField.defaultProps = {\r\n  handleKeyDown: () => {},\r\n  handleChange: () => {},\r\n  handleBlur: () => {},\r\n  initialValue: '',\r\n  id: '',\r\n  className: '',\r\n  placeholder: '',\r\n};\r\n\r\nexport default EntryFormSearchField;\r\n","import queryString from 'qs';\r\nimport React from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport SearchField from '../Search/searchfield';\r\nimport EntryFormSearchField from './entryform-searchfield';\r\nimport './styles.scss';\r\n\r\n/**\r\n * Repo: PWT-PlatformUI\r\n *\r\n * Sites: RGS\r\n *\r\n * @description\r\n *  Entry form block to a searchpage.\r\n *  No autocomplete/suggestions.\r\n *\r\n */\r\nconst SearchEntryForm = (props) => {\r\n  const qs = queryString.parse(props.location.search, {\r\n    ignoreQueryPrefix: true,\r\n  });\r\n  return (\r\n    <div className=\"row\">\r\n      <div className=\"columns small-12\">\r\n        <div className=\"entryform-searchform\">\r\n          <form\r\n            className=\"c-search entryform-searchblock__form\"\r\n            method=\"get\"\r\n            autoComplete=\"off\"\r\n            action={props.SearchUrl}\r\n          >\r\n            <fieldset>\r\n              {props.Heading && (\r\n                <legend className={'c-search__legend'}>{props.Heading}</legend>\r\n              )}\r\n              <div className=\"c-search__field\">\r\n                <label\r\n                  className=\"c-search__field__label icon-search\"\r\n                  htmlFor=\"section-search\"\r\n                >\r\n                  {props.CurrentPageProps.Content.Translations.search && (\r\n                    <span className=\"show-for-sr\">\r\n                      {props.CurrentPageProps.Content.Translations.search}\r\n                    </span>\r\n                  )}\r\n                </label>\r\n                {props.DefaultFacet && (\r\n                  <input\r\n                    type=\"hidden\"\r\n                    name=\"theme\"\r\n                    value={props.DefaultFacet}\r\n                  />\r\n                )}\r\n\r\n                <EntryFormSearchField\r\n                  id=\"section-search\"\r\n                  className=\"c-search\"\r\n                  initialValue={qs.q}\r\n                  placeholder={props.SearchPlaceholder}\r\n                />\r\n                <button className=\"c-search__field__button\" type=\"submit\">\r\n                  {props.Translations.searchbutton}\r\n                </button>\r\n              </div>\r\n            </fieldset>\r\n          </form>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\n/**\r\n * Repo: PWT-PlatformUI\r\n *\r\n * Sites: NKK\r\n * @description\r\n *  Entry form block to a searchpage.\r\n *  With autocomplete, suggestions and quicksearch\r\n */\r\n\r\nconst SearchEntryFormWithAutocomplete = (props) => {\r\n  const hasQuickSearch =\r\n    typeof props.QuickSearchUrl !== 'undefined' &&\r\n    props.QuickSearchUrl !== null;\r\n  return (\r\n    <div className=\"row\">\r\n      <div className=\"columns small-12\">\r\n        <div className=\"entryform-searchform\" role=\"search\">\r\n          <form\r\n            className=\"c-search entryform-searchblock__form\"\r\n            action={props.SearchUrl}\r\n            method=\"get\"\r\n            autoComplete=\"off\"\r\n          >\r\n            <div className=\"c-search__field\">\r\n              <label\r\n                className=\"c-search__field__label icon-search\"\r\n                htmlFor=\"globalsearch\"\r\n              >\r\n                <span className=\"show-for-sr\">{props.SearchPlaceholder}</span>\r\n              </label>\r\n\r\n              <SearchField\r\n                id=\"section-search\"\r\n                className=\"search-block c-search\"\r\n                searchUrl={props.SearchUrl}\r\n                placeholder={props.SearchPlaceholder}\r\n                hasNoAutocomplete={props.hasNoAutocomplete}\r\n                hasQuickSearch={hasQuickSearch}\r\n                showSearchHitsHeadingSuffix\r\n              />\r\n\r\n              <button type=\"submit\" className=\"c-search__field__button\">\r\n                {props.Translations.searchbutton}\r\n              </button>\r\n            </div>\r\n          </form>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default withRouter(SearchEntryForm);\r\n\r\nexport { SearchEntryFormWithAutocomplete };\r\n","import React from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport queryString from 'qs';\r\n\r\nconst TabPanel = (props) => {\r\n  const options = {\r\n    ignoreQueryPrefix: true,\r\n  };\r\n  const qs = props.TypeExists\r\n    ? queryString.parse(props.location.search, options)\r\n    : '';\r\n\r\n  if ((props.default && !qs.t) || qs.t === props.id)\r\n    return <div className=\"c-tab-panel\">{props.children}</div>;\r\n\r\n  return null;\r\n};\r\n\r\nexport default withRouter(TabPanel);\r\n","import React, { useState } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport classNames from 'classnames';\r\nimport queryString from 'qs';\r\n\r\nconst Tabs = (props) => {\r\n  const [isOpen, setIsOpen] = useState(\r\n    typeof window !== 'undefined' &&\r\n      window.matchMedia('(min-width: 1025px)').matches\r\n  );\r\n\r\n  function handleToggle() {\r\n    setIsOpen(!isOpen);\r\n  }\r\n\r\n  const { Tabs, location, Id } = props;\r\n\r\n  if (!Tabs) return null;\r\n  const options = {\r\n    ignoreQueryPrefix: true,\r\n  };\r\n  const q = props.TypeExists ? queryString.parse(location.search, options) : '';\r\n\r\n  let currentTab = null;\r\n\r\n  const tabs = Tabs.map((tab, index) => {\r\n    const tabQ = queryString.parse(tab.Url);\r\n    const current = !q.t ? index === 0 : q.t === tabQ.t;\r\n    const classes = classNames({\r\n      'c-tabs__nav__item': true,\r\n      'c-tabs__nav__item--selected': current,\r\n    });\r\n\r\n    if (current) currentTab = tab;\r\n\r\n    return (\r\n      <li key={index} className={classes}>\r\n        <a href={tab.Url}>{tab.Name}</a>\r\n      </li>\r\n    );\r\n  });\r\n\r\n  const tabsClasses = classNames({\r\n    'c-tabs': true,\r\n    'c-tabs--is-open': isOpen,\r\n  });\r\n\r\n  return (\r\n    <nav className={tabsClasses}>\r\n      <div onClick={() => handleToggle()} className=\"c-tabs__current\">\r\n        {currentTab.Name}\r\n      </div>\r\n      <button\r\n        onClick={() => handleToggle()}\r\n        className=\"c-tabs__toggle\"\r\n        aria-controls={Id}\r\n        aria-expanded={this.state.isOpen}\r\n      >\r\n        <span className=\"c-tabs__toggle__icon\" />\r\n      </button>\r\n      <ul id={Id} className=\"c-tabs__nav\" aria-hidden={!isOpen}>\r\n        {tabs}\r\n      </ul>\r\n    </nav>\r\n  );\r\n};\r\n\r\nexport default withRouter(Tabs);\r\n","import PropTypes from 'prop-types';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport useArrowNavigation from '../Hooks/useArrowNavigation';\r\nimport TypeaheadInput from './input';\r\nimport { filterTypeaheadItems, normalizeTypeaheadItems } from './utils';\r\nconst lodashUtil = require('lodash/util');\r\n\r\n/**\r\n * @param {Array} items - An array of items to display in the dropdown.\r\n * Each item should be an object with the following properties:\r\n * - `value` (string, required): The value of the item.\r\n * - `label` (string, required): The label to display for the item.\r\n * - `category` (string, optional): The optional category for the item.\r\n *\r\n * @param {Function} onSelect - Function called when an item is selected.\r\n * @param {boolean} [openOnFocus=true] - If true, the dropdown opens when the input is focused, otherwise it opens when the user starts typing.\r\n * @param {string} [label] - The label for the input field.\r\n * @param {string} [placeholderText] - Placeholder inside of the input field.\r\n *\r\n * @param {string} [tooltipTitle] - The heading displayed in the tooltip.\r\n * @param {string} [tooltipText] - The text displayed inside of the tooltip.\r\n * @param {string} [tooltipLinkText] - The link-text displayed next to the label.\r\n * @param {bool} [shouldSearchCategories] - Whether the categories should be included in the search or not\r\n * @param {string} [defaultValue] - The default value to be selected in the typeahead.\r\n */\r\nconst Typeahead = ({\r\n  items,\r\n  onSelect,\r\n  openOnFocus = true,\r\n  label,\r\n  placeholderText,\r\n  tooltipText,\r\n  tooltipLinkText,\r\n  translations,\r\n  inputRef,\r\n  rightAlignedTooltip,\r\n  shouldSearchCategories = false,\r\n  defaultValue = '',\r\n}) => {\r\n  const [query, setQuery] = useState('');\r\n  const [allItems, setAllItems] = useState([]);\r\n  const [filteredItems, setFilteredItems] = useState([]);\r\n  const [isDropdownOpen, setIsDropdownOpen] = useState(false);\r\n  const [isTooltipVisible, setIsTooltipVisible] = useState(false);\r\n  const localInputRef = useRef(null);\r\n  const ref = inputRef || localInputRef;\r\n  const uniqueId = useRef(lodashUtil.uniqueId('typeahead-input-')).current;\r\n\r\n  const flattenedListItems = filteredItems.flatMap(\r\n    (category) => category.items\r\n  );\r\n\r\n  const maxIndex = flattenedListItems.length - 1;\r\n\r\n  const getItemByIndex = (index) => flattenedListItems[index];\r\n\r\n  const { highlightedIndex, resetIndex, handleKeyDown } = useArrowNavigation(\r\n    maxIndex,\r\n    {\r\n      isOpen: isDropdownOpen,\r\n      onItemSelect: (item) => {\r\n        setQuery(item.label);\r\n        setIsDropdownOpen(false);\r\n        resetIndex();\r\n        onSelect && onSelect(item);\r\n      },\r\n      onClose: () => {\r\n        setIsDropdownOpen(false);\r\n        resetIndex();\r\n      },\r\n      getItemByIndex,\r\n    }\r\n  );\r\n\r\n  const highlightedItemValue = flattenedListItems[highlightedIndex]?.value;\r\n\r\n  const handleInputChange = (e) => {\r\n    const value = e.target.value;\r\n    setQuery(value);\r\n\r\n    const newFilteredItems = filterTypeaheadItems(\r\n      allItems,\r\n      value,\r\n      shouldSearchCategories\r\n    );\r\n    setFilteredItems(newFilteredItems);\r\n    setIsDropdownOpen(true);\r\n    resetIndex();\r\n  };\r\n\r\n  const handleInputFocus = () => {\r\n    if (openOnFocus || (!openOnFocus && query.length >= 1)) {\r\n      ref?.current.focus();\r\n      setIsDropdownOpen(true);\r\n      setFilteredItems(allItems);\r\n    }\r\n  };\r\n\r\n  const handleItemClick = (item) => {\r\n    setQuery(item.label);\r\n    setIsDropdownOpen(false);\r\n    resetIndex();\r\n    onSelect && onSelect(item);\r\n  };\r\n\r\n  const handleTooltipClick = () => {\r\n    setIsTooltipVisible(!isTooltipVisible);\r\n  };\r\n\r\n  const handleOnBlur = (e) => {\r\n    e.preventDefault();\r\n    setIsDropdownOpen(false);\r\n  };\r\n\r\n  useEffect(() => {\r\n    const normalizedItems = normalizeTypeaheadItems(items);\r\n    setAllItems(normalizedItems);\r\n    setFilteredItems(normalizedItems);\r\n  }, [items]);\r\n\r\n  useEffect(() => {\r\n    if (defaultValue) {\r\n      const selectedItem = allItems\r\n        .flatMap((category) => category.items)\r\n        .find((item) => item.value === defaultValue);\r\n      if (selectedItem) {\r\n        setQuery(selectedItem.label);\r\n      }\r\n    }\r\n  }, [defaultValue, allItems]);\r\n\r\n  return items && items.length > 0 ? (\r\n    <TypeaheadInput\r\n      inputRef={ref}\r\n      id={uniqueId}\r\n      query={query}\r\n      label={label}\r\n      placeholderText={placeholderText}\r\n      isDropdownOpen={isDropdownOpen}\r\n      filteredItems={filteredItems}\r\n      onQueryChange={handleInputChange}\r\n      onFocus={handleInputFocus}\r\n      onKeyDown={handleKeyDown}\r\n      onItemClick={handleItemClick}\r\n      onBlur={handleOnBlur}\r\n      tooltipLinkText={tooltipLinkText}\r\n      tooltipText={tooltipText}\r\n      rightAlignedTooltip={rightAlignedTooltip}\r\n      handleTooltipClick={handleTooltipClick}\r\n      highlightedItemValue={highlightedItemValue}\r\n      flattenedListItems={flattenedListItems}\r\n      translations={translations}\r\n    />\r\n  ) : null;\r\n};\r\n\r\nTypeahead.propTypes = {\r\n  items: PropTypes.arrayOf(\r\n    PropTypes.shape({\r\n      value: PropTypes.string.isRequired,\r\n      label: PropTypes.string.isRequired,\r\n      category: PropTypes.string,\r\n    })\r\n  ).isRequired,\r\n  onSelect: PropTypes.func,\r\n  openOnFocus: PropTypes.bool,\r\n  label: PropTypes.string,\r\n  placeholderText: PropTypes.string,\r\n  tooltipText: PropTypes.string,\r\n  tooltipLinkText: PropTypes.string,\r\n  defaultValue: PropTypes.string,\r\n};\r\n\r\nexport default Typeahead;\r\n","import { arrayOf, bool, shape, string } from 'prop-types';\r\nimport React from 'react';\r\nimport SemanticHeader from '../../platformui/Chapter/semantic-header';\r\n\r\nconst DescriptionList = (props) => {\r\n  let count = null;\r\n  return (\r\n    <div className=\"description-list\">\r\n      {props.Heading && (\r\n        <SemanticHeader isH3={props.isH3}>{props.Heading}</SemanticHeader>\r\n      )}\r\n      <p className=\"description-list__preamble\">{props.Preamble}</p>\r\n      <ul>\r\n        {props.List?.map((item, key) => {\r\n          props.ShowNumber && count++;\r\n          return (\r\n            <DescriptionListItem\r\n              {...props}\r\n              {...item}\r\n              isH4={\r\n                props.isH3 !== undefined &&\r\n                props.isH3 &&\r\n                props.Heading !== undefined\r\n              }\r\n              number={count}\r\n              key={key}\r\n            />\r\n          );\r\n        })}\r\n      </ul>\r\n    </div>\r\n  );\r\n};\r\nconst DescriptionListItem = (props) => {\r\n  return (\r\n    <li className=\"description-list__item\">\r\n      <div className=\"description-list__item__content\">\r\n        <div className=\"list-item-header-container\">\r\n          {props.number && (\r\n            <span>\r\n              <p>{props.number}</p>\r\n            </span>\r\n          )}\r\n          {props.Heading && (\r\n            <SemanticHeader\r\n              isH4={props.isH4}\r\n              isH3={\r\n                (!props.isH4 && props.isH3) || (!props.isH3 && props.Heading)\r\n              }\r\n            >\r\n              {props.Heading}\r\n            </SemanticHeader>\r\n          )}\r\n        </div>\r\n        <div dangerouslySetInnerHTML={{ __html: props.Description }}></div>\r\n      </div>\r\n    </li>\r\n  );\r\n};\r\n\r\nDescriptionList.propTypes = {\r\n  Heading: string,\r\n  Preamble: string,\r\n  ShowNumber: bool,\r\n  List: arrayOf(\r\n    shape({\r\n      Heading: string,\r\n      Description: string,\r\n    })\r\n  ),\r\n};\r\n\r\nexport default DescriptionList;\r\n","import React from 'react';\r\nimport T from 'prop-types';\r\nimport './styles.scss';\r\n\r\nconst RADIUS = 54;\r\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\r\n\r\nconst progress = (value) => {\r\n  const progress = value / 100;\r\n  const dashoffset = CIRCUMFERENCE * (1 - progress);\r\n  return dashoffset;\r\n};\r\n\r\n/**\r\n *  Will output a radial circle progress meter in SVG\r\n *\r\n */\r\nconst Progressbar = (props) => {\r\n  return (\r\n    <div className=\"progressbar\">\r\n      <div className=\"progress__text\">{props.percent}%</div>\r\n      <svg\r\n        aria-labelledby=\"title\"\r\n        className=\"progress\"\r\n        width={props.size}\r\n        height={props.size}\r\n        viewBox=\"0 0 120 120\"\r\n      >\r\n        <title id=\"title\">{props.percent} %</title>\r\n        <circle\r\n          className=\"progress__meter\"\r\n          cx=\"60\"\r\n          cy=\"60\"\r\n          r=\"54\"\r\n          strokeWidth={props.strokeWidth}\r\n        />\r\n        <circle\r\n          strokeDasharray={CIRCUMFERENCE}\r\n          strokeDashoffset={progress(props.percent)}\r\n          className=\"progress__value\"\r\n          cx=\"60\"\r\n          cy=\"60\"\r\n          r=\"54\"\r\n          strokeWidth={props.strokeWidth}\r\n        />\r\n      </svg>\r\n    </div>\r\n  );\r\n};\r\n\r\nProgressbar.propTypes = {\r\n  /** How much progress */\r\n  percent: T.number,\r\n  /** Width and Height of <SVG> element */\r\n  size: T.number,\r\n  /** Width of meter and value stroke. */\r\n  strokeWidth: T.number,\r\n};\r\n\r\nexport default Progressbar;\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport { shape, arrayOf, string, object } from 'prop-types';\r\n\r\nexport const renderTimeListItem =\r\n  ({ baseClassName }) =>\r\n  (item, index) =>\r\n    (\r\n      <li className={`${baseClassName}__item`} key={index}>\r\n        {item.days && (\r\n          <span className={`${baseClassName}__item__day-part`}>\r\n            {item.days}\r\n          </span>\r\n        )}\r\n        {item.hours && (\r\n          <span className={`${baseClassName}__item__hour-part`}>\r\n            {item.hours}\r\n          </span>\r\n        )}\r\n      </li>\r\n    );\r\n\r\nconst TimeList = (props) => {\r\n  const { heading, items, baseClassName, modifiers, renderEmptyFallback } =\r\n    props;\r\n  const className = classnames(`${baseClassName}__container`, {\r\n    ...modifiers,\r\n  });\r\n  if ((!items || items.length === 0) && renderEmptyFallback === null) {\r\n    return null;\r\n  }\r\n  return (\r\n    <div className={className}>\r\n      {heading && <div className=\"contact-card__item__label\">{heading}</div>}\r\n      {renderEmptyFallback && <p>{renderEmptyFallback}</p>}\r\n      <ul>{items.map(renderTimeListItem(props))}</ul>\r\n    </div>\r\n  );\r\n};\r\n\r\nTimeList.defaultProps = {\r\n  renderEmptyFallback: null,\r\n  baseClassName: 'time-list',\r\n  modifiers: {},\r\n};\r\n\r\nexport const propTypes = {\r\n  /** classnames compatible object */\r\n  modifiers: object,\r\n  heading: string,\r\n  baseClass: string,\r\n  /** Will not render if items list is empty or undefined */\r\n  items: arrayOf(\r\n    shape({\r\n      days: string.isRequired,\r\n      hours: string.isRequired,\r\n    })\r\n  ),\r\n};\r\n\r\nTimeList.propTypes = propTypes;\r\n\r\nexport const getTimeListItems = (dayProp, hourProp) => (o) => ({\r\n  days: o[dayProp],\r\n  hours: o[hourProp],\r\n});\r\n\r\nexport default TimeList;\r\n"],"names":["props","Content","Heading","Text","LinkText","LinkUrl","_jsxs","className","children","useBackgroundImage","_jsx","href","useIconLink","FirstColumn","classNames","contentDirection","columns","SecondColumn","ArticleFooterContent","ArticleFooter","RoleGroups","map","item","index","_props$Translations","Label","FooterHasCollapsibleRoleGroups","CollapsiblePanel","Id","DefaultCollapsed","Translations","showworkgroup","RoleItem","_objectSpread","Persons","person","Person","ArticleFooterReviewDate","_ref","LastReview","ArticleFooterPublishDate","_ref2","PublishDate","ArticleFooterApprovedDate","_ref3","ApprovedDate","ArticleFooterApprovedBy","_ref4","ApprovedBy","isRegional","i","name","url","RegionalName","cssClasses","dataPrintSidebarTitle","articlefooter","Region","RegionalArticleFooter","revisiondate","publishdate","approved","approvedDate","approvedby","approvedBy","Organizations","InformationText","dangerouslySetInnerHTML","__html","useIdsBadge","_objectWithoutProperties","_excluded","Badge","type","text","concat","regionlabel","CurrentRegionName","ArticleTags","tags","key","ArticleVideoWrapper","TopMediaVideo","isAboveTitle","Video","_props$Content","_props$Content2","_props$Content3","_props$Content4","componentClasses","Modifiers","SubjectHeading","HideSubjectHeading","showSubject","isFaqPage","question","SubjectAboveHeading","SubjectHeadingLink","VideoAboveTitle","HeadingTranslation","dir","lang","useSweLang","Language","RegionLabel","Site","PageTypeName","Preamble","Container","WrappedComponent","offsetTop","handles","printHandler","ticking","throttleScroll","requestAnimationFrame","handle","window","addEventListener","matchMedia","addListener","mql","matches","viewport","useRef","isInViewPort","setIsInViewPort","useState","isViewed","setIsViewed","isBrowserTop","setIsBrowserTop","isBottomBrowserTop","setIsBottomBrowserTop","isInRange","setIsInRange","getBoundingClientRect","current","isComponentInViewPort","rect","offset","top","innerHeight","isComponentBrowserTop","isComponentBottomBrowserTop","bottom","isComponentWithinRange","isPrinting","useEffect","setTimeout","push","ref","arguments","length","undefined","setIsInrange","link","linkText","buttonClass","altLinkText","useWindowLocationHref","role","useShare","copiedToClipboard","setCopiedToClipboard","timer","clearTimeout","share","useCallback","async","title","navigator","canShare","error","console","message","clipboard","writeText","description","buttonText","requireLink","copiedToClipboardMessage","trackCategory","trackAction","trackName","textToDisplay","onClick","ExpandableButton","iconClass","textClass","open","controlsElementId","buttonId","attr","id","defaultProps","collapsibleContentInner","collapsibleContent","isExpanded","setIsExpanded","extendsContent","clientHeight","componentClass","buttonReadLessText","buttonReadMoreText","classes","hideCollapsibleText","heading","buttonChildren","Listitem","fullWidth","matomoTrackingClass","Url","itemChildren","items","modifiers","_createElement","tabIndex","TemporaryInformation","Comment","FromDate","ToDate","showComments","date","Date","toISOString","comments","Alert","ToggleContainer","subheading","animation","toggle","isLast","SemanticHeader","isH3","hasH3","isH4","hasH4","contactCardHeading","Card","Address","Location","openIndoorRouteDescriptionIfClosed","document","getElementById","querySelector","dataset","click","showRouteDescriptionLink","Boolean","latitude","longitude","IndoorRouteDescription","RoadDescription","DisplayName","replace","LogotypeUrl","src","alt","Fragment","e","preventDefault","scrollIt","roaddescription","Items","ContactCardPanel","Title","PublishFrom","published","Link","expandableList","EServices","ToggleMore","allVisibleItems","visible","toggleMore","Modal","List","child","Description","OpenModalButton","ExternalId","ariaLabel","moreinformationabout","clickCallback","activeBtn","_activeBtn$nextSiblin","content","nextSibling","getElementsByClassName","focus","setFocus","ModalPanel","whenActive","CloseModalButton","close","showless","showmore","data","label","Value","ValueLink","AccessibilityUrl","FindUs","isSmall","isSmallViewport","wrapperClasses","mapGrid","biggermaptravelplanner","StaticMapUrl","addressGrid","visitoraddress","County","county","Municipality","PostalAddress","postaladdress","WebsiteUrl","websiteurl","accessibilityurl","AccessibilityUrlText","hideroutedescription","showroutedescription","outdoorroutedescription","indoorroutedescription","_props$Offers","GeneralText","GeneralFiles","Linklist","Links","Offers","offer","Files","setVisible","list","visElements","querySelectorAll","visElementsArray","Array","prototype","slice","call","filter","el","getComputedStyle","display","lastItem","pop","string","shape","arrayOf","PropTypes","OwnerAndFinancing","OwnerType","ownertype","FinancingText","PriceLinks","AboutUsSection","PhotoUrl","PhotoAlt","PhotoAltText","FullWidth","SubSection","SubHeading","unit__section","subsection","Image","ImageUrl","Alt","match","setOpen","setAnimation","toggleHandler","itemId","setItemId","currentActiveId","currentActiveMenuItem","equalSectionIdsOnPageLoad","location","hash","Viewport","CurrentPageProps","IsEditMode","isLazyLoaded","setIsLazyLoaded","currentSrc","setCurrentSrc","paramOrQuery","indexOf","presetLowResUrl","imageUrl","isLazyLoad","handleOnLoad","img","currentTarget","LazyLoadImageUrl","COOKIE_NAME","isLoading","setIsLoading","cookieContext","useContext","CookieContext","cookieData","cookies","hideSensitiveImage","Cookies","IsSensitiveInContext","handleShowSensitiveImages","isAllowed","reload","showSensitiveImageIsLoading","PRESET_300","PRESET_400","PRESET_500","PRESET_600","PRESET_700","PRESET_800","PRESET_1000","PRESET_1200","PRESET_1500","PRESET_1800","PRESET_2000","PRESET_2200","PRESET_2500","imgIsTouched","srcSets","isSrcSets","SrcSets","srcSet","defaultPreset","DefaultPreset","FacetItem","_query$q","query","queryString","p","site","isSelected","Name","toString","q","makeItemArray","array","split","defaultChecked","value","onChange","FacetsRadioButton","names","forEach","history","search","qs","indices","checked","categoryname","handleChange","showCount","count","FacetsItems","Facets","pathname","facetCounts","_facetCounts$item$Id","Names","reduce","acc","cur","some","formatDate","year","month","day","options","toLocaleDateString","toUpperCase","FormatDateTime","dateTime","bool","node","prefix","isError","errorMessages","errorType","isFocus","setIsFocus","disabled","component","classNameModifiers","isValid","isTouched","rest","ErrorComponent","Error","Input","onFocus","removeFocus","Textarea","Select","getAriaDescribedBy","_error$props","onBlur","defaultValue","htmlFor","required","callIfFunction","charsLeft","setCharsLeft","maxLength","textarea","getCharsLeft","maxLengthTranslation","charsClasses","onKeyUp","maxIndex","highlightedIndex","setHighlightedIndex","isOpen","onItemSelect","onClose","getItemByIndex","selectionKeys","resetIndex","handleKeyDown","prevIndex","includes","setHref","Row","rowItem","_Fragment","Term","DescriptionItems","descItem","useColumnView","useClasses","withRouter","_props$CurrentPagePro","_props$CurrentPagePro2","_props$CurrentPagePro3","ImageDescription","ImageText","UniqueBlockId","ShowCaption","ShowPhotoCred","UseZoom","Sizes","sizes","btnClasses","imageblock","isMemberOfChapterContainer","isMemberOfChapter","sensetiveheading","SensitiveImageLoadingIcon","showsensetiveimages","ImageZoom","Photographer","Illustrator","photographer","illustrator","zoomImage","createRef","zoomTrigger","isZoomed","setIsZoomed","removeZoomClassName","getElementsByTagName","classList","remove","handleClick","context","allTabbableElements","firstTabbableElement","lastTabbableElement","event","keyCode","which","returnValue","target","shiftKey","keepFocus","add","zoomClass","stopPropagation","_props$Description","isBackgroundImage","ariaHidden","style","backgroundImage","attributes","includeTracking","onLoad","LazyLoadImage","withSrcSets","withLazyLoad","srLabel","selectedItem","setIsOpen","dropdownRef","useArrowNavigation","toggleDropdown","_dropdownRef$current","defaultOption","find","option","onKeyDown","KeywordMessage","Children","IsCurrentPage","ActivePath","secondLevel","Menu","firstLevel","menuItem","Item","Ancestor","FirstName","LastName","Workplace","City","SelectedRadio","PrintableItems","CheckedItems","SetPrintClicked","iframeRef","prepareContent","_printItems$map$join","_printItems","doc","contentDocument","contentWindow","printItems","styleContent","from","outerHTML","join","headerMainDiv","headerMainHTML","regionLabel","regionLabelHTML","updatedOuterHTML","write","elements","element","initializeIframe","backgroundColor","width","height","position","left","zIndex","handleLoad","print","isSidebarOpen","setSidebarOpen","checkedItems","setCheckedItems","selectedRadio","setSelectedRadio","printableItems","setPrintableItems","printableChildren","setPrintableChildren","printClicked","setPrintClicked","sidebarRef","sidebarToggleButtonRef","elementsRef","handleClickOutside","contains","mainElement","imgblockMediaSliderChildren","nodeName","figures","chapterContainerChildren","getAttribute","chapterChildren","links","linklist","offsetParent","hasAttribute","removedContainerChildren","handlePrintSelection","removeEventListener","handleRadioChange","mediaType","linkListContainer","chapterContainer","chapter","listOfImgElement","isMediaSlider","isLinkListContainer","isChapterContainer","isChapter","listOfElementblockchapter","listOfElementblock","listOfElement","prevItems","newItemsList","Set","filteredItems","_item$offsetParent","togglePrintSidebar","getPrintSelectionTitle","dataPrintSidebarTitleRegion","words","innerText","printsidebartitle","printsidebarclose","printsidebarselectiontitle","printsidebarselectionparts","selected","printsidebarselectionwholepage","printsidebarselectionwhatparts","stripHtml","printbuttonwholepage","printbuttonparts","PrintIframe","hideSearchHeading","TotalHits","ResultText","SuggestionText","ContentAfter","activeFilterFacet","showFilterResultText","translations","isVardpersonal1177","siteAdress","Query","decodeURIComponent","resultQueryText","filterResultText","withfilter","within","resultSiteText","on","withSearch","_props$searchTabs","_props$SearchResult","ignoreQueryPrefix","SearchResult","searchblock","searchToolsClasses","alertType","_props$Facets","_props$Facets$Items","facet","method","autoComplete","onSubmit","t","useExternalSearch","Placeholder","SearchField","searchUrl","placeholder","hasQuickSearch","hasNoAutocomplete","SearchApiAutoCompleteUrl","showSearchHitsHeadingSuffix","defaultQuickSearch","QuickSearchSettings","searchbutton","KeywordHints","IsSimpleFallbackSearch","alert","ResultDisclaimer","searchTabs","ExternalSearchContent","TabMenu","tabs","tab","_tab$SearchResult","_tab$SearchResult2","_tab$SearchResult3","SearchApiIndex","TabHeader","isActive","searchApiIndex","screenReaderText","getExternalSiteAdress","handleTabChange","showResponsiveDropdown","selectsearchsource","hasFilterBar","showFilterBarWithFacets","SearchHeading","vardpersonal1177","HideCategoryFacets","HideThemeFacets","category","theme","filterBarDefaultOpen","filtersearchhitsheading","EmptySearchResultText","DisableClickTracking","revisedAsPublished","isExternalSearchHit","isExternalSearch","regionalizeSearchHits","availableLanguagesHeader","AvailableLanguagesHeader","Pagination","Spinner","BatchText","MatomoTrackSearch","Search","SearchCategory","SearchHits","ExternalSearchHits","customClass","sectionClasses","ShareChannels","PrintsideBarEnabled","shareChannelClass","Channel","copylink","ShareURL","tipafriend","PrintSidebar","LinkContent","isMedium","isMediumViewport","CustomSelect","selectedOption","SplitColumns","columnClasses","numOfItems","blockName","pageName","getColumnClasses","teaserTheme","Theme","headerClasses","infoType","InformationType","teaserClasses","rowSplit","row","splitColumns","Media","teaserContainsImage","ShowVideoPlayIcon","Render","Block","blocks","propertyName","currentPageProps","setPreset","Vignette","use1177ProfessionDesign","showcontentas","toggleBrickView","showasbricks","showaslist","TeaserItemLinkList","contentClassNames","Dir","TitleTranslation","Lang","TeaserItemLink","horizontalDirection","teaserHeadingLink","ListChildren","masonryLayout","IsListOfChildren","listStyle","WrapperModifiers","BlockTypeName","Design","ArticleList","FeatureToggleSettings","Use1177ProfessionDesign","cypressValues","Property","Teaser","SectionModifiers","setToggleBrickView","ShowListView","showListViewToggler","UseListToggler","sectionHeader","Section","currentarticles","ListViewToggler","themeClass","AnchorSectionId","elementTop","scrollY","scrollTo","behavior","onToggle","caption","isStandingVideo","hideTitle","hideCaption","isGallery","galleryLink","allow","allowFullScreen","sandbox","_CurrentPageProps$Con","_CurrentPageProps$Con2","VideoTitle","VideoId","VideoText","IsMediaFlowPro","IsDreamBroker","IsQbrick","IsStandingVideo","InternalLinkName","videoUrl","videoblock","Iframe","videourl","test","separator","addTimeUpdateParam","IsInRange","handleLetterChange","letter","toLowerCase","isWithinTrac","setIsWithinTrac","isTrackBottom","setIsTrackBottom","nodeRef","getParentNode","_nodeRef$current","parentNode","isComponentWithinTrack","parentRect","comp","getFirstChild","_nodeRef$current2","firstChild","trackBottom","pageYOffset","alphabet","compare","activeLetter","Anchors","Key","matched","_props$list$","setActiveLetter","substring","Navigation","ImageProperties","ImageBlockLazyLoad","withSensitiveImage","ImageBlock","_props$RegionAddition","_props$RegionAddition2","StoryPageHeading","HideAnchorNavigation","HideAnchorLink","RegionAddition","ContentAbove","Blocks","ResponsiveImages","ContentString","ContentBelow","_props$regionalName","table","parent","wrapper","createElement","tableWrapper","wrapperInner","innerTableWrapper","tableClasses","insertBefore","appendChild","wrapTables","wideTable","offsetWidth","scrollWidth","fitInWidth","hasInlineImage","regionalName","noToggle","View","ToggleChapter","initialState","Radio","propTypes","Checkbox","canSubmit","_regionalContent$","regionalContent","translation","langLabel","block","_props$CurrentPagePro4","_props$CurrentPagePro5","_props$CurrentPagePro6","SelectedType","SelectedIcon","SelectedBackgroundColor","Buttons","RegionalContent","highlightblock","RegionalHighlightTextBlock","LinkButton","ButtonLink","ButtonText","ButtonStyling","eventCategory","eventAction","eventName","eventValue","debounceTime","timeoutRef","eventValueUnchanged","_window","_window$_paq","_paq","ImageBlockWithSrcSet","introClasses","ArticleHeader","showAuthor","marginBottom","Href","activeIndex","pageProps","counter","numberOfItems","ImageHeading","ImageLinks","isStanding","slideWidth","isArticlePage","isMobile","alwaysShowCurrentImage","ImageBlockWithSrcSets","forciblyShowCurrentCount","visibility","MediaGalleryContent","totalSlides","currentSlide","visibleRange","hasGroupedDots","calculateDotSize","distance","Math","abs","max","_","ShowPagination","totalItems","hasMedia","media","containsMedia","isThreeSlidesLayout","isFullWidthLayout","galleryIsScrollable","alwaysShowCurrentImageIndicator","scrollContainerRef","setActiveIndex","visiblePaginationRange","setVisiblePaginationRange","updatePaginationRange","newSlide","newStart","floor","maxVisiblePaginationDots","newEnd","min","scrollContainer","handleScroll","scrollLeft","containerWidth","clientWidth","itemWidth","newIndex","maxScrollLeft","round","scrollToIndex","scrollSnapType","nextSlide","prevSlide","useMatomoTrackEventOnChange","MediaGalleryPagination","MediaGalleryImage","IsStandingImage","ShowAuthor","MediaGalleryVideo","next","previous","quizInProgress","currentQuestionNr","nrOfQuestions","correctNrOfQuestions","finishedQuizText","friendlyLinkName","RadioButton","isValidated","inactive","questionText","answerAlternatives","image","onAnswer","blockId","selectedAnswer","correctFeedbackText","incorrectFeedbackText","correctAnswerLink","correctAnswerLinkText","friendlyCorrectLinkName","incorrectAnswerLink","incorrectAnswerLinkText","friendlyIncorrectLinkName","currentAnswerIndex","chapterContainerHasHeading","correctLinkText","incorrectLinkText","IsCorrect","answer","AnswerText","answerQuestion","_currentQuestion$Imag","introText","internalLinkName","questions","answerSpans","isCollectionPage","shareButton","answeredQuestions","setAnsweredQuestions","currentQuestionIndex","setCurrentQuestionIndex","setQuizInProgress","correctNumberOfQuestions","setCorrectNumberOfQuestions","setFinishedQuizText","hideQuizBlock","setHideQuizBlock","quizResultsRef","currentQuestion","nextPaginationButtonActive","Object","keys","handleQuestionAnswer","questionId","scrollToTop","headingTop","_answerSpans$sort","correctAnswersCount","values","answerSpan","sort","a","b","Max","updateQuizResultHeight","currentContentHeight","scrollHeight","maxHeight","InfoBox","QuizQuestion","QuestionText","AnswerAlternatives","BlockId","CorrectFeedbackText","IncorrectFeedbackText","CorrectAnswerLink","CorrectAnswerLinkText","FriendlyCorrectLinkName","IncorrectAnswerLink","IncorrectAnswerLinkText","FriendlyIncorrectLinkName","_question$Image","ShareButton","ShareDescription","ShareButtonText","ShareButtonLink","ShareTitle","handlePrev","handleNext","EntryFormSearchField","handleBlur","initialValue","setValue","action","SearchUrl","DefaultFacet","SearchPlaceholder","TypeExists","default","handleToggle","Tabs","currentTab","tabQ","tabsClasses","state","require","DescriptionListItem","number","_props$List","ShowNumber","PI","renderTimeListItem","baseClassName","days","hours","TimeList","renderEmptyFallback","classnames","object","isRequired"],"sourceRoot":""}