{"version":3,"file":"static/js/367.eec0475f.chunk.js","mappings":"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","sources":["blocks/link-list-block.js","blocks/list-container-block.js","blocks/manuel-page-list-block.js","blocks/search-link-list-block.js","platformui/AOListBlock/aolist.js","platformui/AOListBlock/index.js","platformui/AOListBlock/list.js","platformui/AOListBlock/navigation.js","platformui/AdjustableLinkBlock/index.js","platformui/ArticleFooter/index.js","platformui/ArticleFooter/regionarticlefooter.js","platformui/ArticleHeader/index.js","platformui/ArticleHeader/regionlabel.js","platformui/ArticleList/index.js","platformui/Base/Sensors/isInRange.js","platformui/Buttons/LinkButton/index.js","platformui/Chapter/index.js","platformui/Chapter/responsive-images.js","platformui/Chapter/view.js","platformui/Contact-card/components/timelist.js","platformui/Containers/withAnchorNav.js","platformui/Containers/withSensitiveImage.js","platformui/Containers/withToolbarButtonList.js","platformui/DescriptionList/index.js","platformui/Facets/index.js","platformui/FormatDateTime/index.js","platformui/Forms/checkbox.js","platformui/Forms/label.js","platformui/Forms/radio.js","platformui/HighLight/index.js","platformui/Hooks/useArrowNavigation.js","platformui/Hooks/useMatomoTrackEventOnChange.js","platformui/Iframe/index.js","platformui/ImageBlock/index.js","platformui/ImageZoom/index.js","platformui/Inputs/custom-select.js","platformui/Intro/index.js","platformui/KeywordHints/index.js","platformui/LanguagePanel/index.js","platformui/ListContainer/container.js","platformui/ListContainer/index.js","platformui/ListContainer/section-wrapper.js","platformui/Localnav/index.js","platformui/Localnav/item.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/Person/index.js","platformui/Progressbar/index.js","platformui/ReadingAid/index.js","platformui/SearchBlock/index.js","platformui/SearchBlock/searchheading.js","platformui/SearchEntryFormBlock/entryform-searchfield.js","platformui/SearchEntryFormBlock/index.js","platformui/SearchLinkList/index.js","platformui/SearchLinkList/item-list.js","platformui/SearchLinkList/item.js","platformui/TabMenu/index.js","platformui/TabPanel/index.js","platformui/Tabs/index.js","platformui/Teaser/index.js","platformui/Teaser/list-view-toggler.js","platformui/Theme/index.js","platformui/ToggleChapter/index.js","platformui/Typeahead/index.js","platformui/Typeahead/input.js","platformui/Typeahead/labelTooltip.js","platformui/Typeahead/utils.js","platformui/Video/index.js"],"sourcesContent":["import React from 'react';\r\nimport Linklist from '../platformui/Linklist';\r\n\r\nexport default (props) => (\r\n  <Linklist Modifiers={{ 'c-linklist--block': true }} {...props} />\r\n);\r\n","import React from 'react';\r\nimport ListContainer from '../platformui/ListContainer';\r\n\r\nconst ListContainerBlock = (props) => <ListContainer {...props} />;\r\n\r\nexport default ListContainerBlock;\r\n","import React, { Fragment } from 'react';\r\nimport * as Render from '../platformui/Base/Render';\r\nimport { Teaser } from '../platformui/Teaser';\r\nexport default (props) => (\r\n  <Fragment>\r\n    {props.RegionAddition && props.RegionAddition.ContentAbove && (\r\n      <Render.Block\r\n        blocks={props.RegionAddition.ContentAbove}\r\n        propertyName=\"ContentAbove\"\r\n        currentPageProps={props}\r\n      >\r\n        <Teaser />\r\n      </Render.Block>\r\n    )}\r\n    <Teaser {...props} Heading={Render.Property(props.Heading, 'Heading')} />\r\n    {props.RegionAddition && props.RegionAddition.ContentBelow && (\r\n      <Render.Block\r\n        blocks={props.RegionAddition.ContentBelow}\r\n        propertyName=\"ContentBelow\"\r\n        currentPageProps={props}\r\n      >\r\n        <Teaser />\r\n      </Render.Block>\r\n    )}\r\n  </Fragment>\r\n);\r\n","import React from 'react';\r\nimport SearchLinkList from '../platformui/SearchLinkList';\r\n\r\nconst SearchLinkListBlock = (props) => <SearchLinkList {...props} />;\r\n\r\nexport default SearchLinkListBlock;\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","import React from 'react';\r\nimport T from 'prop-types';\r\nimport AOList from './aolist';\r\n\r\nconst AOListBlock = (props) => {\r\n  const ao = [\r\n    'a',\r\n    'b',\r\n    'c',\r\n    'd',\r\n    'e',\r\n    'f',\r\n    'g',\r\n    'h',\r\n    'i',\r\n    'j',\r\n    'k',\r\n    'l',\r\n    'm',\r\n    'n',\r\n    'o',\r\n    'p',\r\n    'q',\r\n    'r',\r\n    's',\r\n    't',\r\n    'u',\r\n    'v',\r\n    'w',\r\n    'x',\r\n    'y',\r\n    'z',\r\n    'å',\r\n    'ä',\r\n    'ö',\r\n  ];\r\n\r\n  if (props.ActivateDigitGrouping) {\r\n    ao.unshift('#');\r\n  }\r\n  const dataPrintSidebarTitle = props.CurrentPageProps?.Content?.Translations?.aolistblock || '';\r\n\r\n  return (\r\n    <AOList\r\n      alphabet={ao}\r\n      compare={(item) => {\r\n        const listitem = props.AOList.Items.find(\r\n          (x) => x.Key.toLowerCase() === item.Key.toLowerCase()\r\n        );\r\n        return listitem && listitem.Items;\r\n      }}\r\n      id={props.UniqueBlockId}\r\n      list={props.AOList.Items}\r\n      dataPrintSidebarTitle={dataPrintSidebarTitle}\r\n    />\r\n  );\r\n};\r\n\r\nAOListBlock.propTypes = {\r\n  Items: T.arrayOf(\r\n    T.shape({\r\n      Key: T.string,\r\n    })\r\n  ),\r\n  UniqueBlockId: T.string,\r\n};\r\n\r\nexport default AOListBlock;\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 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\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 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 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 className=\"c-articleheader__heading\" data-print-sidebar-title={dataPrintSidebarTitle.heading}>{props.Heading}</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} />\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 && <p className=\"preamble\" data-print-sidebar-title={dataPrintSidebarTitle.preamble}>{props.Preamble}</p>}\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 from 'react';\r\nimport { shape, string, node } from 'prop-types';\r\n\r\nconst RegionLabel = (props) => {\r\n  return (\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  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 React from 'react';\r\nimport classNames from 'classnames';\r\nimport { any, node, number, string } from 'prop-types';\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--nth2': props.numOfItems === 2,\r\n    'c-article-list--nth1': props.numOfItems === 1,\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, { 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 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","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 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","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, 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\nconst withToolbarButtonList = (WrappedComponent) => {\r\n  return class ToolBtn extends React.Component {\r\n    state = {\r\n      isVisible: false,\r\n    };\r\n\r\n    handleVisible(e, id) {\r\n      if (e) e.preventDefault();\r\n      this.props.handleToolsVisibility(\r\n        !this.state.isVisible,\r\n        document.getElementById(id).offsetHeight\r\n      );\r\n\r\n      if (id === 'global-search') {\r\n        setTimeout(() => {\r\n          document.getElementById('globalsearch').focus();\r\n        }, 420);\r\n      }\r\n\r\n      this.setState({\r\n        isVisible: !this.state.isVisible,\r\n      });\r\n    }\r\n\r\n    componentDidMount() {\r\n      this.props.addToolComponent(this);\r\n    }\r\n\r\n    render() {\r\n      return (\r\n        <WrappedComponent\r\n          {...this.props}\r\n          {...this.state}\r\n          handleVisible={(e, id) => this.handleVisible(e, id)}\r\n        />\r\n      );\r\n    }\r\n  };\r\n};\r\n\r\nexport default withToolbarButtonList;\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 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 { 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 { 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 { 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 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\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  } = 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      {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 { 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, 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 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","//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 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\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 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, { Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport withToolbarButtonList from '../Containers/withToolbarButtonList';\r\n\r\nconst LanguagePanel = (props) => {\r\n  const { ButtonSVG, LanguagePanel, toggleButtonClasses, isVisible } = props;\r\n\r\n  const languagePanelClasses = classNames({\r\n    'c-language-panel': true,\r\n    'c-language-panel--is-opened': props.isVisible,\r\n  });\r\n\r\n  const languagePanelInner = classNames({\r\n    'c-language-panel__inner': true,\r\n    'c-language-panel__inner--no-button': !LanguagePanel.Link,\r\n  });\r\n\r\n  return (\r\n    <Fragment>\r\n      <div\r\n        className={languagePanelClasses}\r\n        id=\"language-panel\"\r\n        aria-hidden={!isVisible}\r\n      >\r\n        <div className=\"row\">\r\n          <div className=\"columns\">\r\n            <div className={languagePanelInner}>\r\n              <div\r\n                dangerouslySetInnerHTML={{ __html: LanguagePanel.Text }}\r\n              ></div>\r\n              <a href={LanguagePanel.Link} className=\"c-forms__button\">\r\n                {LanguagePanel.Label}\r\n              </a>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <a\r\n        className={toggleButtonClasses}\r\n        onClick={() => props.handleVisible(null, 'language-panel')}\r\n        role=\"button\"\r\n        aria-controls=\"language-panel\"\r\n        aria-expanded={isVisible}\r\n        tabIndex=\"0\"\r\n      >\r\n        {ButtonSVG}\r\n        <span>\r\n          {props.Content.Translations && props.Content.Translations.languages}\r\n        </span>\r\n      </a>\r\n    </Fragment>\r\n  );\r\n};\r\n\r\nexport default withToolbarButtonList(LanguagePanel);\r\n","import React from 'react';\r\nimport * as Render from '../Base/Render';\r\nimport classNames from 'classnames';\r\n\r\nconst Container = (props) => {\r\n  const { Heading } = props;\r\n\r\n  const dataPrintSidebarTitle = Heading || props.CurrentPageProps?.Content?.Translations?.linklistblock || '';\r\n  const listcontainer = \"data-list-container\"\r\n  return (\r\n    <div\r\n      className={classNames({\r\n        'list-container': true,\r\n        'list-container--has-section-wrapper': props.hasSectionWrapper,\r\n      })}\r\n      data-print-sidebar-title={dataPrintSidebarTitle}\r\n      data-list-container={ listcontainer}\r\n    >\r\n      {Heading && <h2 className=\"list-container__heading\">{Heading}</h2>}\r\n      <Render.Block\r\n        blocks={props.Content}\r\n        propertyName=\"Content\"\r\n        currentPageProps={props.CurrentPageProps}\r\n      >\r\n        <Render.BlockTypeRenderer Blocks={props.Blocks} isH3={Heading} />\r\n      </Render.Block>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Container;\r\n","import React from 'react';\r\nimport SectionWrapper from './section-wrapper';\r\nimport Container from './container';\r\n\r\nconst ListContainer = (props) => {\r\n  switch (props.CurrentPageProps.PageTypeName) {\r\n    case 'ArticlePage':\r\n      return <Container {...props} />;\r\n    default:\r\n      return (\r\n        <SectionWrapper>\r\n          <Container {...props} hasSectionWrapper={true} />\r\n        </SectionWrapper>\r\n      );\r\n  }\r\n};\r\n\r\nexport default ListContainer;\r\n","import React from 'react';\r\nimport Section from '../Section';\r\n\r\nconst SectionWrapper = (props) => {\r\n  return (\r\n    <Section>\r\n      <div className=\"row\">\r\n        <div className=\"columns\">{props.children}</div>\r\n      </div>\r\n    </Section>\r\n  );\r\n};\r\n\r\nexport default SectionWrapper;\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 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\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\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 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, { Fragment } from 'react';\r\nimport withToolbarButtonList from '../Containers/withToolbarButtonList';\r\nimport ReadingAidPanel from './reading-aid-panel';\r\n\r\nconst ReadingAid = (props) => {\r\n  const handleEnterPress = (e) => {\r\n    if (e.key === 'Enter') {\r\n      props.handleVisible(null, 'reading-aid');\r\n    }\r\n  };\r\n\r\n  const { ReadingAid, ButtonSVG, toggleButtonClasses, isVisible } = props;\r\n\r\n  if (!ReadingAid) return null;\r\n  if (!ReadingAid.EnableReadingAid) return null;\r\n\r\n  return (\r\n    <Fragment>\r\n      <a\r\n        className={toggleButtonClasses}\r\n        onClick={() => props.handleVisible(null, 'reading-aid')}\r\n        onKeyPress={handleEnterPress}\r\n        id=\"reading-aid-panel-btn\"\r\n        role=\"button\"\r\n        aria-controls=\"reading-aid\"\r\n        aria-labelledby=\"description-reading-aid\"\r\n        aria-expanded={isVisible}\r\n        tabIndex=\"0\"\r\n      >\r\n        {ButtonSVG}\r\n        <span id=\"description-reading-aid\">\r\n          {props.Content.Translations && props.Content.Translations.listen}\r\n        </span>\r\n      </a>\r\n      <ReadingAidPanel {...props} />\r\n    </Fragment>\r\n  );\r\n};\r\n\r\nexport default withToolbarButtonList(ReadingAid);\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          />\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 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","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 T from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport ToggleContainer from '../Containers/toggleContainer';\r\nimport withSearch from '../Containers/withSearch';\r\nimport ItemList from './item-list';\r\n\r\nconst SearchLinkList = (props) => {\r\n  const {\r\n    Heading,\r\n    SearchResult: { TotalHits, SearchHits },\r\n  } = props;\r\n\r\n  if (!SearchHits || SearchHits.length === 0) return null;\r\n\r\n  return (\r\n    <ToggleContainer {...props}>\r\n      {({ open, toggle }) => (\r\n        <div className=\"search-link-list\">\r\n          <button\r\n            className=\"search-link-list__btn\"\r\n            type=\"button\"\r\n            onClick={toggle}\r\n            aria-expanded={props.isOpen}\r\n            aria-controls={`search-link-list-${props.BlockId}`}\r\n          >\r\n            <i\r\n              className={classNames({\r\n                'chevron--search-link': true,\r\n                'chevron--search-link--is-open': open,\r\n              })}\r\n            />\r\n            <span className=\"search-link-list__heading\">{`${Heading} (${TotalHits} st)`}</span>\r\n          </button>\r\n\r\n          <div\r\n            id={`search-link-list-${props.BlockId}`}\r\n            aria-hidden={!open}\r\n            className={classNames({\r\n              'search-link-list__content': true,\r\n              'search-link-list__content--is-expanded': open,\r\n            })}\r\n          >\r\n            <ItemList {...props} />\r\n          </div>\r\n        </div>\r\n      )}\r\n    </ToggleContainer>\r\n  );\r\n};\r\n\r\nSearchLinkList.propTypes = {\r\n  BlockId: T.oneOfType([T.string, T.number]),\r\n  Heading: T.string,\r\n  isOpen: T.bool,\r\n  /** See <Item> component */\r\n  SearchHits: T.array,\r\n};\r\n\r\nexport default withSearch(SearchLinkList, 'SearchLinkList');\r\nexport { SearchLinkList };\r\n","import React, { Fragment } from 'react';\r\nimport T from 'prop-types';\r\nimport Item from './item';\r\nimport Pagination from '../Pagination';\r\nimport Spinner from '../Spinner';\r\n\r\nconst propTypes = {\r\n  LinkText: T.string,\r\n  LinkUrl: T.string,\r\n  /** See <Item> component */\r\n  SearchHits: T.array,\r\n};\r\n\r\nfunction focusLastItem() {\r\n  document.getElementById('search-link__last-item').focus();\r\n}\r\n\r\nconst ItemList = (props) => {\r\n  const {\r\n    LinkText,\r\n    LinkUrl,\r\n    SearchResult: { SearchHits, BatchText, NextPage },\r\n  } = props;\r\n\r\n  const renderItem = (item, idx) => (\r\n    <Item key={item.URL} {...item} isLast={idx === SearchHits.length - 1} />\r\n  );\r\n  return (\r\n    <Fragment>\r\n      <ul className=\"link-item-list\">{SearchHits.map(renderItem)}</ul>\r\n      {(NextPage || (LinkUrl && LinkText)) && (\r\n        <div className=\"link-item-list__ctrls\">\r\n          <div>\r\n            {NextPage && (\r\n              <Pagination\r\n                Modifiers={{ 'link-item-list__btn': true }}\r\n                onClick={focusLastItem}\r\n                {...props.SearchResult}\r\n                Spinner={<Spinner Modifiers={{ 'c-spinner--search': true }} />}\r\n              >\r\n                {BatchText}\r\n              </Pagination>\r\n            )}\r\n            {LinkUrl && LinkText && (\r\n              <a className=\"link-item-list__link\" href={LinkUrl}>\r\n                <span>{LinkText}</span>\r\n              </a>\r\n            )}\r\n          </div>\r\n        </div>\r\n      )}\r\n    </Fragment>\r\n  );\r\n};\r\n\r\nItemList.propTypes = propTypes;\r\n\r\nItemList.defaultProps = {};\r\n\r\nexport default ItemList;\r\n","import React from 'react';\r\nimport T from 'prop-types';\r\n\r\nconst propTypes = {\r\n  Name: T.string,\r\n  URL: T.string,\r\n  isLast: T.bool,\r\n};\r\n\r\nconst Item = (item) => {\r\n  const { Name, URL } = item;\r\n  const lastItem = item.isLast ? (\r\n    <span id=\"search-link__last-item\" tabIndex=\"-1\"></span>\r\n  ) : null;\r\n\r\n  return (\r\n    <li className=\"search-link-item\">\r\n      <a className=\"search-link-item__link\" href={URL}>\r\n        <span>{Name}</span>\r\n      </a>\r\n      {lastItem}\r\n    </li>\r\n  );\r\n};\r\n\r\nItem.propTypes = propTypes;\r\n\r\nexport default Item;\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 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 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\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 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 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 classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport TypeaheadLabelTooltip from './labelTooltip';\r\n\r\n/**\r\n * @param {string} id\r\n * @param {string} query\r\n * @param {(e: React.ChangeEvent<HTMLInputElement>) => void} onQueryChange\r\n * @param {() => void} onFocus\r\n * @param {string} [label]\r\n * @param {string} [placeholderText]\r\n * @param {boolean} isDropdownOpen\r\n * @param {Category[]} filteredItems\r\n * @param {(item: item) => void} onItemClick\r\n * @param {(e: React.FocusEvent<HTMLInputElement>) => void} onBlur\r\n * @param {(e: React.KeyboardEvent<HTMLInputElement>) => void} onKeyDown\r\n * @param {string} [highlightedItemValue]\r\n * @param {string} [tooltipText]\r\n * @param {string} [tooltipLinkText]\r\n * @param {boolean}  [rightAlignedTooltip]\r\n * @returns {JSX.Element}\r\n */\r\nconst TypeaheadInput = ({\r\n  id,\r\n  query,\r\n  onQueryChange,\r\n  onFocus,\r\n  label,\r\n  placeholderText,\r\n  isDropdownOpen,\r\n  filteredItems,\r\n  onItemClick,\r\n  tooltipText,\r\n  tooltipLinkText,\r\n  onBlur,\r\n  onKeyDown,\r\n  highlightedItemValue,\r\n  translations,\r\n  inputRef,\r\n  rightAlignedTooltip = true,\r\n}) => {\r\n  return (\r\n    <div className=\"c-typeahead\">\r\n      {label && (\r\n        <div\r\n          className=\"c-typeahead__label\"\r\n          style={{ justifyContent: rightAlignedTooltip ? 'space-between' : '' }}\r\n        >\r\n          <label htmlFor={id}>{label}</label>\r\n          {tooltipText && tooltipLinkText && (\r\n            <TypeaheadLabelTooltip\r\n              id={id}\r\n              tooltipLinkText={tooltipLinkText}\r\n              tooltipText={tooltipText}\r\n              translations={translations}\r\n              isRightAligned={rightAlignedTooltip}\r\n            />\r\n          )}\r\n        </div>\r\n      )}\r\n\r\n      <div className=\"c-typeahead__input-container\">\r\n        <input\r\n          ref={inputRef}\r\n          id={id}\r\n          type=\"text\"\r\n          role=\"combobox\"\r\n          value={query}\r\n          onChange={onQueryChange}\r\n          onKeyDown={onKeyDown}\r\n          onFocus={onFocus}\r\n          onBlur={onBlur}\r\n          onClick={onFocus}\r\n          placeholder={placeholderText}\r\n          autoComplete=\"off\"\r\n          aria-autocomplete=\"list\"\r\n          aria-expanded={isDropdownOpen}\r\n          aria-controls={`${id}-listbox`}\r\n          aria-activedescendant={\r\n            highlightedItemValue\r\n              ? `typeahead-option-${highlightedItemValue}`\r\n              : undefined\r\n          }\r\n        />\r\n        <div\r\n          className=\"c-typeahead__input-toggle\"\r\n          aria-hidden\r\n          onMouseDown={(e) => e.preventDefault()}\r\n          onClick={isDropdownOpen ? onBlur : onFocus}\r\n        />\r\n        <div\r\n          className={classNames({\r\n            'c-typeahead__chevron': true,\r\n            'c-typeahead__chevron--is-expanded': isDropdownOpen,\r\n          })}\r\n        />\r\n\r\n        {isDropdownOpen && filteredItems.length > 0 && (\r\n          <div className=\"c-typeahead__dropdown\">\r\n            <div className=\"c-typeahead__dropdown__content\">\r\n              {filteredItems.map((category) => (\r\n                <div key={category.category} className=\"c-typeahead__category\">\r\n                  {category.category !== '' && (\r\n                    <span className=\"c-typeahead__category__label\">\r\n                      {category.category}\r\n                    </span>\r\n                  )}\r\n                  <ul\r\n                    id={`${id}-listbox`}\r\n                    role=\"listbox\"\r\n                    className=\"c-typeahead__list\"\r\n                  >\r\n                    {category.items.map((item) => (\r\n                      <li\r\n                        id={`typeahead-option-${item.value}`}\r\n                        key={item.value}\r\n                        role=\"option\"\r\n                        aria-selected={item.value === highlightedItemValue}\r\n                        className={classNames('c-typeahead__item', {\r\n                          'c-typeahead__item--highlighted':\r\n                            item.value === highlightedItemValue,\r\n                        })}\r\n                        onMouseDown={(e) => e.preventDefault()}\r\n                        onClick={() => onItemClick(item)}\r\n                      >\r\n                        <span>{item.label}</span>\r\n                      </li>\r\n                    ))}\r\n                  </ul>\r\n                </div>\r\n              ))}\r\n            </div>\r\n          </div>\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nTypeaheadInput.propTypes = {\r\n  id: PropTypes.string.isRequired,\r\n  query: PropTypes.string.isRequired,\r\n  onQueryChange: PropTypes.func.isRequired,\r\n  onFocus: PropTypes.func.isRequired,\r\n  label: PropTypes.string,\r\n  placeholderText: PropTypes.string,\r\n  isDropdownOpen: PropTypes.bool.isRequired,\r\n  filteredItems: PropTypes.arrayOf(\r\n    PropTypes.shape({\r\n      category: PropTypes.string.isRequired,\r\n      items: PropTypes.arrayOf(\r\n        PropTypes.shape({\r\n          value: PropTypes.string.isRequired,\r\n          label: PropTypes.string.isRequired,\r\n        })\r\n      ).isRequired,\r\n    })\r\n  ).isRequired,\r\n  onItemClick: PropTypes.func.isRequired,\r\n  onBlur: PropTypes.func.isRequired,\r\n  onKeyDown: PropTypes.func.isRequired,\r\n  highlightedItemValue: PropTypes.string,\r\n  tooltipTitle: PropTypes.string,\r\n  tooltipText: PropTypes.string,\r\n  tooltipLinkText: PropTypes.string,\r\n  rightAlignedTooltip: PropTypes.bool,\r\n};\r\n\r\nexport default TypeaheadInput;\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\nimport Modal, { CloseModalButton, ModalPanel, OpenModalButton } from '../Modal';\r\nimport useWindowLocationHref from '../Hooks/useWindowLocation';\r\n\r\nconst TypeaheadLabelTooltip = ({\r\n  tooltipLinkText,\r\n  tooltipText,\r\n  translations,\r\n  isRightAligned,\r\n}) => {\r\n  const href = useWindowLocationHref();\r\n  return (\r\n    <Modal>\r\n      <div\r\n        data-event-category={href || 'novalue'}\r\n        data-event-action={tooltipLinkText}\r\n        data-event-name={tooltipText}\r\n        className=\"c-typeahead_tooltip__modal__container\"\r\n      >\r\n        <OpenModalButton\r\n          open=\"c-typeahead__tooltip\"\r\n          id=\"c-typeahead__tooltip\"\r\n          className=\"c-typeahead__tooltip__modal-open\"\r\n          ariaLabel={tooltipLinkText}\r\n        >\r\n          <span\r\n            data-event-include\r\n            className=\"c-typeahead__tooltip__modal-open__icon\"\r\n          />\r\n          <p\r\n            data-event-include\r\n            className=\"c-typeahead__tooltip__modal-open__link\"\r\n          >\r\n            {tooltipLinkText}\r\n          </p>\r\n        </OpenModalButton>\r\n        <ModalPanel whenActive=\"c-typeahead__tooltip\">\r\n          <div\r\n            className={classNames('c-typeahead__tooltip__modal-panel', {\r\n              'c-typeahead__tooltip__modal-panel--right-aligned':\r\n                isRightAligned,\r\n            })}\r\n          >\r\n            <CloseModalButton\r\n              id=\"c-typeahead__tooltip\"\r\n              className=\"c-typeahead__tooltip__modal-close\"\r\n            >\r\n              <span className=\"show-for-sr\">\r\n                {translations?.close || 'stäng'}\r\n              </span>\r\n            </CloseModalButton>\r\n            <div className=\"c-typeahead__tooltip__modal-panel__content\">\r\n              <div\r\n                className=\"c-typeahead__tooltip__modal-panel__description\"\r\n                dangerouslySetInnerHTML={{\r\n                  __html: tooltipText,\r\n                }}\r\n              />\r\n            </div>\r\n          </div>\r\n        </ModalPanel>\r\n      </div>\r\n    </Modal>\r\n  );\r\n};\r\n\r\nexport default TypeaheadLabelTooltip;\r\n","/**\r\n * Normalizes the items to group them by category.\r\n * @param {Array} items - The items to normalize.\r\n * @returns {Array} The normalized items, grouped by category.\r\n */\r\nexport const normalizeTypeaheadItems = (items) => {\r\n  if (!Array.isArray(items) || items.length === 0) {\r\n    return [];\r\n  }\r\n\r\n  const categoriesMap = items.reduce((acc, item) => {\r\n    const categoryLabel = item.category || '';\r\n    if (!acc[categoryLabel]) {\r\n      acc[categoryLabel] = {\r\n        category: categoryLabel,\r\n        items: [],\r\n      };\r\n    }\r\n    acc[categoryLabel].items.push({\r\n      value: item.value,\r\n      label: item.label,\r\n      category: item.category,\r\n    });\r\n    return acc;\r\n  }, {});\r\n\r\n  const sortedCategories = sortCategories(Object.values(categoriesMap));\r\n  const sortedCategoriesWithSortedItems =\r\n    sortItemsInCategories(sortedCategories);\r\n\r\n  return sortedCategoriesWithSortedItems;\r\n};\r\n\r\n/**\r\n * @param {Array} items - The items to filter.\r\n * @param {string} query - The query string / search.\r\n * @param {boolean} shouldSearchCategories - If the search should include the categories or not\r\n * @returns {Array} The filtered items.\r\n */\r\nexport const filterTypeaheadItems = (items, query, shouldSearchCategories) => {\r\n  const lowerCaseQuery = query.toLowerCase();\r\n\r\n  if (items.length === 0) {\r\n    return [];\r\n  }\r\n\r\n  return items.reduce((acc, category) => {\r\n    const categoryLabel = category.category || '';\r\n    const categoryMatches = categoryLabel\r\n      .toLowerCase()\r\n      .includes(lowerCaseQuery);\r\n\r\n    if (shouldSearchCategories && categoryMatches) {\r\n      acc.push(category);\r\n    } else {\r\n      const filteredItems = category.items.filter((item) =>\r\n        item.label.toLowerCase().includes(lowerCaseQuery)\r\n      );\r\n\r\n      if (filteredItems.length > 0) {\r\n        acc.push({\r\n          category: category.category,\r\n          items: filteredItems,\r\n        });\r\n      }\r\n    }\r\n\r\n    return acc;\r\n  }, []);\r\n};\r\n\r\nconst sortCategories = (categories) => {\r\n  return categories.sort((a, b) => {\r\n    const isCategoryAEmpty = a.category === '' ? 1 : 0;\r\n    const isCategoryBEmpty = b.category === '' ? 1 : 0;\r\n\r\n    if (isCategoryAEmpty !== isCategoryBEmpty) {\r\n      return isCategoryAEmpty - isCategoryBEmpty;\r\n    }\r\n\r\n    return a.category.localeCompare(b.category);\r\n  });\r\n};\r\n\r\nconst sortItemsInCategories = (categories) => {\r\n  return categories.map((category) => ({\r\n    ...category,\r\n    items: [...category.items].sort((itemA, itemB) =>\r\n      itemA.label.localeCompare(itemB.label)\r\n    ),\r\n  }));\r\n};\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"],"names":["props","_jsx","Linklist","_objectSpread","Modifiers","ListContainer","_jsxs","Fragment","children","RegionAddition","ContentAbove","Render","blocks","propertyName","currentPageProps","Teaser","Heading","ContentBelow","SearchLinkList","withRouter","_props$list$","activeLetter","setActiveLetter","useState","location","hash","substring","list","Key","toLowerCase","handleLetterChange","length","className","dataPrintSidebarTitle","Navigation","alphabet","compare","map","letter","key","List","Items","_props$CurrentPagePro","_props$CurrentPagePro2","_props$CurrentPagePro3","ao","ActivateDigitGrouping","unshift","CurrentPageProps","Content","Translations","aolistblock","AOList","item","listitem","find","x","id","UniqueBlockId","IsInRange","useEffect","isInRange","concat","href","Url","Name","Track","_ref","_objectWithoutProperties","_excluded","Anchors","classes","classNames","isWithinTrac","isTrackBottom","index","matched","attributes","onClick","document","getElementById","scrollIt","Text","LinkText","LinkUrl","useBackgroundImage","useIconLink","FirstColumn","contentDirection","columns","SecondColumn","ArticleFooterContent","ArticleFooter","RoleGroups","_props$Translations","Label","FooterHasCollapsibleRoleGroups","CollapsiblePanel","Id","DefaultCollapsed","showworkgroup","RoleItem","Persons","person","Person","ArticleFooterReviewDate","LastReview","ArticleFooterPublishDate","_ref2","PublishDate","ArticleFooterApprovedDate","_ref3","ApprovedDate","ArticleFooterApprovedBy","_ref4","ApprovedBy","isRegional","i","name","url","RegionalName","cssClasses","articlefooter","Region","RegionalArticleFooter","revisiondate","publishdate","approved","approvedDate","approvedby","approvedBy","Organizations","InformationText","dangerouslySetInnerHTML","__html","ArticleTags","tags","ArticleVideoWrapper","TopMediaVideo","isAboveTitle","Video","_props$Content","_props$Content2","_props$Content3","_props$Content4","componentClasses","CurrentRegionName","SubjectHeading","HideSubjectHeading","showSubject","isFaqPage","question","SubjectAboveHeading","SubjectHeadingLink","VideoAboveTitle","HeadingTranslation","dir","lang","useSweLang","Language","RegionLabel","PageTypeName","Preamble","regionlabel","SplitColumns","split","columnClasses","numOfItems","blockName","pageName","getColumnClasses","teaserTheme","Theme","headerClasses","infoType","InformationType","teaserClasses","rowSplit","row","splitColumns","Media","teaserContainsImage","ImageUrl","Title","ShowVideoPlayIcon","src","alt","title","tabIndex","LazyLoadImage","isBackgroundImage","DefaultPreset","Alt","ImageDescription","Sizes","sizes","setPreset","Vignette","Date","FormatDateTime","date","use1177ProfessionDesign","WrappedComponent","offset","arguments","undefined","handles","ticking","throttleScroll","requestAnimationFrame","handle","window","addEventListener","viewport","useRef","setIsInrange","isComponentWithinRange","current","rect","getBoundingClientRect","top","bottom","push","ref","link","linkText","buttonClass","altLinkText","useWindowLocationHref","role","_props$regionalName","content","createRef","ContentString","table","querySelectorAll","parent","parentNode","indexOf","wrapper","createElement","tableWrapper","wrapperInner","innerTableWrapper","tableClasses","insertBefore","appendChild","wrapTables","elements","wideTable","offsetWidth","scrollWidth","fitInWidth","hasInlineImage","ImageProperties","regionalName","AnchorSectionId","isMemberOfChapterContainer","noToggle","isH3","HideAnchorNavigation","HideAnchorLink","View","ToggleChapter","ImageBlockLazyLoad","withLazyLoad","withSrcSets","withSensitiveImage","ImageBlock","_props$RegionAddition","_props$RegionAddition2","SemanticHeader","StoryPageHeading","Blocks","Image","isMemberOfChapter","ResponsiveImages","renderTimeListItem","baseClassName","days","hours","TimeList","heading","items","modifiers","renderEmptyFallback","classnames","defaultProps","object","string","arrayOf","shape","isRequired","itemId","setItemId","currentActiveId","currentActiveMenuItem","equalSectionIdsOnPageLoad","COOKIE_NAME","isLoading","setIsLoading","cookieContext","useContext","CookieContext","cookieData","cookies","hideSensitiveImage","Cookies","IsSensitiveInContext","IsEditMode","handleShowSensitiveImages","isAllowed","setTimeout","reload","showSensitiveImageIsLoading","React","constructor","state","isVisible","handleVisible","e","preventDefault","this","handleToolsVisibility","offsetHeight","focus","setState","componentDidMount","addToolComponent","render","DescriptionListItem","number","isH4","Description","_props$List","count","ShowNumber","_createElement","FacetItem","_query$q","query","queryString","p","site","isSelected","toString","q","filter","makeItemArray","array","type","defaultChecked","value","onChange","FacetsRadioButton","names","forEach","history","search","qs","indices","currentTarget","checked","categoryname","handleChange","showCount","FacetsItems","Facets","pathname","facetCounts","_facetCounts$item$Id","Names","reduce","acc","cur","some","formatDate","year","month","day","options","toLocaleDateString","toUpperCase","dateTime","toISOString","Checkbox","propTypes","node","bool","htmlFor","label","required","Radio","SelectedType","SelectedIcon","SelectedBackgroundColor","Buttons","highlightblock","LinkButton","ButtonLink","ButtonText","ButtonStyling","maxIndex","highlightedIndex","setHighlightedIndex","isOpen","onItemSelect","onClose","getItemByIndex","selectionKeys","resetIndex","handleKeyDown","prevIndex","includes","eventCategory","eventAction","eventName","eventValue","debounceTime","timeoutRef","eventValueUnchanged","clearTimeout","_window","_window$_paq","_paq","caption","isStandingVideo","hideTitle","hideCaption","isGallery","galleryLink","_Fragment","allow","allowFullScreen","sandbox","Link","ImageText","ShowCaption","ShowPhotoCred","UseZoom","btnClasses","Error","imageblock","sensetiveheading","SensitiveImageLoadingIcon","showsensetiveimages","ImageZoom","Photographer","Illustrator","photographer","illustrator","zoomImage","zoomTrigger","isZoomed","setIsZoomed","removeZoomClassName","getElementsByTagName","classList","remove","handleClick","context","allTabbableElements","firstTabbableElement","lastTabbableElement","event","keyCode","which","returnValue","target","shiftKey","keepFocus","add","zoomClass","stopPropagation","srLabel","selectedItem","setIsOpen","dropdownRef","useArrowNavigation","toggleDropdown","_dropdownRef$current","defaultOption","option","onKeyDown","onBlur","ImageBlockWithSrcSet","introClasses","Section","ArticleHeader","KeywordMessage","withToolbarButtonList","ButtonSVG","LanguagePanel","toggleButtonClasses","languagePanelClasses","languagePanelInner","languages","linklistblock","hasSectionWrapper","Container","SectionWrapper","Menu","firstLevel","menuItem","Item","Ancestor","Children","IsCurrentPage","ActivePath","secondLevel","child","text","links","showAuthor","translations","style","marginBottom","Href","activeIndex","pageProps","counter","numberOfItems","ImageHeading","ImageLinks","isStanding","slideWidth","isArticlePage","isMobile","alwaysShowCurrentImage","ImageBlockWithSrcSets","forciblyShowCurrentCount","width","visibility","MediaGalleryContent","totalSlides","currentSlide","visibleRange","hasGroupedDots","calculateDotSize","distance","Math","abs","max","Array","from","_","height","VideoText","Dir","ShowPagination","totalItems","hasMedia","media","error","containsMedia","isMediumViewport","isThreeSlidesLayout","isFullWidthLayout","galleryIsScrollable","alwaysShowCurrentImageIndicator","scrollContainerRef","setActiveIndex","visiblePaginationRange","setVisiblePaginationRange","updatePaginationRange","newSlide","newStart","floor","maxVisiblePaginationDots","newEnd","min","scrollContainer","handleScroll","scrollLeft","containerWidth","clientWidth","itemWidth","newIndex","maxScrollLeft","round","removeEventListener","scrollToIndex","scrollSnapType","scrollTo","left","behavior","nextSlide","prevSlide","useMatomoTrackEventOnChange","MediaGalleryPagination","BlockTypeName","MediaGalleryImage","IsStandingImage","ShowAuthor","MediaGalleryVideo","next","previous","InternalLinkName","FirstName","LastName","Workplace","City","PI","ReadingAid","EnableReadingAid","onKeyPress","listen","ReadingAidPanel","withSearch","_props$searchTabs","_props$SearchResult","ignoreQueryPrefix","SearchResult","searchblock","searchToolsClasses","alertType","activeFilterFacet","_props$Facets","_props$Facets$Items","showFilterResultText","facet","method","autoComplete","onSubmit","t","useExternalSearch","Placeholder","SearchField","searchUrl","placeholder","defaultValue","hasQuickSearch","hasNoAutocomplete","SearchApiAutoCompleteUrl","showSearchHitsHeadingSuffix","searchbutton","KeywordHints","IsSimpleFallbackSearch","Alert","alert","ResultDisclaimer","searchTabs","ExternalSearchContent","TabMenu","tabs","tab","_tab$SearchResult","_tab$SearchResult2","_tab$SearchResult3","SearchApiIndex","TabHeader","TotalHits","isActive","searchApiIndex","screenReaderText","ResultText","getExternalSiteAdress","handleTabChange","showResponsiveDropdown","selectsearchsource","hasFilterBar","showFilterBarWithFacets","SearchHeading","within","isVardpersonal1177","vardpersonal1177","siteAdress","HideCategoryFacets","HideThemeFacets","category","theme","filterBarDefaultOpen","filtersearchhitsheading","EmptySearchResultText","DisableClickTracking","revisedAsPublished","isExternalSearchHit","isExternalSearch","regionalizeSearchHits","availableLanguagesHeader","AvailableLanguagesHeader","Pagination","Spinner","BatchText","MatomoTrackSearch","Search","SearchCategory","SearchHits","ExternalSearchHits","hideSearchHeading","SuggestionText","ContentAfter","Query","decodeURIComponent","componentClass","resultQueryText","filterResultText","withfilter","resultSiteText","on","EntryFormSearchField","handleBlur","initialValue","setValue","action","SearchUrl","DefaultFacet","SearchPlaceholder","ToggleContainer","open","toggle","BlockId","ItemList","focusLastItem","NextPage","renderItem","idx","isLast","URL","lastItem","isMedium","CustomSelect","selectedOption","TypeExists","default","matchMedia","matches","handleToggle","Tabs","currentTab","tabQ","tabsClasses","TeaserItemLinkList","contentClassNames","TitleTranslation","Lang","TeaserItemLink","horizontalDirection","teaserHeadingLink","ListChildren","masonryLayout","IsListOfChildren","listStyle","toggleBrickView","WrapperModifiers","Design","ArticleList","FeatureToggleSettings","Use1177ProfessionDesign","cypressValues","SectionModifiers","setToggleBrickView","ShowListView","showListViewToggler","UseListToggler","sectionHeader","currentarticles","ListViewToggler","showcontentas","showasbricks","showaslist","themeClass","element","elementTop","scrollY","isChapterContainer","onToggle","lodashUtil","require","_flattenedListItems$h","onSelect","openOnFocus","placeholderText","tooltipText","tooltipLinkText","inputRef","rightAlignedTooltip","shouldSearchCategories","setQuery","allItems","setAllItems","filteredItems","setFilteredItems","isDropdownOpen","setIsDropdownOpen","isTooltipVisible","setIsTooltipVisible","localInputRef","uniqueId","flattenedListItems","flatMap","highlightedItemValue","normalizedItems","normalizeTypeaheadItems","TypeaheadInput","onQueryChange","newFilteredItems","filterTypeaheadItems","onFocus","handleInputFocus","onItemClick","handleTooltipClick","justifyContent","TypeaheadLabelTooltip","isRightAligned","onMouseDown","Modal","OpenModalButton","ariaLabel","ModalPanel","whenActive","CloseModalButton","close","isArray","categoriesMap","categoryLabel","sortedCategories","sortCategories","Object","values","sortItemsInCategories","lowerCaseQuery","categoryMatches","categories","sort","a","b","isCategoryAEmpty","isCategoryBEmpty","localeCompare","itemA","itemB","_CurrentPageProps$Con","_CurrentPageProps$Con2","VideoTitle","VideoId","IsMediaFlowPro","IsDreamBroker","IsQbrick","IsStandingVideo","videoUrl","videoblock","Iframe","videourl","test","separator","addTimeUpdateParam"],"sourceRoot":""}