{"version":3,"file":"BookMeetingSectionBlock.chunk.729fbbfcf985cd1fa0f8.js","mappings":"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","sources":["webpack://Kristiania.Web/./Features/ApplicationApplets/Shared/FormikValidationErrorHandler/FormikValidationErrorHandler.tsx","webpack://Kristiania.Web/./Features/ApplicationApplets/Shared/FormikValidationErrorHandler/FormikValidationErrorHandler.module.css?51b2","webpack://Kristiania.Web/./Features/Blocks/BookMeetingSectionBlock/ViewModel/BookMeetingSectionBlockCallToActionType.csharp.ts","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/BookMeetingSection.module.css?edf4","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/GtmSubscription/Events/FormSubmitted.ts","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/GtmSubscription/BookMeetingGtmSubscription.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingCalendar/BookMeetingCalendarExpander/BookMeetingCalendarExpander.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingCalendar/BookMeetingCalendarExpander/BookMeetingCalendarExpander.module.css?642e","webpack://Kristiania.Web/./node_modules/date-fns/getMonth.js","webpack://Kristiania.Web/./node_modules/date-fns/getYear.js","webpack://Kristiania.Web/./node_modules/date-fns/isPast.js","webpack://Kristiania.Web/./node_modules/date-fns/isWeekend.js","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingCalendar/BookMeetingDatePicker/BookMeetingDatePicker.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingCalendar/BookMeetingDatePicker/BookMeetingDatePicker.module.css?d0d4","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingCalendar/BookMeetingCalendar.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingCalendar/BookMeetingCalendarWithFormik.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingForm/Utils/utils.ts","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingForm/BookMeetingForm.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingForm/BookMeetingForm.module.css?ef5c","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingFormConfirmation/BookMeetingFormConfirmation.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/Components/BookMeetingFormConfirmation/BookMeetingFormConfirmation.module.css?a775","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/OverlayContent/BookMeetingOverlayContent.tsx","webpack://Kristiania.Web/./Features/StudyPage/Campus/Sections/BookMeetingSection/BookMeetingSection.tsx","webpack://Kristiania.Web/./Features/Blocks/BookMeetingSectionBlock/View/BookMeetingSectionBlock.tsx","webpack://Kristiania.Web/./Features/Partials/Header/Settings/KristianiaLogoVariant.csharp.ts","webpack://Kristiania.Web/./Features/Configuration/GlobalContextProvider.ts","webpack://Kristiania.Web/./Features/Configuration/Hooks/useFrontendSettings.ts","webpack://Kristiania.Web/./Features/Configuration/Utils/languageUtils.ts","webpack://Kristiania.Web/./Features/ExecutionContext.ts","webpack://Kristiania.Web/./Features/Configuration/Utils/pageContextProvider.ts","webpack://Kristiania.Web/./Features/Layouts/Theme/Context/ThemeContextProvider.tsx","webpack://Kristiania.Web/./Features/Layouts/Theme/Utils/pageThemeProvider.ts","webpack://Kristiania.Web/./Features/Layouts/Theme/Hooks/usePageTheme.ts","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/NotificationBanner/NotificationBannerBase.tsx","webpack://Kristiania.Web/./Features/NotificationBanner/NotificationBannerBase.module.css?b4a6","webpack://Kristiania.Web/./Features/Partials/ActivityIndicator/ActivityIndicator.module.css?6d48","webpack://Kristiania.Web/./Features/Partials/ActivityIndicator/ActivityIndicator.tsx","webpack://Kristiania.Web/./Features/Partials/ApplicationError/ApplicationError.module.css?4bc6","webpack://Kristiania.Web/./Features/Partials/ApplicationError/ApplicationError.tsx","webpack://Kristiania.Web/./Features/Partials/BackgroundMediaSection/BackgroundMediaSection.module.css?b2a6","webpack://Kristiania.Web/./Features/Partials/BackgroundMediaSection/BackgroundMediaSection.tsx","webpack://Kristiania.Web/./Features/Partials/Button/Button.tsx","webpack://Kristiania.Web/./Features/Partials/Button/ButtonSize.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Button/ButtonTier.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Button/ButtonType.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Checkbox/CheckboxVariant.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Collapse/useCollapse.ts","webpack://Kristiania.Web/./Features/Partials/Collapse/Collapse.tsx","webpack://Kristiania.Web/./Features/Partials/Controls/HtmlDiv.tsx","webpack://Kristiania.Web/./Features/Partials/Controls/HtmlHeading.tsx","webpack://Kristiania.Web/./Features/Partials/Controls/Utils/asHtmlString.ts","webpack://Kristiania.Web/./Features/Partials/DatePicker/Components/Controls/Controls.module.css?4bd5","webpack://Kristiania.Web/./Features/Partials/DatePicker/Components/Controls/Controls.tsx","webpack://Kristiania.Web/./Features/Partials/DatePicker/Components/TimeFrameSwitcher/TimeFrameSwitcher.module.css?fc26","webpack://Kristiania.Web/./Features/Partials/DatePicker/Components/TimeFrameSwitcher/TimeFrameSwitcher.tsx","webpack://Kristiania.Web/./Features/Partials/DatePicker/DatePicker.module.css?e9a9","webpack://Kristiania.Web/./Features/Partials/DatePicker/Utils/config.ts","webpack://Kristiania.Web/./Features/Partials/DatePicker/DatePicker.tsx","webpack://Kristiania.Web/./Features/Partials/DatePicker/Components/CalendarDay/CalendarDay.module.css?38bb","webpack://Kristiania.Web/./Features/Partials/DatePickerFloating/FloatingWrapper/FloatingWrapper.tsx","webpack://Kristiania.Web/./Features/Partials/DatePickerFloating/DatePickerFloating.tsx","webpack://Kristiania.Web/./Features/Partials/DatePickerFloating/DatePickerFloating.module.css?7db2","webpack://Kristiania.Web/./Features/Partials/FetchData/axiosWrapper.ts","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFastField.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldCheckbox.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldInputText.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldSelect.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldTextArea.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldsTypes/FormFieldTypeCheckbox.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldsTypes/FormFieldTypeInputText.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldsTypes/FormFieldTypeSelect.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/FormFieldsTypes/FormFieldTypeTextArea.tsx","webpack://Kristiania.Web/./Features/Partials/FormFields/validators.ts","webpack://Kristiania.Web/./Features/Partials/FormLabel/FormLabel.tsx","webpack://Kristiania.Web/./Features/Partials/GoogleTagManager/GtmEventsBase.ts","webpack://Kristiania.Web/./Features/Partials/ImageBackgroundCallToAction/ImageBackgroundCallToAction.module.css?21ff","webpack://Kristiania.Web/./Features/Partials/ImageBackgroundCallToAction/Utils/ImageBackgroundCallToActionUtils.ts","webpack://Kristiania.Web/./Features/Partials/ImageBackgroundCallToAction/ImageBackgroundCallToAction.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/Localization/Language.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Locale/Locale.ts","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/SvgIcon/SvgIcon.tsx","webpack://Kristiania.Web/./Features/Partials/SvgIcon/SvgIconBase.tsx","webpack://Kristiania.Web/./Features/Partials/SvgIcon/Utils/Utils.ts","webpack://Kristiania.Web/./Features/Partials/Utils/HttpRequest/makePostRequest.tsx","webpack://Kristiania.Web/./Features/Partials/Utils/dateUtils.ts","webpack://Kristiania.Web/./Features/Partials/Utils/typeUtils.ts","webpack://Kristiania.Web/./Features/Partials/Utils/usePrevious.ts","webpack://Kristiania.Web/./Features/Partials/Utils/utils.ts","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/FormsUtils.ts","webpack://Kristiania.Web/./Features/Utils/HTMLElements.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useChangeObserver.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useClickOutsideObserver.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","webpack://Kristiania.Web/./Features/Utils/Theme.ts","webpack://Kristiania.Web/./node_modules/clsx/dist/clsx.js","webpack://Kristiania.Web/./node_modules/holidays-norway/dist/index.js","webpack://Kristiania.Web/./Features/Partials/Button/Button.module.css?462a","webpack://Kristiania.Web/./node_modules/moment/locale/ sync nb%7Cen-GB","webpack://Kristiania.Web/./node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","webpack://Kristiania.Web/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://Kristiania.Web/./node_modules/react/jsx-runtime.js","webpack://Kristiania.Web/./node_modules/date-fns/formatISO.js","webpack://Kristiania.Web/./node_modules/date-fns/isSameDay.js","webpack://Kristiania.Web/./node_modules/date-fns/isWithinInterval.js"],"sourcesContent":["import type { FormikErrors } from 'formik';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { NotificationBannerBase } from '../../../NotificationBanner/NotificationBannerBase';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport { usePrevious } from '~/Partials/Utils/usePrevious';\nimport styles from './FormikValidationErrorHandler.module.css';\n\nexport interface FormikValidationErrorHandlerProps {\n children: ReactNode;\n isSubmitting: boolean;\n isValid: boolean;\n errors?: FormikErrors;\n setSelector?: (name: string) => string;\n alertMessage?: (errorsCount: number) => ReactNode;\n}\n\nconst resolveFieldNames = (errors: FormikErrors | undefined, currentPath = '') => {\n const fieldNames: string[] = [];\n\n if (!errors) {\n return fieldNames;\n }\n\n Object.keys(errors).forEach(errorKey => {\n const value = errors[errorKey as keyof TValues];\n\n if (value && typeof value === 'object' && !React.isValidElement(value)) {\n fieldNames.push(...resolveFieldNames(value, `${currentPath}${errorKey}.`));\n } else {\n fieldNames.push(`${currentPath}${errorKey}`);\n }\n });\n\n return fieldNames;\n};\n\nexport const FormikValidationErrorHandler = (props: FormikValidationErrorHandlerProps) => {\n const { children, isSubmitting, isValid, errors, setSelector, alertMessage } = props;\n\n const [keys, setKeys] = React.useState();\n const [isAlertVisible, setIsAlertVisible] = React.useState(false);\n const wrapperRef = React.useRef(null);\n\n const prevIsSubmitting = usePrevious(isSubmitting);\n\n React.useEffect(() => {\n if (!isSubmitting && prevIsSubmitting && !isValid) {\n const fieldsWithError = resolveFieldNames(errors);\n setKeys(fieldsWithError);\n\n if (fieldsWithError.length > 0 && wrapperRef.current) {\n setIsAlertVisible(true);\n\n const key = fieldsWithError[0];\n\n const selector = setSelector ? setSelector(key) : `[name=\"${key}\"]`;\n const firstErrorElement = wrapperRef.current.querySelector(selector) as HTMLElement;\n\n if (firstErrorElement) {\n firstErrorElement.focus();\n }\n }\n }\n }, [isSubmitting, isValid]);\n\n React.useEffect(() => {\n if (isAlertVisible) {\n const timer = setTimeout(() => {\n setIsAlertVisible(false);\n }, 10000);\n\n return () => clearTimeout(timer);\n }\n }, [isAlertVisible]);\n\n return (\n
\n {children}\n {!!alertMessage && keys && keys.length > 0 && (\n \n
\n \n {alertMessage(keys.length)}\n
\n
\n )}\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Icon\":\"JpU3XV14Xj5bdwq9UTbR\"};","// 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 BookMeetingSectionBlockCallToActionType {\n\tButtonWithOverlay = \"buttonWithOverlay\",\n\tLink = \"link\"\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"BookMeetingSection\":\"gczKN2pSjSR2BtQk5kWK\",\"ImageBackgroundSection\":\"dWbYLRuudKTJ6z54CyqI\"};","import { Event } from '~/Features/Messaging/types';\n\nexport class FormSubmitted extends Event {\n constructor(formId: string) {\n super(FormSubmitted.getMessageId(formId));\n }\n\n public static readonly getMessageId = (formId: string) => `FormSubmitted-${formId}`;\n}\n","import type * as React from 'react';\nimport { useMessageHandler } from '~/Features/Messaging/useMessageHandler';\nimport { GtmEventsBase } from '~/Partials/GoogleTagManager/GtmEventsBase';\nimport { FormSubmitted } from './Events/FormSubmitted';\n\ninterface BookMeetingGtmSubscriptionProps {\n formId: string;\n}\n\nexport const BookMeetingGtmSubscription: React.FC = props => {\n const { formId } = props;\n\n useMessageHandler(FormSubmitted.getMessageId(formId), () => {\n GtmEventsBase.pushEvent('Form submitted', { type: 'Book a meeting' });\n });\n\n return null;\n};\n","import classNames from 'classnames';\nimport type { Locale } from 'date-fns';\nimport { format } from 'date-fns/format';\nimport uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport { FormLabel } from '~/Partials/FormLabel/FormLabel';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport styles from './BookMeetingCalendarExpander.module.css';\n\nexport interface BookMeetingCalendarExpanderTranslations {\n expandCalendar: string;\n}\n\ninterface BookMeetingCalendarExpanderProps {\n selectedDate: Date | null;\n translations: BookMeetingCalendarExpanderTranslations;\n setAnchorElement: (e: HTMLDivElement | null) => void;\n onClick: () => void;\n label: ReactNode;\n name: string;\n required?: boolean;\n errorMessage?: ReactNode;\n showErrorMessage?: boolean;\n onBlur?: (e: React.FocusEvent) => void;\n locale?: Locale;\n}\n\nexport const BookMeetingCalendarExpander: React.FC = props => {\n const {\n label,\n name,\n translations,\n setAnchorElement,\n onClick,\n onBlur,\n selectedDate,\n locale,\n errorMessage,\n required = false,\n showErrorMessage = false,\n } = props;\n\n const theme = useTheme();\n\n const formatDate = (date: Date) =>\n format(date, 'P', {\n weekStartsOn: 1,\n locale,\n });\n\n const expandLabelId = uniqueId('expandLabel_');\n\n return (\n \n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"BookMeetingCalendarExpander\":\"bxXYVgnOL3V0Tyuwqhgw\",\"Label\":\"sfSU9kcLmzHz677VbdYA\",\"Inner\":\"fbU5fnWv4_1Ewuz2cT8Z\",\"Input\":\"JnQZ2Djv8KVs_CrRRv5H\",\"Content\":\"ZjUbC9SWrLg1Fsa4cO_A\",\"Icon\":\"O8cJ4_ldT9Uy4ZANBfHK\",\"Error\":\"yfd08ddT9g83oMwEV2A9\",\"Variant--rounded\":\"JVV6XSNWoVBJLQ_YP6Ru\",\"Variant--error\":\"CU1XwAjGWhXYR6w7IbMQ\"};","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMonth} function options.\n */\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date, options) {\n return toDate(date, options?.in).getMonth();\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getYear} function options.\n */\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date, options) {\n return toDate(date, options?.in).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isPast\n * @category Common Helpers\n * @summary Is the given date in the past?\n * @pure false\n *\n * @description\n * Is the given date in the past?\n *\n * @param date - The date to check\n *\n * @returns The date is in the past\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * const result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\nexport function isPast(date) {\n return +toDate(date) < Date.now();\n}\n\n// Fallback for modularized imports:\nexport default isPast;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link isWeekend} function options.\n */\n\n/**\n * @name isWeekend\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend? A weekend is either Saturday (`6`) or Sunday (`0`).\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date falls on a weekend\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * const result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\nexport function isWeekend(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 || day === 6;\n}\n\n// Fallback for modularized imports:\nexport default isWeekend;\n","import type { Locale } from 'date-fns';\nimport { format } from 'date-fns/format';\nimport { getMonth } from 'date-fns/getMonth';\nimport { getYear } from 'date-fns/getYear';\nimport { isPast } from 'date-fns/isPast';\nimport { isSameDay } from 'date-fns/isSameDay';\nimport { isWeekend } from 'date-fns/isWeekend';\nimport holidays from 'holidays-norway';\nimport * as React from 'react';\nimport type { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\nimport { Controls } from '~/Partials/DatePicker/Components/Controls/Controls';\nimport { DatePickerFloating } from '~/Partials/DatePickerFloating/DatePickerFloating';\nimport { getToday } from '~/Partials/Utils/dateUtils';\nimport { capitalize } from '~/Partials/Utils/utils';\nimport styles from './BookMeetingDatePicker.module.css';\n\nexport interface BookMeetingDatePickerPropsTranslations {\n applyLabel: string;\n cancelLabel: string;\n nextMonth: string;\n prevMonth: string;\n chooseDayInMonth: string;\n}\n\nexport interface BookMeetingDatePickerProps {\n open: boolean;\n activeDay: Date | null;\n changeActiveDay: (date: Date | null) => void;\n onClose: () => void;\n onCloseWithCheck: () => void;\n setFloatingElement: (element: HTMLDivElement) => void;\n locale: Locale;\n translations: BookMeetingDatePickerPropsTranslations;\n floatingStyles: React.CSSProperties;\n rootRef: React.RefObject;\n}\n\nexport const BookMeetingDatePicker: React.FC = props => {\n const {\n open,\n onClose,\n onCloseWithCheck,\n setFloatingElement,\n changeActiveDay,\n floatingStyles,\n activeDay,\n rootRef,\n locale,\n translations,\n } = props;\n\n const [selectedDay, setSelectedDay] = React.useState(activeDay);\n const [currentlyVisibleMonth, setCurrentlyVisibleMonth] = React.useState(getToday());\n\n const hasSelectionChanged = !!selectedDay;\n\n const handleAccept = () => {\n hasSelectionChanged && changeActiveDay(selectedDay);\n onClose();\n };\n\n const handlePreviousMonthClick = (datePickerProps: ReactDatePickerCustomHeaderProps) => {\n datePickerProps.decreaseMonth();\n };\n\n const handleNextMonthClick = (datePickerProps: ReactDatePickerCustomHeaderProps) => {\n datePickerProps.increaseMonth();\n };\n\n const handleMonthChange = (month: Date) => {\n if (getMonth(month) !== getMonth(currentlyVisibleMonth)) {\n setCurrentlyVisibleMonth(month);\n\n return;\n }\n\n return;\n };\n\n const nationalHolidays = React.useMemo(\n () => holidays(getYear(currentlyVisibleMonth)).map(holiday => new Date(holiday.date)),\n [currentlyVisibleMonth]\n );\n\n const shouldDayBeDisabled = (date: Date): boolean =>\n isWeekend(date) || isPast(date) || !!nationalHolidays.find(holidayDate => isSameDay(holidayDate, date));\n\n return (\n !shouldDayBeDisabled(day)}\n onChange={setSelectedDay}\n onMonthChange={handleMonthChange}\n floatingConfig={{\n rootRef,\n setFloatingElement,\n onClose,\n open,\n floatingStyles,\n className: styles.Dialog,\n }}\n headerProps={{\n onPreviousTimeFrameClick: headerProps => handlePreviousMonthClick(headerProps),\n onNextTimeFrameClick: headerProps => handleNextMonthClick(headerProps),\n dateRenderer: date =>\n capitalize(\n format(date, 'MMMM u', {\n weekStartsOn: 1,\n locale,\n })\n ),\n translations: {\n nextTimeFrame: translations.nextMonth,\n previousTimeFrame: translations.prevMonth,\n },\n }}\n >\n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Dialog\":\"lDhF7sSWRBGVdflY6bdQ\",\"Calendar\":\"jMZKAkB5JUiI3LUiUF9F\",\"Day\":\"H3r1ZBEg4Dq3SPIdzjYZ\",\"WeekDay\":\"uTb4FJdbr_NrTmOvhmyY\"};","import { useFloating, flip, autoUpdate, shift } from '@floating-ui/react';\nimport { enGB, nb } from 'date-fns/locale';\nimport * as React from 'react';\nimport { getContentLanguage } from '~/Features/Configuration/Utils/languageUtils';\nimport type { FormFieldProps } from '~/Partials/FormFields/FormFieldProps';\nimport { useClickOutsideRefObserver } from '~/Utils/Hooks/useClickOutsideObserver';\nimport type { BookMeetingCalendarExpanderTranslations } from './BookMeetingCalendarExpander/BookMeetingCalendarExpander';\nimport { BookMeetingCalendarExpander } from './BookMeetingCalendarExpander/BookMeetingCalendarExpander';\nimport type { BookMeetingDatePickerPropsTranslations } from './BookMeetingDatePicker/BookMeetingDatePicker';\nimport { BookMeetingDatePicker } from './BookMeetingDatePicker/BookMeetingDatePicker';\n\nexport interface BookMeetingCalendarTranslations\n extends BookMeetingCalendarExpanderTranslations,\n BookMeetingDatePickerPropsTranslations {\n labelFieldDate: string;\n}\n\nexport interface BookMeetingCalendarProps extends FormFieldProps {\n translations: BookMeetingCalendarTranslations;\n required?: boolean;\n initialOpen?: boolean;\n}\n\nexport const BookMeetingCalendar: React.FC = props => {\n const { translations, value: date, onChange, onBlur, required, initialOpen = false, ...inputProps } = props;\n\n const rootRef = React.useRef(null);\n const [isCalendarOpen, setIsCalendarOpen] = React.useState(initialOpen);\n\n const { refs, floatingStyles } = useFloating({\n middleware: [flip(), shift()],\n whileElementsMounted: isCalendarOpen ? autoUpdate : undefined,\n });\n\n const handleActiveDayChange = (activeDay: Date | null) => activeDay && onChange(activeDay);\n\n const handleCalendarClose = () => setIsCalendarOpen(false);\n const handleCalendarCloseWithValueCheck = () => {\n date === null && isCalendarOpen && onChange(null);\n handleCalendarClose();\n };\n\n const handleOnBlur = (e: React.FocusEvent) => {\n !isCalendarOpen && onBlur && onBlur(e);\n };\n\n const handleCalendarExpansion = () => setIsCalendarOpen(!isCalendarOpen);\n\n useClickOutsideRefObserver(rootRef, handleCalendarCloseWithValueCheck);\n\n const language = getContentLanguage();\n const locale = language === 'no' ? nb : enGB;\n\n return (\n
\n \n \n
\n );\n};\n","import * as React from 'react';\nimport { FormFastField } from '~/Partials/FormFields/FormFastField';\nimport type { FormFieldValidate } from '~/Partials/FormFields/validators';\nimport type { BookMeetingCalendarProps } from './BookMeetingCalendar';\nimport { BookMeetingCalendar } from './BookMeetingCalendar';\n\ninterface BookMeetingCalendarWithFormikProps extends Pick {\n validate?: FormFieldValidate;\n validateFieldOnFieldChange?: boolean;\n validateFieldOnFieldBlur?: boolean;\n onAfterBlur?: (val: string) => void;\n}\n\nexport const BookMeetingCalendarWithFormik: React.FC = props => {\n const { name, validate, onAfterBlur, validateFieldOnFieldBlur, validateFieldOnFieldChange, translations } = props;\n\n return (\n \n {fieldProps => {\n const { inputProps, showError, errorMessage } = fieldProps;\n const { value, ...restInputProps } = inputProps;\n\n return (\n \n );\n }}\n \n );\n};\n","import { formatISO } from 'date-fns/formatISO';\nimport { getYear } from 'date-fns/getYear';\nimport { isWithinInterval } from 'date-fns/isWithinInterval';\nimport type { FormikContextType, FormikHelpers } from 'formik';\nimport type { BookMeetingFormState, BookMeetingFormTranslations, TimeSlot } from '../Types/types';\nimport type { BookMeetingRequest } from '~/Features/Api/BookMeeting/Models/Dto/BookMeetingRequest.csharp';\nimport { combineValidators, isEmail, isNotEmptyString, isNotNull, isTrue } from '~/Partials/FormFields/validators';\nimport { makePostRequest } from '~/Partials/Utils/HttpRequest/makePostRequest';\n\nexport const getTimeSlot = (selectedDate: Date | null, timeSlots: TimeSlot[]): { [key: string]: string } => {\n if (!selectedDate) {\n return {};\n }\n\n const reduceSlots = (acc: Record, curr: string) => ({ ...acc, ...{ [curr]: curr } });\n\n const year = getYear(selectedDate);\n\n const findSlots = (slot: TimeSlot) =>\n isWithinInterval(selectedDate, {\n start: new Date(year, slot.from.month - 1, slot.from.day),\n end: new Date(year, slot.to.month - 1, slot.to.day),\n });\n\n const availableSlots = timeSlots.filter(findSlots).flatMap(slot => slot.slots);\n\n return availableSlots.reduce(reduceSlots, {});\n};\n\nexport const updateTimeSlotsFieldOnDatePick = (\n formik: FormikContextType,\n values: BookMeetingFormState\n): boolean => {\n const { values: updateValues, touched } = formik;\n const shouldUpdate =\n updateValues.date !== values.date ||\n updateValues.timeSlot !== values.timeSlot ||\n (touched.timeSlot && !updateValues.timeSlot) ||\n updateValues.timeSlot;\n\n return !!shouldUpdate;\n};\n\nexport const getValidators = (translations: BookMeetingFormTranslations) => ({\n firstName: combineValidators([[isNotEmptyString, translations.fieldIsRequired]]),\n lastName: combineValidators([[isNotEmptyString, translations.fieldIsRequired]]),\n phoneNumber: combineValidators([[isNotEmptyString, translations.fieldIsRequired]]),\n email: combineValidators([\n [isNotEmptyString, translations.fieldIsRequired],\n [isEmail, translations.emailIsInvalidError],\n ]),\n isChecked: combineValidators([[isTrue, translations.fieldIsRequired]]),\n attendance: combineValidators([[isNotEmptyString, translations.fieldIsRequired]]),\n date: combineValidators([[isNotNull, translations.fieldIsRequired]]),\n timeSlot: combineValidators([[isNotEmptyString, translations.fieldIsRequired]]),\n});\n\nexport const onSubmit = async (\n data: BookMeetingFormState,\n formikHelpers: FormikHelpers,\n submitUrl: string,\n onSubmitted: () => void,\n genericError: string\n) => {\n const {\n setStatus: formikSetStatus,\n setSubmitting: formikSetSubmitting,\n resetForm: formikResetForm,\n } = formikHelpers;\n formikSetStatus('');\n\n const request: BookMeetingRequest = {\n ...data,\n date: data.date ? formatISO(data.date, { representation: 'date' }) : '',\n sourceUrl: window.location.href,\n };\n const response = await makePostRequest(submitUrl, request);\n\n switch (response.state) {\n case 'Success':\n onSubmitted();\n formikSetStatus('');\n formikResetForm();\n break;\n case 'ClientError':\n formikSetStatus(response.message || genericError);\n break;\n\n default:\n formikSetStatus(genericError);\n }\n\n formikSetSubmitting(false);\n};\n","import type { FormikHelpers } from 'formik';\nimport { Form, Formik } from 'formik';\nimport throttle from 'lodash/throttle';\nimport * as React from 'react';\nimport { BookMeetingCalendarWithFormik } from '../BookMeetingCalendar/BookMeetingCalendarWithFormik';\nimport { FormikValidationErrorHandler } from '~/Features/ApplicationApplets/Shared/FormikValidationErrorHandler/FormikValidationErrorHandler';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport { ActivityIndicator } from '~/Partials/ActivityIndicator/ActivityIndicator';\nimport { ApplicationError } from '~/Partials/ApplicationError/ApplicationError';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonSize } from '~/Partials/Button/ButtonSize.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { FormFieldCheckbox } from '~/Partials/FormFields/FormFieldCheckbox';\nimport { FormFieldInputText } from '~/Partials/FormFields/FormFieldInputText';\nimport { FormFieldSelect } from '~/Partials/FormFields/FormFieldSelect';\nimport { FormFieldTextArea } from '~/Partials/FormFields/FormFieldTextArea';\nimport { formSubmitThrottleWaitMs } from '~/Utils/FormsUtils';\nimport { emDash } from '~/Utils/HTMLElements';\nimport styles from './BookMeetingForm.module.css';\nimport type { BookMeetingFormState, BookMeetingFormTranslations, TimeSlot } from './Types/types';\nimport { getTimeSlot, getValidators, onSubmit, updateTimeSlotsFieldOnDatePick } from './Utils/utils';\n\nexport interface BookMeetingFormProps {\n heading: string;\n submitUrl: string;\n termsAndConditionsText: HtmlString;\n onSubmitted: () => void;\n translations: BookMeetingFormTranslations;\n attendanceOptions: {\n [key: string]: string;\n };\n timeSlots: TimeSlot[];\n}\n\nexport const BookMeetingForm: React.FC = props => {\n const { heading, termsAndConditionsText, translations, submitUrl, onSubmitted, attendanceOptions, timeSlots } =\n props;\n\n const validations = getValidators(translations);\n\n const handleSubmit = React.useMemo(\n () =>\n throttle(\n async (\n data: BookMeetingFormState,\n formikHelpers: FormikHelpers,\n formSubmitUrl: string,\n onSubmittedFunction: () => void,\n formTranslations: BookMeetingFormTranslations\n ) => {\n await onSubmit(\n data,\n formikHelpers,\n formSubmitUrl,\n onSubmittedFunction,\n formTranslations.genericError\n );\n },\n formSubmitThrottleWaitMs\n ),\n []\n );\n\n const initialFormValues: BookMeetingFormState = React.useMemo(\n () => ({\n firstName: '',\n lastName: '',\n email: '',\n phone: '',\n attendance: '',\n date: null,\n timeSlot: '',\n areTermsAccepted: false,\n comment: '',\n }),\n []\n );\n\n const renderCommentLabel = () => (\n \n {translations.labelFieldComment}\n \n {emDash} {translations.fieldIsOptional}\n \n \n );\n\n return (\n
\n

{heading}

\n \n initialValues={initialFormValues}\n validateOnBlur={false}\n onSubmit={(values, formikHelpers) => {\n handleSubmit(values, formikHelpers, submitUrl, onSubmitted, translations);\n }}\n >\n {({ errors, isSubmitting, isValid, status, values }) => (\n \n isSubmitting={isSubmitting}\n isValid={isValid}\n errors={errors}\n >\n
\n
\n
\n \n \n
\n \n \n \n
\n \n \n updateTimeSlotsFieldOnDatePick(update.formik, values)\n }\n disabled={values.date === null}\n validate={validations.timeSlot}\n validateFieldOnFieldBlur\n />\n
\n \n
\n
\n }\n className={styles.TermsCheckbox}\n />\n \n {translations.labelSubmitButton}\n \n
\n {status && }\n \n \n \n )}\n \n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"FullName\":\"vTxD61KhJRSAWTCGN1bc\",\"Heading\":\"ySYrQMnPnS9W2G43Lseq\",\"PersonalDetailsSection\":\"P7w757rHNThNvBDC4uXP\",\"SubmitSection\":\"zpKhNj42FzgEgt0fnDtl\",\"DateAndTime\":\"hLrQKLp_zijTaawOtezz\",\"TermsCheckbox\":\"il9Y4GTeIQAZq8LcoDyI\",\"SubmitButton\":\"ejtj2fTYLZHElsaIUdPj\",\"Optional\":\"Axi3ikkQ4YUDndcWFqyN\"};","import React from 'react';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonSize } from '~/Partials/Button/ButtonSize.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport styles from './BookMeetingFormConfirmation.module.css';\n\nexport interface BookMeetingFormConfirmationProps {\n heading: string;\n buttonLabel: string;\n onClick: () => void;\n confirmationMessage?: HtmlString;\n}\n\nexport const BookMeetingFormConfirmation: React.FC<\n React.PropsWithChildren\n> = props => {\n const { heading, confirmationMessage, buttonLabel, onClick } = props;\n\n return (\n
\n

{heading}

\n
\n \n {confirmationMessage && }\n \n {buttonLabel}\n \n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Content\":\"_HIaZ_ZHDc8_t56g3XaO\",\"Heading\":\"GFGwWJklzx3pBlaUFPNh\",\"SvgIcon\":\"kRvAQDbqyVQHxiESotlA\",\"ConfirmationMessage\":\"GcGwXRZzusjGpIOrAxAX\",\"Button\":\"mv8uTEyCdDrM2I4dZiKL\"};","import React from 'react';\nimport { FormSubmitted } from '../GtmSubscription/Events/FormSubmitted';\nimport { MessageBroker } from '~/Features/Messaging/MessageBroker';\nimport type { StrictOmit } from '~/Partials/Utils/typeUtils';\nimport type { BookMeetingFormProps } from './Components/BookMeetingForm/BookMeetingForm';\nimport { BookMeetingForm } from './Components/BookMeetingForm/BookMeetingForm';\nimport type { BookMeetingFormConfirmationProps } from './Components/BookMeetingFormConfirmation/BookMeetingFormConfirmation';\nimport { BookMeetingFormConfirmation } from './Components/BookMeetingFormConfirmation/BookMeetingFormConfirmation';\n\nexport interface BookMeetingOverlayContentProps\n extends StrictOmit,\n StrictOmit {\n formId: string;\n formHeading: string;\n confirmationHeading: string;\n confirmationButtonLabel: string;\n onClose: () => void;\n}\n\nexport const BookMeetingOverlayContent: React.FC> = props => {\n const { formHeading, confirmationHeading, confirmationButtonLabel, onClose, formId, ...restProps } = props;\n\n const [isSubmitted, setIsSubmitted] = React.useState(false);\n\n const handleSubmit = () => setIsSubmitted(true);\n\n React.useEffect(() => {\n if (isSubmitted) {\n MessageBroker.publish(new FormSubmitted(formId));\n }\n }, [isSubmitted]);\n\n if (isSubmitted) {\n return (\n \n );\n }\n\n return ;\n};\n","import React from 'react';\nimport type { WithOverlayProps } from '~/Features/StudyPage/Campus/Components/Overlay/WithOverlay';\nimport { WithOverlay } from '~/Features/StudyPage/Campus/Components/Overlay/WithOverlay';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport { asHtmlString } from '~/Partials/Controls/Utils/asHtmlString';\nimport type {\n ImageBackgroundCallToActionLinkProps,\n ImageBackgroundCallToActionProps,\n} from '~/Partials/ImageBackgroundCallToAction/ImageBackgroundCallToAction';\nimport { ImageBackgroundCallToAction } from '~/Partials/ImageBackgroundCallToAction/ImageBackgroundCallToAction';\nimport type { StrictOmit } from '~/Partials/Utils/typeUtils';\nimport { assertNever } from '~/Partials/Utils/typeUtils';\nimport styles from './BookMeetingSection.module.css';\nimport { BookMeetingGtmSubscription } from './GtmSubscription/BookMeetingGtmSubscription';\nimport type { BookMeetingOverlayContentProps } from './OverlayContent/BookMeetingOverlayContent';\nimport { BookMeetingOverlayContent } from './OverlayContent/BookMeetingOverlayContent';\n\ninterface ButtonWithOverlayCTAProps {\n type: 'button';\n label: string;\n overlayContent: StrictOmit;\n translations: Pick;\n}\n\ninterface LinkCTAProps extends StrictOmit {\n type: 'link';\n}\n\nexport type BookMeetingSectionCTAProps = ButtonWithOverlayCTAProps | LinkCTAProps;\n\ninterface BookMeetingSectionProps extends Pick {\n id: string;\n callToAction: BookMeetingSectionCTAProps;\n teaser?: HtmlString;\n heading?: HtmlString;\n}\n\nexport const BookMeetingSection: React.FC> = props => {\n const { id, callToAction, teaser, heading, ...restProps } = props;\n\n const renderCallToAction = () => {\n switch (callToAction.type) {\n case 'button':\n const { label, overlayContent, translations } = callToAction;\n\n return (\n <>\n \n (\n \n )}\n >\n {triggerButtonProps => (\n \n )}\n \n \n );\n case 'link':\n return (\n \n );\n\n default:\n return assertNever(callToAction);\n }\n };\n\n return (\n
\n {renderCallToAction()}\n
\n );\n};\n","import * as React from 'react';\nimport { BookMeetingSectionBlockCallToActionType } from '../ViewModel/BookMeetingSectionBlockCallToActionType.csharp';\nimport type { BookMeetingSectionBlockViewModel } from '../ViewModel/BookMeetingSectionBlockViewModel.csharp';\nimport type { BookMeetingSectionCTAProps } from '~/Features/StudyPage/Campus/Sections/BookMeetingSection/BookMeetingSection';\nimport { BookMeetingSection } from '~/Features/StudyPage/Campus/Sections/BookMeetingSection/BookMeetingSection';\nimport { assertNever } from '~/Partials/Utils/typeUtils';\n\nexport const BookMeetingSectionBlock: React.FC> = props => {\n const {\n translations,\n bookingConfirmationHeading,\n bookingConfirmationMessage,\n id,\n callToActionType,\n callToActionLabel,\n callToActionLink,\n submitUrl,\n formHeading,\n attendanceOptions,\n timeSlots,\n termsAndConditionsText,\n ...commonProps\n } = props;\n\n const getCallToActionProps = (): BookMeetingSectionCTAProps => {\n switch (callToActionType) {\n case BookMeetingSectionBlockCallToActionType.ButtonWithOverlay:\n return {\n type: 'button',\n label: callToActionLabel,\n translations: {\n closeLabel: translations.labelCloseOverlayButton,\n overlayLabel: translations.labelOverlay,\n },\n overlayContent: {\n formId: id,\n submitUrl,\n formHeading,\n attendanceOptions,\n timeSlots,\n termsAndConditionsText,\n confirmationHeading: bookingConfirmationHeading,\n confirmationMessage: bookingConfirmationMessage,\n confirmationButtonLabel: translations.labelBookingConfirmationButton,\n translations: {\n ...translations,\n emailIsInvalidError: translations.invalidEmail,\n },\n },\n };\n case BookMeetingSectionBlockCallToActionType.Link:\n return {\n type: 'link',\n ...callToActionLink,\n };\n default:\n assertNever(callToActionType);\n }\n };\n\n return ;\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 KristianiaLogoVariant {\n\tDefault = \"default\",\n\tPride = \"pride\",\n\tAnimated = \"animated\"\n}\n","import type { GlobalContext } from '~/Features/Configuration/GlobalContext.csharp';\nimport { CheckboxVariant } from '~/Partials/Checkbox/CheckboxVariant.csharp';\nimport { KristianiaLogoVariant } from '~/Partials/Header/Settings/KristianiaLogoVariant.csharp';\nimport { mapToLanguageCode } from '~/Partials/Locale/Locale';\n\nexport class GlobalContextProvider {\n private static getProperty(selector: (configuration: GlobalContext) => TType): TType | undefined {\n // GLOBAL_CONTEXT can be null when rendering single property inside inline edit view in Episerver.\n // But we don't have to pay too much attention to it because page re-renders within page content afterward.\n if (typeof GLOBAL_CONTEXT === 'undefined' || GLOBAL_CONTEXT === null) {\n return undefined;\n }\n\n return selector(GLOBAL_CONTEXT);\n }\n\n static getLogoSettings() {\n return (\n GlobalContextProvider.getProperty(config => config.logoSettings) ?? {\n headerVariant: KristianiaLogoVariant.Default,\n defaultAltText: 'Kristiania logo',\n }\n );\n }\n\n static getFrontendSettings() {\n return (\n GlobalContextProvider.getProperty(config => config.frontendSettings) ?? {\n checkboxVariant: CheckboxVariant.Default,\n }\n );\n }\n\n static getContentLanguage() {\n return mapToLanguageCode(GlobalContextProvider.getProperty(config => config.contentLanguage) ?? 'no');\n }\n\n static getMyPageGlobalConfiguration() {\n return GlobalContextProvider.getProperty(config => config.myPageGlobalConfiguration);\n }\n\n static isSpaPage() {\n return !!GlobalContextProvider.getMyPageGlobalConfiguration();\n }\n\n static isModernPage() {\n return !!GlobalContextProvider.getProperty(config => config.isModernPage);\n }\n}\n","import { useMemo } from 'react';\nimport { GlobalContextProvider } from '~/Features/Configuration/GlobalContextProvider';\n\nexport const useFrontendSettings = () => useMemo(() => GlobalContextProvider.getFrontendSettings(), []);\n","import { GlobalContextProvider } from '~/Features/Configuration/GlobalContextProvider';\nimport { mapToLocale } from '~/Partials/Locale/Locale';\n\nexport const getContentLanguage = () => GlobalContextProvider.getContentLanguage();\n\nexport const getContentLocale = () => mapToLocale(getContentLanguage());\n","class ExecutionContext {\n public static IsServerSide(): boolean {\n // Episerver Spa Core defines window shim on server side but does not assign `window` property to itself\n return typeof window === 'undefined' || typeof window.window === 'undefined';\n }\n\n public static ThrowIfServerSide(): void {\n if (ExecutionContext.IsServerSide()) {\n throw new Error(\"Method shouldn't be used in server side\");\n }\n }\n}\n\nexport default ExecutionContext;\n","import { GlobalContextProvider } from '../GlobalContextProvider';\nimport type { PageContext } from './PageContext';\n\nexport const getPageContext = (): PageContext | undefined => {\n if (GlobalContextProvider.isSpaPage()) {\n return 'spa';\n }\n\n if (GlobalContextProvider.isModernPage()) {\n return 'modernPage';\n }\n\n return 'public';\n};\n","import * as React from 'react';\nimport { usePageTheme } from '../Hooks/usePageTheme';\nimport type { Theme } from '~/Utils/Theme';\n\nconst ThemeContext = React.createContext(null);\n\nexport interface ThemeContextProviderProps {\n theme: Theme;\n}\n\nexport const ThemeContextProvider: React.FC> = props => {\n const { theme, children } = props;\n\n return {children};\n};\n\nexport const useTheme = () => {\n const context = React.useContext(ThemeContext);\n const pageTheme = usePageTheme();\n\n if (!context) {\n // Fallback to page-level theme as we don't have a top level component that we can use to wrap the entire tree\n return pageTheme;\n }\n\n return context;\n};\n","import type { PageContext } from '~/Features/Configuration/Utils/PageContext';\nimport { themeDefaultValues, themeModernValues } from '~/Utils/Theme';\n\nexport const getPageTheme = (context?: PageContext) => {\n switch (context) {\n case 'spa':\n case 'modernPage':\n return themeModernValues;\n default:\n return themeDefaultValues;\n }\n};\n","import { getPageTheme } from '../Utils/pageThemeProvider';\nimport { getPageContext } from '~/Features/Configuration/Utils/pageContextProvider';\n\nexport const usePageTheme = () => getPageTheme(getPageContext());\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 * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { Collapse } from '~/Partials/Collapse/Collapse';\nimport styles from './NotificationBannerBase.module.css';\n\ninterface NotificationBannerBaseProps {\n children: ReactNode;\n isOpen: boolean;\n}\n\nexport const NotificationBannerBase: React.FC> = props => {\n const { children, isOpen } = props;\n\n return (\n \n
{children}
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"NotificationBannerBase\":\"jnnqikwEV6hYUuch7WFw\",\"Inner\":\"MTQs4ICCwpVyGDbvnbWn\"};","// 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","// extracted by mini-css-extract-plugin\nexport default {\"ApplicationError\":\"TqKfLGoeJstRQJlf7IHT\",\"Heading\":\"n2pOcYiFNDiNzBjdPbor\",\"Body\":\"K4Rvkc1MBSsVzDNuhYAB\",\"Variant--withoutHeading\":\"TMOLHKbEVRY_k6ERzYhy\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { TextOrComponent } from '~/Features/Types/TextOrComponent';\nimport { HtmlDiv } from '~/Partials/Controls/HtmlDiv';\nimport { asHtmlString } from '~/Partials/Controls/Utils/asHtmlString';\nimport styles from './ApplicationError.module.css';\n\nexport interface ApplicationErrorProps {\n body: TextOrComponent;\n heading?: string;\n className?: string;\n}\n\nexport const ApplicationError: React.FC> = React.memo(props => {\n const { heading, body, className } = props;\n\n return (\n
\n {heading &&

{heading}

}\n {body && typeof body === 'string' ? (\n \n ) : (\n {body}\n )}\n
\n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"BackgroundMediaSection\":\"BHZEJUDSIPpKa0oPrsHx\",\"Wrapper\":\"bLAdaCckoHBaiIC97_jU\",\"Wrapper--grid\":\"uwdDbr8iIUnkWFMVwpIF\",\"Content\":\"eh99tHo126OqTC2jRbLr\",\"Media\":\"dabmDRgUTnFwXNJ_grkU\",\"PlaceholderLogoWrapper\":\"ao2rID4I7z5HbixkFtUo\",\"Variant--withCaption\":\"HX85CpiEVtHWECQTXiNh\",\"Figure\":\"jEirhd8enG4d6AOhcLDQ\",\"Variant--fullDark\":\"xy4iFrsV2Sz8Qp0apyvq\",\"Variant--fullLight\":\"mpJQGg0dDaijqjuWkH6Z\",\"Variant--topToBottomGreyGradient\":\"AAvVhuWR4ZqvJONVflO9\",\"Variant--leftToRightDarkGreyGradient\":\"HKWJI6twVeF2fy35QptA\",\"Variant--upperTransparentLineGradient\":\"X4a8TM_Yrz4vY4qRwPCe\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { BaseImage } from '../Picture/Picture';\nimport { Picture } from '../Picture/Picture';\nimport { PictureProfiles } from '../Picture/PictureProfiles';\nimport { PicturePlaceholder } from '~/Partials/Picture/Placeholder/PicturePlaceholder';\nimport type { BackgroundMediaLayoutVariant } from './BackgroundMediaLayoutVariant';\nimport type { BackgroundMediaOverlayVariant } from './BackgroundMediaOverlayVariant';\nimport styles from './BackgroundMediaSection.module.css';\n\nexport interface BackgroundMediaSectionProps {\n id?: string;\n image?: BaseImage;\n video?: string;\n caption?: string;\n author?: string;\n overlayVariant?: BackgroundMediaOverlayVariant;\n layout?: BackgroundMediaLayoutVariant;\n className?: string;\n wrapperClassName?: string;\n contentClassName?: string;\n mediaClassName?: string;\n}\n\nexport const BackgroundMediaSection: React.FC> = props => {\n const {\n children,\n id,\n image,\n video,\n caption,\n author,\n className,\n wrapperClassName,\n contentClassName,\n mediaClassName,\n layout = 'default',\n overlayVariant = 'topToBottomGreyGradient',\n } = props;\n\n const getMediaElement = () => {\n const mediaClass = classNames(styles.Media, mediaClassName);\n\n if (video) {\n return (\n
\n
\n );\n }\n\n if (image) {\n return ;\n }\n\n return ;\n };\n\n const getMediaElementWithCaption = () => {\n const mediaElement = getMediaElement();\n\n return (\n
\n {mediaElement}\n
\n {caption && {caption}}\n {author && {author}}\n
\n
\n );\n };\n\n const mediaContent = caption || author ? getMediaElementWithCaption() : getMediaElement();\n\n return (\n \n \n
{children}
\n \n {mediaContent}\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","// 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 ButtonSize {\n\tXSmall = \"xSmall\",\n\tResponsiveFromXSmallToSmall = \"responsiveFromXSmallToSmall\",\n\tSmall = \"small\",\n\tResponsiveFromSmallToMedium = \"responsiveFromSmallToMedium\",\n\tResponsiveFromSmallToLarge = \"responsiveFromSmallToLarge\",\n\tResponsiveFromMediumToSmall = \"responsiveFromMediumToSmall\",\n\tMedium = \"medium\",\n\tResponsiveFromMediumToLarge = \"responsiveFromMediumToLarge\",\n\tResponsiveFromLargeToSmall = \"responsiveFromLargeToSmall\",\n\tLarge = \"large\",\n\tResponsiveFromLargeToXLarge = \"responsiveFromLargeToXLarge\",\n\tXLarge = \"xLarge\"\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 ButtonTier {\n\tPrimary = \"primary\",\n\tSecondary = \"secondary\",\n\tTertiary = \"tertiary\",\n\tRed = \"red\",\n\tLegacyPrimary = \"legacyPrimary\"\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 ButtonType {\n\tSolid = \"solid\",\n\tOutline = \"outline\",\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 CheckboxVariant {\n\tDefault = \"default\",\n\tCheckmark = \"checkmark\"\n}\n","import type { RefObject } from 'react';\nimport { useEffect, useState } from 'react';\nimport { useIsMounted } from '~/Utils/Hooks/useIsMounted';\n\nexport interface UseCollapseProps {\n isOpen: boolean;\n content: RefObject;\n}\n\n// In case of nested collapse components, we need to inherit the visibility from the parent so that\n// focusable children inside expanded collapses nested inside collapsed collapses are not focusable.\n// Unfortunately, jest is not able to simulate this behavior thus we are not able to test it.\ntype InheritVisibility = undefined;\n\ntype Visibility = 'hidden' | InheritVisibility;\ntype Overflow = 'hidden' | 'visible';\n\nconst getHeight = (content: RefObject) => {\n if (content && content.current && content.current.scrollHeight) {\n return `${content.current.scrollHeight}px`;\n }\n\n return '0px';\n};\n\nexport const useCollapse = (props: UseCollapseProps) => {\n const { isOpen, content } = props;\n\n const [height, setHeight] = useState(isOpen ? 'auto' : '0');\n const [overflow, setOverflow] = useState(isOpen ? 'visible' : 'hidden');\n const [visibility, setVisibility] = useState(isOpen ? undefined : 'hidden');\n const isMounted = useIsMounted();\n\n const toggleStyles = () => {\n if (isOpen) {\n setHeight('auto');\n setOverflow('visible');\n setVisibility(undefined);\n } else {\n setVisibility('hidden');\n }\n };\n\n useEffect(() => {\n if (isOpen) {\n setVisibility(undefined);\n\n if (!isMounted) {\n setHeight('auto');\n setOverflow('visible');\n } else {\n setHeight(getHeight(content));\n }\n } else if (isMounted) {\n setHeight(getHeight(content));\n\n // The magic:\n // Setting collapsed style after setting height to enable smooth transition based on height.\n // It must be wrapped with setTimeout to ensure that the state update is not batched with the height update.\n setTimeout(() => {\n window.requestAnimationFrame(() => {\n setOverflow('hidden');\n setHeight('0');\n });\n });\n }\n }, [isOpen]);\n\n return {\n toggleStyles,\n style: {\n overflow,\n visibility,\n height,\n },\n };\n};\n","/*\n * Based on: https://github.com/SparebankenVest/react-css-collapse\n */\n\nimport * as React from 'react';\nimport type { AriaAttributes } from 'react';\nimport { useCollapse } from './useCollapse';\n\nexport interface CollapseProps extends AriaAttributes {\n children: React.ReactNode;\n isOpen?: boolean;\n onRest?: () => void;\n className?: string;\n withMarginTransition?: boolean;\n}\n\nexport const Collapse: React.FC = props => {\n const { children, onRest, isOpen = false, className, withMarginTransition, ...rest } = props;\n\n const content = React.useRef(null);\n\n const { toggleStyles, style } = useCollapse({\n isOpen,\n content,\n });\n\n const onTransitionEnd = (event: React.TransitionEvent) => {\n if (event.target === content.current && event.propertyName === 'height') {\n toggleStyles();\n\n onRest?.();\n }\n };\n\n const styles = {\n willChange: withMarginTransition ? 'height, margin' : 'height',\n ...style,\n };\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 type { HtmlString } from '~/Features/Types/HtmlString.csharp';\n\nexport const asHtmlString = (content: string): HtmlString => ({ value: content });\n","// extracted by mini-css-extract-plugin\nexport default {\"Controls\":\"j3u1sD9wnIEP3wDjlG6l\",\"ButtonContainer\":\"ODSJc3N0ryEeD9eaQ2PW\",\"Button\":\"iOjPB6F65AxLDfJWhAPD\"};","import * as React from 'react';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonSize } from '~/Partials/Button/ButtonSize.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport styles from './Controls.module.css';\n\nexport interface ControlsTranslations {\n accept: string;\n cancel: string;\n}\n\nexport interface ControlsProps {\n onAccept: () => void;\n onCancel: () => void;\n translations: ControlsTranslations;\n isAcceptActive?: boolean;\n}\n\nexport const Controls: React.FC = props => {\n const { isAcceptActive, onAccept, onCancel, translations } = props;\n\n return (\n
\n
\n \n {translations.cancel}\n \n
\n
\n \n {translations.accept}\n \n
\n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"TimeFrameSwitcher\":\"kg7ZsH1lNlWaOdniDrOC\",\"Button\":\"_eIi6ngQsanuFCH51NY0\",\"ButtonIcon\":\"uTkf6hB8CM1xO9qtDddw\",\"Variant--withWeekNumbers\":\"aqDAbCpuw0IxuaBeAJPc\",\"DayName\":\"_yovy4D2QDHxmaEu9Z2f\",\"CurrentDateLabel\":\"cmXdavJGCWNMshfdflw0\"};","import classNames from 'classnames';\nimport { isSameDay } from 'date-fns/isSameDay';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonSize } from '~/Partials/Button/ButtonSize.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport { useChangeObserver } from '~/Utils/Hooks/useChangeObserver';\nimport styles from './TimeFrameSwitcher.module.css';\n\nexport interface TimeFrameSwitcherTranslations {\n nextTimeFrame: string;\n previousTimeFrame: string;\n}\n\nexport interface TimeFrameSwitcherProps {\n customHeaderProps: TCustomHeaderProps;\n dateRenderer: (date: Date) => ReactNode;\n onPreviousTimeFrameClick: (props: TCustomHeaderProps) => void;\n onNextTimeFrameClick: (props: TCustomHeaderProps) => void;\n translations: TimeFrameSwitcherTranslations;\n onSelectionChanged?: (props: TCustomHeaderProps) => void;\n withWeekNumbers?: boolean;\n className?: string;\n}\n\nexport const TimeFrameSwitcher = (\n props: TimeFrameSwitcherProps\n) => {\n const {\n customHeaderProps,\n onPreviousTimeFrameClick,\n onNextTimeFrameClick,\n translations,\n dateRenderer,\n className,\n onSelectionChanged,\n withWeekNumbers = true,\n } = props;\n\n const { date } = customHeaderProps;\n\n useChangeObserver(date, () => onSelectionChanged?.(customHeaderProps), isSameDay);\n\n const buttonBaseProps = {\n size: ButtonSize.XSmall,\n tier: ButtonTier.Tertiary,\n type: ButtonType.Solid,\n className: styles.Button,\n };\n\n return (\n \n onPreviousTimeFrameClick(customHeaderProps)}\n title={translations.previousTimeFrame}\n >\n \n {translations.previousTimeFrame}\n \n
\n {dateRenderer(date)}\n
\n onNextTimeFrameClick(customHeaderProps)}\n title={translations.nextTimeFrame}\n >\n \n {translations.nextTimeFrame}\n \n
\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Calendar\":\"MP8exi5nJt6birpVFLkp\",\"Variant--rounded\":\"FzTQeaAI4e5ZGDPgJ_oQ\"};","import classNames from 'classnames';\nimport { isSameDay } from 'date-fns/isSameDay';\nimport type { ReactDatePickerProps } from 'react-datepicker';\nimport dayStyles from '../Components/CalendarDay/CalendarDay.module.css';\nimport calendarStyles from '../DatePicker.module.css';\nimport { getContentLanguage } from '~/Features/Configuration/Utils/languageUtils';\nimport { getToday, mapToDateLocale } from '~/Partials/Utils/dateUtils';\n\nexport interface ConfigProps {\n selectedDay: Date | null;\n calendarClassName?: string;\n monthClassName?: string;\n weekDayClassName?: string;\n dayClassName?: string;\n shouldDayBeHidden?: (day: Date) => boolean;\n shouldDayBeDisabled?: (day: Date) => boolean;\n shouldDayBeHighlighted?: (day: Date) => boolean;\n showWeekNumbers?: boolean;\n}\n\nexport const getPropsFromConfig = (config: ConfigProps) => {\n const {\n calendarClassName,\n monthClassName,\n weekDayClassName,\n dayClassName,\n selectedDay,\n shouldDayBeHidden,\n shouldDayBeDisabled,\n shouldDayBeHighlighted,\n showWeekNumbers = false,\n } = config;\n\n const today = getToday();\n\n return {\n selected: selectedDay,\n locale: mapToDateLocale(getContentLanguage()),\n showWeekNumbers,\n calendarStartDay: 1,\n inline: true,\n showPopperArrow: false,\n calendarClassName: classNames(calendarStyles.Calendar, calendarClassName),\n monthClassName: monthClassName ? () => monthClassName : undefined,\n weekDayClassName: weekDayClassName ? () => weekDayClassName : undefined,\n dayClassName: dayDate => {\n const isSelected = selectedDay && isSameDay(dayDate, selectedDay);\n const isToday = isSameDay(dayDate, today);\n const isHidden = shouldDayBeHidden?.(dayDate);\n const isDisabled = shouldDayBeDisabled?.(dayDate);\n const isHighlighted = shouldDayBeHighlighted?.(dayDate);\n\n return classNames(\n dayStyles.CalendarDay,\n isSelected && dayStyles['Variant--selected'],\n isToday && dayStyles['Variant--today'],\n isHidden && dayStyles['Variant--hidden'],\n isDisabled && dayStyles['Variant--disabled'],\n isHighlighted && dayStyles['Variant--highlighted'],\n dayClassName\n );\n },\n } satisfies Partial;\n};\n","import 'react-datepicker/dist/react-datepicker.min.css';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactDatePickerCustomHeaderProps, ReactDatePickerProps } from 'react-datepicker';\nimport ReactDatePicker from 'react-datepicker';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { StrictOmit } from '~/Partials/Utils/typeUtils';\nimport type { Theme } from '~/Utils/Theme';\nimport { TimeFrameSwitcher } from './Components/TimeFrameSwitcher/TimeFrameSwitcher';\nimport styles from './DatePicker.module.css';\nimport type { ConfigProps } from './Utils/config';\nimport { getPropsFromConfig } from './Utils/config';\nimport type { DatePickerHeaderProps } from './Utils/types';\n\ntype ExposedReactDatePickerProps = Pick<\n ReactDatePickerProps,\n 'open' | 'openToDate' | 'filterDate' | 'formatWeekNumber' | 'onMonthChange' | 'children' | 'className'\n>;\n\ninterface DatePickerBaseProps extends ExposedReactDatePickerProps {\n selectedDay: Date | null;\n onChange: (date: Date | null) => void;\n config?: StrictOmit;\n theme?: Pick;\n ariaHeader?: {\n id: string;\n label: string;\n headerType: keyof Pick;\n };\n}\n\nexport type DatePickerProps = DatePickerBaseProps & DatePickerHeaderProps;\n\nexport const DatePicker = React.forwardRef((props, calendarRef) => {\n const contextualTheme = useTheme();\n\n const {\n config,\n selectedDay,\n renderCustomHeader,\n headerProps,\n children,\n ariaHeader,\n className,\n theme = contextualTheme,\n ...restOfProps\n } = props;\n\n const { withRoundedCorners } = theme;\n\n return (\n
\n {ariaHeader &&\n React.createElement(\n ariaHeader.headerType,\n { id: ariaHeader.id, className: 'visuallyHidden' },\n ariaHeader.label\n )}\n \n renderCustomHeader ? (\n renderCustomHeader(customHeaderProps)\n ) : (\n \n customHeaderProps={customHeaderProps}\n {...headerProps}\n />\n )\n }\n >\n {children}\n \n
\n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"CalendarDay\":\"PpYlMZ97qm041FLRSPyB\",\"Variant--selected\":\"kBI9Qs8sVNULH3mV0xAA\",\"Variant--today\":\"s7CVRtyhnV1Jf4rZcRSI\",\"Variant--highlighted\":\"cSfg4bBHRThdDkLTlgao\",\"Variant--disabled\":\"cDAQnZCd272nFRVZa7nF\",\"Variant--hidden\":\"Dv6bOFh7GgO0hqc2_II2\"};","import { FocusTrap } from 'focus-trap-react';\nimport * as React from 'react';\nimport { useClickOutsideRefObserver } from '~/Utils/Hooks/useClickOutsideObserver';\n\nexport interface FloatingWrapperProps {\n onClose: () => void;\n setFloatingElement: (element: HTMLDivElement) => void;\n floatingStyles: React.CSSProperties;\n ariaLabelledby: string;\n rootRef: React.RefObject;\n className?: string;\n open?: boolean;\n}\n\nexport const FloatingWrapper: React.FC> = props => {\n const { open, onClose, setFloatingElement, floatingStyles, ariaLabelledby, className, rootRef, children } = props;\n\n useClickOutsideRefObserver(rootRef, onClose);\n\n return (\n \n \n {children}\n \n \n );\n};\n","import type { FC } from 'react';\nimport React from 'react';\nimport type { DatePickerProps } from '../DatePicker/DatePicker';\nimport { DatePicker } from '../DatePicker/DatePicker';\nimport type { StrictOmit, WithRequired } from '../Utils/typeUtils';\nimport styles from './DatePickerFloating.module.css';\nimport type { FloatingWrapperProps } from './FloatingWrapper/FloatingWrapper';\nimport { FloatingWrapper } from './FloatingWrapper/FloatingWrapper';\n\ntype DatePickerFloatingProps = WithRequired & {\n floatingConfig: StrictOmit;\n};\n\nexport const DatePickerFloating: FC> = props => {\n const { floatingConfig, children, config, ...restProps } = props;\n const { ariaHeader } = restProps;\n const { open } = floatingConfig;\n\n return (\n \n {open && (\n \n {children}\n \n )}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"DatePickerFloating\":\"pVHNsAg4Hu79tEjBUqLE\"};","import axios from 'axios';\nimport { getContentLanguage } from '~/Features/Configuration/Utils/languageUtils';\n\nexport const axiosWrapper = axios.create({\n paramsSerializer: {\n indexes: null, // key=value instead of key[]=value\n },\n});\n\naxiosWrapper.interceptors.request.use(config => {\n const contentLanguage = getContentLanguage();\n\n if (contentLanguage) {\n config.headers.set('X-Api-Language', contentLanguage);\n }\n\n return config;\n});\n","import type { FastFieldConfig, FieldProps, FormikHandlers } from 'formik';\nimport { FastField } from 'formik';\nimport * as React from 'react';\nimport type { FormFieldValidate } from './validators';\nimport { readValidationErrorFromFormik } from './validators';\n\nexport interface FormFastFieldProps extends Pick, 'shouldUpdate'> {\n name: string;\n children: (injectedProps: FormFastFieldInjectedProps) => React.JSX.Element;\n validate?: FormFieldValidate;\n validateFieldOnFieldChange?: boolean;\n validateFieldOnFieldBlur?: boolean;\n onAfterBlur?: (val: T) => void;\n}\n\nexport interface FormFastFieldInjectedProps {\n showError: boolean;\n formProps: FieldProps['form'];\n inputProps: {\n value: T;\n onChange: FormikHandlers['handleChange'];\n onBlur: React.InputHTMLAttributes['onBlur'];\n name: string;\n };\n errorMessage?: string | React.ReactNode | undefined;\n}\n\n/* Motivation:\n this is different from Formik \"FastField\" or \"Field\" because of how\n it works:\n 1) validation here it is triggered only on field's own onBlur event by\n default. (It ignores Formik prop \"validateOnBlur\" that runs all validations\n on any onBlur event). This behavior can be changed by `validateFieldOn*` props\n 2) inputProps.onChange, that is passed to children, takes VALUE argument (not event)\n \n CAUTION: validation itself doesn't force component to show error message\n*/\nexport class FormFastField extends React.PureComponent> {\n static displayName = 'FormWizard.FastField';\n\n static defaultProps = {\n validateFieldOnFieldBlur: true,\n validateFieldOnFieldChange: false,\n };\n\n hasBeenChanged = false;\n\n render() {\n const {\n name,\n onAfterBlur,\n validate,\n validateFieldOnFieldBlur,\n validateFieldOnFieldChange,\n shouldUpdate,\n children,\n } = this.props;\n\n return (\n \n {(fieldProps: FieldProps) => {\n const { field: inputProps, form: formProps } = fieldProps;\n const errorMessage = readValidationErrorFromFormik(\n formProps.errors,\n formProps.touched,\n name,\n formProps.submitCount\n );\n const handleBlur = (e: React.FocusEvent) => {\n // Formik's FastField internal onBlur\n inputProps.onBlur(e);\n\n if (validate && validateFieldOnFieldBlur && this.hasBeenChanged) {\n // // Logic specific for this component instance:\n formProps.validateField(name);\n }\n\n if (onAfterBlur && this.hasBeenChanged) {\n // Execute additional onBlur along with FastField internal onBlur\n onAfterBlur && onAfterBlur(inputProps.value);\n }\n };\n\n const handleChange = (fieldValue: any) => {\n this.hasBeenChanged = true;\n // Formik's FastField internal onChange\n formProps.setFieldValue(name, fieldValue);\n formProps.setFieldTouched(name, true);\n // Logic specific for this component instance\n validate && validateFieldOnFieldChange && formProps.validateField(name);\n };\n\n const augmentedProps = {\n errorMessage,\n formProps,\n showError: !!errorMessage,\n inputProps: {\n ...inputProps,\n onBlur: handleBlur,\n onChange: handleChange,\n },\n };\n\n return children(augmentedProps);\n }}\n \n );\n }\n}\n","import * as React from 'react';\nimport { FormFastField } from './FormFastField';\nimport { FormFieldTypeCheckbox } from './FormFieldsTypes/FormFieldTypeCheckbox';\nimport type { FormFieldValidate } from './validators';\n\nexport interface FormFieldCheckboxProps {\n name: string;\n label?: string | React.ReactChild;\n errorMessage?: string | React.ReactChild;\n className?: string;\n validate?: FormFieldValidate;\n validateFieldOnFieldChange?: boolean;\n validateFieldOnFieldBlur?: boolean;\n onAfterBlur?: (val: boolean) => void;\n}\n\nexport class FormFieldCheckbox extends React.PureComponent {\n static displayName = 'FormWizard.FieldCheckbox';\n\n render() {\n const {\n name,\n label,\n className,\n onAfterBlur,\n validate,\n validateFieldOnFieldBlur = true,\n validateFieldOnFieldChange = false,\n } = this.props;\n\n return (\n \n validate={validate}\n name={name}\n onAfterBlur={onAfterBlur}\n validateFieldOnFieldBlur={validateFieldOnFieldBlur}\n validateFieldOnFieldChange={validateFieldOnFieldChange}\n >\n {({ inputProps, showError, errorMessage }) => (\n \n )}\n \n );\n }\n}\n","import * as React from 'react';\nimport type { Theme } from '~/Utils/Theme';\nimport { FormFastField } from './FormFastField';\nimport type { FormFieldTypeInputTextProps } from './FormFieldsTypes/FormFieldTypeInputText';\nimport { FormFieldTypeInputText } from './FormFieldsTypes/FormFieldTypeInputText';\nimport type { FormFieldValidate } from './validators';\n\nexport interface FormFieldInputTextProps\n extends Pick<\n FormFieldTypeInputTextProps,\n 'inputMode' | 'placeholder' | 'type' | 'ariaDescribedBy' | 'maxLength' | 'name' | 'label' | 'autoComplete'\n > {\n errorMessage?: string | React.ReactChild;\n showInlineError?: boolean;\n className?: string;\n validate?: FormFieldValidate;\n validateFieldOnFieldChange?: boolean;\n validateFieldOnFieldBlur?: boolean;\n onAfterBlur?: (val: string) => void;\n theme?: Theme;\n isDisabled?: boolean;\n}\n\nexport class FormFieldInputText extends React.PureComponent {\n static displayName = 'FormWizard.FieldInputText';\n\n render() {\n const {\n name,\n label,\n className,\n onAfterBlur,\n validate,\n maxLength,\n type,\n validateFieldOnFieldBlur = true,\n validateFieldOnFieldChange = false,\n showInlineError,\n ariaDescribedBy,\n inputMode,\n placeholder,\n theme,\n isDisabled,\n } = this.props;\n\n return (\n \n {({ inputProps, showError, errorMessage }) => (\n \n )}\n \n );\n }\n}\n","import * as React from 'react';\nimport type { StrictOmit } from '~/Partials/Utils/typeUtils';\nimport type { Theme } from '~/Utils/Theme';\nimport type { FormFastFieldProps } from './FormFastField';\nimport { FormFastField } from './FormFastField';\nimport type { FormFieldTypeSelectProps } from './FormFieldsTypes/FormFieldTypeSelect';\nimport { FormFieldTypeSelect } from './FormFieldsTypes/FormFieldTypeSelect';\nimport type { FormFieldValidate } from './validators';\n\nexport interface FormFieldSelectProps\n extends StrictOmit,\n Pick {\n errorMessage?: string | React.ReactChild;\n className?: string;\n validate?: FormFieldValidate;\n validateFieldOnFieldChange?: boolean;\n validateFieldOnFieldBlur?: boolean;\n onAfterBlur?: (val: string) => void;\n theme?: Theme;\n isDisabled?: boolean;\n}\n\nexport class FormFieldSelect extends React.PureComponent {\n static displayName = 'FormWizard.FormFieldSelect';\n\n render() {\n const {\n name,\n label,\n className,\n onAfterBlur,\n validate,\n validateFieldOnFieldBlur = true,\n validateFieldOnFieldChange = false,\n theme,\n shouldUpdate,\n isDisabled,\n ...selectProps\n } = this.props;\n\n return (\n \n {({ inputProps, showError, errorMessage }) => (\n \n )}\n \n );\n }\n}\n","import * as React from 'react';\nimport { FormFastField } from './FormFastField';\nimport { FormFieldTypeTextArea } from './FormFieldsTypes/FormFieldTypeTextArea';\nimport type { FormFieldValidate } from './validators';\n\nexport interface FormFieldTextAreaProps {\n name: string;\n label?: string | React.ReactChild;\n placeholder?: string;\n errorMessage?: string | React.ReactChild;\n className?: string;\n validate?: FormFieldValidate;\n validateFieldOnFieldChange?: boolean;\n validateFieldOnFieldBlur?: boolean;\n onAfterBlur?: (val: string) => void;\n maxLength?: number;\n type?: string;\n ariaDescribedBy?: string;\n autoGrow?: boolean;\n}\n\nexport class FormFieldTextArea extends React.PureComponent {\n static displayName = 'FormWizard.FieldTextArea';\n\n render() {\n const {\n name,\n label,\n placeholder,\n className,\n onAfterBlur,\n validate,\n maxLength,\n type,\n autoGrow,\n ariaDescribedBy,\n validateFieldOnFieldBlur = true,\n validateFieldOnFieldChange = false,\n } = this.props;\n\n return (\n \n {({ inputProps, showError, errorMessage }) => (\n \n )}\n \n );\n }\n}\n","import classNames from 'classnames';\nimport uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport type { FormFieldProps } from '../FormFieldProps';\nimport { useFrontendSettings } from '~/Features/Configuration/Hooks/useFrontendSettings';\n\nexport interface FormFieldTypeCheckboxProps extends FormFieldProps {\n label?: string | React.ReactChild;\n className?: string;\n}\n\nexport const FormFieldTypeCheckbox: React.FC> = React.memo(\n ({\n label,\n errorMessage,\n showErrorMessage = false,\n className,\n value,\n onChange,\n ...inputProps // name, onChange, onBlur, value\n }) => {\n const { checkboxVariant } = useFrontendSettings();\n const checkboxId = uniqueId('Checkbox__');\n const errorId = uniqueId('Error__');\n\n return (\n \n onChange(e.target.checked)}\n aria-describedby={errorId}\n {...inputProps}\n />\n {label && (\n <>\n \n {showErrorMessage && (\n \n {errorMessage}\n \n )}\n \n )}\n \n );\n }\n);\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { FormLabel } from '../../FormLabel/FormLabel';\nimport type { FormFieldProps } from '../FormFieldProps';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { Theme } from '~/Utils/Theme';\n\nexport interface FormFieldTypeInputTextProps\n extends FormFieldProps,\n Omit, keyof FormFieldProps> {\n label: ReactNode | ((asterisk: ReactNode) => ReactNode);\n className?: string;\n ariaDescribedBy?: string;\n theme?: Theme;\n showInlineError?: boolean;\n isDisabled?: boolean;\n inputRef?: React.RefObject;\n}\n\nexport const FormFieldTypeInputText: React.FC> = React.memo(\n props => {\n const contextualTheme = useTheme();\n\n const {\n label,\n errorMessage,\n showErrorMessage = false,\n showInlineError = true,\n className,\n required,\n type = 'text',\n ariaDescribedBy,\n theme = contextualTheme,\n isDisabled,\n inputRef,\n ...inputProps // name, onChange, onBlur, value\n } = props;\n\n const { withRoundedCorners } = theme;\n\n const renderErrorMessage = () => (\n {errorMessage}\n );\n\n return (\n \n \n \n );\n }\n);\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { FormFieldProps } from '../FormFieldProps';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport { FormLabel } from '~/Partials/FormLabel/FormLabel';\nimport type { Theme } from '~/Utils/Theme';\n\nexport interface Dictionary {\n [Key: string]: T;\n}\n\ntype SelectFieldProps = FormFieldProps;\n\nexport interface FormFieldTypeSelectProps\n extends SelectFieldProps,\n Omit, keyof SelectFieldProps> {\n options: Dictionary;\n label?: string | React.ReactChild;\n defaultValue?: string;\n className?: string;\n theme?: Theme;\n isDisabled?: boolean;\n selectRef?: React.RefObject;\n}\n\nexport const FormFieldTypeSelect: React.FC> = React.memo(props => {\n const contextualTheme = useTheme();\n\n const {\n className,\n label,\n options,\n onChange,\n showErrorMessage,\n errorMessage,\n required,\n defaultValue = 'default',\n theme = contextualTheme,\n isDisabled,\n selectRef,\n ...inputProps\n } = props;\n\n const { withRoundedCorners } = theme;\n\n return (\n \n \n \n );\n});\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { FormFieldProps } from '../FormFieldProps';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { Theme } from '~/Utils/Theme';\n\nexport interface FormFieldTypeTextAreaProps\n extends FormFieldProps,\n Omit, keyof FormFieldProps> {\n label?: string | React.ReactChild;\n placeholder?: string;\n className?: string;\n ariaDescribedBy?: string;\n theme?: Theme;\n autoGrow?: boolean;\n showCharacterCounter?: boolean;\n}\n\nexport const FormFieldTypeTextArea: React.FC> = React.memo(\n props => {\n const contextualTheme = useTheme();\n\n const {\n label,\n errorMessage,\n className,\n required,\n ariaDescribedBy,\n placeholder,\n showErrorMessage = false,\n theme = contextualTheme,\n autoGrow = false,\n showCharacterCounter = false,\n maxLength,\n ...inputProps // name, onChange, onBlur, value\n } = props;\n\n const { withRoundedCorners } = theme;\n const ref = React.useRef(null);\n\n React.useEffect(() => {\n if (ref.current && autoGrow) {\n ref.current.style.height = 'auto';\n const scrollHeight = ref.current.scrollHeight;\n ref.current.style.height = scrollHeight + 26 + 'px';\n }\n }, [autoGrow, inputProps.value]);\n\n const textareaValue = inputProps.value || '';\n const charactersLeft = maxLength ? maxLength - textareaValue.length : 0;\n\n return (\n \n \n \n );\n }\n);\n","import type { FormikProps } from 'formik';\nimport { getIn } from 'formik';\nimport type { ReactChild } from 'react';\nimport { makePostRequest } from '../Utils/HttpRequest/makePostRequest';\nimport type { PersonalNumberValidationRequestDto } from '~/Features/Api/PersonalNumber/PersonalNumberValidationRequestDto.csharp';\n\nexport type ValidateOptions = {\n /* options to be passed to every validator. Ex: number of choice items */\n personalNumberValidationUrl?: string;\n};\n\nexport type ValidatorFunction = (arg: T, options?: O) => boolean | Promise;\n\nexport type Validation = [ValidatorFunction, string | ReactChild];\n\nexport type FormFieldValidate = (val: T) => Promise;\n\n/*\n every ASYNC form wizard validator (actually Formik validator) should return:\n - undefined if no errors\n - string with the error message if there's an error.\n*/\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const combineValidators =\n (validations: Validation[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async (val: T, ...combinedValidatorOptions: any[]): Promise>>> => {\n // eslint-disable-next-line no-restricted-syntax\n for (const [validator, errorMessage = '--error--'] of validations) {\n const didPassValidator = await validator(val, ...combinedValidatorOptions);\n\n if (!didPassValidator) {\n return errorMessage;\n }\n }\n\n return undefined;\n };\n\nexport const isValidStudyVariantsList: ValidatorFunction, unknown> = val =>\n Array.isArray(val) && !!val.length;\n\nexport const isNotNull: ValidatorFunction = val => val !== null;\n\nexport const isString: ValidatorFunction = val => typeof val === 'string';\n\nexport const isNotEmptyString: ValidatorFunction = val => !!val;\n\nexport const isNotEmptyObject: ValidatorFunction = val =>\n !!val && typeof val === 'object' && val !== null && !!Object.keys(val).length;\n\nexport const isNotEmptyArray: ValidatorFunction, unknown> = val => !!val && !!val.length;\n\nexport const isNumericString: ValidatorFunction = val => !val || val === String(parseInt(val, 10)); // empty string is valid\n\nexport const isAlphaNumericString: ValidatorFunction = val => !val || HasOnlyDigitsAndLetters(val); // empty string is valid\n\nconst HasOnlyDigitsAndLetters = (val: string) => {\n const onlyDigitsAndLettersPattern = '^[A-Za-z0-9]+$';\n const matches = val.match(onlyDigitsAndLettersPattern);\n\n return !!matches && matches.length > 0;\n};\n\ntype PersonalNumberResponseType = { isValid: boolean };\n\nexport const isPersonalNumberValidAsync = async (\n val: PersonalNumberValidationRequestDto,\n options: Pick\n) => {\n if (!isString(val.personalNumber)) {\n return false;\n }\n\n if (!val.personalNumber) {\n return true; // no validation for emtpy string\n }\n\n if (!val.firstName || !val.lastName) {\n return true; // no validation for empty firstname or lastname\n }\n\n const defaultValidationResult = true;\n\n if (options.personalNumberValidationUrl) {\n const response = await makePostRequest(options.personalNumberValidationUrl, val);\n switch (response.state) {\n case 'Success':\n if (!response.data.isValid) {\n // Invalid only if \"false\" provided from validating endpoint [#285]\n return false;\n }\n\n return defaultValidationResult;\n\n default:\n return defaultValidationResult;\n }\n }\n\n return defaultValidationResult;\n};\n\nconst REGEXP_EMAIL = /^(?:(?:[A-Z0-9_%+-]\\.?)+[A-Z0-9_%+-]|[A-Z0-9_%+-])@(?:[A-Z0-9-]+\\.)+[A-Z]{2,4}$/i;\nexport const isEmail: ValidatorFunction = val => !val || REGEXP_EMAIL.test(val); // no validation for empty string\n\nexport const isShallowEqual = ({ a, b }: { a: T; b: T }) => a === b;\n\nexport const isTrue: ValidatorFunction = val => val === true;\n\nconst REGEXP_COUNTRY_CODE = /^([1-9]{1})([0-9]{1,4})$/;\nexport const isValidCountryCodeFormat: ValidatorFunction = val =>\n !val || REGEXP_COUNTRY_CODE.test(val);\n\nconst REGEXP_PHONE_NUMBER = /^([1-9]{1})([0-9]{0,11}$)/;\nexport const isValidPhoneNumber: ValidatorFunction = val => !val || REGEXP_PHONE_NUMBER.test(val);\n\nconst REGEXP_NORWEGIAN_PHONE_NUMBER = /^(4|9{1})([0-9]{7}$)/;\nexport const isValidNorwegianPhoneNumber: ValidatorFunction = val =>\n !val || REGEXP_NORWEGIAN_PHONE_NUMBER.test(val);\n\nexport const isRequired: ValidatorFunction = val => val;\n\n/* helper */\nexport function readValidationErrorFromFormik(\n formikErrors: FormikProps['errors'],\n formikTouched: FormikProps['touched'],\n fieldPath: string | string[],\n submitCount: number\n) {\n const fieldError = getIn(formikErrors, fieldPath);\n const fieldTouched = getIn(formikTouched, fieldPath) || submitCount > 0;\n\n if (fieldTouched && fieldError) {\n return fieldError;\n }\n\n // no error\n return undefined;\n}\n","import * as React from 'react';\nimport type { ReactNode } from 'react';\n\ninterface FormLabelProps {\n label: ReactNode | ((asterisk: ReactNode) => ReactNode);\n required?: boolean;\n}\n\nconst Asterisk = () => {` * `};\n\nexport const FormLabel: React.FC> = ({ label, required = false }) => (\n <>\n {typeof label === 'function' ? (\n label(required ? : ' ')\n ) : (\n <>\n {label}\n {required && }\n \n )}\n \n);\n","import ExecutionContext from '../../ExecutionContext';\nimport type { GtmPageStatsViewModel } from '../GtmPageStats/GtmPageStatsViewModel.csharp';\nimport type { GoogleTagManagerData, GoogleTagManagerProperties } from './GoogleTagManagerModels';\n\ntype DataLayerModel = GoogleTagManagerData | GoogleTagManagerProperties;\n\nexport class GtmEventsBase {\n public static pushGtmPageStats = (gtmPageStatsViewModel: GtmPageStatsViewModel) => {\n GtmEventsBase.push(gtmPageStatsViewModel.properties);\n };\n\n public static pushEvent = (eventName: string, payLoad: GoogleTagManagerProperties = []) => {\n GtmEventsBase.push({ event: eventName, ...payLoad });\n };\n\n protected static push(data: DataLayerModel) {\n if (ExecutionContext.IsServerSide()) {\n return;\n }\n\n const { dataLayer } = window as any;\n dataLayer && dataLayer.push(data);\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"ImageBackgroundCallToAction\":\"CBihJp3agVQXhuKWcUyR\",\"Info\":\"nlqrHsVbqtUwDBhbo7sE\",\"Heading\":\"pkRgi6LaSk6BZGRyxw9q\",\"Variant--default\":\"fI4fj0UhQor3SKLVrEB8\",\"Description\":\"BlbzcwJ6hZiKvNivWB4s\",\"Variant--prominent\":\"FVBK8j1w9sq6TzHiDhBX\",\"Content\":\"on3wNZn_jvWu7KfVfYv6\"};","import type * as React from 'react';\nimport type { ImageBackgroundCallToActionContext } from '../ImageBackgroundCallToActionContext';\nimport { assertNever } from '~/Partials/Utils/typeUtils';\n\nexport const getHTMLHeading = (\n context: ImageBackgroundCallToActionContext\n): keyof Pick => {\n switch (context) {\n case 'page':\n return 'h1';\n case 'section':\n return 'h2';\n default:\n return assertNever(context);\n }\n};\n","import classNames from 'classnames';\nimport React from 'react';\nimport { HtmlDiv } from '../Controls/HtmlDiv';\nimport { HtmlHeading } from '../Controls/HtmlHeading';\nimport type { StrictOmit } from '../Utils/typeUtils';\nimport { assertNever } from '../Utils/typeUtils';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\nimport type { BackgroundMediaSectionProps } from '~/Partials/BackgroundMediaSection/BackgroundMediaSection';\nimport { BackgroundMediaSection } from '~/Partials/BackgroundMediaSection/BackgroundMediaSection';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonSize } from '~/Partials/Button/ButtonSize.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport type { LinkProps } from '~/Partials/Link/Link';\nimport { Link } from '~/Partials/Link/Link';\nimport { LinkType } from '~/Partials/Link/LinkType.csharp';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport styles from './ImageBackgroundCallToAction.module.css';\nimport type { ImageBackgroundCallToActionContext } from './ImageBackgroundCallToActionContext';\nimport type { ImageBackgroundCallToActionVariant } from './ImageBackgroundCallToActionVariant';\nimport { getHTMLHeading } from './Utils/ImageBackgroundCallToActionUtils';\n\nexport interface ImageBackgroundCallToActionButtonProps {\n type: 'button';\n label: string;\n onClick?: () => void;\n}\n\nexport interface ImageBackgroundCallToActionLinkProps extends StrictOmit {\n type: 'link';\n label: string;\n}\n\nexport interface ImageBackgroundCallToActionProps extends StrictOmit {\n heading: HtmlString;\n callToAction: ImageBackgroundCallToActionLinkProps | ImageBackgroundCallToActionButtonProps;\n description?: HtmlString;\n context?: ImageBackgroundCallToActionContext;\n variant?: ImageBackgroundCallToActionVariant;\n className?: string;\n}\n\nexport const ImageBackgroundCallToAction: React.FC = props => {\n const {\n heading,\n description,\n callToAction,\n context = 'section',\n variant = 'default',\n overlayVariant = 'leftToRightDarkGreyGradient',\n className,\n ...restProps\n } = props;\n\n const renderCallToAction = () => {\n const renderContent = (label: string) => (\n <>\n {label}\n \n \n );\n\n const { type } = callToAction;\n switch (type) {\n case 'button':\n return (\n \n {renderContent(callToAction.label)}\n \n );\n\n case 'link': {\n return (\n \n {renderContent(callToAction.label)}\n \n );\n }\n\n default:\n assertNever(type);\n }\n };\n\n return (\n \n
\n
\n \n {description && }\n
\n {renderCallToAction()}\n
\n \n );\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","// 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 Language {\n\tNorwegian = \"norwegian\",\n\tEnglish = \"english\"\n}\n","import { Language } from '~/Features/Localization/Language.csharp';\nimport { assertNever } from '~/Partials/Utils/typeUtils';\n\nexport type LocaleType = 'en-GB' | 'nb';\nexport type LanguageCode = 'en' | 'no';\n\nexport const englishLocale = 'en-GB';\nexport const norwegianLocale = 'nb';\nexport const norwegianDocumentLanguage = 'no';\nexport const englishDocumentLanguage = 'en';\n\nexport type DocumentLanguage = typeof norwegianDocumentLanguage | typeof englishDocumentLanguage;\n\nexport const mapToLanguageCode = (language: Language | DocumentLanguage | LocaleType): LanguageCode => {\n switch (language) {\n case Language.English:\n case englishDocumentLanguage:\n case englishLocale:\n return 'en';\n case Language.Norwegian:\n case norwegianDocumentLanguage:\n case norwegianLocale:\n return 'no';\n default:\n throw new Error(`Language is not supported: ${language}`);\n }\n};\n\nexport const mapToLocale = (code: LanguageCode): LocaleType => {\n switch (code) {\n case 'en':\n return englishLocale;\n case 'no':\n return norwegianLocale;\n default:\n assertNever(code);\n }\n};\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","import * as React from 'react';\nimport type { IconsEnum } from '~/Features/IconsEnum.csharp';\nimport { SvgIconBase } from './SvgIconBase';\nimport { assetPathBuilder } from './Utils/Utils';\n\nexport type IconName = `${IconsEnum}`;\n\nexport interface SvgIconProps {\n iconName: `${IconsEnum}`;\n className?: string;\n}\n\nexport const SvgIcon: React.FC> = props => {\n const { iconName, className } = props;\n const iconPath = assetPathBuilder(iconName);\n\n return ;\n};\n","import classNames from 'classnames';\nimport type { FC } from 'react';\nimport React from 'react';\n\ninterface SvgIconBaseProps {\n path: string;\n className?: string;\n}\n\nexport const SvgIconBase: FC> = props => {\n const { path, className } = props;\n\n return (\n \n \n \n \n \n );\n};\n","export const assetPathBuilder = (iconName: string, filled = false) => {\n const formattedIconName = iconNameMapper(iconName);\n const formattedAssetsPath = formatPath(assetsPath, false);\n const formattedBuildHash = formatPath(buildHash);\n const filledResources = filled ? 'Filled' : '';\n\n return `${formattedAssetsPath}/iconsSprite${filledResources}${formattedBuildHash}.svg#sprite-${formattedIconName}`;\n};\n\nconst formatPath = (path?: string, withDot = true) => (path ? `${withDot ? '.' : ''}${path}` : '');\n\nexport const iconNameMapper = (iconName: string) => {\n switch (iconName) {\n case 'å':\n return 'aring';\n case 'æ':\n return 'ae';\n case 'ø':\n return 'oslash';\n default:\n return iconName;\n }\n};\n","import { isAxiosError } from 'axios';\nimport { axiosWrapper } from '../../FetchData/axiosWrapper';\n\nexport const makePostRequest = async (\n url: string,\n payload: TRequestPayload\n): Promise | ClientError | ServerError | RequestError | UndefinedError> => {\n try {\n const result = await axiosWrapper.post(url, payload);\n\n return {\n state: 'Success',\n data: result.data,\n };\n } catch (error) {\n if (isAxiosError(error)) {\n if (error.response) {\n if (error.response.status.toString().startsWith('4')) {\n return {\n code: error.response.status,\n state: 'ClientError',\n message: error.response.data?.message || error.message,\n };\n }\n\n if (error.response.status.toString().startsWith('5')) {\n return {\n code: error.response.status,\n state: 'ServerError',\n };\n }\n } else if (error.request) {\n return {\n code: error.request.status,\n state: 'RequestError',\n };\n }\n }\n\n return {\n state: 'UndefinedError',\n };\n }\n};\n\nexport type ResultStatus = SuccessState | ClientErrorState | ServerErrorState | RequestErrorState | UndefinedState;\n\ninterface Success {\n state: SuccessState;\n data: T;\n}\n\ninterface HttpError {\n code: number;\n state: Type;\n}\n\nexport type RequestError = HttpError;\nexport type ServerError = HttpError;\nexport type UndefinedError = Pick, 'state'>;\nexport type ClientError = HttpError & { message?: string };\n\ntype SuccessState = 'Success';\ntype ClientErrorState = 'ClientError';\ntype RequestErrorState = 'RequestError';\ntype ServerErrorState = 'ServerError';\ntype UndefinedState = 'UndefinedError';\n","import type { DurationUnit } from 'date-fns';\nimport { format } from 'date-fns/format';\nimport { enGB, nb } from 'date-fns/locale';\nimport type { LanguageCode } from '~/Partials/Locale/Locale';\n\nexport const getToday = () => new Date();\n\nexport const mapToDateLocale = (lang: LanguageCode) => (lang === 'no' ? nb : enGB);\n\nconst durationUnits: DurationUnit[] = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds'] as const;\n\nexport const isDurationUnit = (unit: string): unit is DurationUnit => durationUnits.includes(unit as DurationUnit);\n\nexport const formatDateShort = (date: Date, currentLanguage: LanguageCode) =>\n format(date, 'P', {\n locale: mapToDateLocale(currentLanguage),\n });\n\nexport const formatDateShortWithTime = (date: Date, currentLanguage: LanguageCode) =>\n format(date, 'Pp', {\n locale: mapToDateLocale(currentLanguage),\n });\n\nexport const formatDateLong = (date: Date, currentLanguage: LanguageCode) =>\n format(date, 'PPP', {\n locale: mapToDateLocale(currentLanguage),\n });\n\nexport const formatDateLongWithTime = (date: Date, currentLanguage: LanguageCode) =>\n format(date, 'PPPp', {\n locale: mapToDateLocale(currentLanguage),\n });\n\nexport const formatDateDayMonth = (date: Date, currentLanguage: LanguageCode) =>\n format(date, 'do MMMM', {\n locale: mapToDateLocale(currentLanguage),\n });\n\nexport const formatDayName = (date: Date, currentLanguage: LanguageCode) =>\n format(date, 'EEEE', {\n locale: mapToDateLocale(currentLanguage),\n });\n\nexport const formatDayShort = (date: Date, currentLanguage: LanguageCode) =>\n format(date, 'EEEEEE', {\n locale: mapToDateLocale(currentLanguage),\n });\n","export function assertNever(_: never): never {\n throw new Error(`Value should be never: ${_}`);\n}\n\n// NO-OP. Typescript handles that\nexport const isInterchangeable = (element?: TFrom): TTo | undefined => element;\n\n// Covers *most* of the cases because `NaN` cannot be added to the union.\nexport type Falsy = false | 0 | '' | null | undefined;\n\nexport type StrictOmit = Pick>;\n\n// It will also correctly work for discriminated unions.\nexport type UnionAwareOmit = {\n [TProperty in keyof TObject as TProperty extends TKey ? never : TProperty]: TObject[TProperty];\n};\n\nexport type StrictExtract = TKey extends TObject ? TKey : never;\n\nexport type IdType = string | number;\n\nexport type ReactKey = string | number;\n\nexport type WithId = TObject & { id: string };\n\nexport type ArrayElement = TArrayType extends readonly (infer TElementType)[]\n ? TElementType\n : never;\n\nexport type WithRequired = TObject & { [TProp in TKey]-?: TObject[TProp] };\n\nexport type WithOptional = Omit & {\n [TProp in TKey]?: TObject[TProp];\n};\n\nexport type WithNonNullable = TObject & {\n [TProp in TKey]: NonNullable;\n};\n\ntype NonSymbol = Exclude;\n\nexport type Paths = TObject extends object\n ? { [TKey in keyof TObject]-?: `${NonSymbol}${'' | `.${Paths}`}` }[keyof TObject]\n : never;\n\nexport type WithNonNullableProperties = {\n [TKey in keyof TObject]: NonNullable;\n};\n\ntype Join = `${NonSymbol}.${NonSymbol}`;\n\ntype SimplifyForFlattening = Required>;\n\ntype NestLimit = 4;\n\ntype Incr = [1, 2, 3, NestLimit];\n\ntype FlattenInternal<\n TObject extends object,\n TLevel extends number = 0,\n TKeys extends keyof TObject = keyof TObject,\n> = TLevel extends NestLimit\n ? { [TProperty in TKeys]: TObject[TKeys] }\n : TKeys extends string\n ? TObject[TKeys] extends object\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type -- we actually need `Function` here\n TObject[TKeys] extends Function | Array // Non flattenable for now\n ? { [TProperty in TKeys]: TObject[TKeys] }\n : FlattenInternal, Incr[TLevel]> extends infer TInferred\n ? {\n [TProperty in keyof TInferred as Join]: TInferred[TProperty];\n }\n : { [TProperty in TKeys]: TObject[TKeys] }\n : { [TProperty in TKeys]: TObject[TKeys] }\n : never;\n\nexport type Flatten = FlattenInternal>;\n\nexport type CommonProps = Pick<\n TObject1 | TObject2,\n Extract\n>;\n\nexport type Writeable = { -readonly [P in keyof T]: T[P] };\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 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 formSubmitThrottleWaitMs = 1000;\n","export const emDash = '\\u2014';\n","import * as React from 'react';\nimport { useVariableWithStableRef } from './useVariableWithStableRef';\n\nexport function useChangeObserver(\n data: TData,\n onChange: (newData: TData, oldData?: TData) => void,\n isEqual = (first: TData, second: TData) => first === second\n) {\n const onChangeRef = useVariableWithStableRef(onChange);\n const isEqualRef = useVariableWithStableRef(isEqual);\n const [previousData, setPreviousData] = React.useState(data);\n\n React.useEffect(() => {\n const hasChanged = isEqualRef.current?.(previousData, data) === false;\n\n if (hasChanged) {\n setPreviousData(data);\n onChangeRef.current?.(data, previousData);\n }\n }, [isEqualRef, onChangeRef, data]);\n}\n","import type { RefObject } from 'react';\nimport { useEffect } from 'react';\nimport { useVariableWithStableRef } from './useVariableWithStableRef';\n\nexport function useClickOutsideElementObserver(element: TElement | null, callback: () => void) {\n const handlerRef = useVariableWithStableRef(callback);\n\n useEffect(() => {\n const handleClick = (event: MouseEvent) => {\n if (!(event.target instanceof Node)) {\n return;\n }\n\n function isChildOfReferencedElement(elem: Node): boolean {\n return element !== null && element.contains(elem);\n }\n\n // We check if the target element is still present in document because it might happen\n // that click event causes component to unmount and simply checking if element contains the target\n // would give false negatives.\n // element's event handler => unmounting => this event handler\n function isAttachedToDocument(elem: Node): boolean {\n return document.body.contains(elem);\n }\n\n const isClickOutside = !isChildOfReferencedElement(event.target) && isAttachedToDocument(event.target);\n isClickOutside && handlerRef.current?.();\n };\n\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, [element, handlerRef]);\n}\n\nexport function useClickOutsideRefObserver(\n ref: RefObject,\n callback: () => void\n) {\n useClickOutsideElementObserver(ref.current, callback);\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","export interface Theme {\n withRoundedCorners?: boolean;\n withBoxShadow?: boolean;\n}\n\nexport const themeDefaultValues: Theme = {\n withBoxShadow: false,\n withRoundedCorners: false,\n};\n\nexport const themeRoundedCornersValues: Theme = {\n withBoxShadow: false,\n withRoundedCorners: true,\n};\n\nexport const themeModernValues: Theme = {\n withBoxShadow: true,\n withRoundedCorners: true,\n};\n","function r(e){var o,t,f=\"\";if(\"string\"==typeof e||\"number\"==typeof e)f+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var n=e.length;for(o=0;o= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n // Also cover shadowRoot node by checking current.host\n\n\n while (current.parentNode || current.host) {\n // Only check normal node without shadowRoot\n if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode || current.host;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};function autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();var passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = {};\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions.passive = !instance.props.preventDefault;\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n if (_this.initTimeStamp > event.timeStamp) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n _this.initTimeStamp = performance.now();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n }\n /**\n * Remove all document's event listeners for this component\n */\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n }\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n ;\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props;\n _this$props.excludeScrollbar;\n var props = _objectWithoutPropertiesLoose(_this$props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}export default onClickOutsideHOC;export{IGNORE_CLASS_NAME};","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { addLeadingZeros } from \"./_lib/addLeadingZeros.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link formatISO} function options.\n */\n\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string (in local time zone)\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\nexport function formatISO(date, options) {\n const date_ = toDate(date, options?.in);\n\n if (isNaN(+date_)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n let tzOffset = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = addLeadingZeros(date_.getDate(), 2);\n const month = addLeadingZeros(date_.getMonth() + 1, 2);\n const year = addLeadingZeros(date_.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n // Add the timezone.\n const offset = date_.getTimezoneOffset();\n\n if (offset !== 0) {\n const absoluteOffset = Math.abs(offset);\n const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2);\n const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = offset < 0 ? \"+\" : \"-\";\n\n tzOffset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n tzOffset = \"Z\";\n }\n\n const hour = addLeadingZeros(date_.getHours(), 2);\n const minute = addLeadingZeros(date_.getMinutes(), 2);\n const second = addLeadingZeros(date_.getSeconds(), 2);\n\n // If there's also date, separate it with time with 'T'\n const separator = result === \"\" ? \"\" : \"T\";\n\n // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n const time = [hour, minute, second].join(timeDelimiter);\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${time}${tzOffset}`;\n }\n\n return result;\n}\n\n// Fallback for modularized imports:\nexport default formatISO;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link isWithinInterval} function options.\n */\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param date - The date to check\n * @param interval - The interval to check\n * @param options - An object with options\n *\n * @returns The date is within the interval\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * // => true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * // => false\n *\n * @example\n * // For date equal to the interval start:\n * isWithinInterval(date, { start, end: date })\n * // => true\n *\n * @example\n * // For date equal to the interval end:\n * isWithinInterval(date, { start: date, end })\n * // => true\n */\nexport function isWithinInterval(date, interval, options) {\n const time = +toDate(date, options?.in);\n const [startTime, endTime] = [\n +toDate(interval.start, options?.in),\n +toDate(interval.end, options?.in),\n ].sort((a, b) => a - b);\n\n return time >= startTime && time <= endTime;\n}\n\n// Fallback for modularized imports:\nexport default isWithinInterval;\n"],"names":["resolveFieldNames","errors","currentPath","arguments","length","undefined","fieldNames","Object","keys","forEach","errorKey","value","React","push","concat","FormikValidationErrorHandler","props","children","isSubmitting","isValid","setSelector","alertMessage","setKeys","isAlertVisible","setIsAlertVisible","wrapperRef","prevIsSubmitting","usePrevious","fieldsWithError","current","key","selector","firstErrorElement","querySelector","focus","timer","setTimeout","clearTimeout","ref","NotificationBannerBase","isOpen","role","style","display","SvgIcon","className","iconName","BookMeetingSectionBlockCallToActionType","FormSubmitted","Event","constructor","formId","super","getMessageId","BookMeetingGtmSubscription","useMessageHandler","GtmEventsBase","pushEvent","type","BookMeetingCalendarExpander","label","name","translations","setAnchorElement","onClick","onBlur","selectedDate","locale","errorMessage","required","showErrorMessage","theme","useTheme","expandLabelId","uniqueId","classNames","withRoundedCorners","FormLabel","id","expandCalendar","title","date","format","weekStartsOn","getMonth","options","toDate","in","getYear","getFullYear","BookMeetingDatePicker","open","onClose","onCloseWithCheck","setFloatingElement","changeActiveDay","floatingStyles","activeDay","rootRef","selectedDay","setSelectedDay","currentlyVisibleMonth","setCurrentlyVisibleMonth","getToday","hasSelectionChanged","nationalHolidays","holidays","map","holiday","Date","shouldDayBeDisabled","day","getDay","isWeekend","now","isPast","find","holidayDate","isSameDay","DatePickerFloating","config","calendarClassName","weekDayClassName","dayClassName","ariaHeader","chooseDayInMonth","headerType","openToDate","filterDate","onChange","onMonthChange","month","floatingConfig","headerProps","onPreviousTimeFrameClick","decreaseMonth","onNextTimeFrameClick","increaseMonth","dateRenderer","capitalize","nextTimeFrame","nextMonth","previousTimeFrame","prevMonth","Controls","onCancel","onAccept","handleAccept","isAcceptActive","accept","applyLabel","cancel","cancelLabel","BookMeetingCalendar","initialOpen","inputProps","_objectWithoutProperties","_excluded","isCalendarOpen","setIsCalendarOpen","refs","useFloating","middleware","flip","shift","whileElementsMounted","autoUpdate","handleCalendarClose","handleCalendarCloseWithValueCheck","useClickOutsideRefObserver","getContentLanguage","nb","enGB","_extends","handleCalendarExpansion","e","setReference","labelFieldDate","setFloating","BookMeetingCalendarWithFormik","validate","onAfterBlur","validateFieldOnFieldBlur","validateFieldOnFieldChange","FormFastField","fieldProps","showError","restInputProps","getTimeSlot","timeSlots","year","filter","slot","isWithinInterval","start","from","end","to","flatMap","slots","reduce","reduceSlots","acc","curr","_objectSpread","BookMeetingForm","heading","termsAndConditionsText","submitUrl","onSubmitted","attendanceOptions","validations","firstName","combineValidators","isNotEmptyString","fieldIsRequired","lastName","phoneNumber","email","isEmail","emailIsInvalidError","isChecked","isTrue","attendance","isNotNull","timeSlot","getValidators","handleSubmit","throttle","async","data","formikHelpers","formSubmitUrl","onSubmittedFunction","formTranslations","genericError","setStatus","formikSetStatus","setSubmitting","formikSetSubmitting","resetForm","formikResetForm","request","formatISO","representation","sourceUrl","window","location","href","response","makePostRequest","state","message","onSubmit","formSubmitThrottleWaitMs","initialFormValues","phone","areTermsAccepted","comment","Formik","initialValues","validateOnBlur","values","_ref","status","Form","noValidate","FormFieldInputText","labelFieldFirstName","maxLength","labelFieldLastName","labelFieldEmail","inputMode","labelFieldPhoneNumber","FormFieldSelect","labelFieldAttendance","calendarTranslations","labelFieldTimeSlot","shouldUpdate","update","updateTimeSlotsFieldOnDatePick","formik","updateValues","touched","disabled","FormFieldTextArea","labelFieldComment","emDash","fieldIsOptional","placeholder","placeholderFieldComment","autoGrow","FormFieldCheckbox","HtmlDiv","html","Button","htmltype","size","ButtonSize","Large","tier","ButtonTier","Secondary","ButtonType","Solid","labelSubmitButton","ApplicationError","body","ActivityIndicator","active","cover","BookMeetingFormConfirmation","confirmationMessage","buttonLabel","Medium","Tertiary","BookMeetingOverlayContent","formHeading","confirmationHeading","confirmationButtonLabel","restProps","isSubmitted","setIsSubmitted","MessageBroker","publish","BookMeetingSection","callToAction","teaser","renderCallToAction","overlayContent","WithOverlay","close","triggerButtonProps","ImageBackgroundCallToAction","description","variant","asHtmlString","styles","assertNever","BookMeetingSectionBlock","bookingConfirmationHeading","bookingConfirmationMessage","callToActionType","callToActionLabel","callToActionLink","commonProps","getCallToActionProps","ButtonWithOverlay","closeLabel","labelCloseOverlayButton","overlayLabel","labelOverlay","labelBookingConfirmationButton","invalidEmail","Link","KristianiaLogoVariant","GlobalContextProvider","getProperty","GLOBAL_CONTEXT","getLogoSettings","_GlobalContextProvide","logoSettings","headerVariant","Default","defaultAltText","getFrontendSettings","_GlobalContextProvide2","frontendSettings","checkboxVariant","CheckboxVariant","_GlobalContextProvide3","mapToLanguageCode","contentLanguage","getMyPageGlobalConfiguration","myPageGlobalConfiguration","isSpaPage","isModernPage","useFrontendSettings","useMemo","getContentLocale","mapToLocale","ExecutionContext","IsServerSide","ThrowIfServerSide","Error","ThemeContext","ThemeContextProvider","Provider","context","pageTheme","themeModernValues","themeDefaultValues","getPageTheme","subscribe","handler","messageId","handlers","this","MessageHandlersByMessageId","unsubscribe","h","GetMessageHandlers","handle","schedulePublish","delay","Message","onMessage","onMessageRef","useVariableWithStableRef","useLayoutEffect","event","Collapse","ModalWrapper","visible","modal","Wrapper","wrapperProps","BackgroundMediaSection","image","video","caption","author","wrapperClassName","contentClassName","mediaClassName","layout","overlayVariant","getMediaElement","mediaClass","Media","src","autoPlay","playsInline","muted","loop","preload","Picture","profile","PictureProfiles","fullWidth","PicturePlaceholder","logoWrapperClassName","PlaceholderLogoWrapper","mediaContent","getMediaElementWithCaption","mediaElement","Figure","Content","passThroughProps","Clear","ThemedButton","RawButton","otherProps","_excluded2","contextualTheme","additionalProps","_excluded3","withBoxShadow","getHeight","content","scrollHeight","onRest","withMarginTransition","rest","toggleStyles","height","setHeight","useState","overflow","setOverflow","visibility","setVisibility","isMounted","useIsMounted","useEffect","requestAnimationFrame","useCollapse","willChange","onTransitionEnd","target","propertyName","restDivProps","dangerouslySetInnerHTML","__html","HtmlHeading","Primary","Outline","TimeFrameSwitcher","customHeaderProps","onSelectionChanged","withWeekNumbers","useChangeObserver","buttonBaseProps","XSmall","DatePicker","calendarRef","renderCustomHeader","restOfProps","ReactDatePicker","monthClassName","shouldDayBeHidden","shouldDayBeHighlighted","showWeekNumbers","today","selected","mapToDateLocale","calendarStartDay","inline","showPopperArrow","dayDate","isSelected","isToday","isHidden","isDisabled","isHighlighted","getPropsFromConfig","FloatingWrapper","ariaLabelledby","FocusTrap","focusTrapOptions","allowOutsideClick","onDeactivate","axiosWrapper","axios","create","paramsSerializer","indexes","interceptors","use","headers","set","hasBeenChanged","render","FastField","field","form","formProps","readValidationErrorFromFormik","submitCount","augmentedProps","validateField","fieldValue","setFieldValue","setFieldTouched","displayName","defaultProps","FormFieldTypeCheckbox","showInlineError","ariaDescribedBy","FormFieldTypeInputText","_this$props","selectProps","FormFieldTypeSelect","FormFieldTypeTextArea","checkboxId","errorId","checked","htmlFor","inputRef","trim","defaultValue","selectRef","showCharacterCounter","textareaValue","charactersLeft","val","_len","combinedValidatorOptions","Array","_key","validator","isValidStudyVariantsList","isArray","isNotEmptyObject","isNotEmptyArray","isAlphaNumericString","HasOnlyDigitsAndLetters","matches","match","isPersonalNumberValidAsync","isString","personalNumber","defaultValidationResult","personalNumberValidationUrl","REGEXP_EMAIL","test","isShallowEqual","a","b","REGEXP_COUNTRY_CODE","isValidCountryCodeFormat","REGEXP_PHONE_NUMBER","isValidPhoneNumber","REGEXP_NORWEGIAN_PHONE_NUMBER","isValidNorwegianPhoneNumber","formikErrors","formikTouched","fieldPath","fieldError","getIn","Asterisk","dataLayer","_GtmEventsBase","pushGtmPageStats","gtmPageStatsViewModel","properties","eventName","payLoad","getHTMLHeading","Info","Heading","Description","renderContent","showIsExternal","LinkType","buttonTier","buttonType","filteredProps","omitProperty","elementToRender","ThemedButtonLink","RawLink","labelClassName","LinkVariant","LegacyPrimary","buttonSize","external","buttonStyles","rel","Label","ExternalIcon","Language","englishLocale","language","English","Norwegian","code","portalContainerId","ClientSidePortal","portalContainer","document","getElementById","isAttachedToDOM","setIsAttachedToDOM","elementReference","createElement","appendChild","removeChild","portalContent","createPortal","Portal","isFocusTrapActive","isScrollLocked","shouldHideMainScrollBar","focusTrapDeactivationClose","buttonClickClose","isOpened","closeRef","shouldDeactivateInvokeCloseRef","_closeRef$current","call","useCloseHandlersWithoutDuplicatedCalls","ScrollLock","isLocked","clickOutsideDeactivates","escapeDeactivates","tabIndex","constructImageSharpUrl","baseUrl","width","url","alt","focalPoint","lazyLoading","createPicture","pictureUrl","pictureAlt","pictureProfile","mainSource","sources","sourceSizes","sizes","join","sourceSrcSets","allowedWidths","srcSet","defaultWidth","objectPosition","point","xPosition","clamp","x","yPosition","y","getPosition","loading","threeColumnsElement","fourColumnsElement","sixColumnsElement","horizontal","vertical","callout","contentCard","studyPortfolioItem","galleryItemSquare","galleryItemVertical","galleryItemHorizontal","mainPosterVertical","LogoWrapper","Logo","iconPath","assetPathBuilder","SvgIconBase","path","xlinkHref","filled","formattedIconName","iconNameMapper","formattedAssetsPath","formatPath","assetsPath","formattedBuildHash","buildHash","filledResources","payload","post","error","isAxiosError","_error$response$data","toString","startsWith","lang","durationUnits","isDurationUnit","unit","includes","formatDateShort","currentLanguage","formatDateShortWithTime","formatDateLong","formatDateLongWithTime","formatDateDayMonth","formatDayName","formatDayShort","_","isInterchangeable","element","object","args","omit","checkEquals","JSON","stringify","makePostRequestOld","params","objectAssignToEmptyFields","source","fields","entries","oldVal","newVal","cloneArrayAndUpdateSingleItem","item","updateFunction","index","indexOf","updatedItem","slice","moneyToString","money","amountFormatted","formatAmount","amount","currencyFormatted","formatCurrency","currencyCode","parts","split","replace","currency","formatNumber","toLocaleString","redirect","origin","reload","ms","Promise","resolve","scrollToElement","behavior","block","scrollIntoView","smoothScrollToSectionById","section","smoothScrollToSectionByRef","scrollToTop","scrollTo","isTruthy","getCurrentUrl","toUrl","URL","protocol","hostname","port","copyTextToClipboard","text","navigator","clipboard","writeText","textArea","top","left","position","select","execCommand","legacyCopyTextToClipboard","combineValidAttributeValues","_len2","_key2","validValues","createArray","factory","count","replaceNotFriendlyCharacters","str","toUpperCase","getLastElementOfArray","array","stripFromHTMLNode","rawHtml","node","RegExp","firstKey","result","next","done","hasAny","items","predicate","isSafari","userAgent","toLowerCase","findClosestParent","potentialResult","parentElement","isInteractiveElement","normalizedTagName","tagName","hasAttribute","hashValue","TextEncoder","encode","hashBuffer","crypto","subtle","digest","Uint8Array","num","padStart","isErrorWithName","errorName","urlJoin","_len3","_key3","InvisibleDiv","Overlay","isActive","isAnimationInProgress","setIsAnimationInProgress","animatedElement","backgroundRef","isOverlayVisible","displayMode","labelId","WrapperElement","CSSTransition","nodeRef","appear","timeout","animationDurationMs","onEnter","onExited","setIsActive","overlayId","isFunction","isEqual","first","second","onChangeRef","isEqualRef","previousData","setPreviousData","_isEqualRef$current","_onChangeRef$current","useClickOutsideElementObserver","callback","handlerRef","handleClick","_handlerRef$current","elem","Node","contains","isAttachedToDocument","addEventListener","removeEventListener","setIsMounted","variable","variableRef","useRef","lockedClassName","hiddenScrollBarClassName","scrollPosition","setScrollPosition","scrollPositionRef","scrollY","pageYOffset","unlock","classList","remove","paddingRight","ScrollLockUpdated","scrollBarWidth","innerWidth","offsetWidth","add","isScrollBarVisible","lock","themeRoundedCornersValues","r","o","t","f","n","module","exports","clsx","obj","_moment2","__esModule","default","easter","Math","floor","c","d","l","n0","getEaster","subtract","startOf","webpackContext","req","webpackContextResolve","__webpack_require__","_setPrototypeOf","p","setPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","isNodeFound","componentNode","ignoreClass","correspondingElement","seed","passiveEventSupport","uid","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","instance","handlerOptions","passive","preventDefault","WrappedComponent","_class","_temp","componentName","_Component","subClass","superClass","onClickOutside","_this","__outsideClickHandler","__clickOutsideHandlerProp","getInstance","handleClickOutside","__getComponentNode","setClickOutsideRef","findDOMNode","enableOnClickOutside","_uid","defineProperty","get","noop","testPassiveEventSupport","events","eventTypes","evt","initTimeStamp","timeStamp","stopPropagation","excludeScrollbar","documentElement","clientWidth","clientX","clientHeight","clientY","parentNode","host","findHighest","composed","composedPath","outsideClickIgnoreClass","disableOnClickOutside","fn","getRef","instanceRef","performance","prototype","_proto","isReactComponent","componentDidMount","componentDidUpdate","componentWillUnmount","excluded","i","sourceKeys","_objectWithoutPropertiesLoose","wrappedRef","Component","getClass","k","Symbol","for","m","hasOwnProperty","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","__self","__source","q","g","$$typeof","_owner","jsx","jsxs","date_","isNaN","RangeError","tzOffset","dateDelimiter","timeDelimiter","getDate","offset","getTimezoneOffset","absoluteOffset","abs","trunc","getHours","getMinutes","getSeconds","laterDate","earlierDate","dateLeft_","dateRight_","interval","time","startTime","endTime","sort"],"sourceRoot":""}