{"version":3,"file":"ResearchArticleListContent.chunk.6ad14524d00c2641174d.js","mappings":"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","sources":["webpack://Kristiania.Web/./Features/Blocks/PosterListBlock/PosterListBlock.module.css?a178","webpack://Kristiania.Web/./Features/Blocks/PosterListBlock/Row/RowType.csharp.ts","webpack://Kristiania.Web/./Features/Blocks/PosterListBlock/PosterListRow/PosterListRow.module.css?1dee","webpack://Kristiania.Web/./Features/Blocks/PosterListBlock/PosterListRow/PosterListRowPictureProfilesUtils.ts","webpack://Kristiania.Web/./Features/Blocks/PosterListBlock/PosterListRow/PosterListRow.tsx","webpack://Kristiania.Web/./Features/Blocks/PosterListBlock/PosterListBlock.tsx","webpack://Kristiania.Web/./Features/Messaging/MessageBroker.ts","webpack://Kristiania.Web/./Features/Messaging/types.ts","webpack://Kristiania.Web/./Features/Messaging/useMessageHandler.ts","webpack://Kristiania.Web/./Features/Pages/ResearchArticleListPage/ResearchArticleListContent/ResearchArticleListContent.tsx","webpack://Kristiania.Web/./Features/Pages/ResearchArticleListPage/ResearchArticleListContent/ResearchArticleListContent.module.css?28be","webpack://Kristiania.Web/./Features/Partials/ActivityIndicator/ActivityIndicator.module.css?6d48","webpack://Kristiania.Web/./Features/Partials/ActivityIndicator/ActivityIndicator.tsx","webpack://Kristiania.Web/./Features/Partials/Button/Button.tsx","webpack://Kristiania.Web/./Features/Partials/Controls/HtmlDiv.tsx","webpack://Kristiania.Web/./Features/Partials/Controls/HtmlHeading.tsx","webpack://Kristiania.Web/./Features/Partials/Dropdown/Dropdown.tsx","webpack://Kristiania.Web/./Features/Partials/Dropdown/Dropdown.module.css?b752","webpack://Kristiania.Web/./Features/Partials/FetchData/useFetchData.ts","webpack://Kristiania.Web/./Features/Partials/PagedFetchData/InfiniteScroll.tsx","webpack://Kristiania.Web/./Features/Partials/PagedFetchData/PagedFetchData.module.css?ff5b","webpack://Kristiania.Web/./Features/Partials/PagedFetchData/PaginationStatus/PaginationStatus.module.css?ec87","webpack://Kristiania.Web/./Features/Partials/PagedFetchData/PaginationStatus/PaginationStatus.tsx","webpack://Kristiania.Web/./Features/Partials/PagedFetchData/PagedFetchData.tsx","webpack://Kristiania.Web/./Features/Partials/Picture/Utils/constructImageSharpUrl.tsx","webpack://Kristiania.Web/./Features/Partials/Picture/Picture.tsx","webpack://Kristiania.Web/./Features/Partials/Picture/Picture.module.css?5ded","webpack://Kristiania.Web/./Features/Partials/Picture/PictureProfiles.ts","webpack://Kristiania.Web/./Features/Partials/Picture/Placeholder/PicturePlaceholder.module.css?0bc4","webpack://Kristiania.Web/./Features/Partials/Picture/Placeholder/PicturePlaceholder.tsx","webpack://Kristiania.Web/./Features/Partials/RequestHelper/RequestHelper.tsx","webpack://Kristiania.Web/./Features/Partials/SearchBase/Events/QueryParametersChanged.ts","webpack://Kristiania.Web/./Features/Partials/SearchBase/QueryParameterUtils.ts","webpack://Kristiania.Web/./Features/Partials/Utils/usePrevious.ts","webpack://Kristiania.Web/./Features/Partials/Utils/utils.ts","webpack://Kristiania.Web/./Features/Txt/TxtBase.tsx","webpack://Kristiania.Web/./Features/Utils/Hooks/useDebounce.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useVariableWithStableRef.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"PosterListBlock\":\"cHJuzEmXmacjVj5xP6iZ\",\"Anchor\":\"DvegeScMnacdRemVyrm0\",\"Content\":\"DXb3Ua5pMEXHHEWX1SA7\",\"Title\":\"aiIhzQ_HVaul7y_AkKJm\",\"Inner\":\"XRp6wsxkeTvkZeQyXQxl\",\"LoadedData\":\"Il_qdxf2TN2nYj4Jn0mz\",\"SingleData\":\"funCNbNCsIvPvYzYUBdu\",\"Picture\":\"I7h13pIcKQZINGZ3XBDa\",\"LoadedDataText\":\"p3zeFwsfu_vhs_oRw74x\",\"AllData\":\"oe_HnBh62mTjC5R1Pb_v\",\"Variant--grey\":\"PNRtMBwjOwdCN6v3rwMl\",\"Variant--white\":\"mt6a75ovnlMLPE9Loln5\"};","// This code was generated by a Reinforced.Typings tool.\n// Changes to this file may cause incorrect behavior and will be lost if\n// the code is regenerated.\n\nexport enum RowType {\n\tOneOnOne = \"oneOnOne\",\n\tTwoOnTwo = \"twoOnTwo\",\n\tOneOnFour = \"oneOnFour\",\n\tOneOnTwo = \"oneOnTwo\",\n\tOneLeftAndTwoOnTwoRight = \"oneLeftAndTwoOnTwoRight\",\n\tOneLeftAndFourOnOneRight = \"oneLeftAndFourOnOneRight\"\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"PosterListRow\":\"oRspAuvbMi0pXLrX9u7q\",\"Variant--oneOnTwo\":\"wDGeMhMItTBawDblRH61\",\"Variant--twoOnTwo\":\"ZyZAmPtprLQraysi98Hm\",\"Poster\":\"LLzQvFszIj0jwBYa09Tw\",\"PosterImageOverlay\":\"SeJuexySANjxyiOM29ba\",\"PosterBody\":\"WZDjz9zYQgsPRbumUD_v\",\"PosterDescription\":\"kF4KqV8ac8a9rdoWGCg8\",\"PosterCategory\":\"AwtpKg9okCi1XkA7NreX\",\"PosterTitle\":\"qELDWCSeSJ1SDxUrtw0c\",\"Variant--oneOnOne\":\"jO7x50AdB3XDL9YF9rFN\",\"PosterImage\":\"jUpUc0uR97EfldwPz00H\",\"Variant--oneOnFour\":\"bZgG4t1Ka6aKFFpX3BbZ\",\"Variant--oneLeftAndTwoOnTwoRight\":\"uVxmZbynFdMeBQDxj2Og\",\"Variant--reversed\":\"Mfa3pPYeyyAjxuaiQQd7\",\"Variant--oneLeftAndFourOnOneRight\":\"NrDTZiVCkHpaDGIcxTZg\"};","import { RowType } from '../Row/RowType.csharp';\nimport { PictureProfiles } from '~/Partials/Picture/PictureProfiles';\n\nexport const getDefaultPictureProfile = (rowType: RowType) => {\n switch (rowType) {\n case RowType.OneOnOne:\n return PictureProfiles.contentCard;\n case RowType.OneLeftAndTwoOnTwoRight:\n return PictureProfiles.sixColumnsElement;\n default:\n return PictureProfiles.threeColumnsElement;\n }\n};\n\nexport const getFirstPosterPictureProfile = (rowType: RowType) => {\n switch (rowType) {\n case RowType.OneLeftAndFourOnOneRight:\n return PictureProfiles.horizontal;\n case RowType.OneLeftAndTwoOnTwoRight:\n return PictureProfiles.mainPosterVertical;\n default:\n return getDefaultPictureProfile(rowType);\n }\n};\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { PictureProfile } from '../../../PictureProfile.csharp';\nimport type { PosterViewModel } from '../Poster/PosterViewModel.csharp';\nimport { RowType } from '../Row/RowType.csharp';\nimport type { RowViewModel } from '~/Blocks/PosterListBlock/Row/RowViewModel.csharp';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { HtmlHeading } from '~/Partials/Controls/HtmlHeading';\nimport { Picture } from '~/Partials/Picture/Picture';\nimport { PicturePlaceholder } from '~/Partials/Picture/Placeholder/PicturePlaceholder';\nimport type { StrictOmit } from '~/Partials/Utils/typeUtils';\nimport styles from './PosterListRow.module.css';\nimport { getDefaultPictureProfile, getFirstPosterPictureProfile } from './PosterListRowPictureProfilesUtils';\n\nexport interface RowWithData extends StrictOmit {\n posters: PosterViewModel[];\n}\n\ninterface PosterListRowProps extends RowWithData {\n reverse?: boolean;\n}\n\nexport const PosterListRow: React.FC> = props => {\n const { type, posters, reverse } = props;\n\n const renderPoster = (poster: PosterViewModel, profile?: PictureProfile) => (\n
  • \n
    \n {poster.image ? (\n \n ) : (\n \n )}\n
    \n
    \n {poster.category && {poster.category}}\n {poster.title && }\n {poster.text && }\n
    \n \n {poster.title && }\n \n
  • \n );\n\n return (\n \n {type === RowType.OneLeftAndTwoOnTwoRight || type === RowType.OneLeftAndFourOnOneRight\n ? posters.map((poster, index) =>\n renderPoster(poster, index === 0 ? getFirstPosterPictureProfile(type) : undefined)\n )\n : posters.map(poster => renderPoster(poster))}\n \n );\n};\n","import classNames from 'classnames';\nimport chunk from 'lodash/chunk';\nimport sumBy from 'lodash/sumBy';\nimport * as React from 'react';\nimport type { SearchResultResponse } from '../../Search/SearchResultResponse.csharp';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { HtmlHeading } from '~/Partials/Controls/HtmlHeading';\nimport { PagedFetchData } from '~/Partials/PagedFetchData/PagedFetchData';\nimport { Picture } from '~/Partials/Picture/Picture';\nimport { PicturePlaceholder } from '~/Partials/Picture/Placeholder/PicturePlaceholder';\nimport type { PosterViewModel } from './Poster/PosterViewModel.csharp';\nimport styles from './PosterListBlock.module.css';\nimport type { PosterListBlockViewModel } from './PosterListBlockViewModel.csharp';\nimport { PosterListRow } from './PosterListRow/PosterListRow';\n\ntype PosterListBlockProps = PosterListBlockViewModel & { className?: string };\n\nexport const PosterListBlock: React.FC> = props => {\n const {\n posters,\n displayRows,\n backgroundVariant,\n title,\n sectionBlockId,\n loadMorePostersUrl,\n loadOnScroll,\n translations,\n postersCategory,\n loadedRowLayout,\n loadedPostersPictureProfile,\n className,\n } = props;\n\n const postersCopy = [...posters];\n\n const rowsWithData = displayRows.map(row => ({ ...row, posters: postersCopy.splice(0, row.itemsCount) }));\n const skip = sumBy(rowsWithData, row => row.itemsCount);\n\n const getSearchParams = () => {\n const params = [{ name: 'sectionBlockId', value: sectionBlockId }];\n\n postersCategory && params.push({ name: 'categoryName', value: postersCategory });\n\n return params;\n };\n\n return (\n <>\n {!!rowsWithData.length && rowsWithData.every(r => !!r.posters && !!r.posters.length) && (\n \n
    \n
    \n

    {title}

    \n
    \n {rowsWithData.map((row, index) => (\n \n ))}\n
    \n {skip > 0 && (\n
    \n , PosterViewModel>\n baseUrl={loadMorePostersUrl}\n debounceTime={200}\n take={loadedRowLayout ? loadedRowLayout.itemsCount : 8}\n initSkip={skip}\n autoRun={false}\n loadOnScroll={loadOnScroll}\n translations={translations}\n searchParams={getSearchParams()}\n allDataRender={\n !!loadedRowLayout &&\n (({ data }) => {\n const dividedData = chunk(data, loadedRowLayout.itemsCount);\n\n return (\n
    \n {dividedData.map((row, index) => (\n \n ))}\n
    \n );\n })\n }\n listClassName={styles.SingleData}\n >\n {!loadedRowLayout\n ? ({ data }) => (\n <>\n {data.image ? (\n \n ) : (\n \n )}\n
    \n {data.category}\n {data.title && }\n
    \n \n {data.title && (\n \n )}\n \n \n )\n : undefined}\n \n
    \n )}\n
    \n \n )}\n \n );\n};\n","import type { Message, MessageHandler } from '~/Features/Messaging/types';\n\nexport class MessageBroker {\n private static MessageHandlersByMessageId: { [id: string]: MessageHandler[] } = {};\n\n public static subscribe(handler: MessageHandler, messageId: string): void {\n const handlers = this.MessageHandlersByMessageId[messageId];\n\n if (handlers) {\n handlers.push(handler);\n } else {\n this.MessageHandlersByMessageId[messageId] = [handler];\n }\n }\n\n public static unsubscribe(handler: MessageHandler, messageId: string): void {\n const handlers = this.MessageHandlersByMessageId[messageId];\n\n if (handlers) {\n this.MessageHandlersByMessageId[messageId] = handlers.filter(h => h !== handler);\n }\n }\n\n public static publish(message: Message): void {\n const handlers = this.GetMessageHandlers(message.id);\n\n handlers.forEach(handler => handler.handle(message));\n }\n\n public static schedulePublish(message: Message, delay: number): void {\n setTimeout(() => MessageBroker.publish(message), delay);\n }\n\n private static GetMessageHandlers(messageId: string): MessageHandler[] {\n return this.MessageHandlersByMessageId[messageId] || [];\n }\n}\n","export abstract class Message {\n protected constructor(public readonly id: string) {}\n}\n\nexport abstract class Event extends Message {}\n\nexport interface MessageHandler {\n handle(message: Message): void;\n}\n\nexport interface EventHandler {\n handle: ((event: TEvent) => void) | (() => void);\n}\n","import { useLayoutEffect } from 'react';\nimport { MessageBroker } from '~/Features/Messaging/MessageBroker';\nimport type { Message, MessageHandler } from '~/Features/Messaging/types';\nimport { useVariableWithStableRef } from '~/Utils/Hooks/useVariableWithStableRef';\n\nexport const useMessageHandler = (messageId: string, onMessage: MessageHandler['handle']) => {\n const onMessageRef = useVariableWithStableRef(onMessage);\n\n // We use LayoutEffect here because it is important that the handler is subscribed before the first message is published.\n // It could happen if the children of the component that uses this hook publish a message in their useEffect.\n useLayoutEffect(() => {\n const handler = {\n handle: (event: Message) => onMessageRef.current(event),\n };\n\n MessageBroker.subscribe(handler, messageId);\n\n return () => MessageBroker.unsubscribe(handler, messageId);\n }, [onMessageRef, messageId]);\n};\n","import classNames from 'classnames';\nimport uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport ExecutionContext from '../../../ExecutionContext';\nimport type { SearchResultResponse } from '../../../Search/SearchResultResponse.csharp';\nimport type { CategoryItem } from '../Properties/CategoryItem.csharp';\nimport type { PosterViewModel } from '~/Blocks/PosterListBlock/Poster/PosterViewModel.csharp';\nimport { PosterListBlock } from '~/Blocks/PosterListBlock/PosterListBlock';\nimport { ActivityIndicator } from '~/Partials/ActivityIndicator/ActivityIndicator';\nimport { Button } from '~/Partials/Button/Button';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { Dropdown } from '~/Partials/Dropdown/Dropdown';\nimport { useFetchData } from '~/Partials/FetchData/useFetchData';\nimport {\n buildAbsoluteUrlWithQueryParameters,\n changeQueryParametersInActiveUrl,\n} from '~/Partials/SearchBase/QueryParameterUtils';\nimport styles from './ResearchArticleListContent.module.css';\nimport type { ResearchArticleListContentViewModel } from './ResearchArticleListContentViewModel.csharp';\n\nexport interface PosterSearchParams {\n categoryName: string;\n skip?: number;\n take?: number;\n}\n\nexport const ResearchArticleListContent: React.FC<\n React.PropsWithChildren\n> = props => {\n const categoryParam = 'categoryName';\n const { researchCategories, translations, posterListBlock, searchUrl, postersCount, emptyCategoryMessage } = props;\n const defaultCategory = { name: '', description: translations.showAll };\n const categoriesWithDefault = [defaultCategory].concat(researchCategories);\n\n const getDefaultCategory = () => {\n if (!ExecutionContext.IsServerSide()) {\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString);\n const paramsCategoryName = urlParams.get(categoryParam);\n const paramsCategory = categoriesWithDefault.find(category => paramsCategoryName === category.name);\n\n if (paramsCategory) {\n return paramsCategory;\n }\n }\n\n return defaultCategory;\n };\n\n const getQueryParams = (category: CategoryItem) =>\n category.name ? [{ name: categoryParam, value: category.name }] : [];\n\n const [activeCategory, setActiveCategory] = React.useState(getDefaultCategory());\n const isDefaultCategory = activeCategory.name === defaultCategory.name;\n\n const { loading, data } = useFetchData, PosterSearchParams>({\n url: buildAbsoluteUrlWithQueryParameters(searchUrl, [\n ...getQueryParams(activeCategory),\n { name: 'take', value: postersCount.toString() },\n ]),\n });\n\n const handleCategoryClick = (category: CategoryItem) => {\n if (category.name !== activeCategory.name) {\n setActiveCategory(category);\n }\n\n if (!ExecutionContext.IsServerSide()) {\n changeQueryParametersInActiveUrl(getQueryParams(category));\n }\n };\n\n const renderCategoryListElement = (category: CategoryItem) => (\n
  • \n handleCategoryClick(category)}\n className={classNames(\n styles.CategoryButton,\n activeCategory.name === category.name && styles['CategoryButton--activeCategory']\n )}\n >\n {category.description}\n \n
  • \n );\n\n return (\n
    \n
    \n
      \n {categoriesWithDefault.map(category => renderCategoryListElement(category))}\n
    \n
    \n ({\n text: category.description,\n value: JSON.stringify(category),\n }))}\n onValueChanged={value => {\n const newCategory = JSON.parse(value);\n handleCategoryClick(newCategory);\n }}\n />\n
    \n
    \n
    \n
    \n
    \n {data && data.items.length > 0 && (\n \n )}\n {data && data.items.length === 0 && !!emptyCategoryMessage && !loading && (\n
    \n \n
    \n )}\n \n
    \n
    \n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Heading\":\"CStl082nT9_e0A3ahB_Z\",\"CategoryList\":\"gFBj8gJwwKjkdHIqjIqO\",\"CategoryButton\":\"uSKVNdZ5wyD01ROl3YiL\",\"CategoryButton--activeCategory\":\"UwisUjjQ3dt3TeGOIzE3\",\"CategorySelect\":\"PSR61XqZdbYQ3eeyj2b1\",\"SearchForm\":\"DJDngHkWEeLYZN1bDiFg\",\"Content\":\"MXrIb6_5QhVb5bStsKWd\",\"PosterListBlock\":\"rZzgiC7VW41toFY9k9cZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"Inner\":\"EwPhzUN1NfTBa1XOsTE6\",\"ActivityIndicatorRotate\":\"ZNgVI5R_Ahgk3DnOyUhN\",\"Inner--cover\":\"TVMntCe8qkWIdDcQxQb6\",\"Outer\":\"FxrXNHIEItswETCvk14E\",\"Children\":\"rK8S3lKkJdvsHyzk1dZ1\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport styles from './ActivityIndicator.module.css';\n\nexport interface ActivityIndicatorProps {\n cover?: boolean;\n active?: boolean;\n modal?: boolean;\n children?: string | React.ReactNode;\n}\n\nconst ModalWrapper: React.FC> = props => {\n const { visible, children } = props;\n\n return (\n \n {children}\n \n );\n};\n\nexport const ActivityIndicator: React.FC> = React.memo(props => {\n const { modal = true, cover, active = true, children } = props;\n\n const Wrapper = modal ? ModalWrapper : React.Fragment;\n const wrapperProps = modal ? { visible: active } : {}; // react.Fragment cannot have any props\n\n return (\n \n \n {children && (\n {children}\n )}\n \n );\n});\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport type { StrictOmit } from '../Utils/typeUtils';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { Theme } from '~/Utils/Theme';\nimport styles from './Button.module.css';\nimport type { ButtonSize } from './ButtonSize.csharp';\nimport type { ButtonTier } from './ButtonTier.csharp';\nimport { ButtonType } from './ButtonType.csharp';\n\ntype HtmlButtonType = 'submit' | 'reset' | 'button';\n\nexport interface DefaultButtonProps {\n children: ReactNode;\n className?: string;\n htmltype?: HtmlButtonType;\n /* STYLES PROPS */\n size?: ButtonSize;\n tier?: ButtonTier;\n type?: ButtonType;\n theme?: Theme;\n}\n\ntype NativeButtonAttributes = Pick<\n React.ButtonHTMLAttributes,\n | 'aria-selected'\n | 'aria-controls'\n | 'aria-expanded'\n | 'role'\n | 'aria-haspopup'\n | 'aria-describedby'\n | 'aria-label'\n | 'tabIndex'\n | 'title'\n | 'id'\n | 'disabled'\n | 'draggable'\n | 'onClick'\n | 'onFocus'\n | 'onMouseDown'\n>;\n\nexport type ButtonProps = DefaultButtonProps & NativeButtonAttributes;\n\nexport const Button = React.forwardRef((props, ref) => {\n const { children, theme, ...passThroughProps } = props;\n const { type } = passThroughProps;\n\n if (type && type !== ButtonType.Clear) {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n});\n\ntype RawButtonProps = StrictOmit;\n\nconst RawButton = React.forwardRef((props, ref) => {\n const { className, children, size, tier, type, htmltype = 'button', ...otherProps } = props;\n\n const getButtonClassName = () =>\n classNames(\n type && styles[`Variant--${type}`],\n tier && styles[`Variant--${tier}`],\n size && styles[`Variant--${size}`],\n className\n );\n\n return (\n \n );\n});\n\nconst ThemedButton = React.forwardRef((props, ref) => {\n const contextualTheme = useTheme();\n const { children, className, theme = contextualTheme, ...additionalProps } = props;\n\n const { withBoxShadow, withRoundedCorners } = theme;\n\n return (\n \n {children}\n \n );\n});\n","import * as React from 'react';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\n\ntype NativeDivAttributes = Pick, 'id'>;\n\nexport interface HtmlDivProps extends NativeDivAttributes {\n html: HtmlString;\n className?: string;\n}\n\nexport const HtmlDiv: React.FC = props => {\n const { html, className, ...restDivProps } = props;\n\n return
    ;\n};\n","import * as React from 'react';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\n\nexport interface HtmlHeadingProps {\n html: HtmlString;\n type: keyof Pick;\n id?: string;\n className?: string;\n}\n\nexport const HtmlHeading: React.FC = props => {\n const { type, html, id, className } = props;\n\n return React.createElement(type, { className, id, dangerouslySetInnerHTML: { __html: html.value } });\n};\n","import classNames from 'classnames';\nimport uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport styles from './Dropdown.module.css';\n\nexport interface DropdownProps {\n options: DropdownItem[];\n onValueChanged: (value: string) => void;\n placeholder?: string;\n label?: string;\n selectedValue?: string;\n className?: string;\n disabled?: boolean;\n errorMessage?: string;\n disableArrow?: boolean;\n}\n\nexport interface DropdownItem {\n value: string;\n text: string;\n className?: string;\n}\n\nexport const Dropdown = (props: DropdownProps) => {\n const {\n selectedValue,\n onValueChanged,\n options,\n label,\n placeholder,\n errorMessage,\n disabled,\n disableArrow,\n className,\n } = props;\n\n const { withRoundedCorners, withBoxShadow } = useTheme();\n\n const makeOption = (item: DropdownItem, index: number) => (\n \n );\n\n const handleValueChanged = (e: React.ChangeEvent) => {\n onValueChanged(e.target.value);\n };\n\n const id = uniqueId('Form__dropdown__');\n\n return (\n \n {label && (\n \n )}\n
    \n \n {placeholder && (\n \n )}\n {options.map(makeOption)}\n \n
    \n {!!errorMessage && {errorMessage}}\n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Select\":\"yAkM5G149svWESq8b94M\",\"Label\":\"XEMVqKqdSgu2F10P4ITv\",\"Variant--disabled\":\"gPPJD7rXQTc6ZtRg5dWt\",\"Variant--rounded\":\"Q_HIF9MqDbZubA1dJx6M\",\"Variant--shadowed\":\"V9FP4TWDABS8qqFfjUnc\",\"Variant--withoutArrow\":\"VPk_uyMZQQnocPx2y9G8\"};","import type { AxiosResponse, Canceler } from 'axios';\nimport axios, { isCancel } from 'axios';\nimport * as React from 'react';\nimport { usePrevious } from '../Utils/usePrevious';\nimport { checkEquals } from '../Utils/utils';\nimport { useDebounce } from '~/Utils/Hooks/useDebounce';\nimport { axiosWrapper } from './axiosWrapper';\nimport type { FetchDataAction, FetchDataHookProps, FetchDataHookReturn, FetchDataHookState } from './types';\n\nfunction reducer(\n state: FetchDataHookState,\n action: FetchDataAction\n): FetchDataHookState {\n switch (action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: action.payload,\n loading: false,\n error: undefined,\n };\n case 'SET_ERROR':\n return {\n ...state,\n loading: false,\n data: undefined,\n error: action.payload,\n };\n case 'START_REQUEST':\n return {\n ...state,\n error: undefined,\n loading: true,\n dataRequested: true,\n };\n default:\n return state;\n }\n}\n\nexport function useFetchData(\n props: FetchDataHookProps\n): FetchDataHookReturn {\n const { url, params, method = 'get', shouldMakeRequest = true, debounceTime = 200, timeout = 0 } = props;\n\n const [{ data, loading, error, dataRequested }, dispatch] = React.useReducer<\n React.Reducer, FetchDataAction>\n >(reducer, {\n data: undefined,\n loading: false,\n error: undefined,\n dataRequested: false,\n });\n\n const previousProps = usePrevious({ url, method, params });\n const requestWithDebounce = useDebounce(request, debounceTime);\n\n const cancelToken = React.useRef();\n\n React.useEffect(() => {\n if (shouldMakeRequest) {\n fetchData();\n }\n\n return () => {\n if (cancelToken.current) {\n cancelToken.current();\n }\n };\n }, []);\n\n React.useEffect(() => {\n const propsChanged = previousProps\n ? previousProps.url !== url || previousProps.method !== method || !checkEquals(previousProps.params, params)\n : false;\n\n if ((propsChanged || !dataRequested) && shouldMakeRequest) {\n fetchData();\n }\n }, [url, method, params, dataRequested, shouldMakeRequest]);\n\n function fetchData() {\n if (cancelToken.current) {\n cancelToken.current();\n }\n\n dispatch({ type: 'START_REQUEST' });\n requestWithDebounce();\n }\n\n function request() {\n axiosWrapper\n .request>({\n url,\n method,\n params,\n timeout,\n cancelToken: new axios.CancelToken(token => {\n cancelToken.current = token;\n }),\n })\n .then(response => {\n cancelToken.current = undefined;\n dispatch({ type: 'SET_DATA', payload: response.data });\n })\n .catch(e => {\n if (isCancel(e)) {\n return;\n }\n\n dispatch({ type: 'SET_ERROR', payload: e.message });\n // eslint-disable-next-line no-console\n console.error(e);\n });\n }\n\n return {\n data,\n loading,\n error,\n };\n}\n","import * as React from 'react';\nimport type { ReactNode } from 'react';\nimport useInfiniteScroll from 'react-infinite-scroll-hook';\n\nexport interface InfiniteScrollProps {\n hasError: boolean;\n loading: boolean;\n hasMoreData: boolean;\n loadMoreData: VoidFunction;\n renderData: () => ReactNode;\n topThreshold?: number;\n}\n\nexport const InfiniteScroll: React.FC> = props => {\n const { loading, hasError, hasMoreData, topThreshold = 400, loadMoreData, renderData, children } = props;\n\n const [infiniteScrollTriggerRef] = useInfiniteScroll({\n loading,\n hasNextPage: hasMoreData,\n onLoadMore: loadMoreData,\n disabled: hasError,\n rootMargin: `0px 0px ${topThreshold}px`,\n });\n\n return (\n
    \n {renderData()}\n
    {children}
    \n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"CountInfo\":\"oT24jQmP02EXgX5mmNPg\"};","// extracted by mini-css-extract-plugin\nexport default {\"PaginationStatus\":\"VQF0u2qRs2qtpyVLGNYs\",\"StatusButton\":\"YBPRkb9AIKTsMfnifn6d\",\"DownArrow\":\"cVzq0GUVWaVur9PebxdU\"};","import * as React from 'react';\nimport { Button } from '../../Button/Button';\nimport { ButtonType } from '../../Button/ButtonType.csharp';\nimport { SvgIcon } from '../../SvgIcon/SvgIcon';\nimport styles from './PaginationStatus.module.css';\n\nexport interface BasePaginationStatusTranslations {\n showMore: string;\n error: string;\n searching: string;\n noResultsFound: string;\n}\n\nexport interface PaginationStatusWithRetryTranslations extends BasePaginationStatusTranslations {\n tryAgain: string;\n}\n\ninterface BasePaginationStatusProps {\n hasError: boolean;\n loading: boolean;\n hasMoreData: boolean;\n loadMoreData: VoidFunction;\n hasNoResults: boolean;\n}\n\ninterface PaginationStatusWithRetryProps extends BasePaginationStatusProps {\n translations: PaginationStatusWithRetryTranslations;\n allowRetry: true;\n}\n\ninterface PaginationStatusWithoutRetryProps extends BasePaginationStatusProps {\n translations: BasePaginationStatusTranslations;\n allowRetry?: false;\n}\n\nexport type PaginationStatusProps = PaginationStatusWithRetryProps | PaginationStatusWithoutRetryProps;\n\nexport const PaginationStatus: React.FC> = props => {\n const { loading, hasError, allowRetry, hasMoreData, loadMoreData, hasNoResults, translations } = props;\n\n return (\n
    \n {loading || hasError || hasNoResults ? (\n <>\n {loading &&

    {translations.searching}

    }\n {hasError && (\n <>\n

    {translations.error}

    \n {allowRetry && hasMoreData && (\n \n )}\n \n )}\n {hasNoResults &&

    {translations.noResultsFound}

    }\n \n ) : (\n hasMoreData && (\n \n )\n )}\n
    \n );\n};\n","import uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport ExecutionContext from '../../ExecutionContext';\nimport type { SearchResultResponse } from '../../Search/SearchResultResponse.csharp';\nimport { FormattedText } from '../../Txt/TxtBase';\nimport { RequestHelper } from '../RequestHelper/RequestHelper';\nimport type { QueryParameter } from '~/Partials/SearchBase/QueryParameterUtils';\nimport { buildAbsoluteUrlWithQueryParameters, formatQueryParameters } from '~/Partials/SearchBase/QueryParameterUtils';\nimport { InfiniteScroll } from './InfiniteScroll';\nimport styles from './PagedFetchData.module.css';\nimport type {\n BasePaginationStatusTranslations,\n PaginationStatusWithRetryTranslations,\n} from './PaginationStatus/PaginationStatus';\nimport { PaginationStatus } from './PaginationStatus/PaginationStatus';\n\ninterface PagedFetchDataTranslations {\n showingFromTo: string;\n noResultsFound: string;\n showingNumber?: string;\n showingOf?: string;\n}\n\ninterface BasePagedFetchDataProps {\n baseUrl: string;\n take: number;\n searchParams?: QueryParameter[];\n debounceTime?: number;\n initSkip?: number;\n autoRun?: boolean;\n initialData?: SearchResultResponse;\n children?: (params: { data: ElementsType }) => ReactNode;\n allDataRender?: (params: { data: ElementsType[] }) => ReactNode;\n onTotalCountChanged?: (totalCount: number) => void;\n listClassName?: string;\n}\n\ninterface PagedFetchDataWithInfiniteLoadProps extends BasePagedFetchDataProps {\n translations: PagedFetchDataTranslations & PaginationStatusWithRetryTranslations;\n loadOnScroll: true;\n}\n\ninterface PagedFetchDataWithManualLoadProps extends BasePagedFetchDataProps {\n translations: PagedFetchDataTranslations & BasePaginationStatusTranslations;\n loadOnScroll?: false;\n}\n\nexport type PagedFetchDataProps =\n | PagedFetchDataWithInfiniteLoadProps\n | PagedFetchDataWithManualLoadProps;\n\ninterface PagedFetchDataState {\n data: ElementsType[];\n skip: number;\n loading: boolean;\n totalCount?: number;\n error?: string;\n}\n\nexport class PagedFetchData<\n ResponseType extends SearchResultResponse,\n ElementsType,\n> extends React.PureComponent, PagedFetchDataState> {\n newDataSeparatorId: string;\n\n static defaultProps = {\n initSkip: 0,\n };\n\n constructor(props: PagedFetchDataProps) {\n super(props);\n\n const initialItems = props.initialData?.items || [];\n const totalCount = props.initialData?.totalCount;\n\n this.state = {\n data: initialItems,\n skip: 0,\n totalCount,\n loading: false,\n error: undefined,\n };\n\n this.newDataSeparatorId = uniqueId('NewDataSeparator__');\n }\n\n componentDidUpdate = (oldProps: PagedFetchDataProps) => {\n const { searchParams, initSkip = 0 } = this.props;\n\n const haveParamsChanged = () => {\n if (oldProps.searchParams === undefined && searchParams === undefined) {\n return false;\n }\n\n if (oldProps.searchParams === undefined || searchParams === undefined) {\n return true;\n }\n\n return formatQueryParameters(oldProps.searchParams) !== formatQueryParameters(searchParams);\n };\n\n if (haveParamsChanged()) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ data: [], skip: initSkip });\n }\n };\n\n handleLoadNewItems = () => {\n const { initSkip = 0 } = this.props;\n const { data } = this.state;\n\n this.setState({ skip: initSkip + data.length, error: undefined });\n };\n\n getSearchQueryString = () => {\n const { baseUrl, take, searchParams = [] } = this.props;\n const { skip, error } = this.state;\n\n return error\n ? ''\n : buildAbsoluteUrlWithQueryParameters(baseUrl, [\n ...searchParams,\n { name: 'skip', value: skip.toString() },\n { name: 'take', value: take.toString() },\n ]);\n };\n\n handleLoadNewData = (newData: ResponseType) => {\n const { onTotalCountChanged } = this.props;\n const { data } = this.state;\n this.setState({ data: data.concat(newData.items), totalCount: newData.totalCount });\n\n if (!ExecutionContext.IsServerSide()) {\n const newDataSeparator = document.getElementById(this.newDataSeparatorId);\n\n if (newDataSeparator) {\n newDataSeparator.focus({ preventScroll: true });\n }\n }\n\n !!onTotalCountChanged && onTotalCountChanged(newData.totalCount);\n };\n\n handleLoadDataError = (error: string) => {\n this.setState({ error, loading: false });\n };\n\n handleToggleLoading = (loadStatus: boolean) => {\n this.setState({ loading: loadStatus });\n };\n\n render() {\n const {\n debounceTime,\n children,\n translations,\n autoRun,\n initSkip = 0,\n loadOnScroll,\n allDataRender,\n listClassName,\n } = this.props;\n const { data, totalCount, error, loading, skip } = this.state;\n const dataLength = data.length + initSkip;\n const hasMoreData = (!autoRun && !totalCount) || (!!totalCount && totalCount !== dataLength);\n const hasNoResults = !loading && !error && dataLength === 0;\n\n const { showingFromTo, showingNumber, showingOf } = translations;\n\n const separatorIndex = skip - initSkip;\n\n const renderData = () =>\n data.length > 0 && (\n <>\n {!!allDataRender && allDataRender({ data })}\n {!!children && (\n
      \n {data.map((item, key) => (\n // eslint-disable-next-line react/no-array-index-key\n \n {key === separatorIndex && skip !== initSkip && (\n \n {FormattedText(showingFromTo, { from: key + 1, to: data.length })}\n \n )}\n {/* eslint-disable-next-line react/no-array-index-key */}\n
    • {children({ data: item })}
    • \n
      \n ))}\n
    \n )}\n \n );\n\n const hasError = !!error;\n\n const basePaginationStatusModel = {\n loading,\n hasError,\n hasMoreData,\n loadMoreData: this.handleLoadNewItems,\n hasNoResults,\n };\n\n return (\n <>\n \n url={this.getSearchQueryString()}\n debounceTime={debounceTime}\n autoRun={autoRun}\n onLoadData={(d: ResponseType) => this.handleLoadNewData(d)}\n onLoadDataError={(e: string) => this.handleLoadDataError(e)}\n onToggleLoading={(loadStatus: boolean) => this.handleToggleLoading(loadStatus)}\n />\n {!!data.length && !!totalCount && !!showingNumber && !!showingOf && (\n
    \n {`${showingNumber} ${data.length} ${showingOf} ${totalCount}`}\n
    \n )}\n {loadOnScroll ? (\n \n \n \n ) : (\n <>\n {renderData()}\n \n \n )}\n \n );\n }\n}\n","export const constructImageSharpUrl = (baseUrl: string, width: number) => `${baseUrl}?width=${width}`;\n","import classNames from 'classnames';\nimport clamp from 'lodash/clamp';\nimport * as React from 'react';\nimport type { Theme } from '~/Utils/Theme';\nimport { themeDefaultValues } from '~/Utils/Theme';\nimport styles from './Picture.module.css';\nimport { constructImageSharpUrl } from './Utils/constructImageSharpUrl';\n\nexport interface PictureSource {\n allowedWidths: number[];\n sizes: string[];\n}\n\nexport interface PictureProfile {\n sources: PictureSource[];\n defaultWidth: number;\n}\n\nexport interface FocalPoint {\n x: number;\n y: number;\n}\n\nexport interface BaseImage {\n url: string;\n alt: string;\n focalPoint?: FocalPoint;\n lazyLoading?: boolean;\n}\n\nexport interface PictureDefinition extends BaseImage {\n profile: PictureProfile;\n}\n\nexport interface PictureProps extends PictureDefinition {\n theme?: Pick;\n className?: string;\n}\n\nexport const Picture: React.FC> = props => {\n const { url, alt, focalPoint, profile, className, theme = themeDefaultValues, lazyLoading = true } = props;\n\n const { withRoundedCorners } = theme;\n\n const createPicture = (pictureUrl: string, pictureAlt: string, pictureProfile: PictureProfile) => {\n const [mainSource] = pictureProfile.sources;\n const sourceSizes = mainSource.sizes.join(', ');\n const sourceSrcSets = mainSource.allowedWidths\n .map(width => `${constructImageSharpUrl(pictureUrl, width)} ${width}w`)\n .join(', ');\n\n const getPosition = (point: FocalPoint) => {\n const xPosition = clamp(point.x, 0, 1);\n const yPosition = clamp(point.y, 0, 1);\n\n return `${xPosition * 100}% ${yPosition * 100}%`;\n };\n\n return (\n \n \n \n \n );\n };\n\n return (\n
    \n {createPicture(url, alt, profile)}\n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Picture\":\"slJnKPGAAIKofsQwQBjL\",\"Variant--rounded\":\"vPKYJ9xnnqorRitmkm3i\"};","import type { PictureProfile } from '~/Partials/Picture/Picture';\n\nexport class PictureProfiles {\n static readonly threeColumnsElement: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [175, 375, 500, 768],\n sizes: ['(min-width: 1920px) 500px', '(min-width: 768px) 25vw', '100vw'],\n },\n ],\n };\n\n static readonly fourColumnsElement: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [375, 500, 768],\n sizes: ['(min-width: 768px) 33vw', '100vw'],\n },\n ],\n };\n\n static readonly sixColumnsElement: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [375, 500, 768, 1024],\n sizes: ['(min-width: 768px) 50vw', '100vw'],\n },\n ],\n };\n\n static readonly fullWidth: PictureProfile = {\n defaultWidth: 1440,\n sources: [\n {\n allowedWidths: [375, 768, 1024, 1440, 1920],\n sizes: ['100vw'],\n },\n ],\n };\n\n static readonly horizontal: PictureProfile = {\n defaultWidth: 1440,\n sources: [\n {\n allowedWidths: [375, 768, 1440],\n sizes: ['(min-width: 1440px) 1440px', '100vw'],\n },\n ],\n };\n\n static readonly vertical: PictureProfile = {\n defaultWidth: 552,\n sources: [\n {\n allowedWidths: [375, 768, 1536],\n sizes: ['(max-width: 767px) 100vw', '(min-width: 768px) 552px'],\n },\n ],\n };\n\n static readonly callout: PictureProfile = {\n defaultWidth: 258,\n sources: [\n {\n allowedWidths: [120, 240],\n sizes: ['(max-width: 767px) 100vw', '(min-width: 768) 120px'],\n },\n ],\n };\n\n static readonly contentCard: PictureProfile = {\n defaultWidth: 1440,\n sources: [\n {\n allowedWidths: [375, 768, 1136],\n sizes: ['(min-width: 1024px) 1136px', '(min-width: 768px) 768px', '100vw'],\n },\n ],\n };\n\n static readonly studyPortfolioItem: PictureProfile = {\n defaultWidth: 630,\n sources: [\n {\n allowedWidths: [260, 340, 410, 560, 675, 710, 810, 870],\n sizes: ['(max-width: 767px) 90vw', '(min-width: 768px) 45vw'],\n },\n ],\n };\n\n static readonly galleryItemSquare: PictureProfile = {\n defaultWidth: 480,\n sources: [\n {\n allowedWidths: [300, 380, 480],\n sizes: ['(min-width: 476px) 380px', '(min-width: 768px) 480px', '300px'],\n },\n ],\n };\n\n static readonly galleryItemVertical: PictureProfile = {\n defaultWidth: 360,\n sources: [\n {\n allowedWidths: [360, 520],\n sizes: ['(max-width: 767px) 100vw', '(min-width: 768px) 360px'],\n },\n ],\n };\n\n static readonly galleryItemHorizontal: PictureProfile = {\n defaultWidth: 640,\n sources: [\n {\n allowedWidths: [640],\n sizes: ['(max-width: 767px) 80vw', '(min-width: 768px) 640px'],\n },\n ],\n };\n\n static readonly mainPosterVertical: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [500, 768, 1024, 1300],\n sizes: ['(min-width: 768px) 70vw', '100vw'],\n },\n ],\n };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"LogoWrapper\":\"rLPb41_nB0G4MecZ4mE5\",\"Logo\":\"tZgaCxFP4U3Uwa4Sad4N\",\"Variant--default\":\"ZSbIyUzr6rSK_5dXtkvi\",\"Variant--light\":\"CEuKCgcYyO4PiyJodS9w\",\"Variant--rounded\":\"ubaUESvsjg4uza8S1zV9\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { Theme } from '~/Utils/Theme';\nimport { themeDefaultValues } from '~/Utils/Theme';\nimport styles from './PicturePlaceholder.module.css';\nimport type { PlaceholderVariant } from './PlaceholderVariant';\n\nexport interface PicturePlaceholderProps {\n variant?: PlaceholderVariant;\n className?: string;\n logoWrapperClassName?: string;\n theme?: Theme;\n}\n\nexport const PicturePlaceholder: React.FC> = props => {\n const { className, logoWrapperClassName, theme = themeDefaultValues, variant = 'default' } = props;\n\n const { withRoundedCorners } = theme;\n\n return (\n \n
    \n
    \n
    \n
    \n );\n};\n","import type { Canceler } from 'axios';\nimport axios, { isCancel } from 'axios';\nimport debounce from 'lodash/debounce';\nimport * as React from 'react';\nimport { axiosWrapper } from '~/Partials/FetchData/axiosWrapper';\n\ninterface RequestHelperProps {\n url: string;\n debounceTime?: number;\n autoRun?: boolean;\n method?: 'get' | 'post';\n timeout?: number;\n onLoadData?: (data: ResponseType) => void | undefined;\n onLoadDataError?: (error: string) => void;\n onToggleLoading?: (loadStatus: boolean) => void;\n data?: RequestDataType;\n}\n\nexport class RequestHelper extends React.PureComponent<\n RequestHelperProps\n> {\n static defaultProps: Partial> = {\n debounceTime: 0,\n autoRun: true,\n method: 'get',\n timeout: 0,\n };\n\n cancelToken: Canceler | undefined = undefined;\n\n makeNetworkRequestDebounce: ReturnType | undefined = undefined;\n\n makeNetworkRequest = () => {\n const { debounceTime } = this.props;\n\n this.makeNetworkRequestDebounce && this.makeNetworkRequestDebounce.cancel();\n this.makeNetworkRequestDebounce = debounce(() => {\n const { url, method = 'get', timeout, onLoadData, onLoadDataError, data } = this.props;\n axiosWrapper\n .request({\n url,\n method,\n data,\n timeout,\n cancelToken: new axios.CancelToken(token => {\n this.cancelToken = token;\n }),\n })\n .then(res => {\n this.toggleLoading(false);\n this.cancelToken = undefined;\n onLoadData && onLoadData(res.data);\n })\n .catch(e => {\n if (isCancel(e)) {\n return;\n }\n\n onLoadDataError && onLoadDataError(e.message);\n\n console.error(e);\n });\n }, debounceTime);\n\n this.makeNetworkRequestDebounce();\n };\n\n toggleLoading = (loadStatus: boolean) => {\n const { onToggleLoading } = this.props;\n onToggleLoading && onToggleLoading(loadStatus);\n };\n\n componentDidMount = () => {\n const { autoRun } = this.props;\n\n if (autoRun) {\n this.fetchData();\n }\n };\n\n componentDidUpdate = (oldProps: RequestHelperProps) => {\n const { url } = this.props;\n\n if (url && oldProps.url !== url) {\n this.fetchData();\n }\n };\n\n fetchData = () => {\n if (this.cancelToken) {\n this.cancelToken();\n }\n\n this.toggleLoading(true);\n this.makeNetworkRequest();\n };\n\n render() {\n return null;\n }\n}\n","import type { QueryParameter } from '../QueryParameterUtils';\nimport { Event } from '~/Features/Messaging/types';\n\nexport class QueryParametersChanged extends Event {\n public static readonly id = 'QueryParametersChanged';\n\n constructor(\n public queryParams: QueryParameter[],\n public storedInHistory: boolean\n ) {\n super(QueryParametersChanged.id);\n }\n}\n","import { useState } from 'react';\nimport ExecutionContext from '../../ExecutionContext';\nimport { toUrl } from '../Utils/utils';\nimport { MessageBroker } from '~/Features/Messaging/MessageBroker';\nimport { useMessageHandler } from '~/Features/Messaging/useMessageHandler';\nimport { QueryParametersChanged } from '~/Partials/SearchBase/Events/QueryParametersChanged';\n\nexport type QueryParameter = { name: string; value: string };\n\nexport const formatQueryParameters = (params: QueryParameter[]) =>\n params.length === 0 ? '' : `?${params.map(param => `${param.name}=${param.value}`).join('&')}`;\n\nexport const getQueryParametersFromUrl = (url: string): QueryParameter[] => {\n const result = [] as QueryParameter[];\n\n if (ExecutionContext.IsServerSide()) {\n return result;\n }\n\n const params = toUrl(url).searchParams;\n params.forEach((value, key) => result.push({ name: key, value }));\n\n return result;\n};\n\nexport const buildAbsoluteUrlWithQueryParameters = (baseUrl: string, queryParams: QueryParameter[]) => {\n if (ExecutionContext.IsServerSide() || queryParams.length === 0) {\n return baseUrl;\n }\n\n const newUrl = toUrl(baseUrl);\n newUrl.search = '';\n\n queryParams.forEach(param => newUrl.searchParams.append(param.name, param.value));\n\n return newUrl.toString();\n};\n\nexport const changeQueryParametersInActiveUrl = (queryParameters: QueryParameter[], addHistoryEntry = true) => {\n ExecutionContext.ThrowIfServerSide();\n\n const urlWithSearchParams = buildAbsoluteUrlWithQueryParameters(window.location.pathname, queryParameters);\n\n if (addHistoryEntry) {\n document.URL !== urlWithSearchParams && window.history.pushState('', '', urlWithSearchParams);\n } else {\n window.history.replaceState('', '', urlWithSearchParams);\n }\n\n MessageBroker.publish(new QueryParametersChanged(queryParameters, addHistoryEntry));\n};\n\nexport const useQueryParametersObserver = (onlyStoredInHistory = true) => {\n const [queryParams, setQueryParams] = useState([]);\n\n useMessageHandler(QueryParametersChanged.id, (event: QueryParametersChanged) => {\n if (onlyStoredInHistory && !event.storedInHistory) {\n return;\n }\n\n setQueryParams(event.queryParams);\n });\n\n return queryParams;\n};\n","import * as React from 'react';\n\nexport function usePrevious(value: T) {\n const ref = React.useRef();\n React.useEffect(() => {\n ref.current = value;\n });\n\n return ref.current as T;\n}\n","import type { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport omit from 'lodash/omit';\nimport type { RefObject } from 'react';\nimport ExecutionContext from '../../ExecutionContext';\nimport type { Money } from '../../Money.csharp';\nimport { axiosWrapper } from '../FetchData/axiosWrapper';\nimport { getContentLanguage } from '~/Features/Configuration/Utils/languageUtils';\nimport type { Falsy, StrictOmit } from '~/Partials/Utils/typeUtils';\n\nexport const omitProperty = (\n object: TObj,\n ...args: TArgs[]\n): StrictOmit => omit(object, args);\n\n/**\n * compare values\n * TODO: this is temporary solution.\n * make it better and faster or use some small lib\n */\nexport function checkEquals(a: T, b: T) {\n try {\n /** FIXME:\n * JSON.stringify \"ignores\" functions so there\n * is no sense to compare functions.. will always be true\n */\n return JSON.stringify(a) === JSON.stringify(b);\n } catch (e) {\n return false;\n }\n}\n\n/* TODO - needs some work with it */\n\n// Replace with new makePostRequest\nexport async function makePostRequestOld(\n url: string,\n params: ParamsType,\n config: AxiosRequestConfig = {}\n) {\n // No try-catch on purposes.\n const response = await axiosWrapper.post(url, params, config);\n\n return response as AxiosResponse;\n}\n\nexport function objectAssignToEmptyFields>(\n source: TObject,\n fields: TFields\n) {\n /* TODO: test & doc & make code more readable maybe? */\n return Object.entries(source).reduce((acc, [key, oldVal]) => {\n const newVal = fields[key as keyof TObject];\n\n // Only non-boolean \"falsy\" value will be replaced.\n const isOldValueEmpty = () => !oldVal && typeof oldVal !== 'boolean';\n\n // And only if new value is \"truthy\" or boolean\n const isNewValueNonEmpty = () => !!newVal || typeof newVal === 'boolean';\n\n return {\n ...acc,\n [key]: isOldValueEmpty() && isNewValueNonEmpty() ? newVal : oldVal,\n };\n }, {} as TObject);\n}\n\nexport function cloneArrayAndUpdateSingleItem(source: T[], item: T, updateFunction: (oldItem: T) => T) {\n const index = source.indexOf(item);\n const updatedItem = updateFunction(item);\n\n return [...source.slice(0, index), updatedItem, ...source.slice(index + 1)];\n}\n\nexport const moneyToString = (money: Money) => {\n const amountFormatted = formatAmount(money.amount);\n const currencyFormatted = formatCurrency(money.currencyCode);\n\n return money.currencyCode === 'NOK'\n ? `${currencyFormatted} ${amountFormatted}`\n : `${amountFormatted} ${currencyFormatted}`;\n};\n\nconst formatAmount = (amount: number) => {\n const parts = amount.toString().split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n return parts.join('.');\n};\n\nconst formatCurrency = (currency: string) => (currency === 'NOK' ? 'kr' : currency);\n\nexport const formatNumber = (value: number) => value.toLocaleString(getContentLanguage());\n\nexport const redirect = (url: string) => {\n if (ExecutionContext.IsServerSide()) {\n return;\n }\n\n window.location.href = url.indexOf('/') === 0 ? `${window.location.origin}${url}` : url;\n};\n\nexport const reload = () => {\n if (ExecutionContext.IsServerSide()) {\n return;\n }\n\n window.location.reload();\n};\n\nexport const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\nexport const getElementById = (id: string) => {\n if (!ExecutionContext.IsServerSide()) {\n return document.getElementById(id);\n }\n};\nexport const scrollToElement = (\n element: HTMLElement,\n behavior: ScrollBehavior = 'smooth',\n block?: ScrollLogicalPosition,\n inline?: ScrollLogicalPosition\n) => {\n if (!ExecutionContext.IsServerSide()) {\n element.scrollIntoView({\n behavior,\n block,\n inline,\n });\n }\n};\n\nexport const smoothScrollToSectionById = (id: string) => {\n const section = getElementById(id);\n\n if (section) {\n scrollToElement(section);\n }\n};\n\nexport const smoothScrollToSectionByRef = (ref: RefObject) => {\n if (ref.current) {\n scrollToElement(ref.current);\n }\n};\n\nexport const scrollToTop = () => scrollTo(0, 0);\n\nexport const isTruthy = (item: T | Falsy): item is T => !!item;\n\nexport const getCurrentUrl = () => (ExecutionContext.IsServerSide() ? undefined : window.location.href);\n\nexport const toUrl = (url: string) => {\n ExecutionContext.ThrowIfServerSide();\n\n return new URL(url, `${location.protocol}//${location.hostname}${location.port ? `:${location.port}` : ''}`);\n};\n\nfunction legacyCopyTextToClipboard(text: string) {\n const textArea = document.createElement('textarea');\n textArea.value = text;\n\n // Avoid scrolling to bottom\n textArea.style.top = '0';\n textArea.style.left = '0';\n textArea.style.position = 'fixed';\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n document.execCommand('copy');\n document.body.removeChild(textArea);\n}\n\nexport async function copyTextToClipboard(text: string) {\n // eslint-disable-next-line compat/compat -- we first check whether the browser supports the clipboard API\n navigator.clipboard ? await navigator.clipboard.writeText(text) : legacyCopyTextToClipboard(text);\n}\n\nexport function combineValidAttributeValues(...values: (string | undefined)[]) {\n const validValues = values.filter(isTruthy);\n\n return validValues.length === 0 ? undefined : validValues.join(' ');\n}\n\nexport const repeat = (item: TItem, count: number) => Array(count).fill(item);\n\nexport const repeatWithId = (item: TItem, count: number) =>\n repeat(item, count).map((element, index) => ({ id: index.toString(), ...element }));\n\nexport const createArray = (factory: (index: number) => TItem, count: number) =>\n Array.from({ length: count }).map((_, index) => factory(index));\n\nexport const replaceNotFriendlyCharacters = (str: string) => str.replace(/[ -/:-@[-`{-}]+/g, '-');\n\nexport const capitalize = (str: T) =>\n (str ? str[0].toUpperCase() + str.slice(1) : str) as Capitalize;\n\nexport const getLastElementOfArray = (array?: TItem[]) =>\n !array || array.length === 0 ? undefined : array[array.length - 1];\n\nexport const stripFromHTMLNode = (rawHtml: string, node: 'p') =>\n rawHtml.replace(new RegExp(`<${node}>|`, 'g'), '');\n\nexport const firstKey = (map: Map) => {\n const result = map.keys().next();\n\n return result.done ? undefined : result.value;\n};\n\nexport const hasAny = (items: TItem[], predicate: (item: TItem) => boolean) =>\n items.find(predicate) !== undefined;\n\nexport const areEqual = (first: string, second: string, ignoreCase = false) =>\n first.localeCompare(second, undefined, { sensitivity: ignoreCase ? 'accent' : 'variant' }) === 0;\n\nexport const isSafari = () => {\n if (ExecutionContext.IsServerSide()) {\n return false;\n }\n\n // eslint-disable-next-line compat/compat -- this is client-side code\n const userAgent = navigator.userAgent.toLowerCase();\n\n return userAgent.includes('safari') && !userAgent.includes('chrome') && !userAgent.includes('crios');\n};\n\nexport const findClosestParent = (\n element: Element,\n predicate: (element: Element) => element is TElement\n): TElement | null => {\n let potentialResult: Element | null = element;\n\n while (potentialResult) {\n if (predicate(potentialResult)) {\n return potentialResult;\n }\n\n potentialResult = potentialResult.parentElement;\n }\n\n return null;\n};\n\nexport const isInteractiveElement = (element: HTMLElement) => {\n const formTags = ['button', 'input', 'select', 'textarea'];\n const linkTags = ['a', 'area'];\n\n const normalizedTagName = element.tagName.toLowerCase();\n\n return (\n (formTags.includes(normalizedTagName) && !element.hasAttribute('disabled')) ||\n (linkTags.includes(normalizedTagName) && element.hasAttribute('href'))\n );\n};\n\nexport const hashValue = async (value: string) => {\n ExecutionContext.ThrowIfServerSide();\n\n const encoder = new TextEncoder();\n const data = encoder.encode(value);\n // eslint-disable-next-line compat/compat -- this is client-side code\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n\n return hashArray.map(num => num.toString(16).padStart(2, '0')).join('');\n};\n\nexport const isErrorWithName = (error: unknown, errorName: string) =>\n typeof error === 'object' && error !== null && 'name' in error && error.name === errorName;\n\nexport const urlJoin = (...parts: string[]) => parts.join('/').replace('//', '/');\n","import { getContentLocale } from '~/Features/Configuration/Utils/languageUtils';\n\nexport type FormatArgs = Record;\n\nexport interface TxtProps {\n id: keyof T;\n values?: FormatArgs;\n}\n\n/**\n * Apply variables to string with {} placeholders\n * ex. format(`{price} is {amount}`, { price: 'Price', amount: 30 })\n */\nconst format = (template: string, values: FormatArgs) =>\n template.replace(/{(\\w+)}/g, (match, index) =>\n typeof values[index] !== 'undefined' ? values[index].toLocaleString(getContentLocale()) : match\n );\n\nexport const FormattedText = (text: string, values?: FormatArgs) => (text && values ? format(text, values) : text);\n","import debounce from 'lodash/debounce';\nimport * as React from 'react';\nimport { useVariableWithStableRef } from './useVariableWithStableRef';\n\nexport function useDebounce(callback: () => void, debounceTime: number) {\n const handlerRef = useVariableWithStableRef(callback);\n\n return React.useCallback(\n debounce(() => handlerRef.current?.(), debounceTime),\n [handlerRef]\n );\n}\n","import { useEffect, useRef } from 'react';\n\nexport function useVariableWithStableRef(variable: T) {\n const variableRef = useRef(variable);\n\n useEffect(() => {\n variableRef.current = variable;\n }, [variable]);\n\n return variableRef;\n}\n"],"names":["RowType","getDefaultPictureProfile","rowType","OneOnOne","PictureProfiles","contentCard","OneLeftAndTwoOnTwoRight","sixColumnsElement","threeColumnsElement","PosterListRow","props","type","posters","reverse","renderPoster","poster","profile","React","className","styles","Poster","key","primaryLinkUrl","PosterImageOverlay","image","Picture","_extends","PosterImage","PicturePlaceholder","PosterBody","category","PosterCategory","title","HtmlHeading","PosterTitle","html","text","HtmlDiv","PosterDescription","href","classNames","concat","OneLeftAndFourOnOneRight","map","index","horizontal","mainPosterVertical","getFirstPosterPictureProfile","undefined","PosterListBlock","displayRows","backgroundVariant","sectionBlockId","loadMorePostersUrl","loadOnScroll","translations","postersCategory","loadedRowLayout","loadedPostersPictureProfile","postersCopy","rowsWithData","row","_objectSpread","splice","itemsCount","skip","sumBy","length","every","r","Content","id","Anchor","Title","Inner","LoadedData","PagedFetchData","baseUrl","debounceTime","take","initSkip","autoRun","searchParams","getSearchParams","params","name","value","push","allDataRender","_ref","data","dividedData","chunk","AllData","listClassName","SingleData","_ref2","LoadedDataText","MessageBroker","subscribe","handler","messageId","handlers","this","MessageHandlersByMessageId","unsubscribe","filter","h","publish","message","GetMessageHandlers","forEach","handle","schedulePublish","delay","setTimeout","Message","constructor","Event","useMessageHandler","onMessage","onMessageRef","useVariableWithStableRef","useLayoutEffect","event","current","ResearchArticleListContent","categoryParam","researchCategories","posterListBlock","searchUrl","postersCount","emptyCategoryMessage","defaultCategory","description","showAll","categoriesWithDefault","getQueryParams","activeCategory","setActiveCategory","getDefaultCategory","ExecutionContext","IsServerSide","queryString","window","location","search","paramsCategoryName","URLSearchParams","get","paramsCategory","find","isDefaultCategory","loading","useFetchData","url","buildAbsoluteUrlWithQueryParameters","toString","handleCategoryClick","changeQueryParametersInActiveUrl","Button","onClick","renderCategoryListElement","Dropdown","selectedValue","JSON","stringify","options","onValueChanged","newCategory","parse","items","uniqueId","newestArticles","ActivityIndicator","cover","active","ModalWrapper","visible","children","style","display","modal","Wrapper","wrapperProps","ref","theme","passThroughProps","_objectWithoutProperties","_excluded","ButtonType","Clear","ThemedButton","RawButton","size","tier","htmltype","otherProps","_excluded2","contextualTheme","useTheme","additionalProps","_excluded3","withBoxShadow","withRoundedCorners","restDivProps","dangerouslySetInnerHTML","__html","label","placeholder","errorMessage","disabled","disableArrow","htmlFor","defaultValue","onChange","e","target","hidden","makeOption","item","reducer","state","action","payload","error","dataRequested","method","shouldMakeRequest","timeout","dispatch","previousProps","usePrevious","requestWithDebounce","useDebounce","axiosWrapper","request","cancelToken","axios","CancelToken","token","then","response","catch","isCancel","console","fetchData","checkEquals","InfiniteScroll","hasError","hasMoreData","topThreshold","loadMoreData","renderData","infiniteScrollTriggerRef","useInfiniteScroll","hasNextPage","onLoadMore","rootMargin","PaginationStatus","allowRetry","hasNoResults","role","searching","tryAgain","noResultsFound","showMore","SvgIcon","iconName","_props$initialData","_props$initialData2","super","newDataSeparatorId","componentDidUpdate","oldProps","formatQueryParameters","setState","handleLoadNewItems","getSearchQueryString","handleLoadNewData","newData","onTotalCountChanged","totalCount","newDataSeparator","document","getElementById","focus","preventScroll","handleLoadDataError","handleToggleLoading","loadStatus","initialItems","initialData","render","dataLength","showingFromTo","showingNumber","showingOf","separatorIndex","tabIndex","FormattedText","from","to","basePaginationStatusModel","RequestHelper","onLoadData","d","onLoadDataError","onToggleLoading","defaultProps","constructImageSharpUrl","width","alt","focalPoint","themeDefaultValues","lazyLoading","createPicture","pictureUrl","pictureAlt","pictureProfile","mainSource","sources","sourceSizes","sizes","join","sourceSrcSets","allowedWidths","srcSet","src","defaultWidth","objectPosition","point","xPosition","clamp","x","yPosition","y","getPosition","fourColumnsElement","fullWidth","vertical","callout","studyPortfolioItem","galleryItemSquare","galleryItemVertical","galleryItemHorizontal","logoWrapperClassName","variant","LogoWrapper","Logo","arguments","makeNetworkRequestDebounce","makeNetworkRequest","cancel","debounce","res","toggleLoading","componentDidMount","QueryParametersChanged","queryParams","storedInHistory","param","getQueryParametersFromUrl","result","toUrl","newUrl","append","queryParameters","addHistoryEntry","ThrowIfServerSide","urlWithSearchParams","pathname","URL","history","pushState","replaceState","useQueryParametersObserver","onlyStoredInHistory","setQueryParams","useState","omitProperty","object","_len","args","Array","_key","omit","a","b","async","makePostRequestOld","config","post","objectAssignToEmptyFields","source","fields","Object","entries","reduce","acc","oldVal","newVal","cloneArrayAndUpdateSingleItem","updateFunction","indexOf","updatedItem","slice","moneyToString","money","amountFormatted","formatAmount","amount","currencyFormatted","formatCurrency","currencyCode","parts","split","replace","currency","formatNumber","toLocaleString","getContentLanguage","redirect","origin","reload","ms","Promise","resolve","scrollToElement","element","behavior","block","inline","scrollIntoView","smoothScrollToSectionById","section","smoothScrollToSectionByRef","scrollToTop","scrollTo","isTruthy","getCurrentUrl","protocol","hostname","port","copyTextToClipboard","navigator","clipboard","writeText","textArea","createElement","top","left","position","body","appendChild","select","execCommand","removeChild","legacyCopyTextToClipboard","combineValidAttributeValues","_len2","values","_key2","validValues","createArray","factory","count","_","replaceNotFriendlyCharacters","str","capitalize","toUpperCase","getLastElementOfArray","array","stripFromHTMLNode","rawHtml","node","RegExp","firstKey","keys","next","done","hasAny","predicate","isSafari","userAgent","toLowerCase","includes","findClosestParent","potentialResult","parentElement","isInteractiveElement","normalizedTagName","tagName","hasAttribute","hashValue","TextEncoder","encode","hashBuffer","crypto","subtle","digest","Uint8Array","num","padStart","isErrorWithName","errorName","urlJoin","_len3","_key3","format","template","match","getContentLocale","callback","handlerRef","_handlerRef$current","call","variable","variableRef","useRef","useEffect"],"sourceRoot":""}