@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,4143 @@
1
+ 'use strict';
2
+
3
+ var defaultConfig = require('./defaultConfig-dV2AVA5S.js');
4
+ var React = require('react');
5
+ var hdsReact = require('hds-react');
6
+ var dateFns = require('date-fns');
7
+ var parse = require('html-react-parser');
8
+ var DOMPurify = require('isomorphic-dompurify');
9
+ var Apollo = require('@apollo/client');
10
+ var ReactDOM = require('react-dom');
11
+
12
+ function _interopNamespaceDefault(e) {
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
30
+ var Apollo__namespace = /*#__PURE__*/_interopNamespaceDefault(Apollo);
31
+
32
+ var configContext = /*#__PURE__*/React.createContext(defaultConfig.defaultConfig);
33
+
34
+ var validateContext = function validateContext(config) {
35
+ var _config$fallbackImage;
36
+ if (config === undefined) {
37
+ throw new Error('useConfig must be used within a ConfigProvider');
38
+ }
39
+ if (((_config$fallbackImage = config.fallbackImageUrls) === null || _config$fallbackImage === void 0 ? void 0 : _config$fallbackImage.length) === 0) {
40
+ throw new Error('add at least one fallback background image for events');
41
+ }
42
+ };
43
+ function useConfig() {
44
+ var config = React.useContext(configContext);
45
+ validateContext(config);
46
+ return config;
47
+ }
48
+
49
+ exports.ModuleItemTypeEnum = void 0;
50
+ (function (ModuleItemTypeEnum) {
51
+ ModuleItemTypeEnum["Article"] = "article";
52
+ ModuleItemTypeEnum["Page"] = "page";
53
+ ModuleItemTypeEnum["Link"] = "link";
54
+ ModuleItemTypeEnum["Event"] = "event";
55
+ ModuleItemTypeEnum["Venue"] = "venue";
56
+ })(exports.ModuleItemTypeEnum || (exports.ModuleItemTypeEnum = {}));
57
+
58
+ function useHeadlessCmsLink(link) {
59
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : exports.ModuleItemTypeEnum.Link;
60
+ var _useConfig = useConfig(),
61
+ internalHrefOrigins = _useConfig.internalHrefOrigins,
62
+ _useConfig$utils = _useConfig.utils,
63
+ getIsHrefExternal = _useConfig$utils.getIsHrefExternal,
64
+ getRoutedInternalHref = _useConfig$utils.getRoutedInternalHref;
65
+ var uri = defaultConfig.getUri(link, internalHrefOrigins, getIsHrefExternal);
66
+ return getRoutedInternalHref(uri, type);
67
+ }
68
+
69
+ function getDefaultExportFromCjs (x) {
70
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
71
+ }
72
+
73
+ var classnames = {exports: {}};
74
+
75
+ /*!
76
+ Copyright (c) 2018 Jed Watson.
77
+ Licensed under the MIT License (MIT), see
78
+ http://jedwatson.github.io/classnames
79
+ */
80
+
81
+ var hasRequiredClassnames;
82
+
83
+ function requireClassnames () {
84
+ if (hasRequiredClassnames) return classnames.exports;
85
+ hasRequiredClassnames = 1;
86
+ (function (module) {
87
+ /* global define */
88
+
89
+ (function () {
90
+
91
+ var hasOwn = {}.hasOwnProperty;
92
+
93
+ function classNames () {
94
+ var classes = '';
95
+
96
+ for (var i = 0; i < arguments.length; i++) {
97
+ var arg = arguments[i];
98
+ if (arg) {
99
+ classes = appendClass(classes, parseValue(arg));
100
+ }
101
+ }
102
+
103
+ return classes;
104
+ }
105
+
106
+ function parseValue (arg) {
107
+ if (typeof arg === 'string' || typeof arg === 'number') {
108
+ return arg;
109
+ }
110
+
111
+ if (typeof arg !== 'object') {
112
+ return '';
113
+ }
114
+
115
+ if (Array.isArray(arg)) {
116
+ return classNames.apply(null, arg);
117
+ }
118
+
119
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
120
+ return arg.toString();
121
+ }
122
+
123
+ var classes = '';
124
+
125
+ for (var key in arg) {
126
+ if (hasOwn.call(arg, key) && arg[key]) {
127
+ classes = appendClass(classes, key);
128
+ }
129
+ }
130
+
131
+ return classes;
132
+ }
133
+
134
+ function appendClass (value, newClass) {
135
+ if (!newClass) {
136
+ return value;
137
+ }
138
+
139
+ if (value) {
140
+ return value + ' ' + newClass;
141
+ }
142
+
143
+ return value + newClass;
144
+ }
145
+
146
+ if (module.exports) {
147
+ classNames.default = classNames;
148
+ module.exports = classNames;
149
+ } else {
150
+ window.classNames = classNames;
151
+ }
152
+ }());
153
+ } (classnames));
154
+ return classnames.exports;
155
+ }
156
+
157
+ var classnamesExports = requireClassnames();
158
+ var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);
159
+
160
+ function styleInject(css, ref) {
161
+ if ( ref === void 0 ) ref = {};
162
+ var insertAt = ref.insertAt;
163
+
164
+ if (!css || typeof document === 'undefined') { return; }
165
+
166
+ var head = document.head || document.getElementsByTagName('head')[0];
167
+ var style = document.createElement('style');
168
+ style.type = 'text/css';
169
+
170
+ if (insertAt === 'top') {
171
+ if (head.firstChild) {
172
+ head.insertBefore(style, head.firstChild);
173
+ } else {
174
+ head.appendChild(style);
175
+ }
176
+ } else {
177
+ head.appendChild(style);
178
+ }
179
+
180
+ if (style.styleSheet) {
181
+ style.styleSheet.cssText = css;
182
+ } else {
183
+ style.appendChild(document.createTextNode(css));
184
+ }
185
+ }
186
+
187
+ var css_248z$s = ".LinkBase_hds-link__4Kjdj{--link-visited-color:#551a8b;--link-color:var(--color-bus);box-sizing:border-box;color:var(--link-color);text-decoration:underline}.LinkBase_hds-link__4Kjdj:visited{color:var(--link-visited-color)}.LinkBase_hds-link__4Kjdj:visited svg g path{fill:var(--link-visited-color)}.LinkBase_hds-link__4Kjdj:focus{outline:3px solid var(--color-coat-of-arms)}.LinkBase_hds-link__4Kjdj:focus-visible{outline:3px solid var(--color-coat-of-arms)}.LinkBase_hds-link__4Kjdj .LinkBase_vertical-align-big-icon__6npfv,.LinkBase_hds-link__4Kjdj .LinkBase_vertical-align-small-or-medium-icon__wxjmq{vertical-align:middle}.LinkBase_hds-link--disable-visited-styles__cQcea:visited{color:var(--color-bus)}.LinkBase_hds-link--small__ZK-yV{font-size:14px}.LinkBase_hds-link--medium__bHZ5t{font-size:16px}.LinkBase_hds-link--large__Cnd9b{display:block;font-size:18px;width:fit-content}.LinkBase_hds-link--small__ZK-yV .LinkBase_icon__neXZz{margin-left:7px}.LinkBase_hds-link--medium__bHZ5t .LinkBase_icon__neXZz{margin-left:var(--spacing-2-xs);margin-top:-3px}.LinkBase_hds-link--large__Cnd9b .LinkBase_icon__neXZz{margin-left:var(--spacing-s)}.LinkBase_hds-link--small__ZK-yV .LinkBase_hds-icon-left__e0wBz{margin-right:4px;vertical-align:text-top}.LinkBase_hds-link--medium__bHZ5t .LinkBase_hds-icon-left__e0wBz{margin-right:8px;vertical-align:middle}.LinkBase_hds-link--large__Cnd9b .LinkBase_hds-icon-left__e0wBz{margin-right:16px;vertical-align:middle}.LinkBase_hds-link--small__ZK-yV .LinkBase_hds-icon-right__AJnk1{vertical-align:text-top}.LinkBase_hds-link--large__Cnd9b .LinkBase_hds-icon-right__AJnk1,.LinkBase_hds-link--medium__bHZ5t .LinkBase_hds-icon-right__AJnk1{margin-left:4px;vertical-align:middle}.LinkBase-module_iconLeft__Joa9y,.LinkBase-module_iconRight__KjMW3{white-space:nowrap}.LinkBase-module_linkS__NdYSG svg{min-width:var(--spacing-layout-2-xs)}.LinkBase-module_linkM__Hz4Zc svg{min-width:var(--spacing-layout-xs)}.LinkBase-module_linkL__3EsMl svg{min-width:var(--spacing-layout-m)}.LinkBase-module_content__Y4oQw.LinkBase-module_withLeftIcon__z1QvX{flex:1 1 auto!important}.LinkBase-module_content__Y4oQw svg{position:relative;top:2px}.LinkBase-module_externalWrapper__0R9V1{white-space:nowrap}";
188
+ var styles$r = {"link":"LinkBase-module_link__djxNm LinkBase_hds-link__4Kjdj","icon":"LinkBase-module_icon__-LloU LinkBase_icon__neXZz","iconLeft":"LinkBase-module_iconLeft__Joa9y LinkBase_hds-icon-left__e0wBz","iconRight":"LinkBase-module_iconRight__KjMW3 LinkBase_hds-icon-right__AJnk1","verticalAlignSmallOrMediumIcon":"LinkBase-module_verticalAlignSmallOrMediumIcon__0SjrX LinkBase_vertical-align-small-or-medium-icon__wxjmq","verticalAlignBigIcon":"LinkBase-module_verticalAlignBigIcon__C4EBu LinkBase_vertical-align-big-icon__6npfv","disableVisitedStyles":"LinkBase-module_disableVisitedStyles__S6UjE LinkBase_hds-link--disable-visited-styles__cQcea","linkS":"LinkBase-module_linkS__NdYSG LinkBase_hds-link--small__ZK-yV","linkM":"LinkBase-module_linkM__Hz4Zc LinkBase_hds-link--medium__bHZ5t","linkL":"LinkBase-module_linkL__3EsMl LinkBase_hds-link--large__Cnd9b","content":"LinkBase-module_content__Y4oQw","withLeftIcon":"LinkBase-module_withLeftIcon__z1QvX","externalWrapper":"LinkBase-module_externalWrapper__0R9V1"};
189
+ styleInject(css_248z$s);
190
+
191
+ var _excluded$c = ["children", "className", "disableVisitedStyles", "external", "showExternalIcon", "href", "iconLeft", "iconRight", "openInNewTab", "openInExternalDomainAriaLabel", "openInNewTabAriaLabel", "style", "size", "inlineIcons"];
192
+ var mapLinkSizeToExternalIconSize = {
193
+ L: hdsReact.IconSize.Large,
194
+ M: hdsReact.IconSize.Small,
195
+ S: hdsReact.IconSize.ExtraSmall
196
+ };
197
+ var hasChildren = function hasChildren(element) {
198
+ return /*#__PURE__*/React.isValidElement(element) && Boolean(element.props.children);
199
+ };
200
+ var childToString = function childToString(child) {
201
+ if (typeof child === 'undefined' || child === null || typeof child === 'boolean') {
202
+ return '';
203
+ }
204
+ if (JSON.stringify(child) === '{}') {
205
+ return '';
206
+ }
207
+ return child.toString();
208
+ };
209
+ var _getTextFromReactChildren = function getTextFromReactChildren(children) {
210
+ if (!(children instanceof Array) && ! /*#__PURE__*/React.isValidElement(children)) {
211
+ return childToString(children);
212
+ }
213
+ return React.Children.toArray(children).reduce(function (text, child) {
214
+ var newText = '';
215
+ if (/*#__PURE__*/React.isValidElement(child) && hasChildren(child)) {
216
+ newText = _getTextFromReactChildren(child.props.children);
217
+ } else if (/*#__PURE__*/React.isValidElement(child) && !hasChildren(child)) {
218
+ newText = '';
219
+ } else {
220
+ newText = childToString(child);
221
+ }
222
+ return text.concat(newText);
223
+ }, '');
224
+ };
225
+ function LinkBase(_ref, ref) {
226
+ var children = _ref.children,
227
+ className = _ref.className,
228
+ _ref$disableVisitedSt = _ref.disableVisitedStyles,
229
+ disableVisitedStyles = _ref$disableVisitedSt === void 0 ? true : _ref$disableVisitedSt,
230
+ _ref$external = _ref.external,
231
+ external = _ref$external === void 0 ? false : _ref$external,
232
+ _ref$showExternalIcon = _ref.showExternalIcon,
233
+ showExternalIcon = _ref$showExternalIcon === void 0 ? true : _ref$showExternalIcon,
234
+ href = _ref.href,
235
+ iconLeft = _ref.iconLeft,
236
+ iconRight = _ref.iconRight,
237
+ _ref$openInNewTab = _ref.openInNewTab,
238
+ openInNewTab = _ref$openInNewTab === void 0 ? false : _ref$openInNewTab,
239
+ openInExternalDomainAriaLabel = _ref.openInExternalDomainAriaLabel,
240
+ openInNewTabAriaLabel = _ref.openInNewTabAriaLabel,
241
+ _ref$style = _ref.style,
242
+ style = _ref$style === void 0 ? {} : _ref$style,
243
+ _ref$size = _ref.size,
244
+ size = _ref$size === void 0 ? 'M' : _ref$size,
245
+ _ref$inlineIcons = _ref.inlineIcons,
246
+ inlineIcons = _ref$inlineIcons === void 0 ? false : _ref$inlineIcons,
247
+ rest = defaultConfig._objectWithoutProperties(_ref, _excluded$c);
248
+ var composeAriaLabel = function composeAriaLabel() {
249
+ var childrenText = _getTextFromReactChildren(children);
250
+ var newTabText = openInNewTab ? openInNewTabAriaLabel || 'Avautuu uudessa välilehdessä.' : '';
251
+ var externalText = external ? openInExternalDomainAriaLabel || 'Siirtyy toiseen sivustoon.' : '';
252
+ if (childrenText && childrenText.slice(-1) !== '.' && (newTabText || externalText)) {
253
+ childrenText = "".concat(childrenText, ".");
254
+ }
255
+ var label = [childrenText, newTabText, externalText].filter(function (text) {
256
+ return text;
257
+ }).join(' ');
258
+ if (!label.trim()) {
259
+ return undefined;
260
+ }
261
+ return label;
262
+ };
263
+ var ZERO_WIDTH_NO_BREAK_SPACE = "\uFEFF";
264
+ var leftIcon = React.useMemo(function () {
265
+ return iconLeft && (/*#__PURE__*/React.createElement("span", {
266
+ className: styles$r.iconLeft,
267
+ "aria-hidden": "true"
268
+ }, inlineIcons && ZERO_WIDTH_NO_BREAK_SPACE, iconLeft)) || null;
269
+ }, [iconLeft, inlineIcons]);
270
+ var externalIcon = React.useMemo(function () {
271
+ return showExternalIcon && external && (/*#__PURE__*/React.createElement("span", {
272
+ className: styles$r.externalWrapper
273
+ }, inlineIcons && ZERO_WIDTH_NO_BREAK_SPACE, /*#__PURE__*/React.createElement(hdsReact.IconLinkExternal, {
274
+ size: mapLinkSizeToExternalIconSize[size],
275
+ className: classNames(styles$r.icon, size === 'L' ? styles$r.verticalAlignBigIcon : styles$r.verticalAlignSmallOrMediumIcon),
276
+ "aria-hidden": true
277
+ }))) || null;
278
+ }, [showExternalIcon, external, inlineIcons, size]);
279
+ var rightIcon = React.useMemo(function () {
280
+ return iconRight && (/*#__PURE__*/React.createElement("span", {
281
+ className: classNames(styles$r.iconRight, size === 'L' ? styles$r.verticalAlignBigIcon : styles$r.verticalAlignSmallOrMediumIcon),
282
+ "aria-hidden": "true"
283
+ }, inlineIcons && ZERO_WIDTH_NO_BREAK_SPACE, iconRight)) || null;
284
+ }, [iconRight, inlineIcons, size]);
285
+ return /*#__PURE__*/React.createElement("a", defaultConfig._objectSpread2({
286
+ className: classNames(styles$r.link, styles$r["link".concat(size)], disableVisitedStyles ? styles$r.disableVisitedStyles : '', className),
287
+ href: href,
288
+ style: style,
289
+ ref: ref,
290
+ target: openInNewTab ? '_blank' : undefined,
291
+ rel: openInNewTab ? 'noopener noreferrer' : undefined,
292
+ "aria-label": composeAriaLabel()
293
+ }, rest), !inlineIcons && leftIcon, /*#__PURE__*/React.createElement("span", {
294
+ className: classNames(styles$r.content, iconLeft && styles$r.withLeftIcon)
295
+ }, inlineIcons && leftIcon, children, inlineIcons && externalIcon, inlineIcons && rightIcon), !inlineIcons && externalIcon, !inlineIcons && rightIcon);
296
+ }
297
+ var LinkBase$1 = /*#__PURE__*/React.forwardRef(LinkBase);
298
+
299
+ var css_248z$r = ".Link-module_link__ysKHd,.Link-module_link__ysKHd:visited{color:var(--color-black-90)}.Link-module_link__ysKHd:visited svg g path{fill:var(--color-black-90)}.Link-module_secondaryLink__puDIj{font-size:1.125rem;font-weight:700;text-decoration:none}.Link-module_secondaryLink__puDIj,.Link-module_secondaryLink__puDIj:visited{color:var(--color-coat-of-arms-dark)}.Link-module_secondaryLink__puDIj:hover{text-decoration:underline}.Link-module_secondaryLink__puDIj:visited svg g path{fill:var(--color-coat-of-arms-dark)}.Link-module_imgLink__UbBZY img{display:block}";
300
+ var styles$q = {"link":"Link-module_link__ysKHd","secondaryLink":"Link-module_secondaryLink__puDIj","imgLink":"Link-module_imgLink__UbBZY"};
301
+ styleInject(css_248z$r);
302
+
303
+ /**
304
+ * Gets the string type of the component or core html (JSX) element.
305
+ * React Fragments will return type 'react.fragment'.
306
+ * Priority will be given to the prop '__TYPE'.
307
+ */
308
+ var typeOfComponent = function typeOfComponent(component) {
309
+ var _component$props, _component$type;
310
+ return (
311
+ // eslint-disable-next-line no-underscore-dangle
312
+ (component === null || component === void 0 || (_component$props = component.props) === null || _component$props === void 0 ? void 0 : _component$props.__TYPE) || (component === null || component === void 0 || (_component$type = component.type) === null || _component$type === void 0 ? void 0 : _component$type.toString().replace('Symbol(react.fragment)', 'react.fragment')) || undefined
313
+ );
314
+ };
315
+ /**
316
+ * Gets all children by specified type.
317
+ * This function will check the prop '__TYPE' first
318
+ * and then the 'type' string to match core html elements.
319
+ * To find a React Fragment, search for type 'react.fragment'.
320
+ *
321
+ * @example
322
+ * // Finds all occurrences of ToDo (custom component), div, and React Fragment
323
+ * getChildrenByType(children, ['ToDo', 'div', 'react.fragment']);
324
+ */
325
+ var getChildrenByType = function getChildrenByType(children, types) {
326
+ return React.Children.toArray(children).filter(function (child) {
327
+ return /*#__PURE__*/React.isValidElement(child) && types.indexOf(typeOfComponent(child)) !== -1;
328
+ });
329
+ };
330
+
331
+ /**
332
+ * Recursively loops through the children of a ReactNode
333
+ * and runs the given function from arguments to the every child.
334
+ *
335
+ * If the child is a ReactElement and it has children,
336
+ * the children will be recursively called with the given function.
337
+ *
338
+ * If the child is not a valid ReactElement,
339
+ * which would mean that it is for example a string content of an HTML-element,
340
+ * it is directly returned.
341
+ *
342
+ * See the unit tests for some examples.
343
+ */
344
+ var _recursiveMap = function recursiveMap(children, fn) {
345
+ var _React$Children$map;
346
+ return (_React$Children$map = React.Children.map(children, function (child) {
347
+ if (! /*#__PURE__*/React.isValidElement(child)) {
348
+ // Strings inside HTML elements, etc.
349
+ return child;
350
+ }
351
+ if (child.props.children) {
352
+ // Make a recursive call to find the last node
353
+ return fn(/*#__PURE__*/React.cloneElement(child, {
354
+ children: _recursiveMap(child.props.children, fn)
355
+ }));
356
+ }
357
+ // Should never(?) come here
358
+ return fn(child);
359
+ })) === null || _React$Children$map === void 0 ? void 0 : _React$Children$map.flat();
360
+ };
361
+
362
+ /**
363
+ * Find all elements of defined types recursively from a ReactNode.
364
+ * @returns a list of elements of specified types that could be found from inside the ReactNode.
365
+ */
366
+ var findAllElementsOfType = function findAllElementsOfType(children, types) {
367
+ var elementsOfType = [];
368
+ _recursiveMap(children, function (child) {
369
+ elementsOfType.push(getChildrenByType(child, types));
370
+ return child;
371
+ });
372
+ return elementsOfType.flat();
373
+ };
374
+
375
+ var _excluded$b = ["href", "children", "showExternalIcon", "openInNewTab", "className", "size", "iconRight", "inlineIcons"];
376
+ // TODO: LinkBase component should be replaced with hds Link, when all features are supported
377
+ // issue is created to hds: https://github.com/City-of-Helsinki/helsinki-design-system/issues/808
378
+ function Link(_ref) {
379
+ var _ref2;
380
+ var _ref$href = _ref.href,
381
+ href = _ref$href === void 0 ? '#' : _ref$href,
382
+ children = _ref.children,
383
+ forceShowExternalIcon = _ref.showExternalIcon,
384
+ forceOpenInNewTab = _ref.openInNewTab,
385
+ className = _ref.className,
386
+ _ref$size = _ref.size,
387
+ size = _ref$size === void 0 ? 'M' : _ref$size,
388
+ iconRight = _ref.iconRight,
389
+ inlineIcons = _ref.inlineIcons,
390
+ delegatedProps = defaultConfig._objectWithoutProperties(_ref, _excluded$b);
391
+ var _useConfig = useConfig(),
392
+ getIsHrefExternal = _useConfig.utils.getIsHrefExternal,
393
+ RoutedLink = _useConfig.components.Link,
394
+ _useConfig$copy = _useConfig.copy,
395
+ openInExternalDomainAriaLabel = _useConfig$copy.openInExternalDomainAriaLabel,
396
+ openInNewTabAriaLabel = _useConfig$copy.openInNewTabAriaLabel;
397
+ var isEmail = (href === null || href === void 0 ? void 0 : href.startsWith('mailto:')) || undefined;
398
+ var isPhone = (href === null || href === void 0 ? void 0 : href.startsWith('tel:')) || undefined;
399
+ var isExternal = getIsHrefExternal(href) && !isEmail && !isPhone;
400
+ var iconSize = size === 'S' ? hdsReact.IconSize.ExtraSmall : hdsReact.IconSize.Small;
401
+ var hasImageInLink = findAllElementsOfType(children, ['img']).length > 0;
402
+ // The external links should always open in a new tab.
403
+ var openInNewTab = forceOpenInNewTab !== null && forceOpenInNewTab !== void 0 ? forceOpenInNewTab : isExternal;
404
+ // If the link contains an image, the external icon should be hidden by default,
405
+ // because an icon next to image does not look good.
406
+ var showExternalIcon = forceShowExternalIcon !== null && forceShowExternalIcon !== void 0 ? forceShowExternalIcon : isExternal && !hasImageInLink;
407
+ var linkComponent = /*#__PURE__*/React.createElement(LinkBase$1, defaultConfig._objectSpread2(defaultConfig._objectSpread2({
408
+ size: size
409
+ }, delegatedProps), {}, {
410
+ href: href,
411
+ openInNewTab: openInNewTab,
412
+ external: isExternal,
413
+ showExternalIcon: showExternalIcon,
414
+ className: classNames(styles$q.link, className, defaultConfig._defineProperty({}, styles$q.imgLink, hasImageInLink)),
415
+ openInExternalDomainAriaLabel: openInExternalDomainAriaLabel,
416
+ openInNewTabAriaLabel: openInNewTabAriaLabel,
417
+ iconRight: (_ref2 = iconRight !== null && iconRight !== void 0 ? iconRight : isEmail && /*#__PURE__*/React.createElement(hdsReact.IconEnvelope, {
418
+ size: iconSize,
419
+ "aria-hidden": true
420
+ })) !== null && _ref2 !== void 0 ? _ref2 : isPhone && /*#__PURE__*/React.createElement(hdsReact.IconPhone, {
421
+ size: iconSize,
422
+ "aria-hidden": true
423
+ }),
424
+ inlineIcons: inlineIcons,
425
+ disableVisitedStyles: true
426
+ }), children !== null && children !== void 0 ? children : '');
427
+ return isExternal || typeof RoutedLink === 'undefined' ? (
428
+ /*#__PURE__*/
429
+ // ts(2786) - Type 'Element | { linkComponent: Element; }' is not assignable to type 'ReactNode'.
430
+ // eslint-disable-next-line react/jsx-no-useless-fragment
431
+ React.createElement(React.Fragment, null, linkComponent)) : (/*#__PURE__*/React.createElement(RoutedLink, {
432
+ href: href
433
+ }, linkComponent));
434
+ }
435
+
436
+ var css_248z$q = ".LinkBox-module_linkBoxWrapper__s4W19{cursor:pointer;height:100%;position:relative;width:100%}.LinkBox-module_linkBoxWrapper__s4W19.LinkBox-module_flex__D0Uzu{display:flex}.LinkBox-module_linkBoxWrapper__s4W19 a:focus{border:2px solid var(--color-black-90);outline:none}.LinkBox-module_linkBox__Yy5I0{display:inline-block;height:100%;left:0;position:absolute;top:0;width:100%}";
437
+ var styles$p = {"linkBoxWrapper":"LinkBox-module_linkBoxWrapper__s4W19","flex":"LinkBox-module_flex__D0Uzu","linkBox":"LinkBox-module_linkBox__Yy5I0"};
438
+ styleInject(css_248z$q);
439
+
440
+ var _excluded$a = ["children", "flex"];
441
+ // TODO: this component should be replaced with hds one, when all layouts and directions are supported
442
+ // issue is created to hds: https://github.com/City-of-Helsinki/helsinki-design-system/issues/809
443
+ function LinkBox(_ref) {
444
+ var children = _ref.children,
445
+ flex = _ref.flex,
446
+ delegatedProps = defaultConfig._objectWithoutProperties(_ref, _excluded$a);
447
+ return /*#__PURE__*/React.createElement("div", {
448
+ className: classNames(styles$p.linkBoxWrapper, flex && styles$p.flex)
449
+ }, children, /*#__PURE__*/React.createElement(Link, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, delegatedProps), {}, {
450
+ className: styles$p.linkBox,
451
+ showExternalIcon: false
452
+ })));
453
+ }
454
+
455
+ var MAIN_CONTENT_ID = 'main-content';
456
+ var TOP_LEVEL_MENU_ITEM_PARENT_ID = 'null_parent_id';
457
+
458
+ /** Default order for sorting languages. */
459
+ var LANGUAGE_CODE_ORDINAL_NUMBER = defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty({}, defaultConfig.LanguageCodeEnum.Fi, 1), defaultConfig.LanguageCodeEnum.Sv, 2), defaultConfig.LanguageCodeEnum.En, 3);
460
+
461
+ /**
462
+ * Find language from language list by language code.
463
+ * @param {Language[]} languages - List of languages
464
+ * @param {string} languageCode - Language code
465
+ * @returns {Language | undefined} Language from given language list with the given
466
+ * language code or undefined if not found
467
+ */
468
+ function findLanguage(languages, languageCode) {
469
+ return languages.find(function (language) {
470
+ var _language$code;
471
+ return ((_language$code = language.code) === null || _language$code === void 0 ? void 0 : _language$code.toLowerCase()) === languageCode.toLowerCase();
472
+ });
473
+ }
474
+
475
+ /** Sorting function for NonEmptyLanguage elements. */
476
+ var languageSorter = function languageSorter(left, right) {
477
+ return Math.sign(LANGUAGE_CODE_ORDINAL_NUMBER[left.code] - LANGUAGE_CODE_ORDINAL_NUMBER[right.code]);
478
+ };
479
+
480
+ /** Map a NonEmptyLanguage to a primary LanguageOption. */
481
+ var toPrimaryLanguageOption = function toPrimaryLanguageOption(language) {
482
+ var _language$name, _language$code$toLowe, _language$code;
483
+ return {
484
+ label: (_language$name = language.name) !== null && _language$name !== void 0 ? _language$name : '',
485
+ value: (_language$code$toLowe = (_language$code = language.code) === null || _language$code === void 0 ? void 0 : _language$code.toLowerCase()) !== null && _language$code$toLowe !== void 0 ? _language$code$toLowe : '',
486
+ isPrimary: true
487
+ };
488
+ };
489
+
490
+ var isNonEmptyLanguage = function isNonEmptyLanguage(language) {
491
+ return Boolean((language === null || language === void 0 ? void 0 : language.name) && (language === null || language === void 0 ? void 0 : language.code));
492
+ };
493
+
494
+ var getTranslationWithFallback = function getTranslationWithFallback(config, field, language) {
495
+ var _config$copy$field;
496
+ return (_config$copy$field = config.copy[field]) !== null && _config$copy$field !== void 0 ? _config$copy$field : config.fallbackTranslations[field][language];
497
+ };
498
+
499
+ function useTranslationWithFallback() {
500
+ var config = useConfig();
501
+ var currentLanguageCode = config.currentLanguageCode;
502
+ var t = function t(field) {
503
+ return getTranslationWithFallback(config, field, currentLanguageCode);
504
+ };
505
+ return {
506
+ t: t
507
+ };
508
+ }
509
+
510
+ /**
511
+ * Create a menu link element
512
+ * @param {MenuLinkProps} props - Properties, if menuItemChildren is undefined then the
513
+ * created element will not have dropdown links
514
+ * @return {React.JSX.Element} Header.Link element
515
+ */
516
+ function createMenuLinkElement(props) {
517
+ var _navigationItem$title, _navigationItem$label, _getIsItemActive, _menuItemChildren$nav, _menuItemChildren$nav2;
518
+ var menuItemChildren = props.menuItemChildren,
519
+ navigationItem = props.navigationItem,
520
+ getRoutedInternalHref = props.getRoutedInternalHref,
521
+ getIsItemActive = props.getIsItemActive,
522
+ A = props.A;
523
+ return /*#__PURE__*/React.createElement(hdsReact.Header.Link, {
524
+ as: A,
525
+ id: navigationItem.id,
526
+ key: navigationItem.id,
527
+ title: (_navigationItem$title = navigationItem.title) !== null && _navigationItem$title !== void 0 ? _navigationItem$title : undefined,
528
+ label: (_navigationItem$label = navigationItem.label) !== null && _navigationItem$label !== void 0 ? _navigationItem$label : '',
529
+ href: getRoutedInternalHref(navigationItem.path),
530
+ active: (_getIsItemActive = getIsItemActive === null || getIsItemActive === void 0 ? void 0 : getIsItemActive(navigationItem)) !== null && _getIsItemActive !== void 0 ? _getIsItemActive : false,
531
+ dropdownLinks: (menuItemChildren === null || menuItemChildren === void 0 || (_menuItemChildren$nav = menuItemChildren[navigationItem.id]) === null || _menuItemChildren$nav === void 0 ? void 0 : _menuItemChildren$nav.length) && ((_menuItemChildren$nav2 = menuItemChildren[navigationItem.id]) === null || _menuItemChildren$nav2 === void 0 ? void 0 : _menuItemChildren$nav2.map(function (childNavigationItem) {
532
+ return createMenuLinkElement(defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, props), {}, {
533
+ navigationItem: childNavigationItem
534
+ }));
535
+ })) || undefined
536
+ });
537
+ }
538
+ function Navigation(_ref) {
539
+ var _menu$menuItems$nodes, _menu$menuItems, _currentLanguage$code, _universalBarMenu$men, _menuItemChildren$TOP;
540
+ var menu = _ref.menu,
541
+ universalBarMenu = _ref.universalBarMenu,
542
+ languages = _ref.languages,
543
+ className = _ref.className,
544
+ userNavigation = _ref.userNavigation,
545
+ onTitleClick = _ref.onTitleClick,
546
+ getPathnameForLanguage = _ref.getPathnameForLanguage,
547
+ getIsItemActive = _ref.getIsItemActive;
548
+ var _useConfig = useConfig(),
549
+ siteName = _useConfig.siteName,
550
+ currentLanguageCode = _useConfig.currentLanguageCode,
551
+ _useConfig$copy = _useConfig.copy,
552
+ menuButtonLabel = _useConfig$copy.menuButtonLabel,
553
+ menuToggleAriaLabel = _useConfig$copy.menuToggleAriaLabel,
554
+ skipToContentLabel = _useConfig$copy.skipToContentLabel,
555
+ A = _useConfig.components.A,
556
+ mainContentId = _useConfig.mainContentId,
557
+ _useConfig$utils = _useConfig.utils,
558
+ getRoutedInternalHref = _useConfig$utils.getRoutedInternalHref,
559
+ redirectToUrl = _useConfig$utils.redirectToUrl;
560
+ var languagesData = languages || [];
561
+ var currentLanguage = findLanguage(languagesData, currentLanguageCode);
562
+ var _useTranslationWithFa = useTranslationWithFallback(),
563
+ t = _useTranslationWithFa.t;
564
+ var languageOptions = languagesData.filter(isNonEmptyLanguage).sort(languageSorter).map(toPrimaryLanguageOption);
565
+ var onDidChangeLanguage = function onDidChangeLanguage(newLanguageCode) {
566
+ var newLanguage = findLanguage(languagesData, newLanguageCode);
567
+ var url = newLanguage && currentLanguage ? getPathnameForLanguage(newLanguage, currentLanguage, languagesData) : undefined;
568
+ if (url) {
569
+ redirectToUrl(url);
570
+ }
571
+ };
572
+ var menuItemChildren = defaultConfig.groupBy((_menu$menuItems$nodes = menu === null || menu === void 0 || (_menu$menuItems = menu.menuItems) === null || _menu$menuItems === void 0 ? void 0 : _menu$menuItems.nodes) !== null && _menu$menuItems$nodes !== void 0 ? _menu$menuItems$nodes : [], function (menuItem) {
573
+ var _menuItem$parentId;
574
+ return (_menuItem$parentId = menuItem.parentId) !== null && _menuItem$parentId !== void 0 ? _menuItem$parentId : TOP_LEVEL_MENU_ITEM_PARENT_ID;
575
+ });
576
+ var sharedMenuLinkProps = {
577
+ getRoutedInternalHref: getRoutedInternalHref,
578
+ getIsItemActive: getIsItemActive,
579
+ A: A
580
+ };
581
+ var overrideHeaderMaxWidth = {
582
+ '--header-max-width': 'var(--breakpoint-xl)' // Would be 1440px if not overridden
583
+ };
584
+ /** adding key property allows to update the Header context with dynamic data (rerender the component) so the languages appear when data loaded
585
+ * The fix is usggested by HDS team, they have a ticket about that issue
586
+ * https://helsinkisolutionoffice.atlassian.net/browse/HDS-2174
587
+ */
588
+ return /*#__PURE__*/React.createElement(hdsReact.Header, {
589
+ key: currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.code,
590
+ onDidChangeLanguage: onDidChangeLanguage,
591
+ defaultLanguage: currentLanguage === null || currentLanguage === void 0 || (_currentLanguage$code = currentLanguage.code) === null || _currentLanguage$code === void 0 ? void 0 : _currentLanguage$code.toLowerCase(),
592
+ languages: languageOptions,
593
+ className: className,
594
+ style:
595
+ /* HDS v3.4–v3.7 has broken theme support with next.js SSR & hydration.
596
+ * FIXME: Replace with `theme={overrideHeaderMaxWidth}` when HDS theme support is fixed.
597
+ */
598
+ overrideHeaderMaxWidth
599
+ }, /*#__PURE__*/React.createElement(hdsReact.Header.SkipLink, {
600
+ skipTo: "#".concat(mainContentId !== null && mainContentId !== void 0 ? mainContentId : MAIN_CONTENT_ID),
601
+ label: skipToContentLabel
602
+ }), universalBarMenu && (/*#__PURE__*/React.createElement(hdsReact.Header.UniversalBar, {
603
+ primaryLinkText: t('headerUniversalBarPrimaryLinkText'),
604
+ primaryLinkHref: t('headerUniversalBarPrimaryLinkHref')
605
+ }, universalBarMenu === null || universalBarMenu === void 0 || (_universalBarMenu$men = universalBarMenu.menuItems) === null || _universalBarMenu$men === void 0 || (_universalBarMenu$men = _universalBarMenu$men.nodes) === null || _universalBarMenu$men === void 0 ? void 0 : _universalBarMenu$men.map(function (navigationItem) {
606
+ return createMenuLinkElement(defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, sharedMenuLinkProps), {}, {
607
+ navigationItem: navigationItem
608
+ }));
609
+ }))), /*#__PURE__*/React.createElement(hdsReact.Header.ActionBar, {
610
+ titleHref: "#",
611
+ logoHref: "#",
612
+ menuButtonLabel: menuButtonLabel,
613
+ menuButtonAriaLabel: menuToggleAriaLabel,
614
+ title: siteName,
615
+ onTitleClick: onTitleClick,
616
+ onLogoClick: onTitleClick,
617
+ frontPageLabel: siteName,
618
+ logo: /*#__PURE__*/React.createElement(hdsReact.Logo, {
619
+ size: hdsReact.LogoSize.Large,
620
+ src: t('headerActionBarLogoSrc'),
621
+ alt: t('headerActionBarLogoAlt')
622
+ }),
623
+ logoAriaLabel: t('headerActionBarLogoAriaLabel')
624
+ }, /*#__PURE__*/React.createElement(hdsReact.Header.LanguageSelector, null), userNavigation), /*#__PURE__*/React.createElement(hdsReact.Header.NavigationMenu, null, (_menuItemChildren$TOP = menuItemChildren[TOP_LEVEL_MENU_ITEM_PARENT_ID]) === null || _menuItemChildren$TOP === void 0 ? void 0 : _menuItemChildren$TOP.map(function (navigationItem) {
625
+ return createMenuLinkElement(defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, sharedMenuLinkProps), {}, {
626
+ menuItemChildren: menuItemChildren,
627
+ navigationItem: navigationItem
628
+ }));
629
+ })));
630
+ }
631
+
632
+ // Utility function to check if we are in a browser environment
633
+ var isBrowser = function isBrowser() {
634
+ return typeof window !== 'undefined';
635
+ };
636
+ function makeLocaleStorageValue(key, options) {
637
+ var _ref = {},
638
+ _ref$serializer = _ref.serializer,
639
+ serialize = _ref$serializer === void 0 ? JSON.stringify : _ref$serializer,
640
+ _ref$deserializer = _ref.deserializer,
641
+ deserialize = _ref$deserializer === void 0 ? JSON.parse : _ref$deserializer;
642
+ return function useLocaleStorageValue() {
643
+ var readValueInLocalStorage = function readValueInLocalStorage() {
644
+ if (!isBrowser()) {
645
+ return null;
646
+ }
647
+ try {
648
+ var storedValue = localStorage.getItem(key);
649
+ return storedValue ? deserialize(storedValue) : null;
650
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
651
+ } catch (_) {
652
+ // eslint-disable-next-line no-console
653
+ console.error('Failed to parse value in localStorage', {
654
+ key: key
655
+ });
656
+ }
657
+ return null;
658
+ };
659
+ var _useState = React.useState(function () {
660
+ return readValueInLocalStorage();
661
+ }),
662
+ _useState2 = defaultConfig._slicedToArray(_useState, 2),
663
+ stateValue = _useState2[0],
664
+ setStateValue = _useState2[1];
665
+ var storeValue = React.useCallback(function (value) {
666
+ if (!isBrowser()) {
667
+ return;
668
+ }
669
+ try {
670
+ if (value) {
671
+ setStateValue(value);
672
+ localStorage.setItem(key, serialize(value));
673
+ } else {
674
+ setStateValue(null);
675
+ localStorage.removeItem(key);
676
+ }
677
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
678
+ } catch (_) {
679
+ // eslint-disable-next-line no-console
680
+ console.error('Failed to save value into localStorage', {
681
+ key: key
682
+ });
683
+ }
684
+ }, []);
685
+ return [stateValue, storeValue];
686
+ };
687
+ }
688
+
689
+ var css_248z$p = ".htmlToReact-module_hds-table__xJuhb{--content-background-color:var(--color-white);border-collapse:collapse;line-height:1.5;width:100%}.htmlToReact-module_hds-table-container__JM0dy{overflow-x:auto}.htmlToReact-module_hds-table-container__JM0dy:focus{outline:var(--color-focus-outline) 3px solid}.htmlToReact-module_hds-table__xJuhb th{border-bottom:1px solid var(--color-black-20);font-size:var(--fontsize-body-m);font-weight:500;line-height:var(--lineheight-l);padding:var(--spacing-xs) var(--spacing-m);text-align:left;white-space:nowrap}.htmlToReact-module_hds-table__content__lQ2fX tr td{background-color:var(--content-background-color);border-bottom:1px solid var(--color-black-50);color:var(--color-black-90);font-size:var(--fontsize-body-m);font-weight:400;line-height:24px;padding:var(--spacing-xs) var(--spacing-m)}.htmlToReact-module_hds-table__header-row__F7jA7{background-color:var(--header-background-color)}.htmlToReact-module_hds-table__content--text-align-td-right__PEdp6 td{text-align:right}.htmlToReact-module_hds-table__caption__kXj23{font-size:var(--fontsize-body-l);font-weight:400;line-height:var(--lineheight-l);margin-bottom:var(--spacing-s);text-align:left}.htmlToReact-module_hds-table--dark__dJ9ua{--header-background-color:var(--color-bus)}.htmlToReact-module_hds-table__xJuhb.htmlToReact-module_hds-table--dark__dJ9ua th{color:var(--color-white)}.htmlToReact-module_hds-table--light__3P2Wa{--header-background-color:var(--color-silver)}.htmlToReact-module_hds-table__xJuhb.htmlToReact-module_hds-table--light__3P2Wa th{color:var(--color-black-90)}.htmlToReact-module_hds-table--with-vertical-lines__naIak .htmlToReact-module_hds-table__content__lQ2fX{border-left:1px solid var(--color-black-50)}.htmlToReact-module_hds-table--with-vertical-lines__naIak .htmlToReact-module_hds-table__content__lQ2fX td{border-right:1px solid var(--color-black-50)}.htmlToReact-module_hds-table--with-vertical-lines__naIak .htmlToReact-module_hds-table__header-row__F7jA7{border-left:1px solid var(--header-background-color);border-right:1px solid var(--header-background-color)}.htmlToReact-module_hds-table--dense__U8ZWg.htmlToReact-module_hds-table__xJuhb th{font-size:var(--fontsize-body-s);font-weight:700;padding:9px var(--spacing-s)}.htmlToReact-module_hds-table--dense__U8ZWg .htmlToReact-module_hds-table__content__lQ2fX tr td{font-size:var(--fontsize-body-s);padding:9px var(--spacing-s)}.htmlToReact-module_hds-table--dense__U8ZWg .htmlToReact-module_hds-table__caption__kXj23{font-size:var(--fontsize-body-m);line-height:var(--lineheight-l);margin-bottom:var(--spacing-xs)}.htmlToReact-module_hds-table--zebra__kwUTs .htmlToReact-module_hds-table__content__lQ2fX tr td,.htmlToReact-module_striped-figure__RyQ-g table .htmlToReact-module_hds-table__content__lQ2fX tr td{border-bottom:none}.htmlToReact-module_hds-table--zebra__kwUTs .htmlToReact-module_hds-table__content__lQ2fX tr:nth-child(2n) td,.htmlToReact-module_striped-figure__RyQ-g table .htmlToReact-module_hds-table__content__lQ2fX tr:nth-child(2n) td{background-color:var(--color-black-10)}.htmlToReact-module_hds-table__vertical-header-column__sEyrZ{background-color:var(--header-background-color)}.htmlToReact-module_hds-table--with-vertical-header__WeYh9.htmlToReact-module_hds-table--with-vertical-lines__naIak .htmlToReact-module_hds-table__content__lQ2fX,.htmlToReact-module_hds-table--with-vertical-lines__naIak.htmlToReact-module_hds-table--with-vertical-header__WeYh9 .htmlToReact-module_hds-table__header-row__F7jA7{border-left:none}.htmlToReact-module_hds-table--text-align-right__wLcZ8{text-align:right}@media (max-width:767px){.htmlToReact-module_hds-table__xJuhb th{font-weight:700}.htmlToReact-module_hds-table__content__lQ2fX tr td,.htmlToReact-module_hds-table__xJuhb th{font-size:var(--fontsize-body-s);padding:9px var(--spacing-s)}.htmlToReact-module_hds-table__caption__kXj23{font-size:var(--fontsize-heading-xxs);letter-spacing:.2px;line-height:var(--lineheight-l);margin-bottom:var(--spacing-xs)}}";
690
+ var styles$o = {"hds-table":"htmlToReact-module_hds-table__xJuhb","hds-table-container":"htmlToReact-module_hds-table-container__JM0dy","hds-table__content":"htmlToReact-module_hds-table__content__lQ2fX","hds-table__header-row":"htmlToReact-module_hds-table__header-row__F7jA7","hds-table__content--text-align-td-right":"htmlToReact-module_hds-table__content--text-align-td-right__PEdp6","hds-table__caption":"htmlToReact-module_hds-table__caption__kXj23","hds-table--dark":"htmlToReact-module_hds-table--dark__dJ9ua","hds-table--light":"htmlToReact-module_hds-table--light__3P2Wa","hds-table--with-vertical-lines":"htmlToReact-module_hds-table--with-vertical-lines__naIak","hds-table--dense":"htmlToReact-module_hds-table--dense__U8ZWg","hds-table--zebra":"htmlToReact-module_hds-table--zebra__kwUTs","striped-figure":"htmlToReact-module_striped-figure__RyQ-g","hds-table__vertical-header-column":"htmlToReact-module_hds-table__vertical-header-column__sEyrZ","hds-table--with-vertical-header":"htmlToReact-module_hds-table--with-vertical-header__WeYh9","hds-table--text-align-right":"htmlToReact-module_hds-table--text-align-right__wLcZ8"};
691
+ styleInject(css_248z$p);
692
+
693
+ var css_248z$o = ".text-module_text__grNmV{color:#1a1a1a}.text-module_h1__OQ2vY{font-size:1.5rem;font-weight:500;line-height:1.2;margin:1rem 0}@media (min-width:576px){.text-module_h1__OQ2vY{margin:2rem 0}}.text-module_h2__-36q9,.text-module_h3__4MGCd{font-size:1.5rem;font-weight:500;margin:0 0 1rem}.text-module_h4__xfIOa{font-size:1.25rem;font-weight:500;margin:0 0 1rem}.text-module_h5__MCuak{font-size:1.125rem;font-weight:500;margin:0 0 1rem}.text-module_body-l__XfaGa{font-size:1.125rem;line-height:1.5;margin:0 0 1.5rem;white-space:pre-wrap}.text-module_body-l__XfaGa strong{font-size:1.125rem;font-weight:500;letter-spacing:.2px}.text-module_body__HIBzp{font-size:1rem;white-space:pre-wrap}.text-module_body-xl__JlH4q{font-size:1.25rem;white-space:pre-wrap}";
694
+ var styles$n = {"text":"text-module_text__grNmV","h1":"text-module_h1__OQ2vY","h2":"text-module_h2__-36q9","h3":"text-module_h3__4MGCd","h4":"text-module_h4__xfIOa","h5":"text-module_h5__MCuak","body-l":"text-module_body-l__XfaGa","body":"text-module_body__HIBzp","body-xl":"text-module_body-xl__JlH4q"};
695
+ styleInject(css_248z$o);
696
+
697
+ var _excluded$9 = ["as", "variant", "children", "className"];
698
+ function getElement(variant) {
699
+ switch (variant) {
700
+ case 'h1':
701
+ case 'h2':
702
+ case 'h3':
703
+ case 'h4':
704
+ case 'h5':
705
+ return variant;
706
+ case 'body':
707
+ case 'body-l':
708
+ default:
709
+ return 'p';
710
+ }
711
+ }
712
+ function Text(_ref) {
713
+ var elementType = _ref.as,
714
+ _ref$variant = _ref.variant,
715
+ variant = _ref$variant === void 0 ? 'body-l' : _ref$variant,
716
+ children = _ref.children,
717
+ className = _ref.className,
718
+ rest = defaultConfig._objectWithoutProperties(_ref, _excluded$9);
719
+ return /*#__PURE__*/React.createElement(elementType || getElement(variant), defaultConfig._objectSpread2({
720
+ className: [styles$n.text, styles$n[variant], className].join(' ')
721
+ }, rest), children);
722
+ }
723
+
724
+ function DefaultH2(_ref) {
725
+ var children = _ref.children;
726
+ return /*#__PURE__*/React.createElement(Text, {
727
+ variant: "h2"
728
+ }, children);
729
+ }
730
+
731
+ function DefaultP(_ref) {
732
+ var children = _ref.children;
733
+ return /*#__PURE__*/React.createElement(Text, {
734
+ variant: "body-l"
735
+ }, children);
736
+ }
737
+
738
+ /**
739
+ * An iframe HTML-element to securely render
740
+ * a sandboxed version of an embedded video media player, e.g. from the CMS.
741
+ * */
742
+ function IframeForEmbeddedMedia(props) {
743
+ return (
744
+ /*#__PURE__*/
745
+ // eslint-disable-next-line jsx-a11y/iframe-has-title
746
+ React.createElement("iframe", defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, props), {}, {
747
+ loading: "lazy",
748
+ sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation"
749
+ }))
750
+ );
751
+ }
752
+
753
+ function validateTrustedOriginsFormat(trustedOrigins) {
754
+ // The URL constructor should throw a TypeError when the URL is not a valid URL:
755
+ // https://developer.mozilla.org/en-US/docs/Web/API/URL/URL#exceptions.
756
+ // However, there are some cases, like `new URL("test://not-a-valid-url").origin`,
757
+ // when the TypeError is not thrown, but the origin is set to 'null'.
758
+ if (trustedOrigins !== null && trustedOrigins !== void 0 && trustedOrigins.some(function (origin) {
759
+ return new URL(origin).origin === 'null';
760
+ })) {
761
+ throw new Error("Not valid URLs in trustedOrigins: [".concat(trustedOrigins.join(', '), "]"));
762
+ }
763
+ }
764
+
765
+ function isTrustedOrigin(testedOrigin, trustedOrigins) {
766
+ return trustedOrigins.includes(new URL(testedOrigin).origin);
767
+ }
768
+
769
+ var hasClassName = function hasClassName(domNode, className) {
770
+ var _domNode$attribs$clas, _domNode$attribs$clas2;
771
+ return (_domNode$attribs$clas = (_domNode$attribs$clas2 = domNode.attribs["class"]) === null || _domNode$attribs$clas2 === void 0 || (_domNode$attribs$clas2 = _domNode$attribs$clas2.split(/\s+/)) === null || _domNode$attribs$clas2 === void 0 ? void 0 : _domNode$attribs$clas2.includes(className)) !== null && _domNode$attribs$clas !== void 0 ? _domNode$attribs$clas : false;
772
+ };
773
+ var addClassNames = function addClassNames(domNode) {
774
+ var _domNode$attribs$clas3, _domNode$attribs$clas4;
775
+ for (var _len = arguments.length, newClassNames = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
776
+ newClassNames[_key - 1] = arguments[_key];
777
+ }
778
+ return classNames.apply(void 0, defaultConfig._toConsumableArray((_domNode$attribs$clas3 = (_domNode$attribs$clas4 = domNode.attribs["class"]) === null || _domNode$attribs$clas4 === void 0 ? void 0 : _domNode$attribs$clas4.split(/\s+/)) !== null && _domNode$attribs$clas3 !== void 0 ? _domNode$attribs$clas3 : []).concat(newClassNames));
779
+ };
780
+ var WHITELISTED_TAGS = [
781
+ // Content sectioning
782
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
783
+ // Text content
784
+ 'blockquote', 'dd', 'dl', 'dt', 'figcaption', 'figure', 'hr', 'li', 'ol', 'p', 'pre', 'ul',
785
+ // Inline text semantics
786
+ 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn', 'em', 'i', 'kdb', 'mark', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',
787
+ // Image and multimedia
788
+ 'area', 'audio', 'img', 'map', 'track', 'video',
789
+ // SVG and MathML
790
+ 'svg', 'math'];
791
+ var DEFAULT_TABLE_VARIANTS = ['light'];
792
+ /**
793
+ * Inject HDS core table styles into children of <thead>
794
+ * @see https://hds.hel.fi/components/table/code/
795
+ */
796
+ function mapTableHeaderChild(domNode, options) {
797
+ if ('attribs' in domNode && domNode.name === 'tr') {
798
+ return /*#__PURE__*/React.createElement("tr", defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), {}, {
799
+ className: addClassNames(domNode, styles$o['hds-table__header-row'])
800
+ }), parse.domToReact(domNode.children, options));
801
+ }
802
+ return parse.domToReact([domNode], options);
803
+ }
804
+ function replaceDomNodeWithReactComponent(domNode, options) {
805
+ var components = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
806
+ var trustedOrigins = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
807
+ var _components$p = components.p,
808
+ P = _components$p === void 0 ? DefaultP : _components$p,
809
+ _components$h = components.h2,
810
+ H2 = _components$h === void 0 ? DefaultH2 : _components$h,
811
+ _components$a = components.a,
812
+ A = _components$a === void 0 ? 'a' : _components$a,
813
+ _components$table = components.table,
814
+ Table = _components$table === void 0 ? 'table' : _components$table,
815
+ _components$tableVari = components.tableVariants,
816
+ tableVariants = _components$tableVari === void 0 ? DEFAULT_TABLE_VARIANTS : _components$tableVari,
817
+ _components$img = components.img,
818
+ IMG = _components$img === void 0 ? 'img' : _components$img,
819
+ _components$iframe = components.iframe,
820
+ IFrame = _components$iframe === void 0 ? IframeForEmbeddedMedia : _components$iframe;
821
+ // html-react-parser advices to do an instanceof check
822
+ // domNode instanceof Element
823
+ // However, this will fail between contexts. As this code is meant to be used
824
+ // as a dependency, different contexts are likely.
825
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof#instanceof_and_multiple_context_e.g._frames_or_windows
826
+ if ('attribs' in domNode) {
827
+ switch (domNode.name) {
828
+ case 'p':
829
+ return /*#__PURE__*/React.createElement(P, defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), parse.domToReact(domNode.children, options));
830
+ case 'h2':
831
+ return /*#__PURE__*/React.createElement(H2, defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), parse.domToReact(domNode.children, options));
832
+ case 'a':
833
+ return /*#__PURE__*/React.createElement(A, defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), parse.domToReact(domNode.children, options));
834
+ case 'figure':
835
+ // Inject HDS core zebra table style into <table> if it's inside
836
+ // <figure class="is-style-stripes">,
837
+ // see https://hds.hel.fi/components/table/code/
838
+ return /*#__PURE__*/React.createElement("figure", defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), {}, {
839
+ className: addClassNames(domNode, defaultConfig._defineProperty({}, styles$o['striped-figure'], hasClassName(domNode, 'is-style-stripes')))
840
+ }), parse.domToReact(domNode.children, options));
841
+ case 'table':
842
+ // Inject HDS core table styles into <table> and its children,
843
+ // see https://hds.hel.fi/components/table/code/
844
+ return /*#__PURE__*/React.createElement("div", {
845
+ className: addClassNames(domNode, styles$o['hds-table-container'])
846
+ }, /*#__PURE__*/React.createElement(Table, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), {}, {
847
+ className: addClassNames(domNode, styles$o['hds-table'], tableVariants.map(function (tableVariant) {
848
+ return styles$o["hds-table--".concat(tableVariant)];
849
+ }))
850
+ }), parse.domToReact(domNode.children, options)));
851
+ case 'caption':
852
+ return /*#__PURE__*/React.createElement("caption", defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), {}, {
853
+ className: addClassNames(domNode, styles$o['hds-table__caption'])
854
+ }), parse.domToReact(domNode.children, options));
855
+ case 'thead':
856
+ return /*#__PURE__*/React.createElement("thead", defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), domNode.children.map(function (child) {
857
+ return mapTableHeaderChild(child, options);
858
+ }));
859
+ case 'tbody':
860
+ return /*#__PURE__*/React.createElement("tbody", defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), {}, {
861
+ className: addClassNames(domNode, styles$o['hds-table__content'])
862
+ }), parse.domToReact(domNode.children, options));
863
+ case 'img':
864
+ return /*#__PURE__*/React.createElement(IMG, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)), {}, {
865
+ width: "100%"
866
+ }));
867
+ case 'iframe':
868
+ if (isTrustedOrigin(domNode.attribs.src, trustedOrigins)) {
869
+ return /*#__PURE__*/React.createElement(IFrame, defaultConfig._objectSpread2({}, parse.attributesToProps(domNode.attribs)));
870
+ }
871
+ // eslint-disable-next-line no-console
872
+ console.warn('The iframe src-attribute was not set to any of the trusted origins.');
873
+ return /*#__PURE__*/React.createElement("div", null);
874
+ }
875
+ }
876
+ return domNode;
877
+ }
878
+ function HtmlToReact(_ref) {
879
+ var dirty = _ref.children,
880
+ components = _ref.components,
881
+ _ref$allowedUnsafeTag = _ref.allowedUnsafeTags,
882
+ allowedUnsafeTags = _ref$allowedUnsafeTag === void 0 ? [] : _ref$allowedUnsafeTag,
883
+ _ref$trustedOrigins = _ref.trustedOrigins,
884
+ trustedOrigins = _ref$trustedOrigins === void 0 ? [] : _ref$trustedOrigins;
885
+ validateTrustedOriginsFormat(trustedOrigins);
886
+ var clean = React.useMemo(function () {
887
+ return DOMPurify.sanitize(dirty, {
888
+ USE_PROFILES: {
889
+ html: true
890
+ },
891
+ ADD_ATTR: ['target'],
892
+ ADD_TAGS: allowedUnsafeTags,
893
+ ALLOWED_TAGS: WHITELISTED_TAGS
894
+ });
895
+ }, [dirty, allowedUnsafeTags]);
896
+ var htmlReactParserOptions = {
897
+ replace: function replace(domNode) {
898
+ return replaceDomNodeWithReactComponent(domNode, htmlReactParserOptions, components, trustedOrigins);
899
+ }
900
+ };
901
+ return /*#__PURE__*/React.createElement(React.Fragment, null, parse(clean, htmlReactParserOptions));
902
+ }
903
+
904
+ /* eslint-disable no-bitwise */
905
+ // https://stackoverflow.com/a/52171480
906
+ function hash(str) {
907
+ var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
908
+ var h1 = 0xdeadbeef ^ seed;
909
+ var h2 = 0x41c6ce57 ^ seed;
910
+ for (var i = 0, ch; i < str.length; i += 1) {
911
+ ch = str.charCodeAt(i);
912
+ h1 = Math.imul(h1 ^ ch, 2654435761);
913
+ h2 = Math.imul(h2 ^ ch, 1597334677);
914
+ }
915
+ h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h2 ^ h2 >>> 13, 3266489909);
916
+ h2 = Math.imul(h2 ^ h2 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909);
917
+ return 4294967296 * (2097151 & h2) + (h1 >>> 0);
918
+ }
919
+
920
+ // The notification is a singleton in the CMS. Instead of there being multiple
921
+ // notifications, there ever only is one which is edited according to current
922
+ // needs.
923
+ // Because this notification comes with a dismissal option, we have to be able
924
+ // to distinct different versions of the notification, so that we can safely
925
+ // determine that the user has previously dismissed this notification (and
926
+ // received) the urgent information that's within the notification.
927
+ function getNotificationHash(notification) {
928
+ // Notification fields used to build string for unique hash
929
+ var stringKeys = ['title', 'content', 'linkText', 'linkUrl', 'level', 'endDate', 'startDate'];
930
+ var combinedString = stringKeys.reduce(function (acc, current) {
931
+ var _notification$current;
932
+ return acc + ((_notification$current = notification === null || notification === void 0 ? void 0 : notification[current]) !== null && _notification$current !== void 0 ? _notification$current : '');
933
+ }, '');
934
+ return hash(combinedString);
935
+ }
936
+
937
+ function isNotificationActive(notification) {
938
+ var _ref = notification !== null && notification !== void 0 ? notification : {},
939
+ startDate = _ref.startDate,
940
+ endDate = _ref.endDate,
941
+ title = _ref.title,
942
+ content = _ref.content;
943
+ var isNotificationContentMissing = !content && !title;
944
+ if (!notification || isNotificationContentMissing) {
945
+ return false;
946
+ }
947
+ var isSameDayOrFuture = function isSameDayOrFuture(date) {
948
+ return dateFns.isSameDay(new Date(), date) || dateFns.isFuture(date);
949
+ };
950
+ return [
951
+ // both start and end dates are defined
952
+ function () {
953
+ return startDate && endDate && dateFns.isPast(new Date(startDate)) && isSameDayOrFuture(new Date(endDate));
954
+ },
955
+ // only end date defined
956
+ function () {
957
+ return !startDate && endDate && isSameDayOrFuture(new Date(endDate));
958
+ },
959
+ // only start date defined
960
+ function () {
961
+ return startDate && !endDate && dateFns.isPast(new Date(startDate));
962
+ },
963
+ // neither start or end date are defined
964
+ function () {
965
+ return !startDate && !endDate;
966
+ }].some(function (f) {
967
+ return !!f();
968
+ });
969
+ }
970
+
971
+ var css_248z$n = ".notification-module_notification__MkdMv p{margin:0}";
972
+ var styles$m = {"notification":"notification-module_notification__MkdMv"};
973
+ styleInject(css_248z$n);
974
+
975
+ var NotificationStatus;
976
+ (function (NotificationStatus) {
977
+ NotificationStatus[NotificationStatus["dismissed"] = 0] = "dismissed";
978
+ NotificationStatus[NotificationStatus["expired"] = 1] = "expired";
979
+ NotificationStatus[NotificationStatus["visible"] = 2] = "visible";
980
+ NotificationStatus[NotificationStatus["missing"] = 3] = "missing";
981
+ })(NotificationStatus || (NotificationStatus = {}));
982
+ var useLocaleStorageNotification = makeLocaleStorageValue('rhhc/notification');
983
+ function getNotificationStatus(notification, notificationState) {
984
+ if (!notification) {
985
+ return NotificationStatus.missing;
986
+ }
987
+ if (notificationState !== null && notificationState !== void 0 && notificationState.dismissed) {
988
+ return NotificationStatus.dismissed;
989
+ }
990
+ if (!isNotificationActive(notification)) {
991
+ return NotificationStatus.expired;
992
+ }
993
+ return NotificationStatus.visible;
994
+ }
995
+ var notificationTypeMap = {
996
+ info: 'alert',
997
+ high: 'error',
998
+ low: 'info'
999
+ };
1000
+ var isCmsNotificationLevel = function isCmsNotificationLevel(value) {
1001
+ return typeof value === 'string' && value in notificationTypeMap;
1002
+ };
1003
+ function Notification(_ref) {
1004
+ var notification = _ref.notification;
1005
+ var _useConfig = useConfig(),
1006
+ closeButtonLabelText = _useConfig.copy.closeButtonLabelText,
1007
+ getRoutedInternalHref = _useConfig.utils.getRoutedInternalHref;
1008
+ var _useLocaleStorageNoti = useLocaleStorageNotification(),
1009
+ _useLocaleStorageNoti2 = defaultConfig._slicedToArray(_useLocaleStorageNoti, 2),
1010
+ notificationState = _useLocaleStorageNoti2[0],
1011
+ setNotificationState = _useLocaleStorageNoti2[1];
1012
+ var notificationHash = getNotificationHash(notification);
1013
+ var notificationStatus = getNotificationStatus(notification, notificationState === null || notificationState === void 0 ? void 0 : notificationState[notificationHash]);
1014
+ var _ref2 = notification !== null && notification !== void 0 ? notification : {},
1015
+ level = _ref2.level,
1016
+ title = _ref2.title,
1017
+ linkUrl = _ref2.linkUrl,
1018
+ linkText = _ref2.linkText,
1019
+ content = _ref2.content;
1020
+ var handleClose = function handleClose() {
1021
+ setNotificationState(defaultConfig._defineProperty({}, notificationHash, {
1022
+ dismissed: true
1023
+ }));
1024
+ };
1025
+ return notificationStatus === NotificationStatus.visible && (/*#__PURE__*/React.createElement(hdsReact.Notification, {
1026
+ type: notificationTypeMap[isCmsNotificationLevel(level) ? level : 'info'],
1027
+ label: title !== null && title !== void 0 ? title : undefined,
1028
+ dismissible: true,
1029
+ closeButtonLabelText: closeButtonLabelText,
1030
+ onClose: handleClose,
1031
+ className: styles$m.notification
1032
+ }, /*#__PURE__*/React.createElement(HtmlToReact, null, String(content)), linkUrl && (/*#__PURE__*/React.createElement(Link, {
1033
+ openInNewTab: true,
1034
+ href: getRoutedInternalHref(linkUrl),
1035
+ style: {
1036
+ marginTop: '0.75rem',
1037
+ display: 'block'
1038
+ }
1039
+ }, linkText))));
1040
+ }
1041
+
1042
+ var css_248z$m = ".page-module_pageLayout__W8mY7{display:flex;flex-direction:column;height:100%}.page-module_contentWrapper__B5NLi{flex:1 0 auto}.page-module_footerWrapper__eYNvc{flex-shrink:0}";
1043
+ var styles$l = {"pageLayout":"page-module_pageLayout__W8mY7","contentWrapper":"page-module_contentWrapper__B5NLi","footerWrapper":"page-module_footerWrapper__eYNvc"};
1044
+ styleInject(css_248z$m);
1045
+
1046
+ function Page(_ref) {
1047
+ var navigation = _ref.navigation,
1048
+ notification = _ref.notification,
1049
+ content = _ref.content,
1050
+ footer = _ref.footer,
1051
+ className = _ref.className;
1052
+ return /*#__PURE__*/React.createElement("div", {
1053
+ className: classNames(styles$l.pageLayout, className)
1054
+ }, /*#__PURE__*/React.createElement("div", {
1055
+ className: styles$l.headerWrapper
1056
+ }, navigation, notification), /*#__PURE__*/React.createElement("div", {
1057
+ className: styles$l.contentWrapper
1058
+ }, content), /*#__PURE__*/React.createElement("div", {
1059
+ className: styles$l.footerWrapper
1060
+ }, footer));
1061
+ }
1062
+
1063
+ var css_248z$l = ".list-module_list__Xs25k{--spacing:0;display:flex;flex-direction:column;list-style-type:none;margin:0;padding:0}.list-module_list__Xs25k li:not(:last-child){margin-bottom:var(--spacing)}.list-module_spacing-4-xs__upUeV{--spacing:0.125rem}.list-module_spacing-3-xs__OaNO0{--spacing:0.25rem}.list-module_spacing-2-xs__vmsPC{--spacing:0.5rem}.list-module_spacing-xs__Nxd9l{--spacing:0.75rem}.list-module_spacing-s__FctYR{--spacing:1rem}.list-module_spacing-m__ts8Or{--spacing:1.5rem}.list-module_spacing-l__2yHwE{--spacing:2rem}.list-module_spacing-xl__WD5HF{--spacing:2.5rem}.list-module_spacing-2-xl__UB4YJ{--spacing:3rem}.list-module_spacing-3-xl__dG8HW{--spacing:2.5rem}@media (min-width:768px){.list-module_spacing-3-xl__dG8HW{--spacing:3.5rem}}.list-module_spacing-4-xl__QMWQ4,.list-module_spacing-5-xl__-0oZL{--spacing:4rem}.list-module_spacing-layout-2-xs__4GzIt{--spacing:1rem}.list-module_spacing-layout-xs__-T7HA{--spacing:1.5rem}.list-module_spacing-layout-s__FJxQf{--spacing:2rem}.list-module_spacing-layout-m__gvgbH{--spacing:3rem}.list-module_spacing-layout-l__o-Sr5{--spacing:4rem}.list-module_spacing-layout-xl__BMrbm{--spacing:6rem}.list-module_spacing-layout-2-xl__LZoYT{--spacing:8rem}";
1064
+ var styles$k = {"list":"list-module_list__Xs25k","spacing-4-xs":"list-module_spacing-4-xs__upUeV","spacing-3-xs":"list-module_spacing-3-xs__OaNO0","spacing-2-xs":"list-module_spacing-2-xs__vmsPC","spacing-xs":"list-module_spacing-xs__Nxd9l","spacing-s":"list-module_spacing-s__FctYR","spacing-m":"list-module_spacing-m__ts8Or","spacing-l":"list-module_spacing-l__2yHwE","spacing-xl":"list-module_spacing-xl__WD5HF","spacing-2-xl":"list-module_spacing-2-xl__UB4YJ","spacing-3-xl":"list-module_spacing-3-xl__dG8HW","spacing-4-xl":"list-module_spacing-4-xl__QMWQ4","spacing-5-xl":"list-module_spacing-5-xl__-0oZL","spacing-layout-2-xs":"list-module_spacing-layout-2-xs__4GzIt","spacing-layout-xs":"list-module_spacing-layout-xs__-T7HA","spacing-layout-s":"list-module_spacing-layout-s__FJxQf","spacing-layout-m":"list-module_spacing-layout-m__gvgbH","spacing-layout-l":"list-module_spacing-layout-l__o-Sr5","spacing-layout-xl":"list-module_spacing-layout-xl__BMrbm","spacing-layout-2-xl":"list-module_spacing-layout-2-xl__LZoYT"};
1065
+ styleInject(css_248z$l);
1066
+
1067
+ function getKey() {
1068
+ for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {
1069
+ elements[_key] = arguments[_key];
1070
+ }
1071
+ return elements.reduce(function (acc, element) {
1072
+ return "".concat(acc).concat(element.key);
1073
+ }, '');
1074
+ }
1075
+ function List(_ref) {
1076
+ var items = _ref.items,
1077
+ _ref$variant = _ref.variant,
1078
+ variant = _ref$variant === void 0 ? 'spacing-m' : _ref$variant;
1079
+ return /*#__PURE__*/React.createElement("ul", {
1080
+ className: classNames(styles$k.list, styles$k[variant])
1081
+ }, items === null || items === void 0 ? void 0 : items.map(function (item) {
1082
+ return item ? (/*#__PURE__*/React.createElement("li", {
1083
+ key: Array.isArray(item) ? getKey.apply(void 0, defaultConfig._toConsumableArray(item)) : getKey(item)
1084
+ }, item)) : null;
1085
+ }));
1086
+ }
1087
+
1088
+ var css_248z$k = ".sidebarContentLinkList-module_listContainer__1ObXc{margin-top:var(--spacing-s)}@media (min-width:768px){.sidebarContentLinkList-module_listContainer__1ObXc{margin-top:var(--spacing-xl)}}.sidebarContentLinkList-module_descriptionContainer__KA-YU{margin-bottom:1.5rem}.sidebarContentLinkList-module_link__zec26{align-items:center;background:#f2f2f2;color:#1a1a1a;display:flex;font-weight:500;justify-content:space-between;padding:1.5rem;text-decoration:none}.sidebarContentLinkList-module_link__zec26 svg{margin:0 .5rem}";
1089
+ var styles$j = {"listContainer":"sidebarContentLinkList-module_listContainer__1ObXc","descriptionContainer":"sidebarContentLinkList-module_descriptionContainer__KA-YU","link":"sidebarContentLinkList-module_link__zec26"};
1090
+ styleInject(css_248z$k);
1091
+
1092
+ function SidebarContentLinkList(_ref) {
1093
+ var anchor = _ref.anchor,
1094
+ title = _ref.title,
1095
+ description = _ref.description,
1096
+ links = _ref.links;
1097
+ var _useConfig = useConfig(),
1098
+ getIsHrefExternal = _useConfig.utils.getIsHrefExternal;
1099
+ return /*#__PURE__*/React.createElement("div", {
1100
+ className: styles$j.listContainer,
1101
+ id: anchor || undefined
1102
+ }, /*#__PURE__*/React.createElement("h2", null, title), description && (/*#__PURE__*/React.createElement("div", {
1103
+ className: styles$j.descriptionContainer
1104
+ }, /*#__PURE__*/React.createElement(HtmlToReact, null, description))), /*#__PURE__*/React.createElement(List, {
1105
+ variant: "spacing-s",
1106
+ items: links === null || links === void 0 ? void 0 : links.filter(function (item) {
1107
+ return defaultConfig.isLinkItem(item);
1108
+ }).map(function (link) {
1109
+ return /*#__PURE__*/React.createElement(Link, {
1110
+ key: link.title,
1111
+ href: parse(link.url).toString() || '#',
1112
+ className: styles$j.link,
1113
+ iconRight: !getIsHrefExternal(link.url) && (/*#__PURE__*/React.createElement(hdsReact.IconArrowRight, {
1114
+ "aria-hidden": "true"
1115
+ }))
1116
+ }, link.title);
1117
+ })
1118
+ }));
1119
+ }
1120
+
1121
+ var css_248z$j = ".sidebarContentCard-module_content__2tR4I{color:var(#1a1a1a);padding:0 1.5rem}.sidebarContentCard-module_link__-D8VG{display:flex;font-size:20px;justify-content:space-between;line-height:27px;text-decoration:none}.sidebarContentCard-module_link__-D8VG:hover{text-decoration:underline}figure{margin:0;padding:0}.sidebarContentCard-module_image__aZqzh{height:13rem;object-fit:cover;overflow:hidden;position:relative;width:100%}.sidebarContentCard-module_publishingDate__90R9P{color:var(#595959);margin:.5rem 0}";
1122
+ var styles$i = {"content":"sidebarContentCard-module_content__2tR4I","link":"sidebarContentCard-module_link__-D8VG","image":"sidebarContentCard-module_image__aZqzh","publishingDate":"sidebarContentCard-module_publishingDate__90R9P"};
1123
+ styleInject(css_248z$j);
1124
+
1125
+ /**
1126
+ * Tests if an image at a given URL loads successfully,
1127
+ * using AbortController for clean event listener management.
1128
+ *
1129
+ * @param {string} [url] - The URL of the image to test.
1130
+ * @return {Promise<void>} - A promise that resolves if the image loads, and rejects otherwise.
1131
+ */
1132
+ var testImage = function testImage(url) {
1133
+ if (!url) {
1134
+ return Promise.reject(new Error('No image URL given'));
1135
+ }
1136
+ var imgElement = new Image();
1137
+ // Create the controller instance
1138
+ var controller = new AbortController();
1139
+ var signal = controller.signal;
1140
+ return new Promise(function (resolve, reject) {
1141
+ // The { signal } option ensures these listeners are grouped for cleanup
1142
+ imgElement.addEventListener('load', function () {
1143
+ controller.abort(); // Triggers removal of ALL listeners attached to this signal
1144
+ resolve();
1145
+ }, {
1146
+ signal: signal
1147
+ });
1148
+ imgElement.addEventListener('error', function () {
1149
+ controller.abort(); // Triggers removal of ALL listeners attached to this signal
1150
+ // Reject with a standard Error object
1151
+ reject(new Error("Failed to load image from URL: ".concat(url)));
1152
+ }, {
1153
+ signal: signal
1154
+ });
1155
+ imgElement.src = url;
1156
+ });
1157
+ // Note: The controller is self-contained and cleaned up when the promise resolves/rejects
1158
+ };
1159
+
1160
+ var useResolveImageUrl = function useResolveImageUrl(_ref) {
1161
+ var id = _ref.id,
1162
+ url = _ref.url,
1163
+ customFallbackUrl = _ref.customFallbackUrl;
1164
+ var _useConfig = useConfig(),
1165
+ fallbackImageUrls = _useConfig.fallbackImageUrls;
1166
+ var _React$useState = React.useState(false),
1167
+ _React$useState2 = defaultConfig._slicedToArray(_React$useState, 2),
1168
+ showFallbackImage = _React$useState2[0],
1169
+ setShowFallbackImage = _React$useState2[1];
1170
+ React.useEffect(function () {
1171
+ var testThatImageExist = /*#__PURE__*/function () {
1172
+ var _ref2 = defaultConfig._asyncToGenerator(/*#__PURE__*/defaultConfig._regenerator().m(function _callee() {
1173
+ return defaultConfig._regenerator().w(function (_context) {
1174
+ while (1) switch (_context.p = _context.n) {
1175
+ case 0:
1176
+ _context.p = 0;
1177
+ _context.n = 1;
1178
+ return testImage(url !== null && url !== void 0 ? url : undefined);
1179
+ case 1:
1180
+ _context.n = 3;
1181
+ break;
1182
+ case 2:
1183
+ _context.p = 2;
1184
+ _context.v;
1185
+ setShowFallbackImage(true);
1186
+ case 3:
1187
+ return _context.a(2);
1188
+ }
1189
+ }, _callee, null, [[0, 2]]);
1190
+ }));
1191
+ return function testThatImageExist() {
1192
+ return _ref2.apply(this, arguments);
1193
+ };
1194
+ }();
1195
+ if (url) {
1196
+ testThatImageExist();
1197
+ } else {
1198
+ setShowFallbackImage(true);
1199
+ }
1200
+ }, [url]);
1201
+ var randomIndex = Math.abs(hash(id !== null && id !== void 0 ? id : '')) % fallbackImageUrls.length;
1202
+ return !url || showFallbackImage ? customFallbackUrl !== null && customFallbackUrl !== void 0 ? customFallbackUrl : fallbackImageUrls[randomIndex] : url;
1203
+ };
1204
+
1205
+ var _excluded$8 = ["id", "src", "alt", "customFallbackSrc", "caption", "style"];
1206
+ function Image$1(_ref) {
1207
+ var id = _ref.id,
1208
+ src = _ref.src,
1209
+ alt = _ref.alt,
1210
+ customFallbackSrc = _ref.customFallbackSrc,
1211
+ caption = _ref.caption,
1212
+ style = _ref.style,
1213
+ imageProps = defaultConfig._objectWithoutProperties(_ref, _excluded$8);
1214
+ var resolvedUrl = useResolveImageUrl({
1215
+ id: id,
1216
+ url: src,
1217
+ customFallbackUrl: customFallbackSrc
1218
+ });
1219
+ return /*#__PURE__*/React.createElement("figure", {
1220
+ style: style
1221
+ }, /*#__PURE__*/React.createElement("img", defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, imageProps), {}, {
1222
+ src: resolvedUrl,
1223
+ alt: alt
1224
+ })), caption && /*#__PURE__*/React.createElement("figcaption", null, caption));
1225
+ }
1226
+
1227
+ /**
1228
+ * @param {dateTime} dateTime - date as string to format to 'd.M.yyyy'.
1229
+ * @return {string} - Formatted date.
1230
+ */
1231
+ var formatDateFromString = function formatDateFromString(dateTime) {
1232
+ return dateFns.format(dateFns.parseISO(dateTime), 'd.M.yyyy');
1233
+ };
1234
+
1235
+ function SidebarContentCard(_ref) {
1236
+ var id = _ref.id,
1237
+ title = _ref.title,
1238
+ url = _ref.url,
1239
+ imageUrl = _ref.imageUrl,
1240
+ imageAlt = _ref.imageAlt,
1241
+ description = _ref.description,
1242
+ publishingDate = _ref.publishingDate;
1243
+ return /*#__PURE__*/React.createElement("div", {
1244
+ className: styles$i.container
1245
+ }, /*#__PURE__*/React.createElement(Image$1, {
1246
+ id: id,
1247
+ className: styles$i.image,
1248
+ src: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '',
1249
+ alt: imageAlt !== null && imageAlt !== void 0 ? imageAlt : ''
1250
+ }), /*#__PURE__*/React.createElement("div", {
1251
+ className: styles$i.content
1252
+ }, description && /*#__PURE__*/React.createElement("p", {
1253
+ className: styles$i.description
1254
+ }, description), /*#__PURE__*/React.createElement(Link, {
1255
+ className: styles$i.link,
1256
+ href: url
1257
+ }, title), publishingDate && (/*#__PURE__*/React.createElement("p", {
1258
+ className: styles$i.publishingDate
1259
+ }, formatDateFromString(publishingDate)))));
1260
+ }
1261
+
1262
+ function PostListItem(_ref) {
1263
+ var _featuredImage$node, _featuredImage$node2;
1264
+ var id = _ref.id,
1265
+ moduleItemType = _ref.moduleItemType,
1266
+ title = _ref.title,
1267
+ link = _ref.link,
1268
+ featuredImage = _ref.featuredImage,
1269
+ date = _ref.date;
1270
+ var url = useHeadlessCmsLink(link !== null && link !== void 0 ? link : '#', moduleItemType);
1271
+ if (!title || !url) {
1272
+ return null;
1273
+ }
1274
+ return /*#__PURE__*/React.createElement(SidebarContentCard, {
1275
+ key: id,
1276
+ id: id,
1277
+ title: title,
1278
+ publishingDate: date !== null && date !== void 0 ? date : undefined,
1279
+ url: url,
1280
+ imageUrl: (featuredImage === null || featuredImage === void 0 || (_featuredImage$node = featuredImage.node) === null || _featuredImage$node === void 0 ? void 0 : _featuredImage$node.medium) || undefined,
1281
+ imageAlt: (featuredImage === null || featuredImage === void 0 || (_featuredImage$node2 = featuredImage.node) === null || _featuredImage$node2 === void 0 ? void 0 : _featuredImage$node2.altText) || undefined
1282
+ });
1283
+ }
1284
+
1285
+ var css_248z$i = ".pageModules-module_pageModuleWrapper__G0ur8{margin:var(--spacing-layout-2-xs) 0}@media (min-width:576px){.pageModules-module_pageModuleWrapper__G0ur8{margin:var(--spacing-layout-s) 0}}.pageModules-module_pageModuleWrapper__G0ur8.pageModules-module_withPadding__XY5q4{padding:30px}.pageModules-module_pageModuleWrapper__G0ur8.pageModules-module_contentModuleWrapper__XSl5n p{margin:0!important}.pageModules-module_cardsWrapper__r-ISp{grid-gap:var(--spacing-layout-xs);grid-row-gap:var(--spacing-layout-xs);display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}.pageModules-module_cardsWrapper__r-ISp.pageModules-module_singleGridWrapper__K4Sb-{display:flex;gap:var(--spacing-layout-xs)}.pageModules-module_cardsWrapper__r-ISp.pageModules-module_singleGridWrapper__K4Sb->div{min-width:248px;width:100%}@media (min-width:1248px){.pageModules-module_cardsWrapper__r-ISp.pageModules-module_flexWrapper__1RWcF{display:flex;gap:var(--spacing-layout-xs)}.pageModules-module_cardsWrapper__r-ISp.pageModules-module_flexWrapper__1RWcF>div{min-width:248px;width:100%}}@media (max-width:767px){.pageModules-module_cardsWrapper__r-ISp{display:flex;flex-direction:column;gap:var(--spacing-layout-2-xs)}.pageModules-module_cardsWrapper__r-ISp>div{width:100%}}.pageModules-module_cardWrapper__161IL{display:flex;flex-direction:column;padding:30px}.pageModules-module_cardWrapper__161IL.pageModules-module_horisontal__SZ9pe{flex-direction:row;justify-content:flex-start}@media (max-width:575px){.pageModules-module_cardWrapper__161IL.pageModules-module_horisontal__SZ9pe{flex-direction:column}}.pageModules-module_cardWrapper__161IL svg{height:84px;width:84px}.pageModules-module_cardContent__njye1{align-items:flex-start;display:flex;flex-direction:column;gap:8px;height:100%}.pageModules-module_cardContent__njye1 .pageModules-module_title__ZEkpb{font-size:32px;margin-bottom:16px}.pageModules-module_cardContent__njye1 .pageModules-module_description__wer72{font-size:18px;line-height:28px;margin-bottom:var(--spacing-layout-xs)}.pageModules-module_cardContent__njye1 .pageModules-module_button__ZJnEW{align-items:flex-end;display:flex;flex-grow:1;width:100%}@media (max-width:575px){.pageModules-module_cardContent__njye1 .pageModules-module_button__ZJnEW button{width:100%}}.pageModules-module_cardContent__njye1 .pageModules-module_button__ZJnEW button div{min-width:var(--spacing-layout-xs)}.pageModules-module_cardIconWrapper__FD0HA{align-items:center;display:flex;justify-content:center;margin-bottom:16px;margin-right:0}@media (min-width:576px){.pageModules-module_cardIconWrapper__FD0HA.pageModules-module_horisontal__SZ9pe{align-items:flex-start;justify-content:flex-start;margin-bottom:16px;margin-right:30px}}.pageModules-module_fallbackIcon__UkRf9{height:84px;width:84px}.pageModules-module_stepsContainer__QZUUF>div>p{font-size:var(--fontsize-body-l)}";
1286
+ var styles$h = {"pageModuleWrapper":"pageModules-module_pageModuleWrapper__G0ur8","withPadding":"pageModules-module_withPadding__XY5q4","contentModuleWrapper":"pageModules-module_contentModuleWrapper__XSl5n","cardsWrapper":"pageModules-module_cardsWrapper__r-ISp","singleGridWrapper":"pageModules-module_singleGridWrapper__K4Sb-","flexWrapper":"pageModules-module_flexWrapper__1RWcF","cardWrapper":"pageModules-module_cardWrapper__161IL","horisontal":"pageModules-module_horisontal__SZ9pe","cardContent":"pageModules-module_cardContent__njye1","title":"pageModules-module_title__ZEkpb","description":"pageModules-module_description__wer72","button":"pageModules-module_button__ZJnEW","cardIconWrapper":"pageModules-module_cardIconWrapper__FD0HA","fallbackIcon":"pageModules-module_fallbackIcon__UkRf9","stepsContainer":"pageModules-module_stepsContainer__QZUUF"};
1287
+ styleInject(css_248z$i);
1288
+
1289
+ var css_248z$h = ".background-module_backgroundDefault__oNBmg{background-color:#fff}.background-module_backgroundCoatOfArms__Gy7-O{background-color:var(--color-coat-of-arms)}.background-module_backgroundGold__a0v0r{background-color:var(--color-gold)}.background-module_backgroundSilver__3n9-1{background-color:var(--color-silver)}.background-module_backgroundBrick__KQ5-r{background-color:var(--color-brick)}.background-module_backgroundBus__SLG7F{background-color:var(--color-bus)}.background-module_backgroundCopper__z2Ao1{background-color:var(--color-copper)}.background-module_backgroundEngel__w7K1V{background-color:var(--color-engel)}.background-module_backgroundFog__MuhoU{background-color:var(--color-fog)}.background-module_backgroundMetro__c31k-{background-color:var(--color-metro)}.background-module_backgroundSummer__mt065{background-color:var(--color-summer)}.background-module_backgroundSuomenlinna__RYiBo{background-color:var(--color-suomenlinna)}.background-module_backgroundTram__s3zOs{background-color:var(--color-tram)}.background-module_backgroundListItemCoatOfArms__mz0mZ li{background-color:var(--color-coat-of-arms)}.background-module_backgroundListItemGold__pcxAJ li{background-color:var(--color-gold)}.background-module_backgroundListItemSilver__--1w4 li{background-color:var(--color-silver)}.background-module_backgroundListItemBrick__j37LO li{background-color:var(--color-brick)}.background-module_backgroundListItemBus__2TLWo li{background-color:var(--color-bus)}.background-module_backgroundListItemCopper__bLGlk li{background-color:var(--color-copper)}.background-module_backgroundListItemEngel__nCn2b li{background-color:var(--color-engel)}.background-module_backgroundListItemFog__it1l0 li{background-color:var(--color-fog)}.background-module_backgroundListItemMetro__2ilGY li{background-color:var(--color-metro)}.background-module_backgroundListItemSummer__BGnjF li{background-color:var(--color-summer)}.background-module_backgroundListItemSuomenlinna__M9QNF li{background-color:var(--color-suomenlinna)}.background-module_backgroundListItemTram__WPUzf li{background-color:var(--color-tram)}.background-module_whiteText__f5V26,.background-module_whiteText__f5V26 h1{color:var(--color-white)!important}.background-module_whiteTextList__pTdu- li{color:var(--color-white)}.background-module_whiteTextList__pTdu- li:after{color:var(--color-black)}.background-module_whiteButton__O5neh button{border-color:var(--color-white)!important;color:var(--color-white)}.background-module_whiteLink__ZzvS0 path{color:var(--color-white)}";
1290
+ var colorStyles = {"backgroundDefault":"background-module_backgroundDefault__oNBmg","backgroundCoatOfArms":"background-module_backgroundCoatOfArms__Gy7-O","backgroundGold":"background-module_backgroundGold__a0v0r","backgroundSilver":"background-module_backgroundSilver__3n9-1","backgroundBrick":"background-module_backgroundBrick__KQ5-r","backgroundBus":"background-module_backgroundBus__SLG7F","backgroundCopper":"background-module_backgroundCopper__z2Ao1","backgroundEngel":"background-module_backgroundEngel__w7K1V","backgroundFog":"background-module_backgroundFog__MuhoU","backgroundMetro":"background-module_backgroundMetro__c31k-","backgroundSummer":"background-module_backgroundSummer__mt065","backgroundSuomenlinna":"background-module_backgroundSuomenlinna__RYiBo","backgroundTram":"background-module_backgroundTram__s3zOs","backgroundListItemCoatOfArms":"background-module_backgroundListItemCoatOfArms__mz0mZ","backgroundListItemGold":"background-module_backgroundListItemGold__pcxAJ","backgroundListItemSilver":"background-module_backgroundListItemSilver__--1w4","backgroundListItemBrick":"background-module_backgroundListItemBrick__j37LO","backgroundListItemBus":"background-module_backgroundListItemBus__2TLWo","backgroundListItemCopper":"background-module_backgroundListItemCopper__bLGlk","backgroundListItemEngel":"background-module_backgroundListItemEngel__nCn2b","backgroundListItemFog":"background-module_backgroundListItemFog__it1l0","backgroundListItemMetro":"background-module_backgroundListItemMetro__2ilGY","backgroundListItemSummer":"background-module_backgroundListItemSummer__BGnjF","backgroundListItemSuomenlinna":"background-module_backgroundListItemSuomenlinna__M9QNF","backgroundListItemTram":"background-module_backgroundListItemTram__WPUzf","whiteText":"background-module_whiteText__f5V26","whiteTextList":"background-module_whiteTextList__pTdu-","whiteButton":"background-module_whiteButton__O5neh","whiteLink":"background-module_whiteLink__ZzvS0"};
1291
+ styleInject(css_248z$h);
1292
+
1293
+ var __assign$1 = (undefined && undefined.__assign) || function () {
1294
+ __assign$1 = Object.assign || function(t) {
1295
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
1296
+ s = arguments[i];
1297
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
1298
+ t[p] = s[p];
1299
+ }
1300
+ return t;
1301
+ };
1302
+ return __assign$1.apply(this, arguments);
1303
+ };
1304
+ // This file is autogenerated by tools/process-named-references.ts
1305
+ var pairDivider = "~";
1306
+ var blockDivider = "~~";
1307
+ function generateNamedReferences(input, prev) {
1308
+ var entities = {};
1309
+ var characters = {};
1310
+ var blocks = input.split(blockDivider);
1311
+ var isOptionalBlock = false;
1312
+ for (var i = 0; blocks.length > i; i++) {
1313
+ var entries = blocks[i].split(pairDivider);
1314
+ for (var j = 0; j < entries.length; j += 2) {
1315
+ var entity = entries[j];
1316
+ var character = entries[j + 1];
1317
+ var fullEntity = '&' + entity + ';';
1318
+ entities[fullEntity] = character;
1319
+ if (isOptionalBlock) {
1320
+ entities['&' + entity] = character;
1321
+ }
1322
+ characters[character] = fullEntity;
1323
+ }
1324
+ isOptionalBlock = true;
1325
+ }
1326
+ return prev ?
1327
+ { entities: __assign$1(__assign$1({}, entities), prev.entities), characters: __assign$1(__assign$1({}, characters), prev.characters) } :
1328
+ { entities: entities, characters: characters };
1329
+ }
1330
+ var bodyRegExps = {
1331
+ xml: /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,
1332
+ 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,
1333
+ 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
1334
+ };
1335
+ var namedReferences = {};
1336
+ namedReferences['xml'] = generateNamedReferences("lt~<~gt~>~quot~\"~apos~'~amp~&");
1337
+ namedReferences['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~>");
1338
+ namedReferences['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']);
1339
+
1340
+ var numericUnicodeMap = {
1341
+ 0: 65533,
1342
+ 128: 8364,
1343
+ 130: 8218,
1344
+ 131: 402,
1345
+ 132: 8222,
1346
+ 133: 8230,
1347
+ 134: 8224,
1348
+ 135: 8225,
1349
+ 136: 710,
1350
+ 137: 8240,
1351
+ 138: 352,
1352
+ 139: 8249,
1353
+ 140: 338,
1354
+ 142: 381,
1355
+ 145: 8216,
1356
+ 146: 8217,
1357
+ 147: 8220,
1358
+ 148: 8221,
1359
+ 149: 8226,
1360
+ 150: 8211,
1361
+ 151: 8212,
1362
+ 152: 732,
1363
+ 153: 8482,
1364
+ 154: 353,
1365
+ 155: 8250,
1366
+ 156: 339,
1367
+ 158: 382,
1368
+ 159: 376
1369
+ };
1370
+
1371
+ var fromCodePoint = String.fromCodePoint ||
1372
+ function (astralCodePoint) {
1373
+ return String.fromCharCode(Math.floor((astralCodePoint - 0x10000) / 0x400) + 0xd800, ((astralCodePoint - 0x10000) % 0x400) + 0xdc00);
1374
+ };
1375
+
1376
+ var __assign = (undefined && undefined.__assign) || function () {
1377
+ __assign = Object.assign || function(t) {
1378
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
1379
+ s = arguments[i];
1380
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
1381
+ t[p] = s[p];
1382
+ }
1383
+ return t;
1384
+ };
1385
+ return __assign.apply(this, arguments);
1386
+ };
1387
+ var allNamedReferences = __assign(__assign({}, namedReferences), { all: namedReferences.html5 });
1388
+ var defaultDecodeOptions = {
1389
+ scope: 'body',
1390
+ level: 'all'
1391
+ };
1392
+ var strict = /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g;
1393
+ var attribute = /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;
1394
+ var baseDecodeRegExps = {
1395
+ xml: {
1396
+ strict: strict,
1397
+ attribute: attribute,
1398
+ body: bodyRegExps.xml
1399
+ },
1400
+ html4: {
1401
+ strict: strict,
1402
+ attribute: attribute,
1403
+ body: bodyRegExps.html4
1404
+ },
1405
+ html5: {
1406
+ strict: strict,
1407
+ attribute: attribute,
1408
+ body: bodyRegExps.html5
1409
+ }
1410
+ };
1411
+ var decodeRegExps = __assign(__assign({}, baseDecodeRegExps), { all: baseDecodeRegExps.html5 });
1412
+ var fromCharCode = String.fromCharCode;
1413
+ var outOfBoundsChar = fromCharCode(65533);
1414
+ function getDecodedEntity(entity, references, isAttribute, isStrict) {
1415
+ var decodeResult = entity;
1416
+ var decodeEntityLastChar = entity[entity.length - 1];
1417
+ if (isAttribute && decodeEntityLastChar === '=') {
1418
+ decodeResult = entity;
1419
+ }
1420
+ else if (isStrict && decodeEntityLastChar !== ';') {
1421
+ decodeResult = entity;
1422
+ }
1423
+ else {
1424
+ var decodeResultByReference = references[entity];
1425
+ if (decodeResultByReference) {
1426
+ decodeResult = decodeResultByReference;
1427
+ }
1428
+ else if (entity[0] === '&' && entity[1] === '#') {
1429
+ var decodeSecondChar = entity[2];
1430
+ var decodeCode = decodeSecondChar == 'x' || decodeSecondChar == 'X'
1431
+ ? parseInt(entity.substr(3), 16)
1432
+ : parseInt(entity.substr(2));
1433
+ decodeResult =
1434
+ decodeCode >= 0x10ffff
1435
+ ? outOfBoundsChar
1436
+ : decodeCode > 65535
1437
+ ? fromCodePoint(decodeCode)
1438
+ : fromCharCode(numericUnicodeMap[decodeCode] || decodeCode);
1439
+ }
1440
+ }
1441
+ return decodeResult;
1442
+ }
1443
+ /** Decodes all entities in the text */
1444
+ function decode(text, _a) {
1445
+ var _b = defaultDecodeOptions , _c = _b.level, level = _c === void 0 ? 'all' : _c, _d = _b.scope, scope = _d === void 0 ? level === 'xml' ? 'strict' : 'body' : _d;
1446
+ if (!text) {
1447
+ return '';
1448
+ }
1449
+ var decodeRegExp = decodeRegExps[level][scope];
1450
+ var references = allNamedReferences[level].entities;
1451
+ var isAttribute = scope === 'attribute';
1452
+ var isStrict = scope === 'strict';
1453
+ return text.replace(decodeRegExp, function (entity) { return getDecodedEntity(entity, references, isAttribute, isStrict); });
1454
+ }
1455
+
1456
+ var SELECT_COLORS_LIGHT = ['coat-of-arms', 'brick', 'bus', 'tram'];
1457
+ // Helper to convert strings like 'coat-of-arms' to 'CoatOfArms'
1458
+ var toPascalCase = function toPascalCase(s) {
1459
+ return defaultConfig.startCase(defaultConfig.camelCase(s)).replace(/\s/g, '');
1460
+ };
1461
+ /**
1462
+ * Converts a string (e.g., 'coat-of-arms') into PascalCase (e.g., 'CoatOfArms').
1463
+ * @param {string} color The color string to convert.
1464
+ * @returns {string} The color string in PascalCase format.
1465
+ */
1466
+ var getColor = function getColor(color) {
1467
+ return toPascalCase(color);
1468
+ };
1469
+ /**
1470
+ * Prepends 'icon-' to a name and converts it to PascalCase (e.g., 'icon-alert' to 'IconAlert').
1471
+ * @param {string} name The icon name part.
1472
+ * @returns {string} The icon name in PascalCase format.
1473
+ */
1474
+ var getIconName = function getIconName(name) {
1475
+ return toPascalCase("icon-".concat(name));
1476
+ };
1477
+ /**
1478
+ * Strips all HTML tags from a string and decodes HTML entities.
1479
+ * Uses a safe regex (/<[^>]*>/gi) to prevent ReDoS (Regular Expression Denial of Service).
1480
+ *
1481
+ * @param {string} html The input string containing HTML markup.
1482
+ * @returns {string} The resulting text string with all HTML tags removed and entities decoded.
1483
+ */
1484
+ var getTextFromHtml = function getTextFromHtml(html) {
1485
+ return decode(html.replace(/<[^>]*>/gi, ''));
1486
+ };
1487
+ /**
1488
+ * Checks if the text color should be white based on the background color.
1489
+ * @param {string} color The background color string.
1490
+ * @returns {boolean} True if white text should be used, false otherwise.
1491
+ */
1492
+ var isWhiteText = function isWhiteText(color) {
1493
+ return SELECT_COLORS_LIGHT.includes(color);
1494
+ };
1495
+
1496
+ function Icon(_ref) {
1497
+ var name = _ref.name;
1498
+ var fallback = function fallback() {
1499
+ return /*#__PURE__*/React.createElement("div", null);
1500
+ };
1501
+ var IconComponent = React.useMemo(function () {
1502
+ return /*#__PURE__*/React.lazy(function () {
1503
+ return Promise.resolve().then(function () { return require('./index-Eg-NhhyT.js'); }).then(function (module) {
1504
+ return {
1505
+ "default": module[name] || fallback
1506
+ };
1507
+ });
1508
+ });
1509
+ }, [name]);
1510
+ return /*#__PURE__*/React.createElement(React.Suspense, {
1511
+ fallback: /*#__PURE__*/React.createElement("div", {
1512
+ className: styles$h.fallbackIcon
1513
+ })
1514
+ }, /*#__PURE__*/React.createElement(IconComponent, null));
1515
+ }
1516
+
1517
+ function SimpleCard(_ref) {
1518
+ var title = _ref.title,
1519
+ description = _ref.description,
1520
+ backgroundColor = _ref.backgroundColor,
1521
+ icon = _ref.icon,
1522
+ linkTitle = _ref.linkTitle,
1523
+ linkTarget = _ref.linkTarget,
1524
+ linkUrl = _ref.linkUrl,
1525
+ _ref$direction = _ref.direction,
1526
+ direction = _ref$direction === void 0 ? 'vertical' : _ref$direction;
1527
+ var _useConfig = useConfig(),
1528
+ redirectToUrl = _useConfig.utils.redirectToUrl;
1529
+ var openInNewTab = function openInNewTab(url) {
1530
+ var newWindow = window.open(url, '_blank', 'noopener,noreferrer');
1531
+ if (newWindow) newWindow.opener = null;
1532
+ };
1533
+ var handleClick = function handleClick() {
1534
+ if (linkUrl) {
1535
+ if (linkTarget === '_blank') {
1536
+ openInNewTab(linkUrl);
1537
+ } else {
1538
+ redirectToUrl(linkUrl);
1539
+ }
1540
+ }
1541
+ };
1542
+ return /*#__PURE__*/React.createElement("div", {
1543
+ className: classNames(styles$h.cardWrapper, backgroundColor && colorStyles["background".concat(getColor(backgroundColor))], backgroundColor && isWhiteText(backgroundColor) && colorStyles.whiteText, direction && styles$h[direction])
1544
+ }, icon && (/*#__PURE__*/React.createElement("div", {
1545
+ className: classNames(styles$h.cardIconWrapper, direction && styles$h[direction])
1546
+ }, /*#__PURE__*/React.createElement(Icon, {
1547
+ name: getIconName(icon)
1548
+ }))), /*#__PURE__*/React.createElement("div", {
1549
+ className: styles$h.cardContent
1550
+ }, title && /*#__PURE__*/React.createElement("div", {
1551
+ className: styles$h.title
1552
+ }, title), description && (/*#__PURE__*/React.createElement("div", {
1553
+ className: styles$h.description
1554
+ }, getTextFromHtml(description))), linkTitle && linkUrl && (/*#__PURE__*/React.createElement("div", {
1555
+ className: classNames(styles$h.button, backgroundColor && isWhiteText(backgroundColor) && colorStyles.whiteButton)
1556
+ }, /*#__PURE__*/React.createElement(hdsReact.Button, {
1557
+ style: direction === 'vertical' ? {
1558
+ width: '100%'
1559
+ } : {},
1560
+ variant: hdsReact.ButtonVariant.Secondary,
1561
+ theme: hdsReact.ButtonPresetTheme.Black,
1562
+ onClick: handleClick,
1563
+ iconStart: /*#__PURE__*/React.createElement(hdsReact.IconAngleRight, null)
1564
+ }, linkTitle)))));
1565
+ }
1566
+
1567
+ var css_248z$g = ".sidebarCardsList-module_cardsContainer__JRK-Q div:not(:last-child){margin-bottom:var(--spacing)}";
1568
+ var styles$g = {"cardsContainer":"sidebarCardsList-module_cardsContainer__JRK-Q"};
1569
+ styleInject(css_248z$g);
1570
+
1571
+ function SidebarCardsList(_ref) {
1572
+ var cards = _ref.cards;
1573
+ var _useConfig = useConfig(),
1574
+ internalHrefOrigins = _useConfig.internalHrefOrigins,
1575
+ _useConfig$utils = _useConfig.utils,
1576
+ getIsHrefExternal = _useConfig$utils.getIsHrefExternal,
1577
+ getRoutedInternalHref = _useConfig$utils.getRoutedInternalHref;
1578
+ if ((cards === null || cards === void 0 ? void 0 : cards.length) === 0) {
1579
+ return null;
1580
+ }
1581
+ return /*#__PURE__*/React.createElement("div", {
1582
+ className: styles$g.cardsContainer
1583
+ }, cards === null || cards === void 0 ? void 0 : cards.filter(function (card) {
1584
+ return !!card;
1585
+ }).map(function (card) {
1586
+ var _card$link$url, _card$link, _card$title, _card$icon, _card$description, _card$backgroundColor, _card$link$title, _card$link2, _card$link$target, _card$link3;
1587
+ var uri = defaultConfig.getUri((_card$link$url = (_card$link = card.link) === null || _card$link === void 0 ? void 0 : _card$link.url) !== null && _card$link$url !== void 0 ? _card$link$url : '#', internalHrefOrigins, getIsHrefExternal);
1588
+ var key = btoa("sidebar-card-".concat(card.title, "-").concat(uri));
1589
+ return /*#__PURE__*/React.createElement(SimpleCard, {
1590
+ key: key,
1591
+ title: (_card$title = card.title) !== null && _card$title !== void 0 ? _card$title : undefined,
1592
+ icon: (_card$icon = card.icon) !== null && _card$icon !== void 0 ? _card$icon : undefined,
1593
+ description: (_card$description = card.description) !== null && _card$description !== void 0 ? _card$description : undefined,
1594
+ backgroundColor: (_card$backgroundColor = card.backgroundColor) !== null && _card$backgroundColor !== void 0 ? _card$backgroundColor : undefined,
1595
+ linkUrl: getRoutedInternalHref(uri),
1596
+ linkTitle: (_card$link$title = (_card$link2 = card.link) === null || _card$link2 === void 0 ? void 0 : _card$link2.title) !== null && _card$link$title !== void 0 ? _card$link$title : undefined,
1597
+ linkTarget: (_card$link$target = (_card$link3 = card.link) === null || _card$link3 === void 0 ? void 0 : _card$link3.target) !== null && _card$link$target !== void 0 ? _card$link$target : undefined,
1598
+ direction: "vertical"
1599
+ });
1600
+ }));
1601
+ }
1602
+
1603
+ function SidebarContent(_ref) {
1604
+ var _content$map;
1605
+ var content = _ref.content,
1606
+ _ref$SidebarContentLi = _ref.SidebarContentLinkListComponent,
1607
+ SidebarContentLinkListComponent = _ref$SidebarContentLi === void 0 ? SidebarContentLinkList : _ref$SidebarContentLi,
1608
+ _ref$SidebarPostListC = _ref.SidebarPostListComponent,
1609
+ SidebarPostListComponent = _ref$SidebarPostListC === void 0 ? List : _ref$SidebarPostListC,
1610
+ _ref$SideBarPostListI = _ref.SideBarPostListItemComponent,
1611
+ SideBarPostListItemComponent = _ref$SideBarPostListI === void 0 ? PostListItem : _ref$SideBarPostListI,
1612
+ _ref$SideBarCardsList = _ref.SideBarCardsListComponent,
1613
+ SideBarCardsListComponent = _ref$SideBarCardsList === void 0 ? SidebarCardsList : _ref$SideBarCardsList;
1614
+ return /*#__PURE__*/React.createElement(List, {
1615
+ variant: "spacing-3-xl",
1616
+ items: (_content$map = content === null || content === void 0 ? void 0 : content.map(function (item) {
1617
+ if (defaultConfig.isLayoutLinkList(item)) {
1618
+ return /*#__PURE__*/React.createElement(SidebarContentLinkListComponent, {
1619
+ key: item.title,
1620
+ title: item.title,
1621
+ links: item.links,
1622
+ description: item.description,
1623
+ anchor: item.anchor
1624
+ });
1625
+ }
1626
+ if (defaultConfig.isLayoutPage(item)) {
1627
+ var _item$pages;
1628
+ return /*#__PURE__*/React.createElement(SidebarPostListComponent, {
1629
+ key: "pages",
1630
+ variant: "spacing-3-xl",
1631
+ items: item === null || item === void 0 || (_item$pages = item.pages) === null || _item$pages === void 0 ? void 0 : _item$pages.map(function (page, index) {
1632
+ var _page$id, _page$id2;
1633
+ return /*#__PURE__*/React.createElement(SideBarPostListItemComponent, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, page), {}, {
1634
+ key: (_page$id = page === null || page === void 0 ? void 0 : page.id) !== null && _page$id !== void 0 ? _page$id : "sidebar-post-list-page-".concat(index),
1635
+ id: (_page$id2 = page === null || page === void 0 ? void 0 : page.id) !== null && _page$id2 !== void 0 ? _page$id2 : "sidebar-post-list-page-".concat(index),
1636
+ moduleItemType: exports.ModuleItemTypeEnum.Page
1637
+ }));
1638
+ })
1639
+ });
1640
+ }
1641
+ if (defaultConfig.isLayoutArticle(item)) {
1642
+ var _item$articles;
1643
+ return /*#__PURE__*/React.createElement(SidebarPostListComponent, {
1644
+ key: "articles",
1645
+ variant: "spacing-3-xl",
1646
+ items: item === null || item === void 0 || (_item$articles = item.articles) === null || _item$articles === void 0 ? void 0 : _item$articles.map(function (article, index) {
1647
+ var _article$id, _article$id2;
1648
+ return /*#__PURE__*/React.createElement(SideBarPostListItemComponent, defaultConfig._objectSpread2(defaultConfig._objectSpread2({
1649
+ key: (_article$id = article === null || article === void 0 ? void 0 : article.id) !== null && _article$id !== void 0 ? _article$id : "sidebar-post-list-article-".concat(index),
1650
+ id: (_article$id2 = article === null || article === void 0 ? void 0 : article.id) !== null && _article$id2 !== void 0 ? _article$id2 : "sidebar-post-list-article-".concat(index)
1651
+ }, article), {}, {
1652
+ moduleItemType: exports.ModuleItemTypeEnum.Article
1653
+ }));
1654
+ })
1655
+ });
1656
+ }
1657
+ if (defaultConfig.isLayoutCards(item)) {
1658
+ return /*#__PURE__*/React.createElement(SideBarCardsListComponent, {
1659
+ key: "cards",
1660
+ cards: item.cards
1661
+ });
1662
+ }
1663
+ return null;
1664
+ })) !== null && _content$map !== void 0 ? _content$map : []
1665
+ });
1666
+ }
1667
+
1668
+ var css_248z$f = "@charset \"UTF-8\";.pageContentLayout-module_contentLayout__DP-wd{--padding:1rem;--max-width:calc(1200px + (2 * var(--padding)));display:flex;flex-direction:column;height:100%;overflow:hidden}.pageContentLayout-module_contentLayout__DP-wd>:not(:last-child){margin-bottom:1rem}@media screen and (min-width:768px){.pageContentLayout-module_contentLayout__DP-wd{--padding:1.5rem}}.pageContentLayout-module_breadcrumbs__btTiJ{box-sizing:border-box;margin:0 auto;margin-bottom:0!important;max-width:var(--max-width);padding:0 var(--padding);width:100%}.pageContentLayout-module_mainLayout__7X1d6{display:flex;flex:1;flex-direction:column;width:100%}.pageContentLayout-module_contentWrapper__Yw2-t{flex-grow:1}.pageContentLayout-module_contentWrapper__Yw2-t.pageContentLayout-module_withBorder__EhVXW{border-top:1px solid var(--color-black-20)}.pageContentLayout-module_content__-pxH-{display:grid;width:100%}@media screen and (min-width:768px){.pageContentLayout-module_content__-pxH->:first-child{margin-right:22px}.pageContentLayout-module_content__-pxH- aside{margin-left:22px;margin-top:2rem}}@media (max-width:767px){.pageContentLayout-module_content__-pxH- aside{padding-top:var(--spacing-xl)}}@media (min-width:768px){.pageContentLayout-module_content__-pxH-{grid-template-columns:2fr 1fr;grid-template-rows:auto 1fr}.pageContentLayout-module_content__-pxH- .pageContentLayout-module_mainContent __pc2CY{grid-column:1}.pageContentLayout-module_content__-pxH- aside{grid-column:2;grid-row:1/span 2}.pageContentLayout-module_content__-pxH- .pageContentLayout-module_shareLinks__vJ7mJ{grid-column:1}}.pageContentLayout-module_content__-pxH- a{font-size:1.125rem}.pageContentLayout-module_content__-pxH- li{font-size:1.125rem;line-height:1.5}.pageContentLayout-module_collectionsWrapper__i93Jo{background-color:var(--color-black-5);padding-bottom:6rem}.pageContentLayout-module_collectionKorosTop__wEUg6{fill:var(--color-white)}.pageContentLayout-module_collectionsContainer__8Hb21{box-sizing:border-box;margin-top:3rem;position:relative}.pageContentLayout-module_collectionsContainer__8Hb21 .pageContentLayout-module_innerCollectionsWrapper__zsJ5B{background-color:var(--color-black-5);padding-bottom:96px;width:100%}.pageContentLayout-module_collectionsContainer__8Hb21 .pageContentLayout-module_innerCollectionsWrapper__zsJ5B .pageContentLayout-module_innerCollectionsContainer__WGPUA{background-color:var(--color-black-5);margin:0 auto;max-width:var(--max-width);width:100%}";
1669
+ var styles$f = {"contentLayout":"pageContentLayout-module_contentLayout__DP-wd","breadcrumbs":"pageContentLayout-module_breadcrumbs__btTiJ","mainLayout":"pageContentLayout-module_mainLayout__7X1d6","contentWrapper":"pageContentLayout-module_contentWrapper__Yw2-t","withBorder":"pageContentLayout-module_withBorder__EhVXW","content":"pageContentLayout-module_content__-pxH-","shareLinks":"pageContentLayout-module_shareLinks__vJ7mJ","collectionsWrapper":"pageContentLayout-module_collectionsWrapper__i93Jo","collectionKorosTop":"pageContentLayout-module_collectionKorosTop__wEUg6"};
1670
+ styleInject(css_248z$f);
1671
+
1672
+ function Container(_ref) {
1673
+ var wrapper = _ref.wrapper,
1674
+ children = _ref.children;
1675
+ // eslint-disable-next-line react/jsx-no-useless-fragment
1676
+ return wrapper ? /*#__PURE__*/React__namespace.cloneElement(wrapper, [], children) : /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, children);
1677
+ }
1678
+
1679
+ var css_248z$e = ".hero-module_hero__Pi-Nm{--hero-image-max-height:600px;background-color:var(--hcrc-color-hero-bg,--color-fog-light);position:relative}.hero-module_hero__Pi-Nm.hero-module_withKoros__36jKw{margin-bottom:1rem}.hero-module_hero__Pi-Nm.hero-module_withKoros__36jKw.hero-module_pulse__yXQJ1,.hero-module_hero__Pi-Nm.hero-module_withKoros__36jKw.hero-module_wave__Q-oSY{margin-bottom:2rem}.hero-module_hero__Pi-Nm.hero-module_withKoros__36jKw.hero-module_beat__IregM,.hero-module_hero__Pi-Nm.hero-module_withKoros__36jKw.hero-module_vibration__GhrnZ{margin-bottom:4rem}.hero-module_hero__Pi-Nm.hero-module_withMargin__xAyMc.hero-module_basic__CdTpJ{margin-bottom:70px}.hero-module_hero__Pi-Nm.hero-module_withMargin__xAyMc.hero-module_pulse__yXQJ1,.hero-module_hero__Pi-Nm.hero-module_withMargin__xAyMc.hero-module_storm__VbhnI{margin-bottom:50px}.hero-module_hero__Pi-Nm.hero-module_withMargin__xAyMc.hero-module_beat__IregM{margin-bottom:15px}.hero-module_hero__Pi-Nm.hero-module_withMargin__xAyMc.hero-module_wave__Q-oSY{margin-bottom:32px}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z{bottom:-15px;position:absolute}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_pulse__yXQJ1,.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_wave__Q-oSY{bottom:-35px}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_beat__IregM{bottom:-70px}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_vibration__GhrnZ{bottom:-53px}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_withMargin__xAyMc.hero-module_basic__CdTpJ{bottom:-70px}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_withMargin__xAyMc.hero-module_pulse__yXQJ1,.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_withMargin__xAyMc.hero-module_wave__Q-oSY{bottom:-50px}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_withMargin__xAyMc.hero-module_beat__IregM{bottom:-15px}.hero-module_hero__Pi-Nm .hero-module_heroKoros__Bb81z.hero-module_withMargin__xAyMc.hero-module_vibration__GhrnZ{bottom:-32px}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh{box-sizing:border-box;margin:0;position:relative;width:100%}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh.hero-module_withKoros__36jKw{padding-bottom:85px}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh>:first-child{position:relative}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh>:first-child .hero-module_label__PX5ab{background-color:var(--color-black);bottom:80px;color:var(--color-white);font-size:var(--fontsize-body-s);margin:0;max-height:80%;opacity:.6;overflow:hidden;padding:4px;position:absolute;right:0;text-overflow:ellipsis;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);white-space:nowrap;writing-mode:vertical-lr;z-index:1}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh .hero-module_link__9P68I{left:var(--spacing-l);position:absolute;top:var(--spacing-l)}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh .hero-module_link__9P68I a:hover{outline:2px solid var(--color-coat-of-arms)}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh .hero-module_link__9P68I a{background-color:var(--color-white);display:flex}@media screen and (min-width:768px){.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh .hero-module_link__9P68I a{padding:var(--spacing-2-xs)}}@media screen and (min-width:1248px){.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh .hero-module_link__9P68I{left:calc(var(--spacing-4-xl) * -1);top:var(--spacing-l)}}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh .hero-module_link__9P68I span{align-items:center;display:flex;justify-content:center;margin:0}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh figure{line-height:0;margin:0}.hero-module_hero__Pi-Nm .hero-module_heroInner__CK2Bh img{max-height:var(--hero-image-max-height);object-fit:cover;width:100%}.hero-module_textContents__mu0sI{position:relative;z-index:1}@media screen and (min-width:768px){.hero-module_textContents__mu0sI{max-width:66.6666666667%;padding-right:44px}}.hero-module_textContents__mu0sI h1{font-weight:400}.hero-module_textContents__mu0sI p{font-size:var(--fontsize-body-l);line-height:var(--lineheight-l);margin-bottom:2rem}.hero-module_textContents__mu0sI .hero-module_button__tEUKr{margin-bottom:2.5rem}.hero-module_textContents__mu0sI .hero-module_button__tEUKr button:hover{background-color:var(--color-white)}";
1680
+ var styles$e = {"hero":"hero-module_hero__Pi-Nm","withKoros":"hero-module_withKoros__36jKw","pulse":"hero-module_pulse__yXQJ1","wave":"hero-module_wave__Q-oSY","beat":"hero-module_beat__IregM","vibration":"hero-module_vibration__GhrnZ","withMargin":"hero-module_withMargin__xAyMc","basic":"hero-module_basic__CdTpJ","storm":"hero-module_storm__VbhnI","heroKoros":"hero-module_heroKoros__Bb81z","heroInner":"hero-module_heroInner__CK2Bh","label":"hero-module_label__PX5ab","link":"hero-module_link__9P68I","textContents":"hero-module_textContents__mu0sI","button":"hero-module_button__tEUKr"};
1681
+ styleInject(css_248z$e);
1682
+
1683
+ var css_248z$d = ".contentContainer-module_container__jp4mL{align-items:center;box-sizing:border-box;padding:0 var(--spacing-s);position:relative;width:100%}@media screen and (min-width:768px){.contentContainer-module_container__jp4mL{margin:0 auto;max-width:var(--breakpoint-xl);padding:0 var(--spacing-m)}}";
1684
+ var styles$d = {"container":"contentContainer-module_container__jp4mL"};
1685
+ styleInject(css_248z$d);
1686
+
1687
+ function ContentContainer(_ref) {
1688
+ var className = _ref.className,
1689
+ children = _ref.children;
1690
+ return /*#__PURE__*/React.createElement("div", {
1691
+ className: classNames(styles$d.container, className)
1692
+ }, children);
1693
+ }
1694
+
1695
+ function Hero(_ref) {
1696
+ var id = _ref.id,
1697
+ title = _ref.title,
1698
+ description = _ref.description,
1699
+ backgroundColor = _ref.backgroundColor,
1700
+ _ref$korosType = _ref.korosType,
1701
+ korosType = _ref$korosType === void 0 ? 'basic' : _ref$korosType,
1702
+ actionText = _ref.actionText,
1703
+ actionUrl = _ref.actionUrl,
1704
+ actionUrlTarget = _ref.actionUrlTarget,
1705
+ className = _ref.className,
1706
+ backUrl = _ref.backUrl,
1707
+ imageUrl = _ref.imageUrl,
1708
+ imageAlt = _ref.imageAlt,
1709
+ container = _ref.container,
1710
+ imageLabel = _ref.imageLabel;
1711
+ var _useConfig = useConfig(),
1712
+ redirectToUrl = _useConfig.utils.redirectToUrl;
1713
+ var openInNewTab = function openInNewTab(url) {
1714
+ var newWindow = window.open(url, '_blank', 'noopener,noreferrer');
1715
+ if (newWindow) newWindow.opener = null;
1716
+ };
1717
+ var handleClick = function handleClick() {
1718
+ if (actionUrl) {
1719
+ if (actionUrlTarget === '_blank') {
1720
+ openInNewTab(actionUrl);
1721
+ } else {
1722
+ redirectToUrl(actionUrl);
1723
+ }
1724
+ }
1725
+ };
1726
+ var textContents = /*#__PURE__*/React.createElement("div", {
1727
+ className: classNames(styles$e.textContents, backgroundColor && !imageUrl && isWhiteText(backgroundColor) && colorStyles.whiteText, title && backgroundColor && korosType && styles$e.withKoros)
1728
+ }, /*#__PURE__*/React.createElement("header", null, /*#__PURE__*/React.createElement(Text, {
1729
+ as: "h1",
1730
+ variant: "h1"
1731
+ }, title)), description && /*#__PURE__*/React.createElement("p", null, description), actionText && actionUrl && (/*#__PURE__*/React.createElement("div", {
1732
+ className: classNames(!imageUrl && styles$e.button, backgroundColor && !imageUrl && isWhiteText(backgroundColor) && colorStyles.whiteButton)
1733
+ }, /*#__PURE__*/React.createElement(hdsReact.Button, {
1734
+ variant: hdsReact.ButtonVariant.Secondary,
1735
+ theme: hdsReact.ButtonPresetTheme.Black,
1736
+ onClick: handleClick,
1737
+ iconEnd: /*#__PURE__*/React.createElement(hdsReact.IconAngleRight, null)
1738
+ }, actionText))));
1739
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1740
+ className: classNames(styles$e.hero, className, backgroundColor && colorStyles["background".concat(getColor(backgroundColor))], title && backgroundColor && korosType && !imageUrl && styles$e.withKoros, korosType && styles$e[korosType])
1741
+ }, /*#__PURE__*/React.createElement(Container, {
1742
+ wrapper: container
1743
+ }, /*#__PURE__*/React.createElement(ContentContainer, null, /*#__PURE__*/React.createElement("div", {
1744
+ className: styles$e.heroInner
1745
+ }, imageUrl && (/*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Image$1, {
1746
+ id: id,
1747
+ className: styles$e.imageContainer,
1748
+ src: imageUrl,
1749
+ alt: imageAlt !== null && imageAlt !== void 0 ? imageAlt : ''
1750
+ }), imageLabel && (/*#__PURE__*/React.createElement("div", {
1751
+ className: styles$e.label
1752
+ }, imageLabel)))), backUrl && (/*#__PURE__*/React.createElement("div", {
1753
+ className: styles$e.link
1754
+ }, /*#__PURE__*/React.createElement(Link, {
1755
+ href: backUrl,
1756
+ openInNewTab: false,
1757
+ "aria-label": "Back",
1758
+ iconLeft: /*#__PURE__*/React.createElement(hdsReact.IconArrowLeft, {
1759
+ "aria-hidden": "true"
1760
+ })
1761
+ }))), !imageUrl && title && textContents))), (title || backgroundColor || imageUrl) && korosType && (/*#__PURE__*/React.createElement(hdsReact.Koros, {
1762
+ className: classNames(styles$e.heroKoros, imageUrl && styles$e.withMargin, korosType && styles$e[korosType]),
1763
+ type: korosType,
1764
+ flipVertical: !imageUrl,
1765
+ style: {
1766
+ fill: "var(--".concat(
1767
+ // eslint-disable-next-line no-nested-ternary
1768
+ imageUrl ? 'color-white' : backgroundColor ? "color-".concat(backgroundColor) : 'hcrc-color-hero-bg, --color-fog-light', ")")
1769
+ }
1770
+ }))), imageUrl && title && (/*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(ContentContainer, null, textContents))));
1771
+ }
1772
+
1773
+ var css_248z$c = ".pageSection-module_pageSection__T0yH3{background-repeat:no-repeat;background-size:cover;display:flex;position:relative}.pageSection-module_pageSection__T0yH3 .pageSection-module_korosBottom__usuIU,.pageSection-module_pageSection__T0yH3 .pageSection-module_korosTop__jzlE9{margin-bottom:-1px;position:absolute}.pageSection-module_pageSection__T0yH3 .pageSection-module_korosTop__jzlE9{top:0}.pageSection-module_pageSection__T0yH3 .pageSection-module_korosBottom__usuIU{bottom:0}.pageSection-module_pageSection__T0yH3.pageSection-module_withKorosTop__p-pKQ{padding-top:85px}.pageSection-module_pageSection__T0yH3.pageSection-module_withKorosBottom__NrLhN{padding-bottom:85px}.pageSection-module_pageSectionGrey__-XxCb{background-color:var(--color-black-5)}";
1774
+ var styles$c = {"pageSection":"pageSection-module_pageSection__T0yH3","korosTop":"pageSection-module_korosTop__jzlE9","korosBottom":"pageSection-module_korosBottom__usuIU","withKorosTop":"pageSection-module_withKorosTop__p-pKQ","withKorosBottom":"pageSection-module_withKorosBottom__NrLhN"};
1775
+ styleInject(css_248z$c);
1776
+
1777
+ var css_248z$b = ".BackgroundImage-module_imageWrapper__lYyyv{background-position:50%;background-repeat:no-repeat;background-size:cover;box-sizing:border-box;min-width:var(--width-image);position:relative;text-decoration:none}.BackgroundImage-module_imageWrapper__lYyyv.BackgroundImage-module_fixed-vertical__vG7u1{min-height:var(--height-image)}@media (min-width:576px){.BackgroundImage-module_imageWrapper__lYyyv,.BackgroundImage-module_imageWrapper__lYyyv.BackgroundImage-module_fixed-vertical__vG7u1{min-height:var(--height-image-desktop)}}.BackgroundImage-module_imageWrapper__lYyyv .BackgroundImage-module_imageLabel__3MRFm{padding:var(--spacing-xs)}.BackgroundImage-module_imageWrapper__lYyyv .BackgroundImage-module_imageLabel__3MRFm .BackgroundImage-module_tag__t4kkz{--tag-background:var(--color-black-5);font-size:var(--fontsize-body-s);font-weight:600}";
1778
+ var styles$b = {"imageLabel":"BackgroundImage-module_imageLabel__3MRFm","tag":"BackgroundImage-module_tag__t4kkz"};
1779
+ styleInject(css_248z$b);
1780
+
1781
+ var css_248z$a = ".tag-module_tag__1QCQs{--tag-focus-outline-color:var(--color-black-70);margin-bottom:var(--spacing-3-xs);margin-right:var(--spacing-2-xs);margin-top:var(--spacing-3-xs);padding:var(--spacing-2-xs)}.tag-module_tag__1QCQs.tag-module_featured__z-7XB{--background-color:var(--color-tram-light)}.tag-module_tag__1QCQs.tag-module_whiteOnly__0xHj5{--background-color:var(--color-white)!important}.tag-module_tag__1QCQs.tag-module_selected__r0rM9{--background-color:var(--color-black-70)!important;color:var(--color-white)}.tag-module_tag__1QCQs.tag-module_noTextWrap__FguRo span{white-space:nowrap}.tag-module_tag__1QCQs:not(.tag-module_noTextWrap__FguRo) span{white-space:normal!important}.tag-module_tag__1QCQs.tag-module_withHover__3daxF:hover{--background-color:var(--color-black-5)!important}.tag-module_tag__1QCQs.tag-module_selected__r0rM9:hover{--background-color:var(--color-black-70)!important}.tag-module_tag__1QCQs.tag-module_noOutline__8T9je{--tag-focus-outline-color:none!important;box-shadow:none;cursor:default}";
1782
+ var styles$a = {"tag":"tag-module_tag__1QCQs","featured":"tag-module_featured__z-7XB","whiteOnly":"tag-module_whiteOnly__0xHj5","selected":"tag-module_selected__r0rM9","noTextWrap":"tag-module_noTextWrap__FguRo","withHover":"tag-module_withHover__3daxF","noOutline":"tag-module_noOutline__8T9je"};
1783
+ styleInject(css_248z$a);
1784
+
1785
+ var theme1 = {
1786
+ '--background-color': 'var(--color-black-10)',
1787
+ '--color': 'var(--color-black)',
1788
+ '--outline-color': 'var(--color-black-70)'
1789
+ };
1790
+ var theme2 = {
1791
+ '--background-color': 'var(--color-tram-light)',
1792
+ '--color': 'var(--color-black-90)',
1793
+ '--outline-color': 'var(--color-black-70)'
1794
+ };
1795
+
1796
+ var _excluded$7 = ["className", "children", "featured", "selected", "whiteOnly", "noTextWrap", "onClick", "id"];
1797
+ function Tag(_ref) {
1798
+ var className = _ref.className,
1799
+ children = _ref.children,
1800
+ featured = _ref.featured,
1801
+ selected = _ref.selected,
1802
+ whiteOnly = _ref.whiteOnly,
1803
+ _ref$noTextWrap = _ref.noTextWrap,
1804
+ noTextWrap = _ref$noTextWrap === void 0 ? false : _ref$noTextWrap,
1805
+ onClick = _ref.onClick,
1806
+ id = _ref.id,
1807
+ hdsTagProps = defaultConfig._objectWithoutProperties(_ref, _excluded$7);
1808
+ /**
1809
+ * @deprecated the generatedId won't be needed after HDS removes the default value from the HDS Tag component:
1810
+ * https://github.com/City-of-Helsinki/helsinki-design-system/blob/master/packages/react/src/components/tag/Tag.tsx#L81).
1811
+ * */
1812
+ var generatedId = React__namespace.useId();
1813
+ return /*#__PURE__*/React__namespace.createElement(hdsReact.Tag, defaultConfig._objectSpread2(defaultConfig._objectSpread2(defaultConfig._objectSpread2({
1814
+ onClick: onClick
1815
+ }, !onClick && {
1816
+ tabIndex: -1
1817
+ }), {}, {
1818
+ theme: featured ? theme2 : theme1,
1819
+ className: classNames(styles$a.tag, featured && styles$a.featured, selected && styles$a.selected, whiteOnly && styles$a.whiteOnly, noTextWrap && styles$a.noTextWrap, onClick && !featured && styles$a.withHover, !onClick && styles$a.noOutline, className)
1820
+ }, hdsTagProps), {}, {
1821
+ // TODO: don't use the generatedId and allow an undefined id.
1822
+ id: id !== null && id !== void 0 ? id : "tag".concat(generatedId)
1823
+ }), children);
1824
+ }
1825
+
1826
+ var _excluded$6 = ["id", "url", "customFallbackUrl", "labelTag", "children"];
1827
+ function BackgroundImage(_ref) {
1828
+ var id = _ref.id,
1829
+ url = _ref.url,
1830
+ customFallbackUrl = _ref.customFallbackUrl,
1831
+ labelTag = _ref.labelTag,
1832
+ children = _ref.children,
1833
+ divProps = defaultConfig._objectWithoutProperties(_ref, _excluded$6);
1834
+ var resolvedUrl = useResolveImageUrl({
1835
+ id: id,
1836
+ url: url,
1837
+ customFallbackUrl: customFallbackUrl
1838
+ });
1839
+ return /*#__PURE__*/React.createElement("div", defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, divProps), {}, {
1840
+ style: defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, divProps.style), {}, {
1841
+ backgroundImage: "url(".concat(resolvedUrl, ")")
1842
+ })
1843
+ }), children, labelTag && (/*#__PURE__*/React.createElement("div", {
1844
+ className: styles$b.imageLabel
1845
+ }, /*#__PURE__*/React.createElement(Tag, {
1846
+ className: styles$b.tag
1847
+ }, labelTag))));
1848
+ }
1849
+
1850
+ function PageSection(_ref) {
1851
+ var className = _ref.className,
1852
+ children = _ref.children,
1853
+ korosTop = _ref.korosTop,
1854
+ korosTopClassName = _ref.korosTopClassName,
1855
+ korosBottom = _ref.korosBottom,
1856
+ korosBottomClassName = _ref.korosBottomClassName,
1857
+ backgroundImageUrl = _ref.backgroundImageUrl;
1858
+ var Wrapper = backgroundImageUrl ? BackgroundImage : 'div';
1859
+ return /*#__PURE__*/React.createElement(Wrapper, {
1860
+ id: backgroundImageUrl !== null && backgroundImageUrl !== void 0 ? backgroundImageUrl : 'page-section',
1861
+ url: backgroundImageUrl,
1862
+ className: classNames(styles$c.pageSection, korosTop && styles$c.withKorosTop, korosBottom && styles$c.withKorosBottom, className)
1863
+ }, korosTop && (/*#__PURE__*/React.createElement(hdsReact.Koros, {
1864
+ flipVertical: true,
1865
+ className: classNames(styles$c.korosTop, korosTopClassName)
1866
+ })), korosBottom && (/*#__PURE__*/React.createElement(hdsReact.Koros, {
1867
+ className: classNames(styles$c.korosBottom, korosBottomClassName)
1868
+ })), children);
1869
+ }
1870
+
1871
+ var _excluded$5 = ["id", "breadcrumbs", "heroContainer", "content", "shareLinks", "collections", "sidebarContent", "imageSrc", "imageAlt", "imageLabel", "backUrl"];
1872
+ function PageContentLayout(_ref) {
1873
+ var id = _ref.id,
1874
+ breadcrumbs = _ref.breadcrumbs,
1875
+ heroContainer = _ref.heroContainer,
1876
+ content = _ref.content,
1877
+ shareLinks = _ref.shareLinks,
1878
+ collections = _ref.collections,
1879
+ sidebarContent = _ref.sidebarContent,
1880
+ imageSrc = _ref.imageSrc,
1881
+ imageAlt = _ref.imageAlt,
1882
+ imageLabel = _ref.imageLabel,
1883
+ backUrl = _ref.backUrl,
1884
+ heroProps = defaultConfig._objectWithoutProperties(_ref, _excluded$5);
1885
+ return /*#__PURE__*/React.createElement("div", {
1886
+ className: styles$f.contentLayout
1887
+ }, breadcrumbs && /*#__PURE__*/React.createElement("div", {
1888
+ className: styles$f.breadcrumbs
1889
+ }, breadcrumbs), /*#__PURE__*/React.createElement("div", {
1890
+ className: styles$f.mainLayout
1891
+ }, /*#__PURE__*/React.createElement(Hero, defaultConfig._objectSpread2({
1892
+ id: id,
1893
+ container: heroContainer,
1894
+ imageAlt: imageAlt,
1895
+ imageUrl: imageSrc !== null && imageSrc !== void 0 ? imageSrc : undefined,
1896
+ imageLabel: imageLabel,
1897
+ backUrl: backUrl
1898
+ }, heroProps)), /*#__PURE__*/React.createElement(PageSection, {
1899
+ className: classNames(styles$f.contentWrapper, !heroProps.title && !imageSrc ? styles$f.withBorder : '')
1900
+ }, /*#__PURE__*/React.createElement(ContentContainer, null, /*#__PURE__*/React.createElement("div", {
1901
+ className: styles$f.content
1902
+ }, /*#__PURE__*/React.createElement("div", {
1903
+ className: styles$f.mainContent
1904
+ }, content), /*#__PURE__*/React.createElement("aside", null, sidebarContent), /*#__PURE__*/React.createElement("div", {
1905
+ className: styles$f.shareLinks
1906
+ }, shareLinks)))), collections && (/*#__PURE__*/React.createElement(PageSection, {
1907
+ className: styles$f.collectionsWrapper,
1908
+ korosTop: true,
1909
+ korosTopClassName: styles$f.collectionKorosTop
1910
+ }, /*#__PURE__*/React.createElement(ContentContainer, null, collections)))));
1911
+ }
1912
+
1913
+ var css_248z$9 = ".pageMainContent-module_imageContainer__qfqro img{max-width:100%}.pageMainContent-module_mainContent__blo6c figure{margin:0}.pageMainContent-module_mainContent__blo6c figure img{height:auto}.pageMainContent-module_mainContent__blo6c figure table{background-color:transparent;border-collapse:collapse;border-spacing:0;margin-left:auto;margin-right:auto}.pageMainContent-module_mainContent__blo6c figure table thead{display:table-header-group;vertical-align:middle}.pageMainContent-module_mainContent__blo6c figure table td,.pageMainContent-module_mainContent__blo6c figure table th{word-break:normal}.pageMainContent-module_mainContent__blo6c h1{font-size:1.5rem;font-weight:400;line-height:1.2;margin:1.5rem 0}@media (min-width:576px){.pageMainContent-module_mainContent__blo6c h1{margin:2rem 0}}.pageMainContent-module_mainContent__blo6c h2{font-size:2rem;font-weight:400;letter-spacing:-.4px;margin:3rem 0 1.5rem}.pageMainContent-module_mainContent__blo6c h3{font-size:1.5rem;font-weight:400;margin:2.5rem 0 1.5rem}.pageMainContent-module_mainContent__blo6c h4{font-size:1.25rem;font-weight:400;letter-spacing:.2px;margin:1.5rem 0}.pageMainContent-module_mainContent__blo6c h5{font-size:1.125rem;font-weight:500;margin:1.5rem 0}.pageMainContent-module_mainContent__blo6c ol,.pageMainContent-module_mainContent__blo6c ul{margin:1.5rem 0 2rem}.pageMainContent-module_mainContent__blo6c ol li,.pageMainContent-module_mainContent__blo6c ul li{margin-bottom:1rem}.pageMainContent-module_mainContent__blo6c figure{margin:1.5rem 0 2rem}.pageMainContent-module_mainContent__blo6c figure figcaption{font-size:1rem;margin:1rem 0}blockquote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.pageMainContent-module_articleData__OdxV6{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:var(--spacing-s)}@media (min-width:768px){.pageMainContent-module_articleData__OdxV6{margin-bottom:var(--spacing-xl)}}.pageMainContent-module_articleData__OdxV6 .pageMainContent-module_articleDate__8TotS{font-size:var(--fontsize-body-l);margin-right:var(--spacing-l)}";
1914
+ var styles$9 = {"mainContent":"pageMainContent-module_mainContent__blo6c","articleData":"pageMainContent-module_articleData__OdxV6","articleDate":"pageMainContent-module_articleDate__8TotS"};
1915
+ styleInject(css_248z$9);
1916
+
1917
+ function PageMainContent(_ref) {
1918
+ var _categories$edges, _ref2;
1919
+ var title = _ref.title,
1920
+ content = _ref.content,
1921
+ date = _ref.date,
1922
+ categories = _ref.categories,
1923
+ contentModules = _ref.contentModules,
1924
+ onArticlesSearch = _ref.onArticlesSearch;
1925
+ var _useConfig = useConfig(),
1926
+ _useConfig$htmlSaniti = _useConfig.htmlSanitizer,
1927
+ allowedUnsafeTags = _useConfig$htmlSaniti.allowedUnsafeTags,
1928
+ trustedOrigins = _useConfig$htmlSaniti.trustedOrigins;
1929
+ return /*#__PURE__*/React.createElement("article", {
1930
+ className: styles$9.mainContent
1931
+ }, /*#__PURE__*/React.createElement("header", null, /*#__PURE__*/React.createElement(Text, {
1932
+ as: "h1",
1933
+ variant: "h1"
1934
+ }, title)), (date || categories) && (/*#__PURE__*/React.createElement("div", {
1935
+ className: styles$9.articleData
1936
+ }, date && (/*#__PURE__*/React.createElement("div", {
1937
+ className: styles$9.articleDate
1938
+ }, formatDateFromString(date || ''))), categories === null || categories === void 0 || (_categories$edges = categories.edges) === null || _categories$edges === void 0 ? void 0 : _categories$edges.map(function (category) {
1939
+ var _category$node, _category$node3;
1940
+ return /*#__PURE__*/React.createElement(Tag, {
1941
+ className: styles$9.tag,
1942
+ key: (_category$node = category.node) === null || _category$node === void 0 ? void 0 : _category$node.id,
1943
+ onClick: onArticlesSearch ? function () {
1944
+ var _category$node2;
1945
+ onArticlesSearch((_category$node2 = category.node) === null || _category$node2 === void 0 ? void 0 : _category$node2.id);
1946
+ } : undefined
1947
+ }, String((_category$node3 = category.node) === null || _category$node3 === void 0 ? void 0 : _category$node3.name));
1948
+ }))), /*#__PURE__*/React.createElement(HtmlToReact, {
1949
+ components: {
1950
+ a: Link
1951
+ },
1952
+ allowedUnsafeTags: allowedUnsafeTags,
1953
+ trustedOrigins: trustedOrigins
1954
+ }, content), ((_ref2 = contentModules !== null && contentModules !== void 0 ? contentModules : []) === null || _ref2 === void 0 ? void 0 : _ref2.length) > 0 && contentModules);
1955
+ }
1956
+
1957
+ function replaceAll(str, find, replace) {
1958
+ return str.replace(new RegExp(find, 'g'), replace);
1959
+ }
1960
+ function unescapeDash(str) {
1961
+ if (!str) {
1962
+ return str !== null && str !== void 0 ? str : '';
1963
+ }
1964
+ return replaceAll(str, '&#x2d;', '-');
1965
+ }
1966
+ function PageMeta(_ref) {
1967
+ var _seoForCurrentLanguag, _ref3, _ref4;
1968
+ var page = _ref.page,
1969
+ Head = _ref.headComponent;
1970
+ var seoForCurrentLanguage = page === null || page === void 0 ? void 0 : page.seo;
1971
+ var _ref2 = seoForCurrentLanguage !== null && seoForCurrentLanguage !== void 0 ? seoForCurrentLanguage : {},
1972
+ title = _ref2.title,
1973
+ description = _ref2.description,
1974
+ twitterTitle = _ref2.twitterTitle,
1975
+ twitterDescription = _ref2.twitterDescription,
1976
+ openGraphTitle = _ref2.openGraphTitle,
1977
+ openGraphType = _ref2.openGraphType,
1978
+ openGraphDescription = _ref2.openGraphDescription;
1979
+ var image = seoForCurrentLanguage === null || seoForCurrentLanguage === void 0 || (_seoForCurrentLanguag = seoForCurrentLanguage.socialImage) === null || _seoForCurrentLanguag === void 0 ? void 0 : _seoForCurrentLanguag.mediaItemUrl;
1980
+ var xTitle = (_ref3 = twitterTitle !== null && twitterTitle !== void 0 ? twitterTitle : title) !== null && _ref3 !== void 0 ? _ref3 : undefined;
1981
+ var xDescription = (_ref4 = twitterDescription !== null && twitterDescription !== void 0 ? twitterDescription : description) !== null && _ref4 !== void 0 ? _ref4 : undefined;
1982
+ var _useConfig = useConfig(),
1983
+ meta = _useConfig.meta;
1984
+ return /*#__PURE__*/React.createElement(Head, null, /*#__PURE__*/React.createElement("title", null, unescapeDash(title !== null && title !== void 0 ? title : undefined)), description && /*#__PURE__*/React.createElement("meta", {
1985
+ name: "description",
1986
+ content: description
1987
+ }), /*#__PURE__*/React.createElement("meta", {
1988
+ property: "og:title",
1989
+ content: openGraphTitle !== null && openGraphTitle !== void 0 ? openGraphTitle : unescapeDash(title !== null && title !== void 0 ? title : undefined)
1990
+ }), openGraphDescription && (/*#__PURE__*/React.createElement("meta", {
1991
+ property: "og:description",
1992
+ content: openGraphDescription
1993
+ })), /*#__PURE__*/React.createElement("meta", {
1994
+ name: "twitter:card",
1995
+ content: "summary_large_image"
1996
+ }), image && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("meta", {
1997
+ property: "og:image",
1998
+ content: image
1999
+ }), /*#__PURE__*/React.createElement("meta", {
2000
+ property: "twitter:image",
2001
+ content: image
2002
+ }))), openGraphType && /*#__PURE__*/React.createElement("meta", {
2003
+ property: "og:type",
2004
+ content: openGraphType
2005
+ }), xTitle && /*#__PURE__*/React.createElement("meta", {
2006
+ name: "twitter:title",
2007
+ content: xTitle
2008
+ }), xDescription && (/*#__PURE__*/React.createElement("meta", {
2009
+ name: "twitter:description",
2010
+ content: xDescription
2011
+ })), /*#__PURE__*/React.createElement("link", {
2012
+ rel: "icon",
2013
+ href: meta === null || meta === void 0 ? void 0 : meta.favIconUrl,
2014
+ sizes: "any"
2015
+ }), /*#__PURE__*/React.createElement("link", {
2016
+ rel: "icon",
2017
+ href: meta === null || meta === void 0 ? void 0 : meta.favIconSvgUrl,
2018
+ type: "image/svg+xml"
2019
+ }), /*#__PURE__*/React.createElement("link", {
2020
+ rel: "apple-touch-icon",
2021
+ href: meta === null || meta === void 0 ? void 0 : meta.appleTouchIconUrl
2022
+ }), /*#__PURE__*/React.createElement("link", {
2023
+ rel: "manifest",
2024
+ href: meta === null || meta === void 0 ? void 0 : meta.manifestUrl
2025
+ }));
2026
+ }
2027
+
2028
+ var css_248z$8 = ".collection-module_collection__kkp5k .collection-module_headerRow__9m3TA{align-items:center;display:flex;height:6.5rem;justify-content:space-between;padding-top:3rem}@media screen and (max-width:768px){.collection-module_collection__kkp5k .collection-module_headerRow__9m3TA{align-items:flex-start;flex-direction:column}.collection-module_collection__kkp5k .collection-module_headerRow__9m3TA.collection-module_withShowAll__IYUH7{margin-bottom:2.5rem}}.collection-module_collection__kkp5k .collection-module_headerRow__9m3TA .collection-module_showAll__tqgWL{font-weight:500;margin-left:1rem;text-decoration:none}.collection-module_collection__kkp5k .collection-module_headerRow__9m3TA .collection-module_showAll__tqgWL:hover{text-decoration:underline}.collection-module_collection__kkp5k .collection-module_headerRow__9m3TA .collection-module_showAll__tqgWL{color:var(--hcrc-color-link-show-all)}@media screen and (max-width:768px){.collection-module_collection__kkp5k a{min-width:80px;padding-bottom:2rem}}.collection-module_collection__kkp5k .collection-module_heading__pbkZx{font-size:1.5rem!important;line-height:1.5rem;margin:0;padding-bottom:1rem}@media screen and (min-width:768px){.collection-module_collection__kkp5k .collection-module_heading__pbkZx{padding-bottom:2rem}}.collection-module_collection__kkp5k .collection-module_heading__pbkZx.collection-module_carousel__EPITT{font-weight:400;margin-left:1rem}@media screen and (min-width:768px){.collection-module_collection__kkp5k .collection-module_heading__pbkZx.collection-module_carousel__EPITT{margin-left:0}.collection-module_collection__kkp5k .collection-module_heading__pbkZx{font-size:2rem}}.collection-module_collection__kkp5k .collection-module_description__Cg-RJ{font-size:1.5rem;margin:0;padding-bottom:2rem}@media screen and (min-width:768px){.collection-module_collection__kkp5k .collection-module_description__Cg-RJ{padding-bottom:3rem}}.collection-module_collection__kkp5k .collection-module_carouselWrapper__1Q-Lg .collection-module_carousel__EPITT{margin-top:0}.collection-module_collection__kkp5k .collection-module_loadMoreButton__IrYPn{margin-top:var(--spacing-m)}.collection-module_loadingSpinnerWrapper__QjLGZ{align-items:center;display:flex;justify-content:center;margin:4rem}";
2029
+ var styles$8 = {"collection":"collection-module_collection__kkp5k","headerRow":"collection-module_headerRow__9m3TA","withShowAll":"collection-module_withShowAll__IYUH7","showAll":"collection-module_showAll__tqgWL","heading":"collection-module_heading__pbkZx","carousel":"collection-module_carousel__EPITT","description":"collection-module_description__Cg-RJ","carouselWrapper":"collection-module_carouselWrapper__1Q-Lg","loadMoreButton":"collection-module_loadMoreButton__IrYPn","loadingSpinnerWrapper":"collection-module_loadingSpinnerWrapper__QjLGZ"};
2030
+ styleInject(css_248z$8);
2031
+
2032
+ var css_248z$7 = ".carousel-module_container__-oNW8{box-sizing:border-box;margin:100px -60px 0}@media screen and (max-width:1248px){.carousel-module_container__-oNW8{margin:100px -42px 0}}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj{box-sizing:border-box;overflow:hidden;padding:0;position:relative}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu{align-items:center;background:#fff;border:none;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0,0,0,.5);cursor:pointer;display:flex;height:44px;justify-content:center;margin-top:-12px;padding:5px;position:absolute;top:50%;width:44px;z-index:5}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu:focus,.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu:hover{color:var(--color-bus)}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu:focus{outline-color:var(--color-black-90)}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu.carousel-module_btnPrev__e-wQ1{margin-left:32px;transition:.1s}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu.carousel-module_btnPrev__e-wQ1:hover{margin-left:28px;transition:.1s}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu.carousel-module_btnNext__r-L2f{margin-right:32px;right:0;transition:.1s}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu.carousel-module_btnNext__r-L2f:hover{margin-right:28px;transition:.1s}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_btn__FDYVu svg{color:var(--color-black-90)}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC{box-sizing:border-box;margin:0;outline:none;padding:0}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV{box-sizing:border-box;overflow:visible;padding:0 48px;position:relative;width:100%}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV.carousel-module_noDots__Gp68Y{margin-bottom:32px}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV .carousel-module_sliderWrapper__iuWEp{box-sizing:border-box;margin:auto;overflow:visible;transition:height .15s ease-in;width:100%}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV .carousel-module_sliderWrapper__iuWEp .carousel-module_sliderAnimated__g3Y2u{background:transparent;box-sizing:border-box;display:flex;height:auto;list-style:none;margin:0;padding:0;position:relative;transition-duration:.25s;width:100%}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV .carousel-module_sliderWrapper__iuWEp .carousel-module_sliderAnimated__g3Y2u .carousel-module_slide__AjSkx{background:transparent;box-sizing:border-box;flex-flow:column;margin:0;min-width:100%;opacity:.5;position:relative;transition:opacity .25s ease-in,padding .25s ease-in}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV .carousel-module_sliderWrapper__iuWEp .carousel-module_sliderAnimated__g3Y2u .carousel-module_slide__AjSkx .carousel-module_slideItems__1cRje{box-sizing:border-box;display:flex;height:100%}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV .carousel-module_sliderWrapper__iuWEp .carousel-module_sliderAnimated__g3Y2u .carousel-module_slide__AjSkx .carousel-module_slideItems__1cRje .carousel-module_slideItem__nGpRP{box-sizing:border-box;padding:0 12px;position:relative}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_slider__CWijV .carousel-module_sliderWrapper__iuWEp .carousel-module_sliderAnimated__g3Y2u .carousel-module_slideSelected__7juUC{opacity:1}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_dotsContainer__BB4SK{display:flex;justify-content:center;margin:32px 0 0}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_dotsContainer__BB4SK .carousel-module_dot__Mguvv{border:2px solid var(--color-black-40);border-radius:50%;height:12px;margin:0 2px;padding:4px;width:12px}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_dotsContainer__BB4SK .carousel-module_dot__Mguvv.carousel-module_button__od3Bp:hover:not([disabled]){cursor:pointer}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_dotsContainer__BB4SK .carousel-module_dot__Mguvv.carousel-module_selected__iRlel{background-color:var(--color-black-40)}.carousel-module_container__-oNW8 .carousel-module_carouselWrapper__cRoSj .carousel-module_root__UnNLC .carousel-module_onLoadMoreContainer__Btxcv{align-items:center;display:flex;height:100%;justify-content:center;padding-left:5em;width:max-content}";
2033
+ var styles$7 = {"container":"carousel-module_container__-oNW8","carouselWrapper":"carousel-module_carouselWrapper__cRoSj","btn":"carousel-module_btn__FDYVu","btnPrev":"carousel-module_btnPrev__e-wQ1","btnNext":"carousel-module_btnNext__r-L2f","root":"carousel-module_root__UnNLC","slider":"carousel-module_slider__CWijV","noDots":"carousel-module_noDots__Gp68Y","sliderWrapper":"carousel-module_sliderWrapper__iuWEp","sliderAnimated":"carousel-module_sliderAnimated__g3Y2u","slide":"carousel-module_slide__AjSkx","slideItems":"carousel-module_slideItems__1cRje","slideItem":"carousel-module_slideItem__nGpRP","slideSelected":"carousel-module_slideSelected__7juUC","dotsContainer":"carousel-module_dotsContainer__BB4SK","dot":"carousel-module_dot__Mguvv","button":"carousel-module_button__od3Bp","selected":"carousel-module_selected__iRlel","onLoadMoreContainer":"carousel-module_onLoadMoreContainer__Btxcv"};
2034
+ styleInject(css_248z$7);
2035
+
2036
+ var MOBILE_WIDTH = 840;
2037
+ // NOTE: Would it be better to leave all these undefined?
2038
+ // For some reason VSCode is always showing them as defined,
2039
+ // when the context is being used,
2040
+ // eventhough they would be explicitly set to undefined.
2041
+ var initialCarouselContextProps = {
2042
+ itemsShownOnDesktop: 3,
2043
+ itemsShownOnMobile: 1,
2044
+ withDots: false,
2045
+ navigateWithDots: true,
2046
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
2047
+ onLoadMore: function onLoadMore() {},
2048
+ hasMore: false,
2049
+ loading: false,
2050
+ loadMoreButtonLabelText: '',
2051
+ title: ''
2052
+ };
2053
+ var initialCarouselContextStateValues = defaultConfig._objectSpread2({
2054
+ isReady: true,
2055
+ transformValue: '0px',
2056
+ numberOfSlides: 0,
2057
+ itemsPerSlide: 0,
2058
+ currentSlide: 0,
2059
+ width: 0,
2060
+ numberOfItems: 0,
2061
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
2062
+ handleUpdateSlideProps: function handleUpdateSlideProps() {}
2063
+ }, initialCarouselContextProps);
2064
+
2065
+ var throwFieldImplError = function throwFieldImplError(fieldName) {
2066
+ throw new Error("".concat(fieldName, " is still unimplemented, when it should be implemented"));
2067
+ };
2068
+ var CarouselContext = /*#__PURE__*/React.createContext(defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, initialCarouselContextStateValues), {}, {
2069
+ setTransformValue: function setTransformValue() {
2070
+ throwFieldImplError('setTransformValue');
2071
+ },
2072
+ setNumberOfSlides: function setNumberOfSlides() {
2073
+ throwFieldImplError('setNumberOfSlides');
2074
+ },
2075
+ setItemsPerSlide: function setItemsPerSlide() {
2076
+ throwFieldImplError('setItemsPerSlide');
2077
+ },
2078
+ setCurrentSlide: function setCurrentSlide() {
2079
+ throwFieldImplError('setCurrentSlide');
2080
+ },
2081
+ setWidth: function setWidth() {
2082
+ throwFieldImplError('setWidth');
2083
+ },
2084
+ handleUpdateSlideProps: function handleUpdateSlideProps() {
2085
+ throwFieldImplError('handleUpdateSlideProps');
2086
+ }
2087
+ }));
2088
+ function useCarouselContext() {
2089
+ var context = React.useContext(CarouselContext);
2090
+ if (!context) {
2091
+ throw new Error("Carousel components cannot be rendered outside the CarouselContextProvider");
2092
+ }
2093
+ return context;
2094
+ }
2095
+
2096
+ var _excluded$4 = ["children", "numberOfItems"];
2097
+ function useCarouselContextState() {
2098
+ var _React$useState = React.useState(initialCarouselContextStateValues.isReady),
2099
+ _React$useState2 = defaultConfig._slicedToArray(_React$useState, 1),
2100
+ isReady = _React$useState2[0];
2101
+ var _React$useState3 = React.useState(initialCarouselContextStateValues.transformValue),
2102
+ _React$useState4 = defaultConfig._slicedToArray(_React$useState3, 2),
2103
+ transformValue = _React$useState4[0],
2104
+ setTransformValue = _React$useState4[1];
2105
+ var _React$useState5 = React.useState(initialCarouselContextStateValues.numberOfSlides),
2106
+ _React$useState6 = defaultConfig._slicedToArray(_React$useState5, 2),
2107
+ numberOfSlides = _React$useState6[0],
2108
+ setNumberOfSlides = _React$useState6[1];
2109
+ var _React$useState7 = React.useState(initialCarouselContextStateValues.itemsPerSlide),
2110
+ _React$useState8 = defaultConfig._slicedToArray(_React$useState7, 2),
2111
+ itemsPerSlide = _React$useState8[0],
2112
+ setItemsPerSlide = _React$useState8[1];
2113
+ var _React$useState9 = React.useState(initialCarouselContextStateValues.currentSlide),
2114
+ _React$useState0 = defaultConfig._slicedToArray(_React$useState9, 2),
2115
+ currentSlide = _React$useState0[0],
2116
+ setCurrentSlide = _React$useState0[1];
2117
+ var _React$useState1 = React.useState(initialCarouselContextStateValues.width),
2118
+ _React$useState10 = defaultConfig._slicedToArray(_React$useState1, 2),
2119
+ width = _React$useState10[0],
2120
+ setWidth = _React$useState10[1];
2121
+ var handleUpdateSlideProps = function handleUpdateSlideProps(targetSlide) {
2122
+ if (targetSlide === 0) {
2123
+ setTransformValue('0px');
2124
+ } else {
2125
+ // The transform is ALWAYS negative, based purely on the target index.
2126
+ setTransformValue("-".concat(targetSlide, "00%"));
2127
+ }
2128
+ setCurrentSlide(targetSlide);
2129
+ };
2130
+ return {
2131
+ isReady: isReady,
2132
+ transformValue: transformValue,
2133
+ setTransformValue: setTransformValue,
2134
+ numberOfSlides: numberOfSlides,
2135
+ setNumberOfSlides: setNumberOfSlides,
2136
+ itemsPerSlide: itemsPerSlide,
2137
+ setItemsPerSlide: setItemsPerSlide,
2138
+ currentSlide: currentSlide,
2139
+ setCurrentSlide: setCurrentSlide,
2140
+ width: width,
2141
+ setWidth: setWidth,
2142
+ handleUpdateSlideProps: handleUpdateSlideProps
2143
+ };
2144
+ }
2145
+ function CarouselContextProvider(_ref) {
2146
+ var children = _ref.children,
2147
+ numberOfItems = _ref.numberOfItems,
2148
+ backwardCompatibleProps = defaultConfig._objectWithoutProperties(_ref, _excluded$4);
2149
+ var carouselContext = useCarouselContextState();
2150
+ var value = React.useMemo(function () {
2151
+ return defaultConfig._objectSpread2(defaultConfig._objectSpread2({
2152
+ numberOfItems: numberOfItems
2153
+ }, carouselContext), backwardCompatibleProps);
2154
+ }, [numberOfItems, carouselContext, backwardCompatibleProps]);
2155
+ return /*#__PURE__*/React.createElement(CarouselContext.Provider, {
2156
+ value: value
2157
+ }, children);
2158
+ }
2159
+
2160
+ /**
2161
+ * @param arr - any array.
2162
+ * @param len - the array length.
2163
+ * @return chunks array of initial array (grouped elements).
2164
+ */
2165
+ function splitArrayIntoChunksOfLen(
2166
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2167
+ arr, len) {
2168
+ var chunks = [];
2169
+ var i = 0;
2170
+ var n = arr.length;
2171
+ while (i < n) {
2172
+ chunks.push(arr.slice(i, i += len));
2173
+ }
2174
+ return chunks;
2175
+ }
2176
+ /**
2177
+ * Create an unique key for item set.
2178
+ * @param index - item index.
2179
+ * @param itemId - item (element of the array). Default 'itemSet-item'
2180
+ * @param itemSetPrefix - item prefix (element of the array).
2181
+ * @return an unique key based on input data.
2182
+ */
2183
+ var getItemSetItemKey = function getItemSetItemKey(index, itemId) {
2184
+ var itemSetPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'itemSet-item';
2185
+ return "".concat(itemSetPrefix, "-").concat('', "-").concat(index);
2186
+ };
2187
+ /**
2188
+ * @param item - item (element of the array).
2189
+ * @param index - item index.
2190
+ * @return an unique key for the dot (slide counter) based on input data.
2191
+ */
2192
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2193
+ var getSlideDotKey = function getSlideDotKey(item, index) {
2194
+ var _item$id;
2195
+ return "slide-dot-".concat((_item$id = item === null || item === void 0 ? void 0 : item.id) !== null && _item$id !== void 0 ? _item$id : '', "-").concat(index);
2196
+ };
2197
+ var getLoadMoreKey = function getLoadMoreKey() {
2198
+ return 'carousel-loadmore';
2199
+ };
2200
+
2201
+ function CarouselSliderPage(_ref) {
2202
+ var _ref2;
2203
+ var itemSet = _ref.itemSet,
2204
+ itemSetIndex = _ref.itemSetIndex;
2205
+ var _useCarouselContext = useCarouselContext(),
2206
+ currentSlide = _useCarouselContext.currentSlide,
2207
+ width = _useCarouselContext.width,
2208
+ itemsShownOnDesktop = _useCarouselContext.itemsShownOnDesktop,
2209
+ itemsShownOnMobile = _useCarouselContext.itemsShownOnMobile;
2210
+ var itemsPerSlide = (_ref2 = width > MOBILE_WIDTH ? itemsShownOnDesktop : itemsShownOnMobile) !== null && _ref2 !== void 0 ? _ref2 : 1;
2211
+ var styleWidth = "".concat(100 / itemsPerSlide, "%");
2212
+ return /*#__PURE__*/React.createElement("li", {
2213
+ ref: function ref(node) {
2214
+ return node && node.toggleAttribute('inert', itemSetIndex !== currentSlide);
2215
+ },
2216
+ "aria-hidden": itemSetIndex !== currentSlide,
2217
+ className: classNames(styles$7.slide, itemSetIndex === currentSlide && styles$7.slideSelected)
2218
+ }, /*#__PURE__*/React.createElement("div", {
2219
+ className: styles$7.slideItems
2220
+ }, itemSet.map(function (item, itemIndex) {
2221
+ return /*#__PURE__*/React.createElement("div", {
2222
+ key: getItemSetItemKey(itemIndex, undefined, "itemSet-".concat(itemSetIndex, "-item")),
2223
+ className: styles$7.slideItem,
2224
+ style: {
2225
+ width: styleWidth
2226
+ }
2227
+ }, item);
2228
+ })));
2229
+ }
2230
+
2231
+ function useCarouselSliderRegionAriaLabel() {
2232
+ var _useCarouselContext = useCarouselContext(),
2233
+ itemsPerSlide = _useCarouselContext.itemsPerSlide,
2234
+ currentSlide = _useCarouselContext.currentSlide,
2235
+ numberOfItems = _useCarouselContext.numberOfItems;
2236
+ var _useTranslationWithFa = useTranslationWithFallback(),
2237
+ t = _useTranslationWithFa.t;
2238
+ return t('carouselSliderRegionLabelText').replace('{itemsPerSlide}', String(itemsPerSlide)).replace('{numberOfItems}', String(numberOfItems)).replace('{currentSlide}', String(currentSlide + 1));
2239
+ }
2240
+ function CarouselLoadMoreButton() {
2241
+ var _useCarouselContext2 = useCarouselContext(),
2242
+ onLoadMore = _useCarouselContext2.onLoadMore,
2243
+ loading = _useCarouselContext2.loading,
2244
+ loadMoreButtonLabelText = _useCarouselContext2.loadMoreButtonLabelText;
2245
+ var iconStart = loading ? /*#__PURE__*/React.createElement(hdsReact.LoadingSpinner, {
2246
+ small: true
2247
+ }) : null;
2248
+ return /*#__PURE__*/React.createElement("div", {
2249
+ className: styles$7.onLoadMoreContainer
2250
+ }, /*#__PURE__*/React.createElement(hdsReact.Button, {
2251
+ iconStart: iconStart,
2252
+ onClick: onLoadMore,
2253
+ variant: hdsReact.ButtonVariant.Primary,
2254
+ role: "button"
2255
+ }, String(loadMoreButtonLabelText)));
2256
+ }
2257
+ function CarouselSlider(_ref) {
2258
+ var children = _ref.children;
2259
+ var _useCarouselContext3 = useCarouselContext(),
2260
+ transformValue = _useCarouselContext3.transformValue,
2261
+ itemsPerSlide = _useCarouselContext3.itemsPerSlide,
2262
+ onLoadMore = _useCarouselContext3.onLoadMore,
2263
+ hasMore = _useCarouselContext3.hasMore;
2264
+ var shouldShowLoadMoreButton = hasMore && !!onLoadMore;
2265
+ var items = React.useMemo(function () {
2266
+ return shouldShowLoadMoreButton ? [].concat(defaultConfig._toConsumableArray(children), [/*#__PURE__*/React.createElement(CarouselLoadMoreButton, {
2267
+ key: getLoadMoreKey()
2268
+ })]) : children;
2269
+ }, [children, shouldShowLoadMoreButton]);
2270
+ var itemSets = React.useMemo(function () {
2271
+ return itemsPerSlide > 0 ? splitArrayIntoChunksOfLen(items, itemsPerSlide) : [];
2272
+ }, [items, itemsPerSlide]);
2273
+ var ariaLabel = useCarouselSliderRegionAriaLabel();
2274
+ return /*#__PURE__*/React.createElement("div", {
2275
+ className: styles$7.sliderWrapper,
2276
+ "data-testid": "carousel-slider"
2277
+ }, /*#__PURE__*/React.createElement("ul", {
2278
+ className: styles$7.sliderAnimated,
2279
+ style: {
2280
+ transform: "translateX(".concat(transformValue, ")")
2281
+ },
2282
+ "aria-label": ariaLabel,
2283
+ role: "presentation"
2284
+ }, itemSets.map(function (itemSet, itemSetIndex) {
2285
+ return /*#__PURE__*/React.createElement(CarouselSliderPage
2286
+ // eslint-disable-next-line react/no-array-index-key
2287
+ , {
2288
+ // eslint-disable-next-line react/no-array-index-key
2289
+ key: "itemSet-".concat(itemSetIndex),
2290
+ itemSet: itemSet,
2291
+ itemSetIndex: itemSetIndex
2292
+ });
2293
+ })));
2294
+ }
2295
+
2296
+ function CarouselPreviousSlideButton() {
2297
+ var _useConfig = useConfig(),
2298
+ previous = _useConfig.copy.previous;
2299
+ var _useCarouselContext = useCarouselContext(),
2300
+ isReady = _useCarouselContext.isReady,
2301
+ numberOfSlides = _useCarouselContext.numberOfSlides,
2302
+ currentSlide = _useCarouselContext.currentSlide,
2303
+ title = _useCarouselContext.title,
2304
+ handleUpdateSlideProps = _useCarouselContext.handleUpdateSlideProps;
2305
+ var handlePrevClick = function handlePrevClick() {
2306
+ // Loop to the last slide if we are on the first, otherwise go to the previous.
2307
+ var targetSlide = currentSlide === 0 ? numberOfSlides - 1 : currentSlide - 1;
2308
+ handleUpdateSlideProps(targetSlide);
2309
+ };
2310
+ var ariaLabelTitle = title ? " - ".concat(title) : '';
2311
+ return /*#__PURE__*/React.createElement("button", {
2312
+ type: "button",
2313
+ "aria-label": "".concat(previous).concat(ariaLabelTitle),
2314
+ className: classNames(styles$7.btn, styles$7.btnPrev),
2315
+ onClick: handlePrevClick,
2316
+ disabled: !isReady
2317
+ }, /*#__PURE__*/React.createElement(hdsReact.IconAngleLeft, null));
2318
+ }
2319
+ function CarouselNextSlideButton() {
2320
+ var _useConfig2 = useConfig(),
2321
+ next = _useConfig2.copy.next;
2322
+ var _useCarouselContext2 = useCarouselContext(),
2323
+ isReady = _useCarouselContext2.isReady,
2324
+ numberOfSlides = _useCarouselContext2.numberOfSlides,
2325
+ currentSlide = _useCarouselContext2.currentSlide,
2326
+ title = _useCarouselContext2.title,
2327
+ handleUpdateSlideProps = _useCarouselContext2.handleUpdateSlideProps;
2328
+ var handleNextClick = function handleNextClick() {
2329
+ // Loop to the first slide if we are on the last, otherwise go to the next.
2330
+ handleUpdateSlideProps(currentSlide + 1 === numberOfSlides ? 0 : currentSlide + 1);
2331
+ };
2332
+ var ariaLabelTitle = title ? " - ".concat(title) : '';
2333
+ return /*#__PURE__*/React.createElement("button", {
2334
+ type: "button",
2335
+ "aria-label": "".concat(next).concat(ariaLabelTitle),
2336
+ className: classNames(styles$7.btn, styles$7.btnNext),
2337
+ onClick: handleNextClick,
2338
+ disabled: !isReady
2339
+ }, /*#__PURE__*/React.createElement(hdsReact.IconAngleRight, null));
2340
+ }
2341
+
2342
+ function CarouselSlideDot(_ref) {
2343
+ var slideIndex = _ref.slideIndex;
2344
+ var _useCarouselContext = useCarouselContext(),
2345
+ currentSlide = _useCarouselContext.currentSlide,
2346
+ handleUpdateSlideProps = _useCarouselContext.handleUpdateSlideProps,
2347
+ navigateWithDots = _useCarouselContext.navigateWithDots;
2348
+ var _useTranslationWithFa = useTranslationWithFallback(),
2349
+ t = _useTranslationWithFa.t;
2350
+ var onClickHandler = function onClickHandler(targetSlide) {
2351
+ if (targetSlide === currentSlide) {
2352
+ return;
2353
+ }
2354
+ handleUpdateSlideProps(targetSlide);
2355
+ };
2356
+ var dotButtonAriaLabel = t('carouselSliderDotNavLabelText').replace('{slideNumber}', String(slideIndex + 1));
2357
+ return /*#__PURE__*/React.createElement("button", {
2358
+ className: classNames(styles$7.dot, defaultConfig._defineProperty(defaultConfig._defineProperty({}, styles$7.selected, slideIndex === currentSlide), styles$7.button, navigateWithDots)),
2359
+ onClick: function onClick() {
2360
+ return onClickHandler(slideIndex);
2361
+ },
2362
+ tabIndex: 0,
2363
+ type: "button",
2364
+ "aria-label": dotButtonAriaLabel,
2365
+ disabled: !navigateWithDots
2366
+ });
2367
+ }
2368
+ function CarouselSlideDots() {
2369
+ var _useCarouselContext2 = useCarouselContext(),
2370
+ numberOfSlides = _useCarouselContext2.numberOfSlides,
2371
+ navigateWithDots = _useCarouselContext2.navigateWithDots;
2372
+ return /*#__PURE__*/React.createElement("div", {
2373
+ className: styles$7.dotsContainer,
2374
+ role: "navigation",
2375
+ "aria-hidden": !navigateWithDots,
2376
+ "data-testid": "carousel-dots"
2377
+ }, defaultConfig._toConsumableArray(Array(numberOfSlides)).map(function (entry, slideIndex) {
2378
+ return /*#__PURE__*/React.createElement(CarouselSlideDot, {
2379
+ key: getSlideDotKey(entry, slideIndex),
2380
+ slideIndex: slideIndex
2381
+ });
2382
+ }));
2383
+ }
2384
+
2385
+ var _excluded$3 = ["children", "className", "itemsDesktop", "itemsMobile"];
2386
+ function useCarouselDimensions() {
2387
+ var _useCarouselContext = useCarouselContext(),
2388
+ setWidth = _useCarouselContext.setWidth;
2389
+ var updateDimensions = function updateDimensions() {
2390
+ return setWidth(window.innerWidth);
2391
+ };
2392
+ React.useEffect(function () {
2393
+ updateDimensions();
2394
+ window.addEventListener('resize', updateDimensions);
2395
+ return function () {
2396
+ return window.removeEventListener('resize', updateDimensions);
2397
+ };
2398
+ // eslint-disable-next-line react-hooks/exhaustive-deps
2399
+ }, []);
2400
+ }
2401
+ function useCarouselRegionAriaLabel() {
2402
+ var _useCarouselContext2 = useCarouselContext(),
2403
+ title = _useCarouselContext2.title;
2404
+ var _useTranslationWithFa = useTranslationWithFallback(),
2405
+ t = _useTranslationWithFa.t;
2406
+ return t('carouselRegionLabelText').replace('{title}', title !== null && title !== void 0 ? title : '');
2407
+ }
2408
+ function CarouselWithContext(_ref) {
2409
+ var items = _ref.children,
2410
+ _ref$className = _ref.className,
2411
+ className = _ref$className === void 0 ? '' : _ref$className;
2412
+ var _useCarouselContext3 = useCarouselContext(),
2413
+ isReady = _useCarouselContext3.isReady,
2414
+ setTransformValue = _useCarouselContext3.setTransformValue,
2415
+ numberOfSlides = _useCarouselContext3.numberOfSlides,
2416
+ setNumberOfSlides = _useCarouselContext3.setNumberOfSlides,
2417
+ itemsPerSlide = _useCarouselContext3.itemsPerSlide,
2418
+ setItemsPerSlide = _useCarouselContext3.setItemsPerSlide,
2419
+ setCurrentSlide = _useCarouselContext3.setCurrentSlide,
2420
+ width = _useCarouselContext3.width,
2421
+ itemsShownOnDesktop = _useCarouselContext3.itemsShownOnDesktop,
2422
+ itemsShownOnMobile = _useCarouselContext3.itemsShownOnMobile,
2423
+ withDots = _useCarouselContext3.withDots,
2424
+ onLoadMore = _useCarouselContext3.onLoadMore,
2425
+ hasMore = _useCarouselContext3.hasMore;
2426
+ var carouselAriaLabel = useCarouselRegionAriaLabel();
2427
+ useCarouselDimensions();
2428
+ React.useEffect(function () {
2429
+ var _ref2;
2430
+ setItemsPerSlide(Math.ceil((_ref2 = width > MOBILE_WIDTH ? itemsShownOnDesktop : itemsShownOnMobile) !== null && _ref2 !== void 0 ? _ref2 : 1));
2431
+ setCurrentSlide(0);
2432
+ setTransformValue('0px');
2433
+ }, [width, itemsShownOnDesktop, itemsShownOnMobile, setItemsPerSlide, setCurrentSlide, setTransformValue]);
2434
+ React.useEffect(function () {
2435
+ if (itemsPerSlide > 0) {
2436
+ var itemsCount = hasMore && !!onLoadMore ? items.length + 1 : items.length;
2437
+ setNumberOfSlides(Math.ceil(itemsCount / itemsPerSlide));
2438
+ }
2439
+ }, [itemsPerSlide, hasMore, onLoadMore, items.length, setNumberOfSlides]);
2440
+ return /*#__PURE__*/React.createElement("div", {
2441
+ className: classNames(styles$7.container, className),
2442
+ role: "region",
2443
+ "aria-label": carouselAriaLabel
2444
+ }, /*#__PURE__*/React.createElement("div", {
2445
+ role: "group",
2446
+ className: styles$7.carouselWrapper
2447
+ }, numberOfSlides > 1 && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CarouselPreviousSlideButton, null), /*#__PURE__*/React.createElement(CarouselNextSlideButton, null))), isReady && (/*#__PURE__*/React.createElement("div", {
2448
+ className: styles$7.root
2449
+ }, /*#__PURE__*/React.createElement("div", {
2450
+ className: classNames(styles$7.slider, numberOfSlides === 1 && styles$7.noDots)
2451
+ }, /*#__PURE__*/React.createElement(CarouselSlider, null, items)), withDots && numberOfSlides > 1 && /*#__PURE__*/React.createElement(CarouselSlideDots, null)))));
2452
+ }
2453
+ function Carousel(_ref3) {
2454
+ var items = _ref3.children,
2455
+ _ref3$className = _ref3.className,
2456
+ className = _ref3$className === void 0 ? '' : _ref3$className,
2457
+ _ref3$itemsDesktop = _ref3.itemsDesktop,
2458
+ itemsDesktop = _ref3$itemsDesktop === void 0 ? initialCarouselContextStateValues.itemsShownOnDesktop : _ref3$itemsDesktop,
2459
+ _ref3$itemsMobile = _ref3.itemsMobile,
2460
+ itemsMobile = _ref3$itemsMobile === void 0 ? initialCarouselContextStateValues.itemsShownOnMobile : _ref3$itemsMobile,
2461
+ restOfBackwardCompatibleProps = defaultConfig._objectWithoutProperties(_ref3, _excluded$3);
2462
+ return /*#__PURE__*/React.createElement(CarouselContextProvider, defaultConfig._objectSpread2({
2463
+ itemsShownOnDesktop: itemsDesktop,
2464
+ itemsShownOnMobile: itemsMobile,
2465
+ numberOfItems: items.length
2466
+ }, restOfBackwardCompatibleProps), /*#__PURE__*/React.createElement(CarouselWithContext, {
2467
+ className: className
2468
+ }, items));
2469
+ }
2470
+
2471
+ var css_248z$6 = ".card-module_cardWrapper__SJr54{--height-image:8rem;--height-image-desktop:14.5rem;--width-image:8rem;--link-arrow-color:#000;--link-arrow-label-color:var(--link-arrow-color);display:flex;flex-direction:column;height:100%;min-width:fit-content;position:relative;word-break:break-word}@media (min-width:576px){.card-module_cardWrapper__SJr54{word-break:unset}.card-module_cardWrapper__SJr54.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_isDelimited__gQvB-{--height-image-desktop:100%;overflow-y:hidden}}.card-module_cardWrapper__SJr54.card-module_isHovered__cjbBc:hover{cursor:pointer}.card-module_cardWrapper__SJr54.card-module_isHovered__cjbBc .card-module_title__OJNPP{text-decoration:underline}.card-module_cardWrapper__SJr54.card-module_responsive__UybH4{flex-direction:row}.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_image-left__i3R--{flex-direction:row-reverse}.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi{flex-direction:column}.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_image-left__i3R--,.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_isDelimited__gQvB-{flex-direction:row-reverse}.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_image-left__i3R--.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_image-left__i3R--.card-module_isDelimited__gQvB-,.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_image-right__VbzxV{flex-direction:row}.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_image-right__VbzxV.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_fixed-horisontal__wHQHq.card-module_image-right__VbzxV.card-module_isDelimited__gQvB-{flex-direction:row-reverse}.card-module_cardWrapper__SJr54>:first-child{flex:1 1}.card-module_cardWrapper__SJr54.card-module_primary-image__95TKR>:first-child,.card-module_cardWrapper__SJr54>:last-child{flex:2 1}.card-module_cardWrapper__SJr54.card-module_primary-image__95TKR>:last-child{flex:1 1}.card-module_cardWrapper__SJr54.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_isDelimited__gQvB-{height:100%;text-decoration:none;width:100%}@media (min-width:576px){.card-module_cardWrapper__SJr54.card-module_isCentered__N166x>:first-child,.card-module_cardWrapper__SJr54.card-module_isCentered__N166x>:last-child,.card-module_cardWrapper__SJr54.card-module_isDelimited__gQvB->:first-child,.card-module_cardWrapper__SJr54.card-module_isDelimited__gQvB->:last-child{flex:none}}.card-module_cardWrapper__SJr54.card-module_withBorder__k-C0z{border:1px solid var(--color-black-30)}.card-module_cardWrapper__SJr54.card-module_withShadow__iM-RO{box-shadow:0 1px 12px 1px rgba(45,62,80,.12)}@media (min-width:576px){.card-module_cardWrapper__SJr54{flex-direction:column;margin-bottom:0}.card-module_cardWrapper__SJr54.card-module_responsive__UybH4,.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_image-left__i3R--{flex-direction:column}.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_image-left__i3R--.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_image-left__i3R--.card-module_isDelimited__gQvB-{flex-direction:row}.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_isDelimited__gQvB-{flex-direction:row-reverse}.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi{flex-direction:row}.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi.card-module_image-left__i3R--,.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi.card-module_isDelimited__gQvB-{flex-direction:row-reverse}.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi.card-module_image-left__i3R--.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi.card-module_image-left__i3R--.card-module_isDelimited__gQvB-{flex-direction:row}.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi.card-module_horizontalBorder__THzT0{border:none}}@media (min-width:576px) and (max-width:575px){.card-module_cardWrapper__SJr54.card-module_responsive-reverse__YmcIi.card-module_horizontalBorder__THzT0{border:1px solid var(--color-black-30)}}@media (min-width:576px){.card-module_cardWrapper__SJr54>:first-child{flex:1 1}.card-module_cardWrapper__SJr54.card-module_primary-image__95TKR>:first-child,.card-module_cardWrapper__SJr54>:last-child{flex:2 1}.card-module_cardWrapper__SJr54.card-module_primary-image__95TKR>:last-child{flex:1 1}.card-module_cardWrapper__SJr54.card-module_fixed-vertical__-kgtk>:first-child,.card-module_cardWrapper__SJr54.card-module_responsive__UybH4>:first-child{flex:0}.card-module_cardWrapper__SJr54.card-module_fixed-vertical__-kgtk>:last-child,.card-module_cardWrapper__SJr54.card-module_responsive__UybH4>:last-child{flex:auto}.card-module_cardWrapper__SJr54.card-module_isCentered__N166x.card-module_horizontalBorder__THzT0,.card-module_cardWrapper__SJr54.card-module_isDelimited__gQvB-.card-module_horizontalBorder__THzT0,.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_horizontalBorder__THzT0{border:1px solid var(--color-black-30)}}@media (min-width:576px) and (max-width:575px){.card-module_cardWrapper__SJr54.card-module_isCentered__N166x.card-module_horizontalBorder__THzT0,.card-module_cardWrapper__SJr54.card-module_isDelimited__gQvB-.card-module_horizontalBorder__THzT0,.card-module_cardWrapper__SJr54.card-module_responsive__UybH4.card-module_horizontalBorder__THzT0{border:none}}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR{background-position:50%;background-repeat:no-repeat;background-size:cover;box-sizing:border-box;min-width:var(--width-image);padding:var(--spacing-s) var(--spacing-m);position:relative;text-decoration:none}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_fixed-vertical__-kgtk,.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_responsive-reverse__YmcIi,.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_responsive__UybH4{padding-bottom:62.5%}@media (min-width:576px){.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_fixed-vertical__-kgtk,.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_responsive-reverse__YmcIi,.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_responsive__UybH4{min-height:var(--height-image-desktop)}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_responsive-reverse__YmcIi{padding-bottom:unset}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isDelimited__gQvB-{position:absolute;width:100%}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isDelimited__gQvB-{width:62.5%}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isDelimited__gQvB-.card-module_right__o9C8m{margin-right:37.5%}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isDelimited__gQvB-.card-module_left__GKCFu{margin-left:37.5%}}@media (min-width:576px) and (min-width:992px){.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isDelimited__gQvB-{width:80%}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isDelimited__gQvB-.card-module_right__o9C8m{margin-right:20%}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR.card-module_isDelimited__gQvB-.card-module_left__GKCFu{margin-left:20%}}@media (min-width:576px){.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR{min-height:var(--height-image-desktop)}}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR .card-module_imageLabel__0d1qL{padding:var(--spacing-xs)}.card-module_cardWrapper__SJr54 .card-module_imageWrapper__tIOgR .card-module_imageLabel__0d1qL .card-module_tag__B2hlG{--tag-background:var(--color-black-5);font-size:var(--fontsize-body-s);font-weight:600}.card-module_cardWrapper__SJr54 .card-module_contentWrapper__uM-3X{align-self:stretch;display:flex;flex:1;flex-direction:column;justify-content:space-between;position:relative}@media (max-width:575px){.card-module_cardWrapper__SJr54 .card-module_contentWrapper__uM-3X{background-color:var(--color-white)!important}}@media (min-width:576px){.card-module_cardWrapper__SJr54 .card-module_contentWrapper__uM-3X.card-module_isCentered__N166x,.card-module_cardWrapper__SJr54 .card-module_contentWrapper__uM-3X.card-module_isDelimited__gQvB-{margin:24px;width:37.5%;z-index:1}.card-module_cardWrapper__SJr54 .card-module_contentWrapper__uM-3X.card-module_isDelimited__gQvB-{margin:42px 24px;max-width:460px;width:62.5%}}.card-module_cardWrapper__SJr54 .card-module_content__sRwUK{flex:1}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F{display:flex;flex-direction:column;padding:var(--spacing-s) var(--spacing-m)}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_title__OJNPP{word-wrap:break-word;font-size:var(--fontsize-heading-s);line-height:var(--lineheight-m);margin:var(--spacing-2-xs) 0;padding:0}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_title__OJNPP.card-module_responsive-reverse__YmcIi{font-size:var(--fontsize-heading-m)}@media (min-width:576px){.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_title__OJNPP{word-wrap:normal;font-size:var(--fontsize-heading-m);margin-top:var(--spacing-2-xs)}}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_subTitle__nkj5k{color:var(--color-black-60);font-size:var(--fontsize-body-s);margin:var(--spacing-2-xs) 0}@media (min-width:576px){.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_subTitle__nkj5k{font-size:var(--fontsize-body-m)}}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_text__z1EUK{display:-webkit-box;font-size:var(--fontsize-body-m);line-height:var(--lineheight-m);order:3}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_text__z1EUK.card-module_clamp__ClsPx{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (min-width:576px){.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_text__z1EUK{-webkit-line-clamp:none;-webkit-box-orient:vertical;font-size:var(--fontsize-body-l);line-height:var(--lineheight-l);margin-bottom:var(--spacing-2-xs)}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_text__z1EUK.card-module_clamp__ClsPx{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_text__z1EUK.card-module_responsive-reverse__YmcIi{font-size:var(--fontsize-body-l);line-height:var(--lineheight-l)}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_text__z1EUK p{margin:0}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_customContent__mAO7p{margin:var(--spacing-2-xs) 0;order:4}.card-module_cardWrapper__SJr54 .card-module_textWrapper__xZN4F .card-module_customContent__mAO7p p{margin:0}.card-module_cardWrapper__SJr54 .card-module_buttonWrapper__oMDvH{color:var(--link-arrow-color);display:flex;line-height:var(--lineheight-l);order:5;padding:0 var(--spacing-s);padding-bottom:var(--spacing-2-xs);vertical-align:middle}@media (min-width:576px){.card-module_cardWrapper__SJr54 .card-module_buttonWrapper__oMDvH{padding-bottom:var(--spacing-s)}}.card-module_cardWrapper__SJr54 .card-module_buttonWrapper__oMDvH a{align-items:center;color:var(--link-arrow-color);display:flex;flex:1!important;justify-content:flex-start!important;text-decoration:none}.card-module_cardWrapper__SJr54 .card-module_buttonWrapper__oMDvH a>span{flex:none}.card-module_cardWrapper__SJr54 .card-module_buttonWrapper__oMDvH a svg{height:var(--spacing-2-xl);width:var(--spacing-2-xl)}.card-module_cardWrapper__SJr54 .card-module_buttonWrapper__oMDvH a .card-module_linkArrowLabel__wvEjb{color:var(--link-arrow-label-color);padding-top:var(--spacing-xs)}";
2472
+ var styles$6 = {"cardWrapper":"card-module_cardWrapper__SJr54","isCentered":"card-module_isCentered__N166x","isDelimited":"card-module_isDelimited__gQvB-","isHovered":"card-module_isHovered__cjbBc","title":"card-module_title__OJNPP","responsive":"card-module_responsive__UybH4","image-left":"card-module_image-left__i3R--","responsive-reverse":"card-module_responsive-reverse__YmcIi","fixed-horisontal":"card-module_fixed-horisontal__wHQHq","image-right":"card-module_image-right__VbzxV","primary-image":"card-module_primary-image__95TKR","withBorder":"card-module_withBorder__k-C0z","withShadow":"card-module_withShadow__iM-RO","horizontalBorder":"card-module_horizontalBorder__THzT0","fixed-vertical":"card-module_fixed-vertical__-kgtk","imageWrapper":"card-module_imageWrapper__tIOgR","right":"card-module_right__o9C8m","left":"card-module_left__GKCFu","imageLabel":"card-module_imageLabel__0d1qL","tag":"card-module_tag__B2hlG","contentWrapper":"card-module_contentWrapper__uM-3X","content":"card-module_content__sRwUK","textWrapper":"card-module_textWrapper__xZN4F","subTitle":"card-module_subTitle__nkj5k","text":"card-module_text__z1EUK","clamp":"card-module_clamp__ClsPx","customContent":"card-module_customContent__mAO7p","buttonWrapper":"card-module_buttonWrapper__oMDvH","linkArrowLabel":"card-module_linkArrowLabel__wvEjb"};
2473
+ styleInject(css_248z$6);
2474
+
2475
+ var warnOnSSR = function warnOnSSR() {
2476
+ // eslint-disable-next-line no-console
2477
+ console.warn('Attempted to navigate in a non-browser environment.');
2478
+ };
2479
+ function CardTitle(_ref) {
2480
+ var children = _ref.children,
2481
+ direction = _ref.direction,
2482
+ withTitleIcon = _ref.withTitleIcon,
2483
+ titleIcon = _ref.titleIcon;
2484
+ if (!children) {
2485
+ return null;
2486
+ }
2487
+ return /*#__PURE__*/React.createElement("div", {
2488
+ className: classNames(styles$6.title, direction && styles$6[direction])
2489
+ }, children, withTitleIcon && titleIcon);
2490
+ }
2491
+ function CardSubTitle(_ref2) {
2492
+ var children = _ref2.children,
2493
+ backgroundColor = _ref2.backgroundColor;
2494
+ if (!children) {
2495
+ return null;
2496
+ }
2497
+ return /*#__PURE__*/React.createElement("div", {
2498
+ className: classNames(styles$6.subTitle, backgroundColor && isWhiteText(backgroundColor) && colorStyles.whiteText)
2499
+ }, children);
2500
+ }
2501
+ function CardText(_ref3) {
2502
+ var children = _ref3.children,
2503
+ clampText = _ref3.clampText,
2504
+ direction = _ref3.direction;
2505
+ if (!children) {
2506
+ return null;
2507
+ }
2508
+ return /*#__PURE__*/React.createElement("div", {
2509
+ className: classNames(styles$6.text, clampText && styles$6.clamp, direction && styles$6[direction])
2510
+ }, children);
2511
+ }
2512
+ function CardLink(_ref4) {
2513
+ var url = _ref4.url,
2514
+ backgroundColor = _ref4.backgroundColor,
2515
+ openLinkInNewTab = _ref4.openLinkInNewTab,
2516
+ ariaLabel = _ref4.ariaLabel,
2517
+ linkArrowLabel = _ref4.linkArrowLabel;
2518
+ if (!url) {
2519
+ return null;
2520
+ }
2521
+ return /*#__PURE__*/React.createElement("div", {
2522
+ className: classNames(styles$6.buttonWrapper, backgroundColor ? colorStyles["background".concat(getColor(backgroundColor))] : colorStyles.backgroundDefault, backgroundColor && isWhiteText(backgroundColor) && colorStyles.whiteLink)
2523
+ }, /*#__PURE__*/React.createElement(Link, {
2524
+ tabIndex: -1,
2525
+ href: url,
2526
+ openInNewTab: openLinkInNewTab,
2527
+ iconLeft: /*#__PURE__*/React.createElement(hdsReact.IconArrowRight, {
2528
+ "aria-hidden": "true"
2529
+ }),
2530
+ showExternalIcon: false,
2531
+ "aria-label": ariaLabel
2532
+ }, linkArrowLabel && (/*#__PURE__*/React.createElement("span", {
2533
+ className: styles$6.linkArrowLabel
2534
+ }, linkArrowLabel))));
2535
+ }
2536
+ var getImagePosition = function getImagePosition(alignment) {
2537
+ if (alignment === undefined) {
2538
+ return 'image-left';
2539
+ }
2540
+ return alignment.indexOf('left') === -1 ? 'image-right' : 'image-left';
2541
+ };
2542
+ function CardInnerContent(_ref5) {
2543
+ var id = _ref5.id,
2544
+ ariaLabel = _ref5.ariaLabel,
2545
+ imageUrl = _ref5.imageUrl,
2546
+ imageLabel = _ref5.imageLabel,
2547
+ title = _ref5.title,
2548
+ withTitleIcon = _ref5.withTitleIcon,
2549
+ titleIcon = _ref5.titleIcon,
2550
+ subTitle = _ref5.subTitle,
2551
+ text = _ref5.text,
2552
+ customContent = _ref5.customContent,
2553
+ hasLink = _ref5.hasLink,
2554
+ linkArrowLabel = _ref5.linkArrowLabel,
2555
+ url = _ref5.url,
2556
+ withBorder = _ref5.withBorder,
2557
+ withShadow = _ref5.withShadow,
2558
+ _ref5$direction = _ref5.direction,
2559
+ direction = _ref5$direction === void 0 ? 'responsive' : _ref5$direction,
2560
+ clampText = _ref5.clampText,
2561
+ openLinkInNewTab = _ref5.openLinkInNewTab,
2562
+ style = _ref5.style,
2563
+ backgroundColor = _ref5.backgroundColor,
2564
+ _ref5$primaryContent = _ref5.primaryContent,
2565
+ primaryContent = _ref5$primaryContent === void 0 ? 'text' : _ref5$primaryContent,
2566
+ isHovered = _ref5.isHovered,
2567
+ handleToggleActive = _ref5.handleToggleActive,
2568
+ isDelimited = _ref5.isDelimited,
2569
+ isCentered = _ref5.isCentered,
2570
+ imagePosition = _ref5.imagePosition,
2571
+ handleClick = _ref5.handleClick;
2572
+ var dynamicBackgroundClass = backgroundColor ? colorStyles["background".concat(getColor(backgroundColor))] : colorStyles.backgroundDefault;
2573
+ return /*#__PURE__*/React.createElement("div", {
2574
+ className: classNames(styles$6.cardWrapper, defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty({}, styles$6[direction], direction), styles$6['primary-image'], primaryContent === 'image'), styles$6[imagePosition], imagePosition), styles$6.isDelimited, isDelimited), styles$6.isCentered, isCentered), styles$6.withBorder, withBorder), styles$6.withShadow, withShadow), styles$6.isHovered, isHovered), styles$6.horizontalBorder, backgroundColor), colorStyles.whiteText, backgroundColor && isWhiteText(backgroundColor))),
2575
+ style: style,
2576
+ onMouseEnter: url ? handleToggleActive : undefined,
2577
+ onMouseLeave: url ? handleToggleActive : undefined
2578
+ }, /*#__PURE__*/React.createElement(BackgroundImage, {
2579
+ id: "".concat(id, "-image"),
2580
+ url: imageUrl,
2581
+ labelTag: imageLabel,
2582
+ className: classNames(styles$6.imageWrapper, direction && styles$6[direction], isDelimited && styles$6.isDelimited, isCentered && styles$6.isCentered, imagePosition.includes('left') ? styles$6.left : styles$6.right)
2583
+ }), /*#__PURE__*/React.createElement("div", {
2584
+ className: classNames(styles$6.contentWrapper, isDelimited && styles$6.isDelimited, isCentered && styles$6.isCentered),
2585
+ onClick: handleClick
2586
+ }, /*#__PURE__*/React.createElement("div", {
2587
+ className: classNames(styles$6.content, dynamicBackgroundClass, defaultConfig._defineProperty(defaultConfig._defineProperty(defaultConfig._defineProperty({}, colorStyles.whiteText, backgroundColor && isWhiteText(backgroundColor)), styles$6.isDelimited, isDelimited), styles$6.isCentered, isCentered))
2588
+ }, /*#__PURE__*/React.createElement("div", {
2589
+ className: styles$6.textWrapper
2590
+ }, title && (/*#__PURE__*/React.createElement(CardTitle, {
2591
+ direction: direction,
2592
+ withTitleIcon: withTitleIcon,
2593
+ titleIcon: titleIcon
2594
+ }, title)), /*#__PURE__*/React.createElement(CardSubTitle, {
2595
+ backgroundColor: backgroundColor
2596
+ }, subTitle), text && (/*#__PURE__*/React.createElement(CardText, {
2597
+ clampText: clampText,
2598
+ direction: direction
2599
+ }, getTextFromHtml(text))), customContent && (/*#__PURE__*/React.createElement("div", {
2600
+ className: styles$6.customContent
2601
+ }, customContent)))), hasLink && (/*#__PURE__*/React.createElement(CardLink, {
2602
+ url: url,
2603
+ backgroundColor: backgroundColor,
2604
+ openLinkInNewTab: openLinkInNewTab,
2605
+ ariaLabel: ariaLabel,
2606
+ linkArrowLabel: linkArrowLabel
2607
+ }))));
2608
+ }
2609
+ function Card(props) {
2610
+ var _alignment$startsWith, _alignment$startsWith2;
2611
+ var id = props.id,
2612
+ ariaLabel = props.ariaLabel,
2613
+ className = props.className,
2614
+ url = props.url,
2615
+ openLinkInNewTab = props.openLinkInNewTab,
2616
+ flex = props.flex,
2617
+ alignment = props.alignment;
2618
+ var _useState = React.useState(false),
2619
+ _useState2 = defaultConfig._slicedToArray(_useState, 2),
2620
+ isHovered = _useState2[0],
2621
+ setIsHovered = _useState2[1];
2622
+ var handleToggleActive = function handleToggleActive() {
2623
+ return setIsHovered(function (val) {
2624
+ return !val;
2625
+ });
2626
+ };
2627
+ var isDelimited = (_alignment$startsWith = alignment === null || alignment === void 0 ? void 0 : alignment.startsWith('delimited')) !== null && _alignment$startsWith !== void 0 ? _alignment$startsWith : false;
2628
+ var isCentered = (_alignment$startsWith2 = alignment === null || alignment === void 0 ? void 0 : alignment.startsWith('center')) !== null && _alignment$startsWith2 !== void 0 ? _alignment$startsWith2 : false;
2629
+ var imagePosition = getImagePosition(alignment);
2630
+ var _useConfig = useConfig(),
2631
+ _useConfig$utils = _useConfig.utils,
2632
+ redirectToUrl = _useConfig$utils.redirectToUrl,
2633
+ getIsHrefExternal = _useConfig$utils.getIsHrefExternal;
2634
+ var handleClick = function handleClick() {
2635
+ if (!url) return;
2636
+ // Ensure we are in a client-side (browser) environment
2637
+ if (typeof window === 'undefined') {
2638
+ warnOnSSR();
2639
+ return;
2640
+ }
2641
+ // Determine if we should open a new tab: either it's explicitly set, or it's an external URL.
2642
+ var shouldOpenNewTab = openLinkInNewTab || getIsHrefExternal(url);
2643
+ if (shouldOpenNewTab) {
2644
+ var newWindow = window.open(url, '_blank', 'noopener,noreferrer');
2645
+ if (newWindow) newWindow.opener = null;
2646
+ } else {
2647
+ redirectToUrl(url);
2648
+ }
2649
+ };
2650
+ var content = /*#__PURE__*/React.createElement(CardInnerContent, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, props), {}, {
2651
+ isHovered: isHovered,
2652
+ handleToggleActive: handleToggleActive,
2653
+ isDelimited: isDelimited,
2654
+ isCentered: isCentered,
2655
+ imagePosition: imagePosition,
2656
+ handleClick: handleClick
2657
+ }));
2658
+ if (url) {
2659
+ return /*#__PURE__*/React.createElement(LinkBox, {
2660
+ id: id,
2661
+ href: url,
2662
+ className: className,
2663
+ "aria-label": ariaLabel || '',
2664
+ openInNewTab: openLinkInNewTab,
2665
+ onMouseEnter: handleToggleActive,
2666
+ onMouseLeave: handleToggleActive,
2667
+ flex: flex
2668
+ }, content);
2669
+ }
2670
+ return content;
2671
+ }
2672
+
2673
+ var css_248z$5 = ".grid-module_grid__JUXmh{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:0}@media (min-width:768px){.grid-module_grid__JUXmh{grid-gap:1.5rem;display:grid}}.grid-module_cols1__ZbHhZ{grid-template-columns:repeat(1,1fr)}.grid-module_cols2__w-J5q{grid-template-columns:repeat(2,1fr)}.grid-module_cols3__RME8z{grid-template-columns:repeat(3,1fr)}.grid-module_cols4__GJLLr{grid-template-columns:repeat(4,1fr)}.grid-module_cols5__cWFZQ{grid-template-columns:repeat(5,1fr)}.grid-module_cols6__iTHpi{grid-template-columns:repeat(6,1fr)}.grid-module_cols7__fcSjJ{grid-template-columns:repeat(7,1fr)}.grid-module_cols8__Ida4g{grid-template-columns:repeat(8,1fr)}.grid-module_cols9__DSIkl{grid-template-columns:repeat(9,1fr)}.grid-module_cols10__13ESR{grid-template-columns:repeat(10,1fr)}.grid-module_cols11__uIC1K{grid-template-columns:repeat(11,1fr)}.grid-module_cols12__WaIiP{grid-template-columns:repeat(12,1fr)}";
2674
+ var styles$5 = {"grid":"grid-module_grid__JUXmh","cols1":"grid-module_cols1__ZbHhZ","cols2":"grid-module_cols2__w-J5q","cols3":"grid-module_cols3__RME8z","cols4":"grid-module_cols4__GJLLr","cols5":"grid-module_cols5__cWFZQ","cols6":"grid-module_cols6__iTHpi","cols7":"grid-module_cols7__fcSjJ","cols8":"grid-module_cols8__Ida4g","cols9":"grid-module_cols9__DSIkl","cols10":"grid-module_cols10__13ESR","cols11":"grid-module_cols11__uIC1K","cols12":"grid-module_cols12__WaIiP"};
2675
+ styleInject(css_248z$5);
2676
+
2677
+ function Grid(_ref) {
2678
+ var _ref$colsCount = _ref.colsCount,
2679
+ colsCount = _ref$colsCount === void 0 ? 3 : _ref$colsCount,
2680
+ children = _ref.children,
2681
+ className = _ref.className;
2682
+ return /*#__PURE__*/React.createElement("div", {
2683
+ className: classNames(styles$5.grid, styles$5["cols".concat(colsCount)], className)
2684
+ }, children);
2685
+ }
2686
+
2687
+ var _templateObject$1, _templateObject2$1, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
2688
+ var defaultOptions$1 = {};
2689
+ var EventTypeId;
2690
+ (function (EventTypeId) {
2691
+ EventTypeId["Course"] = "Course";
2692
+ EventTypeId["General"] = "General";
2693
+ })(EventTypeId || (EventTypeId = {}));
2694
+ var Link__Purpose$1;
2695
+ (function (Link__Purpose) {
2696
+ /** `EXECUTION` features provide metadata necessary for operation execution. */
2697
+ Link__Purpose["Execution"] = "EXECUTION";
2698
+ /** `SECURITY` features provide metadata necessary to securely resolve fields. */
2699
+ Link__Purpose["Security"] = "SECURITY";
2700
+ })(Link__Purpose$1 || (Link__Purpose$1 = {}));
2701
+ var LocalizedCmsEventFieldsFragmentDoc = Apollo.gql(_templateObject$1 || (_templateObject$1 = defaultConfig._taggedTemplateLiteral(["\n fragment localizedCmsEventFields on LocalizedObject {\n en\n fi\n sv\n }\n"])));
2702
+ var KeywordCmsEventFieldsFragmentDoc = Apollo.gql(_templateObject2$1 || (_templateObject2$1 = defaultConfig._taggedTemplateLiteral(["\n fragment keywordCmsEventFields on Keyword {\n id\n internalId\n dataSource\n hasUpcomingEvents\n name {\n ...localizedCmsEventFields\n }\n }\n ", "\n"])), LocalizedCmsEventFieldsFragmentDoc);
2703
+ var PlaceCmsEventFieldsFragmentDoc = Apollo.gql(_templateObject3 || (_templateObject3 = defaultConfig._taggedTemplateLiteral(["\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 ", "\n"])), LocalizedCmsEventFieldsFragmentDoc);
2704
+ var OfferCmsEventFieldsFragmentDoc = Apollo.gql(_templateObject4 || (_templateObject4 = defaultConfig._taggedTemplateLiteral(["\n fragment offerCmsEventFields on Offer {\n isFree\n price {\n ...localizedCmsEventFields\n }\n description {\n ...localizedCmsEventFields\n }\n infoUrl {\n ...localizedCmsEventFields\n }\n }\n ", "\n"])), LocalizedCmsEventFieldsFragmentDoc);
2705
+ var RegistrationCmsEventFieldsFragmentDoc = Apollo.gql(_templateObject5 || (_templateObject5 = defaultConfig._taggedTemplateLiteral(["\n fragment registrationCmsEventFields on Registration {\n enrolmentStartTime\n enrolmentEndTime\n remainingAttendeeCapacity\n audienceMinAge\n audienceMaxAge\n }\n"])));
2706
+ var EventCmsEventFieldsFragmentDoc = Apollo.gql(_templateObject6 || (_templateObject6 = defaultConfig._taggedTemplateLiteral(["\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 ", "\n ", "\n ", "\n ", "\n ", "\n"])), LocalizedCmsEventFieldsFragmentDoc, KeywordCmsEventFieldsFragmentDoc, PlaceCmsEventFieldsFragmentDoc, OfferCmsEventFieldsFragmentDoc, RegistrationCmsEventFieldsFragmentDoc);
2707
+ var EventListDocument = Apollo.gql(_templateObject7 || (_templateObject7 = defaultConfig._taggedTemplateLiteral(["\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 ", "\n"])), EventCmsEventFieldsFragmentDoc);
2708
+ /**
2709
+ * __useEventListQuery__
2710
+ *
2711
+ * To run a query within a React component, call `useEventListQuery` and pass it any options that fit your needs.
2712
+ * When your component renders, `useEventListQuery` returns an object from Apollo Client that contains loading, error, and data properties
2713
+ * you can use to render your UI.
2714
+ *
2715
+ * @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;
2716
+ *
2717
+ * @example
2718
+ * const { data, loading, error } = useEventListQuery({
2719
+ * variables: {
2720
+ * eventType: // value for 'eventType'
2721
+ * internetBased: // value for 'internetBased'
2722
+ * suitableFor: // value for 'suitableFor'
2723
+ * allOngoing: // value for 'allOngoing'
2724
+ * allOngoingAnd: // value for 'allOngoingAnd'
2725
+ * division: // value for 'division'
2726
+ * end: // value for 'end'
2727
+ * endsAfter: // value for 'endsAfter'
2728
+ * endsBefore: // value for 'endsBefore'
2729
+ * inLanguage: // value for 'inLanguage'
2730
+ * include: // value for 'include'
2731
+ * isFree: // value for 'isFree'
2732
+ * keyword: // value for 'keyword'
2733
+ * keywordAnd: // value for 'keywordAnd'
2734
+ * keywordOrSet1: // value for 'keywordOrSet1'
2735
+ * keywordOrSet2: // value for 'keywordOrSet2'
2736
+ * keywordOrSet3: // value for 'keywordOrSet3'
2737
+ * keywordNot: // value for 'keywordNot'
2738
+ * language: // value for 'language'
2739
+ * localOngoingAnd: // value for 'localOngoingAnd'
2740
+ * location: // value for 'location'
2741
+ * page: // value for 'page'
2742
+ * pageSize: // value for 'pageSize'
2743
+ * publisher: // value for 'publisher'
2744
+ * sort: // value for 'sort'
2745
+ * start: // value for 'start'
2746
+ * startsAfter: // value for 'startsAfter'
2747
+ * startsBefore: // value for 'startsBefore'
2748
+ * superEvent: // value for 'superEvent'
2749
+ * superEventType: // value for 'superEventType'
2750
+ * text: // value for 'text'
2751
+ * translation: // value for 'translation'
2752
+ * },
2753
+ * });
2754
+ */
2755
+ function useEventListQuery(baseOptions) {
2756
+ var options = defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, defaultOptions$1), baseOptions);
2757
+ return Apollo__namespace.useQuery(EventListDocument, options);
2758
+ }
2759
+ var EventsByIdsDocument = Apollo.gql(_templateObject8 || (_templateObject8 = defaultConfig._taggedTemplateLiteral(["\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 ", "\n"])), EventCmsEventFieldsFragmentDoc);
2760
+ /**
2761
+ * __useEventsByIdsQuery__
2762
+ *
2763
+ * To run a query within a React component, call `useEventsByIdsQuery` and pass it any options that fit your needs.
2764
+ * When your component renders, `useEventsByIdsQuery` returns an object from Apollo Client that contains loading, error, and data properties
2765
+ * you can use to render your UI.
2766
+ *
2767
+ * @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;
2768
+ *
2769
+ * @example
2770
+ * const { data, loading, error } = useEventsByIdsQuery({
2771
+ * variables: {
2772
+ * ids: // value for 'ids'
2773
+ * eventType: // value for 'eventType'
2774
+ * include: // value for 'include'
2775
+ * sort: // value for 'sort'
2776
+ * pageSize: // value for 'pageSize'
2777
+ * page: // value for 'page'
2778
+ * start: // value for 'start'
2779
+ * end: // value for 'end'
2780
+ * },
2781
+ * });
2782
+ */
2783
+ function useEventsByIdsQuery(baseOptions) {
2784
+ var options = defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, defaultOptions$1), baseOptions);
2785
+ return Apollo__namespace.useQuery(EventsByIdsDocument, options);
2786
+ }
2787
+
2788
+ function useQueryWithEventsApolloClientFromConfig() {
2789
+ var _useConfig = useConfig(),
2790
+ eventsApolloClient = _useConfig.eventsApolloClient;
2791
+ if (!eventsApolloClient) {
2792
+ throw Error('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');
2793
+ }
2794
+ return eventsApolloClient;
2795
+ }
2796
+
2797
+ function useQueryWithVenuesApolloClientFromConfig() {
2798
+ var _useConfig = useConfig(),
2799
+ venuesApolloClient = _useConfig.venuesApolloClient;
2800
+ if (!venuesApolloClient) {
2801
+ throw Error('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');
2802
+ }
2803
+ return venuesApolloClient;
2804
+ }
2805
+
2806
+ var _templateObject, _templateObject2;
2807
+ var defaultOptions = {};
2808
+ var ResourceState;
2809
+ (function (ResourceState) {
2810
+ ResourceState["Closed"] = "closed";
2811
+ ResourceState["EnterOnly"] = "enter_only";
2812
+ ResourceState["ExitOnly"] = "exit_only";
2813
+ ResourceState["Open"] = "open";
2814
+ ResourceState["OpenAndReservable"] = "open_and_reservable";
2815
+ ResourceState["SelfService"] = "self_service";
2816
+ ResourceState["Undefined"] = "undefined";
2817
+ ResourceState["WeatherPermitting"] = "weather_permitting";
2818
+ ResourceState["WithKey"] = "with_key";
2819
+ ResourceState["WithKeyAndReservation"] = "with_key_and_reservation";
2820
+ ResourceState["WithReservation"] = "with_reservation";
2821
+ })(ResourceState || (ResourceState = {}));
2822
+ var Link__Purpose;
2823
+ (function (Link__Purpose) {
2824
+ /** `EXECUTION` features provide metadata necessary for operation execution. */
2825
+ Link__Purpose["Execution"] = "EXECUTION";
2826
+ /** `SECURITY` features provide metadata necessary to securely resolve fields. */
2827
+ Link__Purpose["Security"] = "SECURITY";
2828
+ })(Link__Purpose || (Link__Purpose = {}));
2829
+ var ListVenueFragmentDoc = Apollo.gql(_templateObject || (_templateObject = defaultConfig._taggedTemplateLiteral(["\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"])));
2830
+ var VenuesByIdsDocument = Apollo.gql(_templateObject2 || (_templateObject2 = defaultConfig._taggedTemplateLiteral(["\n query VenuesByIds($ids: [ID!]!) {\n venuesByIds(ids: $ids) {\n ...listVenue\n }\n }\n ", "\n"])), ListVenueFragmentDoc);
2831
+ /**
2832
+ * __useVenuesByIdsQuery__
2833
+ *
2834
+ * To run a query within a React component, call `useVenuesByIdsQuery` and pass it any options that fit your needs.
2835
+ * When your component renders, `useVenuesByIdsQuery` returns an object from Apollo Client that contains loading, error, and data properties
2836
+ * you can use to render your UI.
2837
+ *
2838
+ * @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;
2839
+ *
2840
+ * @example
2841
+ * const { data, loading, error } = useVenuesByIdsQuery({
2842
+ * variables: {
2843
+ * ids: // value for 'ids'
2844
+ * },
2845
+ * });
2846
+ */
2847
+ function useVenuesByIdsQuery(baseOptions) {
2848
+ var options = defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, defaultOptions), baseOptions);
2849
+ return Apollo__namespace.useQuery(VenuesByIdsDocument, options);
2850
+ }
2851
+
2852
+ /** Cloned from the events-proxy https://github.com/City-of-Helsinki/events-helsinki-api-proxy/tree/master/src/utils */
2853
+ /**
2854
+ * Normalize snake case keys to a form that GraphlQL can use
2855
+ * Keys with @-prefix are replacing with internal-prefix
2856
+ * e.g
2857
+ * @event_type => internalEventType
2858
+ * event_end_date => eventEndDate
2859
+ */
2860
+ var normalizeKey = (function (snakecase) {
2861
+ var str = snakecase.replace('@', 'internal_');
2862
+ return str[0].toLowerCase() + str.substr(1).toLowerCase().replace(/(_[a-z])/g, function ($1) {
2863
+ return $1.toUpperCase().replace('_', '');
2864
+ });
2865
+ });
2866
+
2867
+ /**
2868
+ * Normalizes an object or array of objects by converting keys from snake_case to camelCase.
2869
+ * This function handles nested objects and arrays recursively.
2870
+ *
2871
+ * Example:
2872
+ * Before:
2873
+ * {
2874
+ * @id: "123",
2875
+ * event_type: "foo",
2876
+ * event_price: {
2877
+ * is_free: false
2878
+ * }
2879
+ * }
2880
+ * After:
2881
+ * {
2882
+ * internalId: "123",
2883
+ * eventType: "foo",
2884
+ * eventPrice: {
2885
+ * isFree: false
2886
+ * }
2887
+ * }
2888
+ *
2889
+ * @template T - The type of the input value.
2890
+ * @param {T} value - The object, array, or primitive to normalize.
2891
+ * @returns {T} - A new object or array with normalized keys, or the original value if it's a primitive.
2892
+ */
2893
+ function normalizeKeys(value) {
2894
+ // If the value is an array, map over it and recursively call normalizeKeys for each item.
2895
+ if (Array.isArray(value)) {
2896
+ return value.map(normalizeKeys);
2897
+ }
2898
+ // If the value is an object (and not null), recursively call normalizeKeys for its values.
2899
+ if (value && defaultConfig._typeof(value) === 'object' && value.constructor === Object) {
2900
+ // We use a type assertion here to build the new object.
2901
+ var obj = {};
2902
+ var keys = Object.keys(value);
2903
+ var len = keys.length;
2904
+ for (var i = 0; i < len; i += 1) {
2905
+ var currentKey = keys[i];
2906
+ var normalizedKey = normalizeKey(currentKey);
2907
+ // Recursively normalize the value associated with the current key
2908
+ obj[normalizedKey] = normalizeKeys(value[currentKey]);
2909
+ }
2910
+ return obj;
2911
+ }
2912
+ // If the value is a primitive (string, number, boolean, null, etc.), return it directly.
2913
+ return value;
2914
+ }
2915
+
2916
+ var LINKEDEVENTS_DATE_NOW = 'now';
2917
+
2918
+ /**
2919
+ * @param {ids} ids - the venue ids in number format.
2920
+ * @return {Array} - Returns array of tprek formatted string ids.
2921
+ */
2922
+ function getVenueIds(ids) {
2923
+ return ids.map(function (id) {
2924
+ return "tprek:".concat(id);
2925
+ });
2926
+ }
2927
+ /**
2928
+ * @param {event} - event.
2929
+ * @return {boolean} - Returns true if events' end time in past.
2930
+ */
2931
+ var isEventEndTimeInPast = function isEventEndTimeInPast(event) {
2932
+ return !!(event !== null && event !== void 0 && event.endTime) && dateFns.isPast(new Date(event.endTime));
2933
+ };
2934
+ /**
2935
+ * @param {event} - event.
2936
+ * @return {boolean} - Returns true if events' end time in null and start time in past.
2937
+ */
2938
+ var isEventEndTimeNullAndStartTimeInPast = function isEventEndTimeNullAndStartTimeInPast(event) {
2939
+ return !!(event !== null && event !== void 0 && event.startTime) && (event === null || event === void 0 ? void 0 : event.endTime) === null && dateFns.isPast(new Date(event.startTime));
2940
+ };
2941
+ /**
2942
+ * @param {event} - event.
2943
+ * @return {boolean} - Returns true if event is closed.
2944
+ */
2945
+ var isEventClosed = function isEventClosed(event) {
2946
+ return isEventEndTimeInPast(event) || isEventEndTimeNullAndStartTimeInPast(event);
2947
+ };
2948
+ /**
2949
+ * @param {params} - Get params.
2950
+ * @return {object} - Returns normalized values.
2951
+ */
2952
+ var normalizeParamsValues = function normalizeParamsValues(params) {
2953
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2954
+ var normalizedParams = defaultConfig._objectSpread2({}, normalizeKeys(params));
2955
+ // Fix for course event type lower case
2956
+ if (normalizedParams.eventType) {
2957
+ normalizedParams.eventType = normalizedParams.eventType.charAt(0).toUpperCase() + normalizedParams.eventType.slice(1);
2958
+ }
2959
+ // Fix boolean types
2960
+ Object.keys(normalizedParams).forEach(function (param) {
2961
+ if (normalizedParams[param] === 'true') {
2962
+ normalizedParams[param] = true;
2963
+ } else if (normalizedParams[param] === 'false') {
2964
+ normalizedParams[param] = false;
2965
+ }
2966
+ });
2967
+ return normalizedParams;
2968
+ };
2969
+ /**
2970
+ * @param {dateString} - Get date string.
2971
+ * @return {boolean} - Returns true if the date is valid
2972
+ */
2973
+ function isValidDate(dateString) {
2974
+ return !Number.isNaN(Date.parse(dateString));
2975
+ }
2976
+ /**
2977
+ * @param {start} start - Get start date.
2978
+ * @return {boolean} - Returns current date as string if the initial was in past.
2979
+ */
2980
+ var convertDateStringInPastToNow = function convertDateStringInPastToNow(start) {
2981
+ var startDate = new Date(start);
2982
+ var now = new Date();
2983
+ if (isValidDate(start) && startDate <= now) {
2984
+ return LINKEDEVENTS_DATE_NOW;
2985
+ }
2986
+ return start;
2987
+ };
2988
+
2989
+ var _excluded$2 = ["children", "isLoading", "loadingText"];
2990
+ function LoadingButton(_ref) {
2991
+ var children = _ref.children,
2992
+ isLoading = _ref.isLoading,
2993
+ loadingText = _ref.loadingText,
2994
+ rest = defaultConfig._objectWithoutProperties(_ref, _excluded$2);
2995
+ var disabled = isLoading ? true : rest.disabled;
2996
+ var iconStart = isLoading ? /*#__PURE__*/React.createElement(hdsReact.LoadingSpinner, {
2997
+ small: true
2998
+ }) : null;
2999
+ var variant = isLoading ? hdsReact.ButtonVariant.Clear : hdsReact.ButtonVariant.Primary;
3000
+ return /*#__PURE__*/React.createElement(hdsReact.Button, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, rest), {}, {
3001
+ variant: variant,
3002
+ disabled: disabled || isLoading,
3003
+ iconStart: iconStart,
3004
+ style: {
3005
+ cursor: isLoading ? 'wait' : ''
3006
+ }
3007
+ }), isLoading ? String(loadingText) : String(children));
3008
+ }
3009
+
3010
+ var _excluded$1 = ["cards"],
3011
+ _excluded2 = ["cards", "onLoadMore", "hasMore", "loading", "loadMoreButtonLabelText", "title"],
3012
+ _excluded3 = ["collection", "convertPastDatesToNow"],
3013
+ _excluded4 = ["collection"],
3014
+ _excluded5 = ["collection", "locale"],
3015
+ _excluded6 = ["collection"];
3016
+ function CollectionGrid(_ref) {
3017
+ var cards = _ref.cards,
3018
+ rest = defaultConfig._objectWithoutProperties(_ref, _excluded$1);
3019
+ return /*#__PURE__*/React.createElement("div", {
3020
+ className: styles$8.gridWrapper
3021
+ }, /*#__PURE__*/React.createElement(Grid, defaultConfig._objectSpread2({
3022
+ className: styles$8.grid
3023
+ }, rest), cards));
3024
+ }
3025
+ function CollectionCarousel(_ref2) {
3026
+ var cards = _ref2.cards,
3027
+ onLoadMore = _ref2.onLoadMore,
3028
+ hasMore = _ref2.hasMore,
3029
+ loading = _ref2.loading,
3030
+ loadMoreButtonLabelText = _ref2.loadMoreButtonLabelText,
3031
+ title = _ref2.title,
3032
+ rest = defaultConfig._objectWithoutProperties(_ref2, _excluded2);
3033
+ return /*#__PURE__*/React.createElement("div", {
3034
+ className: styles$8.carouselWrapper
3035
+ }, /*#__PURE__*/React.createElement(Carousel, defaultConfig._objectSpread2({
3036
+ title: title,
3037
+ className: styles$8.carousel,
3038
+ onLoadMore: onLoadMore,
3039
+ hasMore: hasMore,
3040
+ loading: loading,
3041
+ loadMoreButtonLabelText: loadMoreButtonLabelText,
3042
+ withDots: true,
3043
+ navigateWithDots: true
3044
+ }, rest), cards));
3045
+ }
3046
+ function Collection(_ref3) {
3047
+ var title = _ref3.title,
3048
+ description = _ref3.description,
3049
+ cards = _ref3.cards,
3050
+ className = _ref3.className,
3051
+ collectionContainerProps = _ref3.collectionContainerProps,
3052
+ _ref3$type = _ref3.type,
3053
+ type = _ref3$type === void 0 ? 'grid' : _ref3$type,
3054
+ _ref3$loading = _ref3.loading,
3055
+ loading = _ref3$loading === void 0 ? false : _ref3$loading,
3056
+ _ref3$hasNext = _ref3.hasNext,
3057
+ hasNext = _ref3$hasNext === void 0 ? false : _ref3$hasNext,
3058
+ onLoadMore = _ref3.onLoadMore,
3059
+ showAllUrl = _ref3.showAllUrl;
3060
+ var _useConfig = useConfig(),
3061
+ _useConfig$copy = _useConfig.copy,
3062
+ loadMoreButtonLabelText = _useConfig$copy.loadMoreButtonLabelText,
3063
+ showAllText = _useConfig$copy.showAllText;
3064
+ var componentForType = {
3065
+ carousel: (/*#__PURE__*/React.createElement(CollectionCarousel, defaultConfig._objectSpread2({
3066
+ cards: cards,
3067
+ onLoadMore: onLoadMore,
3068
+ hasMore: hasNext,
3069
+ loading: loading,
3070
+ loadMoreButtonLabelText: loadMoreButtonLabelText,
3071
+ title: title
3072
+ }, collectionContainerProps))),
3073
+ // todo: initial grid items amout (3) take from config or headless cms when implemented
3074
+ grid: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CollectionGrid, defaultConfig._objectSpread2({
3075
+ cards: cards
3076
+ }, collectionContainerProps)), hasNext && (/*#__PURE__*/React.createElement(LoadingButton, {
3077
+ className: styles$8.loadMoreButton,
3078
+ onClick: onLoadMore,
3079
+ isLoading: loading
3080
+ }, loadMoreButtonLabelText))))
3081
+ };
3082
+ return /*#__PURE__*/React.createElement("div", {
3083
+ className: classNames(styles$8[type], className)
3084
+ }, /*#__PURE__*/React.createElement("div", {
3085
+ className: styles$8.collection
3086
+ }, /*#__PURE__*/React.createElement("div", {
3087
+ className: classNames(styles$8.headerRow, showAllUrl ? styles$8.withShowAll : '')
3088
+ }, title && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h2", {
3089
+ className: classNames(styles$8.heading, type === 'carousel' && styles$8.carousel)
3090
+ }, title), showAllUrl && showAllText && (/*#__PURE__*/React.createElement(Link, {
3091
+ className: styles$8.showAll,
3092
+ href: showAllUrl
3093
+ }, showAllText))))), description && /*#__PURE__*/React.createElement("p", {
3094
+ className: styles$8.description
3095
+ }, description), componentForType[type]));
3096
+ }
3097
+ function getEventCollectionCards(_ref4) {
3098
+ var items = _ref4.items,
3099
+ getRoutedInternalHref = _ref4.getRoutedInternalHref,
3100
+ getEventCardProps = _ref4.getEventCardProps,
3101
+ EventCardContent = _ref4.EventCardContent,
3102
+ HelsinkiCityOwnedIcon = _ref4.HelsinkiCityOwnedIcon,
3103
+ organisationPrefixes = _ref4.organisationPrefixes,
3104
+ _ref4$locale = _ref4.locale,
3105
+ locale = _ref4$locale === void 0 ? defaultConfig.DEFAULT_LOCALE : _ref4$locale;
3106
+ var cards = items.map(function (item) {
3107
+ return getEventCardProps(item, organisationPrefixes, locale);
3108
+ }).map(function (cardProps, i) {
3109
+ var url = getRoutedInternalHref(cardProps.url, undefined);
3110
+ return /*#__PURE__*/React.createElement(Card, defaultConfig._objectSpread2(defaultConfig._objectSpread2({
3111
+ key: cardProps.id
3112
+ }, cardProps), {}, {
3113
+ url: url,
3114
+ direction: "fixed-vertical",
3115
+ customContent: EventCardContent && /*#__PURE__*/React.createElement(EventCardContent, {
3116
+ event: items[i]
3117
+ }),
3118
+ titleIcon: cardProps.withTitleIcon && HelsinkiCityOwnedIcon && /*#__PURE__*/React.createElement(HelsinkiCityOwnedIcon, null)
3119
+ }));
3120
+ });
3121
+ return cards;
3122
+ }
3123
+ /**
3124
+ * EventSearchCollection uses an (LinkedEvents) URL to make a API query to fetch the related events.
3125
+ *
3126
+ * Use `convertPastDatesToNow = true` to fix an issue (between the CMS and the LinkedEvents) when old ended events are shown.
3127
+ */
3128
+ function EventSearchCollection(_ref5) {
3129
+ var _url$split$, _eventsList$data;
3130
+ var collection = _ref5.collection,
3131
+ _ref5$convertPastDate = _ref5.convertPastDatesToNow,
3132
+ convertPastDatesToNow = _ref5$convertPastDate === void 0 ? true : _ref5$convertPastDate,
3133
+ delegatedProps = defaultConfig._objectWithoutProperties(_ref5, _excluded3);
3134
+ var eventsApolloClient = useQueryWithEventsApolloClientFromConfig();
3135
+ var _useConfig2 = useConfig(),
3136
+ currentLanguageCode = _useConfig2.currentLanguageCode,
3137
+ organisationPrefixes = _useConfig2.organisationPrefixes,
3138
+ _useConfig2$utils = _useConfig2.utils,
3139
+ _getRoutedInternalHref = _useConfig2$utils.getRoutedInternalHref,
3140
+ getEventCardProps = _useConfig2$utils.getEventCardProps,
3141
+ _useConfig2$component = _useConfig2.components,
3142
+ EventCardContent = _useConfig2$component.EventCardContent,
3143
+ HelsinkiCityOwnedIcon = _useConfig2$component.HelsinkiCityOwnedIcon;
3144
+ var url = collection.url;
3145
+ // TODO: use initAmountOfEvents -field when it's null-issue is fixed
3146
+ // initAmountOfEvents only in case if load more is implemented (this feature is skipped now)
3147
+ var pageSize = 9; // collection.initAmountOfEvents
3148
+ var searchParams = new URLSearchParams((_url$split$ = url.split('?')[1]) !== null && _url$split$ !== void 0 ? _url$split$ : url.split('?')[0]);
3149
+ var params = Object.fromEntries(searchParams.entries());
3150
+ var normalizedParams = normalizeParamsValues(params);
3151
+ var start = convertPastDatesToNow ? convertDateStringInPastToNow(normalizedParams.start) : normalizedParams.start;
3152
+ var variables = defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, normalizedParams), {}, {
3153
+ start: start,
3154
+ pageSize: pageSize,
3155
+ include: ['in_language', 'keywords', 'location', 'audience']
3156
+ });
3157
+ var _useEventListQuery = useEventListQuery({
3158
+ client: eventsApolloClient !== 'disabled' ? eventsApolloClient : undefined,
3159
+ ssr: false,
3160
+ notifyOnNetworkStatusChange: true,
3161
+ variables: variables
3162
+ }),
3163
+ data = _useEventListQuery.data,
3164
+ loading = _useEventListQuery.loading;
3165
+ var eventsList = data === null || data === void 0 ? void 0 : data.eventList;
3166
+ if (!data && loading) {
3167
+ return /*#__PURE__*/React.createElement("div", {
3168
+ className: styles$8.loadingSpinnerWrapper
3169
+ }, /*#__PURE__*/React.createElement(hdsReact.LoadingSpinner, {
3170
+ multicolor: true
3171
+ }));
3172
+ }
3173
+ var cards = getEventCollectionCards({
3174
+ items: (_eventsList$data = eventsList === null || eventsList === void 0 ? void 0 : eventsList.data) !== null && _eventsList$data !== void 0 ? _eventsList$data : [],
3175
+ getRoutedInternalHref: function getRoutedInternalHref(link, type) {
3176
+ return _getRoutedInternalHref(link, type !== null && type !== void 0 ? type : exports.ModuleItemTypeEnum.Event);
3177
+ },
3178
+ getEventCardProps: getEventCardProps,
3179
+ EventCardContent: EventCardContent,
3180
+ HelsinkiCityOwnedIcon: HelsinkiCityOwnedIcon,
3181
+ organisationPrefixes: organisationPrefixes,
3182
+ locale: currentLanguageCode
3183
+ });
3184
+ return /*#__PURE__*/React.createElement(Collection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, delegatedProps), {}, {
3185
+ cards: cards
3186
+ }));
3187
+ }
3188
+ function EventSelectionCollection(_ref6) {
3189
+ var _data$eventsByIds$dat;
3190
+ var collection = _ref6.collection,
3191
+ delegatedProps = defaultConfig._objectWithoutProperties(_ref6, _excluded4);
3192
+ var eventsApolloClient = useQueryWithEventsApolloClientFromConfig();
3193
+ var _useConfig3 = useConfig(),
3194
+ currentLanguageCode = _useConfig3.currentLanguageCode,
3195
+ organisationPrefixes = _useConfig3.organisationPrefixes,
3196
+ _useConfig3$utils = _useConfig3.utils,
3197
+ _getRoutedInternalHref2 = _useConfig3$utils.getRoutedInternalHref,
3198
+ getEventCardProps = _useConfig3$utils.getEventCardProps,
3199
+ _useConfig3$component = _useConfig3.components,
3200
+ EventCardContent = _useConfig3$component.EventCardContent,
3201
+ HelsinkiCityOwnedIcon = _useConfig3$component.HelsinkiCityOwnedIcon;
3202
+ // TODO: use initAmountOfEvents -field when it's null-issue is fixed
3203
+ var pageSize = collection.events.length; // collection.initAmountOfEvents
3204
+ var _useEventsByIdsQuery = useEventsByIdsQuery({
3205
+ client: eventsApolloClient !== 'disabled' ? eventsApolloClient : undefined,
3206
+ ssr: false,
3207
+ notifyOnNetworkStatusChange: true,
3208
+ skip: collection.events.length === 0,
3209
+ variables: {
3210
+ ids: collection.events,
3211
+ pageSize: pageSize,
3212
+ include: ['in_language', 'keywords', 'location', 'audience'],
3213
+ eventType: [EventTypeId.General, EventTypeId.Course]
3214
+ }
3215
+ }),
3216
+ data = _useEventsByIdsQuery.data,
3217
+ loading = _useEventsByIdsQuery.loading;
3218
+ // Reduce past events that are no longer available and therefore do not need to be displayed
3219
+ var eventsListFiltered = (_data$eventsByIds$dat = data === null || data === void 0 ? void 0 : data.eventsByIds.data.filter(function (event) {
3220
+ return !isEventClosed(event);
3221
+ })) !== null && _data$eventsByIds$dat !== void 0 ? _data$eventsByIds$dat : [];
3222
+ var eventsListSorted = [];
3223
+ // sorting events in the same order it was defined in cms
3224
+ if ((eventsListFiltered === null || eventsListFiltered === void 0 ? void 0 : eventsListFiltered.length) > 0) {
3225
+ collection.events.forEach(function (eventId) {
3226
+ var event = eventsListFiltered.find(function (eventData) {
3227
+ return eventData.id === eventId;
3228
+ });
3229
+ if (event) {
3230
+ eventsListSorted.push(event);
3231
+ }
3232
+ });
3233
+ }
3234
+ if (!data && loading) {
3235
+ return /*#__PURE__*/React.createElement("div", {
3236
+ className: styles$8.loadingSpinnerWrapper
3237
+ }, /*#__PURE__*/React.createElement(hdsReact.LoadingSpinner, {
3238
+ multicolor: true
3239
+ }));
3240
+ }
3241
+ var cards = getEventCollectionCards({
3242
+ items: eventsListSorted,
3243
+ getRoutedInternalHref: function getRoutedInternalHref(link, type) {
3244
+ return _getRoutedInternalHref2(link, type !== null && type !== void 0 ? type : exports.ModuleItemTypeEnum.Event);
3245
+ },
3246
+ getEventCardProps: getEventCardProps,
3247
+ EventCardContent: EventCardContent,
3248
+ HelsinkiCityOwnedIcon: HelsinkiCityOwnedIcon,
3249
+ organisationPrefixes: organisationPrefixes,
3250
+ locale: currentLanguageCode
3251
+ });
3252
+ return /*#__PURE__*/React.createElement(Collection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, delegatedProps), {}, {
3253
+ cards: cards
3254
+ }));
3255
+ }
3256
+ function getLocationsCollectionCards(_ref7) {
3257
+ var items = _ref7.items,
3258
+ getRoutedInternalHref = _ref7.getRoutedInternalHref,
3259
+ getLocationCardProps = _ref7.getLocationCardProps,
3260
+ VenueCardContent = _ref7.VenueCardContent,
3261
+ HelsinkiCityOwnedIcon = _ref7.HelsinkiCityOwnedIcon;
3262
+ var cards = items.map(function (item) {
3263
+ return getLocationCardProps(item);
3264
+ }).map(function (cardProps, i) {
3265
+ var url = getRoutedInternalHref(cardProps.url, exports.ModuleItemTypeEnum.Venue);
3266
+ return /*#__PURE__*/React.createElement(Card, defaultConfig._objectSpread2(defaultConfig._objectSpread2({
3267
+ key: cardProps.id
3268
+ }, cardProps), {}, {
3269
+ url: url,
3270
+ titleIcon: cardProps.withTitleIcon && HelsinkiCityOwnedIcon && /*#__PURE__*/React.createElement(HelsinkiCityOwnedIcon, null),
3271
+ direction: "fixed-vertical",
3272
+ customContent: VenueCardContent && /*#__PURE__*/React.createElement(VenueCardContent, {
3273
+ location: items[i]
3274
+ })
3275
+ }));
3276
+ });
3277
+ return cards;
3278
+ }
3279
+ function LocationsSelectionCollection(_ref8) {
3280
+ var collection = _ref8.collection,
3281
+ locale = _ref8.locale,
3282
+ delegatedProps = defaultConfig._objectWithoutProperties(_ref8, _excluded5);
3283
+ var venuesApolloClient = useQueryWithVenuesApolloClientFromConfig();
3284
+ var _useConfig4 = useConfig(),
3285
+ _useConfig4$utils = _useConfig4.utils,
3286
+ _getRoutedInternalHref3 = _useConfig4$utils.getRoutedInternalHref,
3287
+ getLocationCardProps = _useConfig4$utils.getLocationCardProps,
3288
+ _useConfig4$component = _useConfig4.components,
3289
+ VenueCardContent = _useConfig4$component.VenueCardContent,
3290
+ HelsinkiCityOwnedIcon = _useConfig4$component.HelsinkiCityOwnedIcon;
3291
+ var _useVenuesByIdsQuery = useVenuesByIdsQuery({
3292
+ client: venuesApolloClient !== 'disabled' ? venuesApolloClient : undefined,
3293
+ ssr: false,
3294
+ notifyOnNetworkStatusChange: true,
3295
+ variables: {
3296
+ ids: getVenueIds(collection.venues)
3297
+ },
3298
+ context: {
3299
+ headers: {
3300
+ 'Accept-Language': locale
3301
+ }
3302
+ }
3303
+ }),
3304
+ data = _useVenuesByIdsQuery.data,
3305
+ loading = _useVenuesByIdsQuery.loading;
3306
+ var venuesList = data === null || data === void 0 ? void 0 : data.venuesByIds;
3307
+ if (!data && loading) {
3308
+ return /*#__PURE__*/React.createElement("div", {
3309
+ className: styles$8.loadingSpinnerWrapper
3310
+ }, /*#__PURE__*/React.createElement(hdsReact.LoadingSpinner, {
3311
+ multicolor: true
3312
+ }));
3313
+ }
3314
+ var cards = getLocationsCollectionCards({
3315
+ items: venuesList !== null && venuesList !== void 0 ? venuesList : [],
3316
+ getRoutedInternalHref: function getRoutedInternalHref(link) {
3317
+ return _getRoutedInternalHref3(link, exports.ModuleItemTypeEnum.Venue);
3318
+ },
3319
+ getLocationCardProps: getLocationCardProps,
3320
+ VenueCardContent: VenueCardContent,
3321
+ HelsinkiCityOwnedIcon: HelsinkiCityOwnedIcon
3322
+ });
3323
+ return /*#__PURE__*/React.createElement(Collection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, delegatedProps), {}, {
3324
+ cards: cards
3325
+ }));
3326
+ }
3327
+ function PageArticleCollection(_ref9) {
3328
+ var collection = _ref9.collection,
3329
+ delegatedProps = defaultConfig._objectWithoutProperties(_ref9, _excluded6);
3330
+ var _useConfig5 = useConfig(),
3331
+ _useConfig5$utils = _useConfig5.utils,
3332
+ getRoutedInternalHref = _useConfig5$utils.getRoutedInternalHref,
3333
+ getArticlePageCardProps = _useConfig5$utils.getArticlePageCardProps;
3334
+ var cards = collection.items.reduce(function (result, item) {
3335
+ if (defaultConfig.isPageType(item) || defaultConfig.isArticleType(item)) result.push(getArticlePageCardProps(item));
3336
+ return result;
3337
+ }, []).map(function (cardProps) {
3338
+ var url = getRoutedInternalHref(cardProps.url, undefined);
3339
+ return /*#__PURE__*/React.createElement(Card, defaultConfig._objectSpread2(defaultConfig._objectSpread2({
3340
+ key: cardProps.id
3341
+ }, cardProps), {}, {
3342
+ url: url,
3343
+ direction: "fixed-vertical"
3344
+ }));
3345
+ });
3346
+ return /*#__PURE__*/React.createElement(Collection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, delegatedProps), {}, {
3347
+ showAllUrl: collection.showAllUrl,
3348
+ cards: cards
3349
+ }));
3350
+ }
3351
+
3352
+ function ContentModule(_ref) {
3353
+ var content = _ref.content,
3354
+ backgroundColor = _ref.backgroundColor,
3355
+ className = _ref.className;
3356
+ var _useConfig = useConfig(),
3357
+ _useConfig$htmlSaniti = _useConfig.htmlSanitizer,
3358
+ allowedUnsafeTags = _useConfig$htmlSaniti.allowedUnsafeTags,
3359
+ trustedOrigins = _useConfig$htmlSaniti.trustedOrigins;
3360
+ return /*#__PURE__*/React.createElement("div", {
3361
+ className: classNames(styles$h.pageModuleWrapper, styles$h.contentModuleWrapper, backgroundColor && colorStyles["background".concat(getColor(backgroundColor))], backgroundColor && isWhiteText(backgroundColor) && colorStyles.whiteText, backgroundColor ? styles$h.withPadding : '')
3362
+ }, /*#__PURE__*/React.createElement("div", {
3363
+ className: classNames(className)
3364
+ }, /*#__PURE__*/React.createElement(HtmlToReact, {
3365
+ components: {
3366
+ a: Link
3367
+ },
3368
+ allowedUnsafeTags: allowedUnsafeTags,
3369
+ trustedOrigins: trustedOrigins
3370
+ }, content || '')));
3371
+ }
3372
+
3373
+ // todo: implement module
3374
+ function CardModule(props) {
3375
+ return /*#__PURE__*/React.createElement("div", {
3376
+ className: styles$h.pageModuleWrapper
3377
+ }, /*#__PURE__*/React.createElement(Card, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, props), {}, {
3378
+ direction: "responsive-reverse",
3379
+ imageLabel: "",
3380
+ withBorder: true,
3381
+ hasLink: false,
3382
+ clampText: false
3383
+ })));
3384
+ }
3385
+
3386
+ var MAX_KEY_LENGTH = 200;
3387
+ function createHashKey(source) {
3388
+ var data = typeof source === 'string' ? source : JSON.stringify(source);
3389
+ return btoa(unescape(encodeURIComponent(data))).substring(0, MAX_KEY_LENGTH);
3390
+ }
3391
+
3392
+ // todo: implement module
3393
+ function CardsModule(_ref) {
3394
+ var items = _ref.items;
3395
+ return /*#__PURE__*/React.createElement("div", {
3396
+ className: classNames(styles$h.pageModuleWrapper, styles$h.cardsWrapper, items.length < 4 && styles$h.flexWrapper, items.length === 1 && styles$h.singleGridWrapper)
3397
+ }, items === null || items === void 0 ? void 0 : items.map(function (card, index) {
3398
+ var _card$link, _card$link2, _card$link3;
3399
+ // The card module does not contain any proeprty that could be used as an unique id, so one needs to be created
3400
+ var uniqueKey = createHashKey("".concat(index, "-").concat(card.title, "-").concat(card.description));
3401
+ return /*#__PURE__*/React.createElement(SimpleCard, {
3402
+ key: uniqueKey,
3403
+ title: card.title,
3404
+ description: card.description,
3405
+ linkTarget: (_card$link = card.link) === null || _card$link === void 0 ? void 0 : _card$link.target,
3406
+ linkTitle: (_card$link2 = card.link) === null || _card$link2 === void 0 ? void 0 : _card$link2.title,
3407
+ linkUrl: (_card$link3 = card.link) === null || _card$link3 === void 0 ? void 0 : _card$link3.url,
3408
+ backgroundColor: card.backgroundColor,
3409
+ direction: items.length === 1 ? 'horisontal' : 'vertical',
3410
+ icon: card.icon
3411
+ });
3412
+ }));
3413
+ }
3414
+
3415
+ var ImageGalleryContext = /*#__PURE__*/React.createContext({
3416
+ imageIndex: 0,
3417
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
3418
+ setImageIndex: function setImageIndex() {},
3419
+ selectedImageIndex: -1,
3420
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
3421
+ setSelectedImageIndex: function setSelectedImageIndex() {},
3422
+ isLightboxVisible: false,
3423
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
3424
+ setIsLightboxVisible: function setIsLightboxVisible() {},
3425
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
3426
+ toggleLightbox: function toggleLightbox() {}
3427
+ });
3428
+
3429
+ function ImageGalleryProvider(_ref) {
3430
+ var children = _ref.children;
3431
+ var _useState = React.useState(0),
3432
+ _useState2 = defaultConfig._slicedToArray(_useState, 2),
3433
+ imageIndex = _useState2[0],
3434
+ setImageIndex = _useState2[1];
3435
+ var _useState3 = React.useState(-1),
3436
+ _useState4 = defaultConfig._slicedToArray(_useState3, 2),
3437
+ selectedImageIndex = _useState4[0],
3438
+ setSelectedImageIndex = _useState4[1];
3439
+ var _useState5 = React.useState(false),
3440
+ _useState6 = defaultConfig._slicedToArray(_useState5, 2),
3441
+ isLightboxVisible = _useState6[0],
3442
+ setIsLightboxVisible = _useState6[1];
3443
+ var toggleLightbox = React.useCallback(function () {
3444
+ setIsLightboxVisible(function (prev) {
3445
+ return !prev;
3446
+ });
3447
+ }, [setIsLightboxVisible]);
3448
+ var config = React.useMemo(function () {
3449
+ return {
3450
+ imageIndex: imageIndex,
3451
+ setImageIndex: setImageIndex,
3452
+ selectedImageIndex: selectedImageIndex,
3453
+ setSelectedImageIndex: setSelectedImageIndex,
3454
+ isLightboxVisible: isLightboxVisible,
3455
+ setIsLightboxVisible: setIsLightboxVisible,
3456
+ toggleLightbox: toggleLightbox
3457
+ };
3458
+ }, [imageIndex, isLightboxVisible, selectedImageIndex, toggleLightbox]);
3459
+ return /*#__PURE__*/React.createElement(ImageGalleryContext.Provider, {
3460
+ value: config
3461
+ }, children);
3462
+ }
3463
+
3464
+ function useImageGalleryContext() {
3465
+ var context = React.useContext(ImageGalleryContext);
3466
+ if (!context) {
3467
+ throw new Error("Image gallery components cannot be used outside the ImageGalleryProvider");
3468
+ }
3469
+ return context;
3470
+ }
3471
+
3472
+ var css_248z$4 = ".imageGallery-module_imageCardWrapper__dTEII{margin:0!important;overflow:hidden;position:relative;width:100%}.imageGallery-module_imageCardWrapper__dTEII .imageGallery-module_imageWrapper__Gdx5g{aspect-ratio:3/2;background-position:50%;background-repeat:no-repeat;background-size:cover;border:2px solid transparent;box-sizing:border-box;width:100%}.imageGallery-module_imageCardWrapper__dTEII .imageGallery-module_imageWrapper__Gdx5g.imageGallery-module_withLightbox__6jLvc:focus{border:2px solid var(--color-black);outline:2px solid var(--color-black)}.imageGallery-module_imageCardWrapper__dTEII .imageGallery-module_imageWrapper__Gdx5g.imageGallery-module_withBorder__uUw5x{border:2px solid var(--color-black-90)}.imageGallery-module_photographer__fwPdR{margin:var(--spacing-xs) 0;word-break:break-all}.imageGallery-module_photographer__fwPdR.imageGallery-module_withMargin__WBGSQ{margin:var(--spacing-xs)}.imageGallery-module_link__n91FJ{display:inline-block;height:100%;left:0;position:absolute;top:0;width:100%}.imageGallery-module_lightbox__T4cmg{align-items:center;background-color:rgba(0,0,0,.6);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:10}.imageGallery-module_lightbox__T4cmg .imageGallery-module_lightboxContent__5Yag-{align-items:center;display:flex;height:100%;justify-content:center;margin:var(--spacing-m);max-height:90%;max-width:100%;position:absolute}.imageGallery-module_lightbox__T4cmg .imageGallery-module_lightboxContent__5Yag- .imageGallery-module_inner__OPlsi{background:#fff;display:flex;flex-direction:column;max-height:100%;position:relative;width:100%}.imageGallery-module_lightbox__T4cmg .imageGallery-module_lightboxContent__5Yag- .imageGallery-module_inner__OPlsi img{width:100%}.imageGallery-module_closeButton__D5W0J{background:0 0;border:none;color:var(--color-white);cursor:pointer;padding:0;position:absolute;right:0;top:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}.imageGallery-module_closeButton__D5W0J svg{fill:none;background-color:var(--color-white);display:block;mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 0h24v24H0z'/%3E%3Cpath fill='currentColor' d='M18 7.5 13.5 12l4.5 4.5-1.5 1.5-4.5-4.5L7.5 18 6 16.5l4.5-4.5L6 7.5 7.5 6l4.5 4.5L16.5 6z'/%3E%3C/g%3E%3C/svg%3E\");-webkit-transition:.3s;transition:.3s;width:1.5em}.imageGallery-module_actionsWrapper__IBaAP{display:flex;gap:8px;justify-content:space-between;padding:var(--spacing-xs)}.imageGallery-module_actionsWrapper__IBaAP button:focus{outline-color:var(--color-black)}.imageGallery-module_actionsWrapper__IBaAP button>div,.imageGallery-module_actionsWrapper__IBaAP button>span{margin:0!important;padding:0!important}.imageGallery-module_imageItemWrapper__Ug-Ma{display:flex;flex:1;flex-direction:column;overflow:hidden}.imageGallery-module_imageItemWrapper__Ug-Ma.imageGallery-module_withLightbox__6jLvc{cursor:pointer}";
3473
+ var styles$4 = {"imageCardWrapper":"imageGallery-module_imageCardWrapper__dTEII","imageWrapper":"imageGallery-module_imageWrapper__Gdx5g","withLightbox":"imageGallery-module_withLightbox__6jLvc","withBorder":"imageGallery-module_withBorder__uUw5x","photographer":"imageGallery-module_photographer__fwPdR","withMargin":"imageGallery-module_withMargin__WBGSQ","lightbox":"imageGallery-module_lightbox__T4cmg","lightboxContent":"imageGallery-module_lightboxContent__5Yag-","inner":"imageGallery-module_inner__OPlsi","closeButton":"imageGallery-module_closeButton__D5W0J","actionsWrapper":"imageGallery-module_actionsWrapper__IBaAP","imageItemWrapper":"imageGallery-module_imageItemWrapper__Ug-Ma"};
3474
+ styleInject(css_248z$4);
3475
+
3476
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
3477
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
3478
+ function ImageItem(_ref) {
3479
+ var image = _ref.image,
3480
+ imageId = _ref.imageId,
3481
+ lightboxUid = _ref.lightboxUid,
3482
+ withLightbox = _ref.withLightbox,
3483
+ withBorder = _ref.withBorder;
3484
+ var _useImageGalleryConte = useImageGalleryContext(),
3485
+ isLightboxVisible = _useImageGalleryConte.isLightboxVisible,
3486
+ setIsLightboxVisible = _useImageGalleryConte.setIsLightboxVisible,
3487
+ setImageIndex = _useImageGalleryConte.setImageIndex,
3488
+ setSelectedImageIndex = _useImageGalleryConte.setSelectedImageIndex,
3489
+ toggleLightbox = _useImageGalleryConte.toggleLightbox;
3490
+ var handleImageCardClick = function handleImageCardClick(e) {
3491
+ e.preventDefault();
3492
+ if (withLightbox) {
3493
+ toggleLightbox();
3494
+ }
3495
+ };
3496
+ var handleEnterKeyPress = function handleEnterKeyPress(event) {
3497
+ if (withLightbox && event.key === 'Enter') {
3498
+ setIsLightboxVisible(true);
3499
+ }
3500
+ };
3501
+ var handleImageCardFocus = function handleImageCardFocus(index) {
3502
+ setImageIndex(index);
3503
+ // selected card index before opening the lightbox
3504
+ setSelectedImageIndex(index);
3505
+ };
3506
+ var imageTitle = image.title || image.photographer;
3507
+ return /*#__PURE__*/React.createElement("div", {
3508
+ className: classNames(styles$4.imageItemWrapper, withLightbox ? styles$4.withLightbox : ''),
3509
+ onClick: handleImageCardClick
3510
+ }, /*#__PURE__*/React.createElement("figure", {
3511
+ className: classNames(styles$4.imageCardWrapper, withLightbox ? styles$4.withLightbox : ''),
3512
+ "aria-label": imageTitle
3513
+ }, /*#__PURE__*/React.createElement("div", {
3514
+ tabIndex: withLightbox && !isLightboxVisible ? 0 : -1,
3515
+ id: "".concat(lightboxUid, "-card-").concat(imageId),
3516
+ className: classNames(styles$4.imageWrapper, withBorder ? styles$4.withBorder : '', withLightbox ? styles$4.withLightbox : ''),
3517
+ style: {
3518
+ backgroundImage: "url(".concat(image.url)
3519
+ },
3520
+ onFocus: function onFocus() {
3521
+ return handleImageCardFocus(imageId);
3522
+ },
3523
+ onKeyDown: handleEnterKeyPress
3524
+ })), /*#__PURE__*/React.createElement("figcaption", {
3525
+ className: styles$4.photographer
3526
+ }, image.photographer));
3527
+ }
3528
+
3529
+ function ImagesGrid(_ref) {
3530
+ var images = _ref.images,
3531
+ columns = _ref.columns,
3532
+ lightboxUid = _ref.lightboxUid,
3533
+ withLightbox = _ref.withLightbox,
3534
+ withBorder = _ref.withBorder;
3535
+ var _useImageGalleryConte = useImageGalleryContext(),
3536
+ isLightboxVisible = _useImageGalleryConte.isLightboxVisible,
3537
+ selectedImageIndex = _useImageGalleryConte.selectedImageIndex;
3538
+ var gridContainerRef = React.useRef(null);
3539
+ React.useEffect(function () {
3540
+ if (!isLightboxVisible && selectedImageIndex !== -1) {
3541
+ var gridContainer = gridContainerRef.current;
3542
+ var selectedCard = gridContainer === null || gridContainer === void 0 ? void 0 : gridContainer.querySelector("[id=\"".concat(lightboxUid, "-card-").concat(selectedImageIndex, "\"]"));
3543
+ if (selectedCard) {
3544
+ selectedCard.focus();
3545
+ }
3546
+ }
3547
+ }, [isLightboxVisible, selectedImageIndex, lightboxUid]);
3548
+ return /*#__PURE__*/React.createElement("div", {
3549
+ ref: gridContainerRef
3550
+ }, /*#__PURE__*/React.createElement(Grid, {
3551
+ colsCount: images.length === 1 ? 1 : columns
3552
+ }, images.map(function (image, i) {
3553
+ return /*#__PURE__*/React.createElement(ImageItem
3554
+ // eslint-disable-next-line react/no-array-index-key
3555
+ , {
3556
+ // eslint-disable-next-line react/no-array-index-key
3557
+ key: "grid-image-".concat(i),
3558
+ imageId: i,
3559
+ image: image,
3560
+ lightboxUid: lightboxUid,
3561
+ withLightbox: withLightbox,
3562
+ withBorder: withBorder
3563
+ });
3564
+ })));
3565
+ }
3566
+
3567
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
3568
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
3569
+ /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
3570
+ function Lightbox(_ref) {
3571
+ var images = _ref.images,
3572
+ lightboxUid = _ref.lightboxUid;
3573
+ var lightboxRef = React.useRef(null);
3574
+ var barrierRef = React.useRef(null);
3575
+ var _useImageGalleryConte = useImageGalleryContext(),
3576
+ isLightboxVisible = _useImageGalleryConte.isLightboxVisible,
3577
+ imageIndex = _useImageGalleryConte.imageIndex,
3578
+ toggleLightbox = _useImageGalleryConte.toggleLightbox;
3579
+ var handleEscapeKeyPress = React.useCallback(function (event) {
3580
+ if (event.key === 'Escape') {
3581
+ toggleLightbox();
3582
+ }
3583
+ }, [toggleLightbox]);
3584
+ React.useEffect(function () {
3585
+ var lightbox = lightboxRef.current;
3586
+ if (!lightbox) return undefined;
3587
+ var focusableElements = lightbox.querySelectorAll('button, [tabindex]:not([tabindex="-1"])');
3588
+ var firstElement = focusableElements ? focusableElements[0] : null;
3589
+ var lastElement = focusableElements ? focusableElements[focusableElements.length - 1] : null;
3590
+ var handleTabKeyPress = function handleTabKeyPress(event) {
3591
+ if (focusableElements && event.key === 'Tab') {
3592
+ if (event.shiftKey && document.activeElement === firstElement) {
3593
+ event.preventDefault();
3594
+ lastElement === null || lastElement === void 0 || lastElement.focus();
3595
+ } else if (!event.shiftKey && document.activeElement === lastElement) {
3596
+ event.preventDefault();
3597
+ focusableElements[0].focus();
3598
+ }
3599
+ }
3600
+ };
3601
+ if (isLightboxVisible) {
3602
+ var _barrierRef$current;
3603
+ (_barrierRef$current = barrierRef.current) === null || _barrierRef$current === void 0 || _barrierRef$current.focus();
3604
+ lightbox.addEventListener('keydown', handleTabKeyPress);
3605
+ lightbox.addEventListener('keydown', handleEscapeKeyPress);
3606
+ }
3607
+ return function () {
3608
+ lightbox === null || lightbox === void 0 || lightbox.removeEventListener('keydown', handleTabKeyPress);
3609
+ lightbox === null || lightbox === void 0 || lightbox.removeEventListener('keydown', handleEscapeKeyPress);
3610
+ };
3611
+ }, [isLightboxVisible, handleEscapeKeyPress]);
3612
+ var imageTitle = images[imageIndex].title || images[imageIndex].photographer;
3613
+ var imagePhotogrpher = images[imageIndex].photographer;
3614
+ var imageUrl = images[imageIndex].url;
3615
+ var renderLightboxComponent = function renderLightboxComponent() {
3616
+ return /*#__PURE__*/React.createElement("div", {
3617
+ id: lightboxUid,
3618
+ role: "dialog",
3619
+ "aria-modal": true,
3620
+ "aria-labelledby": "".concat(lightboxUid, "-title"),
3621
+ className: styles$4.lightbox,
3622
+ onClick: toggleLightbox,
3623
+ ref: lightboxRef
3624
+ }, /*#__PURE__*/React.createElement("div", {
3625
+ onClick: function onClick(e) {
3626
+ e.stopPropagation();
3627
+ },
3628
+ className: styles$4.lightboxContent
3629
+ }, /*#__PURE__*/React.createElement("div", {
3630
+ className: styles$4.inner
3631
+ }, /*#__PURE__*/React.createElement("h2", {
3632
+ id: "".concat(lightboxUid, "-title"),
3633
+ className: styles$4.screenReaderText,
3634
+ ref: barrierRef,
3635
+ tabIndex: -1
3636
+ }, imageTitle), /*#__PURE__*/React.createElement("figure", {
3637
+ className: styles$4.imageCardWrapper,
3638
+ "aria-label": imageTitle
3639
+ }, /*#__PURE__*/React.createElement("img", {
3640
+ alt: imageTitle,
3641
+ src: imageUrl
3642
+ })), /*#__PURE__*/React.createElement("figcaption", {
3643
+ className: classNames(styles$4.photographer, styles$4.withMargin)
3644
+ }, imagePhotogrpher), images.length > 1 && /*#__PURE__*/React.createElement(Lightbox.Actions, {
3645
+ images: images
3646
+ }), /*#__PURE__*/React.createElement(Lightbox.CloseButton, {
3647
+ lightboxUid: lightboxUid
3648
+ }))));
3649
+ };
3650
+ return isLightboxVisible ? /*#__PURE__*/ReactDOM.createPortal(renderLightboxComponent(), document.body) : null;
3651
+ }
3652
+ function Actions(_ref2) {
3653
+ var images = _ref2.images;
3654
+ var _useImageGalleryConte2 = useImageGalleryContext(),
3655
+ imageIndex = _useImageGalleryConte2.imageIndex,
3656
+ setImageIndex = _useImageGalleryConte2.setImageIndex;
3657
+ var handleNextClick = function handleNextClick() {
3658
+ setImageIndex(function (prev) {
3659
+ return imageIndex === images.length - 1 ? 0 : prev + 1;
3660
+ });
3661
+ };
3662
+ var handlePreviousClick = function handlePreviousClick() {
3663
+ setImageIndex(function (prev) {
3664
+ return imageIndex === 0 ? images.length - 1 : prev - 1;
3665
+ });
3666
+ };
3667
+ var _useConfig = useConfig(),
3668
+ _useConfig$copy = _useConfig.copy,
3669
+ previous = _useConfig$copy.previous,
3670
+ next = _useConfig$copy.next;
3671
+ return /*#__PURE__*/React.createElement("div", {
3672
+ className: styles$4.actionsWrapper
3673
+ }, /*#__PURE__*/React.createElement(hdsReact.Button, {
3674
+ iconStart: /*#__PURE__*/React.createElement(hdsReact.IconAngleLeft, null),
3675
+ onClick: handlePreviousClick,
3676
+ theme: hdsReact.ButtonPresetTheme.Black,
3677
+ variant: hdsReact.ButtonVariant.Secondary,
3678
+ "aria-label": previous
3679
+ }, previous), /*#__PURE__*/React.createElement(hdsReact.Button, {
3680
+ iconStart: /*#__PURE__*/React.createElement(hdsReact.IconAngleRight, null),
3681
+ onClick: handleNextClick,
3682
+ theme: hdsReact.ButtonPresetTheme.Black,
3683
+ variant: hdsReact.ButtonVariant.Secondary,
3684
+ "aria-label": next
3685
+ }, next));
3686
+ }
3687
+ function CloseButton(_ref3) {
3688
+ var lightboxUid = _ref3.lightboxUid;
3689
+ var _useImageGalleryConte3 = useImageGalleryContext(),
3690
+ toggleLightbox = _useImageGalleryConte3.toggleLightbox;
3691
+ var _useConfig2 = useConfig(),
3692
+ closeButtonLabelText = _useConfig2.copy.closeButtonLabelText;
3693
+ return /*#__PURE__*/React.createElement("button", {
3694
+ className: styles$4.closeButton,
3695
+ id: "close-".concat(lightboxUid),
3696
+ type: "button",
3697
+ "aria-controls": lightboxUid.toString(),
3698
+ "aria-expanded": "true",
3699
+ onClick: toggleLightbox
3700
+ }, /*#__PURE__*/React.createElement("span", {
3701
+ className: styles$4.screenReaderText
3702
+ }, closeButtonLabelText), /*#__PURE__*/React.createElement("svg", {
3703
+ viewBox: "0 0 24 24",
3704
+ "aria-hidden": "true",
3705
+ tabIndex: -1
3706
+ }));
3707
+ }
3708
+ Lightbox.Actions = Actions;
3709
+ Lightbox.CloseButton = CloseButton;
3710
+
3711
+ function ImageGallery(_ref) {
3712
+ var images = _ref.images,
3713
+ _ref$withBorder = _ref.withBorder,
3714
+ withBorder = _ref$withBorder === void 0 ? false : _ref$withBorder,
3715
+ _ref$withLightbox = _ref.withLightbox,
3716
+ withLightbox = _ref$withLightbox === void 0 ? true : _ref$withLightbox,
3717
+ lightboxUid = _ref.lightboxUid,
3718
+ _ref$columns = _ref.columns,
3719
+ columns = _ref$columns === void 0 ? 5 : _ref$columns;
3720
+ return /*#__PURE__*/React.createElement(ImageGalleryProvider, null, withLightbox && /*#__PURE__*/React.createElement(Lightbox, {
3721
+ lightboxUid: lightboxUid,
3722
+ images: images
3723
+ }), /*#__PURE__*/React.createElement(ImagesGrid, {
3724
+ images: images,
3725
+ columns: columns,
3726
+ lightboxUid: lightboxUid,
3727
+ withBorder: withBorder,
3728
+ withLightbox: withLightbox
3729
+ }));
3730
+ }
3731
+
3732
+ function ImageGalleryModule(props) {
3733
+ return /*#__PURE__*/React.createElement("div", {
3734
+ className: styles$h.pageModuleWrapper
3735
+ }, /*#__PURE__*/React.createElement(ImageGallery, defaultConfig._objectSpread2({}, props)));
3736
+ }
3737
+
3738
+ function StepsModule(_ref) {
3739
+ var title = _ref.title,
3740
+ helpText = _ref.helpText,
3741
+ color = _ref.color,
3742
+ steps = _ref.steps,
3743
+ type = _ref.type,
3744
+ className = _ref.className;
3745
+ var stepsContents = steps === null || steps === void 0 ? void 0 : steps.map(function (step, index) {
3746
+ // The card module does not contain any proeprty that could be used as an unique id, so one needs to be created
3747
+ var uniqueKey = createHashKey("".concat(index, "-").concat(step.title, "-").concat(step.content));
3748
+ return {
3749
+ key: uniqueKey,
3750
+ title: getTextFromHtml(step.title),
3751
+ description: getTextFromHtml(step.content)
3752
+ };
3753
+ });
3754
+ return /*#__PURE__*/React.createElement("div", {
3755
+ className: styles$h.pageModuleWrapper
3756
+ }, /*#__PURE__*/React.createElement(hdsReact.StepByStep, {
3757
+ numberedList: type === 'numbers',
3758
+ className: classNames(color && colorStyles["backgroundListItem".concat(getColor(color))], color && isWhiteText(color) && colorStyles.whiteTextList, styles$h.stepsContainer, className),
3759
+ helpText: getTextFromHtml(helpText !== null && helpText !== void 0 ? helpText : ''),
3760
+ steps: stepsContents !== null && stepsContents !== void 0 ? stepsContents : [],
3761
+ title: title
3762
+ }));
3763
+ }
3764
+
3765
+ var css_248z$3 = ".pageContentBreadcrumb-module_container__Nq6Hc nav{margin:0}";
3766
+ var styles$3 = {"container":"pageContentBreadcrumb-module_container__Nq6Hc"};
3767
+ styleInject(css_248z$3);
3768
+
3769
+ function PageContentBreadcrumb(_ref) {
3770
+ var breadcrumbs = _ref.breadcrumbs;
3771
+ var _useConfig = useConfig(),
3772
+ breadcrumbNavigationLabel = _useConfig.copy.breadcrumbNavigationLabel;
3773
+ var listItems = defaultConfig.getBreadcrumbListItems(breadcrumbs);
3774
+ return /*#__PURE__*/React.createElement("div", {
3775
+ className: styles$3.container
3776
+ }, /*#__PURE__*/React.createElement(hdsReact.Breadcrumb, {
3777
+ "aria-label": breadcrumbNavigationLabel,
3778
+ list: listItems
3779
+ }));
3780
+ }
3781
+
3782
+ function SocialMediaFeedModule(_ref) {
3783
+ var anchor = _ref.anchor,
3784
+ title = _ref.title,
3785
+ script = _ref.script;
3786
+ var _useConfig = useConfig(),
3787
+ trustedOrigins = _useConfig.htmlSanitizer.trustedOrigins;
3788
+ var scriptWrapperRef = React.useRef(null);
3789
+ var clean = React.useMemo(function () {
3790
+ return DOMPurify.sanitize(script !== null && script !== void 0 ? script : '', {
3791
+ FORCE_BODY: true,
3792
+ ADD_TAGS: ['script', 'div']
3793
+ });
3794
+ }, [script]);
3795
+ React.useLayoutEffect(function () {
3796
+ var _scriptWrapperRef$cur;
3797
+ if ((_scriptWrapperRef$cur = scriptWrapperRef.current) !== null && _scriptWrapperRef$cur !== void 0 && _scriptWrapperRef$cur.innerHTML) {
3798
+ var range = document.createRange();
3799
+ range.selectNode(scriptWrapperRef.current);
3800
+ var documentFragment = range.createContextualFragment(scriptWrapperRef.current.innerHTML);
3801
+ scriptWrapperRef.current.innerHTML = '';
3802
+ scriptWrapperRef.current.append(documentFragment);
3803
+ }
3804
+ }, [clean, trustedOrigins]);
3805
+ var sanitizeScripts = function sanitizeScripts(domNode) {
3806
+ if ('attribs' in domNode) {
3807
+ if (domNode.name === 'script' && !isTrustedOrigin(domNode.attribs.src, trustedOrigins !== null && trustedOrigins !== void 0 ? trustedOrigins : [])) {
3808
+ // eslint-disable-next-line no-console
3809
+ console.warn('The unsafe social media feed script is not allowed. Please enable it in hcrc library configs.');
3810
+ return /*#__PURE__*/React.createElement("div", null);
3811
+ }
3812
+ }
3813
+ return domNode;
3814
+ };
3815
+ var htmlReactParserOptions = {
3816
+ replace: function replace(domNode) {
3817
+ return sanitizeScripts(domNode);
3818
+ }
3819
+ };
3820
+ return /*#__PURE__*/React.createElement("div", {
3821
+ id: anchor,
3822
+ className: styles$h.pageModuleWrapper
3823
+ }, title && (/*#__PURE__*/React.createElement(Text, {
3824
+ as: "h2",
3825
+ variant: "h2"
3826
+ }, title)), /*#__PURE__*/React.createElement("div", {
3827
+ ref: scriptWrapperRef
3828
+ }, parse(clean, htmlReactParserOptions)));
3829
+ }
3830
+
3831
+ var initialValue = {
3832
+ page: null
3833
+ };
3834
+ var PageContext = /*#__PURE__*/React.createContext(initialValue);
3835
+
3836
+ function PageContextProvider(_ref) {
3837
+ var page = _ref.page,
3838
+ children = _ref.children;
3839
+ var context = React.useMemo(function () {
3840
+ return {
3841
+ page: page
3842
+ };
3843
+ },
3844
+ // eslint-disable-next-line react-hooks/exhaustive-deps
3845
+ [page === null || page === void 0 ? void 0 : page.id, page === null || page === void 0 ? void 0 : page.uri]);
3846
+ return /*#__PURE__*/React.createElement(PageContext.Provider, {
3847
+ value: context
3848
+ }, children);
3849
+ }
3850
+
3851
+ var _excluded = ["page", "breadcrumbs", "collections", "heroContainer", "backUrl", "sidebarContentProps", "PageContentLayoutComponent", "content", "shareLinks", "className", "onArticlesSearch"];
3852
+ // Modules: Content, Image, Cards, Steps (possibly other in future)
3853
+ var defaultContentModules = function defaultContentModules(page) {
3854
+ var _page$modules;
3855
+ var contentModules = [];
3856
+ page === null || page === void 0 || (_page$modules = page.modules) === null || _page$modules === void 0 || _page$modules.map(function (module, index) {
3857
+ var uniqueKey = createHashKey("".concat(index, "-").concat(JSON.stringify(module)));
3858
+ if (defaultConfig.isLayoutContent(module)) {
3859
+ var _module$content, _module$backgroundCol;
3860
+ contentModules.push(/*#__PURE__*/React.createElement(ContentModule, {
3861
+ key: uniqueKey,
3862
+ content: (_module$content = module.content) !== null && _module$content !== void 0 ? _module$content : undefined,
3863
+ backgroundColor: (_module$backgroundCol = module.backgroundColor) !== null && _module$backgroundCol !== void 0 ? _module$backgroundCol : undefined
3864
+ }));
3865
+ } else if (defaultConfig.isLayoutCard(module)) {
3866
+ var _module$title, _module$description, _module$backgroundCol2, _module$link$url, _module$link, _module$image;
3867
+ contentModules.push(/*#__PURE__*/React.createElement(CardModule, {
3868
+ key: uniqueKey,
3869
+ title: (_module$title = module.title) !== null && _module$title !== void 0 ? _module$title : undefined,
3870
+ text: (_module$description = module.description) !== null && _module$description !== void 0 ? _module$description : undefined,
3871
+ backgroundColor: (_module$backgroundCol2 = module.backgroundColor) !== null && _module$backgroundCol2 !== void 0 ? _module$backgroundCol2 : undefined,
3872
+ hasLink: true,
3873
+ url: (_module$link$url = (_module$link = module.link) === null || _module$link === void 0 ? void 0 : _module$link.url) !== null && _module$link$url !== void 0 ? _module$link$url : undefined,
3874
+ imageUrl: (_module$image = module.image) === null || _module$image === void 0 ? void 0 : _module$image.medium_large,
3875
+ alignment: module.alignment
3876
+ }));
3877
+ } else if (defaultConfig.isLayoutCards(module)) {
3878
+ var _module$cards$filter$, _module$cards;
3879
+ var items = (_module$cards$filter$ = (_module$cards = module.cards) === null || _module$cards === void 0 ? void 0 : _module$cards.filter(function (card) {
3880
+ return card !== null;
3881
+ }).map(function (card) {
3882
+ var _card$backgroundColor, _card$description, _card$description2, _card$icon, _card$link$title, _card$link, _card$link$target, _card$link2, _card$link$url, _card$link3;
3883
+ return defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, card), {}, {
3884
+ backgroundColor: (_card$backgroundColor = card.backgroundColor) !== null && _card$backgroundColor !== void 0 ? _card$backgroundColor : undefined,
3885
+ title: (_card$description = card.description) !== null && _card$description !== void 0 ? _card$description : undefined,
3886
+ description: (_card$description2 = card.description) !== null && _card$description2 !== void 0 ? _card$description2 : undefined,
3887
+ icon: (_card$icon = card.icon) !== null && _card$icon !== void 0 ? _card$icon : undefined,
3888
+ link: defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, card.link), {}, {
3889
+ title: (_card$link$title = (_card$link = card.link) === null || _card$link === void 0 ? void 0 : _card$link.title) !== null && _card$link$title !== void 0 ? _card$link$title : undefined,
3890
+ target: (_card$link$target = (_card$link2 = card.link) === null || _card$link2 === void 0 ? void 0 : _card$link2.target) !== null && _card$link$target !== void 0 ? _card$link$target : undefined,
3891
+ url: (_card$link$url = (_card$link3 = card.link) === null || _card$link3 === void 0 ? void 0 : _card$link3.url) !== null && _card$link$url !== void 0 ? _card$link$url : undefined
3892
+ })
3893
+ });
3894
+ })) !== null && _module$cards$filter$ !== void 0 ? _module$cards$filter$ : [];
3895
+ contentModules.push(/*#__PURE__*/React.createElement(CardsModule, {
3896
+ key: uniqueKey,
3897
+ items: items
3898
+ }));
3899
+ } else if (defaultConfig.isLayoutImage(module)) {
3900
+ var _module$image$medium_, _module$image2, _module$image$medium, _module$image3, _module$photographer_, _module$border, _module$show_on_light;
3901
+ var image = {
3902
+ url: (_module$image$medium_ = (_module$image2 = module.image) === null || _module$image2 === void 0 ? void 0 : _module$image2.medium_large) !== null && _module$image$medium_ !== void 0 ? _module$image$medium_ : '',
3903
+ previewUrl: (_module$image$medium = (_module$image3 = module.image) === null || _module$image3 === void 0 ? void 0 : _module$image3.medium) !== null && _module$image$medium !== void 0 ? _module$image$medium : '',
3904
+ photographer: (_module$photographer_ = module.photographer_name) !== null && _module$photographer_ !== void 0 ? _module$photographer_ : ''
3905
+ };
3906
+ contentModules.push(/*#__PURE__*/React.createElement(ImageGalleryModule, {
3907
+ images: [image],
3908
+ key: uniqueKey,
3909
+ withBorder: (_module$border = module.border) !== null && _module$border !== void 0 ? _module$border : undefined,
3910
+ withLightbox: (_module$show_on_light = module.show_on_lightbox) !== null && _module$show_on_light !== void 0 ? _module$show_on_light : undefined,
3911
+ lightboxUid: "lightbox-".concat(index),
3912
+ columns: 1
3913
+ }));
3914
+ } else if (defaultConfig.isLayoutImageGallery(module)) {
3915
+ var _module$gallery$filte, _module$gallery;
3916
+ var images = (_module$gallery$filte = (_module$gallery = module.gallery) === null || _module$gallery === void 0 ? void 0 : _module$gallery.filter(function (image) {
3917
+ return !!image;
3918
+ }).map(function (image) {
3919
+ var _image$medium_large, _image$medium, _image$caption, _image$title;
3920
+ return {
3921
+ url: (_image$medium_large = image === null || image === void 0 ? void 0 : image.medium_large) !== null && _image$medium_large !== void 0 ? _image$medium_large : '',
3922
+ previewUrl: (_image$medium = image === null || image === void 0 ? void 0 : image.medium) !== null && _image$medium !== void 0 ? _image$medium : '',
3923
+ photographer: (_image$caption = image === null || image === void 0 ? void 0 : image.caption) !== null && _image$caption !== void 0 ? _image$caption : '',
3924
+ title: (_image$title = image === null || image === void 0 ? void 0 : image.title) !== null && _image$title !== void 0 ? _image$title : ''
3925
+ };
3926
+ })) !== null && _module$gallery$filte !== void 0 ? _module$gallery$filte : [];
3927
+ contentModules.push(/*#__PURE__*/React.createElement(ImageGalleryModule, {
3928
+ images: images,
3929
+ key: uniqueKey,
3930
+ withLightbox: true,
3931
+ lightboxUid: "lightbox-".concat(index),
3932
+ columns: 3
3933
+ }));
3934
+ } else if (defaultConfig.isLayoutSteps(module)) {
3935
+ var _module$steps$filter$, _module$steps, _module$title2, _module$description2, _module$color, _module$type;
3936
+ var steps = (_module$steps$filter$ = (_module$steps = module.steps) === null || _module$steps === void 0 ? void 0 : _module$steps.filter(function (step) {
3937
+ return !!step;
3938
+ }).map(function (step) {
3939
+ var _step$title, _step$content;
3940
+ return {
3941
+ title: (_step$title = step.title) !== null && _step$title !== void 0 ? _step$title : '',
3942
+ content: (_step$content = step.content) !== null && _step$content !== void 0 ? _step$content : ''
3943
+ };
3944
+ })) !== null && _module$steps$filter$ !== void 0 ? _module$steps$filter$ : [];
3945
+ contentModules.push(/*#__PURE__*/React.createElement(StepsModule, {
3946
+ key: uniqueKey,
3947
+ title: (_module$title2 = module.title) !== null && _module$title2 !== void 0 ? _module$title2 : undefined,
3948
+ steps: steps,
3949
+ helpText: (_module$description2 = module.description) !== null && _module$description2 !== void 0 ? _module$description2 : undefined,
3950
+ color: (_module$color = module.color) !== null && _module$color !== void 0 ? _module$color : undefined,
3951
+ type: (_module$type = module.type) !== null && _module$type !== void 0 ? _module$type : undefined
3952
+ }));
3953
+ } else if (defaultConfig.isLayoutSocialMediaFeed(module)) {
3954
+ var _module$anchor, _module$title3, _module$script;
3955
+ contentModules.push(/*#__PURE__*/React.createElement(SocialMediaFeedModule, {
3956
+ key: uniqueKey,
3957
+ anchor: (_module$anchor = module.anchor) !== null && _module$anchor !== void 0 ? _module$anchor : '',
3958
+ title: (_module$title3 = module.title) !== null && _module$title3 !== void 0 ? _module$title3 : undefined,
3959
+ script: (_module$script = module.script) !== null && _module$script !== void 0 ? _module$script : undefined
3960
+ }));
3961
+ }
3962
+ return null;
3963
+ });
3964
+ return contentModules;
3965
+ };
3966
+ var defaultContent = function defaultContent(page, onArticlesSearch) {
3967
+ var _page$title, _page$content, _page$date;
3968
+ var hideTitle = false;
3969
+ if (defaultConfig.isPageType(page)) {
3970
+ var _page$hero;
3971
+ hideTitle = Boolean(page === null || page === void 0 || (_page$hero = page.hero) === null || _page$hero === void 0 ? void 0 : _page$hero.title);
3972
+ }
3973
+ return /*#__PURE__*/React.createElement(PageMainContent, {
3974
+ title: !hideTitle ? (_page$title = page === null || page === void 0 ? void 0 : page.title) !== null && _page$title !== void 0 ? _page$title : '' : '',
3975
+ content: (_page$content = page === null || page === void 0 ? void 0 : page.content) !== null && _page$content !== void 0 ? _page$content : '',
3976
+ date: (_page$date = page === null || page === void 0 ? void 0 : page.date) !== null && _page$date !== void 0 ? _page$date : undefined,
3977
+ categories: page === null || page === void 0 ? void 0 : page.categories,
3978
+ contentModules: defaultContentModules(page),
3979
+ onArticlesSearch: onArticlesSearch
3980
+ });
3981
+ };
3982
+ var defaultCollections = function defaultCollections(_ref) {
3983
+ var _getCollections, _page$modules2;
3984
+ var page = _ref.page,
3985
+ _ref$isEventModulesEn = _ref.isEventModulesEnabled,
3986
+ isEventModulesEnabled = _ref$isEventModulesEn === void 0 ? true : _ref$isEventModulesEn,
3987
+ _ref$isVenueModulesEn = _ref.isVenueModulesEnabled,
3988
+ isVenueModulesEnabled = _ref$isVenueModulesEn === void 0 ? true : _ref$isVenueModulesEn;
3989
+ return (_getCollections = defaultConfig.getCollections((_page$modules2 = page === null || page === void 0 ? void 0 : page.modules) !== null && _page$modules2 !== void 0 ? _page$modules2 : [], true)) === null || _getCollections === void 0 ? void 0 : _getCollections.reduce(function (collectionElements, collection) {
3990
+ var _collection$id, _collection$title, _collection$descripti;
3991
+ var key = "collection-".concat(btoa("".concat((_collection$id = collection === null || collection === void 0 ? void 0 : collection.id) !== null && _collection$id !== void 0 ? _collection$id : '', "-").concat((_collection$title = collection === null || collection === void 0 ? void 0 : collection.title) !== null && _collection$title !== void 0 ? _collection$title : '', "-").concat((_collection$descripti = collection === null || collection === void 0 ? void 0 : collection.description) !== null && _collection$descripti !== void 0 ? _collection$descripti : '')));
3992
+ var commonCollectionProps = {
3993
+ title: collection.title,
3994
+ description: collection.description,
3995
+ type: defaultConfig.getCollectionUIType(collection),
3996
+ collectionContainerProps: {}
3997
+ };
3998
+ if (defaultConfig.isEventSearchCollection(collection)) {
3999
+ if (isEventModulesEnabled) {
4000
+ collectionElements.push(/*#__PURE__*/React.createElement(EventSearchCollection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, commonCollectionProps), {}, {
4001
+ key: key,
4002
+ collection: collection
4003
+ })));
4004
+ }
4005
+ } else if (defaultConfig.isEventSelectionCollection(collection)) {
4006
+ if (isEventModulesEnabled) {
4007
+ collectionElements.push(/*#__PURE__*/React.createElement(EventSelectionCollection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, commonCollectionProps), {}, {
4008
+ key: key,
4009
+ collection: collection
4010
+ })));
4011
+ }
4012
+ } else if (defaultConfig.isLocationsSelectionCollection(collection)) {
4013
+ if (isVenueModulesEnabled) {
4014
+ var _page$language;
4015
+ collectionElements.push(/*#__PURE__*/React.createElement(LocationsSelectionCollection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, commonCollectionProps), {}, {
4016
+ key: key,
4017
+ collection: collection,
4018
+ locale: page === null || page === void 0 || (_page$language = page.language) === null || _page$language === void 0 ? void 0 : _page$language.locale
4019
+ })));
4020
+ }
4021
+ } else {
4022
+ collectionElements.push(/*#__PURE__*/React.createElement(PageArticleCollection, defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, commonCollectionProps), {}, {
4023
+ key: key,
4024
+ collection: collection
4025
+ })));
4026
+ }
4027
+ return collectionElements;
4028
+ }, []);
4029
+ };
4030
+ function PageContent(props) {
4031
+ var _page$id, _page$featuredImage, _page$featuredImage$n, _page$featuredImage2, _page$featuredImage$n2, _page$featuredImage3;
4032
+ var page = props.page,
4033
+ breadcrumbs = props.breadcrumbs,
4034
+ collections = props.collections,
4035
+ heroContainer = props.heroContainer,
4036
+ backUrl = props.backUrl,
4037
+ sidebarContentProps = props.sidebarContentProps,
4038
+ _props$PageContentLay = props.PageContentLayoutComponent,
4039
+ PageContentLayoutComponent = _props$PageContentLay === void 0 ? PageContentLayout : _props$PageContentLay,
4040
+ content = props.content,
4041
+ shareLinks = props.shareLinks,
4042
+ className = props.className,
4043
+ onArticlesSearch = props.onArticlesSearch,
4044
+ pageContentLayoutProps = defaultConfig._objectWithoutProperties(props, _excluded);
4045
+ var _useConfig = useConfig(),
4046
+ Head = _useConfig.components.Head,
4047
+ eventsApolloClient = _useConfig.eventsApolloClient,
4048
+ venuesApolloClient = _useConfig.venuesApolloClient,
4049
+ mainContentId = _useConfig.mainContentId;
4050
+ var isEventModulesEnabled = eventsApolloClient !== undefined && eventsApolloClient !== 'disabled';
4051
+ var isVenueModulesEnabled = eventsApolloClient !== undefined && venuesApolloClient !== 'disabled';
4052
+ return /*#__PURE__*/React.createElement("main", {
4053
+ id: mainContentId !== null && mainContentId !== void 0 ? mainContentId : MAIN_CONTENT_ID,
4054
+ className: classNames('page-main-content', className)
4055
+ }, Head && /*#__PURE__*/React.createElement(PageMeta, {
4056
+ headComponent: Head,
4057
+ page: page
4058
+ }), /*#__PURE__*/React.createElement(PageContextProvider, {
4059
+ page: page
4060
+ }, /*#__PURE__*/React.createElement(PageContentLayoutComponent, defaultConfig._objectSpread2(defaultConfig._objectSpread2(defaultConfig._objectSpread2(defaultConfig._objectSpread2({}, props), pageContentLayoutProps), defaultConfig.getHeroProps(page)), {}, {
4061
+ breadcrumbs: breadcrumbs && (typeof breadcrumbs === 'function' ? (/*#__PURE__*/React.createElement(PageContentBreadcrumb, {
4062
+ breadcrumbs: breadcrumbs(page)
4063
+ })) : (/*#__PURE__*/React.createElement(PageContentBreadcrumb, {
4064
+ breadcrumbs: breadcrumbs
4065
+ }))),
4066
+ heroContainer: heroContainer,
4067
+ id: (_page$id = page === null || page === void 0 ? void 0 : page.id) !== null && _page$id !== void 0 ? _page$id : 'page',
4068
+ imageSrc: page === null || page === void 0 || (_page$featuredImage = page.featuredImage) === null || _page$featuredImage === void 0 || (_page$featuredImage = _page$featuredImage.node) === null || _page$featuredImage === void 0 ? void 0 : _page$featuredImage.large,
4069
+ imageAlt: (_page$featuredImage$n = page === null || page === void 0 || (_page$featuredImage2 = page.featuredImage) === null || _page$featuredImage2 === void 0 || (_page$featuredImage2 = _page$featuredImage2.node) === null || _page$featuredImage2 === void 0 ? void 0 : _page$featuredImage2.altText) !== null && _page$featuredImage$n !== void 0 ? _page$featuredImage$n : undefined,
4070
+ imageLabel: (_page$featuredImage$n2 = page === null || page === void 0 || (_page$featuredImage3 = page.featuredImage) === null || _page$featuredImage3 === void 0 || (_page$featuredImage3 = _page$featuredImage3.node) === null || _page$featuredImage3 === void 0 ? void 0 : _page$featuredImage3.photographerName) !== null && _page$featuredImage$n2 !== void 0 ? _page$featuredImage$n2 : undefined,
4071
+ backUrl: backUrl,
4072
+ content: typeof content === 'function' ? content(page) : content !== null && content !== void 0 ? content : defaultContent(page, onArticlesSearch),
4073
+ shareLinks: shareLinks,
4074
+ collections: typeof collections === 'function' ? collections(page) : collections !== null && collections !== void 0 ? collections : defaultCollections({
4075
+ page: page,
4076
+ isEventModulesEnabled: isEventModulesEnabled,
4077
+ isVenueModulesEnabled: isVenueModulesEnabled
4078
+ }),
4079
+ sidebarContent: /*#__PURE__*/React.createElement(SidebarContent, defaultConfig._objectSpread2({
4080
+ content: page === null || page === void 0 ? void 0 : page.sidebar
4081
+ }, sidebarContentProps))
4082
+ }))));
4083
+ }
4084
+
4085
+ var css_248z$2 = ".largeCard-module_cardLink__vlRsl{margin-bottom:var(--spacing-s)}@media (min-width:576px){.largeCard-module_cardLink__vlRsl{margin-bottom:var(--spacing-m)}}.largeCard-module_cardWrapper__12eBz{--height-image:12.75rem;--height-image-desktop:40.5rem;--width-image:8rem;background-color:var(--color-white);display:flex;flex-direction:column;height:100%;min-width:fit-content;position:relative;text-decoration:none;width:100%;word-break:break-word}@media (min-width:576px){.largeCard-module_cardWrapper__12eBz{word-break:unset}}.largeCard-module_cardWrapper__12eBz.largeCard-module_isHovered__HyKtv .largeCard-module_title__sVYR8{text-decoration:underline}.largeCard-module_cardWrapper__12eBz.largeCard-module_withBorder__ffTAd{border:1px solid var(--color-black-30)}.largeCard-module_cardWrapper__12eBz.largeCard-module_default__e8RPV{border:none}@media (min-width:576px){.largeCard-module_cardWrapper__12eBz{flex-direction:row}.largeCard-module_cardWrapper__12eBz.largeCard-module_image-left__f-zx9{flex-direction:row-reverse}}.largeCard-module_cardWrapper__12eBz .largeCard-module_imageWrapper__KM26i{background-position:50%;background-repeat:no-repeat;background-size:cover;box-sizing:border-box;display:flex;padding-bottom:62.5%;text-decoration:none}@media (min-width:576px){.largeCard-module_cardWrapper__12eBz .largeCard-module_imageWrapper__KM26i{flex:1.5 1;min-height:var(--height-image-desktop);padding-bottom:0}}.largeCard-module_cardWrapper__12eBz .largeCard-module_imageWrapper__KM26i .largeCard-module_imageLabel__LhKeg{padding:var(--spacing-xs)}.largeCard-module_cardWrapper__12eBz .largeCard-module_imageWrapper__KM26i .largeCard-module_imageLabel__LhKeg .largeCard-module_tag__geBaK{--tag-background:var(--color-black-5);font-size:var(--fontsize-body-s);font-weight:600}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM-{display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-s)}@media (min-width:576px){.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM-{flex:1 1;min-height:40.5rem;min-width:12.75rem;padding:var(--spacing-m)}}@media (min-width:992px){.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM-{flex:1 1;min-height:40.5rem;min-width:31.25rem;padding:var(--spacing-m)}}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_title__sVYR8{font-size:var(--fontsize-heading-s);font-weight:400;line-height:var(--lineheight-m);margin-bottom:var(--spacing-2-xs)}@media (min-width:576px){.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_title__sVYR8{font-size:var(--fontsize-heading-l);hyphens:auto;margin-bottom:var(--spacing-s);word-break:break-word}}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_subTitle__M1ag4{color:var(--color-black-60);font-size:var(--fontsize-body-s);margin-bottom:var(--spacing-2-xs)}@media (min-width:576px){.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_subTitle__M1ag4{font-size:var(--fontsize-body-l);line-height:2.25rem}}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_text__P4Qgs{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--fontsize-body-m);line-height:var(--lineheight-m);margin-bottom:var(--spacing-2-xs);order:3;overflow:hidden}@media (min-width:576px){.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_text__P4Qgs{-webkit-line-clamp:none;-webkit-box-orient:vertical;font-size:var(--fontsize-body-l);line-height:var(--lineheight-l);margin-bottom:var(--spacing-2-xs)}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_text__P4Qgs.largeCard-module_clamp__uMsqm{-webkit-line-clamp:3;-webkit-box-orient:vertical}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_text__P4Qgs p{margin:0}}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_customContent__TN-6Y{margin:var(--spacing-2-xs) 0;order:4}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_customContent__TN-6Y p{margin:0}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_buttonWrapper__45-rv{order:5}.largeCard-module_cardWrapper__12eBz .largeCard-module_textWrapper__D6KM- .largeCard-module_buttonWrapper__45-rv a svg{height:var(--spacing-2-xl);width:var(--spacing-2-xl)}";
4086
+ var styles$2 = {"cardLink":"largeCard-module_cardLink__vlRsl","cardWrapper":"largeCard-module_cardWrapper__12eBz","isHovered":"largeCard-module_isHovered__HyKtv","title":"largeCard-module_title__sVYR8","withBorder":"largeCard-module_withBorder__ffTAd","default":"largeCard-module_default__e8RPV","image-left":"largeCard-module_image-left__f-zx9","imageWrapper":"largeCard-module_imageWrapper__KM26i","imageLabel":"largeCard-module_imageLabel__LhKeg","tag":"largeCard-module_tag__geBaK","textWrapper":"largeCard-module_textWrapper__D6KM-","subTitle":"largeCard-module_subTitle__M1ag4","text":"largeCard-module_text__P4Qgs","clamp":"largeCard-module_clamp__uMsqm","customContent":"largeCard-module_customContent__TN-6Y","buttonWrapper":"largeCard-module_buttonWrapper__45-rv"};
4087
+ styleInject(css_248z$2);
4088
+
4089
+ var css_248z$1 = ".archiveSearchPage-module_pageLayout__B2XBw{display:grid;grid-template-rows:auto 1fr auto;min-height:100vh}";
4090
+ var styles$1 = {"pageLayout":"archiveSearchPage-module_pageLayout__B2XBw"};
4091
+ styleInject(css_248z$1);
4092
+
4093
+ var css_248z = ".archiveSearchPageContent-module_grid__uwVy4{margin-top:var(--spacing-m)}.archiveSearchPageContent-module_breadcrumbs__UgoYJ{box-sizing:border-box;margin:0 auto;max-width:var(--max-width);padding:0 var(--padding);width:100%}.archiveSearchPageContent-module_breadcrumbs__UgoYJ nav{margin:0}.archiveSearchPageContent-module_contentLayout__4rj0N{--padding:1rem;--max-width:calc(1200px + (2 * var(--padding)));display:flex;flex-direction:column;height:100%}.archiveSearchPageContent-module_contentLayout__4rj0N>:not(:last-child){margin-bottom:1rem}@media screen and (min-width:768px){.archiveSearchPageContent-module_contentLayout__4rj0N{--padding:1.5rem}}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_customContentContainer__erKWw .archiveSearchPageContent-module_customContentContainerInner__lad7E{box-sizing:border-box;margin:0 auto;max-width:var(--max-width);padding:0 var(--padding);width:100%}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh{background-color:var(--hcrc-color-archive-search-bg,--color-black-5);display:flex;flex-direction:column;padding-top:1.5rem;position:relative}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_koros__HjRLc{fill:var(--color-white);bottom:-24px;position:absolute}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q{box-sizing:border-box;display:flex;flex-direction:column;margin:0 auto;max-width:var(--max-width);padding:0 var(--padding);width:100%;z-index:1}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q h1{font-size:var(--fontsize-heading-xl);font-weight:500;margin-bottom:var(--spacing-m);margin-top:var(--spacing-s)}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q .archiveSearchPageContent-module_tagsContainer__ap7hj{display:flex;flex-direction:column;gap:8px;min-height:16px}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q .archiveSearchPageContent-module_tagsContainer__ap7hj>:last-child .archiveSearchPageContent-module_clearButton__8S3pO{align-items:center;background-color:unset;border:2px solid transparent;border-color:transparent!important;color:var(--color-black-90);display:flex;font-size:var(--fontsize-body-m);font-weight:500;justify-content:center;padding:0;text-align:left}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q .archiveSearchPageContent-module_tagsContainer__ap7hj>:last-child .archiveSearchPageContent-module_clearButton__8S3pO:focus{outline:2px solid var(--color-black-90);outline-offset:.25rem}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q .archiveSearchPageContent-module_tagsContainer__ap7hj>:last-child .archiveSearchPageContent-module_clearButton__8S3pO svg{margin-left:var(--spacing-3-xs)}@media screen and (min-width:992px){.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q .archiveSearchPageContent-module_tagsContainer__ap7hj{align-items:center;column-gap:.75rem;display:grid;grid-template-columns:5fr 1fr}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchFormContainer__EB2sh .archiveSearchPageContent-module_searchFormContainerInner__Ub35q .archiveSearchPageContent-module_tagsContainer__ap7hj>:last-child{align-items:center;display:flex;height:100%;justify-content:center}}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchForm__OEkHX{display:flex;flex-direction:column;padding:1rem 0}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchForm__OEkHX>:not(:last-child){margin-bottom:1.5rem}@media screen and (min-width:768px){.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchForm__OEkHX{padding-top:1rem}}@media screen and (min-width:992px){.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchForm__OEkHX{column-gap:.75rem;display:grid;grid-template-columns:5fr 1fr;row-gap:.75rem}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchForm__OEkHX>:not(:last-child){margin-bottom:unset}}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_inputWithIcon__4rICV{position:relative}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_inputWithIcon__4rICV>div>input{padding-left:calc(2 * 1rem + 1.5rem)!important}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_inputWithIcon__4rICV>div>svg{bottom:1rem;left:1rem;position:absolute}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_inputWithIcon__4rICV>div>svg *{color:var(--color-black-90)}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_hdsTextInputOverrides__6NkiT>div>input{border:none}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_hdsTextInputOverrides__6NkiT>div>input:focus{box-shadow:none!important;outline:3px solid var(--color-coat-of-arms);outline-offset:2px}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_hdsButtonOverrides__pcMkn{background-color:var(--hcrc-color-archive-search-btn);border-color:var(--hcrc-color-archive-search-btn)}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_hdsButtonOverrides__pcMkn:hover{background-color:var(--hcrc-color-archive-search-btn-hover);border-color:var(--hcrc-color-archive-search-btn-hover)}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN{display:flex;flex-direction:column;padding-bottom:6rem}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l{box-sizing:border-box;display:flex;flex-direction:column;margin:0 auto;max-width:var(--max-width);padding:0 var(--padding);width:100%}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l .archiveSearchPageContent-module_noResultsContainer__n-Vfm{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:var(--padding)}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l .archiveSearchPageContent-module_noResultsContainer__n-Vfm h1{font-weight:400;margin:.75rem}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l .archiveSearchPageContent-module_noResultsContainer__n-Vfm p{font-size:var(--fontsize-body-l);margin:0}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l .archiveSearchPageContent-module_noResultsContainer__n-Vfm svg{height:var(--spacing-3-xl);width:var(--spacing-3-xl)}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l .archiveSearchPageContent-module_bottomActions__P-wa5{align-items:center;display:flex;flex-direction:column}.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l .archiveSearchPageContent-module_bottomActions__P-wa5 .archiveSearchPageContent-module_loadMoreButton__--0oS,.archiveSearchPageContent-module_contentLayout__4rj0N .archiveSearchPageContent-module_mainLayout__UJuw4 .archiveSearchPageContent-module_searchResultsContainer__uKfRN .archiveSearchPageContent-module_searchResultsContainerInner__Sx58l .archiveSearchPageContent-module_bottomActions__P-wa5 .archiveSearchPageContent-module_loadingSpinner__pnPYD{margin:1rem}";
4094
+ var styles = {"grid":"archiveSearchPageContent-module_grid__uwVy4","breadcrumbs":"archiveSearchPageContent-module_breadcrumbs__UgoYJ","contentLayout":"archiveSearchPageContent-module_contentLayout__4rj0N","mainLayout":"archiveSearchPageContent-module_mainLayout__UJuw4","customContentContainer":"archiveSearchPageContent-module_customContentContainer__erKWw","customContentContainerInner":"archiveSearchPageContent-module_customContentContainerInner__lad7E","searchFormContainer":"archiveSearchPageContent-module_searchFormContainer__EB2sh","koros":"archiveSearchPageContent-module_koros__HjRLc","searchFormContainerInner":"archiveSearchPageContent-module_searchFormContainerInner__Ub35q","tagsContainer":"archiveSearchPageContent-module_tagsContainer__ap7hj","clearButton":"archiveSearchPageContent-module_clearButton__8S3pO","searchForm":"archiveSearchPageContent-module_searchForm__OEkHX","inputWithIcon":"archiveSearchPageContent-module_inputWithIcon__4rICV","hdsTextInputOverrides":"archiveSearchPageContent-module_hdsTextInputOverrides__6NkiT","hdsButtonOverrides":"archiveSearchPageContent-module_hdsButtonOverrides__pcMkn","searchResultsContainer":"archiveSearchPageContent-module_searchResultsContainer__uKfRN","searchResultsContainerInner":"archiveSearchPageContent-module_searchResultsContainerInner__Sx58l","noResultsContainer":"archiveSearchPageContent-module_noResultsContainer__n-Vfm","bottomActions":"archiveSearchPageContent-module_bottomActions__P-wa5","loadMoreButton":"archiveSearchPageContent-module_loadMoreButton__--0oS","loadingSpinner":"archiveSearchPageContent-module_loadingSpinner__pnPYD"};
4095
+ styleInject(css_248z);
4096
+
4097
+ exports.BackgroundImage = BackgroundImage;
4098
+ exports.Card = Card;
4099
+ exports.Carousel = Carousel;
4100
+ exports.Collection = Collection;
4101
+ exports.ContentContainer = ContentContainer;
4102
+ exports.EventSearchCollection = EventSearchCollection;
4103
+ exports.EventSelectionCollection = EventSelectionCollection;
4104
+ exports.Grid = Grid;
4105
+ exports.HtmlToReact = HtmlToReact;
4106
+ exports.Image = Image$1;
4107
+ exports.LANGUAGE_CODE_ORDINAL_NUMBER = LANGUAGE_CODE_ORDINAL_NUMBER;
4108
+ exports.Link = Link;
4109
+ exports.LinkBox = LinkBox;
4110
+ exports.LocationsSelectionCollection = LocationsSelectionCollection;
4111
+ exports.MAIN_CONTENT_ID = MAIN_CONTENT_ID;
4112
+ exports.Navigation = Navigation;
4113
+ exports.Notification = Notification;
4114
+ exports.Page = Page;
4115
+ exports.PageContent = PageContent;
4116
+ exports.PageContentBreadcrumb = PageContentBreadcrumb;
4117
+ exports.PageContentLayout = PageContentLayout;
4118
+ exports.PageContext = PageContext;
4119
+ exports.PageContextProvider = PageContextProvider;
4120
+ exports.PageMainContent = PageMainContent;
4121
+ exports.PageMeta = PageMeta;
4122
+ exports.PageSection = PageSection;
4123
+ exports.Tag = Tag;
4124
+ exports.classNames = classNames;
4125
+ exports.configContext = configContext;
4126
+ exports.findLanguage = findLanguage;
4127
+ exports.getEventCollectionCards = getEventCollectionCards;
4128
+ exports.getLocationsCollectionCards = getLocationsCollectionCards;
4129
+ exports.getTextFromHtml = getTextFromHtml;
4130
+ exports.getVenueIds = getVenueIds;
4131
+ exports.isEventClosed = isEventClosed;
4132
+ exports.isNonEmptyLanguage = isNonEmptyLanguage;
4133
+ exports.languageSorter = languageSorter;
4134
+ exports.styleInject = styleInject;
4135
+ exports.styles = styles$q;
4136
+ exports.styles$1 = styles$2;
4137
+ exports.styles$2 = styles$1;
4138
+ exports.styles$3 = styles;
4139
+ exports.toPrimaryLanguageOption = toPrimaryLanguageOption;
4140
+ exports.useConfig = useConfig;
4141
+ exports.useHeadlessCmsLink = useHeadlessCmsLink;
4142
+ exports.useResolveImageUrl = useResolveImageUrl;
4143
+ //# sourceMappingURL=archiveSearchPageContent.module-Hcb4WVMf.js.map