{"version":3,"file":"JobOpportunitiesSectionBlock.chunk.d2e73466153b129c2dd4.js","mappings":"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","sources":["webpack://Kristiania.Web/./Features/StudyPage/Campus/Components/StudyPageLinkList/StudyPageLinkList.module.css?22ab","webpack://Kristiania.Web/./Features/StudyPage/Campus/Components/StudyPageLinkList/StudyPageLinkList.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/JobOpportunitiesSection/JobOpportunitiesSection.module.css?8c67","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/JobOpportunitiesSection/JobOpportunitiesSection.tsx","webpack://Kristiania.Web/./Features/Blocks/JobOpportunitiesSectionBlock/View/JobOpportunitiesSectionBlock.tsx","webpack://Kristiania.Web/./Features/Layouts/Components/PageSection/PageSection.tsx","webpack://Kristiania.Web/./Features/Layouts/Components/PageSection/PageSection.module.css?557e","webpack://Kristiania.Web/./Features/Layouts/Components/PageSectionHeading/PageSectionHeading.tsx","webpack://Kristiania.Web/./Features/Layouts/Components/PageSectionHeading/PageSectionHeading.module.css?ed34","webpack://Kristiania.Web/./Features/Messaging/MessageBroker.ts","webpack://Kristiania.Web/./Features/Messaging/types.ts","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/Link/Link.module.css?85a8","webpack://Kristiania.Web/./Features/Partials/Link/Link.tsx","webpack://Kristiania.Web/./Features/Partials/Link/LinkType.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Link/LinkVariant.csharp.ts","webpack://Kristiania.Web/./Features/Partials/List/List.tsx","webpack://Kristiania.Web/./Features/Partials/Modal/ClientSidePortal.tsx","webpack://Kristiania.Web/./Features/Partials/Modal/Portal.tsx","webpack://Kristiania.Web/./Features/Partials/ModalWrapper/ModalWrapper.tsx","webpack://Kristiania.Web/./Features/Utils/Hooks/useCloseHandlersWithoutDuplicatedCalls.ts","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/Shortcut/Shortcut.module.css?33f6","webpack://Kristiania.Web/./Features/Partials/Shortcut/Shortcut.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Components/ArticleList/ArticleCard/ArticleCard.module.css?3f81","webpack://Kristiania.Web/./Features/StudyPage/Campus/Components/ArticleList/ArticleCard/ArticleCard.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Components/Overlay/Overlay.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Components/Overlay/Overlay.module.css?6508","webpack://Kristiania.Web/./Features/StudyPage/Campus/Components/Overlay/WithOverlay.tsx","webpack://Kristiania.Web/./Features/Utils/AnimationsUtils.ts","webpack://Kristiania.Web/./Features/Utils/MouseButton.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useClickProxyAllowingTextSelection.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useIsMounted.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useVariableWithStableRef.ts","webpack://Kristiania.Web/./Features/Utils/ScrollLock/ScrollLock.tsx","webpack://Kristiania.Web/./Features/Utils/ScrollLock/ScrollLock.module.css?3254","webpack://Kristiania.Web/./Features/Utils/ScrollLock/ScrollLockUpdated.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"StudyPageLinkList\":\"gOFfCOGgsoYfQDsrulwN\",\"OverlayContentHeading\":\"QyHwrlI4c0dLFrsS3esJ\",\"Teaser\":\"KgSPjnWKLeiPJ0FM0dQy\",\"Items\":\"qkBUwgQDLi4p_RY0dWv6\",\"Icon\":\"qRe66TfUwTfvEUQmJRJf\",\"Button\":\"RLuLMRDzYQ3XgZOh0LH6\",\"Variant--default\":\"Um_bsxrmr048dYBfonAO\",\"Variant--dark\":\"cZvgauBohBsVjfCgssfp\",\"Variant--rounded\":\"hfMRvjcJ6bvRCr56YbNA\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { OverlayContainerProps } from '../Overlay/WithOverlay';\nimport { WithOverlay } from '../Overlay/WithOverlay';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport type { LinkViewModel } from '~/Partials/Link/LinkViewModel.csharp';\nimport { List } from '~/Partials/List/List';\nimport { Shortcut } from '~/Partials/Shortcut/Shortcut';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport type { Theme } from '~/Utils/Theme';\nimport styles from './StudyPageLinkList.module.css';\nimport type { StudyPageLinkListVariant } from './StudyPageLinkListVariant';\n\nexport interface StudyPageLinkListProps {\n overlay?: OverlayContainerProps;\n variant?: StudyPageLinkListVariant;\n items?: LinkViewModel[];\n teaser?: HtmlString;\n theme?: Pick;\n}\n\nconst StudyPageLinkListOverlayContent: React.FC<\n Pick, 'overlayLabel' | 'content'>\n> = props => {\n const { overlayLabel, content } = props;\n\n return (\n <>\n

{overlayLabel}

\n \n \n );\n};\n\nexport const StudyPageLinkList: React.FC = props => {\n const contextualTheme = useTheme();\n const { teaser, items, overlay, variant = 'default', theme = contextualTheme } = props;\n const { withRoundedCorners } = theme;\n\n const richtextVariant = variant === 'dark' ? 'light' : 'dark';\n\n return (\n \n {teaser && (\n \n )}\n
\n {items && items.length > 0 && (\n (\n
  • \n \n
  • \n )}\n />\n )}\n {overlay && (\n \n }\n closeLabel={overlay.closeLabel}\n >\n {triggerButtonProps => (\n \n {overlay.openLabel}\n \n \n )}\n \n )}\n
    \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"JobOpportunitiesSection\":\"cr4GKFNCqp2Yu1c2kbOA\",\"Heading\":\"vw2qEzBLsG8dfPFKhCCL\",\"Variant--withFeaturedArticle\":\"cqvKGYSQUOkDhbqS2bc7\",\"Content\":\"eCTirCs_JIAXtZrCECpB\",\"ArticleCard\":\"vtkkbZPYpUDSiSOigevy\",\"LinkList\":\"s4PUgF87xJpwYCH4qegZ\",\"Variant--dark\":\"dEx4h13HrShii_WKTS8e\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { StudyPageLinkListProps } from '../../Components/StudyPageLinkList/StudyPageLinkList';\nimport { StudyPageLinkList } from '../../Components/StudyPageLinkList/StudyPageLinkList';\nimport { PageSection } from '~/Features/Layouts/Components/PageSection/PageSection';\nimport { PageSectionHeading } from '~/Features/Layouts/Components/PageSectionHeading/PageSectionHeading';\nimport type { ArticleCardProps } from '~/Features/StudyPage/Campus/Components/ArticleList/ArticleCard/ArticleCard';\nimport { ArticleCard } from '~/Features/StudyPage/Campus/Components/ArticleList/ArticleCard/ArticleCard';\nimport type { OverlayContainerProps } from '~/Features/StudyPage/Campus/Components/Overlay/WithOverlay';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport styles from './JobOpportunitiesSection.module.css';\nimport type { JobOpportunitiesSectionVariant } from './JobOpportunitiesSectionVariant';\n\nexport interface JobOpportunitiesSectionProps {\n id: string;\n studyPageLinkList: Pick;\n overlayCloseLabel: string;\n heading?: HtmlString;\n overlayButtonLabel?: string;\n overlayHeading?: string;\n overlayContent?: HtmlString;\n featuredArticle?: Pick;\n variant?: JobOpportunitiesSectionVariant;\n}\n\nexport const JobOpportunitiesSection: React.FC = props => {\n const {\n id,\n heading,\n studyPageLinkList,\n featuredArticle,\n overlayButtonLabel,\n overlayContent,\n overlayHeading,\n overlayCloseLabel,\n variant = 'default',\n } = props;\n\n const hasFeaturedArticle = featuredArticle && !!featuredArticle.articleUrl;\n\n const overlayProps: OverlayContainerProps | undefined =\n overlayHeading && overlayContent && overlayButtonLabel && overlayCloseLabel\n ? {\n overlayLabel: overlayHeading,\n content: overlayContent,\n openLabel: overlayButtonLabel,\n closeLabel: overlayCloseLabel,\n }\n : undefined;\n\n return (\n \n {heading && }\n
    \n
    \n \n
    \n {hasFeaturedArticle && (\n
    \n \n
    \n )}\n
    \n \n );\n};\n","import * as React from 'react';\nimport type { JobOpportunitiesSectionBlockViewModel } from '../ViewModel/JobOpportunitiesSectionBlockViewModel.csharp';\nimport { JobOpportunitiesSection } from '~/Features/StudyPage/Campus/Sections/JobOpportunitiesSection/JobOpportunitiesSection';\n\nexport const JobOpportunitiesSectionBlock: React.FC = props => {\n const { teaser, linkList, featuredArticle, blockVariant, ...otherProps } = props;\n\n return (\n \n );\n};\n","import * as React from 'react';\nimport styles from './PageSection.module.css';\n\nexport interface PageSectionProps {\n id?: string;\n className?: string;\n}\n\nexport const PageSection: React.FC> = props => {\n const { id, className, children } = props;\n\n return (\n
    \n
    \n
    {children}
    \n
    \n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Wrapper\":\"Fov3KMlE7osNR74JI44t\",\"Inner\":\"Wf6h4ZdN2S9XvO6RoMCf\"};","import classNames from 'classnames';\nimport React from 'react';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport { HtmlHeading } from '~/Partials/Controls/HtmlHeading';\nimport styles from './PageSectionHeading.module.css';\n\ninterface PageSectionHeadingProps {\n heading: HtmlString;\n className?: string;\n}\n\nexport const PageSectionHeading: React.FC = props => {\n const { heading, className } = props;\n\n return ;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"PageSectionHeading\":\"FrR9v_ssranAjR5kDzwF\"};","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 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","// extracted by mini-css-extract-plugin\nexport default {\"Link\":\"XezMfDvRba8HKhHr79wm\",\"Variant--button\":\"UssovIOXlEuxxbOHY4c4\",\"Label\":\"DdPYOTimBd1c8zDeoFgi\",\"Variant--default\":\"BaRcrU5NpyAMFJiitXyJ\",\"Variant--clear\":\"B5Z4_vbRcPt248iwmQXi\",\"ExternalIcon\":\"STANzowJsaT4J9r68lKO\",\"Variant--primaryVariant\":\"Ao72_5IgozgF9TjFNNMg\",\"Variant--secondaryVariant\":\"LJeoDEcvQBM1fqdwcmyQ\",\"Variant--lightBlackVariant\":\"acIUmsBFtHkURrDJnial\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport buttonStyles from '../Button/Button.module.css';\nimport { ButtonSize } from '../Button/ButtonSize.csharp';\nimport { ButtonTier } from '../Button/ButtonTier.csharp';\nimport { ButtonType } from '../Button/ButtonType.csharp';\nimport { SvgIcon } from '../SvgIcon/SvgIcon';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { StrictOmit } from '~/Partials/Utils/typeUtils';\nimport { omitProperty } from '~/Partials/Utils/utils';\nimport type { Theme } from '~/Utils/Theme';\nimport styles from './Link.module.css';\nimport { LinkType } from './LinkType.csharp';\nimport { LinkVariant } from './LinkVariant.csharp';\nimport type { StyledLinkViewModel } from './StyledLinkViewModel.csharp';\n\nexport interface BaseLinkProps extends StrictOmit {\n theme?: Theme;\n labelClassName?: string;\n}\n\ninterface LinkWithLabel extends BaseLinkProps {\n label: string;\n}\n\ninterface LinkWithChildren extends BaseLinkProps {\n children: ReactNode;\n}\n\ntype NativeLinkAttributes = Pick<\n React.AnchorHTMLAttributes,\n | 'aria-selected'\n | 'aria-controls'\n | 'aria-expanded'\n | 'role'\n | 'aria-haspopup'\n | 'aria-describedby'\n | 'aria-label'\n | 'tabIndex'\n | 'onClick'\n | 'lang'\n | 'download'\n | 'title'\n>;\n\nexport type LinkProps = (LinkWithChildren | LinkWithLabel) & NativeLinkAttributes;\n\nexport const Link = React.forwardRef>((props, ref) => {\n const { children, theme, ...passThroughProps } = props;\n const { type, buttonType } = passThroughProps;\n\n const filteredProps = 'label' in passThroughProps ? omitProperty(passThroughProps, 'label') : passThroughProps;\n\n const elementToRender = children ?? ('label' in props && props.label);\n\n if (type === LinkType.Button && buttonType !== ButtonType.Clear) {\n return ;\n }\n\n return ;\n});\n\ninterface RawLinkProps extends StrictOmit, NativeLinkAttributes {\n elementToRender: ReactNode;\n}\n\nconst RawLink = React.forwardRef((props, ref) => {\n const {\n elementToRender,\n className,\n labelClassName,\n type = LinkType.Default,\n variant = LinkVariant.Default,\n buttonType = ButtonType.Solid,\n buttonTier = ButtonTier.LegacyPrimary,\n buttonSize = ButtonSize.Large,\n external = false,\n showIsExternal = true,\n ...additionalProps\n } = props;\n\n const getLinkClassName = () => {\n if (type === LinkType.Button) {\n return classNames(\n styles.Link,\n styles['Variant--button'],\n buttonStyles[`Variant--${buttonType}`],\n buttonStyles[`Variant--${buttonTier}`],\n buttonStyles[`Variant--${buttonSize}`],\n className\n );\n }\n\n return classNames(\n styles.Link,\n styles[`Variant--${type}`],\n variant !== 'default' && styles[`Variant--${variant}Variant`],\n className\n );\n };\n\n return (\n \n
    {elementToRender}
    \n {external && showIsExternal && }\n \n );\n});\n\ninterface ThemedButtonLinkProps extends RawLinkProps {\n theme?: Theme;\n}\n\nconst ThemedButtonLink = React.forwardRef((props, ref) => {\n const contextualTheme = useTheme();\n const { className, theme = contextualTheme, ...additionalProps } = props;\n\n const { withBoxShadow, withRoundedCorners } = theme;\n\n return (\n \n );\n});\n","// 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 LinkType {\n\tDefault = \"default\",\n\tButton = \"button\",\n\tClear = \"clear\"\n}\n","// 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 LinkVariant {\n\tDefault = \"default\",\n\tPrimary = \"primary\",\n\tSecondary = \"secondary\",\n\tLightBlack = \"lightBlack\"\n}\n","import * as React from 'react';\nimport type { ReactNode } from 'react';\n\ninterface ListProps extends Pick, 'role' | 'tabIndex' | 'onKeyDown'> {\n items: ReadonlyArray;\n renderItem: (item: T, index: number) => ReactNode;\n className?: string;\n}\n\nconst ListComponent = (props: ListProps, ref?: React.Ref) => {\n const { items, renderItem, className, ...otherProps } = props;\n\n return (\n
      \n {items.map((item, index) => renderItem(item, index))}\n
    \n );\n};\n\ntype GenericForwardRefList = (\n props: ListProps & { ref?: React.Ref }\n) => React.ReactElement;\n\nexport const List = React.forwardRef(ListComponent) as GenericForwardRefList;\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\n\nconst portalContainerId = 'portal-container';\n\nexport const ClientSidePortal: React.FC = props => {\n const { children } = props;\n\n const portalContainer = document.getElementById(portalContainerId);\n const [isAttachedToDOM, setIsAttachedToDOM] = React.useState(false);\n\n if (!portalContainer) {\n throw new Error(`Portal requires element with id '${portalContainerId}' to be present in DOM`);\n }\n\n const elementReference = React.useRef(null);\n\n if (!elementReference.current) {\n elementReference.current = document.createElement('div');\n }\n\n React.useEffect(() => {\n if (elementReference.current) {\n portalContainer.appendChild(elementReference.current);\n setIsAttachedToDOM(true);\n }\n\n return () => {\n if (elementReference.current) {\n portalContainer.removeChild(elementReference.current);\n setIsAttachedToDOM(false);\n }\n };\n }, [portalContainer]);\n\n const portalContent = isAttachedToDOM && children;\n\n return createPortal(portalContent, elementReference.current);\n};\n","import * as React from 'react';\nimport { useIsMounted } from '~/Utils/Hooks/useIsMounted';\nimport { ClientSidePortal } from './ClientSidePortal';\n\nexport const Portal: React.FC = props => {\n const { children } = props;\n const isMounted = useIsMounted();\n\n return isMounted ? {children} : null;\n};\n","import { FocusTrap } from 'focus-trap-react';\nimport type { FC, ReactNode } from 'react';\nimport React from 'react';\nimport { useCloseHandlersWithoutDuplicatedCalls } from '~/Utils/Hooks/useCloseHandlersWithoutDuplicatedCalls';\nimport { ScrollLock } from '~/Utils/ScrollLock/ScrollLock';\n\nexport interface ModalWrapperProps {\n isScrollLocked: boolean;\n isFocusTrapActive: boolean;\n children: (buttonClickClose: () => void) => ReactNode;\n close: () => void;\n shouldHideMainScrollBar?: boolean;\n}\n\nexport const ModalWrapper: FC = props => {\n const { isFocusTrapActive, isScrollLocked, children, close, shouldHideMainScrollBar } = props;\n\n const { focusTrapDeactivationClose, buttonClickClose } = useCloseHandlersWithoutDuplicatedCalls(\n close,\n isFocusTrapActive\n );\n\n return (\n <>\n \n \n {/*\n * TabIndex is needed here, because by default, when clicking on non-focusable element inside modal\n * browser focuses body element: https://github.com/focus-trap/focus-trap/issues/587.\n */}\n
    {children(buttonClickClose)}
    \n \n \n );\n};\n","import * as React from 'react';\nimport { useVariableWithStableRef } from './useVariableWithStableRef';\n\nexport function useCloseHandlersWithoutDuplicatedCalls(close: () => void, isOpened: boolean) {\n const closeRef = useVariableWithStableRef(close);\n const shouldDeactivateInvokeCloseRef = React.useRef(false);\n\n React.useEffect(() => {\n if (isOpened) {\n shouldDeactivateInvokeCloseRef.current = true;\n }\n }, [isOpened]);\n\n const focusTrapDeactivationClose = () => shouldDeactivateInvokeCloseRef.current && closeRef.current?.();\n\n const buttonClickClose = () => {\n shouldDeactivateInvokeCloseRef.current = false;\n close();\n };\n\n return { focusTrapDeactivationClose, buttonClickClose };\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","// extracted by mini-css-extract-plugin\nexport default {\"Shortcut\":\"Ij1dPkiPlaTD3uo6se1x\",\"LinkLabel\":\"LAgZMr1fyvbOVgj7_PsL\",\"Label\":\"MUBYvmBUPBzTdaNqh8X9\",\"VariantType--solid\":\"MA3k0mqYlm33wfnRtySX\",\"Variant--primary\":\"r6nqX1Ys9DUkCgszMyyA\",\"Variant--dark\":\"edl31Fo4Oj6a7JbI7uJy\",\"Variant--light\":\"gpiFyohhsJ86iQrsd1iH\",\"VariantType--outline\":\"IUuKHagAD1zfQdGeQEQh\",\"VariantSize--large\":\"GMFlTxWOaPaSRlpWaL1Q\",\"VariantSize--small\":\"LIgOjT7eIrO9QJlGj7iQ\",\"VariantSize--responsiveFromMediumToSmall\":\"g_72x3ZkbGfcT4_bJWIO\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport { Link } from '../Link/Link';\nimport { LinkType } from '../Link/LinkType.csharp';\nimport type { LinkViewModel } from '../Link/LinkViewModel.csharp';\nimport { SvgIcon } from '../SvgIcon/SvgIcon';\nimport styles from './Shortcut.module.css';\nimport type { ShortcutSize } from './ShortcutSize';\nimport type { ShortcutType } from './ShortcutType';\nimport type { ShortcutVariant } from './ShortcutVariant';\n\nexport interface ShortcutProps {\n type?: ShortcutType;\n variant?: ShortcutVariant;\n size?: ShortcutSize;\n className?: string;\n}\n\nexport const Shortcut: React.FC> = props => {\n const { label, type = 'outline', variant = 'light', size = 'large', className, href } = props;\n\n return (\n \n {label}\n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"ArticleCard\":\"lWrPSruci5J1Pct9eV_o\",\"Picture\":\"Rk4XtUg82KBc97x_ZRFE\",\"Picture--16x9\":\"bdvXUDwmjTRBe1N3RN_T\",\"Picture--3x4\":\"A1reRVHVrrT7Lt9R_8TS\",\"Picture--2x3\":\"QcU24my_eJv9CEdQJFrz\",\"Heading\":\"c_Td561uP1rvuAN4AIF0\",\"Description\":\"upokinR30SLCCFTdntv0\",\"LetterIcon\":\"PVmLk9OPaS3teC0Olseh\",\"Variant--fullInfo\":\"q5hkvvHSqXSnC8c0ON1s\",\"Info\":\"yMY00st3GGEGBJtEvQ73\",\"Variant--smallTypography\":\"b3JSpHCPkJRpylgdiTos\",\"Variant--vertical\":\"g60OJyzhnb0WaPJax3FT\",\"Variant--fullWidth\":\"zdMqUHHFSTVzMR253tYf\",\"AdditionalInfo\":\"jEZzvXBk9gXoSYGacZ1a\",\"Variant--horizontal\":\"r_dYUsqLir_V2WZJ1e1d\",\"PictureContainer\":\"MgyILGUp5ZXfXioJozjl\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { Link } from '~/Partials/Link/Link';\nimport { LinkType } from '~/Partials/Link/LinkType.csharp';\nimport type { BaseImage, PictureProfile } from '~/Partials/Picture/Picture';\nimport { Picture } from '~/Partials/Picture/Picture';\nimport { PictureProfiles } from '~/Partials/Picture/PictureProfiles';\nimport { PicturePlaceholder } from '~/Partials/Picture/Placeholder/PicturePlaceholder';\nimport type { IconName } from '~/Partials/SvgIcon/SvgIcon';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport { useClickProxyAllowingTextSelection } from '~/Utils/Hooks/useClickProxyAllowingTextSelection';\nimport type { Theme } from '~/Utils/Theme';\nimport styles from './ArticleCard.module.css';\nimport type { ArticleCardInfoLayout } from './ArticleCardInfoLayout';\nimport type { ArticleCardLayout } from './ArticleCardLayout';\nimport type { ArticleCardPictureRatio } from './ArticleCardPictureRatio';\nimport type { ArticleCardTypography } from './ArticleCardTypography';\n\nexport interface ArticleCardProps {\n articleUrl: string;\n pictureRatio: ArticleCardPictureRatio;\n title?: HtmlString;\n infoLayout?: ArticleCardInfoLayout;\n image?: BaseImage;\n pictureProfile?: PictureProfile;\n description?: HtmlString;\n layout?: ArticleCardLayout;\n typography?: ArticleCardTypography;\n theme?: Pick;\n}\n\nexport const ArticleCard: React.FC = props => {\n const contextualTheme = useTheme();\n const {\n title,\n articleUrl,\n pictureRatio,\n image,\n description,\n pictureProfile = PictureProfiles.contentCard,\n layout = 'vertical',\n typography = 'large',\n infoLayout = 'limited',\n theme = contextualTheme,\n } = props;\n const { clickableRef, onProxyMouseDown, onProxyMouseUp } = useClickProxyAllowingTextSelection();\n\n const firstLetter = title?.value.charAt(0).toLowerCase() as IconName;\n\n const pictureClassNames = classNames(styles.Picture, styles[`Picture--${pictureRatio}`]);\n\n return (\n \n
    \n {image ? (\n \n ) : (\n \n )}\n
    \n
    \n

    \n \n {title && }\n \n

    \n
    \n {description && }\n {firstLetter && }\n
    \n
    \n
    \n );\n};\n","import classNames from 'classnames';\nimport uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport { Portal } from '~/Partials/Modal/Portal';\nimport type { ModalWrapperProps } from '~/Partials/ModalWrapper/ModalWrapper';\nimport { ModalWrapper } from '~/Partials/ModalWrapper/ModalWrapper';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport { animationDurationMs } from '~/Utils/AnimationsUtils';\nimport { useIsMounted } from '~/Utils/Hooks/useIsMounted';\nimport styles from './Overlay.module.css';\n\nexport interface OverlayProps extends Pick {\n id: string;\n overlayLabel: string;\n isActive: boolean;\n closeLabel: string;\n className?: string;\n}\n\nconst InvisibleDiv: React.FC = props => {\n const { children } = props;\n\n return
    {children}
    ;\n};\n\nexport const Overlay: React.FC> = props => {\n const { id, overlayLabel, isActive, close, closeLabel, children, className } = props;\n\n const [isAnimationInProgress, setIsAnimationInProgress] = React.useState(false);\n const animatedElement = React.useRef(null);\n const backgroundRef = React.useRef(null);\n const isMounted = useIsMounted();\n\n const isOverlayVisible = isActive || isAnimationInProgress;\n\n // Must be set as an inline style because FocusTrap update handler launches before conditional class styles\n // are applied to the element. This handler searches for tabbable element and checks if it's visible\n // (i.e. neither it nor its parents have display:none) - if not it will throw an error.\n const displayMode = isOverlayVisible ? undefined : 'none';\n\n const labelId = uniqueId('overlayLabel_');\n\n // In order to support SSR (so that the content is indexed), we cannot use the Portal component\n // which is solely client-side. Instead, we use a dummy div that is hidden from the user and after\n // the component is mounted, we replace it with the Portal.\n const WrapperElement = isMounted ? Portal : InvisibleDiv;\n\n return (\n \n \n \n
    \n \n setIsAnimationInProgress(true)}\n onExited={() => setIsAnimationInProgress(false)}\n >\n \n {buttonClickClose => (\n
    \n
    \n \n \n {closeLabel}\n \n
    \n
    \n \n {overlayLabel}\n \n {children}\n
    \n
    \n )}\n \n \n
    \n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Overlay\":\"QhFNlQLYGSl_aaOQtwwl\",\"Background\":\"lAKZZQugItoUqTlu8DRV\",\"Inner\":\"po18YUo5kkFOZqsiTnKR\",\"TopBanner\":\"eOdUoHIpgD7QwsaR1kGn\",\"Content\":\"fyYha0cYX3WzsCpMkhUB\",\"CloseButton\":\"sZg2Vy20YIsqTNv9TcIX\"};","import isFunction from 'lodash/isFunction';\nimport uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport type { OverlayProps } from './Overlay';\nimport { Overlay } from './Overlay';\n\nexport interface OverlayContainerProps extends Pick {\n content: TContent;\n openLabel: string;\n}\n\nexport interface OverlayTriggerButtonProps\n extends Required<\n Pick, 'aria-controls' | 'aria-expanded' | 'aria-haspopup' | 'onClick'>\n > {\n 'aria-haspopup': 'dialog';\n onClick: () => void; // Overriden base 'onClick' to not expose the event\n}\n\nexport interface WithOverlayProps extends Pick {\n overlayContent: ((close: () => void, isOpen: boolean) => ReactNode) | ReactNode;\n children: (triggerButtonProps: OverlayTriggerButtonProps) => ReactNode;\n}\n\nexport const WithOverlay: React.FC = props => {\n const { overlayContent, children, ...restProps } = props;\n\n const [isActive, setIsActive] = React.useState(false);\n\n const overlayId = uniqueId('overlay_');\n\n const triggerButtonProps: OverlayTriggerButtonProps = {\n onClick: () => setIsActive(true),\n 'aria-expanded': isActive,\n 'aria-controls': overlayId,\n 'aria-haspopup': 'dialog',\n };\n\n const close = () => setIsActive(false);\n\n return (\n <>\n {children(triggerButtonProps)}\n \n {isFunction(overlayContent) ? overlayContent(close, isActive) : overlayContent}\n \n \n );\n};\n","// When changing this value please remember about changing CSS transition duration accordingly\nexport const animationDurationMs = 400;\n","export const enum MouseButton {\n Left = 0,\n Middle = 1,\n Right = 2,\n}\n","import isEmpty from 'lodash/isEmpty';\nimport * as React from 'react';\nimport { findClosestParent } from '~/Partials/Utils/utils';\nimport { MouseButton } from '~/Utils/MouseButton';\n\nconst isNonEmpty = (selection: Selection | null): selection is Selection => !isEmpty(selection?.toString());\n\nconst isLabel = (element: Element): element is HTMLLabelElement => element.tagName.toLowerCase() === 'label';\n\nconst willBeHandledByAssociatedElement = (eventTarget: Element, clickableElement: HTMLElement) => {\n const nearestLabel = findClosestParent(eventTarget, isLabel);\n\n if (nearestLabel === null) {\n return false;\n }\n\n const associatedElementId = nearestLabel.getAttribute('for');\n\n if (!associatedElementId) {\n return false;\n }\n\n return associatedElementId === clickableElement.id;\n};\n\nconst portalContainerId = 'portal-container';\n\n// Due to event propagation from portal to React tree we have to manually exclude these events.\n// https://github.com/facebook/react/issues/11387\nconst willBubbleOutsideOfPortal = (eventTarget: Node | null, clickableElement: HTMLElement) => {\n let potentialPortalContainer = eventTarget;\n let previouslyCheckedElement: Node | null = null;\n\n while (potentialPortalContainer) {\n if (potentialPortalContainer instanceof HTMLElement && potentialPortalContainer.id === portalContainerId) {\n // If we find a container, we are sure that the previous element is a root element for one of the portals.\n // Then we only check whether the clickable element is part of that particular portal's tree so that\n // multiple portals do not interfere with each other.\n // If previouslyCheckedElement is null it means that event target is portal container itself.\n // Then we treat an event as if it would bubble outside the portal.\n return !previouslyCheckedElement || !previouslyCheckedElement.contains(clickableElement);\n }\n\n previouslyCheckedElement = potentialPortalContainer;\n potentialPortalContainer = potentialPortalContainer.parentElement;\n }\n\n return false;\n};\n\nconst shouldIgnoreEvent = (eventTarget: EventTarget, clickableElement: HTMLElement | null) =>\n clickableElement === null ||\n !(eventTarget instanceof Element) ||\n clickableElement.contains(eventTarget) ||\n willBeHandledByAssociatedElement(eventTarget, clickableElement) ||\n willBubbleOutsideOfPortal(eventTarget, clickableElement);\n\nexport const useClickProxyAllowingTextSelection = () => {\n const clickableRef = React.useRef(null);\n\n const onProxyMouseDown = (event: React.MouseEvent) => {\n if (shouldIgnoreEvent(event.target, clickableRef.current)) {\n return;\n }\n\n if (event.button === MouseButton.Left) {\n const userSelection = getSelection();\n\n if (isNonEmpty(userSelection)) {\n userSelection.removeAllRanges();\n }\n }\n\n if (event.button === MouseButton.Middle) {\n event.preventDefault();\n }\n };\n\n const onProxyMouseUp = (event: React.MouseEvent) => {\n if (shouldIgnoreEvent(event.target, clickableRef.current)) {\n return;\n }\n\n if (event.button === MouseButton.Left) {\n if (isNonEmpty(getSelection())) {\n return;\n }\n\n clickableRef.current?.click();\n clickableRef.current?.focus();\n }\n\n if (event.button === MouseButton.Middle) {\n const eventCopy = new MouseEvent('click', { button: event.button, bubbles: true });\n\n clickableRef.current?.dispatchEvent(eventCopy);\n }\n };\n\n return { clickableRef, onProxyMouseDown, onProxyMouseUp };\n};\n","import { useEffect, useState } from 'react';\n\nexport const useIsMounted = () => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n return isMounted;\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","import * as React from 'react';\nimport { MessageBroker } from '~/Features/Messaging/MessageBroker';\nimport { ScrollLockUpdated } from '~/Utils/ScrollLock/ScrollLockUpdated';\nimport styles from './ScrollLock.module.css';\n\ninterface ScrollLockProps {\n isLocked: boolean;\n shouldHideMainScrollBar?: boolean;\n}\n\nconst lockedClassName = styles['ScrollLock--enabled'];\nconst hiddenScrollBarClassName = styles['ScrollLock--hiddenScrollBar'];\n\nexport const ScrollLock: React.FC = props => {\n const { isLocked, shouldHideMainScrollBar } = props;\n\n const [scrollPosition, setScrollPosition] = React.useState(undefined);\n const scrollPositionRef = React.useRef();\n\n React.useEffect(() => {\n scrollPositionRef.current = scrollPosition;\n }, [scrollPosition]);\n\n React.useEffect(() => {\n const { body } = document;\n const scrollY = window.scrollY || window.pageYOffset;\n\n const lock = (position: number) => {\n // Calculated before adding locked class, because page might not have a scrollbar before that\n const scrollBarWidth = window.innerWidth - body.offsetWidth;\n\n body.classList.add(lockedClassName);\n body.style.top = `-${position}px`;\n\n if (shouldHideMainScrollBar) {\n body.classList.add(hiddenScrollBarClassName);\n body.style.paddingRight = `${scrollBarWidth}px`;\n\n MessageBroker.publish(\n new ScrollLockUpdated({\n isLocked: true,\n isScrollBarVisible: false,\n scrollBarWidth,\n })\n );\n } else {\n MessageBroker.publish(\n new ScrollLockUpdated({\n isLocked: true,\n isScrollBarVisible: true,\n })\n );\n }\n };\n\n const unlock = (position: number) => {\n body.classList.remove(lockedClassName);\n body.style.top = '';\n\n if (shouldHideMainScrollBar) {\n body.classList.remove(hiddenScrollBarClassName);\n body.style.paddingRight = '';\n }\n\n MessageBroker.publish(new ScrollLockUpdated({ isLocked: false }));\n\n window.scrollTo(0, position);\n };\n\n const shouldLock = isLocked && !body.classList.contains(lockedClassName);\n\n if (shouldLock) {\n lock(scrollY);\n setScrollPosition(scrollY);\n } else {\n if (scrollPosition !== undefined) {\n unlock(scrollPosition);\n }\n\n setScrollPosition(undefined);\n }\n\n return () => {\n if (scrollPositionRef.current !== undefined) {\n unlock(scrollPositionRef.current);\n }\n };\n }, [shouldHideMainScrollBar, isLocked]);\n\n return null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"ScrollLock--enabled\":\"Q0v9bFNU46mzd2ECi6p_\",\"ScrollLock--hiddenScrollBar\":\"BqUTYZ5JDn6ke9pgViA1\"};","import { Event } from '~/Features/Messaging/types';\n\ninterface LockedWithScrollBar {\n isLocked: true;\n isScrollBarVisible: true;\n}\n\ninterface LockedWithoutScrollBar {\n isLocked: true;\n isScrollBarVisible: false;\n scrollBarWidth: number;\n}\n\ninterface Unlocked {\n isLocked: false;\n}\n\nexport type ScrollLockState = LockedWithScrollBar | LockedWithoutScrollBar | Unlocked;\n\nexport class ScrollLockUpdated extends Event {\n public static readonly id = 'ScrollLockUpdated';\n\n constructor(public readonly state: ScrollLockState) {\n super(ScrollLockUpdated.id);\n }\n}\n"],"names":["StudyPageLinkListOverlayContent","props","overlayLabel","content","React","className","styles","OverlayContentHeading","HtmlDiv","html","StudyPageLinkList","contextualTheme","useTheme","teaser","items","overlay","variant","theme","withRoundedCorners","richtextVariant","classNames","concat","Teaser","length","List","Items","renderItem","item","id","key","href","Shortcut","_extends","WithOverlay","overlayContent","closeLabel","triggerButtonProps","Button","type","ButtonType","Clear","title","openLabel","SvgIcon","Icon","iconName","JobOpportunitiesSection","heading","studyPageLinkList","featuredArticle","overlayButtonLabel","overlayHeading","overlayCloseLabel","hasFeaturedArticle","articleUrl","overlayProps","undefined","PageSection","PageSectionHeading","Heading","Content","LinkList","ArticleCard","layout","pictureRatio","infoLayout","JobOpportunitiesSectionBlock","linkList","blockVariant","otherProps","_objectWithoutProperties","_excluded","url","description","image","children","HtmlHeading","MessageBroker","subscribe","handler","messageId","handlers","this","MessageHandlersByMessageId","push","unsubscribe","filter","h","publish","message","GetMessageHandlers","forEach","handle","schedulePublish","delay","setTimeout","Message","constructor","Event","ref","passThroughProps","ThemedButton","RawButton","size","tier","htmltype","_excluded2","additionalProps","_excluded3","withBoxShadow","restDivProps","dangerouslySetInnerHTML","__html","value","Link","buttonType","filteredProps","omitProperty","elementToRender","label","LinkType","ThemedButtonLink","RawLink","labelClassName","Default","LinkVariant","Solid","buttonTier","ButtonTier","LegacyPrimary","buttonSize","ButtonSize","Large","external","showIsExternal","buttonStyles","target","rel","Label","ExternalIcon","ListComponent","map","index","portalContainerId","ClientSidePortal","portalContainer","document","getElementById","isAttachedToDOM","setIsAttachedToDOM","Error","elementReference","current","createElement","appendChild","removeChild","portalContent","createPortal","Portal","useIsMounted","ModalWrapper","isFocusTrapActive","isScrollLocked","close","shouldHideMainScrollBar","focusTrapDeactivationClose","buttonClickClose","isOpened","closeRef","useVariableWithStableRef","shouldDeactivateInvokeCloseRef","_closeRef$current","call","useCloseHandlersWithoutDuplicatedCalls","ScrollLock","isLocked","FocusTrap","active","focusTrapOptions","clickOutsideDeactivates","escapeDeactivates","onDeactivate","tabIndex","constructImageSharpUrl","baseUrl","width","Picture","alt","focalPoint","profile","themeDefaultValues","lazyLoading","createPicture","pictureUrl","pictureAlt","pictureProfile","mainSource","sources","sourceSizes","sizes","join","sourceSrcSets","allowedWidths","srcSet","src","defaultWidth","style","objectPosition","point","xPosition","clamp","x","yPosition","y","getPosition","loading","PictureProfiles","threeColumnsElement","fourColumnsElement","sixColumnsElement","fullWidth","horizontal","vertical","callout","contentCard","studyPortfolioItem","galleryItemSquare","galleryItemVertical","galleryItemHorizontal","mainPosterVertical","PicturePlaceholder","logoWrapperClassName","LogoWrapper","Logo","LinkLabel","typography","clickableRef","onProxyMouseDown","onProxyMouseUp","useClickProxyAllowingTextSelection","firstLetter","charAt","toLowerCase","pictureClassNames","role","onMouseDown","onMouseUp","PictureContainer","Info","AdditionalInfo","Description","LetterIcon","InvisibleDiv","display","Overlay","isActive","isAnimationInProgress","setIsAnimationInProgress","animatedElement","backgroundRef","isMounted","isOverlayVisible","displayMode","labelId","uniqueId","WrapperElement","CSSTransition","nodeRef","in","appear","timeout","animationDurationMs","onEnter","onExited","onClick","restProps","setIsActive","overlayId","isFunction","MouseButton","isNonEmpty","selection","isEmpty","toString","isLabel","element","tagName","shouldIgnoreEvent","eventTarget","clickableElement","Element","contains","willBeHandledByAssociatedElement","nearestLabel","findClosestParent","associatedElementId","getAttribute","willBubbleOutsideOfPortal","potentialPortalContainer","previouslyCheckedElement","HTMLElement","parentElement","event","button","Left","userSelection","getSelection","removeAllRanges","Middle","preventDefault","_clickableRef$current","_clickableRef$current2","click","focus","_clickableRef$current3","eventCopy","MouseEvent","bubbles","dispatchEvent","setIsMounted","useState","useEffect","variable","variableRef","useRef","lockedClassName","hiddenScrollBarClassName","scrollPosition","setScrollPosition","scrollPositionRef","body","scrollY","window","pageYOffset","unlock","position","classList","remove","top","paddingRight","ScrollLockUpdated","scrollTo","scrollBarWidth","innerWidth","offsetWidth","add","isScrollBarVisible","lock","state","super"],"sourceRoot":""}