{"version":3,"file":"CalendarBlock.chunk.ce2d5cc37130f9cc1f5f.js","mappings":"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","sources":["webpack://Kristiania.Web/./Features/Partials/CalendarEvent/CalendarEvent.module.css?1953","webpack://Kristiania.Web/./Features/Partials/CalendarEvent/CalendarEvent.tsx","webpack://Kristiania.Web/./Features/Blocks/CalendarBlock/View/Utils/calendarBlockUtils.ts","webpack://Kristiania.Web/./Features/Blocks/CalendarBlock/View/CalendarBlock.module.css?a34a","webpack://Kristiania.Web/./Features/Blocks/CalendarBlock/View/CalendarBlock.tsx","webpack://Kristiania.Web/./Features/Partials/Controls/HtmlDiv.tsx","webpack://Kristiania.Web/./Features/Partials/List/List.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/Utils/MouseButton.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useClickProxyAllowingTextSelection.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"CalendarEvent\":\"oEQhK8JBXLVuvQKG5RoE\",\"Image\":\"e7uH5SSTKFAF4q1CThi9\",\"Location\":\"Qvowk3q3ceqfi8X6O8QM\",\"Time\":\"ZNqQmBQypUtT6HTMRYFA\",\"Body\":\"Hc86mf7VQzuE0sjRszh3\",\"Heading\":\"ZQjkZpCrfIoS_HGXW6SA\",\"Link\":\"yotw7QFgjwSKmxcZyI3X\",\"Header\":\"Yfcw8ymxnbdg0OCRymJM\",\"Description\":\"OPIpMaIbc5uQ5TuH3O8M\"};","import * as React from 'react';\nimport { Link } from '../Link/Link';\nimport { LinkType } from '../Link/LinkType.csharp';\nimport { PicturePlaceholder } from '../Picture/Placeholder/PicturePlaceholder';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { Picture } from '~/Partials/Picture/Picture';\nimport { PictureProfiles } from '~/Partials/Picture/PictureProfiles';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport { useClickProxyAllowingTextSelection } from '~/Utils/Hooks/useClickProxyAllowingTextSelection';\nimport styles from './CalendarEvent.module.css';\nimport type { CalendarEventViewModel } from './CalendarEventViewModel.csharp';\n\nexport const CalendarEvent: React.FC = props => {\n const { heading, description, image, link, timeTable, location } = props;\n\n const { clickableRef, onProxyMouseDown, onProxyMouseUp } = useClickProxyAllowingTextSelection();\n\n return (\n \n {image ? (\n \n ) : (\n \n )}\n
\n
\n

\n \n {heading && }\n \n

\n {location && (\n
\n \n {location}\n
\n )}\n {timeTable && (\n
\n \n \n
\n )}\n
\n {description && }\n
\n \n );\n};\n","import styles from '../CalendarBlock.module.css';\nimport type { LocaleType } from '~/Partials/Locale/Locale';\n\nexport const parseDayKey = (dayKey: string) => {\n const [year, month, day] = dayKey.split('-');\n\n return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n};\n\nexport const displayDay = (date: Date, locale: LocaleType) =>\n date.toLocaleDateString(locale, {\n day: '2-digit',\n });\n\nexport const displayMonth = (date: Date, locale: LocaleType) =>\n date.toLocaleDateString(locale, {\n month: 'long',\n });\n\nexport const getDayLayoutClass = (numberOfEvents: number) => {\n switch (numberOfEvents) {\n case 0:\n case 1:\n return styles['DaysListItem--oneEvent'];\n case 2:\n return styles['DaysListItem--twoEvents'];\n case 3:\n return styles['DaysListItem--threeEvents'];\n default:\n return styles['DaysListItem--fourEvents'];\n }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"CalendarBlock\":\"ifRGTRuVXtjJVYU0RTCC\",\"Inner\":\"SF3p2psDdiCPE_uxQi1X\",\"Heading\":\"kmOo1D056q7O9V6X2RE7\",\"Date\":\"G5nFpqaiV9bawp9_0BVr\",\"Day\":\"f3eBwkj3s8SHLWWtYwcv\",\"Events\":\"fjUpoOjTsdjYGGaTaoXW\",\"Event\":\"HX6wO974dMeHJIhiCO6h\",\"LinkContainer\":\"_1SGu4YjnSfM8qW2jNqkZ\",\"DaysList\":\"C2nnmo3h4d5EjyaFPXLR\",\"DaysListItem\":\"GNFcXUyEY_Nb76OnN1Gm\",\"DaysListItem--oneEvent\":\"qGimXxq44ZXEer_VUZvw\",\"DaysListItem--twoEvents\":\"oj1e8KZuzFVvXYVegiDW\",\"DaysListItem--threeEvents\":\"a9VRQTGiUxH6V92IA_kw\",\"DaysListItem--fourEvents\":\"NmgE8BTsPOcHThJFxg2Z\"};","import classNames from 'classnames';\nimport orderBy from 'lodash/orderBy';\nimport uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport type { CalendarBlockViewModel } from '../ViewModel/CalendarBlockViewModel.csharp';\nimport { getContentLocale } from '~/Features/Configuration/Utils/languageUtils';\nimport { CalendarEvent } from '~/Partials/CalendarEvent/CalendarEvent';\nimport type { CalendarEventViewModel } from '~/Partials/CalendarEvent/CalendarEventViewModel.csharp';\nimport { Link } from '~/Partials/Link/Link';\nimport { List } from '~/Partials/List/List';\nimport styles from './CalendarBlock.module.css';\nimport { displayDay, displayMonth, getDayLayoutClass, parseDayKey } from './Utils/calendarBlockUtils';\n\nexport const CalendarBlock: React.FC = props => {\n const { heading, calendarPageLink, eventsGroupedByDate, translations } = props;\n\n const orderedEvents = orderBy(Object.entries(eventsGroupedByDate), ([startDayKey]) => startDayKey);\n\n const currentLocale = getContentLocale();\n\n const renderEvent = (event: CalendarEventViewModel) => (\n
  • \n \n
  • \n );\n\n const renderDayListItem = ([startDayKey, events]: [string, CalendarEventViewModel[]]) => {\n const dayDate = parseDayKey(startDayKey);\n\n return (\n \n
    \n {displayDay(dayDate, currentLocale)}\n {displayMonth(dayDate, currentLocale)}\n
    \n \n \n );\n };\n\n return (\n
    \n
    \n

    {heading}

    \n \n
    \n {translations.seeAllEvents}\n
    \n
    \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 { 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","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","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"],"names":["CalendarEvent","props","heading","description","image","link","timeTable","location","clickableRef","onProxyMouseDown","onProxyMouseUp","useClickProxyAllowingTextSelection","React","role","onMouseDown","onMouseUp","tabIndex","className","Picture","_extends","profile","PictureProfiles","threeColumnsElement","styles","PicturePlaceholder","variant","Link","ref","href","type","LinkType","Clear","HtmlDiv","html","SvgIcon","iconName","dateTime","getDayLayoutClass","numberOfEvents","CalendarBlock","calendarPageLink","eventsGroupedByDate","translations","orderedEvents","orderBy","Object","entries","_ref","startDayKey","currentLocale","getContentLocale","renderEvent","event","key","uniqueId","List","items","renderItem","_ref2","events","dayDate","dayKey","year","month","day","split","Date","parseInt","parseDayKey","concat","classNames","length","locale","toLocaleDateString","displayMonth","date","displayDay","seeAllEvents","restDivProps","_objectWithoutProperties","_excluded","dangerouslySetInnerHTML","__html","value","ListComponent","otherProps","map","item","index","constructImageSharpUrl","baseUrl","width","url","alt","focalPoint","theme","themeDefaultValues","lazyLoading","withRoundedCorners","createPicture","pictureUrl","pictureAlt","pictureProfile","mainSource","sources","sourceSizes","sizes","join","sourceSrcSets","allowedWidths","srcSet","src","defaultWidth","style","objectPosition","point","xPosition","clamp","x","yPosition","y","getPosition","loading","fourColumnsElement","sixColumnsElement","fullWidth","horizontal","vertical","callout","contentCard","studyPortfolioItem","galleryItemSquare","galleryItemVertical","galleryItemHorizontal","mainPosterVertical","logoWrapperClassName","LogoWrapper","Logo","MouseButton","isNonEmpty","selection","isEmpty","toString","isLabel","element","tagName","toLowerCase","shouldIgnoreEvent","eventTarget","clickableElement","Element","contains","willBeHandledByAssociatedElement","nearestLabel","findClosestParent","associatedElementId","getAttribute","id","willBubbleOutsideOfPortal","potentialPortalContainer","previouslyCheckedElement","HTMLElement","parentElement","target","current","button","Left","userSelection","getSelection","removeAllRanges","Middle","preventDefault","_clickableRef$current","_clickableRef$current2","click","focus","_clickableRef$current3","eventCopy","MouseEvent","bubbles","dispatchEvent"],"sourceRoot":""}