@city-of-helsinki/react-helsinki-headless-cms 3.0.0-rc.1 → 3.0.0-rc.2

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.
Files changed (473) hide show
  1. package/dist/LICENSE +21 -0
  2. package/dist/README.md +442 -0
  3. package/dist/__generated__-mcycL1jB.d.ts +7192 -0
  4. package/dist/apollo.d.ts +168 -0
  5. package/dist/apollo.js +194 -0
  6. package/dist/apollo.js.map +1 -0
  7. package/dist/archiveSearchPageContent.module-DmpLBZP5.js +4078 -0
  8. package/dist/archiveSearchPageContent.module-DmpLBZP5.js.map +1 -0
  9. package/dist/cjs/apollo.js +227 -0
  10. package/dist/cjs/apollo.js.map +1 -0
  11. package/dist/cjs/archiveSearchPageContent.module-Hcb4WVMf.js +4143 -0
  12. package/dist/cjs/archiveSearchPageContent.module-Hcb4WVMf.js.map +1 -0
  13. package/dist/cjs/defaultConfig-dV2AVA5S.js +19908 -0
  14. package/dist/cjs/defaultConfig-dV2AVA5S.js.map +1 -0
  15. package/dist/cjs/index-Eg-NhhyT.js +799 -0
  16. package/dist/cjs/index-Eg-NhhyT.js.map +1 -0
  17. package/dist/cjs/index.js +439 -0
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/jest-setup.d.ts +1 -0
  20. package/dist/cjs/nextjs.js +74 -0
  21. package/dist/cjs/nextjs.js.map +1 -0
  22. package/dist/cjs/src/apollo/apollo-custom-template.stories.d.ts +12 -0
  23. package/dist/cjs/src/apollo/apollo.stories.d.ts +24 -0
  24. package/dist/cjs/src/apollo/index.d.ts +17 -0
  25. package/dist/cjs/src/apollo/navigation/Navigation.d.ts +13 -0
  26. package/dist/cjs/src/apollo/navigation/__tests__/Navigation.test.d.ts +1 -0
  27. package/dist/cjs/src/apollo/notification/Notification.d.ts +4 -0
  28. package/dist/cjs/src/apollo/notification/__tests__/Notification.test.d.ts +1 -0
  29. package/dist/cjs/src/apollo/page/ApolloPageContextProvider.d.ts +5 -0
  30. package/dist/cjs/src/apollo/page/Page.d.ts +14 -0
  31. package/dist/cjs/src/apollo/page/apolloPageContext.d.ts +13 -0
  32. package/dist/cjs/src/apollo/page/useApolloPageContext.d.ts +4 -0
  33. package/dist/cjs/src/apollo/pageContent/PageContent.d.ts +9 -0
  34. package/dist/cjs/src/apollo/pageWithTemplateContent/PageWithTemplateContent.d.ts +14 -0
  35. package/dist/cjs/src/common/components/container/Container.d.ts +13 -0
  36. package/dist/cjs/src/common/components/grid/Grid.d.ts +16 -0
  37. package/dist/cjs/src/common/components/grid/Grid.stories.d.ts +8 -0
  38. package/dist/cjs/src/common/components/htmlToReact/HtmlToReact.d.ts +38 -0
  39. package/dist/cjs/src/common/components/htmlToReact/HtmlToReact.stories.d.ts +13 -0
  40. package/dist/cjs/src/common/components/htmlToReact/__tests__/HtmlToReact.tests.d.ts +1 -0
  41. package/dist/cjs/src/common/components/htmlToReact/replaceComponents/DefaultH2.d.ts +4 -0
  42. package/dist/cjs/src/common/components/htmlToReact/replaceComponents/DefaultP.d.ts +4 -0
  43. package/dist/cjs/src/common/components/htmlToReact/replaceComponents/IframeForEmbeddedMedia.d.ts +6 -0
  44. package/dist/cjs/src/common/components/htmlToReact/replaceComponents/index.d.ts +3 -0
  45. package/dist/cjs/src/common/components/icons/index.d.ts +5 -0
  46. package/dist/cjs/src/common/components/list/List.d.ts +13 -0
  47. package/dist/cjs/src/common/components/list/List.stories.d.ts +13 -0
  48. package/dist/cjs/src/common/components/tag/Tag.d.ts +26 -0
  49. package/dist/cjs/src/common/components/tag/Tag.stories.d.ts +80 -0
  50. package/dist/cjs/src/common/components/tag/__tests__/Tag.test.d.ts +1 -0
  51. package/dist/cjs/src/common/components/tag/tagThemes.d.ts +3 -0
  52. package/dist/cjs/src/common/components/text/Text.d.ts +27 -0
  53. package/dist/cjs/src/common/components/text/Text.stories.d.ts +14 -0
  54. package/dist/cjs/src/common/constants.d.ts +2 -0
  55. package/dist/cjs/src/common/eventsService/__generated__.d.ts +1420 -0
  56. package/dist/cjs/src/common/eventsService/events.d.ts +12 -0
  57. package/dist/cjs/src/common/eventsService/types.d.ts +2 -0
  58. package/dist/cjs/src/common/eventsService/utils.d.ts +7 -0
  59. package/dist/cjs/src/common/headlessService/__generated__.d.ts +20878 -0
  60. package/dist/cjs/src/common/headlessService/article.d.ts +7 -0
  61. package/dist/cjs/src/common/headlessService/articles.d.ts +17 -0
  62. package/dist/cjs/src/common/headlessService/categories.d.ts +13 -0
  63. package/dist/cjs/src/common/headlessService/category.d.ts +9 -0
  64. package/dist/cjs/src/common/headlessService/constants.d.ts +7 -0
  65. package/dist/cjs/src/common/headlessService/landingPage.d.ts +9 -0
  66. package/dist/cjs/src/common/headlessService/languages.d.ts +8 -0
  67. package/dist/cjs/src/common/headlessService/makeQueryWithApolloClientFromConfig.d.ts +12 -0
  68. package/dist/cjs/src/common/headlessService/menu.d.ts +10 -0
  69. package/dist/cjs/src/common/headlessService/notification.d.ts +7 -0
  70. package/dist/cjs/src/common/headlessService/page.d.ts +8 -0
  71. package/dist/cjs/src/common/headlessService/pageByTemplate.d.ts +9 -0
  72. package/dist/cjs/src/common/headlessService/pages.d.ts +13 -0
  73. package/dist/cjs/src/common/headlessService/tag.d.ts +9 -0
  74. package/dist/cjs/src/common/headlessService/tags.d.ts +13 -0
  75. package/dist/cjs/src/common/headlessService/types.d.ts +17 -0
  76. package/dist/cjs/src/common/headlessService/utils.d.ts +909 -0
  77. package/dist/cjs/src/common/utils/customRender.d.ts +4 -0
  78. package/dist/cjs/src/common/utils/dates.d.ts +20 -0
  79. package/dist/cjs/src/common/utils/getIsValidHttpUrl.d.ts +5 -0
  80. package/dist/cjs/src/common/utils/hash.d.ts +1 -0
  81. package/dist/cjs/src/common/utils/makeLocaleStorageValue.d.ts +6 -0
  82. package/dist/cjs/src/common/utils/testImage.d.ts +9 -0
  83. package/dist/cjs/src/common/venuesService/__generated__.d.ts +254 -0
  84. package/dist/cjs/src/common/venuesService/makeQueryWithVenuesApolloClientFromConfig.d.ts +7 -0
  85. package/dist/cjs/src/common/venuesService/types.d.ts +2 -0
  86. package/dist/cjs/src/constants.d.ts +5 -0
  87. package/dist/cjs/src/core/archiveSearchPage/ArchivePageMeta.d.ts +13 -0
  88. package/dist/cjs/src/core/archiveSearchPage/ArchiveSearchPage.d.ts +16 -0
  89. package/dist/cjs/src/core/archiveSearchPage/ArchiveSearchPage.stories.d.ts +50 -0
  90. package/dist/cjs/src/core/archiveSearchPageContent/ArchiveSearchPageContent.d.ts +92 -0
  91. package/dist/cjs/src/core/button/LoadingButton.d.ts +8 -0
  92. package/dist/cjs/src/core/card/Card.d.ts +102 -0
  93. package/dist/cjs/src/core/card/Card.stories.d.ts +99 -0
  94. package/dist/cjs/src/core/card/LargeCard.d.ts +68 -0
  95. package/dist/cjs/src/core/card/LargeCard.stories.d.ts +16 -0
  96. package/dist/cjs/src/core/cardsList/CardsList.d.ts +16 -0
  97. package/dist/cjs/src/core/cardsList/CardsList.stories.d.ts +22 -0
  98. package/dist/cjs/src/core/carousel/Carousel.d.ts +3 -0
  99. package/dist/cjs/src/core/carousel/Carousel.stories.d.ts +34 -0
  100. package/dist/cjs/src/core/carousel/__tests__/Carousel.test.d.ts +1 -0
  101. package/dist/cjs/src/core/carousel/components/CarouselSlideButton.d.ts +3 -0
  102. package/dist/cjs/src/core/carousel/components/CarouselSlider.d.ts +3 -0
  103. package/dist/cjs/src/core/carousel/components/CarouselSliderDot.d.ts +2 -0
  104. package/dist/cjs/src/core/carousel/components/CarouselSliderPage.d.ts +5 -0
  105. package/dist/cjs/src/core/carousel/components/__tests__/CarouselSlideButton.test.d.ts +1 -0
  106. package/dist/cjs/src/core/carousel/components/__tests__/CarouselSlider.test.d.ts +1 -0
  107. package/dist/cjs/src/core/carousel/components/__tests__/CarouselSliderDot.test.d.ts +1 -0
  108. package/dist/cjs/src/core/carousel/components/__tests__/CarouselSliderPage.test.d.ts +1 -0
  109. package/dist/cjs/src/core/carousel/constants.d.ts +20 -0
  110. package/dist/cjs/src/core/carousel/context/CarouselContext.d.ts +4 -0
  111. package/dist/cjs/src/core/carousel/context/CarouselContextProvider.d.ts +7 -0
  112. package/dist/cjs/src/core/carousel/types.d.ts +147 -0
  113. package/dist/cjs/src/core/carousel/utils/utils.d.ts +27 -0
  114. package/dist/cjs/src/core/collection/Collection.d.ts +102 -0
  115. package/dist/cjs/src/core/collection/Collection.stories.d.ts +48 -0
  116. package/dist/cjs/src/core/collection/__tests__/Collection.test.d.ts +1 -0
  117. package/dist/cjs/src/core/collection/constants.d.ts +1 -0
  118. package/dist/cjs/src/core/collection/types.d.ts +28 -0
  119. package/dist/cjs/src/core/collection/utils.d.ts +36 -0
  120. package/dist/cjs/src/core/configProvider/ConfigProvider.d.ts +13 -0
  121. package/dist/cjs/src/core/configProvider/configContext.d.ts +130 -0
  122. package/dist/cjs/src/core/configProvider/defaultConfig.d.ts +61 -0
  123. package/dist/cjs/src/core/configProvider/useApolloClientFromConfig.d.ts +1 -0
  124. package/dist/cjs/src/core/configProvider/useConfig.d.ts +2 -0
  125. package/dist/cjs/src/core/configProvider/useEventsApolloClientFromConfig.d.ts +1 -0
  126. package/dist/cjs/src/core/configProvider/useHeadlessCmsLink.d.ts +2 -0
  127. package/dist/cjs/src/core/configProvider/useVenuesApolloClientFromConfig.d.ts +1 -0
  128. package/dist/cjs/src/core/contentContainer/ContentContainer.d.ts +12 -0
  129. package/dist/cjs/src/core/contentContainer/ContentContainer.stories.d.ts +8 -0
  130. package/dist/cjs/src/core/hero/Hero.d.ts +33 -0
  131. package/dist/cjs/src/core/hero/Hero.stories.d.ts +23 -0
  132. package/dist/cjs/src/core/hooks/useResolveImageUrl.d.ts +6 -0
  133. package/dist/cjs/src/core/image/BackgroundImage.d.ts +20 -0
  134. package/dist/cjs/src/core/image/Image.d.ts +24 -0
  135. package/dist/cjs/src/core/image/__tests__/BackgroundImage.test.d.ts +1 -0
  136. package/dist/cjs/src/core/image/__tests__/Image.test.d.ts +1 -0
  137. package/dist/cjs/src/core/imageGallery/ImageGallery.d.ts +25 -0
  138. package/dist/cjs/src/core/imageGallery/ImageGalleryContext.d.ts +32 -0
  139. package/dist/cjs/src/core/imageGallery/ImageGalleryProvider.d.ts +10 -0
  140. package/dist/cjs/src/core/imageGallery/ImageItem.d.ts +26 -0
  141. package/dist/cjs/src/core/imageGallery/ImagesGrid.d.ts +26 -0
  142. package/dist/cjs/src/core/imageGallery/Lightbox.d.ts +24 -0
  143. package/dist/cjs/src/core/imageGallery/types.d.ts +6 -0
  144. package/dist/cjs/src/core/imageGallery/useImageGalleryContext.d.ts +1 -0
  145. package/dist/cjs/src/core/index.d.ts +43 -0
  146. package/dist/cjs/src/core/language/__tests__/languageSorter.test.d.ts +1 -0
  147. package/dist/cjs/src/core/language/constants.d.ts +6 -0
  148. package/dist/cjs/src/core/language/findLanguage.d.ts +10 -0
  149. package/dist/cjs/src/core/language/index.d.ts +6 -0
  150. package/dist/cjs/src/core/language/languageSorter.d.ts +4 -0
  151. package/dist/cjs/src/core/language/toPrimaryLanguageOption.d.ts +5 -0
  152. package/dist/cjs/src/core/language/typeGuards.d.ts +3 -0
  153. package/dist/cjs/src/core/language/types.d.ts +5 -0
  154. package/dist/cjs/src/core/link/Link.d.ts +44 -0
  155. package/dist/cjs/src/core/link/Link.stories.d.ts +33 -0
  156. package/dist/cjs/src/core/link/LinkBase.d.ts +106 -0
  157. package/dist/cjs/src/core/link/SecondaryLink.d.ts +3 -0
  158. package/dist/cjs/src/core/link/__tests__/Link.test.d.ts +1 -0
  159. package/dist/cjs/src/core/linkBox/Link.stories.d.ts +23 -0
  160. package/dist/cjs/src/core/linkBox/LinkBox.d.ts +20 -0
  161. package/dist/cjs/src/core/navigation/Navigation.d.ts +15 -0
  162. package/dist/cjs/src/core/notification/Notification.d.ts +9 -0
  163. package/dist/cjs/src/core/notification/__tests__/Notification.test.d.ts +1 -0
  164. package/dist/cjs/src/core/notification/utils/getIsNotificationActive.d.ts +2 -0
  165. package/dist/cjs/src/core/notification/utils/getNotificationHash.d.ts +2 -0
  166. package/dist/cjs/src/core/page/Page.d.ts +9 -0
  167. package/dist/cjs/src/core/page/Page.stories.d.ts +40 -0
  168. package/dist/cjs/src/core/pageContent/PageContent.d.ts +11 -0
  169. package/dist/cjs/src/core/pageContent/PageContent.stories.d.ts +1146 -0
  170. package/dist/cjs/src/core/pageContent/PageContentBreadcrumb.d.ts +5 -0
  171. package/dist/cjs/src/core/pageContent/PageContentLayout.d.ts +16 -0
  172. package/dist/cjs/src/core/pageContent/PageMainContent.d.ts +11 -0
  173. package/dist/cjs/src/core/pageContent/__tests__/Page.test.d.ts +1 -0
  174. package/dist/cjs/src/core/pageContent/meta/PageMeta.d.ts +9 -0
  175. package/dist/cjs/src/core/pageContent/sidebarContent/SidebarCardsList.d.ts +5 -0
  176. package/dist/cjs/src/core/pageContent/sidebarContent/SidebarContent.d.ts +15 -0
  177. package/dist/cjs/src/core/pageContent/sidebarContent/SidebarContentCard.d.ts +12 -0
  178. package/dist/cjs/src/core/pageContent/sidebarContent/SidebarContentLinkList.d.ts +5 -0
  179. package/dist/cjs/src/core/pageContent/sidebarContent/SidebarPostListItem.d.ts +8 -0
  180. package/dist/cjs/src/core/pageContent/sidebarContent/__tests__/SidebarContent.test.d.ts +1 -0
  181. package/dist/cjs/src/core/pageContent/types.d.ts +36 -0
  182. package/dist/cjs/src/core/pageContent/utils.d.ts +28 -0
  183. package/dist/cjs/src/core/pageContextProvider/PageContext.d.ts +6 -0
  184. package/dist/cjs/src/core/pageContextProvider/PageContextProvider.d.ts +6 -0
  185. package/dist/cjs/src/core/pageContextProvider/__tests__/PageContextProvider.test.d.ts +1 -0
  186. package/dist/cjs/src/core/pageContextProvider/usePageContext.d.ts +1 -0
  187. package/dist/cjs/src/core/pageModules/CardModule/CardModule.d.ts +3 -0
  188. package/dist/cjs/src/core/pageModules/CardModule/CardModule.stories.d.ts +7 -0
  189. package/dist/cjs/src/core/pageModules/CardsModule/CardsModule.d.ts +17 -0
  190. package/dist/cjs/src/core/pageModules/CardsModule/CardsModule.stories.d.ts +7 -0
  191. package/dist/cjs/src/core/pageModules/CardsModule/Icon.d.ts +6 -0
  192. package/dist/cjs/src/core/pageModules/CardsModule/SimpleCard.d.ts +13 -0
  193. package/dist/cjs/src/core/pageModules/ContentModule/ContentModule.d.ts +7 -0
  194. package/dist/cjs/src/core/pageModules/ContentModule/ContentModule.stories.d.ts +7 -0
  195. package/dist/cjs/src/core/pageModules/ImageGalleryModule/ImageGalleryModule.d.ts +3 -0
  196. package/dist/cjs/src/core/pageModules/ImageGalleryModule/ImageGalleryModule.stories.d.ts +7 -0
  197. package/dist/cjs/src/core/pageModules/SocialMediaFeedModule/SocialMediaFeedModule.d.ts +7 -0
  198. package/dist/cjs/src/core/pageModules/SocialMediaFeedModule/SocialMediaFeedModule.stories.d.ts +7 -0
  199. package/dist/cjs/src/core/pageModules/StepsModule/StepsModule.d.ts +14 -0
  200. package/dist/cjs/src/core/pageModules/StepsModule/StepsModule.stories.d.ts +7 -0
  201. package/dist/cjs/src/core/pageModules/constants.d.ts +1 -0
  202. package/dist/cjs/src/core/pageSection/PageSection.d.ts +32 -0
  203. package/dist/cjs/src/core/pageSection/PageSection.stories.d.ts +7 -0
  204. package/dist/cjs/src/core/pageSection/__tests__/PageSection.test.d.ts +1 -0
  205. package/dist/cjs/src/core/storyContainer/StoryContainer.d.ts +6 -0
  206. package/dist/cjs/src/core/translation/__tests__/getTranslationWithFallback.test.d.ts +1 -0
  207. package/dist/cjs/src/core/translation/constants.d.ts +12 -0
  208. package/dist/cjs/src/core/translation/getTranslationWithFallback.d.ts +4 -0
  209. package/dist/cjs/src/core/translation/types.d.ts +8 -0
  210. package/dist/cjs/src/core/translation/useTranslationWithFallback.d.ts +4 -0
  211. package/dist/cjs/src/core/utils/__tests__/findAllElementsOfType.test.d.ts +1 -0
  212. package/dist/cjs/src/core/utils/__tests__/getChildrenByType.test.d.ts +1 -0
  213. package/dist/cjs/src/core/utils/__tests__/recursiveMap.test.d.ts +1 -0
  214. package/dist/cjs/src/core/utils/createHashKey.d.ts +1 -0
  215. package/dist/cjs/src/core/utils/findAllElementsOfType.d.ts +5 -0
  216. package/dist/cjs/src/core/utils/getChildrenByType.d.ts +18 -0
  217. package/dist/cjs/src/core/utils/isTrustedOrigin.d.ts +1 -0
  218. package/dist/cjs/src/core/utils/recursiveMap.d.ts +15 -0
  219. package/dist/cjs/src/core/utils/string.d.ts +27 -0
  220. package/dist/cjs/src/core/utils/validateTrustedOriginsFormat.d.ts +1 -0
  221. package/dist/cjs/src/linkedEvents/utils/normalizeKey.d.ts +10 -0
  222. package/dist/cjs/src/linkedEvents/utils/normalizeKeys.d.ts +28 -0
  223. package/dist/cjs/src/mocks/handlers.d.ts +1 -0
  224. package/dist/cjs/src/mocks/queries/cms/languages.d.ts +1 -0
  225. package/dist/cjs/src/mocks/queries/cms/menu.d.ts +1 -0
  226. package/dist/cjs/src/mocks/queries/cms/notification.d.ts +1 -0
  227. package/dist/cjs/src/mocks/queries/cms/page.d.ts +1 -0
  228. package/dist/cjs/src/mocks/queries/linkedEvents/eventList.d.ts +242 -0
  229. package/dist/cjs/src/mocks/queries/linkedEvents/eventsByIds.d.ts +224 -0
  230. package/dist/cjs/src/mocks/responses/linkedEvents/eventMocks.d.ts +1112 -0
  231. package/dist/cjs/src/mocks/server.d.ts +1 -0
  232. package/dist/cjs/src/nextjs/getLanguageStaticProps.d.ts +3 -0
  233. package/dist/cjs/src/nextjs/getMenuStaticProps.d.ts +7 -0
  234. package/dist/cjs/src/nextjs/getPageStaticProps.d.ts +7 -0
  235. package/dist/cjs/src/nextjs/index.d.ts +3 -0
  236. package/dist/cjs/src/storybook-common/HelmetWrapper.d.ts +4 -0
  237. package/dist/cjs/src/storybook-common/constants.d.ts +9 -0
  238. package/dist/cjs/src/storybook-common/useCmsEndpointConfig.d.ts +3 -0
  239. package/dist/cjs/src/tests/apolloConfig.d.ts +2 -0
  240. package/dist/cjs/src/tests/hideConsoleMessages.d.ts +11 -0
  241. package/dist/configContext-BjJVyERb.d.ts +791 -0
  242. package/dist/defaultConfig-B0wJw6Kr.js +19810 -0
  243. package/dist/defaultConfig-B0wJw6Kr.js.map +1 -0
  244. package/dist/index-B0pDvzoV.js +2 -0
  245. package/dist/index-B0pDvzoV.js.map +1 -0
  246. package/dist/index.d.ts +1432 -0
  247. package/dist/index.js +333 -0
  248. package/dist/index.js.map +1 -0
  249. package/dist/jest-setup.d.ts +1 -0
  250. package/dist/nextjs.d.ts +17 -0
  251. package/dist/nextjs.js +70 -0
  252. package/dist/nextjs.js.map +1 -0
  253. package/dist/package.json +182 -0
  254. package/dist/src/apollo/apollo-custom-template.stories.d.ts +12 -0
  255. package/dist/src/apollo/apollo.stories.d.ts +24 -0
  256. package/dist/src/apollo/index.d.ts +17 -0
  257. package/dist/src/apollo/navigation/Navigation.d.ts +13 -0
  258. package/dist/src/apollo/navigation/__tests__/Navigation.test.d.ts +1 -0
  259. package/dist/src/apollo/notification/Notification.d.ts +4 -0
  260. package/dist/src/apollo/notification/__tests__/Notification.test.d.ts +1 -0
  261. package/dist/src/apollo/page/ApolloPageContextProvider.d.ts +5 -0
  262. package/dist/src/apollo/page/Page.d.ts +14 -0
  263. package/dist/src/apollo/page/apolloPageContext.d.ts +13 -0
  264. package/dist/src/apollo/page/useApolloPageContext.d.ts +4 -0
  265. package/dist/src/apollo/pageContent/PageContent.d.ts +9 -0
  266. package/dist/src/apollo/pageWithTemplateContent/PageWithTemplateContent.d.ts +14 -0
  267. package/dist/src/common/components/container/Container.d.ts +13 -0
  268. package/dist/src/common/components/grid/Grid.d.ts +16 -0
  269. package/dist/src/common/components/grid/Grid.stories.d.ts +8 -0
  270. package/dist/src/common/components/htmlToReact/HtmlToReact.d.ts +38 -0
  271. package/dist/src/common/components/htmlToReact/HtmlToReact.stories.d.ts +13 -0
  272. package/dist/src/common/components/htmlToReact/__tests__/HtmlToReact.tests.d.ts +1 -0
  273. package/dist/src/common/components/htmlToReact/replaceComponents/DefaultH2.d.ts +4 -0
  274. package/dist/src/common/components/htmlToReact/replaceComponents/DefaultP.d.ts +4 -0
  275. package/dist/src/common/components/htmlToReact/replaceComponents/IframeForEmbeddedMedia.d.ts +6 -0
  276. package/dist/src/common/components/htmlToReact/replaceComponents/index.d.ts +3 -0
  277. package/dist/src/common/components/icons/index.d.ts +5 -0
  278. package/dist/src/common/components/list/List.d.ts +13 -0
  279. package/dist/src/common/components/list/List.stories.d.ts +13 -0
  280. package/dist/src/common/components/tag/Tag.d.ts +26 -0
  281. package/dist/src/common/components/tag/Tag.stories.d.ts +80 -0
  282. package/dist/src/common/components/tag/__tests__/Tag.test.d.ts +1 -0
  283. package/dist/src/common/components/tag/tagThemes.d.ts +3 -0
  284. package/dist/src/common/components/text/Text.d.ts +27 -0
  285. package/dist/src/common/components/text/Text.stories.d.ts +14 -0
  286. package/dist/src/common/constants.d.ts +2 -0
  287. package/dist/src/common/eventsService/__generated__.d.ts +1420 -0
  288. package/dist/src/common/eventsService/events.d.ts +12 -0
  289. package/dist/src/common/eventsService/types.d.ts +2 -0
  290. package/dist/src/common/eventsService/utils.d.ts +7 -0
  291. package/dist/src/common/headlessService/__generated__.d.ts +20878 -0
  292. package/dist/src/common/headlessService/article.d.ts +7 -0
  293. package/dist/src/common/headlessService/articles.d.ts +17 -0
  294. package/dist/src/common/headlessService/categories.d.ts +13 -0
  295. package/dist/src/common/headlessService/category.d.ts +9 -0
  296. package/dist/src/common/headlessService/constants.d.ts +7 -0
  297. package/dist/src/common/headlessService/landingPage.d.ts +9 -0
  298. package/dist/src/common/headlessService/languages.d.ts +8 -0
  299. package/dist/src/common/headlessService/makeQueryWithApolloClientFromConfig.d.ts +12 -0
  300. package/dist/src/common/headlessService/menu.d.ts +10 -0
  301. package/dist/src/common/headlessService/notification.d.ts +7 -0
  302. package/dist/src/common/headlessService/page.d.ts +8 -0
  303. package/dist/src/common/headlessService/pageByTemplate.d.ts +9 -0
  304. package/dist/src/common/headlessService/pages.d.ts +13 -0
  305. package/dist/src/common/headlessService/tag.d.ts +9 -0
  306. package/dist/src/common/headlessService/tags.d.ts +13 -0
  307. package/dist/src/common/headlessService/types.d.ts +17 -0
  308. package/dist/src/common/headlessService/utils.d.ts +909 -0
  309. package/dist/src/common/utils/customRender.d.ts +4 -0
  310. package/dist/src/common/utils/dates.d.ts +20 -0
  311. package/dist/src/common/utils/getIsValidHttpUrl.d.ts +5 -0
  312. package/dist/src/common/utils/hash.d.ts +1 -0
  313. package/dist/src/common/utils/makeLocaleStorageValue.d.ts +6 -0
  314. package/dist/src/common/utils/testImage.d.ts +9 -0
  315. package/dist/src/common/venuesService/__generated__.d.ts +254 -0
  316. package/dist/src/common/venuesService/makeQueryWithVenuesApolloClientFromConfig.d.ts +7 -0
  317. package/dist/src/common/venuesService/types.d.ts +2 -0
  318. package/dist/src/constants.d.ts +5 -0
  319. package/dist/src/core/archiveSearchPage/ArchivePageMeta.d.ts +13 -0
  320. package/dist/src/core/archiveSearchPage/ArchiveSearchPage.d.ts +16 -0
  321. package/dist/src/core/archiveSearchPage/ArchiveSearchPage.stories.d.ts +50 -0
  322. package/dist/src/core/archiveSearchPageContent/ArchiveSearchPageContent.d.ts +92 -0
  323. package/dist/src/core/button/LoadingButton.d.ts +8 -0
  324. package/dist/src/core/card/Card.d.ts +102 -0
  325. package/dist/src/core/card/Card.stories.d.ts +99 -0
  326. package/dist/src/core/card/LargeCard.d.ts +68 -0
  327. package/dist/src/core/card/LargeCard.stories.d.ts +16 -0
  328. package/dist/src/core/cardsList/CardsList.d.ts +16 -0
  329. package/dist/src/core/cardsList/CardsList.stories.d.ts +22 -0
  330. package/dist/src/core/carousel/Carousel.d.ts +3 -0
  331. package/dist/src/core/carousel/Carousel.stories.d.ts +34 -0
  332. package/dist/src/core/carousel/__tests__/Carousel.test.d.ts +1 -0
  333. package/dist/src/core/carousel/components/CarouselSlideButton.d.ts +3 -0
  334. package/dist/src/core/carousel/components/CarouselSlider.d.ts +3 -0
  335. package/dist/src/core/carousel/components/CarouselSliderDot.d.ts +2 -0
  336. package/dist/src/core/carousel/components/CarouselSliderPage.d.ts +5 -0
  337. package/dist/src/core/carousel/components/__tests__/CarouselSlideButton.test.d.ts +1 -0
  338. package/dist/src/core/carousel/components/__tests__/CarouselSlider.test.d.ts +1 -0
  339. package/dist/src/core/carousel/components/__tests__/CarouselSliderDot.test.d.ts +1 -0
  340. package/dist/src/core/carousel/components/__tests__/CarouselSliderPage.test.d.ts +1 -0
  341. package/dist/src/core/carousel/constants.d.ts +20 -0
  342. package/dist/src/core/carousel/context/CarouselContext.d.ts +4 -0
  343. package/dist/src/core/carousel/context/CarouselContextProvider.d.ts +7 -0
  344. package/dist/src/core/carousel/types.d.ts +147 -0
  345. package/dist/src/core/carousel/utils/utils.d.ts +27 -0
  346. package/dist/src/core/collection/Collection.d.ts +102 -0
  347. package/dist/src/core/collection/Collection.stories.d.ts +48 -0
  348. package/dist/src/core/collection/__tests__/Collection.test.d.ts +1 -0
  349. package/dist/src/core/collection/constants.d.ts +1 -0
  350. package/dist/src/core/collection/types.d.ts +28 -0
  351. package/dist/src/core/collection/utils.d.ts +36 -0
  352. package/dist/src/core/configProvider/ConfigProvider.d.ts +13 -0
  353. package/dist/src/core/configProvider/configContext.d.ts +130 -0
  354. package/dist/src/core/configProvider/defaultConfig.d.ts +61 -0
  355. package/dist/src/core/configProvider/useApolloClientFromConfig.d.ts +1 -0
  356. package/dist/src/core/configProvider/useConfig.d.ts +2 -0
  357. package/dist/src/core/configProvider/useEventsApolloClientFromConfig.d.ts +1 -0
  358. package/dist/src/core/configProvider/useHeadlessCmsLink.d.ts +2 -0
  359. package/dist/src/core/configProvider/useVenuesApolloClientFromConfig.d.ts +1 -0
  360. package/dist/src/core/contentContainer/ContentContainer.d.ts +12 -0
  361. package/dist/src/core/contentContainer/ContentContainer.stories.d.ts +8 -0
  362. package/dist/src/core/hero/Hero.d.ts +33 -0
  363. package/dist/src/core/hero/Hero.stories.d.ts +23 -0
  364. package/dist/src/core/hooks/useResolveImageUrl.d.ts +6 -0
  365. package/dist/src/core/image/BackgroundImage.d.ts +20 -0
  366. package/dist/src/core/image/Image.d.ts +24 -0
  367. package/dist/src/core/image/__tests__/BackgroundImage.test.d.ts +1 -0
  368. package/dist/src/core/image/__tests__/Image.test.d.ts +1 -0
  369. package/dist/src/core/imageGallery/ImageGallery.d.ts +25 -0
  370. package/dist/src/core/imageGallery/ImageGalleryContext.d.ts +32 -0
  371. package/dist/src/core/imageGallery/ImageGalleryProvider.d.ts +10 -0
  372. package/dist/src/core/imageGallery/ImageItem.d.ts +26 -0
  373. package/dist/src/core/imageGallery/ImagesGrid.d.ts +26 -0
  374. package/dist/src/core/imageGallery/Lightbox.d.ts +24 -0
  375. package/dist/src/core/imageGallery/types.d.ts +6 -0
  376. package/dist/src/core/imageGallery/useImageGalleryContext.d.ts +1 -0
  377. package/dist/src/core/index.d.ts +43 -0
  378. package/dist/src/core/language/__tests__/languageSorter.test.d.ts +1 -0
  379. package/dist/src/core/language/constants.d.ts +6 -0
  380. package/dist/src/core/language/findLanguage.d.ts +10 -0
  381. package/dist/src/core/language/index.d.ts +6 -0
  382. package/dist/src/core/language/languageSorter.d.ts +4 -0
  383. package/dist/src/core/language/toPrimaryLanguageOption.d.ts +5 -0
  384. package/dist/src/core/language/typeGuards.d.ts +3 -0
  385. package/dist/src/core/language/types.d.ts +5 -0
  386. package/dist/src/core/link/Link.d.ts +44 -0
  387. package/dist/src/core/link/Link.stories.d.ts +33 -0
  388. package/dist/src/core/link/LinkBase.d.ts +106 -0
  389. package/dist/src/core/link/SecondaryLink.d.ts +3 -0
  390. package/dist/src/core/link/__tests__/Link.test.d.ts +1 -0
  391. package/dist/src/core/linkBox/Link.stories.d.ts +23 -0
  392. package/dist/src/core/linkBox/LinkBox.d.ts +20 -0
  393. package/dist/src/core/navigation/Navigation.d.ts +15 -0
  394. package/dist/src/core/notification/Notification.d.ts +9 -0
  395. package/dist/src/core/notification/__tests__/Notification.test.d.ts +1 -0
  396. package/dist/src/core/notification/utils/getIsNotificationActive.d.ts +2 -0
  397. package/dist/src/core/notification/utils/getNotificationHash.d.ts +2 -0
  398. package/dist/src/core/page/Page.d.ts +9 -0
  399. package/dist/src/core/page/Page.stories.d.ts +40 -0
  400. package/dist/src/core/pageContent/PageContent.d.ts +11 -0
  401. package/dist/src/core/pageContent/PageContent.stories.d.ts +1146 -0
  402. package/dist/src/core/pageContent/PageContentBreadcrumb.d.ts +5 -0
  403. package/dist/src/core/pageContent/PageContentLayout.d.ts +16 -0
  404. package/dist/src/core/pageContent/PageMainContent.d.ts +11 -0
  405. package/dist/src/core/pageContent/__tests__/Page.test.d.ts +1 -0
  406. package/dist/src/core/pageContent/meta/PageMeta.d.ts +9 -0
  407. package/dist/src/core/pageContent/sidebarContent/SidebarCardsList.d.ts +5 -0
  408. package/dist/src/core/pageContent/sidebarContent/SidebarContent.d.ts +15 -0
  409. package/dist/src/core/pageContent/sidebarContent/SidebarContentCard.d.ts +12 -0
  410. package/dist/src/core/pageContent/sidebarContent/SidebarContentLinkList.d.ts +5 -0
  411. package/dist/src/core/pageContent/sidebarContent/SidebarPostListItem.d.ts +8 -0
  412. package/dist/src/core/pageContent/sidebarContent/__tests__/SidebarContent.test.d.ts +1 -0
  413. package/dist/src/core/pageContent/types.d.ts +36 -0
  414. package/dist/src/core/pageContent/utils.d.ts +28 -0
  415. package/dist/src/core/pageContextProvider/PageContext.d.ts +6 -0
  416. package/dist/src/core/pageContextProvider/PageContextProvider.d.ts +6 -0
  417. package/dist/src/core/pageContextProvider/__tests__/PageContextProvider.test.d.ts +1 -0
  418. package/dist/src/core/pageContextProvider/usePageContext.d.ts +1 -0
  419. package/dist/src/core/pageModules/CardModule/CardModule.d.ts +3 -0
  420. package/dist/src/core/pageModules/CardModule/CardModule.stories.d.ts +7 -0
  421. package/dist/src/core/pageModules/CardsModule/CardsModule.d.ts +17 -0
  422. package/dist/src/core/pageModules/CardsModule/CardsModule.stories.d.ts +7 -0
  423. package/dist/src/core/pageModules/CardsModule/Icon.d.ts +6 -0
  424. package/dist/src/core/pageModules/CardsModule/SimpleCard.d.ts +13 -0
  425. package/dist/src/core/pageModules/ContentModule/ContentModule.d.ts +7 -0
  426. package/dist/src/core/pageModules/ContentModule/ContentModule.stories.d.ts +7 -0
  427. package/dist/src/core/pageModules/ImageGalleryModule/ImageGalleryModule.d.ts +3 -0
  428. package/dist/src/core/pageModules/ImageGalleryModule/ImageGalleryModule.stories.d.ts +7 -0
  429. package/dist/src/core/pageModules/SocialMediaFeedModule/SocialMediaFeedModule.d.ts +7 -0
  430. package/dist/src/core/pageModules/SocialMediaFeedModule/SocialMediaFeedModule.stories.d.ts +7 -0
  431. package/dist/src/core/pageModules/StepsModule/StepsModule.d.ts +14 -0
  432. package/dist/src/core/pageModules/StepsModule/StepsModule.stories.d.ts +7 -0
  433. package/dist/src/core/pageModules/constants.d.ts +1 -0
  434. package/dist/src/core/pageSection/PageSection.d.ts +32 -0
  435. package/dist/src/core/pageSection/PageSection.stories.d.ts +7 -0
  436. package/dist/src/core/pageSection/__tests__/PageSection.test.d.ts +1 -0
  437. package/dist/src/core/storyContainer/StoryContainer.d.ts +6 -0
  438. package/dist/src/core/translation/__tests__/getTranslationWithFallback.test.d.ts +1 -0
  439. package/dist/src/core/translation/constants.d.ts +12 -0
  440. package/dist/src/core/translation/getTranslationWithFallback.d.ts +4 -0
  441. package/dist/src/core/translation/types.d.ts +8 -0
  442. package/dist/src/core/translation/useTranslationWithFallback.d.ts +4 -0
  443. package/dist/src/core/utils/__tests__/findAllElementsOfType.test.d.ts +1 -0
  444. package/dist/src/core/utils/__tests__/getChildrenByType.test.d.ts +1 -0
  445. package/dist/src/core/utils/__tests__/recursiveMap.test.d.ts +1 -0
  446. package/dist/src/core/utils/createHashKey.d.ts +1 -0
  447. package/dist/src/core/utils/findAllElementsOfType.d.ts +5 -0
  448. package/dist/src/core/utils/getChildrenByType.d.ts +18 -0
  449. package/dist/src/core/utils/isTrustedOrigin.d.ts +1 -0
  450. package/dist/src/core/utils/recursiveMap.d.ts +15 -0
  451. package/dist/src/core/utils/string.d.ts +27 -0
  452. package/dist/src/core/utils/validateTrustedOriginsFormat.d.ts +1 -0
  453. package/dist/src/linkedEvents/utils/normalizeKey.d.ts +10 -0
  454. package/dist/src/linkedEvents/utils/normalizeKeys.d.ts +28 -0
  455. package/dist/src/mocks/handlers.d.ts +1 -0
  456. package/dist/src/mocks/queries/cms/languages.d.ts +1 -0
  457. package/dist/src/mocks/queries/cms/menu.d.ts +1 -0
  458. package/dist/src/mocks/queries/cms/notification.d.ts +1 -0
  459. package/dist/src/mocks/queries/cms/page.d.ts +1 -0
  460. package/dist/src/mocks/queries/linkedEvents/eventList.d.ts +242 -0
  461. package/dist/src/mocks/queries/linkedEvents/eventsByIds.d.ts +224 -0
  462. package/dist/src/mocks/responses/linkedEvents/eventMocks.d.ts +1112 -0
  463. package/dist/src/mocks/server.d.ts +1 -0
  464. package/dist/src/nextjs/getLanguageStaticProps.d.ts +3 -0
  465. package/dist/src/nextjs/getMenuStaticProps.d.ts +7 -0
  466. package/dist/src/nextjs/getPageStaticProps.d.ts +7 -0
  467. package/dist/src/nextjs/index.d.ts +3 -0
  468. package/dist/src/storybook-common/HelmetWrapper.d.ts +4 -0
  469. package/dist/src/storybook-common/constants.d.ts +9 -0
  470. package/dist/src/storybook-common/useCmsEndpointConfig.d.ts +3 -0
  471. package/dist/src/tests/apolloConfig.d.ts +2 -0
  472. package/dist/src/tests/hideConsoleMessages.d.ts +11 -0
  473. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveSearchPageContent.module-DmpLBZP5.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: /&notin;|&(?: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: /&centerdot;|&copysr;|&divideontimes;|&gtcc;|&gtcir;|&gtdot;|&gtlPar;|&gtquest;|&gtrapprox;|&gtrarr;|&gtrdot;|&gtreqless;|&gtreqqless;|&gtrless;|&gtrsim;|&ltcc;|&ltcir;|&ltdot;|&lthree;|&ltimes;|&ltlarr;|&ltquest;|&ltrPar;|&ltri;|&ltrie;|&ltrif;|&notin;|&notinE;|&notindot;|&notinva;|&notinvb;|&notinvc;|&notni;|&notniva;|&notnivb;|&notnivc;|&parallel;|&timesb;|&timesbar;|&timesd;|&(?: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, '&#x2d;', '-');\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]}