@city-of-helsinki/react-helsinki-headless-cms 2.1.0-canary-14a2227 → 3.0.0-canary-c9e88cb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apollo.js +1 -1
- package/dist/{archiveSearchPageContent.module-DmpLBZP5.js → archiveSearchPageContent.module-C9CJHPiZ.js} +6 -3
- package/dist/archiveSearchPageContent.module-C9CJHPiZ.js.map +1 -0
- package/dist/cjs/apollo.js +1 -1
- package/dist/cjs/{archiveSearchPageContent.module-Hcb4WVMf.js → archiveSearchPageContent.module-jBTW0FNY.js} +6 -3
- package/dist/cjs/archiveSearchPageContent.module-jBTW0FNY.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/index.js +2 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/archiveSearchPageContent.module-DmpLBZP5.js.map +0 -1
- package/dist/cjs/archiveSearchPageContent.module-Hcb4WVMf.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"archiveSearchPageContent.module-Hcb4WVMf.js","sources":["../../src/core/configProvider/configContext.ts","../../src/core/configProvider/useConfig.ts","../../src/common/headlessService/constants.ts","../../src/core/configProvider/useHeadlessCmsLink.ts","../../node_modules/classnames/index.js","../../node_modules/style-inject/dist/style-inject.es.js","../../src/core/link/LinkBase.tsx","../../src/core/utils/getChildrenByType.ts","../../src/core/utils/recursiveMap.ts","../../src/core/utils/findAllElementsOfType.ts","../../src/core/link/Link.tsx","../../src/core/linkBox/LinkBox.tsx","../../src/common/constants.ts","../../src/core/language/constants.ts","../../src/core/language/findLanguage.ts","../../src/core/language/languageSorter.ts","../../src/core/language/toPrimaryLanguageOption.ts","../../src/core/language/typeGuards.ts","../../src/core/translation/getTranslationWithFallback.ts","../../src/core/translation/useTranslationWithFallback.tsx","../../src/core/navigation/Navigation.tsx","../../src/common/utils/makeLocaleStorageValue.ts","../../src/common/components/text/Text.tsx","../../src/common/components/htmlToReact/replaceComponents/DefaultH2.tsx","../../src/common/components/htmlToReact/replaceComponents/DefaultP.tsx","../../src/common/components/htmlToReact/replaceComponents/IframeForEmbeddedMedia.tsx","../../src/core/utils/validateTrustedOriginsFormat.ts","../../src/core/utils/isTrustedOrigin.ts","../../src/common/components/htmlToReact/HtmlToReact.tsx","../../src/common/utils/hash.ts","../../src/core/notification/utils/getNotificationHash.ts","../../src/core/notification/utils/getIsNotificationActive.ts","../../src/core/notification/Notification.tsx","../../src/core/page/Page.tsx","../../src/common/components/list/List.tsx","../../src/core/pageContent/sidebarContent/SidebarContentLinkList.tsx","../../src/common/utils/testImage.ts","../../src/core/hooks/useResolveImageUrl.ts","../../src/core/image/Image.tsx","../../src/common/utils/dates.ts","../../src/core/pageContent/sidebarContent/SidebarContentCard.tsx","../../src/core/pageContent/sidebarContent/SidebarPostListItem.tsx","../../node_modules/html-entities/dist/esm/named-references.js","../../node_modules/html-entities/dist/esm/numeric-unicode-map.js","../../node_modules/html-entities/dist/esm/surrogate-pairs.js","../../node_modules/html-entities/dist/esm/index.js","../../src/core/utils/string.ts","../../src/core/pageModules/CardsModule/Icon.tsx","../../src/core/pageModules/CardsModule/SimpleCard.tsx","../../src/core/pageContent/sidebarContent/SidebarCardsList.tsx","../../src/core/pageContent/sidebarContent/SidebarContent.tsx","../../src/common/components/container/Container.tsx","../../src/core/contentContainer/ContentContainer.tsx","../../src/core/hero/Hero.tsx","../../src/common/components/tag/tagThemes.tsx","../../src/common/components/tag/Tag.tsx","../../src/core/image/BackgroundImage.tsx","../../src/core/pageSection/PageSection.tsx","../../src/core/pageContent/PageContentLayout.tsx","../../src/core/pageContent/PageMainContent.tsx","../../src/core/pageContent/meta/PageMeta.tsx","../../src/core/carousel/constants.ts","../../src/core/carousel/context/CarouselContext.ts","../../src/core/carousel/context/CarouselContextProvider.tsx","../../src/core/carousel/utils/utils.ts","../../src/core/carousel/components/CarouselSliderPage.tsx","../../src/core/carousel/components/CarouselSlider.tsx","../../src/core/carousel/components/CarouselSlideButton.tsx","../../src/core/carousel/components/CarouselSliderDot.tsx","../../src/core/carousel/Carousel.tsx","../../src/core/card/Card.tsx","../../src/common/components/grid/Grid.tsx","../../src/common/eventsService/__generated__.ts","../../src/core/configProvider/useEventsApolloClientFromConfig.ts","../../src/core/configProvider/useVenuesApolloClientFromConfig.ts","../../src/common/venuesService/__generated__.ts","../../src/linkedEvents/utils/normalizeKey.ts","../../src/linkedEvents/utils/normalizeKeys.ts","../../src/core/collection/constants.ts","../../src/core/collection/utils.ts","../../src/core/button/LoadingButton.tsx","../../src/core/collection/Collection.tsx","../../src/core/pageModules/ContentModule/ContentModule.tsx","../../src/core/pageModules/CardModule/CardModule.tsx","../../src/core/utils/createHashKey.ts","../../src/core/pageModules/CardsModule/CardsModule.tsx","../../src/core/imageGallery/ImageGalleryContext.tsx","../../src/core/imageGallery/ImageGalleryProvider.tsx","../../src/core/imageGallery/useImageGalleryContext.ts","../../src/core/imageGallery/ImageItem.tsx","../../src/core/imageGallery/ImagesGrid.tsx","../../src/core/imageGallery/Lightbox.tsx","../../src/core/imageGallery/ImageGallery.tsx","../../src/core/pageModules/ImageGalleryModule/ImageGalleryModule.tsx","../../src/core/pageModules/StepsModule/StepsModule.tsx","../../src/core/pageContent/PageContentBreadcrumb.tsx","../../src/core/pageModules/SocialMediaFeedModule/SocialMediaFeedModule.tsx","../../src/core/pageContextProvider/PageContext.tsx","../../src/core/pageContextProvider/PageContextProvider.tsx","../../src/core/pageContent/PageContent.tsx"],"sourcesContent":["import type React from 'react';\nimport { createContext } from 'react';\nimport type { ApolloClient, NormalizedCacheObject } from '@apollo/client';\nimport type { ButtonPresetTheme, ButtonTheme, ButtonVariant } from 'hds-react';\n\nimport type {\n ArticleType,\n LanguageCodeEnum,\n PageType,\n} from '../../common/headlessService/types';\nimport type { ModuleItemTypeEnum } from '../../common/headlessService/constants';\nimport type { EventType } from '../../common/eventsService/types';\nimport type { VenueType } from '../../common/venuesService/types';\nimport type { CardProps } from '../card/Card';\nimport type { HtmlToReactProps } from '../../common/components/htmlToReact/HtmlToReact';\nimport type {\n FallbackTranslations,\n OptionalTranslationsWithFallbacks,\n} from '../translation/types';\nimport { defaultConfig } from './defaultConfig';\n\nexport type Config = {\n /**\n * Site or App name.\n */\n siteName: string;\n /**\n * Id of the html element where SkipTo link will point.\n */\n mainContentId?: string;\n /**\n * Internal origins for generating correct urls for app routing.\n */\n internalHrefOrigins: string[];\n /**\n * List of organizations for additional UI highlights (f.e. check icon after title if its Helsinki specific item).\n */\n organisationPrefixes: string[];\n /**\n * Current language code of the app.\n */\n currentLanguageCode: LanguageCodeEnum;\n /**\n * Fallback image urls. Used if image is not defined, but imaage is still required in the component.\n */\n fallbackImageUrls: string[];\n /**\n * Fallback translations.\n */\n fallbackTranslations: FallbackTranslations;\n /**\n * Translated texts which are needed to render components properly.\n */\n copy: {\n breadcrumbNavigationLabel: string;\n breadcrumbListLabel: string;\n menuButtonLabel: string;\n menuToggleAriaLabel: string;\n skipToContentLabel: string;\n openInExternalDomainAriaLabel: string;\n openInNewTabAriaLabel: string;\n closeButtonLabelText: string;\n loadMoreButtonLabelText: string;\n showAllText: string;\n next: string;\n previous: string;\n archiveSearch?: {\n title: string;\n searchTextPlaceholder: string;\n searchButtonLabelText: string;\n loadMoreButtonLabelText: string;\n noResultsTitle: string;\n noResultsText: string;\n clearAll: string;\n };\n } & OptionalTranslationsWithFallbacks;\n /**\n * Custom translated texts which are needed to render components properly.\n * Used when for technical reasons the use of the copy property is not possible.\n */\n customCopy?: {\n loadMoreButtonVariant?: Exclude<ButtonVariant, 'supplementary'>;\n loadMoreButtonTheme?: ButtonTheme | ButtonPresetTheme;\n };\n /**\n * React component replacements for defined html elements.\n */\n components: {\n A: (props: React.AnchorHTMLAttributes<HTMLAnchorElement>) => JSX.Element;\n Img: (props: React.ImgHTMLAttributes<HTMLImageElement>) => JSX.Element;\n Link?: (\n props: React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => JSX.Element;\n Head?: (props: { children: React.ReactNode }) => JSX.Element;\n EventCardContent?: React.FC<Record<string, unknown>>;\n VenueCardContent?: React.FC<Record<string, unknown>>;\n ArticleCardContent?: React.FC<Record<string, unknown>>;\n HelsinkiCityOwnedIcon?: React.FC<Record<string, unknown>>;\n };\n /**\n * Apollo client to make gql calls to headless cms.\n */\n apolloClient?: ApolloClient<NormalizedCacheObject>;\n /**\n * Apollo client to make gql calls to linked events.\n */\n eventsApolloClient?: ApolloClient<NormalizedCacheObject> | 'disabled';\n /**\n * Apollo client to make gql calls to venues search.\n */\n venuesApolloClient?: ApolloClient<NormalizedCacheObject> | 'disabled';\n /**\n * Utilities custom implementation provided by apps (app specific).\n */\n utils: {\n getArticlePageCardProps: (item: ArticleType | PageType) => CardProps;\n getEventCardProps: (\n item: EventType,\n organisationPrefixes: string[],\n locale: string,\n ) => CardProps;\n getLocationCardProps: (item: VenueType) => CardProps;\n getIsHrefExternal: (href: string) => boolean;\n getRoutedInternalHref: (\n link: string | null | undefined,\n type?: ModuleItemTypeEnum,\n ) => string;\n redirectToUrl: (url: string) => void;\n redirectToArticlesSearch?: (tag: string) => void;\n };\n /**\n * Meta data for the Head components.\n */\n meta?: {\n appleTouchIconUrl?: string;\n favIconUrl?: string;\n favIconSvgUrl?: string;\n manifestUrl?: string;\n };\n /**\n * App specific html sanitising configs for html editors.\n */\n htmlSanitizer: {\n allowedUnsafeTags: HtmlToReactProps['allowedUnsafeTags'];\n trustedOrigins: HtmlToReactProps['trustedOrigins'];\n };\n};\n\nexport const configContext = createContext<Config>(defaultConfig);\n","import { useContext } from 'react';\n\nimport type { Config } from './configContext';\nimport { configContext } from './configContext';\n\nconst validateContext = (config?: Config) => {\n if (config === undefined) {\n throw new Error('useConfig must be used within a ConfigProvider');\n }\n if (config.fallbackImageUrls?.length === 0) {\n throw new Error('add at least one fallback background image for events');\n }\n};\n\nexport function useConfig() {\n const config = useContext(configContext);\n validateContext(config);\n\n return config;\n}\n","export enum ModuleItemTypeEnum {\n Article = 'article',\n Page = 'page',\n Link = 'link',\n Event = 'event',\n Venue = 'venue',\n}\n","import { ModuleItemTypeEnum } from '../../common/headlessService/constants';\nimport { getUri } from '../../common/headlessService/utils';\nimport { useConfig } from './useConfig';\n\nexport function useHeadlessCmsLink(\n link: string,\n type: ModuleItemTypeEnum = ModuleItemTypeEnum.Link,\n) {\n const {\n internalHrefOrigins,\n utils: { getIsHrefExternal, getRoutedInternalHref },\n } = useConfig();\n\n const uri = getUri(link, internalHrefOrigins, getIsHrefExternal);\n return getRoutedInternalHref(uri, type);\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import classNames from 'classnames';\nimport { IconLinkExternal, IconSize } from 'hds-react';\nimport React, { Children, isValidElement, useMemo } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\n\nimport styles from './LinkBase.module.scss';\n\n// copied from helsinki-design-system\n// TODO: LinkBase component should be replaced with hds Link, when all features are supported\n// issue is created to hds: https://github.com/City-of-Helsinki/helsinki-design-system/issues/808\n\nexport type LinkProps = Omit<\n React.ComponentPropsWithoutRef<'a'>,\n 'target' | 'href' | 'onPointerEnterCapture' | 'onPointerLeaveCapture'\n> & {\n /**\n * Link content\n */\n children: ReactNode;\n /**\n * Boolean indicating whether visited styles of the link are applied\n */\n disableVisitedStyles?: boolean;\n /**\n * Boolean indicating whether the link will lead user to external domain.\n */\n external?: boolean;\n /**\n * Boolean indicating whether the link will lead user to external domain.\n */\n showExternalIcon?: boolean;\n /**\n * Hypertext Reference of the link.\n */\n href: string;\n /**\n * Element placed on the left side of the link text\n */\n iconLeft?: React.ReactNode;\n /**\n * Element placed on the right side of the link text\n */\n iconRight?: React.ReactNode;\n /**\n * Boolean indicating whether the link will open in new tab or not.\n */\n openInNewTab?: boolean;\n /**\n * Aria label for opening link in a new tab\n */\n openInNewTabAriaLabel?: string;\n /**\n * Aria label for opening link in an external domain\n */\n openInExternalDomainAriaLabel?: string;\n /**\n * Size of the link\n */\n size?: 'S' | 'M' | 'L';\n /**\n * Additional styles\n */\n style?: React.CSSProperties;\n inlineIcons?: boolean;\n};\n\nconst mapLinkSizeToExternalIconSize: Record<\n NonNullable<LinkProps['size']>,\n IconSize\n> = {\n L: IconSize.Large,\n M: IconSize.Small,\n S: IconSize.ExtraSmall,\n} as const;\n\nconst hasChildren = (\n element: ReactNode,\n): element is ReactElement<{ children: ReactNode[] }> =>\n isValidElement<{ children?: ReactNode[] }>(element) &&\n Boolean(element.props.children);\n\nconst childToString = (child?: ReactNode): string => {\n if (\n typeof child === 'undefined' ||\n child === null ||\n typeof child === 'boolean'\n ) {\n return '';\n }\n\n if (JSON.stringify(child) === '{}') {\n return '';\n }\n\n return (child as number | string).toString();\n};\n\nexport const getTextFromReactChildren = (children: ReactNode): string => {\n if (!(children instanceof Array) && !isValidElement(children)) {\n return childToString(children);\n }\n\n return Children.toArray(children).reduce(\n (text: string, child: ReactNode): string => {\n let newText = '';\n\n if (isValidElement(child) && hasChildren(child)) {\n newText = getTextFromReactChildren(child.props.children);\n } else if (isValidElement(child) && !hasChildren(child)) {\n newText = '';\n } else {\n newText = childToString(child);\n }\n\n return text.concat(newText);\n },\n '',\n ) as string;\n};\n\nfunction LinkBase(\n {\n children,\n className,\n disableVisitedStyles = true,\n external = false,\n showExternalIcon = true,\n href,\n iconLeft,\n iconRight,\n openInNewTab = false,\n openInExternalDomainAriaLabel,\n openInNewTabAriaLabel,\n style = {},\n size = 'M',\n inlineIcons = false,\n ...rest\n }: LinkProps,\n ref: React.Ref<HTMLAnchorElement>,\n) {\n const composeAriaLabel = () => {\n let childrenText = getTextFromReactChildren(children);\n const newTabText = openInNewTab\n ? openInNewTabAriaLabel || 'Avautuu uudessa välilehdessä.'\n : '';\n const externalText = external\n ? openInExternalDomainAriaLabel || 'Siirtyy toiseen sivustoon.'\n : '';\n\n if (\n childrenText &&\n childrenText.slice(-1) !== '.' &&\n (newTabText || externalText)\n ) {\n childrenText = `${childrenText}.`;\n }\n\n const label = [childrenText, newTabText, externalText]\n .filter((text) => text)\n .join(' ');\n if (!label.trim()) {\n return undefined;\n }\n return label;\n };\n\n const ZERO_WIDTH_NO_BREAK_SPACE = '\\uFEFF';\n\n const leftIcon = useMemo(\n () =>\n (iconLeft && (\n <span className={styles.iconLeft} aria-hidden=\"true\">\n {inlineIcons && ZERO_WIDTH_NO_BREAK_SPACE}\n {iconLeft}\n </span>\n )) ||\n null,\n [iconLeft, inlineIcons],\n );\n\n const externalIcon = useMemo(\n () =>\n (showExternalIcon && external && (\n <span className={styles.externalWrapper}>\n {inlineIcons && ZERO_WIDTH_NO_BREAK_SPACE}\n <IconLinkExternal\n size={mapLinkSizeToExternalIconSize[size]}\n className={classNames(\n styles.icon,\n size === 'L'\n ? styles.verticalAlignBigIcon\n : styles.verticalAlignSmallOrMediumIcon,\n )}\n aria-hidden\n />\n </span>\n )) ||\n null,\n [showExternalIcon, external, inlineIcons, size],\n );\n\n const rightIcon = useMemo(\n () =>\n (iconRight && (\n <span\n className={classNames(\n styles.iconRight,\n size === 'L'\n ? styles.verticalAlignBigIcon\n : styles.verticalAlignSmallOrMediumIcon,\n )}\n aria-hidden=\"true\"\n >\n {inlineIcons && ZERO_WIDTH_NO_BREAK_SPACE}\n {iconRight}\n </span>\n )) ||\n null,\n [iconRight, inlineIcons, size],\n );\n\n return (\n <a\n className={classNames(\n styles.link,\n styles[`link${size}`],\n disableVisitedStyles ? styles.disableVisitedStyles : '',\n className,\n )}\n href={href}\n style={style}\n ref={ref}\n target={openInNewTab ? '_blank' : undefined}\n rel={openInNewTab ? 'noopener noreferrer' : undefined}\n aria-label={composeAriaLabel()}\n {...rest}\n >\n {!inlineIcons && leftIcon}\n <span\n className={classNames(styles.content, iconLeft && styles.withLeftIcon)}\n >\n {inlineIcons && leftIcon}\n {children}\n {inlineIcons && externalIcon}\n {inlineIcons && rightIcon}\n </span>\n {!inlineIcons && externalIcon}\n {!inlineIcons && rightIcon}\n </a>\n );\n}\n\nexport default React.forwardRef<HTMLAnchorElement, LinkProps>(LinkBase);\n","import React from 'react';\n\n/**\n * Gets the string type of the component or core html (JSX) element.\n * React Fragments will return type 'react.fragment'.\n * Priority will be given to the prop '__TYPE'.\n */\nexport const typeOfComponent = (component: React.ReactElement): string =>\n // eslint-disable-next-line no-underscore-dangle\n component?.props?.__TYPE ||\n component?.type\n ?.toString()\n .replace('Symbol(react.fragment)', 'react.fragment') ||\n undefined;\n\n/**\n * Gets all children by specified type.\n * This function will check the prop '__TYPE' first\n * and then the 'type' string to match core html elements.\n * To find a React Fragment, search for type 'react.fragment'.\n *\n * @example\n * // Finds all occurrences of ToDo (custom component), div, and React Fragment\n * getChildrenByType(children, ['ToDo', 'div', 'react.fragment']);\n */\nexport const getChildrenByType = (\n children: React.ReactNode,\n types: string[],\n): React.ReactNode[] =>\n React.Children.toArray(children).filter(\n (child) =>\n React.isValidElement(child) &&\n types.indexOf(typeOfComponent(child)) !== -1,\n );\n","import React from 'react';\n\n/**\n * Recursively loops through the children of a ReactNode\n * and runs the given function from arguments to the every child.\n *\n * If the child is a ReactElement and it has children,\n * the children will be recursively called with the given function.\n *\n * If the child is not a valid ReactElement,\n * which would mean that it is for example a string content of an HTML-element,\n * it is directly returned.\n *\n * See the unit tests for some examples.\n */\nexport const recursiveMap = (\n children: React.ReactNode,\n fn: (children: React.ReactNode) => React.ReactNode,\n): React.ReactNode =>\n React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) {\n // Strings inside HTML elements, etc.\n return child;\n }\n\n if (child.props.children) {\n // Make a recursive call to find the last node\n return fn(\n React.cloneElement(child as React.ReactElement, {\n children: recursiveMap(child.props.children, fn),\n }),\n );\n }\n // Should never(?) come here\n return fn(child);\n })?.flat();\n","import { getChildrenByType } from './getChildrenByType';\nimport { recursiveMap } from './recursiveMap';\n\n/**\n * Find all elements of defined types recursively from a ReactNode.\n * @returns a list of elements of specified types that could be found from inside the ReactNode.\n */\nexport const findAllElementsOfType = (\n children: React.ReactNode,\n types: string[],\n) => {\n const elementsOfType: React.ReactNode[] = [];\n recursiveMap(children, (child) => {\n elementsOfType.push(getChildrenByType(child, types));\n return child;\n });\n return elementsOfType.flat();\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { IconEnvelope, IconPhone, IconSize } from 'hds-react';\n\nimport LinkBase from './LinkBase';\nimport { useConfig } from '../configProvider/useConfig';\nimport styles from './Link.module.scss';\nimport { findAllElementsOfType } from '../utils/findAllElementsOfType';\n\nexport type LinkProps = Omit<\n React.ComponentPropsWithoutRef<'a'>,\n 'target' | 'href' | 'onPointerEnterCapture' | 'onPointerLeaveCapture'\n> & {\n /**\n * Link href.\n */\n href?: string;\n /**\n * Link left icon component.\n */\n iconLeft?: React.ReactNode;\n /**\n * Link right icon component.\n */\n iconRight?: React.ReactNode;\n /**\n * Boolean indicating whether the external icon is shown.\n */\n showExternalIcon?: boolean;\n /**\n * Boolean indicating whether the link should be opened in a new tab.\n */\n openInNewTab?: boolean;\n /**\n * Link text font size.\n */\n size?: 'S' | 'M' | 'L';\n /**\n * Link variant.\n */\n variant?: 'default' | 'arrowRight';\n /**\n * Additional children to render inside the Link.\n */\n children?: React.ReactNode;\n /**\n * Additinal classname applied to the Link.\n */\n className?: string;\n /**\n * Boolean indicating whether the icons should be displayed with inline styling.\n */\n inlineIcons?: boolean;\n};\n\n// TODO: LinkBase component should be replaced with hds Link, when all features are supported\n// issue is created to hds: https://github.com/City-of-Helsinki/helsinki-design-system/issues/808\n\nexport function Link({\n href = '#',\n children,\n showExternalIcon: forceShowExternalIcon,\n openInNewTab: forceOpenInNewTab,\n className,\n size = 'M',\n iconRight,\n inlineIcons,\n ...delegatedProps\n}: LinkProps) {\n const {\n utils: { getIsHrefExternal },\n components: { Link: RoutedLink },\n copy: { openInExternalDomainAriaLabel, openInNewTabAriaLabel },\n } = useConfig();\n\n const isEmail = href?.startsWith('mailto:') || undefined;\n const isPhone = href?.startsWith('tel:') || undefined;\n const isExternal = getIsHrefExternal(href) && !isEmail && !isPhone;\n const iconSize = size === 'S' ? IconSize.ExtraSmall : IconSize.Small;\n const hasImageInLink = findAllElementsOfType(children, ['img']).length > 0;\n // The external links should always open in a new tab.\n const openInNewTab = forceOpenInNewTab ?? isExternal;\n // If the link contains an image, the external icon should be hidden by default,\n // because an icon next to image does not look good.\n const showExternalIcon =\n forceShowExternalIcon ?? (isExternal && !hasImageInLink);\n const linkComponent = (\n <LinkBase\n size={size}\n {...delegatedProps}\n href={href}\n openInNewTab={openInNewTab}\n external={isExternal}\n showExternalIcon={showExternalIcon}\n className={classNames(styles.link, className, {\n [styles.imgLink]: hasImageInLink,\n })}\n openInExternalDomainAriaLabel={openInExternalDomainAriaLabel}\n openInNewTabAriaLabel={openInNewTabAriaLabel}\n iconRight={\n iconRight ??\n (isEmail && <IconEnvelope size={iconSize} aria-hidden />) ??\n (isPhone && <IconPhone size={iconSize} aria-hidden />)\n }\n inlineIcons={inlineIcons}\n disableVisitedStyles\n >\n {children ?? ''}\n </LinkBase>\n );\n\n return isExternal || typeof RoutedLink === 'undefined' ? (\n // ts(2786) - Type 'Element | { linkComponent: Element; }' is not assignable to type 'ReactNode'.\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>{linkComponent}</>\n ) : (\n <RoutedLink href={href}>{linkComponent}</RoutedLink>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { Link } from '../link/Link';\nimport styles from './LinkBox.module.scss';\n\nexport type LinkProps = Omit<React.ComponentPropsWithoutRef<'a'>, 'target'> & {\n /**\n * Link left icon component.\n */\n iconLeft?: React.ReactNode;\n /**\n * Link right icon component.\n */\n iconRight?: React.ReactNode;\n /**\n * Boolean indicating whether the link should be opened in a new tab.\n */\n openInNewTab?: boolean;\n /**\n * Boolean indicating whether flex attribute should be added to the container of the link.\n */\n flex?: boolean;\n};\n\n// TODO: this component should be replaced with hds one, when all layouts and directions are supported\n// issue is created to hds: https://github.com/City-of-Helsinki/helsinki-design-system/issues/809\n\nexport function LinkBox({ children, flex, ...delegatedProps }: LinkProps) {\n return (\n <div className={classNames(styles.linkBoxWrapper, flex && styles.flex)}>\n {children}\n <Link\n {...delegatedProps}\n className={styles.linkBox}\n showExternalIcon={false}\n />\n </div>\n );\n}\n","export const MAIN_CONTENT_ID = 'main-content';\nexport const TOP_LEVEL_MENU_ITEM_PARENT_ID = 'null_parent_id' as const;\n","import { LanguageCodeEnum } from '../../common/headlessService/types';\n\n/** Default order for sorting languages. */\nexport const LANGUAGE_CODE_ORDINAL_NUMBER = {\n [LanguageCodeEnum.Fi]: 1, // 1st\n [LanguageCodeEnum.Sv]: 2, // 2nd\n [LanguageCodeEnum.En]: 3, // 3rd\n} as const satisfies Record<LanguageCodeEnum, number>;\n","import type { Language } from '../../common/headlessService/types';\n\n/**\n * Find language from language list by language code.\n * @param {Language[]} languages - List of languages\n * @param {string} languageCode - Language code\n * @returns {Language | undefined} Language from given language list with the given\n * language code or undefined if not found\n */\nfunction findLanguage(\n languages: Language[],\n languageCode: string,\n): Language | undefined {\n return languages.find(\n (language) => language.code?.toLowerCase() === languageCode.toLowerCase(),\n );\n}\n\nexport default findLanguage;\n","import { LANGUAGE_CODE_ORDINAL_NUMBER } from './constants';\nimport type { NonEmptyLanguage } from './types';\n\n/** Sorting function for NonEmptyLanguage elements. */\nconst languageSorter = (left: NonEmptyLanguage, right: NonEmptyLanguage) =>\n Math.sign(\n LANGUAGE_CODE_ORDINAL_NUMBER[left.code] -\n LANGUAGE_CODE_ORDINAL_NUMBER[right.code],\n );\n\nexport default languageSorter;\n","import type { LanguageOption } from 'hds-react';\n\nimport type { NonEmptyLanguage } from './types';\n\n/** Map a NonEmptyLanguage to a primary LanguageOption. */\nconst toPrimaryLanguageOption = (\n language: NonEmptyLanguage,\n): LanguageOption => ({\n label: language.name ?? '',\n value: language.code?.toLowerCase() ?? '',\n isPrimary: true,\n});\n\nexport default toPrimaryLanguageOption;\n","import type { NonEmptyLanguage } from './types';\nimport type { Language } from '../../common/headlessService/types';\n\nexport const isNonEmptyLanguage = (\n language?: Language | null,\n): language is NonEmptyLanguage => Boolean(language?.name && language?.code);\n","import type { LanguageCodeEnum } from '../../common/headlessService/__generated__';\nimport type { Config } from '../configProvider/configContext';\nimport type { FallbackTranslationKey } from './types';\n\nexport const getTranslationWithFallback = (\n config: Config,\n field: FallbackTranslationKey,\n language: LanguageCodeEnum,\n): string => config.copy[field] ?? config.fallbackTranslations[field][language];\n","import { useConfig } from '../configProvider/useConfig';\nimport type { FallbackTranslationKey } from './types';\nimport { getTranslationWithFallback } from './getTranslationWithFallback';\n\nexport function useTranslationWithFallback() {\n const config = useConfig();\n const { currentLanguageCode } = config;\n const t = (field: FallbackTranslationKey) =>\n getTranslationWithFallback(config, field, currentLanguageCode);\n return { t };\n}\n","import React from 'react';\nimport { groupBy } from 'lodash-es';\nimport type { LanguageOption } from 'hds-react';\nimport { Header, Logo, LogoSize } from 'hds-react';\n\nimport type { Config } from '../configProvider/configContext';\nimport type { Language, Menu } from '../../common/headlessService/types';\nimport { useConfig } from '../configProvider/useConfig';\nimport {\n MAIN_CONTENT_ID,\n TOP_LEVEL_MENU_ITEM_PARENT_ID,\n} from '../../common/constants';\nimport {\n findLanguage,\n isNonEmptyLanguage,\n languageSorter,\n toPrimaryLanguageOption,\n} from '../language';\nimport { useTranslationWithFallback } from '../translation/useTranslationWithFallback';\n\ntype MenuItem = Omit<\n NonNullable<NonNullable<Menu>['menuItems']>['nodes'][0],\n '__typename'\n>;\n\nexport type NavigationProps = {\n menu?: Menu;\n universalBarMenu?: Menu;\n languages?: Language[];\n className?: string;\n userNavigation?: React.ReactNode;\n onTitleClick: () => void;\n getPathnameForLanguage: (\n language: Language,\n currentLanguage: Language,\n allLanguages: Language[],\n ) => string;\n getIsItemActive?: (menuItem: MenuItem) => boolean;\n};\n\ninterface MenuItemChildren {\n [menuItemId: string]: MenuItem[];\n}\n\ntype MenuLinkProps = {\n menuItemChildren?: MenuItemChildren;\n navigationItem: MenuItem;\n getRoutedInternalHref: Config['utils']['getRoutedInternalHref'];\n getIsItemActive: NavigationProps['getIsItemActive'];\n A: Config['components']['A'];\n};\n\n/**\n * Create a menu link element\n * @param {MenuLinkProps} props - Properties, if menuItemChildren is undefined then the\n * created element will not have dropdown links\n * @return {React.JSX.Element} Header.Link element\n */\nfunction createMenuLinkElement(props: MenuLinkProps) {\n const {\n menuItemChildren,\n navigationItem,\n getRoutedInternalHref,\n getIsItemActive,\n A,\n } = props;\n return (\n <Header.Link\n as={A}\n id={navigationItem.id}\n key={navigationItem.id}\n title={navigationItem.title ?? undefined}\n label={navigationItem.label ?? ''}\n href={getRoutedInternalHref(navigationItem.path)}\n active={getIsItemActive?.(navigationItem) ?? false}\n dropdownLinks={\n (menuItemChildren?.[navigationItem.id]?.length &&\n menuItemChildren[navigationItem.id]?.map((childNavigationItem) =>\n createMenuLinkElement({\n ...props,\n navigationItem: childNavigationItem,\n }),\n )) ||\n undefined\n }\n />\n );\n}\n\nexport function Navigation({\n menu,\n universalBarMenu,\n languages,\n className,\n userNavigation,\n onTitleClick,\n getPathnameForLanguage,\n getIsItemActive,\n}: NavigationProps) {\n const {\n siteName,\n currentLanguageCode,\n copy: { menuButtonLabel, menuToggleAriaLabel, skipToContentLabel },\n components: { A },\n mainContentId,\n utils: { getRoutedInternalHref, redirectToUrl },\n } = useConfig();\n\n const languagesData = languages || [];\n\n const currentLanguage = findLanguage(languagesData, currentLanguageCode);\n const { t } = useTranslationWithFallback();\n\n const languageOptions: LanguageOption[] = languagesData\n .filter(isNonEmptyLanguage)\n .sort(languageSorter)\n .map(toPrimaryLanguageOption);\n\n const onDidChangeLanguage = (newLanguageCode: string) => {\n const newLanguage = findLanguage(languagesData, newLanguageCode);\n const url =\n newLanguage && currentLanguage\n ? getPathnameForLanguage(newLanguage, currentLanguage, languagesData)\n : undefined;\n if (url) {\n redirectToUrl(url);\n }\n };\n\n const menuItemChildren: MenuItemChildren = groupBy(\n menu?.menuItems?.nodes ?? [],\n (menuItem) => menuItem.parentId ?? TOP_LEVEL_MENU_ITEM_PARENT_ID,\n );\n\n const sharedMenuLinkProps: Omit<\n MenuLinkProps,\n 'navigationItem' | 'menuItemChildren'\n > = {\n getRoutedInternalHref,\n getIsItemActive,\n A,\n };\n\n const overrideHeaderMaxWidth = {\n '--header-max-width': 'var(--breakpoint-xl)', // Would be 1440px if not overridden\n };\n\n /** adding key property allows to update the Header context with dynamic data (rerender the component) so the languages appear when data loaded\n * The fix is usggested by HDS team, they have a ticket about that issue\n * https://helsinkisolutionoffice.atlassian.net/browse/HDS-2174\n */\n return (\n <Header\n key={currentLanguage?.code}\n onDidChangeLanguage={onDidChangeLanguage}\n defaultLanguage={currentLanguage?.code?.toLowerCase()}\n languages={languageOptions}\n className={className}\n style={\n /* HDS v3.4–v3.7 has broken theme support with next.js SSR & hydration.\n * FIXME: Replace with `theme={overrideHeaderMaxWidth}` when HDS theme support is fixed.\n */\n overrideHeaderMaxWidth as React.CSSProperties\n }\n >\n <Header.SkipLink\n skipTo={`#${mainContentId ?? MAIN_CONTENT_ID}`}\n label={skipToContentLabel}\n />\n {universalBarMenu && (\n <Header.UniversalBar\n primaryLinkText={t('headerUniversalBarPrimaryLinkText')}\n primaryLinkHref={t('headerUniversalBarPrimaryLinkHref')}\n >\n {universalBarMenu?.menuItems?.nodes?.map((navigationItem) =>\n createMenuLinkElement({ ...sharedMenuLinkProps, navigationItem }),\n )}\n </Header.UniversalBar>\n )}\n <Header.ActionBar\n titleHref=\"#\"\n logoHref=\"#\"\n menuButtonLabel={menuButtonLabel}\n menuButtonAriaLabel={menuToggleAriaLabel}\n title={siteName}\n onTitleClick={onTitleClick}\n onLogoClick={onTitleClick}\n frontPageLabel={siteName}\n logo={\n <Logo\n size={LogoSize.Large}\n src={t('headerActionBarLogoSrc')}\n alt={t('headerActionBarLogoAlt')}\n />\n }\n logoAriaLabel={t('headerActionBarLogoAriaLabel')}\n >\n <Header.LanguageSelector />\n {userNavigation}\n </Header.ActionBar>\n <Header.NavigationMenu>\n {menuItemChildren[TOP_LEVEL_MENU_ITEM_PARENT_ID]?.map(\n (navigationItem) =>\n createMenuLinkElement({\n ...sharedMenuLinkProps,\n menuItemChildren,\n navigationItem,\n }),\n )}\n </Header.NavigationMenu>\n </Header>\n );\n}\n","import { useCallback, useState } from 'react';\n\ntype Options<T> = {\n serializer?: (value: T) => string;\n deserializer?: (value: string) => T;\n};\n\n// Utility function to check if we are in a browser environment\nconst isBrowser = () => typeof window !== 'undefined';\n\nexport default function makeLocaleStorageValue<T>(\n key: string,\n options?: Partial<Options<T>>,\n) {\n const {\n serializer: serialize = JSON.stringify,\n deserializer: deserialize = JSON.parse,\n } = options ?? {};\n\n return function useLocaleStorageValue(): [T | null, (value?: T) => void] {\n const readValueInLocalStorage = () => {\n if (!isBrowser()) {\n return null;\n }\n try {\n const storedValue = localStorage.getItem(key);\n return storedValue ? deserialize(storedValue) : null;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_) {\n // eslint-disable-next-line no-console\n console.error('Failed to parse value in localStorage', { key });\n }\n\n return null;\n };\n\n const [stateValue, setStateValue] = useState<T | null>(() =>\n readValueInLocalStorage(),\n );\n\n const storeValue = useCallback((value?: T) => {\n if (!isBrowser()) {\n return;\n }\n try {\n if (value) {\n setStateValue(value);\n localStorage.setItem(key, serialize(value));\n } else {\n setStateValue(null);\n localStorage.removeItem(key);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_) {\n // eslint-disable-next-line no-console\n console.error('Failed to save value into localStorage', { key });\n }\n }, []);\n\n return [stateValue, storeValue];\n };\n}\n","import type { ReactNode, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport styles from './text.module.scss';\n\ntype TextVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'body'\n | 'body-l'\n | 'body-xl';\n\ntype TextVariantProps = {\n /**\n * The render html element type for the text.\n */\n as?: string | React.ComponentType<HTMLAttributes<HTMLElement>>;\n /**\n * Text variant option.\n */\n variant?: TextVariant;\n /**\n * Additional classname for the text.\n */\n children: ReactNode;\n /**\n * Additional classname for the text.\n */\n className?: string;\n /**\n * Deprecated\n */\n role?: string;\n};\n\nfunction getElement(variant: TextVariant) {\n switch (variant) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n return variant;\n case 'body':\n case 'body-l':\n default:\n return 'p';\n }\n}\n\nfunction Text({\n as: elementType,\n variant = 'body-l',\n children,\n className,\n ...rest\n}: TextVariantProps) {\n return React.createElement(\n elementType || getElement(variant),\n {\n className: [styles.text, styles[variant], className].join(' '),\n ...rest,\n },\n children,\n );\n}\n\nexport default Text;\n","import React from 'react';\n\nimport Text from '../../text/Text';\n\nexport default function DefaultH2({ children }: { children: React.ReactNode }) {\n return <Text variant=\"h2\">{children}</Text>;\n}\n","import React from 'react';\n\nimport Text from '../../text/Text';\n\nexport default function DefaultP({ children }: { children: React.ReactNode }) {\n return <Text variant=\"body-l\">{children}</Text>;\n}\n","import React from 'react';\n\n/**\n * An iframe HTML-element to securely render\n * a sandboxed version of an embedded video media player, e.g. from the CMS.\n * */\nexport default function IframeForEmbeddedMedia(\n props: React.PropsWithChildren<React.IframeHTMLAttributes<HTMLIFrameElement>>,\n) {\n return (\n // eslint-disable-next-line jsx-a11y/iframe-has-title\n <iframe\n {...props}\n loading=\"lazy\"\n sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation\"\n />\n );\n}\n","export default function validateTrustedOriginsFormat(\n trustedOrigins?: string[],\n) {\n // The URL constructor should throw a TypeError when the URL is not a valid URL:\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/URL#exceptions.\n // However, there are some cases, like `new URL(\"test://not-a-valid-url\").origin`,\n // when the TypeError is not thrown, but the origin is set to 'null'.\n if (trustedOrigins?.some((origin) => new URL(origin).origin === 'null')) {\n throw new Error(\n `Not valid URLs in trustedOrigins: [${trustedOrigins.join(', ')}]`,\n );\n }\n}\n","export default function isTrustedOrigin(\n testedOrigin: string,\n trustedOrigins: string[],\n) {\n return trustedOrigins.includes(new URL(testedOrigin).origin);\n}\n","import React, { useMemo } from 'react';\nimport type { Config } from 'isomorphic-dompurify';\nimport DOMPurify from 'isomorphic-dompurify';\nimport type {\n DOMNode,\n HTMLReactParserOptions,\n Element,\n} from 'html-react-parser';\nimport parse, { domToReact, attributesToProps } from 'html-react-parser';\nimport classNames from 'classnames';\n\nimport styles from './htmlToReact.module.scss';\nimport {\n DefaultH2,\n DefaultP,\n IframeForEmbeddedMedia,\n} from './replaceComponents';\nimport validateTrustedOriginsFormat from '../../../core/utils/validateTrustedOriginsFormat';\nimport isTrustedOrigin from '../../../core/utils/isTrustedOrigin';\n\nconst hasClassName = (domNode: Element, className: string) =>\n domNode.attribs.class?.split(/\\s+/)?.includes(className) ?? false;\n\nconst addClassNames = (\n domNode: Element,\n ...newClassNames: (string | string[] | Record<string, boolean>)[]\n) =>\n classNames(...(domNode.attribs.class?.split(/\\s+/) ?? []), ...newClassNames);\n\nconst WHITELISTED_TAGS = [\n // Content sectioning\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n\n // Text content\n 'blockquote',\n 'dd',\n 'dl',\n 'dt',\n 'figcaption',\n 'figure',\n 'hr',\n 'li',\n 'ol',\n 'p',\n 'pre',\n 'ul',\n\n // Inline text semantics\n 'a',\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'br',\n 'cite',\n 'code',\n 'data',\n 'dfn',\n 'em',\n 'i',\n 'kdb',\n 'mark',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'sup',\n 'time',\n 'u',\n 'var',\n 'wbr',\n\n // Image and multimedia\n 'area',\n 'audio',\n 'img',\n 'map',\n 'track',\n 'video',\n\n // SVG and MathML\n 'svg',\n 'math',\n];\n\nexport const TABLE_VARIANTS = [\n 'dark',\n 'dense',\n 'light',\n 'with-vertical-lines',\n 'zebra',\n] as const;\nexport type TableVariant = (typeof TABLE_VARIANTS)[number];\nexport const DEFAULT_TABLE_VARIANTS: TableVariant[] = ['light'];\n\ntype Components = {\n p?: React.ComponentType<{ children: React.ReactNode }>;\n h2?: React.ComponentType<{ children: React.ReactNode }>;\n a?:\n | React.ComponentType<React.AnchorHTMLAttributes<HTMLAnchorElement>>\n | string;\n table?:\n | React.ComponentType<React.TableHTMLAttributes<HTMLTableElement>>\n | string;\n tableVariants?: TableVariant[];\n img?: React.ComponentType<React.ImgHTMLAttributes<HTMLImageElement>> | string;\n iframe?: React.ComponentType<React.IframeHTMLAttributes<HTMLIFrameElement>>;\n};\n\nexport type HtmlToReactProps = {\n /**\n * Additional children to render inside the grid.\n */\n children: string;\n /**\n * React components for custom html elements transformation.\n */\n components?: Components;\n /**\n * Option to allow unsafe tags, otherwise cleared and not rendered.\n */\n allowedUnsafeTags?: Config['ALLOWED_TAGS'];\n /**\n * Trusted origins for url properties and attributes, for elements such as iframes and scripts.\n */\n trustedOrigins?: string[];\n};\n\n/**\n * Inject HDS core table styles into children of <thead>\n * @see https://hds.hel.fi/components/table/code/\n */\nfunction mapTableHeaderChild(\n domNode: DOMNode,\n options?: HTMLReactParserOptions,\n) {\n if ('attribs' in domNode && domNode.name === 'tr') {\n return (\n <tr\n {...attributesToProps(domNode.attribs)}\n className={addClassNames(domNode, styles['hds-table__header-row'])}\n >\n {domToReact(domNode.children as DOMNode[], options)}\n </tr>\n );\n }\n return domToReact([domNode], options);\n}\n\nfunction replaceDomNodeWithReactComponent(\n domNode: DOMNode,\n options?: HTMLReactParserOptions,\n components: Components = {},\n trustedOrigins: HtmlToReactProps['trustedOrigins'] = [],\n) {\n const {\n p: P = DefaultP,\n h2: H2 = DefaultH2,\n a: A = 'a',\n table: Table = 'table',\n tableVariants = DEFAULT_TABLE_VARIANTS,\n img: IMG = 'img',\n iframe: IFrame = IframeForEmbeddedMedia,\n } = components;\n\n // html-react-parser advices to do an instanceof check\n // domNode instanceof Element\n // However, this will fail between contexts. As this code is meant to be used\n // as a dependency, different contexts are likely.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof#instanceof_and_multiple_context_e.g._frames_or_windows\n if ('attribs' in domNode) {\n switch (domNode.name) {\n case 'p':\n return (\n <P {...attributesToProps(domNode.attribs)}>\n {domToReact(domNode.children as DOMNode[], options)}\n </P>\n );\n\n case 'h2':\n return (\n <H2 {...attributesToProps(domNode.attribs)}>\n {domToReact(domNode.children as DOMNode[], options)}\n </H2>\n );\n\n case 'a':\n return (\n <A {...attributesToProps(domNode.attribs)}>\n {domToReact(domNode.children as DOMNode[], options)}\n </A>\n );\n\n case 'figure':\n // Inject HDS core zebra table style into <table> if it's inside\n // <figure class=\"is-style-stripes\">,\n // see https://hds.hel.fi/components/table/code/\n return (\n <figure\n {...attributesToProps(domNode.attribs)}\n className={addClassNames(domNode, {\n [styles['striped-figure']]: hasClassName(\n domNode,\n 'is-style-stripes',\n ),\n })}\n >\n {domToReact(domNode.children as DOMNode[], options)}\n </figure>\n );\n\n case 'table':\n // Inject HDS core table styles into <table> and its children,\n // see https://hds.hel.fi/components/table/code/\n return (\n <div\n className={addClassNames(domNode, styles['hds-table-container'])}\n >\n <Table\n {...attributesToProps(domNode.attribs)}\n className={addClassNames(\n domNode,\n styles['hds-table'],\n tableVariants.map(\n (tableVariant) => styles[`hds-table--${tableVariant}`],\n ),\n )}\n >\n {domToReact(domNode.children as DOMNode[], options)}\n </Table>\n </div>\n );\n\n case 'caption':\n return (\n <caption\n {...attributesToProps(domNode.attribs)}\n className={addClassNames(domNode, styles['hds-table__caption'])}\n >\n {domToReact(domNode.children as DOMNode[], options)}\n </caption>\n );\n\n case 'thead':\n return (\n <thead {...attributesToProps(domNode.attribs)}>\n {(domNode.children as DOMNode[]).map((child) =>\n mapTableHeaderChild(child, options),\n )}\n </thead>\n );\n\n case 'tbody':\n return (\n <tbody\n {...attributesToProps(domNode.attribs)}\n className={addClassNames(domNode, styles['hds-table__content'])}\n >\n {domToReact(domNode.children as DOMNode[], options)}\n </tbody>\n );\n\n case 'img':\n return <IMG {...attributesToProps(domNode.attribs)} width=\"100%\" />;\n\n case 'iframe':\n if (isTrustedOrigin(domNode.attribs.src, trustedOrigins)) {\n return <IFrame {...attributesToProps(domNode.attribs)} />;\n }\n // eslint-disable-next-line no-console\n console.warn(\n 'The iframe src-attribute was not set to any of the trusted origins.',\n );\n return <div />;\n\n default:\n break;\n }\n }\n\n return domNode;\n}\n\nexport function HtmlToReact({\n children: dirty,\n components,\n allowedUnsafeTags = [],\n trustedOrigins = [],\n}: HtmlToReactProps) {\n validateTrustedOriginsFormat(trustedOrigins);\n const clean = useMemo(\n () =>\n DOMPurify.sanitize(dirty, {\n USE_PROFILES: { html: true },\n ADD_ATTR: ['target'],\n ADD_TAGS: allowedUnsafeTags,\n ALLOWED_TAGS: WHITELISTED_TAGS,\n }),\n [dirty, allowedUnsafeTags],\n );\n const htmlReactParserOptions = {\n replace: (domNode: DOMNode) =>\n replaceDomNodeWithReactComponent(\n domNode,\n htmlReactParserOptions,\n components,\n trustedOrigins,\n ),\n };\n\n return <>{parse(clean, htmlReactParserOptions)}</>;\n}\n","/* eslint-disable no-bitwise */\n\n// https://stackoverflow.com/a/52171480\nexport default function hash(str: string, seed = 0): number {\n let h1 = 0xdeadbeef ^ seed;\n let h2 = 0x41c6ce57 ^ seed;\n\n for (let i = 0, ch: number; i < str.length; i += 1) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n\n h1 =\n Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 =\n Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n","import hash from '../../../common/utils/hash';\nimport type { NotificationType } from '../../../common/headlessService/types';\n\n// The notification is a singleton in the CMS. Instead of there being multiple\n// notifications, there ever only is one which is edited according to current\n// needs.\n\n// Because this notification comes with a dismissal option, we have to be able\n// to distinct different versions of the notification, so that we can safely\n// determine that the user has previously dismissed this notification (and\n// received) the urgent information that's within the notification.\nexport default function getNotificationHash(\n notification?: NotificationType | null,\n) {\n // Notification fields used to build string for unique hash\n const stringKeys = [\n 'title',\n 'content',\n 'linkText',\n 'linkUrl',\n 'level',\n 'endDate',\n 'startDate',\n ] as const;\n const combinedString = stringKeys.reduce(\n (acc, current) => acc + (notification?.[current] ?? ''),\n '',\n );\n\n return hash(combinedString);\n}\n","import { isFuture, isPast, isSameDay } from 'date-fns';\n\nimport type { NotificationType } from '../../../common/headlessService/types';\n\nexport default function isNotificationActive(\n notification?: NotificationType | null,\n) {\n const { startDate, endDate, title, content } = notification ?? {};\n const isNotificationContentMissing = !content && !title;\n\n if (!notification || isNotificationContentMissing) {\n return false;\n }\n\n const isSameDayOrFuture = (date: Date) =>\n isSameDay(new Date(), date) || isFuture(date);\n\n return [\n // both start and end dates are defined\n () =>\n startDate &&\n endDate &&\n isPast(new Date(startDate)) &&\n isSameDayOrFuture(new Date(endDate)),\n // only end date defined\n () => !startDate && endDate && isSameDayOrFuture(new Date(endDate)),\n // only start date defined\n () => startDate && !endDate && isPast(new Date(startDate)),\n // neither start or end date are defined\n () => !startDate && !endDate,\n ].some((f) => !!f());\n}\n","import React from 'react';\nimport type { NotificationType as HDSNotificationLevel } from 'hds-react';\nimport { Notification as HDSNotification } from 'hds-react';\n\nimport makeLocaleStorageValue from '../../common/utils/makeLocaleStorageValue';\nimport type { NotificationType } from '../../common/headlessService/types';\nimport { HtmlToReact } from '../../common/components/htmlToReact/HtmlToReact';\nimport { useConfig } from '../configProvider/useConfig';\nimport { Link } from '../link/Link';\nimport getNotificationHash from './utils/getNotificationHash';\nimport getIsNotificationActive from './utils/getIsNotificationActive';\nimport styles from './notification.module.scss';\n\nenum NotificationStatus {\n dismissed,\n expired,\n visible,\n missing,\n}\n\ntype NotificationState = {\n dismissed: boolean;\n};\n\nconst useLocaleStorageNotification = makeLocaleStorageValue<{\n [notificationHash: string]: NotificationState;\n}>('rhhc/notification');\n\nfunction getNotificationStatus(\n notification?: NotificationType | null,\n notificationState?: NotificationState,\n) {\n if (!notification) {\n return NotificationStatus.missing;\n }\n\n if (notificationState?.dismissed) {\n return NotificationStatus.dismissed;\n }\n\n if (!getIsNotificationActive(notification)) {\n return NotificationStatus.expired;\n }\n\n return NotificationStatus.visible;\n}\n\ntype CmsNotificationLevel = 'info' | 'high' | 'low';\nconst notificationTypeMap = {\n info: 'alert',\n high: 'error',\n low: 'info',\n} as const satisfies Record<CmsNotificationLevel, HDSNotificationLevel>;\n\nconst isCmsNotificationLevel = (\n value: unknown,\n): value is CmsNotificationLevel =>\n typeof value === 'string' && value in notificationTypeMap;\n\nexport type NotificationProps = {\n /**\n * Notification object.\n */\n notification?: NotificationType | null;\n};\n\nexport function Notification({ notification }: NotificationProps) {\n const {\n copy: { closeButtonLabelText },\n utils: { getRoutedInternalHref },\n } = useConfig();\n const [notificationState, setNotificationState] =\n useLocaleStorageNotification();\n\n const notificationHash = getNotificationHash(notification);\n const notificationStatus = getNotificationStatus(\n notification,\n notificationState?.[notificationHash],\n );\n\n const { level, title, linkUrl, linkText, content } = notification ?? {};\n\n const handleClose = () => {\n setNotificationState({\n [notificationHash]: {\n dismissed: true,\n },\n });\n };\n\n return (\n notificationStatus === NotificationStatus.visible && (\n <HDSNotification\n type={\n notificationTypeMap[isCmsNotificationLevel(level) ? level : 'info']\n }\n label={title ?? undefined}\n dismissible\n closeButtonLabelText={closeButtonLabelText}\n onClose={handleClose}\n className={styles.notification}\n >\n <HtmlToReact>{String(content)}</HtmlToReact>\n {linkUrl && (\n <Link\n openInNewTab\n href={getRoutedInternalHref(linkUrl)}\n style={{ marginTop: '0.75rem', display: 'block' }}\n >\n {linkText}\n </Link>\n )}\n </HDSNotification>\n )\n );\n}\n","import classNames from 'classnames';\nimport React from 'react';\n\nimport styles from './page.module.scss';\n\nexport type PageProps = {\n navigation: React.ReactNode;\n notification?: React.ReactNode;\n content: React.ReactNode;\n footer: React.ReactNode;\n className?: string;\n};\n\nexport function Page({\n navigation,\n notification,\n content,\n footer,\n className,\n}: PageProps) {\n return (\n <div className={classNames(styles.pageLayout, className)}>\n <div className={styles.headerWrapper}>\n {navigation}\n {notification}\n </div>\n <div className={styles.contentWrapper}>{content}</div>\n <div className={styles.footerWrapper}>{footer}</div>\n </div>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport styles from './list.module.scss';\n\nfunction getKey(...elements: JSX.Element[]): string {\n return elements.reduce((acc, element) => `${acc}${element.key}`, '');\n}\n\ntype ListProps = {\n /**\n * List item elements.\n */\n items?: (JSX.Element | JSX.Element[] | null | false)[];\n /**\n * List item variant options.\n */\n variant?:\n | 'spacing-4-xs'\n | 'spacing-3-xs'\n | 'spacing-2-xs'\n | 'spacing-xs'\n | 'spacing-s'\n | 'spacing-m'\n | 'spacing-l'\n | 'spacing-xl'\n | 'spacing-2-xl'\n | 'spacing-3-xl'\n | 'spacing-4-xl'\n | 'spacing-5-xl'\n | 'spacing-layout-2-xs'\n | 'spacing-layout-xs'\n | 'spacing-layout-s'\n | 'spacing-layout-m'\n | 'spacing-layout-l'\n | 'spacing-layout-xl'\n | 'spacing-layout-2-xl';\n};\n\nexport default function List({ items, variant = 'spacing-m' }: ListProps) {\n return (\n <ul className={classNames(styles.list, styles[variant])}>\n {items?.map((item) =>\n item ? (\n <li key={Array.isArray(item) ? getKey(...item) : getKey(item)}>\n {item}\n </li>\n ) : null,\n )}\n </ul>\n );\n}\n","import { IconArrowRight } from 'hds-react';\nimport React from 'react';\nimport parse from 'html-react-parser';\n\nimport { HtmlToReact } from '../../../common/components/htmlToReact/HtmlToReact';\nimport List from '../../../common/components/list/List';\nimport type { LayoutLinkList } from '../../../common/headlessService/types';\nimport { useConfig } from '../../configProvider/useConfig';\nimport { Link } from '../../link/Link';\nimport styles from './sidebarContentLinkList.module.scss';\nimport { isLinkItem } from '../../../common/headlessService/utils';\n\ntype SidebarContentLinkListProps = Omit<LayoutLinkList, '__typename'>;\n\nexport default function SidebarContentLinkList({\n anchor,\n title,\n description,\n links,\n}: SidebarContentLinkListProps) {\n const {\n utils: { getIsHrefExternal },\n } = useConfig();\n\n return (\n <div className={styles.listContainer} id={anchor || undefined}>\n <h2>{title}</h2>\n {description && (\n <div className={styles.descriptionContainer}>\n <HtmlToReact>{description}</HtmlToReact>\n </div>\n )}\n <List\n variant=\"spacing-s\"\n items={links\n ?.filter((item) => isLinkItem(item))\n .map((link) => (\n <Link\n key={link.title}\n href={parse(link.url).toString() || '#'}\n className={styles.link}\n iconRight={\n !getIsHrefExternal(link.url) && (\n <IconArrowRight aria-hidden=\"true\" />\n )\n }\n >\n {link.title}\n </Link>\n ))}\n />\n </div>\n );\n}\n","/**\n * Tests if an image at a given URL loads successfully,\n * using AbortController for clean event listener management.\n *\n * @param {string} [url] - The URL of the image to test.\n * @return {Promise<void>} - A promise that resolves if the image loads, and rejects otherwise.\n */\nconst testImage = (url?: string): Promise<void> => {\n if (!url) {\n return Promise.reject(new Error('No image URL given'));\n }\n\n const imgElement = new Image();\n // Create the controller instance\n const controller = new AbortController();\n const { signal } = controller;\n\n return new Promise<void>((resolve, reject) => {\n // The { signal } option ensures these listeners are grouped for cleanup\n imgElement.addEventListener(\n 'load',\n () => {\n controller.abort(); // Triggers removal of ALL listeners attached to this signal\n resolve();\n },\n { signal },\n );\n\n imgElement.addEventListener(\n 'error',\n () => {\n controller.abort(); // Triggers removal of ALL listeners attached to this signal\n // Reject with a standard Error object\n reject(new Error(`Failed to load image from URL: ${url}`));\n },\n { signal },\n );\n\n imgElement.src = url;\n });\n // Note: The controller is self-contained and cleaned up when the promise resolves/rejects\n};\n\nexport default testImage;\n","import React from 'react';\n\nimport { useConfig } from '../configProvider/useConfig';\nimport hash from '../../common/utils/hash';\nimport testImage from '../../common/utils/testImage';\n\nexport type ResolveImageProps = {\n id?: string;\n url?: string | null;\n customFallbackUrl?: string;\n};\n\nexport const useResolveImageUrl = ({\n id,\n url,\n customFallbackUrl,\n}: ResolveImageProps): string => {\n const { fallbackImageUrls } = useConfig();\n const [showFallbackImage, setShowFallbackImage] = React.useState(false);\n\n React.useEffect(() => {\n const testThatImageExist = async () => {\n try {\n await testImage(url ?? undefined);\n } catch {\n setShowFallbackImage(true);\n }\n };\n if (url) {\n testThatImageExist();\n } else {\n setShowFallbackImage(true);\n }\n }, [url]);\n\n const randomIndex = Math.abs(hash(id ?? '')) % fallbackImageUrls.length;\n\n return !url || showFallbackImage\n ? (customFallbackUrl ?? fallbackImageUrls[randomIndex])\n : url;\n};\n","import React from 'react';\n\nimport { useResolveImageUrl } from '../hooks/useResolveImageUrl';\n\nexport type ImageProps = {\n /**\n * Image id.\n */\n id: string;\n /**\n * Image src attribute value.\n */\n src: string;\n /**\n * Alt image text.\n */\n alt: string;\n /**\n * Image fallback url.\n */\n customFallbackSrc?: string;\n /**\n * Image caption.\n */\n caption?: string;\n} & Omit<React.HTMLAttributes<HTMLImageElement>, 'src' | 'alt'>;\n\nexport function Image({\n id,\n src,\n alt,\n customFallbackSrc,\n caption,\n style,\n ...imageProps\n}: ImageProps) {\n const resolvedUrl = useResolveImageUrl({\n id,\n url: src,\n customFallbackUrl: customFallbackSrc,\n });\n\n return (\n <figure style={style}>\n <img {...imageProps} src={resolvedUrl} alt={alt} />\n {caption && <figcaption>{caption}</figcaption>}\n </figure>\n );\n}\n","import { format, parseISO } from 'date-fns';\n\n/**\n * @param {dateTime} dateTime - the date to format to 'd.M.yyyy, HH:mm'.\n * @return {string} - Formatted date.\n */\nexport const formatDateTime = (dateTime: Date): string =>\n format(dateTime, 'd.M.yyyy, HH:mm');\n\n/**\n * @param {dateTime} dateTime -the date to format to 'd.M.yyyy'.\n * @return {string} - Formatted date.\n */\nexport const formatDate = (dateTime: Date): string =>\n format(dateTime, 'd.M.yyyy');\n\n/**\n * @param {dateTime} dateTime - date as string to format to 'd.M.yyyy'.\n * @return {string} - Formatted date.\n */\nexport const formatDateFromString = (dateTime: string): string =>\n format(parseISO(dateTime), 'd.M.yyyy');\n\n/**\n * @param {dateTime} dateTime - date as string to format to 'd.M.yyyy, HH:mm'.\n * @return {string} - Formatted date.\n */\nexport const formatDateTimeFromString = (dateTime: string): string =>\n format(parseISO(dateTime), 'd.M.yyyy, HH:mm');\n","import React from 'react';\n\nimport { Link } from '../../link/Link';\nimport styles from './sidebarContentCard.module.scss';\nimport { Image } from '../../image/Image';\nimport { formatDateFromString } from '../../../common/utils/dates';\n\ntype SidebarContentCardProps = {\n id: string;\n title: string;\n url: string;\n imageUrl?: string;\n imageAlt?: string;\n description?: string;\n publishingDate?: string;\n};\n\nexport default function SidebarContentCard({\n id,\n title,\n url,\n imageUrl,\n imageAlt,\n description,\n publishingDate,\n}: SidebarContentCardProps) {\n return (\n <div className={styles.container}>\n <Image\n id={id}\n className={styles.image}\n src={imageUrl ?? ''}\n alt={imageAlt ?? ''}\n />\n <div className={styles.content}>\n {description && <p className={styles.description}>{description}</p>}\n <Link className={styles.link} href={url}>\n {title}\n </Link>\n {publishingDate && (\n <p className={styles.publishingDate}>\n {formatDateFromString(publishingDate)}\n </p>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport type { ModuleItemTypeEnum } from '../../../common/headlessService/constants';\nimport type {\n LayoutArticle,\n LayoutPage,\n} from '../../../common/headlessService/types';\nimport { useHeadlessCmsLink } from '../../configProvider/useHeadlessCmsLink';\nimport SidebarContentCard from './SidebarContentCard';\n\ntype PostListItemProps = (\n | NonNullable<LayoutArticle['articles']>[number]\n | NonNullable<LayoutPage['pages']>[number]\n) & { moduleItemType: ModuleItemTypeEnum };\n\nexport default function PostListItem({\n id,\n moduleItemType,\n title,\n link,\n featuredImage,\n date,\n}: PostListItemProps) {\n const url = useHeadlessCmsLink(link ?? '#', moduleItemType);\n\n if (!title || !url) {\n return null;\n }\n\n return (\n <SidebarContentCard\n key={id}\n id={id}\n title={title}\n publishingDate={date ?? undefined}\n url={url}\n imageUrl={featuredImage?.node?.medium || undefined}\n imageAlt={featuredImage?.node?.altText || undefined}\n />\n );\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// This file is autogenerated by tools/process-named-references.ts\nvar pairDivider = \"~\";\nvar blockDivider = \"~~\";\nfunction generateNamedReferences(input, prev) {\n var entities = {};\n var characters = {};\n var blocks = input.split(blockDivider);\n var isOptionalBlock = false;\n for (var i = 0; blocks.length > i; i++) {\n var entries = blocks[i].split(pairDivider);\n for (var j = 0; j < entries.length; j += 2) {\n var entity = entries[j];\n var character = entries[j + 1];\n var fullEntity = '&' + entity + ';';\n entities[fullEntity] = character;\n if (isOptionalBlock) {\n entities['&' + entity] = character;\n }\n characters[character] = fullEntity;\n }\n isOptionalBlock = true;\n }\n return prev ?\n { entities: __assign(__assign({}, entities), prev.entities), characters: __assign(__assign({}, characters), prev.characters) } :\n { entities: entities, characters: characters };\n}\nexport var bodyRegExps = {\n xml: /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,\n html4: /∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,\n html5: /·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g\n};\nexport var namedReferences = {};\nnamedReferences['xml'] = generateNamedReferences(\"lt~<~gt~>~quot~\\\"~apos~'~amp~&\");\nnamedReferences['html4'] = generateNamedReferences(\"apos~'~OElig~Œ~oelig~œ~Scaron~Š~scaron~š~Yuml~Ÿ~circ~ˆ~tilde~˜~ensp~ ~emsp~ ~thinsp~ ~zwnj~~zwj~~lrm~~rlm~~ndash~–~mdash~—~lsquo~‘~rsquo~’~sbquo~‚~ldquo~“~rdquo~”~bdquo~„~dagger~†~Dagger~‡~permil~‰~lsaquo~‹~rsaquo~›~euro~€~fnof~ƒ~Alpha~Α~Beta~Β~Gamma~Γ~Delta~Δ~Epsilon~Ε~Zeta~Ζ~Eta~Η~Theta~Θ~Iota~Ι~Kappa~Κ~Lambda~Λ~Mu~Μ~Nu~Ν~Xi~Ξ~Omicron~Ο~Pi~Π~Rho~Ρ~Sigma~Σ~Tau~Τ~Upsilon~Υ~Phi~Φ~Chi~Χ~Psi~Ψ~Omega~Ω~alpha~α~beta~β~gamma~γ~delta~δ~epsilon~ε~zeta~ζ~eta~η~theta~θ~iota~ι~kappa~κ~lambda~λ~mu~μ~nu~ν~xi~ξ~omicron~ο~pi~π~rho~ρ~sigmaf~ς~sigma~σ~tau~τ~upsilon~υ~phi~φ~chi~χ~psi~ψ~omega~ω~thetasym~ϑ~upsih~ϒ~piv~ϖ~bull~•~hellip~…~prime~′~Prime~″~oline~‾~frasl~⁄~weierp~℘~image~ℑ~real~ℜ~trade~™~alefsym~ℵ~larr~←~uarr~↑~rarr~→~darr~↓~harr~↔~crarr~↵~lArr~⇐~uArr~⇑~rArr~⇒~dArr~⇓~hArr~⇔~forall~∀~part~∂~exist~∃~empty~∅~nabla~∇~isin~∈~notin~∉~ni~∋~prod~∏~sum~∑~minus~−~lowast~∗~radic~√~prop~∝~infin~∞~ang~∠~and~∧~or~∨~cap~∩~cup~∪~int~∫~there4~∴~sim~∼~cong~≅~asymp~≈~ne~≠~equiv~≡~le~≤~ge~≥~sub~⊂~sup~⊃~nsub~⊄~sube~⊆~supe~⊇~oplus~⊕~otimes~⊗~perp~⊥~sdot~⋅~lceil~⌈~rceil~⌉~lfloor~⌊~rfloor~⌋~lang~〈~rang~〉~loz~◊~spades~♠~clubs~♣~hearts~♥~diams~♦~~nbsp~ ~iexcl~¡~cent~¢~pound~£~curren~¤~yen~¥~brvbar~¦~sect~§~uml~¨~copy~©~ordf~ª~laquo~«~not~¬~shy~~reg~®~macr~¯~deg~°~plusmn~±~sup2~²~sup3~³~acute~´~micro~µ~para~¶~middot~·~cedil~¸~sup1~¹~ordm~º~raquo~»~frac14~¼~frac12~½~frac34~¾~iquest~¿~Agrave~À~Aacute~Á~Acirc~Â~Atilde~Ã~Auml~Ä~Aring~Å~AElig~Æ~Ccedil~Ç~Egrave~È~Eacute~É~Ecirc~Ê~Euml~Ë~Igrave~Ì~Iacute~Í~Icirc~Î~Iuml~Ï~ETH~Ð~Ntilde~Ñ~Ograve~Ò~Oacute~Ó~Ocirc~Ô~Otilde~Õ~Ouml~Ö~times~×~Oslash~Ø~Ugrave~Ù~Uacute~Ú~Ucirc~Û~Uuml~Ü~Yacute~Ý~THORN~Þ~szlig~ß~agrave~à~aacute~á~acirc~â~atilde~ã~auml~ä~aring~å~aelig~æ~ccedil~ç~egrave~è~eacute~é~ecirc~ê~euml~ë~igrave~ì~iacute~í~icirc~î~iuml~ï~eth~ð~ntilde~ñ~ograve~ò~oacute~ó~ocirc~ô~otilde~õ~ouml~ö~divide~÷~oslash~ø~ugrave~ù~uacute~ú~ucirc~û~uuml~ü~yacute~ý~thorn~þ~yuml~ÿ~quot~\\\"~amp~&~lt~<~gt~>\");\nnamedReferences['html5'] = generateNamedReferences(\"Abreve~Ă~Acy~А~Afr~𝔄~Amacr~Ā~And~⩓~Aogon~Ą~Aopf~𝔸~ApplyFunction~~Ascr~𝒜~Assign~≔~Backslash~∖~Barv~⫧~Barwed~⌆~Bcy~Б~Because~∵~Bernoullis~ℬ~Bfr~𝔅~Bopf~𝔹~Breve~˘~Bscr~ℬ~Bumpeq~≎~CHcy~Ч~Cacute~Ć~Cap~⋒~CapitalDifferentialD~ⅅ~Cayleys~ℭ~Ccaron~Č~Ccirc~Ĉ~Cconint~∰~Cdot~Ċ~Cedilla~¸~CenterDot~·~Cfr~ℭ~CircleDot~⊙~CircleMinus~⊖~CirclePlus~⊕~CircleTimes~⊗~ClockwiseContourIntegral~∲~CloseCurlyDoubleQuote~”~CloseCurlyQuote~’~Colon~∷~Colone~⩴~Congruent~≡~Conint~∯~ContourIntegral~∮~Copf~ℂ~Coproduct~∐~CounterClockwiseContourIntegral~∳~Cross~⨯~Cscr~𝒞~Cup~⋓~CupCap~≍~DD~ⅅ~DDotrahd~⤑~DJcy~Ђ~DScy~Ѕ~DZcy~Џ~Darr~↡~Dashv~⫤~Dcaron~Ď~Dcy~Д~Del~∇~Dfr~𝔇~DiacriticalAcute~´~DiacriticalDot~˙~DiacriticalDoubleAcute~˝~DiacriticalGrave~`~DiacriticalTilde~˜~Diamond~⋄~DifferentialD~ⅆ~Dopf~𝔻~Dot~¨~DotDot~⃜~DotEqual~≐~DoubleContourIntegral~∯~DoubleDot~¨~DoubleDownArrow~⇓~DoubleLeftArrow~⇐~DoubleLeftRightArrow~⇔~DoubleLeftTee~⫤~DoubleLongLeftArrow~⟸~DoubleLongLeftRightArrow~⟺~DoubleLongRightArrow~⟹~DoubleRightArrow~⇒~DoubleRightTee~⊨~DoubleUpArrow~⇑~DoubleUpDownArrow~⇕~DoubleVerticalBar~∥~DownArrow~↓~DownArrowBar~⤓~DownArrowUpArrow~⇵~DownBreve~̑~DownLeftRightVector~⥐~DownLeftTeeVector~⥞~DownLeftVector~↽~DownLeftVectorBar~⥖~DownRightTeeVector~⥟~DownRightVector~⇁~DownRightVectorBar~⥗~DownTee~⊤~DownTeeArrow~↧~Downarrow~⇓~Dscr~𝒟~Dstrok~Đ~ENG~Ŋ~Ecaron~Ě~Ecy~Э~Edot~Ė~Efr~𝔈~Element~∈~Emacr~Ē~EmptySmallSquare~◻~EmptyVerySmallSquare~▫~Eogon~Ę~Eopf~𝔼~Equal~⩵~EqualTilde~≂~Equilibrium~⇌~Escr~ℰ~Esim~⩳~Exists~∃~ExponentialE~ⅇ~Fcy~Ф~Ffr~𝔉~FilledSmallSquare~◼~FilledVerySmallSquare~▪~Fopf~𝔽~ForAll~∀~Fouriertrf~ℱ~Fscr~ℱ~GJcy~Ѓ~Gammad~Ϝ~Gbreve~Ğ~Gcedil~Ģ~Gcirc~Ĝ~Gcy~Г~Gdot~Ġ~Gfr~𝔊~Gg~⋙~Gopf~𝔾~GreaterEqual~≥~GreaterEqualLess~⋛~GreaterFullEqual~≧~GreaterGreater~⪢~GreaterLess~≷~GreaterSlantEqual~⩾~GreaterTilde~≳~Gscr~𝒢~Gt~≫~HARDcy~Ъ~Hacek~ˇ~Hat~^~Hcirc~Ĥ~Hfr~ℌ~HilbertSpace~ℋ~Hopf~ℍ~HorizontalLine~─~Hscr~ℋ~Hstrok~Ħ~HumpDownHump~≎~HumpEqual~≏~IEcy~Е~IJlig~IJ~IOcy~Ё~Icy~И~Idot~İ~Ifr~ℑ~Im~ℑ~Imacr~Ī~ImaginaryI~ⅈ~Implies~⇒~Int~∬~Integral~∫~Intersection~⋂~InvisibleComma~~InvisibleTimes~~Iogon~Į~Iopf~𝕀~Iscr~ℐ~Itilde~Ĩ~Iukcy~І~Jcirc~Ĵ~Jcy~Й~Jfr~𝔍~Jopf~𝕁~Jscr~𝒥~Jsercy~Ј~Jukcy~Є~KHcy~Х~KJcy~Ќ~Kcedil~Ķ~Kcy~К~Kfr~𝔎~Kopf~𝕂~Kscr~𝒦~LJcy~Љ~Lacute~Ĺ~Lang~⟪~Laplacetrf~ℒ~Larr~↞~Lcaron~Ľ~Lcedil~Ļ~Lcy~Л~LeftAngleBracket~⟨~LeftArrow~←~LeftArrowBar~⇤~LeftArrowRightArrow~⇆~LeftCeiling~⌈~LeftDoubleBracket~⟦~LeftDownTeeVector~⥡~LeftDownVector~⇃~LeftDownVectorBar~⥙~LeftFloor~⌊~LeftRightArrow~↔~LeftRightVector~⥎~LeftTee~⊣~LeftTeeArrow~↤~LeftTeeVector~⥚~LeftTriangle~⊲~LeftTriangleBar~⧏~LeftTriangleEqual~⊴~LeftUpDownVector~⥑~LeftUpTeeVector~⥠~LeftUpVector~↿~LeftUpVectorBar~⥘~LeftVector~↼~LeftVectorBar~⥒~Leftarrow~⇐~Leftrightarrow~⇔~LessEqualGreater~⋚~LessFullEqual~≦~LessGreater~≶~LessLess~⪡~LessSlantEqual~⩽~LessTilde~≲~Lfr~𝔏~Ll~⋘~Lleftarrow~⇚~Lmidot~Ŀ~LongLeftArrow~⟵~LongLeftRightArrow~⟷~LongRightArrow~⟶~Longleftarrow~⟸~Longleftrightarrow~⟺~Longrightarrow~⟹~Lopf~𝕃~LowerLeftArrow~↙~LowerRightArrow~↘~Lscr~ℒ~Lsh~↰~Lstrok~Ł~Lt~≪~Map~⤅~Mcy~М~MediumSpace~ ~Mellintrf~ℳ~Mfr~𝔐~MinusPlus~∓~Mopf~𝕄~Mscr~ℳ~NJcy~Њ~Nacute~Ń~Ncaron~Ň~Ncedil~Ņ~Ncy~Н~NegativeMediumSpace~~NegativeThickSpace~~NegativeThinSpace~~NegativeVeryThinSpace~~NestedGreaterGreater~≫~NestedLessLess~≪~NewLine~\\n~Nfr~𝔑~NoBreak~~NonBreakingSpace~ ~Nopf~ℕ~Not~⫬~NotCongruent~≢~NotCupCap~≭~NotDoubleVerticalBar~∦~NotElement~∉~NotEqual~≠~NotEqualTilde~≂̸~NotExists~∄~NotGreater~≯~NotGreaterEqual~≱~NotGreaterFullEqual~≧̸~NotGreaterGreater~≫̸~NotGreaterLess~≹~NotGreaterSlantEqual~⩾̸~NotGreaterTilde~≵~NotHumpDownHump~≎̸~NotHumpEqual~≏̸~NotLeftTriangle~⋪~NotLeftTriangleBar~⧏̸~NotLeftTriangleEqual~⋬~NotLess~≮~NotLessEqual~≰~NotLessGreater~≸~NotLessLess~≪̸~NotLessSlantEqual~⩽̸~NotLessTilde~≴~NotNestedGreaterGreater~⪢̸~NotNestedLessLess~⪡̸~NotPrecedes~⊀~NotPrecedesEqual~⪯̸~NotPrecedesSlantEqual~⋠~NotReverseElement~∌~NotRightTriangle~⋫~NotRightTriangleBar~⧐̸~NotRightTriangleEqual~⋭~NotSquareSubset~⊏̸~NotSquareSubsetEqual~⋢~NotSquareSuperset~⊐̸~NotSquareSupersetEqual~⋣~NotSubset~⊂⃒~NotSubsetEqual~⊈~NotSucceeds~⊁~NotSucceedsEqual~⪰̸~NotSucceedsSlantEqual~⋡~NotSucceedsTilde~≿̸~NotSuperset~⊃⃒~NotSupersetEqual~⊉~NotTilde~≁~NotTildeEqual~≄~NotTildeFullEqual~≇~NotTildeTilde~≉~NotVerticalBar~∤~Nscr~𝒩~Ocy~О~Odblac~Ő~Ofr~𝔒~Omacr~Ō~Oopf~𝕆~OpenCurlyDoubleQuote~“~OpenCurlyQuote~‘~Or~⩔~Oscr~𝒪~Otimes~⨷~OverBar~‾~OverBrace~⏞~OverBracket~⎴~OverParenthesis~⏜~PartialD~∂~Pcy~П~Pfr~𝔓~PlusMinus~±~Poincareplane~ℌ~Popf~ℙ~Pr~⪻~Precedes~≺~PrecedesEqual~⪯~PrecedesSlantEqual~≼~PrecedesTilde~≾~Product~∏~Proportion~∷~Proportional~∝~Pscr~𝒫~Qfr~𝔔~Qopf~ℚ~Qscr~𝒬~RBarr~⤐~Racute~Ŕ~Rang~⟫~Rarr~↠~Rarrtl~⤖~Rcaron~Ř~Rcedil~Ŗ~Rcy~Р~Re~ℜ~ReverseElement~∋~ReverseEquilibrium~⇋~ReverseUpEquilibrium~⥯~Rfr~ℜ~RightAngleBracket~⟩~RightArrow~→~RightArrowBar~⇥~RightArrowLeftArrow~⇄~RightCeiling~⌉~RightDoubleBracket~⟧~RightDownTeeVector~⥝~RightDownVector~⇂~RightDownVectorBar~⥕~RightFloor~⌋~RightTee~⊢~RightTeeArrow~↦~RightTeeVector~⥛~RightTriangle~⊳~RightTriangleBar~⧐~RightTriangleEqual~⊵~RightUpDownVector~⥏~RightUpTeeVector~⥜~RightUpVector~↾~RightUpVectorBar~⥔~RightVector~⇀~RightVectorBar~⥓~Rightarrow~⇒~Ropf~ℝ~RoundImplies~⥰~Rrightarrow~⇛~Rscr~ℛ~Rsh~↱~RuleDelayed~⧴~SHCHcy~Щ~SHcy~Ш~SOFTcy~Ь~Sacute~Ś~Sc~⪼~Scedil~Ş~Scirc~Ŝ~Scy~С~Sfr~𝔖~ShortDownArrow~↓~ShortLeftArrow~←~ShortRightArrow~→~ShortUpArrow~↑~SmallCircle~∘~Sopf~𝕊~Sqrt~√~Square~□~SquareIntersection~⊓~SquareSubset~⊏~SquareSubsetEqual~⊑~SquareSuperset~⊐~SquareSupersetEqual~⊒~SquareUnion~⊔~Sscr~𝒮~Star~⋆~Sub~⋐~Subset~⋐~SubsetEqual~⊆~Succeeds~≻~SucceedsEqual~⪰~SucceedsSlantEqual~≽~SucceedsTilde~≿~SuchThat~∋~Sum~∑~Sup~⋑~Superset~⊃~SupersetEqual~⊇~Supset~⋑~TRADE~™~TSHcy~Ћ~TScy~Ц~Tab~\\t~Tcaron~Ť~Tcedil~Ţ~Tcy~Т~Tfr~𝔗~Therefore~∴~ThickSpace~ ~ThinSpace~ ~Tilde~∼~TildeEqual~≃~TildeFullEqual~≅~TildeTilde~≈~Topf~𝕋~TripleDot~⃛~Tscr~𝒯~Tstrok~Ŧ~Uarr~↟~Uarrocir~⥉~Ubrcy~Ў~Ubreve~Ŭ~Ucy~У~Udblac~Ű~Ufr~𝔘~Umacr~Ū~UnderBar~_~UnderBrace~⏟~UnderBracket~⎵~UnderParenthesis~⏝~Union~⋃~UnionPlus~⊎~Uogon~Ų~Uopf~𝕌~UpArrow~↑~UpArrowBar~⤒~UpArrowDownArrow~⇅~UpDownArrow~↕~UpEquilibrium~⥮~UpTee~⊥~UpTeeArrow~↥~Uparrow~⇑~Updownarrow~⇕~UpperLeftArrow~↖~UpperRightArrow~↗~Upsi~ϒ~Uring~Ů~Uscr~𝒰~Utilde~Ũ~VDash~⊫~Vbar~⫫~Vcy~В~Vdash~⊩~Vdashl~⫦~Vee~⋁~Verbar~‖~Vert~‖~VerticalBar~∣~VerticalLine~|~VerticalSeparator~❘~VerticalTilde~≀~VeryThinSpace~ ~Vfr~𝔙~Vopf~𝕍~Vscr~𝒱~Vvdash~⊪~Wcirc~Ŵ~Wedge~⋀~Wfr~𝔚~Wopf~𝕎~Wscr~𝒲~Xfr~𝔛~Xopf~𝕏~Xscr~𝒳~YAcy~Я~YIcy~Ї~YUcy~Ю~Ycirc~Ŷ~Ycy~Ы~Yfr~𝔜~Yopf~𝕐~Yscr~𝒴~ZHcy~Ж~Zacute~Ź~Zcaron~Ž~Zcy~З~Zdot~Ż~ZeroWidthSpace~~Zfr~ℨ~Zopf~ℤ~Zscr~𝒵~abreve~ă~ac~∾~acE~∾̳~acd~∿~acy~а~af~~afr~𝔞~aleph~ℵ~amacr~ā~amalg~⨿~andand~⩕~andd~⩜~andslope~⩘~andv~⩚~ange~⦤~angle~∠~angmsd~∡~angmsdaa~⦨~angmsdab~⦩~angmsdac~⦪~angmsdad~⦫~angmsdae~⦬~angmsdaf~⦭~angmsdag~⦮~angmsdah~⦯~angrt~∟~angrtvb~⊾~angrtvbd~⦝~angsph~∢~angst~Å~angzarr~⍼~aogon~ą~aopf~𝕒~ap~≈~apE~⩰~apacir~⩯~ape~≊~apid~≋~approx~≈~approxeq~≊~ascr~𝒶~ast~*~asympeq~≍~awconint~∳~awint~⨑~bNot~⫭~backcong~≌~backepsilon~϶~backprime~‵~backsim~∽~backsimeq~⋍~barvee~⊽~barwed~⌅~barwedge~⌅~bbrk~⎵~bbrktbrk~⎶~bcong~≌~bcy~б~becaus~∵~because~∵~bemptyv~⦰~bepsi~϶~bernou~ℬ~beth~ℶ~between~≬~bfr~𝔟~bigcap~⋂~bigcirc~◯~bigcup~⋃~bigodot~⨀~bigoplus~⨁~bigotimes~⨂~bigsqcup~⨆~bigstar~★~bigtriangledown~▽~bigtriangleup~△~biguplus~⨄~bigvee~⋁~bigwedge~⋀~bkarow~⤍~blacklozenge~⧫~blacksquare~▪~blacktriangle~▴~blacktriangledown~▾~blacktriangleleft~◂~blacktriangleright~▸~blank~␣~blk12~▒~blk14~░~blk34~▓~block~█~bne~=⃥~bnequiv~≡⃥~bnot~⌐~bopf~𝕓~bot~⊥~bottom~⊥~bowtie~⋈~boxDL~╗~boxDR~╔~boxDl~╖~boxDr~╓~boxH~═~boxHD~╦~boxHU~╩~boxHd~╤~boxHu~╧~boxUL~╝~boxUR~╚~boxUl~╜~boxUr~╙~boxV~║~boxVH~╬~boxVL~╣~boxVR~╠~boxVh~╫~boxVl~╢~boxVr~╟~boxbox~⧉~boxdL~╕~boxdR~╒~boxdl~┐~boxdr~┌~boxh~─~boxhD~╥~boxhU~╨~boxhd~┬~boxhu~┴~boxminus~⊟~boxplus~⊞~boxtimes~⊠~boxuL~╛~boxuR~╘~boxul~┘~boxur~└~boxv~│~boxvH~╪~boxvL~╡~boxvR~╞~boxvh~┼~boxvl~┤~boxvr~├~bprime~‵~breve~˘~bscr~𝒷~bsemi~⁏~bsim~∽~bsime~⋍~bsol~\\\\~bsolb~⧅~bsolhsub~⟈~bullet~•~bump~≎~bumpE~⪮~bumpe~≏~bumpeq~≏~cacute~ć~capand~⩄~capbrcup~⩉~capcap~⩋~capcup~⩇~capdot~⩀~caps~∩︀~caret~⁁~caron~ˇ~ccaps~⩍~ccaron~č~ccirc~ĉ~ccups~⩌~ccupssm~⩐~cdot~ċ~cemptyv~⦲~centerdot~·~cfr~𝔠~chcy~ч~check~✓~checkmark~✓~cir~○~cirE~⧃~circeq~≗~circlearrowleft~↺~circlearrowright~↻~circledR~®~circledS~Ⓢ~circledast~⊛~circledcirc~⊚~circleddash~⊝~cire~≗~cirfnint~⨐~cirmid~⫯~cirscir~⧂~clubsuit~♣~colon~:~colone~≔~coloneq~≔~comma~,~commat~@~comp~∁~compfn~∘~complement~∁~complexes~ℂ~congdot~⩭~conint~∮~copf~𝕔~coprod~∐~copysr~℗~cross~✗~cscr~𝒸~csub~⫏~csube~⫑~csup~⫐~csupe~⫒~ctdot~⋯~cudarrl~⤸~cudarrr~⤵~cuepr~⋞~cuesc~⋟~cularr~↶~cularrp~⤽~cupbrcap~⩈~cupcap~⩆~cupcup~⩊~cupdot~⊍~cupor~⩅~cups~∪︀~curarr~↷~curarrm~⤼~curlyeqprec~⋞~curlyeqsucc~⋟~curlyvee~⋎~curlywedge~⋏~curvearrowleft~↶~curvearrowright~↷~cuvee~⋎~cuwed~⋏~cwconint~∲~cwint~∱~cylcty~⌭~dHar~⥥~daleth~ℸ~dash~‐~dashv~⊣~dbkarow~⤏~dblac~˝~dcaron~ď~dcy~д~dd~ⅆ~ddagger~‡~ddarr~⇊~ddotseq~⩷~demptyv~⦱~dfisht~⥿~dfr~𝔡~dharl~⇃~dharr~⇂~diam~⋄~diamond~⋄~diamondsuit~♦~die~¨~digamma~ϝ~disin~⋲~div~÷~divideontimes~⋇~divonx~⋇~djcy~ђ~dlcorn~⌞~dlcrop~⌍~dollar~$~dopf~𝕕~dot~˙~doteq~≐~doteqdot~≑~dotminus~∸~dotplus~∔~dotsquare~⊡~doublebarwedge~⌆~downarrow~↓~downdownarrows~⇊~downharpoonleft~⇃~downharpoonright~⇂~drbkarow~⤐~drcorn~⌟~drcrop~⌌~dscr~𝒹~dscy~ѕ~dsol~⧶~dstrok~đ~dtdot~⋱~dtri~▿~dtrif~▾~duarr~⇵~duhar~⥯~dwangle~⦦~dzcy~џ~dzigrarr~⟿~eDDot~⩷~eDot~≑~easter~⩮~ecaron~ě~ecir~≖~ecolon~≕~ecy~э~edot~ė~ee~ⅇ~efDot~≒~efr~𝔢~eg~⪚~egs~⪖~egsdot~⪘~el~⪙~elinters~⏧~ell~ℓ~els~⪕~elsdot~⪗~emacr~ē~emptyset~∅~emptyv~∅~emsp13~ ~emsp14~ ~eng~ŋ~eogon~ę~eopf~𝕖~epar~⋕~eparsl~⧣~eplus~⩱~epsi~ε~epsiv~ϵ~eqcirc~≖~eqcolon~≕~eqsim~≂~eqslantgtr~⪖~eqslantless~⪕~equals~=~equest~≟~equivDD~⩸~eqvparsl~⧥~erDot~≓~erarr~⥱~escr~ℯ~esdot~≐~esim~≂~excl~!~expectation~ℰ~exponentiale~ⅇ~fallingdotseq~≒~fcy~ф~female~♀~ffilig~ffi~fflig~ff~ffllig~ffl~ffr~𝔣~filig~fi~fjlig~fj~flat~♭~fllig~fl~fltns~▱~fopf~𝕗~fork~⋔~forkv~⫙~fpartint~⨍~frac13~⅓~frac15~⅕~frac16~⅙~frac18~⅛~frac23~⅔~frac25~⅖~frac35~⅗~frac38~⅜~frac45~⅘~frac56~⅚~frac58~⅝~frac78~⅞~frown~⌢~fscr~𝒻~gE~≧~gEl~⪌~gacute~ǵ~gammad~ϝ~gap~⪆~gbreve~ğ~gcirc~ĝ~gcy~г~gdot~ġ~gel~⋛~geq~≥~geqq~≧~geqslant~⩾~ges~⩾~gescc~⪩~gesdot~⪀~gesdoto~⪂~gesdotol~⪄~gesl~⋛︀~gesles~⪔~gfr~𝔤~gg~≫~ggg~⋙~gimel~ℷ~gjcy~ѓ~gl~≷~glE~⪒~gla~⪥~glj~⪤~gnE~≩~gnap~⪊~gnapprox~⪊~gne~⪈~gneq~⪈~gneqq~≩~gnsim~⋧~gopf~𝕘~grave~`~gscr~ℊ~gsim~≳~gsime~⪎~gsiml~⪐~gtcc~⪧~gtcir~⩺~gtdot~⋗~gtlPar~⦕~gtquest~⩼~gtrapprox~⪆~gtrarr~⥸~gtrdot~⋗~gtreqless~⋛~gtreqqless~⪌~gtrless~≷~gtrsim~≳~gvertneqq~≩︀~gvnE~≩︀~hairsp~ ~half~½~hamilt~ℋ~hardcy~ъ~harrcir~⥈~harrw~↭~hbar~ℏ~hcirc~ĥ~heartsuit~♥~hercon~⊹~hfr~𝔥~hksearow~⤥~hkswarow~⤦~hoarr~⇿~homtht~∻~hookleftarrow~↩~hookrightarrow~↪~hopf~𝕙~horbar~―~hscr~𝒽~hslash~ℏ~hstrok~ħ~hybull~⁃~hyphen~‐~ic~~icy~и~iecy~е~iff~⇔~ifr~𝔦~ii~ⅈ~iiiint~⨌~iiint~∭~iinfin~⧜~iiota~℩~ijlig~ij~imacr~ī~imagline~ℐ~imagpart~ℑ~imath~ı~imof~⊷~imped~Ƶ~in~∈~incare~℅~infintie~⧝~inodot~ı~intcal~⊺~integers~ℤ~intercal~⊺~intlarhk~⨗~intprod~⨼~iocy~ё~iogon~į~iopf~𝕚~iprod~⨼~iscr~𝒾~isinE~⋹~isindot~⋵~isins~⋴~isinsv~⋳~isinv~∈~it~~itilde~ĩ~iukcy~і~jcirc~ĵ~jcy~й~jfr~𝔧~jmath~ȷ~jopf~𝕛~jscr~𝒿~jsercy~ј~jukcy~є~kappav~ϰ~kcedil~ķ~kcy~к~kfr~𝔨~kgreen~ĸ~khcy~х~kjcy~ќ~kopf~𝕜~kscr~𝓀~lAarr~⇚~lAtail~⤛~lBarr~⤎~lE~≦~lEg~⪋~lHar~⥢~lacute~ĺ~laemptyv~⦴~lagran~ℒ~langd~⦑~langle~⟨~lap~⪅~larrb~⇤~larrbfs~⤟~larrfs~⤝~larrhk~↩~larrlp~↫~larrpl~⤹~larrsim~⥳~larrtl~↢~lat~⪫~latail~⤙~late~⪭~lates~⪭︀~lbarr~⤌~lbbrk~❲~lbrace~{~lbrack~[~lbrke~⦋~lbrksld~⦏~lbrkslu~⦍~lcaron~ľ~lcedil~ļ~lcub~{~lcy~л~ldca~⤶~ldquor~„~ldrdhar~⥧~ldrushar~⥋~ldsh~↲~leftarrow~←~leftarrowtail~↢~leftharpoondown~↽~leftharpoonup~↼~leftleftarrows~⇇~leftrightarrow~↔~leftrightarrows~⇆~leftrightharpoons~⇋~leftrightsquigarrow~↭~leftthreetimes~⋋~leg~⋚~leq~≤~leqq~≦~leqslant~⩽~les~⩽~lescc~⪨~lesdot~⩿~lesdoto~⪁~lesdotor~⪃~lesg~⋚︀~lesges~⪓~lessapprox~⪅~lessdot~⋖~lesseqgtr~⋚~lesseqqgtr~⪋~lessgtr~≶~lesssim~≲~lfisht~⥼~lfr~𝔩~lg~≶~lgE~⪑~lhard~↽~lharu~↼~lharul~⥪~lhblk~▄~ljcy~љ~ll~≪~llarr~⇇~llcorner~⌞~llhard~⥫~lltri~◺~lmidot~ŀ~lmoust~⎰~lmoustache~⎰~lnE~≨~lnap~⪉~lnapprox~⪉~lne~⪇~lneq~⪇~lneqq~≨~lnsim~⋦~loang~⟬~loarr~⇽~lobrk~⟦~longleftarrow~⟵~longleftrightarrow~⟷~longmapsto~⟼~longrightarrow~⟶~looparrowleft~↫~looparrowright~↬~lopar~⦅~lopf~𝕝~loplus~⨭~lotimes~⨴~lowbar~_~lozenge~◊~lozf~⧫~lpar~(~lparlt~⦓~lrarr~⇆~lrcorner~⌟~lrhar~⇋~lrhard~⥭~lrtri~⊿~lscr~𝓁~lsh~↰~lsim~≲~lsime~⪍~lsimg~⪏~lsqb~[~lsquor~‚~lstrok~ł~ltcc~⪦~ltcir~⩹~ltdot~⋖~lthree~⋋~ltimes~⋉~ltlarr~⥶~ltquest~⩻~ltrPar~⦖~ltri~◃~ltrie~⊴~ltrif~◂~lurdshar~⥊~luruhar~⥦~lvertneqq~≨︀~lvnE~≨︀~mDDot~∺~male~♂~malt~✠~maltese~✠~map~↦~mapsto~↦~mapstodown~↧~mapstoleft~↤~mapstoup~↥~marker~▮~mcomma~⨩~mcy~м~measuredangle~∡~mfr~𝔪~mho~℧~mid~∣~midast~*~midcir~⫰~minusb~⊟~minusd~∸~minusdu~⨪~mlcp~⫛~mldr~…~mnplus~∓~models~⊧~mopf~𝕞~mp~∓~mscr~𝓂~mstpos~∾~multimap~⊸~mumap~⊸~nGg~⋙̸~nGt~≫⃒~nGtv~≫̸~nLeftarrow~⇍~nLeftrightarrow~⇎~nLl~⋘̸~nLt~≪⃒~nLtv~≪̸~nRightarrow~⇏~nVDash~⊯~nVdash~⊮~nacute~ń~nang~∠⃒~nap~≉~napE~⩰̸~napid~≋̸~napos~ʼn~napprox~≉~natur~♮~natural~♮~naturals~ℕ~nbump~≎̸~nbumpe~≏̸~ncap~⩃~ncaron~ň~ncedil~ņ~ncong~≇~ncongdot~⩭̸~ncup~⩂~ncy~н~neArr~⇗~nearhk~⤤~nearr~↗~nearrow~↗~nedot~≐̸~nequiv~≢~nesear~⤨~nesim~≂̸~nexist~∄~nexists~∄~nfr~𝔫~ngE~≧̸~nge~≱~ngeq~≱~ngeqq~≧̸~ngeqslant~⩾̸~nges~⩾̸~ngsim~≵~ngt~≯~ngtr~≯~nhArr~⇎~nharr~↮~nhpar~⫲~nis~⋼~nisd~⋺~niv~∋~njcy~њ~nlArr~⇍~nlE~≦̸~nlarr~↚~nldr~‥~nle~≰~nleftarrow~↚~nleftrightarrow~↮~nleq~≰~nleqq~≦̸~nleqslant~⩽̸~nles~⩽̸~nless~≮~nlsim~≴~nlt~≮~nltri~⋪~nltrie~⋬~nmid~∤~nopf~𝕟~notinE~⋹̸~notindot~⋵̸~notinva~∉~notinvb~⋷~notinvc~⋶~notni~∌~notniva~∌~notnivb~⋾~notnivc~⋽~npar~∦~nparallel~∦~nparsl~⫽⃥~npart~∂̸~npolint~⨔~npr~⊀~nprcue~⋠~npre~⪯̸~nprec~⊀~npreceq~⪯̸~nrArr~⇏~nrarr~↛~nrarrc~⤳̸~nrarrw~↝̸~nrightarrow~↛~nrtri~⋫~nrtrie~⋭~nsc~⊁~nsccue~⋡~nsce~⪰̸~nscr~𝓃~nshortmid~∤~nshortparallel~∦~nsim~≁~nsime~≄~nsimeq~≄~nsmid~∤~nspar~∦~nsqsube~⋢~nsqsupe~⋣~nsubE~⫅̸~nsube~⊈~nsubset~⊂⃒~nsubseteq~⊈~nsubseteqq~⫅̸~nsucc~⊁~nsucceq~⪰̸~nsup~⊅~nsupE~⫆̸~nsupe~⊉~nsupset~⊃⃒~nsupseteq~⊉~nsupseteqq~⫆̸~ntgl~≹~ntlg~≸~ntriangleleft~⋪~ntrianglelefteq~⋬~ntriangleright~⋫~ntrianglerighteq~⋭~num~#~numero~№~numsp~ ~nvDash~⊭~nvHarr~⤄~nvap~≍⃒~nvdash~⊬~nvge~≥⃒~nvgt~>⃒~nvinfin~⧞~nvlArr~⤂~nvle~≤⃒~nvlt~<⃒~nvltrie~⊴⃒~nvrArr~⤃~nvrtrie~⊵⃒~nvsim~∼⃒~nwArr~⇖~nwarhk~⤣~nwarr~↖~nwarrow~↖~nwnear~⤧~oS~Ⓢ~oast~⊛~ocir~⊚~ocy~о~odash~⊝~odblac~ő~odiv~⨸~odot~⊙~odsold~⦼~ofcir~⦿~ofr~𝔬~ogon~˛~ogt~⧁~ohbar~⦵~ohm~Ω~oint~∮~olarr~↺~olcir~⦾~olcross~⦻~olt~⧀~omacr~ō~omid~⦶~ominus~⊖~oopf~𝕠~opar~⦷~operp~⦹~orarr~↻~ord~⩝~order~ℴ~orderof~ℴ~origof~⊶~oror~⩖~orslope~⩗~orv~⩛~oscr~ℴ~osol~⊘~otimesas~⨶~ovbar~⌽~par~∥~parallel~∥~parsim~⫳~parsl~⫽~pcy~п~percnt~%~period~.~pertenk~‱~pfr~𝔭~phiv~ϕ~phmmat~ℳ~phone~☎~pitchfork~⋔~planck~ℏ~planckh~ℎ~plankv~ℏ~plus~+~plusacir~⨣~plusb~⊞~pluscir~⨢~plusdo~∔~plusdu~⨥~pluse~⩲~plussim~⨦~plustwo~⨧~pm~±~pointint~⨕~popf~𝕡~pr~≺~prE~⪳~prap~⪷~prcue~≼~pre~⪯~prec~≺~precapprox~⪷~preccurlyeq~≼~preceq~⪯~precnapprox~⪹~precneqq~⪵~precnsim~⋨~precsim~≾~primes~ℙ~prnE~⪵~prnap~⪹~prnsim~⋨~profalar~⌮~profline~⌒~profsurf~⌓~propto~∝~prsim~≾~prurel~⊰~pscr~𝓅~puncsp~ ~qfr~𝔮~qint~⨌~qopf~𝕢~qprime~⁗~qscr~𝓆~quaternions~ℍ~quatint~⨖~quest~?~questeq~≟~rAarr~⇛~rAtail~⤜~rBarr~⤏~rHar~⥤~race~∽̱~racute~ŕ~raemptyv~⦳~rangd~⦒~range~⦥~rangle~⟩~rarrap~⥵~rarrb~⇥~rarrbfs~⤠~rarrc~⤳~rarrfs~⤞~rarrhk~↪~rarrlp~↬~rarrpl~⥅~rarrsim~⥴~rarrtl~↣~rarrw~↝~ratail~⤚~ratio~∶~rationals~ℚ~rbarr~⤍~rbbrk~❳~rbrace~}~rbrack~]~rbrke~⦌~rbrksld~⦎~rbrkslu~⦐~rcaron~ř~rcedil~ŗ~rcub~}~rcy~р~rdca~⤷~rdldhar~⥩~rdquor~”~rdsh~↳~realine~ℛ~realpart~ℜ~reals~ℝ~rect~▭~rfisht~⥽~rfr~𝔯~rhard~⇁~rharu~⇀~rharul~⥬~rhov~ϱ~rightarrow~→~rightarrowtail~↣~rightharpoondown~⇁~rightharpoonup~⇀~rightleftarrows~⇄~rightleftharpoons~⇌~rightrightarrows~⇉~rightsquigarrow~↝~rightthreetimes~⋌~ring~˚~risingdotseq~≓~rlarr~⇄~rlhar~⇌~rmoust~⎱~rmoustache~⎱~rnmid~⫮~roang~⟭~roarr~⇾~robrk~⟧~ropar~⦆~ropf~𝕣~roplus~⨮~rotimes~⨵~rpar~)~rpargt~⦔~rppolint~⨒~rrarr~⇉~rscr~𝓇~rsh~↱~rsqb~]~rsquor~’~rthree~⋌~rtimes~⋊~rtri~▹~rtrie~⊵~rtrif~▸~rtriltri~⧎~ruluhar~⥨~rx~℞~sacute~ś~sc~≻~scE~⪴~scap~⪸~sccue~≽~sce~⪰~scedil~ş~scirc~ŝ~scnE~⪶~scnap~⪺~scnsim~⋩~scpolint~⨓~scsim~≿~scy~с~sdotb~⊡~sdote~⩦~seArr~⇘~searhk~⤥~searr~↘~searrow~↘~semi~;~seswar~⤩~setminus~∖~setmn~∖~sext~✶~sfr~𝔰~sfrown~⌢~sharp~♯~shchcy~щ~shcy~ш~shortmid~∣~shortparallel~∥~sigmav~ς~simdot~⩪~sime~≃~simeq~≃~simg~⪞~simgE~⪠~siml~⪝~simlE~⪟~simne~≆~simplus~⨤~simrarr~⥲~slarr~←~smallsetminus~∖~smashp~⨳~smeparsl~⧤~smid~∣~smile~⌣~smt~⪪~smte~⪬~smtes~⪬︀~softcy~ь~sol~/~solb~⧄~solbar~⌿~sopf~𝕤~spadesuit~♠~spar~∥~sqcap~⊓~sqcaps~⊓︀~sqcup~⊔~sqcups~⊔︀~sqsub~⊏~sqsube~⊑~sqsubset~⊏~sqsubseteq~⊑~sqsup~⊐~sqsupe~⊒~sqsupset~⊐~sqsupseteq~⊒~squ~□~square~□~squarf~▪~squf~▪~srarr~→~sscr~𝓈~ssetmn~∖~ssmile~⌣~sstarf~⋆~star~☆~starf~★~straightepsilon~ϵ~straightphi~ϕ~strns~¯~subE~⫅~subdot~⪽~subedot~⫃~submult~⫁~subnE~⫋~subne~⊊~subplus~⪿~subrarr~⥹~subset~⊂~subseteq~⊆~subseteqq~⫅~subsetneq~⊊~subsetneqq~⫋~subsim~⫇~subsub~⫕~subsup~⫓~succ~≻~succapprox~⪸~succcurlyeq~≽~succeq~⪰~succnapprox~⪺~succneqq~⪶~succnsim~⋩~succsim~≿~sung~♪~supE~⫆~supdot~⪾~supdsub~⫘~supedot~⫄~suphsol~⟉~suphsub~⫗~suplarr~⥻~supmult~⫂~supnE~⫌~supne~⊋~supplus~⫀~supset~⊃~supseteq~⊇~supseteqq~⫆~supsetneq~⊋~supsetneqq~⫌~supsim~⫈~supsub~⫔~supsup~⫖~swArr~⇙~swarhk~⤦~swarr~↙~swarrow~↙~swnwar~⤪~target~⌖~tbrk~⎴~tcaron~ť~tcedil~ţ~tcy~т~tdot~⃛~telrec~⌕~tfr~𝔱~therefore~∴~thetav~ϑ~thickapprox~≈~thicksim~∼~thkap~≈~thksim~∼~timesb~⊠~timesbar~⨱~timesd~⨰~tint~∭~toea~⤨~top~⊤~topbot~⌶~topcir~⫱~topf~𝕥~topfork~⫚~tosa~⤩~tprime~‴~triangle~▵~triangledown~▿~triangleleft~◃~trianglelefteq~⊴~triangleq~≜~triangleright~▹~trianglerighteq~⊵~tridot~◬~trie~≜~triminus~⨺~triplus~⨹~trisb~⧍~tritime~⨻~trpezium~⏢~tscr~𝓉~tscy~ц~tshcy~ћ~tstrok~ŧ~twixt~≬~twoheadleftarrow~↞~twoheadrightarrow~↠~uHar~⥣~ubrcy~ў~ubreve~ŭ~ucy~у~udarr~⇅~udblac~ű~udhar~⥮~ufisht~⥾~ufr~𝔲~uharl~↿~uharr~↾~uhblk~▀~ulcorn~⌜~ulcorner~⌜~ulcrop~⌏~ultri~◸~umacr~ū~uogon~ų~uopf~𝕦~uparrow~↑~updownarrow~↕~upharpoonleft~↿~upharpoonright~↾~uplus~⊎~upsi~υ~upuparrows~⇈~urcorn~⌝~urcorner~⌝~urcrop~⌎~uring~ů~urtri~◹~uscr~𝓊~utdot~⋰~utilde~ũ~utri~▵~utrif~▴~uuarr~⇈~uwangle~⦧~vArr~⇕~vBar~⫨~vBarv~⫩~vDash~⊨~vangrt~⦜~varepsilon~ϵ~varkappa~ϰ~varnothing~∅~varphi~ϕ~varpi~ϖ~varpropto~∝~varr~↕~varrho~ϱ~varsigma~ς~varsubsetneq~⊊︀~varsubsetneqq~⫋︀~varsupsetneq~⊋︀~varsupsetneqq~⫌︀~vartheta~ϑ~vartriangleleft~⊲~vartriangleright~⊳~vcy~в~vdash~⊢~vee~∨~veebar~⊻~veeeq~≚~vellip~⋮~verbar~|~vert~|~vfr~𝔳~vltri~⊲~vnsub~⊂⃒~vnsup~⊃⃒~vopf~𝕧~vprop~∝~vrtri~⊳~vscr~𝓋~vsubnE~⫋︀~vsubne~⊊︀~vsupnE~⫌︀~vsupne~⊋︀~vzigzag~⦚~wcirc~ŵ~wedbar~⩟~wedge~∧~wedgeq~≙~wfr~𝔴~wopf~𝕨~wp~℘~wr~≀~wreath~≀~wscr~𝓌~xcap~⋂~xcirc~◯~xcup~⋃~xdtri~▽~xfr~𝔵~xhArr~⟺~xharr~⟷~xlArr~⟸~xlarr~⟵~xmap~⟼~xnis~⋻~xodot~⨀~xopf~𝕩~xoplus~⨁~xotime~⨂~xrArr~⟹~xrarr~⟶~xscr~𝓍~xsqcup~⨆~xuplus~⨄~xutri~△~xvee~⋁~xwedge~⋀~yacy~я~ycirc~ŷ~ycy~ы~yfr~𝔶~yicy~ї~yopf~𝕪~yscr~𝓎~yucy~ю~zacute~ź~zcaron~ž~zcy~з~zdot~ż~zeetrf~ℨ~zfr~𝔷~zhcy~ж~zigrarr~⇝~zopf~𝕫~zscr~𝓏~~AMP~&~COPY~©~GT~>~LT~<~QUOT~\\\"~REG~®\", namedReferences['html4']);\n//# sourceMappingURL=named-references.js.map","export var numericUnicodeMap = {\n 0: 65533,\n 128: 8364,\n 130: 8218,\n 131: 402,\n 132: 8222,\n 133: 8230,\n 134: 8224,\n 135: 8225,\n 136: 710,\n 137: 8240,\n 138: 352,\n 139: 8249,\n 140: 338,\n 142: 381,\n 145: 8216,\n 146: 8217,\n 147: 8220,\n 148: 8221,\n 149: 8226,\n 150: 8211,\n 151: 8212,\n 152: 732,\n 153: 8482,\n 154: 353,\n 155: 8250,\n 156: 339,\n 158: 382,\n 159: 376\n};\n//# sourceMappingURL=numeric-unicode-map.js.map","export var fromCodePoint = String.fromCodePoint ||\n function (astralCodePoint) {\n return String.fromCharCode(Math.floor((astralCodePoint - 0x10000) / 0x400) + 0xd800, ((astralCodePoint - 0x10000) % 0x400) + 0xdc00);\n };\n// @ts-expect-error - String.prototype.codePointAt might not exist in older node versions\nexport var getCodePoint = String.prototype.codePointAt\n ? function (input, position) {\n return input.codePointAt(position);\n }\n : function (input, position) {\n return (input.charCodeAt(position) - 0xd800) * 0x400 + input.charCodeAt(position + 1) - 0xdc00 + 0x10000;\n };\nexport var highSurrogateFrom = 0xd800;\nexport var highSurrogateTo = 0xdbff;\n//# sourceMappingURL=surrogate-pairs.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { bodyRegExps, namedReferences } from './named-references.js';\nimport { numericUnicodeMap } from './numeric-unicode-map.js';\nimport { fromCodePoint, getCodePoint } from './surrogate-pairs.js';\nvar allNamedReferences = __assign(__assign({}, namedReferences), { all: namedReferences.html5 });\nvar encodeRegExps = {\n specialChars: /[<>'\"&]/g,\n nonAscii: /[<>'\"&\\u0080-\\uD7FF\\uE000-\\uFFFF\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g,\n nonAsciiPrintable: /[<>'\"&\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g,\n nonAsciiPrintableOnly: /[\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g,\n extensive: /[\\x01-\\x0c\\x0e-\\x1f\\x21-\\x2c\\x2e-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7d\\x7f-\\uD7FF\\uE000-\\uFFFF\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g\n};\nvar defaultEncodeOptions = {\n mode: 'specialChars',\n level: 'all',\n numeric: 'decimal'\n};\n/** Encodes all the necessary (specified by `level`) characters in the text */\nexport function encode(text, _a) {\n var _b = _a === void 0 ? defaultEncodeOptions : _a, _c = _b.mode, mode = _c === void 0 ? 'specialChars' : _c, _d = _b.numeric, numeric = _d === void 0 ? 'decimal' : _d, _e = _b.level, level = _e === void 0 ? 'all' : _e;\n if (!text) {\n return '';\n }\n var encodeRegExp = encodeRegExps[mode];\n var references = allNamedReferences[level].characters;\n var isHex = numeric === 'hexadecimal';\n return String.prototype.replace.call(text, encodeRegExp, function (input) {\n var result = references[input];\n if (!result) {\n var code = input.length > 1 ? getCodePoint(input, 0) : input.charCodeAt(0);\n result = (isHex ? '&#x' + code.toString(16) : '&#' + code) + ';';\n }\n return result;\n });\n}\nvar defaultDecodeOptions = {\n scope: 'body',\n level: 'all'\n};\nvar strict = /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);/g;\nvar attribute = /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;\nvar baseDecodeRegExps = {\n xml: {\n strict: strict,\n attribute: attribute,\n body: bodyRegExps.xml\n },\n html4: {\n strict: strict,\n attribute: attribute,\n body: bodyRegExps.html4\n },\n html5: {\n strict: strict,\n attribute: attribute,\n body: bodyRegExps.html5\n }\n};\nvar decodeRegExps = __assign(__assign({}, baseDecodeRegExps), { all: baseDecodeRegExps.html5 });\nvar fromCharCode = String.fromCharCode;\nvar outOfBoundsChar = fromCharCode(65533);\nvar defaultDecodeEntityOptions = {\n level: 'all'\n};\nfunction getDecodedEntity(entity, references, isAttribute, isStrict) {\n var decodeResult = entity;\n var decodeEntityLastChar = entity[entity.length - 1];\n if (isAttribute && decodeEntityLastChar === '=') {\n decodeResult = entity;\n }\n else if (isStrict && decodeEntityLastChar !== ';') {\n decodeResult = entity;\n }\n else {\n var decodeResultByReference = references[entity];\n if (decodeResultByReference) {\n decodeResult = decodeResultByReference;\n }\n else if (entity[0] === '&' && entity[1] === '#') {\n var decodeSecondChar = entity[2];\n var decodeCode = decodeSecondChar == 'x' || decodeSecondChar == 'X'\n ? parseInt(entity.substr(3), 16)\n : parseInt(entity.substr(2));\n decodeResult =\n decodeCode >= 0x10ffff\n ? outOfBoundsChar\n : decodeCode > 65535\n ? fromCodePoint(decodeCode)\n : fromCharCode(numericUnicodeMap[decodeCode] || decodeCode);\n }\n }\n return decodeResult;\n}\n/** Decodes a single entity */\nexport function decodeEntity(entity, _a) {\n var _b = _a === void 0 ? defaultDecodeEntityOptions : _a, _c = _b.level, level = _c === void 0 ? 'all' : _c;\n if (!entity) {\n return '';\n }\n return getDecodedEntity(entity, allNamedReferences[level].entities, false, false);\n}\n/** Decodes all entities in the text */\nexport function decode(text, _a) {\n var _b = _a === void 0 ? defaultDecodeOptions : _a, _c = _b.level, level = _c === void 0 ? 'all' : _c, _d = _b.scope, scope = _d === void 0 ? level === 'xml' ? 'strict' : 'body' : _d;\n if (!text) {\n return '';\n }\n var decodeRegExp = decodeRegExps[level][scope];\n var references = allNamedReferences[level].entities;\n var isAttribute = scope === 'attribute';\n var isStrict = scope === 'strict';\n return text.replace(decodeRegExp, function (entity) { return getDecodedEntity(entity, references, isAttribute, isStrict); });\n}\n//# sourceMappingURL=index.js.map","import { camelCase, startCase } from 'lodash-es';\nimport { decode } from 'html-entities';\n\nexport const SELECT_COLORS_LIGHT = ['coat-of-arms', 'brick', 'bus', 'tram'];\n\n// Helper to convert strings like 'coat-of-arms' to 'CoatOfArms'\nconst toPascalCase = (s: string): string =>\n startCase(camelCase(s)).replace(/\\s/g, '');\n\n/**\n * Converts a string (e.g., 'coat-of-arms') into PascalCase (e.g., 'CoatOfArms').\n * @param {string} color The color string to convert.\n * @returns {string} The color string in PascalCase format.\n */\nexport const getColor = (color: string): string => toPascalCase(color);\n\n/**\n * Prepends 'icon-' to a name and converts it to PascalCase (e.g., 'icon-alert' to 'IconAlert').\n * @param {string} name The icon name part.\n * @returns {string} The icon name in PascalCase format.\n */\nexport const getIconName = (name: string): string =>\n toPascalCase(`icon-${name}`);\n\n/**\n * Strips all HTML tags from a string and decodes HTML entities.\n * Uses a safe regex (/<[^>]*>/gi) to prevent ReDoS (Regular Expression Denial of Service).\n *\n * @param {string} html The input string containing HTML markup.\n * @returns {string} The resulting text string with all HTML tags removed and entities decoded.\n */\nexport const getTextFromHtml = (html: string): string =>\n decode(html.replace(/<[^>]*>/gi, ''));\n\n/**\n * Checks if the text color should be white based on the background color.\n * @param {string} color The background color string.\n * @returns {boolean} True if white text should be used, false otherwise.\n */\nexport const isWhiteText = (color: string): boolean =>\n SELECT_COLORS_LIGHT.includes(color);\n","import React, { Suspense } from 'react';\n\nimport styles from '../pageModules.module.scss';\n\ntype IconProps = {\n name: string;\n};\n\nexport function Icon({ name }: IconProps) {\n const fallback = () => <div />;\n const IconComponent = React.useMemo(\n () =>\n React.lazy(() =>\n import('../../../common/components/icons').then((module) => ({\n default: module[name as keyof typeof module] || fallback,\n })),\n ),\n [name],\n );\n return (\n <Suspense fallback={<div className={styles.fallbackIcon} />}>\n <IconComponent />\n </Suspense>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n Button,\n ButtonPresetTheme,\n ButtonVariant,\n IconAngleRight,\n} from 'hds-react';\n\nimport styles from '../pageModules.module.scss';\nimport colorStyles from '../../styles/background.module.scss';\nimport {\n getColor,\n getIconName,\n getTextFromHtml,\n isWhiteText,\n} from '../../utils/string';\nimport { Icon } from './Icon';\nimport { useConfig } from '../../configProvider/useConfig';\n\ntype CardProps = {\n title?: string;\n description?: string;\n backgroundColor?: string;\n icon?: string;\n linkTitle?: string;\n linkTarget?: string;\n linkUrl?: string;\n direction?: 'vertical' | 'horisontal';\n};\n\nexport function SimpleCard({\n title,\n description,\n backgroundColor,\n icon,\n linkTitle,\n linkTarget,\n linkUrl,\n direction = 'vertical',\n}: CardProps) {\n const {\n utils: { redirectToUrl },\n } = useConfig();\n\n const openInNewTab = (url: string): void => {\n const newWindow = window.open(url, '_blank', 'noopener,noreferrer');\n if (newWindow) newWindow.opener = null;\n };\n\n const handleClick = () => {\n if (linkUrl) {\n if (linkTarget === '_blank') {\n openInNewTab(linkUrl);\n } else {\n redirectToUrl(linkUrl);\n }\n }\n };\n\n return (\n <div\n className={classNames(\n styles.cardWrapper,\n backgroundColor &&\n colorStyles[`background${getColor(backgroundColor)}`],\n backgroundColor &&\n isWhiteText(backgroundColor) &&\n colorStyles.whiteText,\n direction && styles[direction],\n )}\n >\n {icon && (\n <div\n className={classNames(\n styles.cardIconWrapper,\n direction && styles[direction],\n )}\n >\n <Icon name={getIconName(icon)} />\n </div>\n )}\n <div className={styles.cardContent}>\n {title && <div className={styles.title}>{title}</div>}\n {description && (\n <div className={styles.description}>\n {getTextFromHtml(description)}\n </div>\n )}\n {linkTitle && linkUrl && (\n <div\n className={classNames(\n styles.button,\n backgroundColor &&\n isWhiteText(backgroundColor) &&\n colorStyles.whiteButton,\n )}\n >\n <Button\n style={direction === 'vertical' ? { width: '100%' } : {}}\n variant={ButtonVariant.Secondary}\n theme={ButtonPresetTheme.Black}\n onClick={handleClick}\n iconStart={<IconAngleRight />}\n >\n {linkTitle}\n </Button>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport type { LayoutCards } from '../../../common/headlessService/types';\nimport { SimpleCard } from '../../pageModules/CardsModule/SimpleCard';\nimport styles from './sidebarCardsList.module.scss';\nimport { useConfig } from '../../configProvider/useConfig';\nimport { getUri } from '../../../common/headlessService/utils';\n\ntype CardsListItemProps = Omit<LayoutCards, '__typename'>;\n\nexport default function SidebarCardsList({ cards }: CardsListItemProps) {\n const {\n internalHrefOrigins,\n utils: { getIsHrefExternal, getRoutedInternalHref },\n } = useConfig();\n\n if (cards?.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.cardsContainer}>\n {cards\n ?.filter((card) => !!card)\n .map((card) => {\n const uri = getUri(\n card.link?.url ?? '#',\n internalHrefOrigins,\n getIsHrefExternal,\n );\n const key = btoa(`sidebar-card-${card.title}-${uri}`);\n return (\n <SimpleCard\n key={key}\n title={card.title ?? undefined}\n icon={card.icon ?? undefined}\n description={card.description ?? undefined}\n backgroundColor={card.backgroundColor ?? undefined}\n linkUrl={getRoutedInternalHref(uri)}\n linkTitle={card.link?.title ?? undefined}\n linkTarget={card.link?.target ?? undefined}\n direction=\"vertical\"\n />\n );\n })}\n </div>\n );\n}\n","import React from 'react';\n\nimport List from '../../../common/components/list/List';\nimport { ModuleItemTypeEnum } from '../../../common/headlessService/constants';\nimport type { SidebarContent as SidebarContentType } from '../../../common/headlessService/types';\nimport {\n isLayoutArticle,\n isLayoutCards,\n isLayoutLinkList,\n isLayoutPage,\n} from '../../../common/headlessService/utils';\nimport SidebarContentLinkList from './SidebarContentLinkList';\nimport SidebarPostListItem from './SidebarPostListItem';\nimport SidebarCardsList from './SidebarCardsList';\n\ntype SidebarContentProps = {\n content?: SidebarContentType;\n SidebarContentLinkListComponent?: typeof SidebarContentLinkList;\n SidebarPostListComponent?: typeof List;\n SideBarPostListItemComponent?: typeof SidebarPostListItem;\n SideBarCardsListComponent?: typeof SidebarCardsList;\n};\n\nexport default function SidebarContent({\n content,\n SidebarContentLinkListComponent = SidebarContentLinkList,\n SidebarPostListComponent = List,\n SideBarPostListItemComponent = SidebarPostListItem,\n SideBarCardsListComponent = SidebarCardsList,\n}: SidebarContentProps) {\n return (\n <List\n variant=\"spacing-3-xl\"\n items={\n content?.map((item) => {\n if (isLayoutLinkList(item)) {\n return (\n <SidebarContentLinkListComponent\n key={item.title}\n title={item.title}\n links={item.links}\n description={item.description}\n anchor={item.anchor}\n />\n );\n }\n\n if (isLayoutPage(item)) {\n return (\n <SidebarPostListComponent\n key=\"pages\"\n variant=\"spacing-3-xl\"\n items={item?.pages?.map((page, index) => (\n <SideBarPostListItemComponent\n {...page}\n key={page?.id ?? `sidebar-post-list-page-${index}`}\n id={page?.id ?? `sidebar-post-list-page-${index}`}\n moduleItemType={ModuleItemTypeEnum.Page}\n />\n ))}\n />\n );\n }\n\n if (isLayoutArticle(item)) {\n return (\n <SidebarPostListComponent\n key=\"articles\"\n variant=\"spacing-3-xl\"\n items={item?.articles?.map((article, index) => (\n <SideBarPostListItemComponent\n key={article?.id ?? `sidebar-post-list-article-${index}`}\n id={article?.id ?? `sidebar-post-list-article-${index}`}\n {...article}\n moduleItemType={ModuleItemTypeEnum.Article}\n />\n ))}\n />\n );\n }\n\n if (isLayoutCards(item)) {\n return <SideBarCardsListComponent key=\"cards\" cards={item.cards} />;\n }\n\n return null;\n }) ?? []\n }\n />\n );\n}\n","import * as React from 'react';\n\ntype ContainerProps = {\n /**\n * Additional children to render inside the container.\n */\n children: JSX.Element | string;\n /**\n * Optional wrapper element for the container.\n */\n wrapper?: JSX.Element;\n};\n\nexport default function Container({ wrapper, children }: ContainerProps) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return wrapper ? React.cloneElement(wrapper, [], children) : <>{children}</>;\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport styles from './contentContainer.module.scss';\n\nexport type ContentContainerProps = {\n /**\n * Additional children to render inside the Content container.\n */\n children: React.ReactNode;\n /**\n * Additinal classname applied to the Content container.\n */\n className?: string;\n};\n\nexport function ContentContainer({\n className,\n children,\n}: ContentContainerProps) {\n return (\n <div className={classNames(styles.container, className)}>{children}</div>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n Button,\n ButtonPresetTheme,\n ButtonVariant,\n IconAngleRight,\n IconArrowLeft,\n Koros,\n} from 'hds-react';\n\nimport Container from '../../common/components/container/Container';\nimport styles from './hero.module.scss';\nimport colorStyles from '../styles/background.module.scss';\nimport { Link } from '../link/Link';\nimport { ContentContainer } from '../contentContainer/ContentContainer';\nimport { Image } from '../image/Image';\nimport Text from '../../common/components/text/Text';\nimport type { HeroProps } from '../pageContent/types';\nimport { getColor, isWhiteText } from '../utils/string';\nimport { useConfig } from '../configProvider/useConfig';\n\nexport type HeroComponentProps = {\n /**\n * Hero container id.\n */\n id: string;\n /**\n * Additinal classname applied to the Content container.\n */\n className?: string;\n /**\n * Hero back button url.\n */\n backUrl?: string;\n /**\n * Hero iamge url.\n */\n imageUrl?: string;\n /**\n * Hero alt image text.\n */\n imageAlt?: string;\n /**\n * Hero iamge label.\n */\n imageLabel?: string;\n /**\n * Hero container wrapper component.\n */\n container?: JSX.Element;\n} & HeroProps;\n\nexport default function Hero({\n id,\n title,\n description,\n backgroundColor,\n korosType = 'basic',\n actionText,\n actionUrl,\n actionUrlTarget,\n className,\n backUrl,\n imageUrl,\n imageAlt,\n container,\n imageLabel,\n}: HeroComponentProps) {\n const {\n utils: { redirectToUrl },\n } = useConfig();\n\n const openInNewTab = (url: string): void => {\n const newWindow = window.open(url, '_blank', 'noopener,noreferrer');\n if (newWindow) newWindow.opener = null;\n };\n\n const handleClick = () => {\n if (actionUrl) {\n if (actionUrlTarget === '_blank') {\n openInNewTab(actionUrl);\n } else {\n redirectToUrl(actionUrl);\n }\n }\n };\n\n const textContents = (\n <div\n className={classNames(\n styles.textContents,\n backgroundColor &&\n !imageUrl &&\n isWhiteText(backgroundColor) &&\n colorStyles.whiteText,\n title && backgroundColor && korosType && styles.withKoros,\n )}\n >\n <header>\n <Text as=\"h1\" variant=\"h1\">\n {title}\n </Text>\n </header>\n {description && <p>{description}</p>}\n {actionText && actionUrl && (\n <div\n className={classNames(\n !imageUrl && styles.button,\n backgroundColor &&\n !imageUrl &&\n isWhiteText(backgroundColor) &&\n colorStyles.whiteButton,\n )}\n >\n <Button\n variant={ButtonVariant.Secondary}\n theme={ButtonPresetTheme.Black}\n onClick={handleClick}\n iconEnd={<IconAngleRight />}\n >\n {actionText}\n </Button>\n </div>\n )}\n </div>\n );\n\n return (\n <>\n <div\n className={classNames(\n styles.hero,\n className,\n backgroundColor &&\n colorStyles[`background${getColor(backgroundColor)}`],\n title &&\n backgroundColor &&\n korosType &&\n !imageUrl &&\n styles.withKoros,\n korosType && styles[korosType],\n )}\n >\n <Container wrapper={container}>\n <ContentContainer>\n <div className={styles.heroInner}>\n {imageUrl && (\n <div>\n <Image\n id={id}\n className={styles.imageContainer}\n src={imageUrl}\n alt={imageAlt ?? ''}\n />\n {imageLabel && (\n <div className={styles.label}>{imageLabel}</div>\n )}\n </div>\n )}\n\n {backUrl && (\n <div className={styles.link}>\n <Link\n href={backUrl}\n openInNewTab={false}\n aria-label=\"Back\"\n iconLeft={<IconArrowLeft aria-hidden=\"true\" />}\n />\n </div>\n )}\n {!imageUrl && title && textContents}\n </div>\n </ContentContainer>\n </Container>\n {(title || backgroundColor || imageUrl) && korosType && (\n <Koros\n className={classNames(\n styles.heroKoros,\n imageUrl && styles.withMargin,\n korosType && styles[korosType],\n )}\n type={korosType}\n flipVertical={!imageUrl}\n style={{\n fill: `var(--${\n // eslint-disable-next-line no-nested-ternary\n imageUrl\n ? 'color-white'\n : backgroundColor\n ? `color-${backgroundColor}`\n : 'hcrc-color-hero-bg, --color-fog-light'\n })`,\n }}\n />\n )}\n </div>\n {imageUrl && title && (\n <Container>\n <ContentContainer>{textContents}</ContentContainer>\n </Container>\n )}\n </>\n );\n}\n","import type { TagTheme } from 'hds-react';\n\nexport const theme1: TagTheme = {\n '--background-color': 'var(--color-black-10)',\n '--color': 'var(--color-black)',\n '--outline-color': 'var(--color-black-70)',\n};\n\nexport const theme2: TagTheme = {\n '--background-color': 'var(--color-tram-light)',\n '--color': 'var(--color-black-90)',\n '--outline-color': 'var(--color-black-70)',\n};\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport { Tag as HDSTag } from 'hds-react';\nimport type { TagProps as HDSTagProps } from 'hds-react';\n\nimport styles from './tag.module.scss';\nimport { theme1, theme2 } from './tagThemes';\n\ntype Props = {\n /**\n * Boolean indicating whether the tag has a featured style variant.\n */\n featured?: boolean;\n /**\n * Boolean indicating whether the tag has a white-only style variant.\n */\n whiteOnly?: boolean;\n /**\n * Boolean indicating whether the tag has a selected style variant.\n */\n selected?: boolean;\n /**\n * White-space wrapping (Enabled by default in HDS v4, but disabled in this lib).\n */\n noTextWrap?: boolean;\n /**\n * onClick handler.\n */\n onClick?: () => void;\n} & Pick<HDSTagProps, 'children' | 'className' | 'id' | 'role' | 'size'>;\n\nexport function Tag({\n className,\n children,\n featured,\n selected,\n whiteOnly,\n noTextWrap = false,\n onClick,\n id,\n ...hdsTagProps\n}: Props) {\n /**\n * @deprecated the generatedId won't be needed after HDS removes the default value from the HDS Tag component:\n * https://github.com/City-of-Helsinki/helsinki-design-system/blob/master/packages/react/src/components/tag/Tag.tsx#L81).\n * */\n const generatedId = React.useId();\n\n return (\n <HDSTag\n onClick={onClick}\n {...(!onClick && { tabIndex: -1 })}\n theme={featured ? theme2 : theme1}\n className={classNames(\n styles.tag,\n featured && styles.featured,\n selected && styles.selected,\n whiteOnly && styles.whiteOnly,\n noTextWrap && styles.noTextWrap,\n onClick && !featured && styles.withHover,\n !onClick && styles.noOutline,\n className,\n )}\n {...hdsTagProps}\n // TODO: don't use the generatedId and allow an undefined id.\n id={id ?? `tag${generatedId}`}\n >\n {children}\n </HDSTag>\n );\n}\n","import React from 'react';\n\nimport styles from './BackgroundImage.module.scss';\nimport { Tag } from '../../common/components/tag/Tag';\nimport { useResolveImageUrl } from '../hooks/useResolveImageUrl';\n\nexport type BackgroundImageProps = {\n /**\n * Background image id.\n */\n id: string;\n /**\n * Background image url.\n */\n url?: string | null;\n /**\n * Background fallback image url.\n */\n customFallbackUrl?: string;\n /**\n * Background image label tag.\n */\n labelTag?: string;\n} & React.HTMLAttributes<HTMLDivElement>;\n\nexport function BackgroundImage({\n id,\n url,\n customFallbackUrl,\n labelTag,\n children,\n ...divProps\n}: BackgroundImageProps) {\n const resolvedUrl = useResolveImageUrl({ id, url, customFallbackUrl });\n\n return (\n <div\n {...divProps}\n style={{\n ...divProps.style,\n backgroundImage: `url(${resolvedUrl})`,\n }}\n >\n {children}\n {labelTag && (\n <div className={styles.imageLabel}>\n <Tag className={styles.tag}>{labelTag}</Tag>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Koros } from 'hds-react';\n\nimport styles from './pageSection.module.scss';\nimport { BackgroundImage } from '../image/BackgroundImage';\n\nexport type PageSectionProps = {\n /**\n * Additional children to render inside the Page section.\n */\n children: React.ReactNode;\n /**\n * Additional classname for the Page section.\n */\n className?: string;\n /**\n * Boolean indicating whether the koros top shouyld be displayed.\n */\n korosTop?: boolean;\n /**\n * Custom top koros classname.\n */\n korosTopClassName?: string;\n /**\n * Boolean indicating whether the koros bottom shouyld be displayed.\n */\n korosBottom?: boolean;\n /**\n * Custom bottom koros classname.\n */\n korosBottomClassName?: string;\n /**\n * Backgroud image url.\n */\n backgroundImageUrl?: string;\n};\n\nexport function PageSection({\n className,\n children,\n korosTop,\n korosTopClassName,\n korosBottom,\n korosBottomClassName,\n backgroundImageUrl,\n}: PageSectionProps) {\n const Wrapper = backgroundImageUrl ? BackgroundImage : 'div';\n return (\n <Wrapper\n id={backgroundImageUrl ?? 'page-section'}\n url={backgroundImageUrl}\n className={classNames(\n styles.pageSection,\n korosTop && styles.withKorosTop,\n korosBottom && styles.withKorosBottom,\n className,\n )}\n >\n {korosTop && (\n <Koros\n flipVertical\n className={classNames(styles.korosTop, korosTopClassName)}\n />\n )}\n {korosBottom && (\n <Koros\n className={classNames(styles.korosBottom, korosBottomClassName)}\n />\n )}\n {children}\n </Wrapper>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport styles from './pageContentLayout.module.scss';\nimport Hero from '../hero/Hero';\nimport { ContentContainer } from '../contentContainer/ContentContainer';\nimport { PageSection } from '../pageSection/PageSection';\nimport type { HeroProps } from './types';\n\nexport type PageContentLayoutProps = {\n id: string;\n breadcrumbs?: React.ReactNode;\n heroContainer?: JSX.Element;\n content: React.ReactNode;\n shareLinks?: React.ReactNode;\n collections?: React.ReactNode;\n sidebarContent: React.ReactNode;\n imageSrc?: string | null;\n imageAlt?: string;\n imageLabel?: string;\n backUrl?: string;\n} & HeroProps;\n\nexport function PageContentLayout({\n id,\n breadcrumbs,\n heroContainer,\n content,\n shareLinks,\n collections,\n sidebarContent,\n imageSrc,\n imageAlt,\n imageLabel,\n backUrl,\n ...heroProps\n}: PageContentLayoutProps) {\n return (\n <div className={styles.contentLayout}>\n {breadcrumbs && <div className={styles.breadcrumbs}>{breadcrumbs}</div>}\n <div className={styles.mainLayout}>\n <Hero\n id={id}\n container={heroContainer}\n imageAlt={imageAlt}\n imageUrl={imageSrc ?? undefined}\n imageLabel={imageLabel}\n backUrl={backUrl}\n {...heroProps}\n />\n <PageSection\n className={classNames(\n styles.contentWrapper,\n !heroProps.title && !imageSrc ? styles.withBorder : '',\n )}\n >\n <ContentContainer>\n <div className={styles.content}>\n <div className={styles.mainContent}>{content}</div>\n <aside>{sidebarContent}</aside>\n <div className={styles.shareLinks}>{shareLinks}</div>\n </div>\n </ContentContainer>\n </PageSection>\n {collections && (\n <PageSection\n className={styles.collectionsWrapper}\n korosTop\n korosTopClassName={styles.collectionKorosTop}\n >\n <ContentContainer>{collections}</ContentContainer>\n </PageSection>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { HtmlToReact } from '../../common/components/htmlToReact/HtmlToReact';\nimport Text from '../../common/components/text/Text';\nimport type { ArticleType } from '../../common/headlessService/types';\nimport styles from './pageMainContent.module.scss';\nimport { formatDateFromString } from '../../common/utils/dates';\nimport { Tag } from '../../common/components/tag/Tag';\nimport { Link } from '../link/Link';\nimport { useConfig } from '../configProvider/useConfig';\n\nexport type PageMainContentProps = {\n title: string;\n content: string;\n date?: string;\n categories?: NonNullable<ArticleType>['categories'];\n contentModules?: React.ReactNode[];\n onArticlesSearch?: (tag: string) => void;\n};\n\nexport function PageMainContent({\n title,\n content,\n date,\n categories,\n contentModules,\n onArticlesSearch,\n}: PageMainContentProps) {\n const {\n htmlSanitizer: { allowedUnsafeTags, trustedOrigins },\n } = useConfig();\n\n return (\n <article className={styles.mainContent}>\n <header>\n <Text as=\"h1\" variant=\"h1\">\n {title}\n </Text>\n </header>\n {(date || categories) && (\n <div className={styles.articleData}>\n {date && (\n <div className={styles.articleDate}>\n {formatDateFromString(date || '')}\n </div>\n )}\n {categories?.edges?.map((category) => (\n <Tag\n className={styles.tag}\n key={category.node?.id}\n onClick={\n onArticlesSearch\n ? () => {\n onArticlesSearch(category.node?.id);\n }\n : undefined\n }\n >\n {String(category.node?.name)}\n </Tag>\n ))}\n </div>\n )}\n <HtmlToReact\n components={{\n a: Link,\n }}\n allowedUnsafeTags={allowedUnsafeTags}\n trustedOrigins={trustedOrigins}\n >\n {content}\n </HtmlToReact>\n {(contentModules ?? [])?.length > 0 && contentModules}\n </article>\n );\n}\n","import React from 'react';\n\nimport type {\n ArticleType,\n PageType,\n} from '../../../common/headlessService/types';\nimport { useConfig } from '../../configProvider/useConfig';\n\nexport type PageMetaProps = {\n page?: PageType | ArticleType;\n headComponent: React.ComponentType<{ children: React.ReactNode }>;\n};\n\nfunction replaceAll(str: string, find: string, replace: string) {\n return str.replace(new RegExp(find, 'g'), replace);\n}\n\nfunction unescapeDash(str?: string): string {\n if (!str) {\n return str ?? '';\n }\n\n return replaceAll(str, '-', '-');\n}\n\nexport function PageMeta({ page, headComponent: Head }: PageMetaProps) {\n const seoForCurrentLanguage = page?.seo;\n const {\n title,\n description,\n twitterTitle,\n twitterDescription,\n openGraphTitle,\n openGraphType,\n openGraphDescription,\n } = seoForCurrentLanguage ?? {};\n const image = seoForCurrentLanguage?.socialImage?.mediaItemUrl;\n const xTitle = twitterTitle ?? title ?? undefined;\n const xDescription = twitterDescription ?? description ?? undefined;\n\n const { meta } = useConfig();\n\n return (\n <Head>\n <title>{unescapeDash(title ?? undefined)}</title>\n {description && <meta name=\"description\" content={description} />}\n <meta\n property=\"og:title\"\n content={openGraphTitle ?? unescapeDash(title ?? undefined)}\n />\n {openGraphDescription && (\n <meta property=\"og:description\" content={openGraphDescription} />\n )}\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n {image && (\n <>\n <meta property=\"og:image\" content={image} />\n <meta property=\"twitter:image\" content={image} />\n </>\n )}\n {openGraphType && <meta property=\"og:type\" content={openGraphType} />}\n {xTitle && <meta name=\"twitter:title\" content={xTitle} />}\n {xDescription && (\n <meta name=\"twitter:description\" content={xDescription} />\n )}\n <link rel=\"icon\" href={meta?.favIconUrl} sizes=\"any\" />\n <link rel=\"icon\" href={meta?.favIconSvgUrl} type=\"image/svg+xml\" />\n <link rel=\"apple-touch-icon\" href={meta?.appleTouchIconUrl} />\n <link rel=\"manifest\" href={meta?.manifestUrl} />\n </Head>\n );\n}\n","import type {\n CarouselContextComponentPropsType,\n CarouselContextType,\n} from './types';\n\nexport const MOBILE_WIDTH = 840;\n\n// NOTE: Would it be better to leave all these undefined?\n// For some reason VSCode is always showing them as defined,\n// when the context is being used,\n// eventhough they would be explicitly set to undefined.\nconst initialCarouselContextProps: CarouselContextComponentPropsType = {\n itemsShownOnDesktop: 3,\n itemsShownOnMobile: 1,\n withDots: false,\n navigateWithDots: true,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onLoadMore: () => {},\n hasMore: false,\n loading: false,\n loadMoreButtonLabelText: '',\n title: '',\n};\n\nexport const initialCarouselContextStateValues = {\n isReady: true,\n transformValue: '0px',\n numberOfSlides: 0,\n itemsPerSlide: 0,\n currentSlide: 0,\n width: 0,\n numberOfItems: 0,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n handleUpdateSlideProps: () => {},\n ...initialCarouselContextProps,\n} as const satisfies Omit<\n CarouselContextType,\n | 'setTransformValue'\n | 'setNumberOfSlides'\n | 'setItemsPerSlide'\n | 'setCurrentSlide'\n | 'setWidth'\n>;\n","import React from 'react';\n\nimport { initialCarouselContextStateValues } from '../constants';\nimport type { CarouselContextType } from '../types';\n\nconst throwFieldImplError = (fieldName: string) => {\n throw new Error(\n `${fieldName} is still unimplemented, when it should be implemented`,\n );\n};\n\nexport const CarouselContext = React.createContext<CarouselContextType>({\n ...initialCarouselContextStateValues,\n setTransformValue() {\n throwFieldImplError('setTransformValue');\n },\n setNumberOfSlides() {\n throwFieldImplError('setNumberOfSlides');\n },\n setItemsPerSlide() {\n throwFieldImplError('setItemsPerSlide');\n },\n setCurrentSlide() {\n throwFieldImplError('setCurrentSlide');\n },\n setWidth() {\n throwFieldImplError('setWidth');\n },\n handleUpdateSlideProps() {\n throwFieldImplError('handleUpdateSlideProps');\n },\n});\n\nexport function useCarouselContext() {\n const context = React.useContext(CarouselContext);\n if (!context) {\n throw new Error(\n `Carousel components cannot be rendered outside the CarouselContextProvider`,\n );\n }\n return context;\n}\n","import React from 'react';\n\nimport { CarouselContext } from './CarouselContext';\nimport type {\n CarouselContextComponentPropsType,\n CarouselContextStateType,\n} from '../types';\nimport { initialCarouselContextStateValues } from '../constants';\n\nexport type CarouselContextProviderProps = {\n children: React.ReactNode;\n numberOfItems: number;\n} & CarouselContextComponentPropsType;\n\nfunction useCarouselContextState(): Omit<\n CarouselContextStateType,\n 'numberOfItems'\n> {\n const [isReady] = React.useState<CarouselContextStateType['isReady']>(\n initialCarouselContextStateValues.isReady,\n );\n const [transformValue, setTransformValue] = React.useState<\n CarouselContextStateType['transformValue']\n >(initialCarouselContextStateValues.transformValue);\n const [numberOfSlides, setNumberOfSlides] = React.useState<\n CarouselContextStateType['numberOfSlides']\n >(initialCarouselContextStateValues.numberOfSlides);\n const [itemsPerSlide, setItemsPerSlide] = React.useState<\n CarouselContextStateType['itemsPerSlide']\n >(initialCarouselContextStateValues.itemsPerSlide);\n const [currentSlide, setCurrentSlide] = React.useState<\n CarouselContextStateType['currentSlide']\n >(initialCarouselContextStateValues.currentSlide);\n const [width, setWidth] = React.useState<CarouselContextStateType['width']>(\n initialCarouselContextStateValues.width,\n );\n\n const handleUpdateSlideProps: CarouselContextStateType['handleUpdateSlideProps'] =\n (targetSlide: number): void => {\n if (targetSlide === 0) {\n setTransformValue('0px');\n } else {\n // The transform is ALWAYS negative, based purely on the target index.\n setTransformValue(`-${targetSlide}00%`);\n }\n setCurrentSlide(targetSlide);\n };\n\n return {\n isReady,\n transformValue,\n setTransformValue,\n numberOfSlides,\n setNumberOfSlides,\n itemsPerSlide,\n setItemsPerSlide,\n currentSlide,\n setCurrentSlide,\n width,\n setWidth,\n handleUpdateSlideProps,\n };\n}\n\nexport function CarouselContextProvider({\n children,\n numberOfItems,\n ...backwardCompatibleProps\n}: CarouselContextProviderProps): React.ReactElement {\n const carouselContext = useCarouselContextState();\n\n const value = React.useMemo(\n () => ({\n numberOfItems,\n ...carouselContext,\n ...backwardCompatibleProps,\n }),\n [numberOfItems, carouselContext, backwardCompatibleProps],\n );\n return (\n <CarouselContext.Provider value={value}>\n {children}\n </CarouselContext.Provider>\n );\n}\n","/**\n * @param arr - any array.\n * @param len - the array length.\n * @return chunks array of initial array (grouped elements).\n */\nexport function splitArrayIntoChunksOfLen(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arr: Array<React.ReactElement<any>>,\n len: number,\n) {\n const chunks = [];\n let i = 0;\n const n = arr.length;\n while (i < n) {\n chunks.push(arr.slice(i, (i += len)));\n }\n return chunks;\n}\n\n/**\n * @param index - item set index.\n * @param itemSetId - item set (element of the array).\n * @return an unique key based on input data.\n */\nexport const getItemSetKey = (index: number, itemSetId?: string) =>\n `itemSet-${itemSetId ?? ''}-${index}`;\n\n/**\n * Create an unique key for item set.\n * @param index - item index.\n * @param itemId - item (element of the array). Default 'itemSet-item'\n * @param itemSetPrefix - item prefix (element of the array).\n * @return an unique key based on input data.\n */\nexport const getItemSetItemKey = (\n index: number,\n itemId?: string,\n itemSetPrefix = 'itemSet-item',\n) => `${itemSetPrefix}-${itemId ?? ''}-${index}`;\n\n/**\n * @param item - item (element of the array).\n * @param index - item index.\n * @return an unique key for the dot (slide counter) based on input data.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const getSlideDotKey = (item: any, index: number) =>\n `slide-dot-${item?.id ?? ''}-${index}`;\n\nexport const getLoadMoreKey = () => 'carousel-loadmore';\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport styles from '../carousel.module.scss';\nimport { getItemSetItemKey } from '../utils/utils';\nimport { MOBILE_WIDTH } from '../constants';\nimport { useCarouselContext } from '../context/CarouselContext';\n\nexport function CarouselSliderPage({\n itemSet,\n itemSetIndex,\n}: {\n itemSet: React.ReactElement[];\n itemSetIndex: number;\n}) {\n const { currentSlide, width, itemsShownOnDesktop, itemsShownOnMobile } =\n useCarouselContext();\n const itemsPerSlide =\n (width > MOBILE_WIDTH ? itemsShownOnDesktop : itemsShownOnMobile) ?? 1;\n const styleWidth = `${100 / itemsPerSlide}%`;\n return (\n <li\n ref={(node) =>\n node && node.toggleAttribute('inert', itemSetIndex !== currentSlide)\n }\n aria-hidden={itemSetIndex !== currentSlide}\n className={classNames(\n styles.slide,\n itemSetIndex === currentSlide && styles.slideSelected,\n )}\n >\n <div className={styles.slideItems}>\n {itemSet.map((item, itemIndex) => (\n <div\n key={getItemSetItemKey(\n itemIndex,\n undefined,\n `itemSet-${itemSetIndex}-item`,\n )}\n className={styles.slideItem}\n style={{\n width: styleWidth,\n }}\n >\n {item}\n </div>\n ))}\n </div>\n </li>\n );\n}\n","import React from 'react';\nimport { Button, ButtonVariant, LoadingSpinner } from 'hds-react';\n\nimport styles from '../carousel.module.scss';\nimport { splitArrayIntoChunksOfLen, getLoadMoreKey } from '../utils/utils';\nimport { useCarouselContext } from '../context/CarouselContext';\nimport { CarouselSliderPage } from './CarouselSliderPage';\nimport type { CarouselProps } from '../types';\nimport { useTranslationWithFallback } from '../../translation/useTranslationWithFallback';\n\nfunction useCarouselSliderRegionAriaLabel() {\n const { itemsPerSlide, currentSlide, numberOfItems } = useCarouselContext();\n const { t } = useTranslationWithFallback();\n\n return t('carouselSliderRegionLabelText')\n .replace('{itemsPerSlide}', String(itemsPerSlide))\n .replace('{numberOfItems}', String(numberOfItems))\n .replace('{currentSlide}', String(currentSlide + 1));\n}\n\nfunction CarouselLoadMoreButton() {\n const { onLoadMore, loading, loadMoreButtonLabelText } = useCarouselContext();\n const iconStart = loading ? <LoadingSpinner small /> : null;\n return (\n <div className={styles.onLoadMoreContainer}>\n <Button\n iconStart={iconStart}\n onClick={onLoadMore}\n variant={ButtonVariant.Primary}\n role=\"button\"\n >\n {String(loadMoreButtonLabelText)}\n </Button>\n </div>\n );\n}\n\nexport function CarouselSlider({\n children,\n}: Pick<CarouselProps<unknown>, 'children'>) {\n const { transformValue, itemsPerSlide, onLoadMore, hasMore } =\n useCarouselContext();\n\n const shouldShowLoadMoreButton = hasMore && !!onLoadMore;\n\n const items = React.useMemo(\n () =>\n shouldShowLoadMoreButton\n ? [...children, <CarouselLoadMoreButton key={getLoadMoreKey()} />]\n : children,\n [children, shouldShowLoadMoreButton],\n );\n\n const itemSets = React.useMemo(\n () =>\n itemsPerSlide > 0 ? splitArrayIntoChunksOfLen(items, itemsPerSlide) : [],\n [items, itemsPerSlide],\n );\n\n const ariaLabel = useCarouselSliderRegionAriaLabel();\n\n return (\n <div className={styles.sliderWrapper} data-testid=\"carousel-slider\">\n <ul\n className={styles.sliderAnimated}\n style={{\n transform: `translateX(${transformValue})`,\n }}\n aria-label={ariaLabel}\n role=\"presentation\"\n >\n {itemSets.map((itemSet, itemSetIndex) => (\n <CarouselSliderPage\n // eslint-disable-next-line react/no-array-index-key\n key={`itemSet-${itemSetIndex}`}\n itemSet={itemSet}\n itemSetIndex={itemSetIndex}\n />\n ))}\n </ul>\n </div>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { IconAngleLeft, IconAngleRight } from 'hds-react';\n\nimport styles from '../carousel.module.scss';\nimport { useConfig } from '../../configProvider/useConfig';\nimport { useCarouselContext } from '../context/CarouselContext';\n\nexport function CarouselPreviousSlideButton() {\n const {\n copy: { previous },\n } = useConfig();\n const {\n isReady,\n numberOfSlides,\n currentSlide,\n title,\n handleUpdateSlideProps,\n } = useCarouselContext();\n\n const handlePrevClick = (): void => {\n // Loop to the last slide if we are on the first, otherwise go to the previous.\n const targetSlide =\n currentSlide === 0 ? numberOfSlides - 1 : currentSlide - 1;\n handleUpdateSlideProps(targetSlide);\n };\n\n const ariaLabelTitle = title ? ` - ${title}` : '';\n\n return (\n <button\n type=\"button\"\n aria-label={`${previous}${ariaLabelTitle}`}\n className={classNames(styles.btn, styles.btnPrev)}\n onClick={handlePrevClick}\n disabled={!isReady}\n >\n <IconAngleLeft />\n </button>\n );\n}\n\nexport function CarouselNextSlideButton() {\n const {\n copy: { next },\n } = useConfig();\n const {\n isReady,\n numberOfSlides,\n currentSlide,\n title,\n handleUpdateSlideProps,\n } = useCarouselContext();\n\n const handleNextClick = (): void => {\n // Loop to the first slide if we are on the last, otherwise go to the next.\n handleUpdateSlideProps(\n currentSlide + 1 === numberOfSlides ? 0 : currentSlide + 1,\n );\n };\n\n const ariaLabelTitle = title ? ` - ${title}` : '';\n\n return (\n <button\n type=\"button\"\n aria-label={`${next}${ariaLabelTitle}`}\n className={classNames(styles.btn, styles.btnNext)}\n onClick={handleNextClick}\n disabled={!isReady}\n >\n <IconAngleRight />\n </button>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport styles from '../carousel.module.scss';\nimport { getSlideDotKey } from '../utils/utils';\nimport { useCarouselContext } from '../context/CarouselContext';\nimport { useTranslationWithFallback } from '../../translation/useTranslationWithFallback';\n\nfunction CarouselSlideDot({ slideIndex }: { slideIndex: number }) {\n const { currentSlide, handleUpdateSlideProps, navigateWithDots } =\n useCarouselContext();\n\n const { t } = useTranslationWithFallback();\n\n const onClickHandler = (targetSlide: number): void => {\n if (targetSlide === currentSlide) {\n return;\n }\n handleUpdateSlideProps(targetSlide);\n };\n const dotButtonAriaLabel = t('carouselSliderDotNavLabelText').replace(\n '{slideNumber}',\n String(slideIndex + 1),\n );\n\n return (\n <button\n className={classNames(styles.dot, {\n [styles.selected]: slideIndex === currentSlide,\n [styles.button]: navigateWithDots,\n })}\n onClick={() => onClickHandler(slideIndex)}\n tabIndex={0}\n type=\"button\"\n aria-label={dotButtonAriaLabel}\n disabled={!navigateWithDots}\n />\n );\n}\n\nexport function CarouselSlideDots() {\n const { numberOfSlides, navigateWithDots } = useCarouselContext();\n\n return (\n <div\n className={styles.dotsContainer}\n role=\"navigation\"\n aria-hidden={!navigateWithDots}\n data-testid=\"carousel-dots\"\n >\n {[...Array(numberOfSlides)].map((entry, slideIndex) => (\n <CarouselSlideDot\n key={getSlideDotKey(entry, slideIndex)}\n slideIndex={slideIndex}\n />\n ))}\n </div>\n );\n}\n","import React, { useEffect } from 'react';\nimport classNames from 'classnames';\n\nimport styles from './carousel.module.scss';\nimport { initialCarouselContextStateValues, MOBILE_WIDTH } from './constants';\nimport { useCarouselContext } from './context/CarouselContext';\nimport { CarouselContextProvider } from './context/CarouselContextProvider';\nimport { CarouselSlider } from './components/CarouselSlider';\nimport {\n CarouselNextSlideButton,\n CarouselPreviousSlideButton,\n} from './components/CarouselSlideButton';\nimport { CarouselSlideDots } from './components/CarouselSliderDot';\nimport type { CarouselProps } from './types';\nimport { useTranslationWithFallback } from '../translation/useTranslationWithFallback';\n\nfunction useCarouselDimensions() {\n const { setWidth } = useCarouselContext();\n const updateDimensions = () => setWidth(window.innerWidth);\n\n useEffect(() => {\n updateDimensions();\n window.addEventListener('resize', updateDimensions);\n return () => window.removeEventListener('resize', updateDimensions);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n}\n\nfunction useCarouselRegionAriaLabel() {\n const { title } = useCarouselContext();\n const { t } = useTranslationWithFallback();\n return t('carouselRegionLabelText').replace('{title}', title ?? '');\n}\n\nfunction CarouselWithContext({\n children: items,\n className = '',\n}: Pick<CarouselProps<unknown>, 'className' | 'children'>) {\n const {\n isReady,\n setTransformValue,\n numberOfSlides,\n setNumberOfSlides,\n itemsPerSlide,\n setItemsPerSlide,\n setCurrentSlide,\n width,\n itemsShownOnDesktop,\n itemsShownOnMobile,\n withDots,\n onLoadMore,\n hasMore,\n } = useCarouselContext();\n\n const carouselAriaLabel = useCarouselRegionAriaLabel();\n\n useCarouselDimensions();\n\n useEffect(() => {\n setItemsPerSlide(\n Math.ceil(\n (width > MOBILE_WIDTH ? itemsShownOnDesktop : itemsShownOnMobile) ?? 1,\n ),\n );\n setCurrentSlide(0);\n setTransformValue('0px');\n }, [\n width,\n itemsShownOnDesktop,\n itemsShownOnMobile,\n setItemsPerSlide,\n setCurrentSlide,\n setTransformValue,\n ]);\n\n useEffect(() => {\n if (itemsPerSlide > 0) {\n const itemsCount =\n hasMore && !!onLoadMore ? items.length + 1 : items.length;\n setNumberOfSlides(Math.ceil(itemsCount / itemsPerSlide));\n }\n }, [itemsPerSlide, hasMore, onLoadMore, items.length, setNumberOfSlides]);\n\n return (\n <div\n className={classNames(styles.container, className)}\n role=\"region\"\n aria-label={carouselAriaLabel}\n >\n <div role=\"group\" className={styles.carouselWrapper}>\n {numberOfSlides > 1 && (\n <>\n <CarouselPreviousSlideButton />\n <CarouselNextSlideButton />\n </>\n )}\n {isReady && (\n <div className={styles.root}>\n <div\n className={classNames(\n styles.slider,\n numberOfSlides === 1 && styles.noDots,\n )}\n >\n <CarouselSlider>{items}</CarouselSlider>\n </div>\n {withDots && numberOfSlides > 1 && <CarouselSlideDots />}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport function Carousel({\n children: items,\n className = '',\n itemsDesktop = initialCarouselContextStateValues.itemsShownOnDesktop,\n itemsMobile = initialCarouselContextStateValues.itemsShownOnMobile,\n ...restOfBackwardCompatibleProps\n}: CarouselProps<unknown>) {\n return (\n <CarouselContextProvider\n itemsShownOnDesktop={itemsDesktop}\n itemsShownOnMobile={itemsMobile}\n numberOfItems={items.length}\n {...restOfBackwardCompatibleProps}\n >\n <CarouselWithContext className={className}>{items}</CarouselWithContext>\n </CarouselContextProvider>\n );\n}\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { IconArrowRight } from 'hds-react';\nimport type { MouseEventHandler } from 'react';\nimport React, { useState } from 'react';\nimport classNames from 'classnames';\n\nimport styles from './card.module.scss';\nimport colorStyles from '../styles/background.module.scss';\nimport { LinkBox } from '../linkBox/LinkBox';\nimport { Link } from '../link/Link';\nimport { BackgroundImage } from '../image/BackgroundImage';\nimport { getColor, getTextFromHtml, isWhiteText } from '../utils/string';\nimport { useConfig } from '../configProvider/useConfig';\n\nexport type CardDirection =\n | 'fixed-horisontal'\n | 'fixed-vertical'\n | 'responsive'\n | 'responsive-reverse';\n\nexport type CardAlignment =\n | 'left'\n | 'right'\n | 'center-left'\n | 'center-right'\n | 'delimited-left'\n | 'delimited-right';\n\nexport type CardProps = {\n /**\n * Card id.\n */\n id?: string;\n /**\n * Card container aria-label.\n */\n ariaLabel?: string;\n /**\n * Additional classname for the card.\n */\n className?: string;\n /**\n * Card image url.\n */\n imageUrl?: string | null;\n /**\n * Card image label.\n */\n imageLabel?: string;\n /**\n * Card title.\n */\n title?: string;\n /**\n * Boolean indicating whether the styling applied for the title with icon layout.\n */\n withTitleIcon?: boolean;\n /**\n * Card title icon.\n */\n titleIcon?: React.ReactNode | string;\n /**\n * Card subtitle.\n */\n subTitle?: string;\n /**\n * Card main text contents.\n */\n text?: string;\n /**\n * Card custom content (component) below the main text.\n */\n customContent?: React.ReactNode | string;\n /**\n * Boolean indicating whether the link arrow icon is shown.\n */\n hasLink?: boolean;\n /**\n * If true, show link arrow icon label.\n */\n linkArrowLabel?: string;\n /**\n * Card link url.\n */\n url?: string;\n /**\n * Boolean indicating whether the border styles should be applied to the Card.\n */\n withBorder?: boolean;\n /**\n * Boolean indicating whether the shadow styles should be applied to the Card.\n */\n withShadow?: boolean;\n /**\n * Boolean which defines the Card content direction.\n */\n direction?: CardDirection;\n /**\n * Defines the Card text and custon content alignement inside the Card.\n */\n alignment?: CardAlignment;\n /**\n * Boolean indicating whether the text content is clamped in the Card.\n */\n clampText?: boolean;\n /**\n * Boolean indicating whether the Card link opens in new tab.\n */\n openLinkInNewTab?: boolean;\n /**\n * Custom css properties for the Card container\n */\n style?: React.CSSProperties;\n /**\n * Backgroud color of the Card\n */\n backgroundColor?: string;\n /**\n * Defines the width ratio for the text and image element in the card. Primary is wider.\n */\n primaryContent?: 'image' | 'text';\n /**\n * Boolean indicating whether flex attribute should be added to the container of the link.\n */\n flex?: boolean;\n};\n\nconst warnOnSSR = () => {\n // eslint-disable-next-line no-console\n console.warn('Attempted to navigate in a non-browser environment.');\n};\n\nfunction CardTitle({\n children,\n direction,\n withTitleIcon,\n titleIcon,\n}: {\n readonly children: React.ReactNode;\n readonly direction?: CardProps['direction'];\n readonly withTitleIcon: CardProps['withTitleIcon'];\n readonly titleIcon: CardProps['titleIcon'];\n}) {\n if (!children) {\n return null;\n }\n\n return (\n <div className={classNames(styles.title, direction && styles[direction])}>\n {children}\n {withTitleIcon && titleIcon}\n </div>\n );\n}\n\nfunction CardSubTitle({\n children,\n backgroundColor,\n}: {\n readonly children: React.ReactNode;\n readonly backgroundColor?: CardProps['backgroundColor'];\n}): React.ReactElement | null {\n if (!children) {\n return null;\n }\n\n return (\n <div\n className={classNames(\n styles.subTitle,\n backgroundColor &&\n isWhiteText(backgroundColor) &&\n colorStyles.whiteText,\n )}\n >\n {children}\n </div>\n );\n}\n\nfunction CardText({\n children,\n clampText,\n direction,\n}: Pick<CardProps, 'clampText' | 'direction'> & {\n children: React.ReactNode;\n}): React.ReactElement | null {\n if (!children) {\n return null;\n }\n\n return (\n <div\n className={classNames(\n styles.text,\n clampText && styles.clamp,\n direction && styles[direction],\n )}\n >\n {children}\n </div>\n );\n}\n\nfunction CardLink({\n url,\n backgroundColor,\n openLinkInNewTab,\n ariaLabel,\n linkArrowLabel,\n}: Pick<\n CardProps,\n | 'url'\n | 'backgroundColor'\n | 'openLinkInNewTab'\n | 'ariaLabel'\n | 'linkArrowLabel'\n>) {\n if (!url) {\n return null;\n }\n\n return (\n <div\n className={classNames(\n styles.buttonWrapper,\n backgroundColor\n ? colorStyles[`background${getColor(backgroundColor)}`]\n : colorStyles.backgroundDefault,\n backgroundColor &&\n isWhiteText(backgroundColor) &&\n colorStyles.whiteLink,\n )}\n >\n <Link\n tabIndex={-1}\n href={url}\n openInNewTab={openLinkInNewTab}\n iconLeft={<IconArrowRight aria-hidden=\"true\" />}\n showExternalIcon={false}\n aria-label={ariaLabel}\n >\n {linkArrowLabel && (\n <span className={styles.linkArrowLabel}>{linkArrowLabel}</span>\n )}\n </Link>\n </div>\n );\n}\n\nconst getImagePosition = (alignment: CardProps['alignment']) => {\n if (alignment === undefined) {\n return 'image-left';\n }\n return alignment.indexOf('left') === -1 ? 'image-right' : 'image-left';\n};\n\nfunction CardInnerContent({\n id,\n ariaLabel,\n imageUrl,\n imageLabel,\n title,\n withTitleIcon,\n titleIcon,\n subTitle,\n text,\n customContent,\n hasLink,\n linkArrowLabel,\n url,\n withBorder,\n withShadow,\n direction = 'responsive',\n clampText,\n openLinkInNewTab,\n style,\n backgroundColor,\n primaryContent = 'text',\n isHovered,\n handleToggleActive,\n isDelimited,\n isCentered,\n imagePosition,\n handleClick,\n}: Omit<CardProps, 'className' | 'flex'> & {\n isHovered: boolean;\n handleToggleActive: MouseEventHandler;\n isDelimited: boolean;\n isCentered: boolean;\n imagePosition: 'image-left' | 'image-right';\n handleClick: () => void;\n}) {\n const dynamicBackgroundClass = backgroundColor\n ? colorStyles[`background${getColor(backgroundColor)}`]\n : colorStyles.backgroundDefault;\n\n return (\n <div\n className={classNames(styles.cardWrapper, {\n // Layout/Directional classes\n [styles[direction]]: direction,\n [styles['primary-image']]: primaryContent === 'image',\n [styles[imagePosition]]: imagePosition,\n [styles.isDelimited]: isDelimited,\n [styles.isCentered]: isCentered,\n // Style/State classes\n [styles.withBorder]: withBorder,\n [styles.withShadow]: withShadow,\n [styles.isHovered]: isHovered,\n // Color-related classes\n [styles.horizontalBorder]: backgroundColor,\n [colorStyles.whiteText]:\n backgroundColor && isWhiteText(backgroundColor),\n })}\n style={style}\n onMouseEnter={url ? handleToggleActive : undefined}\n onMouseLeave={url ? handleToggleActive : undefined}\n >\n <BackgroundImage\n id={`${id}-image`}\n url={imageUrl}\n labelTag={imageLabel}\n className={classNames(\n styles.imageWrapper,\n direction && styles[direction],\n isDelimited && styles.isDelimited,\n isCentered && styles.isCentered,\n imagePosition.includes('left') ? styles.left : styles.right,\n )}\n />\n\n <div\n className={classNames(\n styles.contentWrapper,\n isDelimited && styles.isDelimited,\n isCentered && styles.isCentered,\n )}\n onClick={handleClick}\n >\n <div\n className={classNames(styles.content, dynamicBackgroundClass, {\n // Conditional classes using the object format\n [colorStyles.whiteText]:\n backgroundColor && isWhiteText(backgroundColor),\n [styles.isDelimited]: isDelimited,\n [styles.isCentered]: isCentered,\n })}\n >\n <div className={styles.textWrapper}>\n {title && (\n <CardTitle\n direction={direction}\n withTitleIcon={withTitleIcon}\n titleIcon={titleIcon}\n >\n {title}\n </CardTitle>\n )}\n <CardSubTitle backgroundColor={backgroundColor}>\n {subTitle}\n </CardSubTitle>\n {text && (\n <CardText clampText={clampText} direction={direction}>\n {getTextFromHtml(text)}\n </CardText>\n )}\n {customContent && (\n <div className={styles.customContent}>{customContent}</div>\n )}\n </div>\n </div>\n {hasLink && (\n <CardLink\n url={url}\n backgroundColor={backgroundColor}\n openLinkInNewTab={openLinkInNewTab}\n ariaLabel={ariaLabel}\n linkArrowLabel={linkArrowLabel}\n />\n )}\n </div>\n </div>\n );\n}\n\nexport function Card(props: CardProps) {\n const { id, ariaLabel, className, url, openLinkInNewTab, flex, alignment } =\n props;\n const [isHovered, setIsHovered] = useState(false);\n const handleToggleActive: MouseEventHandler | undefined = () =>\n setIsHovered((val) => !val);\n\n const isDelimited = alignment?.startsWith('delimited') ?? false;\n const isCentered = alignment?.startsWith('center') ?? false;\n const imagePosition = getImagePosition(alignment);\n\n const {\n utils: { redirectToUrl, getIsHrefExternal },\n } = useConfig();\n\n const handleClick = () => {\n if (!url) return;\n\n // Ensure we are in a client-side (browser) environment\n if (typeof window === 'undefined') {\n warnOnSSR();\n return;\n }\n\n // Determine if we should open a new tab: either it's explicitly set, or it's an external URL.\n const shouldOpenNewTab = openLinkInNewTab || getIsHrefExternal(url);\n\n if (shouldOpenNewTab) {\n const newWindow = window.open(url, '_blank', 'noopener,noreferrer');\n if (newWindow) newWindow.opener = null;\n } else {\n redirectToUrl(url);\n }\n };\n\n const content = (\n <CardInnerContent\n {...props}\n isHovered={isHovered}\n handleToggleActive={handleToggleActive}\n isDelimited={isDelimited}\n isCentered={isCentered}\n imagePosition={imagePosition}\n handleClick={handleClick}\n />\n );\n\n if (url) {\n return (\n <LinkBox\n id={id}\n href={url}\n className={className}\n aria-label={ariaLabel || ''}\n openInNewTab={openLinkInNewTab}\n onMouseEnter={handleToggleActive}\n onMouseLeave={handleToggleActive}\n flex={flex}\n >\n {content}\n </LinkBox>\n );\n }\n\n return content;\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport styles from './grid.module.scss';\n\nexport interface GridProps {\n /**\n * Additional children to render inside the grid.\n */\n children: React.ReactNode;\n /**\n * Number of grid columns.\n */\n colsCount?: number;\n /**\n * Additional classname for grid container.\n */\n className?: string;\n}\n\nexport default function Grid({\n colsCount = 3,\n children,\n className,\n}: GridProps) {\n return (\n <div\n className={classNames(styles.grid, styles[`cols${colsCount}`], className)}\n >\n {children}\n </div>\n );\n}\n","import { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;\n };\nconst defaultOptions = {} as const;\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n _Any: { input: any; output: any };\n federation__FieldSet: { input: any; output: any };\n link__Import: { input: any; output: any };\n};\n\nexport type Audience = {\n __typename?: 'Audience';\n id?: Maybe<Scalars['ID']['output']>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId?: Maybe<Scalars['String']['output']>;\n internalType?: Maybe<Scalars['String']['output']>;\n name?: Maybe<LocalizedObject>;\n};\n\nexport type BannerPage = {\n __typename?: 'BannerPage';\n buttonText?: Maybe<LocalizedObject>;\n buttonUrl?: Maybe<LocalizedObject>;\n description?: Maybe<LocalizedObject>;\n heroBackgroundImage?: Maybe<LocalizedCmsImage>;\n heroBackgroundImageColor?: Maybe<LocalizedObject>;\n heroBackgroundImageMobile?: Maybe<LocalizedCmsImage>;\n heroTopLayerImage?: Maybe<LocalizedCmsImage>;\n keywords?: Maybe<LocalizedCmsKeywords>;\n socialMediaImage?: Maybe<LocalizedCmsImage>;\n title?: Maybe<LocalizedObject>;\n titleAndDescriptionColor?: Maybe<LocalizedObject>;\n};\n\nexport type CmsImage = {\n __typename?: 'CmsImage';\n photographerCredit?: Maybe<LocalizedObject>;\n title?: Maybe<Scalars['String']['output']>;\n url?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Division = {\n __typename?: 'Division';\n municipality?: Maybe<Scalars['String']['output']>;\n name?: Maybe<LocalizedObject>;\n ocdId?: Maybe<Scalars['String']['output']>;\n type: Scalars['String']['output'];\n};\n\nexport type EventDetails = {\n __typename?: 'EventDetails';\n audience: Array<Audience>;\n audienceMaxAge?: Maybe<Scalars['String']['output']>;\n audienceMinAge?: Maybe<Scalars['String']['output']>;\n createdTime?: Maybe<Scalars['String']['output']>;\n customData?: Maybe<Scalars['String']['output']>;\n dataSource?: Maybe<Scalars['String']['output']>;\n datePublished?: Maybe<Scalars['String']['output']>;\n description?: Maybe<LocalizedObject>;\n endTime?: Maybe<Scalars['String']['output']>;\n enrolmentEndTime?: Maybe<Scalars['String']['output']>;\n enrolmentStartTime?: Maybe<Scalars['String']['output']>;\n eventStatus?: Maybe<Scalars['String']['output']>;\n externalLinks: Array<ExternalLink>;\n id: Scalars['ID']['output'];\n images: Array<EventImage>;\n inLanguage: Array<InLanguage>;\n infoUrl?: Maybe<LocalizedObject>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId?: Maybe<Scalars['String']['output']>;\n internalType?: Maybe<Scalars['String']['output']>;\n keywords: Array<Keyword>;\n lastModifiedTime?: Maybe<Scalars['String']['output']>;\n location?: Maybe<Place>;\n locationExtraInfo?: Maybe<LocalizedObject>;\n maximumAttendeeCapacity?: Maybe<Scalars['Int']['output']>;\n minimumAttendeeCapacity?: Maybe<Scalars['Int']['output']>;\n name: LocalizedObject;\n offers: Array<Offer>;\n provider?: Maybe<LocalizedObject>;\n providerContactInfo?: Maybe<LocalizedObject>;\n publisher?: Maybe<Scalars['ID']['output']>;\n registration?: Maybe<Registration>;\n shortDescription?: Maybe<LocalizedObject>;\n startTime?: Maybe<Scalars['String']['output']>;\n subEvents: Array<InternalIdObject>;\n superEvent?: Maybe<InternalIdObject>;\n superEventType?: Maybe<Scalars['String']['output']>;\n typeId?: Maybe<EventTypeId>;\n};\n\nexport type EventImage = {\n __typename?: 'EventImage';\n createdTime?: Maybe<Scalars['String']['output']>;\n cropping?: Maybe<Scalars['String']['output']>;\n dataSource?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['ID']['output']>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId: Scalars['String']['output'];\n internalType?: Maybe<Scalars['String']['output']>;\n lastModifiedTime?: Maybe<Scalars['String']['output']>;\n license?: Maybe<Scalars['String']['output']>;\n name: Scalars['String']['output'];\n photographerName?: Maybe<Scalars['String']['output']>;\n publisher?: Maybe<Scalars['String']['output']>;\n url: Scalars['String']['output'];\n};\n\nexport type EventListResponse = {\n __typename?: 'EventListResponse';\n data: Array<EventDetails>;\n meta: Meta;\n};\n\nexport enum EventTypeId {\n Course = 'Course',\n General = 'General',\n}\n\nexport type ExternalLink = {\n __typename?: 'ExternalLink';\n language?: Maybe<Scalars['String']['output']>;\n link?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type InLanguage = {\n __typename?: 'InLanguage';\n id?: Maybe<Scalars['ID']['output']>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId?: Maybe<Scalars['String']['output']>;\n internalType?: Maybe<Scalars['String']['output']>;\n name?: Maybe<LocalizedObject>;\n translationAvailable?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type InternalIdObject = {\n __typename?: 'InternalIdObject';\n internalId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Keyword = {\n __typename?: 'Keyword';\n aggregate?: Maybe<Scalars['Boolean']['output']>;\n altLabels?: Maybe<Array<Maybe<Scalars['String']['output']>>>;\n createdTime?: Maybe<Scalars['String']['output']>;\n dataSource?: Maybe<Scalars['String']['output']>;\n deprecated?: Maybe<Scalars['Boolean']['output']>;\n hasUpcomingEvents?: Maybe<Scalars['Boolean']['output']>;\n id?: Maybe<Scalars['ID']['output']>;\n image?: Maybe<EventImage>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId: Scalars['String']['output'];\n internalType?: Maybe<Scalars['String']['output']>;\n lastModifiedTime?: Maybe<Scalars['String']['output']>;\n nEvents?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<LocalizedObject>;\n publisher?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type KeywordListResponse = {\n __typename?: 'KeywordListResponse';\n data: Array<Keyword>;\n meta: Meta;\n};\n\nexport type LocalizedCmsImage = {\n __typename?: 'LocalizedCmsImage';\n en?: Maybe<CmsImage>;\n fi?: Maybe<CmsImage>;\n sv?: Maybe<CmsImage>;\n};\n\nexport type LocalizedCmsKeywords = {\n __typename?: 'LocalizedCmsKeywords';\n en?: Maybe<Array<Maybe<Scalars['String']['output']>>>;\n fi?: Maybe<Array<Maybe<Scalars['String']['output']>>>;\n sv?: Maybe<Array<Maybe<Scalars['String']['output']>>>;\n};\n\nexport type LocalizedObject = {\n __typename?: 'LocalizedObject';\n en?: Maybe<Scalars['String']['output']>;\n fi?: Maybe<Scalars['String']['output']>;\n sv?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Meta = {\n __typename?: 'Meta';\n count: Scalars['Int']['output'];\n next?: Maybe<Scalars['String']['output']>;\n previous?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n _empty?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Neighborhood = {\n __typename?: 'Neighborhood';\n id: Scalars['ID']['output'];\n name: LocalizedObject;\n};\n\nexport type NeighborhoodListResponse = {\n __typename?: 'NeighborhoodListResponse';\n data: Array<Neighborhood>;\n meta: Meta;\n};\n\nexport type Offer = {\n __typename?: 'Offer';\n description?: Maybe<LocalizedObject>;\n infoUrl?: Maybe<LocalizedObject>;\n isFree?: Maybe<Scalars['Boolean']['output']>;\n price?: Maybe<LocalizedObject>;\n};\n\nexport type OrganizationDetails = {\n __typename?: 'OrganizationDetails';\n affiliatedOrganizations?: Maybe<Array<Maybe<Scalars['String']['output']>>>;\n classification?: Maybe<Scalars['String']['output']>;\n createdTime?: Maybe<Scalars['String']['output']>;\n dataSource?: Maybe<Scalars['String']['output']>;\n dissolutionDate?: Maybe<Scalars['String']['output']>;\n foundingDate?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['ID']['output']>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId: Scalars['String']['output'];\n internalType?: Maybe<Scalars['String']['output']>;\n isAffiliated: Scalars['Boolean']['output'];\n lastModifiedTime?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n parentOrganization?: Maybe<Scalars['String']['output']>;\n replacedBy?: Maybe<Scalars['String']['output']>;\n subOrganizations?: Maybe<Array<Maybe<Scalars['String']['output']>>>;\n};\n\nexport type Place = {\n __typename?: 'Place';\n addressCountry?: Maybe<Scalars['String']['output']>;\n addressLocality?: Maybe<LocalizedObject>;\n addressRegion?: Maybe<Scalars['String']['output']>;\n contactType?: Maybe<Scalars['String']['output']>;\n createdTime?: Maybe<Scalars['String']['output']>;\n customData?: Maybe<Scalars['String']['output']>;\n dataSource?: Maybe<Scalars['String']['output']>;\n deleted?: Maybe<Scalars['Boolean']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n divisions?: Maybe<Array<Division>>;\n email?: Maybe<Scalars['String']['output']>;\n hasUpcomingEvents?: Maybe<Scalars['Boolean']['output']>;\n id?: Maybe<Scalars['ID']['output']>;\n image?: Maybe<EventImage>;\n infoUrl?: Maybe<LocalizedObject>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId: Scalars['String']['output'];\n internalType?: Maybe<Scalars['String']['output']>;\n lastModifiedTime?: Maybe<Scalars['String']['output']>;\n nEvents?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<LocalizedObject>;\n parent?: Maybe<Scalars['ID']['output']>;\n position?: Maybe<PlacePosition>;\n postOfficeBoxNum?: Maybe<Scalars['String']['output']>;\n postalCode?: Maybe<Scalars['String']['output']>;\n publisher?: Maybe<Scalars['ID']['output']>;\n replacedBy?: Maybe<Scalars['String']['output']>;\n streetAddress?: Maybe<LocalizedObject>;\n telephone?: Maybe<LocalizedObject>;\n};\n\nexport type PlaceListResponse = {\n __typename?: 'PlaceListResponse';\n data: Array<Place>;\n meta: Meta;\n};\n\nexport type PlacePosition = {\n __typename?: 'PlacePosition';\n coordinates: Array<Scalars['Float']['output']>;\n type: Scalars['String']['output'];\n};\n\nexport type Query = {\n __typename?: 'Query';\n _empty?: Maybe<Scalars['String']['output']>;\n _service: _Service;\n eventDetails: EventDetails;\n eventList: EventListResponse;\n eventsByIds: EventListResponse;\n keywordDetails: Keyword;\n keywordList: KeywordListResponse;\n neighborhoodList: NeighborhoodListResponse;\n organizationDetails: OrganizationDetails;\n placeDetails: Place;\n placeList: PlaceListResponse;\n};\n\nexport type QueryEventDetailsArgs = {\n id?: InputMaybe<Scalars['ID']['input']>;\n include?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type QueryEventListArgs = {\n allOngoing?: InputMaybe<Scalars['Boolean']['input']>;\n allOngoingAnd?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n allOngoingOr?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n audienceMaxAgeGt?: InputMaybe<Scalars['String']['input']>;\n audienceMaxAgeLt?: InputMaybe<Scalars['String']['input']>;\n audienceMinAgeGt?: InputMaybe<Scalars['String']['input']>;\n audienceMinAgeLt?: InputMaybe<Scalars['String']['input']>;\n combinedText?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n division?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n end?: InputMaybe<Scalars['String']['input']>;\n endsAfter?: InputMaybe<Scalars['String']['input']>;\n endsBefore?: InputMaybe<Scalars['String']['input']>;\n eventType?: InputMaybe<Array<InputMaybe<EventTypeId>>>;\n fullText?: InputMaybe<Scalars['String']['input']>;\n ids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n inLanguage?: InputMaybe<Scalars['String']['input']>;\n include?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n internetBased?: InputMaybe<Scalars['Boolean']['input']>;\n internetOngoingAnd?: InputMaybe<\n Array<InputMaybe<Scalars['String']['input']>>\n >;\n internetOngoingOr?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isFree?: InputMaybe<Scalars['Boolean']['input']>;\n keyword?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n keywordAnd?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n keywordNot?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n keywordOrSet1?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n keywordOrSet2?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n keywordOrSet3?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n language?: InputMaybe<Scalars['String']['input']>;\n localOngoingAnd?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n localOngoingOr?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n localOngoingOrSet1?: InputMaybe<\n Array<InputMaybe<Scalars['String']['input']>>\n >;\n localOngoingOrSet2?: InputMaybe<\n Array<InputMaybe<Scalars['String']['input']>>\n >;\n localOngoingOrSet3?: InputMaybe<\n Array<InputMaybe<Scalars['String']['input']>>\n >;\n location?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n ongoing?: InputMaybe<Scalars['Boolean']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n publisher?: InputMaybe<Scalars['ID']['input']>;\n publisherAncestor?: InputMaybe<Scalars['ID']['input']>;\n sort?: InputMaybe<Scalars['String']['input']>;\n start?: InputMaybe<Scalars['String']['input']>;\n startsAfter?: InputMaybe<Scalars['String']['input']>;\n startsBefore?: InputMaybe<Scalars['String']['input']>;\n suitableFor?: InputMaybe<Array<InputMaybe<Scalars['Int']['input']>>>;\n superEvent?: InputMaybe<Scalars['ID']['input']>;\n superEventType?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n text?: InputMaybe<Scalars['String']['input']>;\n translation?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type QueryEventsByIdsArgs = {\n end?: InputMaybe<Scalars['String']['input']>;\n eventType?: InputMaybe<Array<InputMaybe<EventTypeId>>>;\n ids: Array<Scalars['ID']['input']>;\n include?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sort?: InputMaybe<Scalars['String']['input']>;\n start?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type QueryKeywordDetailsArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryKeywordListArgs = {\n dataSource?: InputMaybe<Scalars['String']['input']>;\n hasUpcomingEvents?: InputMaybe<Scalars['Boolean']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n showAllKeywords?: InputMaybe<Scalars['Boolean']['input']>;\n sort?: InputMaybe<Scalars['String']['input']>;\n text?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type QueryOrganizationDetailsArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryPlaceDetailsArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryPlaceListArgs = {\n dataSource?: InputMaybe<Scalars['String']['input']>;\n divisions?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n hasUpcomingEvents?: InputMaybe<Scalars['Boolean']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n showAllPlaces?: InputMaybe<Scalars['Boolean']['input']>;\n sort?: InputMaybe<Scalars['String']['input']>;\n text?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Registration = {\n __typename?: 'Registration';\n audienceMaxAge?: Maybe<Scalars['String']['output']>;\n audienceMinAge?: Maybe<Scalars['String']['output']>;\n currentAttendeeCount?: Maybe<Scalars['Int']['output']>;\n currentWaitingListCount?: Maybe<Scalars['Int']['output']>;\n enrolmentEndTime?: Maybe<Scalars['String']['output']>;\n enrolmentStartTime?: Maybe<Scalars['String']['output']>;\n internalContext?: Maybe<Scalars['String']['output']>;\n internalId?: Maybe<Scalars['String']['output']>;\n internalType?: Maybe<Scalars['String']['output']>;\n maximumAttendeeCapacity?: Maybe<Scalars['Int']['output']>;\n maximumGroupSize?: Maybe<Scalars['Int']['output']>;\n minimumAttendeeCapacity?: Maybe<Scalars['Int']['output']>;\n remainingAttendeeCapacity?: Maybe<Scalars['Int']['output']>;\n remainingWaitingListCapacity?: Maybe<Scalars['Int']['output']>;\n signupUrl?: Maybe<LocalizedObject>;\n waitingListCapacity?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type StaticPage = {\n __typename?: 'StaticPage';\n contentSection?: Maybe<LocalizedObject>;\n contentYype?: Maybe<Scalars['Int']['output']>;\n depth?: Maybe<Scalars['Int']['output']>;\n draftTitle?: Maybe<Scalars['String']['output']>;\n expireAt?: Maybe<Scalars['String']['output']>;\n expired?: Maybe<Scalars['Boolean']['output']>;\n firstPublishedAt?: Maybe<Scalars['String']['output']>;\n goLiveAt?: Maybe<Scalars['String']['output']>;\n hasUnpublishedChanges?: Maybe<Scalars['Boolean']['output']>;\n headingSection?: Maybe<LocalizedObject>;\n id: Scalars['ID']['output'];\n keywords?: Maybe<LocalizedCmsKeywords>;\n lastPublishedAt?: Maybe<Scalars['String']['output']>;\n latestRevisionCreatedAt?: Maybe<Scalars['String']['output']>;\n live?: Maybe<Scalars['Boolean']['output']>;\n liveRevision?: Maybe<Scalars['Int']['output']>;\n locked?: Maybe<Scalars['Boolean']['output']>;\n lockedAt?: Maybe<Scalars['String']['output']>;\n lockedBy?: Maybe<Scalars['String']['output']>;\n numchild?: Maybe<Scalars['Int']['output']>;\n owner?: Maybe<Scalars['Int']['output']>;\n path?: Maybe<Scalars['String']['output']>;\n searchDescription?: Maybe<Scalars['String']['output']>;\n seoTitle?: Maybe<Scalars['String']['output']>;\n showInMenus?: Maybe<Scalars['Boolean']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n urlPath?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Subscription = {\n __typename?: 'Subscription';\n _empty?: Maybe<Scalars['String']['output']>;\n};\n\nexport type _Service = {\n __typename?: '_Service';\n sdl?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum Link__Purpose {\n /** `EXECUTION` features provide metadata necessary for operation execution. */\n Execution = 'EXECUTION',\n /** `SECURITY` features provide metadata necessary to securely resolve fields. */\n Security = 'SECURITY',\n}\n\nexport type LocalizedCmsEventFieldsFragment = {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n};\n\nexport type PlaceCmsEventFieldsFragment = {\n __typename?: 'Place';\n id?: string | null;\n hasUpcomingEvents?: boolean | null;\n internalId: string;\n email?: string | null;\n postalCode?: string | null;\n divisions?: Array<{\n __typename?: 'Division';\n type: string;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }> | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n addressLocality?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n streetAddress?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n position?: {\n __typename?: 'PlacePosition';\n coordinates: Array<number>;\n } | null;\n telephone?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n};\n\nexport type KeywordCmsEventFieldsFragment = {\n __typename?: 'Keyword';\n id?: string | null;\n internalId: string;\n dataSource?: string | null;\n hasUpcomingEvents?: boolean | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n};\n\nexport type OfferCmsEventFieldsFragment = {\n __typename?: 'Offer';\n isFree?: boolean | null;\n price?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n description?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n};\n\nexport type RegistrationCmsEventFieldsFragment = {\n __typename?: 'Registration';\n enrolmentStartTime?: string | null;\n enrolmentEndTime?: string | null;\n remainingAttendeeCapacity?: number | null;\n audienceMinAge?: string | null;\n audienceMaxAge?: string | null;\n};\n\nexport type EventCmsEventFieldsFragment = {\n __typename?: 'EventDetails';\n id: string;\n internalId?: string | null;\n audienceMinAge?: string | null;\n audienceMaxAge?: string | null;\n eventStatus?: string | null;\n typeId?: EventTypeId | null;\n endTime?: string | null;\n startTime?: string | null;\n publisher?: string | null;\n enrolmentStartTime?: string | null;\n enrolmentEndTime?: string | null;\n externalLinks: Array<{\n __typename?: 'ExternalLink';\n name?: string | null;\n link?: string | null;\n }>;\n images: Array<{\n __typename?: 'EventImage';\n id?: string | null;\n name: string;\n url: string;\n photographerName?: string | null;\n }>;\n subEvents: Array<{\n __typename?: 'InternalIdObject';\n internalId?: string | null;\n }>;\n superEvent?: {\n __typename?: 'InternalIdObject';\n internalId?: string | null;\n } | null;\n inLanguage: Array<{\n __typename?: 'InLanguage';\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n keywords: Array<{\n __typename?: 'Keyword';\n id?: string | null;\n internalId: string;\n dataSource?: string | null;\n hasUpcomingEvents?: boolean | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n location?: {\n __typename?: 'Place';\n id?: string | null;\n hasUpcomingEvents?: boolean | null;\n internalId: string;\n email?: string | null;\n postalCode?: string | null;\n divisions?: Array<{\n __typename?: 'Division';\n type: string;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }> | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n addressLocality?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n streetAddress?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n position?: {\n __typename?: 'PlacePosition';\n coordinates: Array<number>;\n } | null;\n telephone?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n } | null;\n offers: Array<{\n __typename?: 'Offer';\n isFree?: boolean | null;\n price?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n description?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n name: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n };\n description?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n shortDescription?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n provider?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n audience: Array<{\n __typename?: 'Audience';\n id?: string | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n registration?: {\n __typename?: 'Registration';\n enrolmentStartTime?: string | null;\n enrolmentEndTime?: string | null;\n remainingAttendeeCapacity?: number | null;\n audienceMinAge?: string | null;\n audienceMaxAge?: string | null;\n } | null;\n locationExtraInfo?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n};\n\nexport type EventListQueryVariables = Exact<{\n eventType?: InputMaybe<\n Array<InputMaybe<EventTypeId>> | InputMaybe<EventTypeId>\n >;\n internetBased?: InputMaybe<Scalars['Boolean']['input']>;\n suitableFor?: InputMaybe<\n | Array<InputMaybe<Scalars['Int']['input']>>\n | InputMaybe<Scalars['Int']['input']>\n >;\n allOngoing?: InputMaybe<Scalars['Boolean']['input']>;\n allOngoingAnd?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n division?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n end?: InputMaybe<Scalars['String']['input']>;\n endsAfter?: InputMaybe<Scalars['String']['input']>;\n endsBefore?: InputMaybe<Scalars['String']['input']>;\n inLanguage?: InputMaybe<Scalars['String']['input']>;\n include?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n isFree?: InputMaybe<Scalars['Boolean']['input']>;\n keyword?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n keywordAnd?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n keywordOrSet1?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n keywordOrSet2?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n keywordOrSet3?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n keywordNot?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n language?: InputMaybe<Scalars['String']['input']>;\n localOngoingAnd?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n location?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n publisher?: InputMaybe<Scalars['ID']['input']>;\n sort?: InputMaybe<Scalars['String']['input']>;\n start?: InputMaybe<Scalars['String']['input']>;\n startsAfter?: InputMaybe<Scalars['String']['input']>;\n startsBefore?: InputMaybe<Scalars['String']['input']>;\n superEvent?: InputMaybe<Scalars['ID']['input']>;\n superEventType?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n text?: InputMaybe<Scalars['String']['input']>;\n translation?: InputMaybe<Scalars['String']['input']>;\n}>;\n\nexport type EventListQuery = {\n __typename?: 'Query';\n eventList: {\n __typename?: 'EventListResponse';\n meta: {\n __typename?: 'Meta';\n count: number;\n next?: string | null;\n previous?: string | null;\n };\n data: Array<{\n __typename?: 'EventDetails';\n id: string;\n internalId?: string | null;\n audienceMinAge?: string | null;\n audienceMaxAge?: string | null;\n eventStatus?: string | null;\n typeId?: EventTypeId | null;\n endTime?: string | null;\n startTime?: string | null;\n publisher?: string | null;\n enrolmentStartTime?: string | null;\n enrolmentEndTime?: string | null;\n externalLinks: Array<{\n __typename?: 'ExternalLink';\n name?: string | null;\n link?: string | null;\n }>;\n images: Array<{\n __typename?: 'EventImage';\n id?: string | null;\n name: string;\n url: string;\n photographerName?: string | null;\n }>;\n subEvents: Array<{\n __typename?: 'InternalIdObject';\n internalId?: string | null;\n }>;\n superEvent?: {\n __typename?: 'InternalIdObject';\n internalId?: string | null;\n } | null;\n inLanguage: Array<{\n __typename?: 'InLanguage';\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n keywords: Array<{\n __typename?: 'Keyword';\n id?: string | null;\n internalId: string;\n dataSource?: string | null;\n hasUpcomingEvents?: boolean | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n location?: {\n __typename?: 'Place';\n id?: string | null;\n hasUpcomingEvents?: boolean | null;\n internalId: string;\n email?: string | null;\n postalCode?: string | null;\n divisions?: Array<{\n __typename?: 'Division';\n type: string;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }> | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n addressLocality?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n streetAddress?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n position?: {\n __typename?: 'PlacePosition';\n coordinates: Array<number>;\n } | null;\n telephone?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n } | null;\n offers: Array<{\n __typename?: 'Offer';\n isFree?: boolean | null;\n price?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n description?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n name: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n };\n description?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n shortDescription?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n provider?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n audience: Array<{\n __typename?: 'Audience';\n id?: string | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n registration?: {\n __typename?: 'Registration';\n enrolmentStartTime?: string | null;\n enrolmentEndTime?: string | null;\n remainingAttendeeCapacity?: number | null;\n audienceMinAge?: string | null;\n audienceMaxAge?: string | null;\n } | null;\n locationExtraInfo?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n };\n};\n\nexport type EventsByIdsQueryVariables = Exact<{\n ids: Array<Scalars['ID']['input']> | Scalars['ID']['input'];\n eventType?: InputMaybe<\n Array<InputMaybe<EventTypeId>> | InputMaybe<EventTypeId>\n >;\n include?: InputMaybe<\n | Array<InputMaybe<Scalars['String']['input']>>\n | InputMaybe<Scalars['String']['input']>\n >;\n sort?: InputMaybe<Scalars['String']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n start?: InputMaybe<Scalars['String']['input']>;\n end?: InputMaybe<Scalars['String']['input']>;\n}>;\n\nexport type EventsByIdsQuery = {\n __typename?: 'Query';\n eventsByIds: {\n __typename?: 'EventListResponse';\n data: Array<{\n __typename?: 'EventDetails';\n id: string;\n internalId?: string | null;\n audienceMinAge?: string | null;\n audienceMaxAge?: string | null;\n eventStatus?: string | null;\n typeId?: EventTypeId | null;\n endTime?: string | null;\n startTime?: string | null;\n publisher?: string | null;\n enrolmentStartTime?: string | null;\n enrolmentEndTime?: string | null;\n externalLinks: Array<{\n __typename?: 'ExternalLink';\n name?: string | null;\n link?: string | null;\n }>;\n images: Array<{\n __typename?: 'EventImage';\n id?: string | null;\n name: string;\n url: string;\n photographerName?: string | null;\n }>;\n subEvents: Array<{\n __typename?: 'InternalIdObject';\n internalId?: string | null;\n }>;\n superEvent?: {\n __typename?: 'InternalIdObject';\n internalId?: string | null;\n } | null;\n inLanguage: Array<{\n __typename?: 'InLanguage';\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n keywords: Array<{\n __typename?: 'Keyword';\n id?: string | null;\n internalId: string;\n dataSource?: string | null;\n hasUpcomingEvents?: boolean | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n location?: {\n __typename?: 'Place';\n id?: string | null;\n hasUpcomingEvents?: boolean | null;\n internalId: string;\n email?: string | null;\n postalCode?: string | null;\n divisions?: Array<{\n __typename?: 'Division';\n type: string;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }> | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n addressLocality?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n streetAddress?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n position?: {\n __typename?: 'PlacePosition';\n coordinates: Array<number>;\n } | null;\n telephone?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n } | null;\n offers: Array<{\n __typename?: 'Offer';\n isFree?: boolean | null;\n price?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n description?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n name: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n };\n description?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n shortDescription?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n provider?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n infoUrl?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n audience: Array<{\n __typename?: 'Audience';\n id?: string | null;\n name?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n registration?: {\n __typename?: 'Registration';\n enrolmentStartTime?: string | null;\n enrolmentEndTime?: string | null;\n remainingAttendeeCapacity?: number | null;\n audienceMinAge?: string | null;\n audienceMaxAge?: string | null;\n } | null;\n locationExtraInfo?: {\n __typename?: 'LocalizedObject';\n en?: string | null;\n fi?: string | null;\n sv?: string | null;\n } | null;\n }>;\n meta: {\n __typename?: 'Meta';\n count: number;\n next?: string | null;\n previous?: string | null;\n };\n };\n};\n\nexport const LocalizedCmsEventFieldsFragmentDoc = gql`\n fragment localizedCmsEventFields on LocalizedObject {\n en\n fi\n sv\n }\n`;\nexport const KeywordCmsEventFieldsFragmentDoc = gql`\n fragment keywordCmsEventFields on Keyword {\n id\n internalId\n dataSource\n hasUpcomingEvents\n name {\n ...localizedCmsEventFields\n }\n }\n ${LocalizedCmsEventFieldsFragmentDoc}\n`;\nexport const PlaceCmsEventFieldsFragmentDoc = gql`\n fragment placeCmsEventFields on Place {\n id\n divisions {\n type\n name {\n ...localizedCmsEventFields\n }\n }\n hasUpcomingEvents\n internalId\n email\n infoUrl {\n ...localizedCmsEventFields\n }\n name {\n ...localizedCmsEventFields\n }\n addressLocality {\n ...localizedCmsEventFields\n }\n streetAddress {\n ...localizedCmsEventFields\n }\n postalCode\n position {\n coordinates\n }\n telephone {\n ...localizedCmsEventFields\n }\n }\n ${LocalizedCmsEventFieldsFragmentDoc}\n`;\nexport const OfferCmsEventFieldsFragmentDoc = gql`\n fragment offerCmsEventFields on Offer {\n isFree\n price {\n ...localizedCmsEventFields\n }\n description {\n ...localizedCmsEventFields\n }\n infoUrl {\n ...localizedCmsEventFields\n }\n }\n ${LocalizedCmsEventFieldsFragmentDoc}\n`;\nexport const RegistrationCmsEventFieldsFragmentDoc = gql`\n fragment registrationCmsEventFields on Registration {\n enrolmentStartTime\n enrolmentEndTime\n remainingAttendeeCapacity\n audienceMinAge\n audienceMaxAge\n }\n`;\nexport const EventCmsEventFieldsFragmentDoc = gql`\n fragment eventCmsEventFields on EventDetails {\n id\n internalId\n audienceMinAge\n audienceMaxAge\n eventStatus\n externalLinks {\n name\n link\n }\n images {\n id\n name\n url\n photographerName\n }\n subEvents {\n internalId\n }\n typeId\n superEvent {\n internalId\n }\n inLanguage {\n name {\n ...localizedCmsEventFields\n }\n }\n keywords {\n ...keywordCmsEventFields\n }\n location {\n ...placeCmsEventFields\n }\n offers {\n ...offerCmsEventFields\n }\n name {\n ...localizedCmsEventFields\n }\n description {\n ...localizedCmsEventFields\n }\n shortDescription {\n ...localizedCmsEventFields\n }\n endTime\n startTime\n publisher\n provider {\n ...localizedCmsEventFields\n }\n infoUrl {\n ...localizedCmsEventFields\n }\n audience {\n id\n name {\n ...localizedCmsEventFields\n }\n }\n registration {\n ...registrationCmsEventFields\n }\n locationExtraInfo {\n ...localizedCmsEventFields\n }\n enrolmentStartTime\n enrolmentEndTime\n }\n ${LocalizedCmsEventFieldsFragmentDoc}\n ${KeywordCmsEventFieldsFragmentDoc}\n ${PlaceCmsEventFieldsFragmentDoc}\n ${OfferCmsEventFieldsFragmentDoc}\n ${RegistrationCmsEventFieldsFragmentDoc}\n`;\nexport const EventListDocument = gql`\n query EventList(\n $eventType: [EventTypeId]\n $internetBased: Boolean\n $suitableFor: [Int]\n $allOngoing: Boolean\n $allOngoingAnd: [String]\n $division: [String]\n $end: String\n $endsAfter: String\n $endsBefore: String\n $inLanguage: String\n $include: [String]\n $isFree: Boolean\n $keyword: [String]\n $keywordAnd: [String]\n $keywordOrSet1: [String]\n $keywordOrSet2: [String]\n $keywordOrSet3: [String]\n $keywordNot: [String]\n $language: String\n $localOngoingAnd: [String]\n $location: [String]\n $page: Int\n $pageSize: Int\n $publisher: ID\n $sort: String\n $start: String\n $startsAfter: String\n $startsBefore: String\n $superEvent: ID\n $superEventType: [String]\n $text: String\n $translation: String\n ) {\n eventList(\n eventType: $eventType\n internetBased: $internetBased\n suitableFor: $suitableFor\n allOngoing: $allOngoing\n allOngoingAnd: $allOngoingAnd\n division: $division\n end: $end\n endsAfter: $endsAfter\n endsBefore: $endsBefore\n include: $include\n inLanguage: $inLanguage\n isFree: $isFree\n keyword: $keyword\n keywordAnd: $keywordAnd\n keywordOrSet1: $keywordOrSet1\n keywordOrSet2: $keywordOrSet2\n keywordOrSet3: $keywordOrSet3\n keywordNot: $keywordNot\n language: $language\n localOngoingAnd: $localOngoingAnd\n location: $location\n page: $page\n pageSize: $pageSize\n publisher: $publisher\n sort: $sort\n start: $start\n startsAfter: $startsAfter\n startsBefore: $startsBefore\n superEvent: $superEvent\n superEventType: $superEventType\n text: $text\n translation: $translation\n ) {\n meta {\n count\n next\n previous\n }\n data {\n ...eventCmsEventFields\n }\n }\n }\n ${EventCmsEventFieldsFragmentDoc}\n`;\n\n/**\n * __useEventListQuery__\n *\n * To run a query within a React component, call `useEventListQuery` and pass it any options that fit your needs.\n * When your component renders, `useEventListQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useEventListQuery({\n * variables: {\n * eventType: // value for 'eventType'\n * internetBased: // value for 'internetBased'\n * suitableFor: // value for 'suitableFor'\n * allOngoing: // value for 'allOngoing'\n * allOngoingAnd: // value for 'allOngoingAnd'\n * division: // value for 'division'\n * end: // value for 'end'\n * endsAfter: // value for 'endsAfter'\n * endsBefore: // value for 'endsBefore'\n * inLanguage: // value for 'inLanguage'\n * include: // value for 'include'\n * isFree: // value for 'isFree'\n * keyword: // value for 'keyword'\n * keywordAnd: // value for 'keywordAnd'\n * keywordOrSet1: // value for 'keywordOrSet1'\n * keywordOrSet2: // value for 'keywordOrSet2'\n * keywordOrSet3: // value for 'keywordOrSet3'\n * keywordNot: // value for 'keywordNot'\n * language: // value for 'language'\n * localOngoingAnd: // value for 'localOngoingAnd'\n * location: // value for 'location'\n * page: // value for 'page'\n * pageSize: // value for 'pageSize'\n * publisher: // value for 'publisher'\n * sort: // value for 'sort'\n * start: // value for 'start'\n * startsAfter: // value for 'startsAfter'\n * startsBefore: // value for 'startsBefore'\n * superEvent: // value for 'superEvent'\n * superEventType: // value for 'superEventType'\n * text: // value for 'text'\n * translation: // value for 'translation'\n * },\n * });\n */\nexport function useEventListQuery(\n baseOptions?: Apollo.QueryHookOptions<\n EventListQuery,\n EventListQueryVariables\n >,\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery<EventListQuery, EventListQueryVariables>(\n EventListDocument,\n options,\n );\n}\nexport function useEventListLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n EventListQuery,\n EventListQueryVariables\n >,\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<EventListQuery, EventListQueryVariables>(\n EventListDocument,\n options,\n );\n}\nexport function useEventListSuspenseQuery(\n baseOptions?:\n | Apollo.SkipToken\n | Apollo.SuspenseQueryHookOptions<EventListQuery, EventListQueryVariables>,\n) {\n const options =\n baseOptions === Apollo.skipToken\n ? baseOptions\n : { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<EventListQuery, EventListQueryVariables>(\n EventListDocument,\n options,\n );\n}\nexport type EventListQueryHookResult = ReturnType<typeof useEventListQuery>;\nexport type EventListLazyQueryHookResult = ReturnType<\n typeof useEventListLazyQuery\n>;\nexport type EventListSuspenseQueryHookResult = ReturnType<\n typeof useEventListSuspenseQuery\n>;\nexport type EventListQueryResult = Apollo.QueryResult<\n EventListQuery,\n EventListQueryVariables\n>;\nexport const EventsByIdsDocument = gql`\n query EventsByIds(\n $ids: [ID!]!\n $eventType: [EventTypeId]\n $include: [String]\n $sort: String\n $pageSize: Int\n $page: Int\n $start: String\n $end: String\n ) {\n eventsByIds(\n ids: $ids\n eventType: $eventType\n include: $include\n sort: $sort\n pageSize: $pageSize\n page: $page\n start: $start\n end: $end\n ) {\n data {\n ...eventCmsEventFields\n }\n meta {\n count\n next\n previous\n }\n }\n }\n ${EventCmsEventFieldsFragmentDoc}\n`;\n\n/**\n * __useEventsByIdsQuery__\n *\n * To run a query within a React component, call `useEventsByIdsQuery` and pass it any options that fit your needs.\n * When your component renders, `useEventsByIdsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useEventsByIdsQuery({\n * variables: {\n * ids: // value for 'ids'\n * eventType: // value for 'eventType'\n * include: // value for 'include'\n * sort: // value for 'sort'\n * pageSize: // value for 'pageSize'\n * page: // value for 'page'\n * start: // value for 'start'\n * end: // value for 'end'\n * },\n * });\n */\nexport function useEventsByIdsQuery(\n baseOptions: Apollo.QueryHookOptions<\n EventsByIdsQuery,\n EventsByIdsQueryVariables\n > &\n (\n | { variables: EventsByIdsQueryVariables; skip?: boolean }\n | { skip: boolean }\n ),\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery<EventsByIdsQuery, EventsByIdsQueryVariables>(\n EventsByIdsDocument,\n options,\n );\n}\nexport function useEventsByIdsLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n EventsByIdsQuery,\n EventsByIdsQueryVariables\n >,\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<EventsByIdsQuery, EventsByIdsQueryVariables>(\n EventsByIdsDocument,\n options,\n );\n}\nexport function useEventsByIdsSuspenseQuery(\n baseOptions?:\n | Apollo.SkipToken\n | Apollo.SuspenseQueryHookOptions<\n EventsByIdsQuery,\n EventsByIdsQueryVariables\n >,\n) {\n const options =\n baseOptions === Apollo.skipToken\n ? baseOptions\n : { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<EventsByIdsQuery, EventsByIdsQueryVariables>(\n EventsByIdsDocument,\n options,\n );\n}\nexport type EventsByIdsQueryHookResult = ReturnType<typeof useEventsByIdsQuery>;\nexport type EventsByIdsLazyQueryHookResult = ReturnType<\n typeof useEventsByIdsLazyQuery\n>;\nexport type EventsByIdsSuspenseQueryHookResult = ReturnType<\n typeof useEventsByIdsSuspenseQuery\n>;\nexport type EventsByIdsQueryResult = Apollo.QueryResult<\n EventsByIdsQuery,\n EventsByIdsQueryVariables\n>;\n","import { useConfig } from './useConfig';\n\nexport default function useQueryWithEventsApolloClientFromConfig() {\n const { eventsApolloClient } = useConfig();\n\n if (!eventsApolloClient) {\n throw Error(\n 'Error: useQueryWithEventsApolloClientFromConfig - When using components from the apollo sub module, you must include a compatible events (LinkedEvents) apollo client in the eventsApolloClient field of the config object you provide with ConfigProvider',\n );\n }\n\n return eventsApolloClient;\n}\n","import { useConfig } from './useConfig';\n\nexport default function useQueryWithVenuesApolloClientFromConfig() {\n const { venuesApolloClient } = useConfig();\n\n if (!venuesApolloClient) {\n throw Error(\n 'Error: useQueryWithVenuesApolloClientFromConfig - When using components from the apollo sub module, you must include a compatible Venues apollo client in the apolloClient field of the config object you provide with ConfigProvider',\n );\n }\n\n return venuesApolloClient;\n}\n","import { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;\n };\nconst defaultOptions = {} as const;\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n _Any: { input: any; output: any };\n federation__FieldSet: { input: any; output: any };\n link__Import: { input: any; output: any };\n};\n\nexport type AccessibilitySentences = {\n __typename?: 'AccessibilitySentences';\n groupName?: Maybe<Scalars['String']['output']>;\n sentences?: Maybe<Array<Maybe<Scalars['String']['output']>>>;\n};\n\nexport type Ontology = {\n __typename?: 'Ontology';\n id?: Maybe<Scalars['Int']['output']>;\n label?: Maybe<Scalars['String']['output']>;\n};\n\nexport type OpeningHour = {\n __typename?: 'OpeningHour';\n date: Scalars['String']['output'];\n times: Array<Time>;\n};\n\nexport type Point = {\n __typename?: 'Point';\n coordinates: Array<Scalars['Float']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Query = {\n __typename?: 'Query';\n _service: _Service;\n venue: Venue;\n venuesByIds: Array<Venue>;\n};\n\nexport type QueryVenueArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryVenuesByIdsArgs = {\n ids?: InputMaybe<Array<Scalars['ID']['input']>>;\n};\n\nexport enum ResourceState {\n Closed = 'closed',\n EnterOnly = 'enter_only',\n ExitOnly = 'exit_only',\n Open = 'open',\n OpenAndReservable = 'open_and_reservable',\n SelfService = 'self_service',\n Undefined = 'undefined',\n WeatherPermitting = 'weather_permitting',\n WithKey = 'with_key',\n WithKeyAndReservation = 'with_key_and_reservation',\n WithReservation = 'with_reservation',\n}\n\nexport type Time = {\n __typename?: 'Time';\n description: Scalars['String']['output'];\n endTime: Scalars['String']['output'];\n endTimeOnNextDay: Scalars['Boolean']['output'];\n fullDay: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n periods: Array<Scalars['Int']['output']>;\n resourceState: ResourceState;\n startTime: Scalars['String']['output'];\n};\n\nexport type Venue = {\n __typename?: 'Venue';\n accessibilitySentences: Array<Maybe<AccessibilitySentences>>;\n addressLocality?: Maybe<Scalars['String']['output']>;\n addressPostalFull?: Maybe<Scalars['String']['output']>;\n connections: Array<Maybe<VenueConnection>>;\n dataSource?: Maybe<Scalars['String']['output']>;\n department?: Maybe<VenueDepartment>;\n departmentId?: Maybe<Scalars['ID']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n displayedServiceOwner?: Maybe<Scalars['String']['output']>;\n displayedServiceOwnerType?: Maybe<Scalars['String']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n id: Scalars['String']['output'];\n image?: Maybe<Scalars['String']['output']>;\n infoUrl?: Maybe<Scalars['String']['output']>;\n isOpen?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n ontologyTree: Array<Maybe<Ontology>>;\n ontologyWords: Array<Maybe<Ontology>>;\n openingHours?: Maybe<Array<OpeningHour>>;\n organization?: Maybe<VenueDepartment>;\n organizationId?: Maybe<Scalars['ID']['output']>;\n position?: Maybe<Point>;\n postalCode?: Maybe<Scalars['String']['output']>;\n providerType?: Maybe<Scalars['String']['output']>;\n shortDescription?: Maybe<Scalars['String']['output']>;\n streetAddress?: Maybe<Scalars['String']['output']>;\n telephone?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VenueConnection = {\n __typename?: 'VenueConnection';\n name?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n sectionType?: Maybe<Scalars['String']['output']>;\n url?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VenueDepartment = {\n __typename?: 'VenueDepartment';\n abbreviation?: Maybe<Scalars['String']['output']>;\n addressCity?: Maybe<Scalars['String']['output']>;\n addressPostalFull?: Maybe<Scalars['String']['output']>;\n addressZip?: Maybe<Scalars['String']['output']>;\n businessId?: Maybe<Scalars['String']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n hierarchyLevel?: Maybe<Scalars['Int']['output']>;\n id: Scalars['ID']['output'];\n municipalityCode?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n oid?: Maybe<Scalars['ID']['output']>;\n organizationId?: Maybe<Scalars['ID']['output']>;\n organizationType?: Maybe<Scalars['String']['output']>;\n parentId?: Maybe<Scalars['ID']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n streetAddress?: Maybe<Scalars['String']['output']>;\n www?: Maybe<Scalars['String']['output']>;\n};\n\nexport type _Service = {\n __typename?: '_Service';\n sdl?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum Link__Purpose {\n /** `EXECUTION` features provide metadata necessary for operation execution. */\n Execution = 'EXECUTION',\n /** `SECURITY` features provide metadata necessary to securely resolve fields. */\n Security = 'SECURITY',\n}\n\nexport type ListVenueFragment = {\n __typename?: 'Venue';\n description?: string | null;\n id: string;\n image?: string | null;\n name?: string | null;\n streetAddress?: string | null;\n addressLocality?: string | null;\n providerType?: string | null;\n displayedServiceOwnerType?: string | null;\n ontologyWords: Array<{\n __typename?: 'Ontology';\n id?: number | null;\n label?: string | null;\n } | null>;\n};\n\nexport type VenuesByIdsQueryVariables = Exact<{\n ids: Array<Scalars['ID']['input']> | Scalars['ID']['input'];\n}>;\n\nexport type VenuesByIdsQuery = {\n __typename?: 'Query';\n venuesByIds: Array<{\n __typename?: 'Venue';\n description?: string | null;\n id: string;\n image?: string | null;\n name?: string | null;\n streetAddress?: string | null;\n addressLocality?: string | null;\n providerType?: string | null;\n displayedServiceOwnerType?: string | null;\n ontologyWords: Array<{\n __typename?: 'Ontology';\n id?: number | null;\n label?: string | null;\n } | null>;\n }>;\n};\n\nexport const ListVenueFragmentDoc = gql`\n fragment listVenue on Venue {\n description\n id\n image\n name\n streetAddress\n addressLocality\n ontologyWords {\n id\n label\n }\n providerType\n displayedServiceOwnerType\n }\n`;\nexport const VenuesByIdsDocument = gql`\n query VenuesByIds($ids: [ID!]!) {\n venuesByIds(ids: $ids) {\n ...listVenue\n }\n }\n ${ListVenueFragmentDoc}\n`;\n\n/**\n * __useVenuesByIdsQuery__\n *\n * To run a query within a React component, call `useVenuesByIdsQuery` and pass it any options that fit your needs.\n * When your component renders, `useVenuesByIdsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useVenuesByIdsQuery({\n * variables: {\n * ids: // value for 'ids'\n * },\n * });\n */\nexport function useVenuesByIdsQuery(\n baseOptions: Apollo.QueryHookOptions<\n VenuesByIdsQuery,\n VenuesByIdsQueryVariables\n > &\n (\n | { variables: VenuesByIdsQueryVariables; skip?: boolean }\n | { skip: boolean }\n ),\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery<VenuesByIdsQuery, VenuesByIdsQueryVariables>(\n VenuesByIdsDocument,\n options,\n );\n}\nexport function useVenuesByIdsLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n VenuesByIdsQuery,\n VenuesByIdsQueryVariables\n >,\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<VenuesByIdsQuery, VenuesByIdsQueryVariables>(\n VenuesByIdsDocument,\n options,\n );\n}\nexport function useVenuesByIdsSuspenseQuery(\n baseOptions?:\n | Apollo.SkipToken\n | Apollo.SuspenseQueryHookOptions<\n VenuesByIdsQuery,\n VenuesByIdsQueryVariables\n >,\n) {\n const options =\n baseOptions === Apollo.skipToken\n ? baseOptions\n : { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<VenuesByIdsQuery, VenuesByIdsQueryVariables>(\n VenuesByIdsDocument,\n options,\n );\n}\nexport type VenuesByIdsQueryHookResult = ReturnType<typeof useVenuesByIdsQuery>;\nexport type VenuesByIdsLazyQueryHookResult = ReturnType<\n typeof useVenuesByIdsLazyQuery\n>;\nexport type VenuesByIdsSuspenseQueryHookResult = ReturnType<\n typeof useVenuesByIdsSuspenseQuery\n>;\nexport type VenuesByIdsQueryResult = Apollo.QueryResult<\n VenuesByIdsQuery,\n VenuesByIdsQueryVariables\n>;\n","/** Cloned from the events-proxy https://github.com/City-of-Helsinki/events-helsinki-api-proxy/tree/master/src/utils */\n/**\n * Normalize snake case keys to a form that GraphlQL can use\n * Keys with @-prefix are replacing with internal-prefix\n * e.g\n * @event_type => internalEventType\n * event_end_date => eventEndDate\n */\n\nexport default (snakecase: string) => {\n const str = snakecase.replace('@', 'internal_');\n return (\n str[0].toLowerCase() +\n str\n .substr(1)\n .toLowerCase()\n .replace(/(_[a-z])/g, ($1) => $1.toUpperCase().replace('_', ''))\n );\n};\n","/**\n * Cloned from the events-proxy https://github.com/City-of-Helsinki/events-helsinki-api-proxy/tree/master/src/utils\n */\n// NOTE: The normalizeKey import is assumed to return a string for a string input.\nimport normalizeKey from './normalizeKey';\n\n/**\n * Normalizes an object or array of objects by converting keys from snake_case to camelCase.\n * This function handles nested objects and arrays recursively.\n *\n * Example:\n * Before:\n * {\n * @id: \"123\",\n * event_type: \"foo\",\n * event_price: {\n * is_free: false\n * }\n * }\n * After:\n * {\n * internalId: \"123\",\n * eventType: \"foo\",\n * eventPrice: {\n * isFree: false\n * }\n * }\n *\n * @template T - The type of the input value.\n * @param {T} value - The object, array, or primitive to normalize.\n * @returns {T} - A new object or array with normalized keys, or the original value if it's a primitive.\n */\nfunction normalizeKeys<T>(value: T): T {\n // If the value is an array, map over it and recursively call normalizeKeys for each item.\n if (Array.isArray(value)) {\n return value.map(normalizeKeys) as T;\n }\n\n // If the value is an object (and not null), recursively call normalizeKeys for its values.\n if (value && typeof value === 'object' && value.constructor === Object) {\n // We use a type assertion here to build the new object.\n const obj: Record<string, unknown> = {};\n const keys = Object.keys(value as Record<string, unknown>);\n const len = keys.length;\n\n for (let i = 0; i < len; i += 1) {\n const currentKey = keys[i];\n const normalizedKey = normalizeKey(currentKey);\n // Recursively normalize the value associated with the current key\n obj[normalizedKey] = normalizeKeys(\n (value as Record<string, unknown>)[currentKey],\n );\n }\n\n return obj as T;\n }\n\n // If the value is a primitive (string, number, boolean, null, etc.), return it directly.\n return value;\n}\n\nexport default normalizeKeys;\n","export const LINKEDEVENTS_DATE_NOW = 'now';\n","import { isPast } from 'date-fns';\n\nimport type { EventType } from '../../common/eventsService/types';\nimport normalizeKeys from '../../linkedEvents/utils/normalizeKeys';\nimport { LINKEDEVENTS_DATE_NOW } from './constants';\n\n/**\n * @param {ids} ids - the venue ids in number format.\n * @return {Array} - Returns array of tprek formatted string ids.\n */\nexport function getVenueIds(ids: number[]): string[] {\n return ids.map((id) => `tprek:${id}`);\n}\n\n/**\n * @param {event} - event.\n * @return {boolean} - Returns true if events' end time in past.\n */\nexport const isEventEndTimeInPast = (event: EventType): boolean =>\n !!event?.endTime && isPast(new Date(event.endTime));\n\n/**\n * @param {event} - event.\n * @return {boolean} - Returns true if events' end time in null and start time in past.\n */\nexport const isEventEndTimeNullAndStartTimeInPast = (\n event: EventType,\n): boolean =>\n !!event?.startTime &&\n event?.endTime === null &&\n isPast(new Date(event.startTime));\n\n/**\n * @param {event} - event.\n * @return {boolean} - Returns true if event is closed.\n */\nexport const isEventClosed = (event: EventType): boolean =>\n isEventEndTimeInPast(event) || isEventEndTimeNullAndStartTimeInPast(event);\n\n/**\n * @param {params} - Get params.\n * @return {object} - Returns normalized values.\n */\nexport const normalizeParamsValues = (params: Record<string, string>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const normalizedParams: Record<string, any> = {\n ...normalizeKeys(params),\n };\n\n // Fix for course event type lower case\n if (normalizedParams.eventType) {\n normalizedParams.eventType =\n normalizedParams.eventType.charAt(0).toUpperCase() +\n normalizedParams.eventType.slice(1);\n }\n\n // Fix boolean types\n Object.keys(normalizedParams).forEach((param) => {\n if (normalizedParams[param] === 'true') {\n normalizedParams[param] = true;\n } else if (normalizedParams[param] === 'false') {\n normalizedParams[param] = false;\n }\n });\n\n return normalizedParams;\n};\n\n/**\n * @param {dateString} - Get date string.\n * @return {boolean} - Returns true if the date is valid\n */\nexport function isValidDate(dateString: string) {\n return !Number.isNaN(Date.parse(dateString));\n}\n\n/**\n * @param {start} start - Get start date.\n * @return {boolean} - Returns current date as string if the initial was in past.\n */\nexport const convertDateStringInPastToNow = (start: string): string => {\n const startDate = new Date(start);\n const now = new Date();\n\n if (isValidDate(start) && startDate <= now) {\n return LINKEDEVENTS_DATE_NOW;\n }\n return start;\n};\n","import type { ButtonProps } from 'hds-react';\nimport { Button, ButtonVariant, LoadingSpinner } from 'hds-react';\nimport React from 'react';\n\ntype LoadingButtonProps = Omit<ButtonProps, 'iconStart' | 'variant'> & {\n isLoading: boolean;\n loadingText?: React.ReactNode & string;\n};\n\nexport function LoadingButton({\n children,\n isLoading,\n loadingText,\n ...rest\n}: LoadingButtonProps) {\n const disabled = isLoading ? true : rest.disabled;\n const iconStart = isLoading ? <LoadingSpinner small /> : null;\n const variant = isLoading ? ButtonVariant.Clear : ButtonVariant.Primary;\n\n return (\n <Button\n {...rest}\n variant={variant}\n disabled={disabled || isLoading}\n iconStart={iconStart}\n style={{ cursor: isLoading ? 'wait' : '' }}\n >\n {isLoading ? String(loadingText) : String(children)}\n </Button>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { LoadingSpinner } from 'hds-react';\n\nimport styles from './collection.module.scss';\nimport type { CarouselProps } from '../carousel/types';\nimport { Carousel } from '../carousel/Carousel';\nimport type { CardProps } from '../card/Card';\nimport { Card } from '../card/Card';\nimport type { GridProps } from '../../common/components/grid/Grid';\nimport Grid from '../../common/components/grid/Grid';\nimport {\n EventTypeId,\n useEventListQuery,\n useEventsByIdsQuery,\n} from '../../common/eventsService/__generated__';\nimport type {\n EventSearchCollectionType,\n EventSelectionCollectionType,\n GeneralCollectionType,\n LocationsSelectionCollectionType,\n} from './types';\nimport type { EventType } from '../../common/eventsService/types';\nimport { useConfig } from '../configProvider/useConfig';\nimport useEventsApolloClientFromConfig from '../configProvider/useEventsApolloClientFromConfig';\nimport useVenuesApolloClientFromConfig from '../configProvider/useVenuesApolloClientFromConfig';\nimport type { Config } from '../configProvider/configContext';\nimport { ModuleItemTypeEnum } from '../../common/headlessService/constants';\nimport { Link } from '../link/Link';\nimport { useVenuesByIdsQuery } from '../../common/venuesService/__generated__';\nimport type { VenueType } from '../../common/venuesService/types';\nimport type { LanguageCodeEnum } from '../../common/headlessService/types';\nimport {\n convertDateStringInPastToNow,\n getVenueIds,\n isEventClosed,\n normalizeParamsValues,\n} from './utils';\nimport { DEFAULT_LOCALE } from '../../constants';\nimport { isPageType, isArticleType } from '../../common/headlessService/utils';\nimport { LoadingButton } from '../button/LoadingButton';\n\nexport type CollectionProps = {\n /**\n * Collection title.\n */\n title?: string;\n /**\n * Collection description.\n */\n description?: string;\n /**\n * Collection cards data.\n */\n cards: React.ReactElement<typeof Card>[];\n /**\n * Additinal classname applied to the Collection container.\n */\n className?: string;\n /**\n * Collection additional props.\n */\n collectionContainerProps?:\n | Partial<CarouselProps<typeof Card>>\n | Partial<GridProps>;\n /**\n * Collection type.\n */\n type: 'carousel' | 'grid';\n /**\n * Boolean indicating whether the collection data is loading.\n */\n loading?: boolean;\n /**\n * Boolean indicating whether the collection data has next page.\n */\n hasNext?: boolean;\n /**\n * Show all link url.\n */\n showAllUrl?: string;\n /**\n * onLoadMore event handler.\n */\n onLoadMore?: () => void;\n};\n\nexport function CollectionGrid({\n cards,\n ...rest\n}: {\n cards: React.ReactElement<typeof Card>[];\n}) {\n return (\n <div className={styles.gridWrapper}>\n <Grid className={styles.grid} {...rest}>\n {cards}\n </Grid>\n </div>\n );\n}\n\nexport function CollectionCarousel({\n cards,\n onLoadMore,\n hasMore,\n loading,\n loadMoreButtonLabelText,\n title,\n ...rest\n}: {\n cards: React.ReactElement<typeof Card>[];\n onLoadMore?: CollectionProps['onLoadMore'];\n loading?: CollectionProps['loading'];\n hasMore?: CollectionProps['hasNext'];\n loadMoreButtonLabelText?: string;\n title?: string;\n}) {\n return (\n <div className={styles.carouselWrapper}>\n <Carousel\n title={title}\n className={styles.carousel}\n onLoadMore={onLoadMore}\n hasMore={hasMore}\n loading={loading}\n loadMoreButtonLabelText={loadMoreButtonLabelText}\n withDots\n navigateWithDots\n {...rest}\n >\n {cards}\n </Carousel>\n </div>\n );\n}\n\nexport function Collection({\n title,\n description,\n cards,\n className,\n collectionContainerProps,\n type = 'grid',\n loading = false,\n hasNext = false,\n onLoadMore,\n showAllUrl,\n}: CollectionProps) {\n const {\n copy: { loadMoreButtonLabelText, showAllText },\n } = useConfig();\n const componentForType: Record<CollectionProps['type'], JSX.Element> = {\n carousel: (\n <CollectionCarousel\n cards={cards}\n onLoadMore={onLoadMore}\n hasMore={hasNext}\n loading={loading}\n loadMoreButtonLabelText={loadMoreButtonLabelText}\n title={title}\n {...collectionContainerProps}\n />\n ),\n // todo: initial grid items amout (3) take from config or headless cms when implemented\n grid: (\n <>\n <CollectionGrid cards={cards} {...collectionContainerProps} />\n {hasNext && (\n <LoadingButton\n className={styles.loadMoreButton}\n onClick={onLoadMore}\n isLoading={loading}\n >\n {loadMoreButtonLabelText}\n </LoadingButton>\n )}\n </>\n ),\n };\n\n return (\n <div className={classNames(styles[type], className)}>\n <div className={styles.collection}>\n <div\n className={classNames(\n styles.headerRow,\n showAllUrl ? styles.withShowAll : '',\n )}\n >\n {title && (\n <>\n <h2\n className={classNames(\n styles.heading,\n type === 'carousel' && styles.carousel,\n )}\n >\n {title}\n </h2>\n {showAllUrl && showAllText && (\n <Link className={styles.showAll} href={showAllUrl}>\n {showAllText}\n </Link>\n )}\n </>\n )}\n </div>\n {description && <p className={styles.description}>{description}</p>}\n {componentForType[type]}\n </div>\n </div>\n );\n}\n\nexport function getEventCollectionCards({\n items,\n getRoutedInternalHref,\n getEventCardProps,\n EventCardContent,\n HelsinkiCityOwnedIcon,\n organisationPrefixes,\n locale = DEFAULT_LOCALE,\n}: {\n items: EventType[];\n getRoutedInternalHref: Config['utils']['getRoutedInternalHref'];\n getEventCardProps: Config['utils']['getEventCardProps'];\n EventCardContent?: React.FC<Record<string, unknown>>;\n HelsinkiCityOwnedIcon?: React.FC<Record<string, unknown>>;\n organisationPrefixes: string[];\n locale?: string;\n}) {\n const cards = items\n .map((item) => getEventCardProps(item, organisationPrefixes, locale))\n .map((cardProps, i) => {\n const url = getRoutedInternalHref(cardProps.url, undefined);\n return (\n <Card\n key={cardProps.id}\n {...cardProps}\n url={url}\n direction=\"fixed-vertical\"\n customContent={\n EventCardContent && <EventCardContent event={items[i]} />\n }\n titleIcon={\n cardProps.withTitleIcon &&\n HelsinkiCityOwnedIcon && <HelsinkiCityOwnedIcon />\n }\n />\n );\n });\n return cards;\n}\n\nexport type EventSearchCollectionProps = Omit<CollectionProps, 'cards'> & {\n collection: EventSearchCollectionType;\n convertPastDatesToNow?: boolean;\n};\n\n/**\n * EventSearchCollection uses an (LinkedEvents) URL to make a API query to fetch the related events.\n *\n * Use `convertPastDatesToNow = true` to fix an issue (between the CMS and the LinkedEvents) when old ended events are shown.\n */\nexport function EventSearchCollection({\n collection,\n convertPastDatesToNow = true,\n ...delegatedProps\n}: EventSearchCollectionProps) {\n const eventsApolloClient = useEventsApolloClientFromConfig();\n const {\n currentLanguageCode,\n organisationPrefixes,\n utils: { getRoutedInternalHref, getEventCardProps },\n components: { EventCardContent, HelsinkiCityOwnedIcon },\n } = useConfig();\n const { url } = collection;\n // TODO: use initAmountOfEvents -field when it's null-issue is fixed\n // initAmountOfEvents only in case if load more is implemented (this feature is skipped now)\n const pageSize = 9; // collection.initAmountOfEvents\n\n const searchParams = new URLSearchParams(\n url.split('?')[1] ?? url.split('?')[0],\n );\n const params = Object.fromEntries(searchParams.entries());\n const normalizedParams = normalizeParamsValues(params);\n const start = convertPastDatesToNow\n ? convertDateStringInPastToNow(normalizedParams.start)\n : normalizedParams.start;\n const variables = {\n ...normalizedParams,\n start,\n pageSize,\n include: ['in_language', 'keywords', 'location', 'audience'],\n };\n\n const { data, loading } = useEventListQuery({\n client: eventsApolloClient !== 'disabled' ? eventsApolloClient : undefined,\n ssr: false,\n notifyOnNetworkStatusChange: true,\n variables,\n });\n\n const eventsList = data?.eventList;\n\n if (!data && loading) {\n return (\n <div className={styles.loadingSpinnerWrapper}>\n <LoadingSpinner multicolor />\n </div>\n );\n }\n\n const cards = getEventCollectionCards({\n items: eventsList?.data ?? [],\n getRoutedInternalHref: (link, type) =>\n getRoutedInternalHref(link, type ?? ModuleItemTypeEnum.Event),\n getEventCardProps,\n EventCardContent,\n HelsinkiCityOwnedIcon,\n organisationPrefixes,\n locale: currentLanguageCode,\n });\n\n return <Collection {...delegatedProps} cards={cards} />;\n}\n\nexport type EventSelectionCollectionProps = Omit<CollectionProps, 'cards'> & {\n collection: EventSelectionCollectionType;\n};\n\nexport function EventSelectionCollection({\n collection,\n ...delegatedProps\n}: EventSelectionCollectionProps) {\n const eventsApolloClient = useEventsApolloClientFromConfig();\n const {\n currentLanguageCode,\n organisationPrefixes,\n utils: { getRoutedInternalHref, getEventCardProps },\n components: { EventCardContent, HelsinkiCityOwnedIcon },\n } = useConfig();\n // TODO: use initAmountOfEvents -field when it's null-issue is fixed\n const pageSize = collection.events.length; // collection.initAmountOfEvents\n\n const { data, loading } = useEventsByIdsQuery({\n client: eventsApolloClient !== 'disabled' ? eventsApolloClient : undefined,\n ssr: false,\n notifyOnNetworkStatusChange: true,\n skip: collection.events.length === 0,\n variables: {\n ids: collection.events,\n pageSize,\n include: ['in_language', 'keywords', 'location', 'audience'],\n eventType: [EventTypeId.General, EventTypeId.Course],\n },\n });\n\n // Reduce past events that are no longer available and therefore do not need to be displayed\n const eventsListFiltered =\n data?.eventsByIds.data.filter((event) => !isEventClosed(event)) ?? [];\n\n const eventsListSorted: EventType[] = [];\n\n // sorting events in the same order it was defined in cms\n if (eventsListFiltered?.length > 0) {\n collection.events.forEach((eventId) => {\n const event = eventsListFiltered.find(\n (eventData) => eventData.id === eventId,\n );\n if (event) {\n eventsListSorted.push(event);\n }\n });\n }\n\n if (!data && loading) {\n return (\n <div className={styles.loadingSpinnerWrapper}>\n <LoadingSpinner multicolor />\n </div>\n );\n }\n\n const cards = getEventCollectionCards({\n items: eventsListSorted,\n getRoutedInternalHref: (link, type) =>\n getRoutedInternalHref(link, type ?? ModuleItemTypeEnum.Event),\n getEventCardProps,\n EventCardContent,\n HelsinkiCityOwnedIcon,\n organisationPrefixes,\n locale: currentLanguageCode,\n });\n\n return <Collection {...delegatedProps} cards={cards} />;\n}\n\nexport function getLocationsCollectionCards({\n items,\n getRoutedInternalHref,\n getLocationCardProps,\n VenueCardContent,\n HelsinkiCityOwnedIcon,\n}: {\n items: VenueType[];\n getRoutedInternalHref: Config['utils']['getRoutedInternalHref'];\n getLocationCardProps: Config['utils']['getLocationCardProps'];\n VenueCardContent?: React.FC<Record<string, unknown>>;\n HelsinkiCityOwnedIcon?: React.FC<Record<string, unknown>>;\n}) {\n const cards = items\n .map((item) => getLocationCardProps(item))\n .map((cardProps, i) => {\n const url = getRoutedInternalHref(\n cardProps.url,\n ModuleItemTypeEnum.Venue,\n );\n return (\n <Card\n key={cardProps.id}\n {...cardProps}\n url={url}\n titleIcon={\n cardProps.withTitleIcon &&\n HelsinkiCityOwnedIcon && <HelsinkiCityOwnedIcon />\n }\n direction=\"fixed-vertical\"\n customContent={\n VenueCardContent && <VenueCardContent location={items[i]} />\n }\n />\n );\n });\n return cards;\n}\n\nexport type LocationsSelectionCollectionProps = Omit<\n CollectionProps,\n 'cards'\n> & {\n collection: LocationsSelectionCollectionType;\n locale: LanguageCodeEnum;\n};\n\nexport function LocationsSelectionCollection({\n collection,\n locale,\n ...delegatedProps\n}: LocationsSelectionCollectionProps) {\n const venuesApolloClient = useVenuesApolloClientFromConfig();\n const {\n utils: { getRoutedInternalHref, getLocationCardProps },\n components: { VenueCardContent, HelsinkiCityOwnedIcon },\n } = useConfig();\n\n const { data, loading } = useVenuesByIdsQuery({\n client: venuesApolloClient !== 'disabled' ? venuesApolloClient : undefined,\n ssr: false,\n notifyOnNetworkStatusChange: true,\n variables: {\n ids: getVenueIds(collection.venues),\n },\n context: {\n headers: {\n 'Accept-Language': locale,\n },\n },\n });\n\n const venuesList = data?.venuesByIds;\n\n if (!data && loading) {\n return (\n <div className={styles.loadingSpinnerWrapper}>\n <LoadingSpinner multicolor />\n </div>\n );\n }\n\n const cards = getLocationsCollectionCards({\n items: venuesList ?? [],\n getRoutedInternalHref: (link) =>\n getRoutedInternalHref(link, ModuleItemTypeEnum.Venue),\n getLocationCardProps,\n VenueCardContent,\n HelsinkiCityOwnedIcon,\n });\n\n return <Collection {...delegatedProps} cards={cards} />;\n}\n\nexport type PageArticleCollectionProps = Omit<CollectionProps, 'cards'> & {\n collection: GeneralCollectionType;\n};\n\nexport function PageArticleCollection({\n collection,\n ...delegatedProps\n}: PageArticleCollectionProps) {\n const {\n utils: { getRoutedInternalHref, getArticlePageCardProps },\n } = useConfig();\n\n const cards = collection.items\n .reduce((result: CardProps[], item) => {\n if (isPageType(item) || isArticleType(item))\n result.push(getArticlePageCardProps(item));\n return result;\n }, [])\n .map((cardProps) => {\n const url = getRoutedInternalHref(cardProps.url, undefined);\n return (\n <Card\n key={cardProps.id}\n {...cardProps}\n url={url}\n direction=\"fixed-vertical\"\n />\n );\n });\n\n return (\n <Collection\n {...delegatedProps}\n showAllUrl={collection.showAllUrl}\n cards={cards}\n />\n );\n}\n","import classNames from 'classnames';\nimport React from 'react';\n\nimport { HtmlToReact } from '../../../common/components/htmlToReact/HtmlToReact';\nimport { useConfig } from '../../configProvider/useConfig';\nimport { Link } from '../../link/Link';\nimport styles from '../pageModules.module.scss';\nimport colorStyles from '../../styles/background.module.scss';\nimport { getColor, isWhiteText } from '../../utils/string';\n\nexport type ContentModuleProps = {\n content?: string;\n backgroundColor?: string;\n className?: string;\n};\n\nexport function ContentModule({\n content,\n backgroundColor,\n className,\n}: ContentModuleProps) {\n const {\n htmlSanitizer: { allowedUnsafeTags, trustedOrigins },\n } = useConfig();\n\n return (\n <div\n className={classNames(\n styles.pageModuleWrapper,\n styles.contentModuleWrapper,\n backgroundColor &&\n colorStyles[`background${getColor(backgroundColor)}`],\n backgroundColor &&\n isWhiteText(backgroundColor) &&\n colorStyles.whiteText,\n backgroundColor ? styles.withPadding : '',\n )}\n >\n <div className={classNames(className)}>\n <HtmlToReact\n components={{\n a: Link,\n }}\n allowedUnsafeTags={allowedUnsafeTags}\n trustedOrigins={trustedOrigins}\n >\n {content || ''}\n </HtmlToReact>\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport type { CardProps } from '../../card/Card';\nimport { Card } from '../../card/Card';\nimport styles from '../pageModules.module.scss';\n\n// todo: implement module\nexport function CardModule(props: CardProps) {\n return (\n <div className={styles.pageModuleWrapper}>\n <Card\n {...props}\n direction=\"responsive-reverse\"\n imageLabel=\"\"\n withBorder\n hasLink={false}\n clampText={false}\n />\n </div>\n );\n}\n","const MAX_KEY_LENGTH = 200;\nexport default function createHashKey(source: string | object) {\n const data = typeof source === 'string' ? source : JSON.stringify(source);\n return btoa(unescape(encodeURIComponent(data))).substring(0, MAX_KEY_LENGTH);\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport styles from '../pageModules.module.scss';\nimport { SimpleCard } from './SimpleCard';\nimport createHashKey from '../../utils/createHashKey';\n\ntype Card = {\n backgroundColor?: string;\n description?: string;\n icon?: string;\n title?: string;\n link?: {\n target?: string;\n title?: string;\n url?: string;\n };\n};\n\nexport type CardsModuleProps = {\n items: Card[];\n};\n\n// todo: implement module\nexport function CardsModule({ items }: CardsModuleProps) {\n return (\n <div\n className={classNames(\n styles.pageModuleWrapper,\n styles.cardsWrapper,\n items.length < 4 && styles.flexWrapper,\n items.length === 1 && styles.singleGridWrapper,\n )}\n >\n {items?.map((card, index) => {\n // The card module does not contain any proeprty that could be used as an unique id, so one needs to be created\n const uniqueKey = createHashKey(\n `${index}-${card.title}-${card.description}`,\n );\n return (\n <SimpleCard\n key={uniqueKey}\n title={card.title}\n description={card.description}\n linkTarget={card.link?.target}\n linkTitle={card.link?.title}\n linkUrl={card.link?.url}\n backgroundColor={card.backgroundColor}\n direction={items.length === 1 ? 'horisontal' : 'vertical'}\n icon={card.icon}\n />\n );\n })}\n </div>\n );\n}\n","import type { Dispatch, SetStateAction } from 'react';\nimport { createContext } from 'react';\n\nexport interface ImageGalleryContextProps {\n /**\n * Image index.\n */\n imageIndex: number;\n /**\n * Set Image index.\n */\n setImageIndex: Dispatch<SetStateAction<number>>;\n /**\n * Selected Image index.\n */\n selectedImageIndex: number;\n /**\n * Set selected Image index.\n */\n setSelectedImageIndex: Dispatch<SetStateAction<number>>;\n /**\n * Boolean indicating whether the lightbox is visible.\n */\n isLightboxVisible: boolean;\n /**\n * Set is Iamge lightbox visible.\n */\n setIsLightboxVisible: Dispatch<SetStateAction<boolean>>;\n /**\n * Toggle lightbox method.\n */\n toggleLightbox: () => void;\n}\n\nexport const ImageGalleryContext = createContext<ImageGalleryContextProps>({\n imageIndex: 0,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setImageIndex: () => {},\n selectedImageIndex: -1,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setSelectedImageIndex: () => {},\n isLightboxVisible: false,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setIsLightboxVisible: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n toggleLightbox: () => {},\n});\n","import type { ReactNode } from 'react';\nimport React, { useCallback, useState } from 'react';\n\nimport { ImageGalleryContext } from './ImageGalleryContext';\n\ninterface ImageGalleryProviderProps {\n /**\n * Additional children to render inside the Image Gallery.\n */\n children: ReactNode;\n}\n\nexport function ImageGalleryProvider({ children }: ImageGalleryProviderProps) {\n const [imageIndex, setImageIndex] = useState(0);\n const [selectedImageIndex, setSelectedImageIndex] = useState(-1);\n const [isLightboxVisible, setIsLightboxVisible] = useState(false);\n\n const toggleLightbox = useCallback(() => {\n setIsLightboxVisible((prev) => !prev);\n }, [setIsLightboxVisible]);\n\n const config = React.useMemo(\n () => ({\n imageIndex,\n setImageIndex,\n selectedImageIndex,\n setSelectedImageIndex,\n isLightboxVisible,\n setIsLightboxVisible,\n toggleLightbox,\n }),\n [imageIndex, isLightboxVisible, selectedImageIndex, toggleLightbox],\n );\n\n return (\n <ImageGalleryContext.Provider value={config}>\n {children}\n </ImageGalleryContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { ImageGalleryContext } from './ImageGalleryContext';\n\nexport default function useImageGalleryContext() {\n const context = React.useContext(ImageGalleryContext);\n if (!context) {\n throw new Error(\n `Image gallery components cannot be used outside the ImageGalleryProvider`,\n );\n }\n return context;\n}\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport type { ImageItem as ImageItemType } from './types';\nimport styles from './imageGallery.module.scss';\nimport useImageGalleryContext from './useImageGalleryContext';\n\ninterface ImageItemProps {\n /**\n * Image object.\n */\n image: ImageItemType;\n /**\n * Image id.\n */\n imageId: number;\n /**\n * Image lightbox uid.\n */\n lightboxUid: string;\n /**\n * Boolean indicating whether the border styles should be applied to the Image.\n */\n withBorder: boolean;\n /**\n * Boolean indicating whether the lightbox feature is enabled.\n */\n withLightbox: boolean;\n}\n\nexport function ImageItem({\n image,\n imageId,\n lightboxUid,\n withLightbox,\n withBorder,\n}: ImageItemProps) {\n const {\n isLightboxVisible,\n setIsLightboxVisible,\n setImageIndex,\n setSelectedImageIndex,\n toggleLightbox,\n } = useImageGalleryContext();\n\n const handleImageCardClick = (\n e: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n e.preventDefault();\n if (withLightbox) {\n toggleLightbox();\n }\n };\n\n const handleEnterKeyPress = (event: React.KeyboardEvent) => {\n if (withLightbox && event.key === 'Enter') {\n setIsLightboxVisible(true);\n }\n };\n\n const handleImageCardFocus = (index: number) => {\n setImageIndex(index);\n // selected card index before opening the lightbox\n setSelectedImageIndex(index);\n };\n\n const imageTitle = image.title || image.photographer;\n\n return (\n <div\n className={classNames(\n styles.imageItemWrapper,\n withLightbox ? styles.withLightbox : '',\n )}\n onClick={handleImageCardClick}\n >\n <figure\n className={classNames(\n styles.imageCardWrapper,\n withLightbox ? styles.withLightbox : '',\n )}\n aria-label={imageTitle}\n >\n <div\n tabIndex={withLightbox && !isLightboxVisible ? 0 : -1}\n id={`${lightboxUid}-card-${imageId}`}\n className={classNames(\n styles.imageWrapper,\n withBorder ? styles.withBorder : '',\n withLightbox ? styles.withLightbox : '',\n )}\n style={{ backgroundImage: `url(${image.url}` }}\n onFocus={() => handleImageCardFocus(imageId)}\n onKeyDown={handleEnterKeyPress}\n />\n </figure>\n <figcaption className={styles.photographer}>\n {image.photographer}\n </figcaption>\n </div>\n );\n}\n","import React, { useEffect, useRef } from 'react';\n\nimport useImageGalleryContext from './useImageGalleryContext';\nimport Grid from '../../common/components/grid/Grid';\nimport { ImageItem } from './ImageItem';\nimport type { ImageItem as ImageItemType } from './types';\n\ninterface ImagesGridProps {\n /**\n * Array of Image items.\n */\n images: ImageItemType[];\n /**\n * Number of columns in Image grid.\n */\n columns: number;\n /**\n * Image lightbox uid.\n */\n lightboxUid: string;\n /**\n * Boolean indicating whether the border styles should be applied to the Image.\n */\n withBorder: boolean;\n /**\n * Boolean indicating whether the lightbox feature is enabled.\n */\n withLightbox: boolean;\n}\n\nexport function ImagesGrid({\n images,\n columns,\n lightboxUid,\n withLightbox,\n withBorder,\n}: ImagesGridProps) {\n const { isLightboxVisible, selectedImageIndex } = useImageGalleryContext();\n\n const gridContainerRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (!isLightboxVisible && selectedImageIndex !== -1) {\n const gridContainer = gridContainerRef.current;\n const selectedCard = gridContainer?.querySelector<HTMLElement>(\n `[id=\"${lightboxUid}-card-${selectedImageIndex}\"]`,\n );\n if (selectedCard) {\n selectedCard.focus();\n }\n }\n }, [isLightboxVisible, selectedImageIndex, lightboxUid]);\n\n return (\n <div ref={gridContainerRef}>\n <Grid colsCount={images.length === 1 ? 1 : columns}>\n {images.map((image, i) => (\n <ImageItem\n // eslint-disable-next-line react/no-array-index-key\n key={`grid-image-${i}`}\n imageId={i}\n image={image}\n lightboxUid={lightboxUid}\n withLightbox={withLightbox}\n withBorder={withBorder}\n />\n ))}\n </Grid>\n </div>\n );\n}\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n\nimport classNames from 'classnames';\nimport ReactDOM from 'react-dom';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport {\n Button,\n ButtonPresetTheme,\n ButtonVariant,\n IconAngleLeft,\n IconAngleRight,\n} from 'hds-react';\n\nimport type { ImageItem } from './types';\nimport styles from './imageGallery.module.scss';\nimport { useConfig } from '../configProvider/useConfig';\nimport useImageGalleryContext from './useImageGalleryContext';\n\ninterface LightboxProps {\n /**\n * Image items.\n */\n images: ImageItem[];\n /**\n * Image lightbox uid.\n */\n lightboxUid: string;\n}\n\ninterface CloseButtonProps {\n lightboxUid: string;\n}\n\ninterface ActionsProps {\n images: ImageItem[];\n}\n\nexport function Lightbox({\n images,\n lightboxUid,\n}: LightboxProps): JSX.Element | null {\n const lightboxRef = useRef<HTMLDivElement | null>(null);\n const barrierRef = useRef<HTMLHeadingElement | null>(null);\n\n const { isLightboxVisible, imageIndex, toggleLightbox } =\n useImageGalleryContext();\n\n const handleEscapeKeyPress = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n toggleLightbox();\n }\n },\n [toggleLightbox],\n );\n\n useEffect(() => {\n const lightbox = lightboxRef.current;\n if (!lightbox) return undefined;\n\n const focusableElements = lightbox.querySelectorAll<HTMLElement>(\n 'button, [tabindex]:not([tabindex=\"-1\"])',\n );\n const firstElement = focusableElements ? focusableElements[0] : null;\n const lastElement = focusableElements\n ? focusableElements[focusableElements.length - 1]\n : null;\n\n const handleTabKeyPress = (event: KeyboardEvent) => {\n if (focusableElements && event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement?.focus();\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n focusableElements[0].focus();\n }\n }\n };\n\n if (isLightboxVisible) {\n barrierRef.current?.focus();\n lightbox.addEventListener('keydown', handleTabKeyPress);\n lightbox.addEventListener('keydown', handleEscapeKeyPress);\n }\n\n return () => {\n lightbox?.removeEventListener('keydown', handleTabKeyPress);\n lightbox?.removeEventListener('keydown', handleEscapeKeyPress);\n };\n }, [isLightboxVisible, handleEscapeKeyPress]);\n\n const imageTitle =\n images[imageIndex].title || images[imageIndex].photographer;\n const imagePhotogrpher = images[imageIndex].photographer;\n const imageUrl = images[imageIndex].url;\n\n const renderLightboxComponent = (): JSX.Element => (\n <div\n id={lightboxUid}\n role=\"dialog\"\n aria-modal\n aria-labelledby={`${lightboxUid}-title`}\n className={styles.lightbox}\n onClick={toggleLightbox}\n ref={lightboxRef}\n >\n <div\n onClick={(e) => {\n e.stopPropagation();\n }}\n className={styles.lightboxContent}\n >\n <div className={styles.inner}>\n <h2\n id={`${lightboxUid}-title`}\n className={styles.screenReaderText}\n ref={barrierRef}\n tabIndex={-1}\n >\n {imageTitle}\n </h2>\n <figure className={styles.imageCardWrapper} aria-label={imageTitle}>\n <img alt={imageTitle} src={imageUrl} />\n </figure>\n <figcaption\n className={classNames(styles.photographer, styles.withMargin)}\n >\n {imagePhotogrpher}\n </figcaption>\n {images.length > 1 && <Lightbox.Actions images={images} />}\n <Lightbox.CloseButton lightboxUid={lightboxUid} />\n </div>\n </div>\n </div>\n );\n\n return isLightboxVisible\n ? ReactDOM.createPortal(renderLightboxComponent(), document.body)\n : null;\n}\n\nfunction Actions({ images }: ActionsProps) {\n const { imageIndex, setImageIndex } = useImageGalleryContext();\n const handleNextClick = () => {\n setImageIndex((prev) => (imageIndex === images.length - 1 ? 0 : prev + 1));\n };\n\n const handlePreviousClick = () => {\n setImageIndex((prev) => (imageIndex === 0 ? images.length - 1 : prev - 1));\n };\n\n const {\n copy: { previous, next },\n } = useConfig();\n return (\n <div className={styles.actionsWrapper}>\n <Button\n iconStart={<IconAngleLeft />}\n onClick={handlePreviousClick}\n theme={ButtonPresetTheme.Black}\n variant={ButtonVariant.Secondary}\n aria-label={previous}\n >\n {previous}\n </Button>\n <Button\n iconStart={<IconAngleRight />}\n onClick={handleNextClick}\n theme={ButtonPresetTheme.Black}\n variant={ButtonVariant.Secondary}\n aria-label={next}\n >\n {next}\n </Button>\n </div>\n );\n}\n\nfunction CloseButton({ lightboxUid }: CloseButtonProps) {\n const { toggleLightbox } = useImageGalleryContext();\n\n const {\n copy: { closeButtonLabelText },\n } = useConfig();\n return (\n <button\n className={styles.closeButton}\n id={`close-${lightboxUid}`}\n type=\"button\"\n aria-controls={lightboxUid.toString()}\n aria-expanded=\"true\"\n onClick={toggleLightbox}\n >\n <span className={styles.screenReaderText}>{closeButtonLabelText}</span>\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" tabIndex={-1} />\n </button>\n );\n}\n\nLightbox.Actions = Actions;\nLightbox.CloseButton = CloseButton;\n","import React from 'react';\n\nimport { ImageGalleryProvider } from './ImageGalleryProvider';\nimport { ImagesGrid } from './ImagesGrid';\nimport { Lightbox } from './Lightbox';\nimport type { ImageItem as ImageItemType } from './types';\n\nexport type ImageGalleryProps = {\n /**\n * Image gallery items.\n */\n images: ImageItemType[];\n /**\n * Image gallery lightbox component uid.\n */\n lightboxUid: string;\n /**\n * Boolean indicating whether the border styles should be applied to the Image.\n */\n withBorder?: boolean;\n /**\n * Boolean indicating whether the lightbox feature is enabled.\n */\n withLightbox?: boolean;\n /**\n * Number of columns in Image gallery.\n */\n columns?: number;\n};\n\nexport function ImageGallery({\n images,\n withBorder = false,\n withLightbox = true,\n lightboxUid,\n columns = 5,\n}: ImageGalleryProps) {\n return (\n <ImageGalleryProvider>\n {withLightbox && <Lightbox lightboxUid={lightboxUid} images={images} />}\n <ImagesGrid\n images={images}\n columns={columns}\n lightboxUid={lightboxUid}\n withBorder={withBorder}\n withLightbox={withLightbox}\n />\n </ImageGalleryProvider>\n );\n}\n","import React from 'react';\n\nimport type { ImageGalleryProps } from '../../imageGallery/ImageGallery';\nimport { ImageGallery } from '../../imageGallery/ImageGallery';\nimport styles from '../pageModules.module.scss';\n\nexport function ImageGalleryModule(props: ImageGalleryProps) {\n return (\n <div className={styles.pageModuleWrapper}>\n <ImageGallery {...props} />\n </div>\n );\n}\n","import React from 'react';\nimport { StepByStep } from 'hds-react';\nimport classNames from 'classnames';\n\nimport styles from '../pageModules.module.scss';\nimport colorStyles from '../../styles/background.module.scss';\nimport { getColor, getTextFromHtml, isWhiteText } from '../../utils/string';\nimport createHashKey from '../../utils/createHashKey';\n\nexport type Step = {\n content: string;\n title: string;\n};\n\nexport type StepsModuleProps = {\n steps?: Step[];\n title?: string;\n helpText?: string;\n color?: string;\n type?: string;\n className?: string;\n};\n\nexport function StepsModule({\n title,\n helpText,\n color,\n steps,\n type,\n className,\n}: StepsModuleProps) {\n const stepsContents = steps?.map((step, index) => {\n // The card module does not contain any proeprty that could be used as an unique id, so one needs to be created\n const uniqueKey = createHashKey(`${index}-${step.title}-${step.content}`);\n return {\n key: uniqueKey,\n title: getTextFromHtml(step.title),\n description: getTextFromHtml(step.content),\n };\n });\n\n return (\n <div className={styles.pageModuleWrapper}>\n <StepByStep\n numberedList={type === 'numbers'}\n className={classNames(\n color && colorStyles[`backgroundListItem${getColor(color)}`],\n color && isWhiteText(color) && colorStyles.whiteTextList,\n styles.stepsContainer,\n className,\n )}\n helpText={getTextFromHtml(helpText ?? '')}\n steps={stepsContents ?? []}\n title={title}\n />\n </div>\n );\n}\n","import { Breadcrumb as HdsBreadcrumb } from 'hds-react';\nimport React from 'react';\n\nimport { useConfig } from '../configProvider/useConfig';\nimport { getBreadcrumbListItems } from './utils';\nimport styles from './pageContentBreadcrumb.module.scss';\nimport type { BreadcrumbUnionType } from './types';\n\nexport function PageContentBreadcrumb({\n breadcrumbs,\n}: {\n breadcrumbs: BreadcrumbUnionType;\n}) {\n const {\n copy: { breadcrumbNavigationLabel },\n } = useConfig();\n const listItems = getBreadcrumbListItems(breadcrumbs);\n return (\n <div className={styles.container}>\n <HdsBreadcrumb aria-label={breadcrumbNavigationLabel} list={listItems} />\n </div>\n );\n}\n","import React, { useLayoutEffect, useMemo, useRef } from 'react';\nimport DOMPurify from 'isomorphic-dompurify';\nimport type { DOMNode } from 'html-react-parser';\nimport parse from 'html-react-parser';\n\nimport Text from '../../../common/components/text/Text';\nimport { useConfig } from '../../configProvider/useConfig';\nimport styles from '../pageModules.module.scss';\nimport isTrustedOrigin from '../../utils/isTrustedOrigin';\n\nexport interface SocialMediaFeedModuleProps {\n anchor: string;\n title?: string;\n script?: string;\n}\n\nexport function SocialMediaFeedModule({\n anchor,\n title,\n script,\n}: SocialMediaFeedModuleProps) {\n const {\n htmlSanitizer: { trustedOrigins },\n } = useConfig();\n\n const scriptWrapperRef = useRef<HTMLDivElement>(null);\n\n const clean = useMemo(\n () =>\n DOMPurify.sanitize(script ?? '', {\n FORCE_BODY: true,\n ADD_TAGS: ['script', 'div'],\n }),\n [script],\n );\n\n useLayoutEffect(() => {\n if (scriptWrapperRef.current?.innerHTML) {\n const range = document.createRange();\n range.selectNode(scriptWrapperRef.current);\n const documentFragment = range.createContextualFragment(\n scriptWrapperRef.current.innerHTML,\n );\n scriptWrapperRef.current.innerHTML = '';\n scriptWrapperRef.current.append(documentFragment);\n }\n }, [clean, trustedOrigins]);\n\n const sanitizeScripts = (domNode: DOMNode) => {\n if ('attribs' in domNode) {\n if (\n domNode.name === 'script' &&\n !isTrustedOrigin(domNode.attribs.src, trustedOrigins ?? [])\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'The unsafe social media feed script is not allowed. Please enable it in hcrc library configs.',\n );\n return <div />;\n }\n }\n\n return domNode;\n };\n\n const htmlReactParserOptions = {\n replace: (domNode: DOMNode) => sanitizeScripts(domNode),\n };\n\n return (\n <div id={anchor} className={styles.pageModuleWrapper}>\n {title && (\n <Text as=\"h2\" variant=\"h2\">\n {title}\n </Text>\n )}\n <div ref={scriptWrapperRef}>{parse(clean, htmlReactParserOptions)}</div>\n </div>\n );\n}\n","import React from 'react';\n\nimport type { ArticleType, PageType } from '../../common/headlessService/types';\n\nexport type PageContextProps = {\n page: PageType | ArticleType;\n};\n\nconst initialValue: PageContextProps = { page: null };\n\nexport const PageContext = React.createContext<PageContextProps>(initialValue);\n","import React from 'react';\n\nimport type { PageContextProps } from './PageContext';\nimport { PageContext } from './PageContext';\n\nexport type PageContextProviderProps = PageContextProps & {\n children: React.ReactNode;\n};\n\nexport function PageContextProvider({\n page,\n children,\n}: PageContextProviderProps) {\n const context: PageContextProps = React.useMemo(\n () => ({ page }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [page?.id, page?.uri],\n );\n return (\n <PageContext.Provider value={context}>{children}</PageContext.Provider>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { useConfig } from '../configProvider/useConfig';\nimport SidebarContent from './sidebarContent/SidebarContent';\nimport { PageContentLayout } from './PageContentLayout';\nimport { PageMainContent } from './PageMainContent';\nimport type { PageContentProps } from './types';\nimport { PageMeta } from './meta/PageMeta';\nimport {\n PageArticleCollection,\n EventSearchCollection,\n EventSelectionCollection,\n LocationsSelectionCollection,\n} from '../collection/Collection';\nimport type {\n ArticleType,\n LanguageCodeEnum,\n PageType,\n} from '../../common/headlessService/types';\nimport { getHeroProps, getCollections, getCollectionUIType } from './utils';\nimport {\n isEventSearchCollection,\n isEventSelectionCollection,\n isLayoutCard,\n isLayoutCards,\n isLayoutContent,\n isLayoutImage,\n isLayoutImageGallery,\n isLayoutSocialMediaFeed,\n isLayoutSteps,\n isLocationsSelectionCollection,\n isPageType,\n} from '../../common/headlessService/utils';\nimport { ContentModule } from '../pageModules/ContentModule/ContentModule';\nimport { CardModule } from '../pageModules/CardModule/CardModule';\nimport type { CardsModuleProps } from '../pageModules/CardsModule/CardsModule';\nimport { CardsModule } from '../pageModules/CardsModule/CardsModule';\nimport { ImageGalleryModule } from '../pageModules/ImageGalleryModule/ImageGalleryModule';\nimport type { StepsModuleProps } from '../pageModules/StepsModule/StepsModule';\nimport { StepsModule } from '../pageModules/StepsModule/StepsModule';\nimport createHashKey from '../utils/createHashKey';\nimport { MAIN_CONTENT_ID } from '../../common/constants';\nimport { PageContentBreadcrumb } from './PageContentBreadcrumb';\nimport type { CardAlignment } from '../card/Card';\nimport { SocialMediaFeedModule } from '../pageModules/SocialMediaFeedModule/SocialMediaFeedModule';\nimport { PageContextProvider } from '../pageContextProvider/PageContextProvider';\nimport type { ImageItem } from '../imageGallery/types';\n\n// Modules: Content, Image, Cards, Steps (possibly other in future)\nexport const defaultContentModules = (\n page: PageType | ArticleType,\n): React.ReactNode[] => {\n const contentModules: React.ReactNode[] = [];\n page?.modules?.map((module, index) => {\n const uniqueKey = createHashKey(`${index}-${JSON.stringify(module)}`);\n if (isLayoutContent(module)) {\n contentModules.push(\n <ContentModule\n key={uniqueKey}\n content={module.content ?? undefined}\n backgroundColor={module.backgroundColor ?? undefined}\n />,\n );\n } else if (isLayoutCard(module)) {\n contentModules.push(\n <CardModule\n key={uniqueKey}\n title={module.title ?? undefined}\n text={module.description ?? undefined}\n backgroundColor={module.backgroundColor ?? undefined}\n hasLink\n url={module.link?.url ?? undefined}\n imageUrl={module.image?.medium_large}\n alignment={module.alignment as CardAlignment}\n />,\n );\n } else if (isLayoutCards(module)) {\n const items: CardsModuleProps['items'] =\n module.cards\n ?.filter((card) => card !== null)\n .map((card) => ({\n ...card,\n backgroundColor: card.backgroundColor ?? undefined,\n title: card.description ?? undefined,\n description: card.description ?? undefined,\n icon: card.icon ?? undefined,\n link: {\n ...card.link,\n title: card.link?.title ?? undefined,\n target: card.link?.target ?? undefined,\n url: card.link?.url ?? undefined,\n },\n })) ?? [];\n contentModules.push(<CardsModule key={uniqueKey} items={items} />);\n } else if (isLayoutImage(module)) {\n const image: ImageItem = {\n url: module.image?.medium_large ?? '',\n previewUrl: module.image?.medium ?? '',\n photographer: module.photographer_name ?? '',\n };\n contentModules.push(\n <ImageGalleryModule\n images={[image]}\n key={uniqueKey}\n withBorder={module.border ?? undefined}\n withLightbox={module.show_on_lightbox ?? undefined}\n lightboxUid={`lightbox-${index}`}\n columns={1}\n />,\n );\n } else if (isLayoutImageGallery(module)) {\n const images: ImageItem[] =\n module.gallery\n ?.filter((image) => !!image)\n .map((image) => ({\n url: image?.medium_large ?? '',\n previewUrl: image?.medium ?? '',\n photographer: image?.caption ?? '',\n title: image?.title ?? '',\n })) ?? [];\n contentModules.push(\n <ImageGalleryModule\n images={images}\n key={uniqueKey}\n withLightbox\n lightboxUid={`lightbox-${index}`}\n columns={3}\n />,\n );\n } else if (isLayoutSteps(module)) {\n const steps: StepsModuleProps['steps'] =\n module.steps\n ?.filter((step) => !!step)\n .map((step) => ({\n title: step.title ?? '',\n content: step.content ?? '',\n })) ?? [];\n contentModules.push(\n <StepsModule\n key={uniqueKey}\n title={module.title ?? undefined}\n steps={steps}\n helpText={module.description ?? undefined}\n color={module.color ?? undefined}\n type={module.type ?? undefined}\n />,\n );\n } else if (isLayoutSocialMediaFeed(module)) {\n contentModules.push(\n <SocialMediaFeedModule\n key={uniqueKey}\n anchor={module.anchor ?? ''}\n title={module.title ?? undefined}\n script={module.script ?? undefined}\n />,\n );\n }\n return null;\n });\n return contentModules;\n};\n\nexport const defaultContent = (\n page: PageType | ArticleType,\n onArticlesSearch?: (tag: string) => void,\n) => {\n let hideTitle = false;\n if (isPageType(page)) {\n hideTitle = Boolean(page?.hero?.title);\n }\n\n return (\n <PageMainContent\n title={!hideTitle ? (page?.title ?? '') : ''}\n content={page?.content ?? ''}\n date={(page as ArticleType)?.date ?? undefined}\n categories={(page as ArticleType)?.categories}\n contentModules={defaultContentModules(page)}\n onArticlesSearch={onArticlesSearch}\n />\n );\n};\n\nexport const defaultCollections = ({\n page,\n isEventModulesEnabled = true,\n isVenueModulesEnabled = true,\n}: {\n page: PageType | ArticleType;\n isEventModulesEnabled: boolean;\n isVenueModulesEnabled: boolean;\n}) =>\n getCollections(page?.modules ?? [], true)?.reduce(\n (collectionElements: React.JSX.Element[], collection) => {\n const key = `collection-${btoa(`${collection?.id ?? ''}-${collection?.title ?? ''}-${collection?.description ?? ''}`)}`;\n const commonCollectionProps = {\n title: collection.title,\n description: collection.description,\n type: getCollectionUIType(collection),\n collectionContainerProps: {},\n };\n\n if (isEventSearchCollection(collection)) {\n if (isEventModulesEnabled) {\n collectionElements.push(\n <EventSearchCollection\n {...commonCollectionProps}\n key={key}\n collection={collection}\n />,\n );\n }\n } else if (isEventSelectionCollection(collection)) {\n if (isEventModulesEnabled) {\n collectionElements.push(\n <EventSelectionCollection\n {...commonCollectionProps}\n key={key}\n collection={collection}\n />,\n );\n }\n } else if (isLocationsSelectionCollection(collection)) {\n if (isVenueModulesEnabled) {\n collectionElements.push(\n <LocationsSelectionCollection\n {...commonCollectionProps}\n key={key}\n collection={collection}\n locale={page?.language?.locale as LanguageCodeEnum}\n />,\n );\n }\n } else {\n collectionElements.push(\n <PageArticleCollection\n {...commonCollectionProps}\n key={key}\n collection={collection}\n />,\n );\n }\n return collectionElements;\n },\n [],\n );\n\nexport function PageContent(props: PageContentProps) {\n const {\n page,\n breadcrumbs,\n collections,\n heroContainer,\n backUrl,\n sidebarContentProps,\n PageContentLayoutComponent = PageContentLayout,\n content,\n shareLinks,\n className,\n onArticlesSearch,\n ...pageContentLayoutProps\n } = props;\n\n const {\n components: { Head },\n eventsApolloClient,\n venuesApolloClient,\n mainContentId,\n } = useConfig();\n\n const isEventModulesEnabled =\n eventsApolloClient !== undefined && eventsApolloClient !== 'disabled';\n const isVenueModulesEnabled =\n eventsApolloClient !== undefined && venuesApolloClient !== 'disabled';\n\n return (\n <main\n id={mainContentId ?? MAIN_CONTENT_ID}\n className={classNames('page-main-content', className)}\n >\n {Head && <PageMeta headComponent={Head} page={page} />}\n <PageContextProvider page={page}>\n <PageContentLayoutComponent\n {...props}\n {...pageContentLayoutProps}\n {...getHeroProps(page)}\n breadcrumbs={\n breadcrumbs &&\n (typeof breadcrumbs === 'function' ? (\n <PageContentBreadcrumb breadcrumbs={breadcrumbs(page)} />\n ) : (\n <PageContentBreadcrumb breadcrumbs={breadcrumbs} />\n ))\n }\n heroContainer={heroContainer}\n id={page?.id ?? 'page'}\n imageSrc={page?.featuredImage?.node?.large}\n imageAlt={page?.featuredImage?.node?.altText ?? undefined}\n imageLabel={page?.featuredImage?.node?.photographerName ?? undefined}\n backUrl={backUrl}\n content={\n typeof content === 'function'\n ? content(page)\n : (content ?? defaultContent(page, onArticlesSearch))\n }\n shareLinks={shareLinks}\n collections={\n typeof collections === 'function'\n ? collections(page)\n : (collections ??\n defaultCollections({\n page,\n isEventModulesEnabled,\n isVenueModulesEnabled,\n }))\n }\n sidebarContent={\n <SidebarContent\n content={(page as PageType)?.sidebar}\n {...sidebarContentProps}\n />\n }\n />\n </PageContextProvider>\n </main>\n );\n}\n"],"names":["configContext","createContext","defaultConfig","validateContext","config","_config$fallbackImage","undefined","Error","fallbackImageUrls","length","useConfig","useContext","ModuleItemTypeEnum","useHeadlessCmsLink","link","type","arguments","Link","_useConfig","internalHrefOrigins","_useConfig$utils","utils","getIsHrefExternal","getRoutedInternalHref","uri","getUri","mapLinkSizeToExternalIconSize","L","IconSize","Large","M","Small","S","ExtraSmall","hasChildren","element","isValidElement","Boolean","props","children","childToString","child","JSON","stringify","toString","getTextFromReactChildren","Array","Children","toArray","reduce","text","newText","concat","LinkBase","_ref","ref","className","_ref$disableVisitedSt","disableVisitedStyles","_ref$external","external","_ref$showExternalIcon","showExternalIcon","href","iconLeft","iconRight","_ref$openInNewTab","openInNewTab","openInExternalDomainAriaLabel","openInNewTabAriaLabel","_ref$style","style","_ref$size","size","_ref$inlineIcons","inlineIcons","rest","_objectWithoutProperties","_excluded","composeAriaLabel","childrenText","newTabText","externalText","slice","label","filter","join","trim","ZERO_WIDTH_NO_BREAK_SPACE","leftIcon","useMemo","React","styles","externalIcon","createElement","externalWrapper","IconLinkExternal","classNames","icon","verticalAlignBigIcon","verticalAlignSmallOrMediumIcon","rightIcon","_objectSpread","target","rel","content","withLeftIcon","forwardRef","typeOfComponent","component","_component$props","_component$type","__TYPE","replace","getChildrenByType","types","indexOf","recursiveMap","fn","_React$Children$map","map","cloneElement","flat","findAllElementsOfType","elementsOfType","push","_ref2","_ref$href","forceShowExternalIcon","forceOpenInNewTab","delegatedProps","RoutedLink","components","_useConfig$copy","copy","isEmail","startsWith","isPhone","isExternal","iconSize","hasImageInLink","linkComponent","_defineProperty","imgLink","IconEnvelope","IconPhone","Fragment","LinkBox","flex","linkBoxWrapper","linkBox","MAIN_CONTENT_ID","TOP_LEVEL_MENU_ITEM_PARENT_ID","LANGUAGE_CODE_ORDINAL_NUMBER","LanguageCodeEnum","Fi","Sv","En","findLanguage","languages","languageCode","find","language","_language$code","code","toLowerCase","languageSorter","left","right","Math","sign","toPrimaryLanguageOption","_language$name","_language$code$toLowe","name","value","isPrimary","isNonEmptyLanguage","getTranslationWithFallback","field","_config$copy$field","fallbackTranslations","useTranslationWithFallback","currentLanguageCode","t","createMenuLinkElement","_navigationItem$title","_navigationItem$label","_getIsItemActive","_menuItemChildren$nav","_menuItemChildren$nav2","menuItemChildren","navigationItem","getIsItemActive","A","Header","as","id","key","title","path","active","dropdownLinks","childNavigationItem","Navigation","_menu$menuItems$nodes","_menu$menuItems","_currentLanguage$code","_universalBarMenu$men","_menuItemChildren$TOP","menu","universalBarMenu","userNavigation","onTitleClick","getPathnameForLanguage","siteName","menuButtonLabel","menuToggleAriaLabel","skipToContentLabel","mainContentId","redirectToUrl","languagesData","currentLanguage","_useTranslationWithFa","languageOptions","sort","onDidChangeLanguage","newLanguageCode","newLanguage","url","groupBy","menuItems","nodes","menuItem","_menuItem$parentId","parentId","sharedMenuLinkProps","overrideHeaderMaxWidth","defaultLanguage","SkipLink","skipTo","UniversalBar","primaryLinkText","primaryLinkHref","ActionBar","titleHref","logoHref","menuButtonAriaLabel","onLogoClick","frontPageLabel","logo","Logo","LogoSize","src","alt","logoAriaLabel","LanguageSelector","NavigationMenu","isBrowser","window","makeLocaleStorageValue","options","_ref$serializer","serializer","serialize","_ref$deserializer","deserializer","deserialize","parse","useLocaleStorageValue","readValueInLocalStorage","storedValue","localStorage","getItem","_","console","error","_useState","useState","_useState2","_slicedToArray","stateValue","setStateValue","storeValue","useCallback","setItem","removeItem","getElement","variant","Text","elementType","_ref$variant","DefaultH2","DefaultP","IframeForEmbeddedMedia","loading","sandbox","validateTrustedOriginsFormat","trustedOrigins","some","origin","URL","isTrustedOrigin","testedOrigin","includes","hasClassName","domNode","_domNode$attribs$clas","_domNode$attribs$clas2","attribs","split","addClassNames","_domNode$attribs$clas3","_domNode$attribs$clas4","_len","newClassNames","_key","apply","_toConsumableArray","WHITELISTED_TAGS","DEFAULT_TABLE_VARIANTS","mapTableHeaderChild","attributesToProps","domToReact","replaceDomNodeWithReactComponent","_components$p","p","P","_components$h","h2","H2","_components$a","a","_components$table","table","Table","_components$tableVari","tableVariants","_components$img","img","IMG","_components$iframe","iframe","IFrame","tableVariant","width","warn","HtmlToReact","dirty","_ref$allowedUnsafeTag","allowedUnsafeTags","_ref$trustedOrigins","clean","DOMPurify","sanitize","USE_PROFILES","html","ADD_ATTR","ADD_TAGS","ALLOWED_TAGS","htmlReactParserOptions","hash","str","seed","h1","i","ch","charCodeAt","imul","getNotificationHash","notification","stringKeys","combinedString","acc","current","_notification$current","isNotificationActive","startDate","endDate","isNotificationContentMissing","isSameDayOrFuture","date","isSameDay","Date","isFuture","isPast","f","NotificationStatus","useLocaleStorageNotification","getNotificationStatus","notificationState","missing","dismissed","getIsNotificationActive","expired","visible","notificationTypeMap","info","high","low","isCmsNotificationLevel","Notification","closeButtonLabelText","_useLocaleStorageNoti","_useLocaleStorageNoti2","setNotificationState","notificationHash","notificationStatus","level","linkUrl","linkText","handleClose","HDSNotification","dismissible","onClose","String","marginTop","display","Page","navigation","footer","pageLayout","headerWrapper","contentWrapper","footerWrapper","getKey","elements","List","items","list","item","isArray","SidebarContentLinkList","anchor","description","links","listContainer","descriptionContainer","isLinkItem","IconArrowRight","testImage","Promise","reject","imgElement","Image","controller","AbortController","signal","resolve","addEventListener","abort","useResolveImageUrl","customFallbackUrl","_React$useState","_React$useState2","showFallbackImage","setShowFallbackImage","useEffect","testThatImageExist","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","v","randomIndex","abs","customFallbackSrc","caption","imageProps","resolvedUrl","formatDateFromString","dateTime","format","parseISO","SidebarContentCard","imageUrl","imageAlt","publishingDate","container","image","PostListItem","_featuredImage$node","_featuredImage$node2","moduleItemType","featuredImage","node","medium","altText","__assign","this","SELECT_COLORS_LIGHT","toPascalCase","s","startCase","camelCase","getColor","color","getIconName","getTextFromHtml","decode","isWhiteText","Icon","fallback","IconComponent","lazy","then","module","Suspense","fallbackIcon","SimpleCard","backgroundColor","linkTitle","linkTarget","_ref$direction","direction","newWindow","open","opener","handleClick","cardWrapper","colorStyles","whiteText","cardIconWrapper","cardContent","button","whiteButton","Button","ButtonVariant","Secondary","theme","ButtonPresetTheme","Black","onClick","iconStart","IconAngleRight","SidebarCardsList","cards","cardsContainer","card","_card$link$url","_card$link","_card$title","_card$icon","_card$description","_card$backgroundColor","_card$link$title","_card$link2","_card$link$target","_card$link3","btoa","SidebarContent","_content$map","_ref$SidebarContentLi","SidebarContentLinkListComponent","_ref$SidebarPostListC","SidebarPostListComponent","_ref$SideBarPostListI","SideBarPostListItemComponent","SidebarPostListItem","_ref$SideBarCardsList","SideBarCardsListComponent","isLayoutLinkList","isLayoutPage","_item$pages","pages","page","index","_page$id","_page$id2","isLayoutArticle","_item$articles","articles","article","_article$id","_article$id2","Article","isLayoutCards","Container","wrapper","ContentContainer","Hero","_ref$korosType","korosType","actionText","actionUrl","actionUrlTarget","backUrl","imageLabel","textContents","withKoros","iconEnd","hero","heroInner","imageContainer","IconArrowLeft","Koros","heroKoros","withMargin","flipVertical","fill","theme1","theme2","Tag","featured","selected","whiteOnly","_ref$noTextWrap","noTextWrap","hdsTagProps","generatedId","useId","HDSTag","tabIndex","tag","withHover","noOutline","BackgroundImage","labelTag","divProps","backgroundImage","PageSection","korosTop","korosTopClassName","korosBottom","korosBottomClassName","backgroundImageUrl","Wrapper","pageSection","withKorosTop","withKorosBottom","PageContentLayout","breadcrumbs","heroContainer","shareLinks","collections","sidebarContent","imageSrc","heroProps","contentLayout","mainLayout","withBorder","mainContent","collectionsWrapper","collectionKorosTop","PageMainContent","_categories$edges","categories","contentModules","onArticlesSearch","_useConfig$htmlSaniti","htmlSanitizer","articleData","articleDate","edges","category","_category$node","_category$node3","_category$node2","replaceAll","RegExp","unescapeDash","PageMeta","_seoForCurrentLanguag","_ref3","_ref4","Head","headComponent","seoForCurrentLanguage","seo","twitterTitle","twitterDescription","openGraphTitle","openGraphType","openGraphDescription","socialImage","mediaItemUrl","xTitle","xDescription","meta","property","favIconUrl","sizes","favIconSvgUrl","appleTouchIconUrl","manifestUrl","MOBILE_WIDTH","initialCarouselContextProps","itemsShownOnDesktop","itemsShownOnMobile","withDots","navigateWithDots","onLoadMore","hasMore","loadMoreButtonLabelText","initialCarouselContextStateValues","isReady","transformValue","numberOfSlides","itemsPerSlide","currentSlide","numberOfItems","handleUpdateSlideProps","throwFieldImplError","fieldName","CarouselContext","setTransformValue","setNumberOfSlides","setItemsPerSlide","setCurrentSlide","setWidth","useCarouselContext","context","useCarouselContextState","_React$useState3","_React$useState4","_React$useState5","_React$useState6","_React$useState7","_React$useState8","_React$useState9","_React$useState0","_React$useState1","_React$useState10","targetSlide","CarouselContextProvider","backwardCompatibleProps","carouselContext","Provider","splitArrayIntoChunksOfLen","arr","len","chunks","getItemSetItemKey","itemId","itemSetPrefix","getSlideDotKey","_item$id","getLoadMoreKey","CarouselSliderPage","itemSet","itemSetIndex","_useCarouselContext","styleWidth","toggleAttribute","slide","slideSelected","slideItems","itemIndex","slideItem","useCarouselSliderRegionAriaLabel","CarouselLoadMoreButton","_useCarouselContext2","LoadingSpinner","small","onLoadMoreContainer","Primary","role","CarouselSlider","_useCarouselContext3","shouldShowLoadMoreButton","itemSets","ariaLabel","sliderWrapper","sliderAnimated","transform","CarouselPreviousSlideButton","previous","handlePrevClick","ariaLabelTitle","btn","btnPrev","disabled","IconAngleLeft","CarouselNextSlideButton","_useConfig2","next","handleNextClick","btnNext","CarouselSlideDot","slideIndex","onClickHandler","dotButtonAriaLabel","dot","CarouselSlideDots","dotsContainer","entry","useCarouselDimensions","updateDimensions","innerWidth","removeEventListener","useCarouselRegionAriaLabel","CarouselWithContext","_ref$className","carouselAriaLabel","ceil","itemsCount","carouselWrapper","root","slider","noDots","Carousel","_ref3$className","_ref3$itemsDesktop","itemsDesktop","_ref3$itemsMobile","itemsMobile","restOfBackwardCompatibleProps","warnOnSSR","CardTitle","withTitleIcon","titleIcon","CardSubTitle","subTitle","CardText","clampText","clamp","CardLink","openLinkInNewTab","linkArrowLabel","buttonWrapper","backgroundDefault","whiteLink","getImagePosition","alignment","CardInnerContent","_ref5","customContent","hasLink","withShadow","_ref5$direction","_ref5$primaryContent","primaryContent","isHovered","handleToggleActive","isDelimited","isCentered","imagePosition","dynamicBackgroundClass","horizontalBorder","onMouseEnter","onMouseLeave","imageWrapper","textWrapper","Card","_alignment$startsWith","_alignment$startsWith2","setIsHovered","val","shouldOpenNewTab","Grid","_ref$colsCount","colsCount","grid","defaultOptions","EventTypeId","Link__Purpose","LocalizedCmsEventFieldsFragmentDoc","gql","_templateObject","_taggedTemplateLiteral","KeywordCmsEventFieldsFragmentDoc","_templateObject2","PlaceCmsEventFieldsFragmentDoc","_templateObject3","OfferCmsEventFieldsFragmentDoc","_templateObject4","RegistrationCmsEventFieldsFragmentDoc","_templateObject5","EventCmsEventFieldsFragmentDoc","_templateObject6","EventListDocument","_templateObject7","useEventListQuery","baseOptions","Apollo","useQuery","EventsByIdsDocument","_templateObject8","useEventsByIdsQuery","useQueryWithEventsApolloClientFromConfig","eventsApolloClient","useQueryWithVenuesApolloClientFromConfig","venuesApolloClient","ResourceState","ListVenueFragmentDoc","VenuesByIdsDocument","useVenuesByIdsQuery","snakecase","substr","$1","toUpperCase","normalizeKeys","_typeof","constructor","Object","obj","keys","currentKey","normalizedKey","normalizeKey","LINKEDEVENTS_DATE_NOW","getVenueIds","ids","isEventEndTimeInPast","event","endTime","isEventEndTimeNullAndStartTimeInPast","startTime","isEventClosed","normalizeParamsValues","params","normalizedParams","eventType","charAt","forEach","param","isValidDate","dateString","Number","isNaN","convertDateStringInPastToNow","start","now","LoadingButton","isLoading","loadingText","Clear","cursor","CollectionGrid","gridWrapper","CollectionCarousel","_excluded2","carousel","Collection","collectionContainerProps","_ref3$type","_ref3$loading","_ref3$hasNext","hasNext","showAllUrl","showAllText","componentForType","loadMoreButton","collection","headerRow","withShowAll","heading","showAll","getEventCollectionCards","getEventCardProps","EventCardContent","HelsinkiCityOwnedIcon","organisationPrefixes","_ref4$locale","locale","DEFAULT_LOCALE","cardProps","EventSearchCollection","_url$split$","_eventsList$data","_ref5$convertPastDate","convertPastDatesToNow","_excluded3","useEventsApolloClientFromConfig","_useConfig2$utils","_useConfig2$component","pageSize","searchParams","URLSearchParams","fromEntries","entries","variables","include","_useEventListQuery","client","ssr","notifyOnNetworkStatusChange","data","eventsList","eventList","loadingSpinnerWrapper","multicolor","Event","EventSelectionCollection","_ref6","_data$eventsByIds$dat","_excluded4","_useConfig3","_useConfig3$utils","_useConfig3$component","events","_useEventsByIdsQuery","skip","General","Course","eventsListFiltered","eventsByIds","eventsListSorted","eventId","eventData","getLocationsCollectionCards","_ref7","getLocationCardProps","VenueCardContent","Venue","location","LocationsSelectionCollection","_ref8","_excluded5","useVenuesApolloClientFromConfig","_useConfig4","_useConfig4$utils","_useConfig4$component","_useVenuesByIdsQuery","venues","headers","venuesList","venuesByIds","PageArticleCollection","_ref9","_excluded6","_useConfig5","_useConfig5$utils","getArticlePageCardProps","result","isPageType","isArticleType","ContentModule","pageModuleWrapper","contentModuleWrapper","withPadding","CardModule","MAX_KEY_LENGTH","createHashKey","source","unescape","encodeURIComponent","substring","CardsModule","cardsWrapper","flexWrapper","singleGridWrapper","uniqueKey","ImageGalleryContext","imageIndex","setImageIndex","selectedImageIndex","setSelectedImageIndex","isLightboxVisible","setIsLightboxVisible","toggleLightbox","ImageGalleryProvider","_useState3","_useState4","_useState5","_useState6","prev","useImageGalleryContext","ImageItem","imageId","lightboxUid","withLightbox","_useImageGalleryConte","handleImageCardClick","e","preventDefault","handleEnterKeyPress","handleImageCardFocus","imageTitle","photographer","imageItemWrapper","imageCardWrapper","onFocus","onKeyDown","ImagesGrid","images","columns","gridContainerRef","useRef","gridContainer","selectedCard","querySelector","focus","Lightbox","lightboxRef","barrierRef","handleEscapeKeyPress","lightbox","focusableElements","querySelectorAll","firstElement","lastElement","handleTabKeyPress","shiftKey","document","activeElement","_barrierRef$current","imagePhotogrpher","renderLightboxComponent","stopPropagation","lightboxContent","inner","screenReaderText","Actions","CloseButton","ReactDOM","createPortal","body","_useImageGalleryConte2","handlePreviousClick","actionsWrapper","_useImageGalleryConte3","closeButton","viewBox","ImageGallery","_ref$withBorder","_ref$withLightbox","_ref$columns","ImageGalleryModule","StepsModule","helpText","steps","stepsContents","step","StepByStep","numberedList","whiteTextList","stepsContainer","PageContentBreadcrumb","breadcrumbNavigationLabel","listItems","getBreadcrumbListItems","HdsBreadcrumb","SocialMediaFeedModule","script","scriptWrapperRef","FORCE_BODY","useLayoutEffect","_scriptWrapperRef$cur","innerHTML","range","createRange","selectNode","documentFragment","createContextualFragment","append","sanitizeScripts","initialValue","PageContext","PageContextProvider","defaultContentModules","_page$modules","modules","isLayoutContent","_module$content","_module$backgroundCol","isLayoutCard","_module$title","_module$description","_module$backgroundCol2","_module$link$url","_module$link","_module$image","medium_large","_module$cards$filter$","_module$cards","_card$description2","isLayoutImage","_module$image$medium_","_module$image2","_module$image$medium","_module$image3","_module$photographer_","_module$border","_module$show_on_light","previewUrl","photographer_name","border","show_on_lightbox","isLayoutImageGallery","_module$gallery$filte","_module$gallery","gallery","_image$medium_large","_image$medium","_image$caption","_image$title","isLayoutSteps","_module$steps$filter$","_module$steps","_module$title2","_module$description2","_module$color","_module$type","_step$title","_step$content","isLayoutSocialMediaFeed","_module$anchor","_module$title3","_module$script","defaultContent","_page$title","_page$content","_page$date","hideTitle","_page$hero","defaultCollections","_getCollections","_page$modules2","_ref$isEventModulesEn","isEventModulesEnabled","_ref$isVenueModulesEn","isVenueModulesEnabled","getCollections","collectionElements","_collection$id","_collection$title","_collection$descripti","commonCollectionProps","getCollectionUIType","isEventSearchCollection","isEventSelectionCollection","isLocationsSelectionCollection","_page$language","PageContent","_page$featuredImage","_page$featuredImage$n","_page$featuredImage2","_page$featuredImage$n2","_page$featuredImage3","sidebarContentProps","_props$PageContentLay","PageContentLayoutComponent","pageContentLayoutProps","getHeroProps","large","photographerName","sidebar"],"mappings":"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","x_google_ignoreList":[4,5,42,43,44,45]}
|