@blateral/b.kit 2.8.4 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/Actions-2590a7b9.js +2 -0
- package/cjs/{Actions-c52a14e4.js.map → Actions-2590a7b9.js.map} +1 -1
- package/cjs/Bdot-35350767.js +2 -0
- package/cjs/{Bdot-62c8e349.js.map → Bdot-35350767.js.map} +1 -1
- package/cjs/Button-ddcdefd5.js +2 -0
- package/cjs/Button-ddcdefd5.js.map +1 -0
- package/cjs/ButtonGhost-22501467.js +2 -0
- package/cjs/ButtonGhost-22501467.js.map +1 -0
- package/cjs/ButtonLeft-7e1f216a.js +2 -0
- package/cjs/ButtonLeft-7e1f216a.js.map +1 -0
- package/cjs/Callout-86a61040.js +2 -0
- package/cjs/Callout-86a61040.js.map +1 -0
- package/cjs/Checkbox-d27880f4.js +2 -0
- package/cjs/Checkbox-d27880f4.js.map +1 -0
- package/cjs/Control-40e6d4ed.js +2 -0
- package/cjs/Control-40e6d4ed.js.map +1 -0
- package/cjs/Copy-1b9e33ba.js +2 -0
- package/cjs/Copy-1b9e33ba.js.map +1 -0
- package/cjs/EventBlock-7dde179c.js +2 -0
- package/cjs/EventBlock-7dde179c.js.map +1 -0
- package/cjs/FilterBar-238c2290.js +2 -0
- package/cjs/FilterBar-238c2290.js.map +1 -0
- package/cjs/FilterField-c8dc9450.js +2 -0
- package/cjs/{FilterField-d204feb1.js.map → FilterField-c8dc9450.js.map} +1 -1
- package/cjs/Grid-dab3343f.js +2 -0
- package/cjs/Grid-dab3343f.js.map +1 -0
- package/cjs/Image-14b2cb93.js +2 -0
- package/cjs/Image-14b2cb93.js.map +1 -0
- package/cjs/InfoList-b4f39949.js +2 -0
- package/cjs/InfoList-b4f39949.js.map +1 -0
- package/cjs/LanguageSwitcher-3ee77117.js +2 -0
- package/cjs/{LanguageSwitcher-c6fd04df.js.map → LanguageSwitcher-3ee77117.js.map} +1 -1
- package/cjs/LibThemeProvider-878ed68c.js +2 -0
- package/cjs/{LibThemeProvider-69109901.js.map → LibThemeProvider-878ed68c.js.map} +1 -1
- package/cjs/Link-6e728957.js +2 -0
- package/cjs/Link-6e728957.js.map +1 -0
- package/cjs/MultiselectDropdown-54cd988f.js +2 -0
- package/cjs/MultiselectDropdown-54cd988f.js.map +1 -0
- package/cjs/Navigation-2d3590a0.js +2 -0
- package/cjs/{Navigation-6c5d9dee.js.map → Navigation-2d3590a0.js.map} +1 -1
- package/cjs/PickerAction-ed288096.js +2 -0
- package/cjs/PickerAction-ed288096.js.map +1 -0
- package/cjs/Pointer-b8875387.js +2 -0
- package/cjs/Pointer-b8875387.js.map +1 -0
- package/cjs/Section-89240e41.js +2 -0
- package/cjs/Section-89240e41.js.map +1 -0
- package/cjs/SocialList-f2aca9d8.js +2 -0
- package/cjs/{SocialList-73af56b5.js.map → SocialList-f2aca9d8.js.map} +1 -1
- package/cjs/TableBlock-8f87c278.js +2 -0
- package/cjs/TableBlock-8f87c278.js.map +1 -0
- package/cjs/Tag-430477d0.js +2 -0
- package/cjs/Tag-430477d0.js.map +1 -0
- package/cjs/Textarea-51bea7d0.js +2 -0
- package/cjs/Textarea-51bea7d0.js.map +1 -0
- package/cjs/Textfield-4ff93649.js +2 -0
- package/cjs/Textfield-4ff93649.js.map +1 -0
- package/cjs/VideoBlock-087d79b8.js +2 -0
- package/cjs/{VideoBlock-0cae22f0.js.map → VideoBlock-087d79b8.js.map} +1 -1
- package/cjs/VideoCard-6e2ae7c1.js +2 -0
- package/cjs/VideoCard-6e2ae7c1.js.map +1 -0
- package/cjs/Wrapper-c755d727.js +2 -0
- package/cjs/{Wrapper-bca9463e.js.map → Wrapper-c755d727.js.map} +1 -1
- package/cjs/base.js +1 -1
- package/cjs/blocks.js +1 -1
- package/cjs/buttons.js +1 -1
- package/cjs/concat-8bd71a50.js +2 -0
- package/cjs/{concat-f387d848.js.map → concat-8bd71a50.js.map} +1 -1
- package/cjs/cookies.js +1 -1
- package/cjs/cookies.js.map +1 -1
- package/cjs/fields.js +1 -1
- package/cjs/fields.js.map +1 -1
- package/cjs/footer.js +1 -1
- package/cjs/footer.js.map +1 -1
- package/cjs/formFieldText-fcf0452b.js +2 -0
- package/cjs/formFieldText-fcf0452b.js.map +1 -0
- package/cjs/headers.js +1 -1
- package/cjs/headers.js.map +1 -1
- package/cjs/hooks.js +1 -1
- package/cjs/hooks.js.map +1 -1
- package/cjs/icons.js +1 -1
- package/cjs/index.js +1 -1
- package/cjs/navigation-ec5cddfc.js +2 -0
- package/cjs/{navigation-3f9d4ac4.js.map → navigation-ec5cddfc.js.map} +1 -1
- package/cjs/navigation.js +1 -1
- package/cjs/navigation.js.map +1 -1
- package/cjs/sections.dynamicform.js +1 -1
- package/cjs/sections.dynamicform.js.map +1 -1
- package/cjs/sections.events.js +1 -1
- package/cjs/sections.events.js.map +1 -1
- package/cjs/sections.forms.js +1 -1
- package/cjs/sections.forms.js.map +1 -1
- package/cjs/sections.jobs.js +1 -1
- package/cjs/sections.jobs.js.map +1 -1
- package/cjs/sections.js +1 -1
- package/cjs/sections.js.map +1 -1
- package/cjs/sections.news.js +1 -1
- package/cjs/sections.news.js.map +1 -1
- package/cjs/sections.pois.js +1 -1
- package/cjs/sections.pois.js.map +1 -1
- package/cjs/structuredData-7c33a463.js +2 -0
- package/cjs/structuredData-7c33a463.js.map +1 -0
- package/cjs/styles-271afb02.js +2 -0
- package/cjs/styles-271afb02.js.map +1 -0
- package/cjs/typography.js +1 -1
- package/cjs/{urlParams-7525f638.js → urlParams-c412d937.js} +2 -2
- package/cjs/{urlParams-7525f638.js.map → urlParams-c412d937.js.map} +1 -1
- package/cjs/useCookieConsent-674d004d.js +2 -0
- package/cjs/{useCookieConsent-665d91cf.js.map → useCookieConsent-674d004d.js.map} +1 -1
- package/cjs/useEqualSheetHeight-7eb7f276.js +2 -0
- package/cjs/{useEqualSheetHeight-f1c10ec5.js.map → useEqualSheetHeight-7eb7f276.js.map} +1 -1
- package/cjs/useLazyInput-1481445a.js +2 -0
- package/cjs/{useLazyInput-911b8eda.js.map → useLazyInput-1481445a.js.map} +1 -1
- package/cjs/useLeafletMap-145217ee.js +2 -0
- package/cjs/{useLeafletMap-514304b6.js.map → useLeafletMap-145217ee.js.map} +1 -1
- package/cjs/useMediaQuery-dd367f98.js +2 -0
- package/cjs/{useMediaQuery-619d7203.js.map → useMediaQuery-dd367f98.js.map} +1 -1
- package/esm/{Actions-e29b5e75.js → Actions-6859c932.js} +3 -3
- package/esm/{Actions-e29b5e75.js.map → Actions-6859c932.js.map} +1 -1
- package/esm/{Bdot-5e798e7e.js → Bdot-9e215df7.js} +3 -3
- package/esm/{Bdot-5e798e7e.js.map → Bdot-9e215df7.js.map} +1 -1
- package/esm/Button-1f634865.js +146 -0
- package/esm/Button-1f634865.js.map +1 -0
- package/esm/ButtonGhost-476c3826.js +146 -0
- package/esm/ButtonGhost-476c3826.js.map +1 -0
- package/esm/{Filter-19220970.js → ButtonLeft-a9a132f5.js} +362 -246
- package/esm/ButtonLeft-a9a132f5.js.map +1 -0
- package/esm/{Callout-46f0bef0.js → Callout-6436d270.js} +8 -6
- package/esm/Callout-6436d270.js.map +1 -0
- package/esm/{Checkbox-962fea67.js → Checkbox-e7fc7d28.js} +21 -11
- package/esm/Checkbox-e7fc7d28.js.map +1 -0
- package/esm/Control-84268468.js +44 -0
- package/esm/Control-84268468.js.map +1 -0
- package/esm/{Copy-fd9e25c0.js → Copy-5a18e01f.js} +27 -9
- package/esm/Copy-5a18e01f.js.map +1 -0
- package/esm/{EventBlock-12361860.js → EventBlock-0d010725.js} +62 -27
- package/esm/EventBlock-0d010725.js.map +1 -0
- package/esm/{FilterBar-8c258534.js → FilterBar-d6c1ef40.js} +38 -24
- package/esm/FilterBar-d6c1ef40.js.map +1 -0
- package/esm/{FilterField-8e64b355.js → FilterField-251b4dad.js} +5 -5
- package/esm/{FilterField-8e64b355.js.map → FilterField-251b4dad.js.map} +1 -1
- package/esm/{Grid-7b33e271.js → Grid-cbd5e68c.js} +19 -12
- package/esm/Grid-cbd5e68c.js.map +1 -0
- package/esm/{Image-c67870d4.js → Image-e2018d39.js} +15 -10
- package/esm/Image-e2018d39.js.map +1 -0
- package/esm/{InfoList-d853db58.js → InfoList-1be2ff46.js} +14 -7
- package/esm/InfoList-1be2ff46.js.map +1 -0
- package/esm/{LanguageSwitcher-c9aa594a.js → LanguageSwitcher-19482399.js} +5 -5
- package/esm/{LanguageSwitcher-c9aa594a.js.map → LanguageSwitcher-19482399.js.map} +1 -1
- package/esm/{LibThemeProvider-fb1d35ac.js → LibThemeProvider-48cad3e8.js} +3 -3
- package/esm/{LibThemeProvider-fb1d35ac.js.map → LibThemeProvider-48cad3e8.js.map} +1 -1
- package/esm/{Link-6067a27f.js → Link-d4a291af.js} +15 -8
- package/esm/Link-d4a291af.js.map +1 -0
- package/esm/{MultiselectDropdown-61a5a1a6.js → MultiselectDropdown-20b33522.js} +33 -13
- package/esm/MultiselectDropdown-20b33522.js.map +1 -0
- package/esm/{Navigation-6581bcdf.js → Navigation-d7e14d09.js} +10 -10
- package/esm/{Navigation-6581bcdf.js.map → Navigation-d7e14d09.js.map} +1 -1
- package/esm/PickerAction-704f2992.js +65 -0
- package/esm/PickerAction-704f2992.js.map +1 -0
- package/esm/Pointer-41c10bba.js +144 -0
- package/esm/Pointer-41c10bba.js.map +1 -0
- package/esm/{Section-bd61eb2f.js → Section-ca6daed2.js} +9 -5
- package/esm/Section-ca6daed2.js.map +1 -0
- package/esm/{SocialList-abaf970d.js → SocialList-d5adb772.js} +5 -5
- package/esm/{SocialList-abaf970d.js.map → SocialList-d5adb772.js.map} +1 -1
- package/esm/{TableBlock-a65315ca.js → TableBlock-5aad5dd2.js} +63 -115
- package/esm/TableBlock-5aad5dd2.js.map +1 -0
- package/esm/{Tag-217cd89b.js → Tag-f3f23d9b.js} +9 -13
- package/esm/Tag-f3f23d9b.js.map +1 -0
- package/esm/{Textarea-60503eb7.js → Textarea-af789d6e.js} +341 -252
- package/esm/Textarea-af789d6e.js.map +1 -0
- package/esm/{Textfield-e8f48b5f.js → Textfield-1f1ae077.js} +18 -6
- package/esm/Textfield-1f1ae077.js.map +1 -0
- package/esm/{VideoBlock-3f150172.js → VideoBlock-3c99c5fc.js} +12 -8
- package/esm/VideoBlock-3c99c5fc.js.map +1 -0
- package/esm/{VideoCard-aa60fbe5.js → VideoCard-dc103fce.js} +29 -24
- package/esm/VideoCard-dc103fce.js.map +1 -0
- package/esm/{Wrapper-95108115.js → Wrapper-06db8e79.js} +3 -3
- package/esm/{Wrapper-95108115.js.map → Wrapper-06db8e79.js.map} +1 -1
- package/esm/base.js +6 -6
- package/esm/blocks.js +22 -22
- package/esm/buttons.js +7 -6
- package/esm/buttons.js.map +1 -1
- package/esm/{concat-ab3c66f2.js → concat-b6d6d978.js} +2 -2
- package/esm/concat-b6d6d978.js.map +1 -0
- package/esm/cookies.js +57 -46
- package/esm/cookies.js.map +1 -1
- package/esm/fields.js +56 -123
- package/esm/fields.js.map +1 -1
- package/esm/footer.js +15 -13
- package/esm/footer.js.map +1 -1
- package/esm/{formFieldText-c6fcd370.js → formFieldText-af2106f9.js} +14 -8
- package/esm/formFieldText-af2106f9.js.map +1 -0
- package/esm/headers.js +21 -17
- package/esm/headers.js.map +1 -1
- package/esm/hooks.js +12 -12
- package/esm/icons.js +5 -2
- package/esm/icons.js.map +1 -1
- package/esm/index.js +3 -3
- package/esm/{navigation-5216dbad.js → navigation-d3d2bf2e.js} +2 -2
- package/esm/{navigation-5216dbad.js.map → navigation-d3d2bf2e.js.map} +1 -1
- package/esm/navigation.js +12 -12
- package/esm/sections.dynamicform.js +29 -33
- package/esm/sections.dynamicform.js.map +1 -1
- package/esm/sections.events.js +48 -30
- package/esm/sections.events.js.map +1 -1
- package/esm/sections.forms.js +11 -11
- package/esm/sections.jobs.js +99 -45
- package/esm/sections.jobs.js.map +1 -1
- package/esm/sections.js +537 -259
- package/esm/sections.js.map +1 -1
- package/esm/sections.news.js +155 -81
- package/esm/sections.news.js.map +1 -1
- package/esm/sections.pois.js +39 -34
- package/esm/sections.pois.js.map +1 -1
- package/esm/{structuredData-abf610d8.js → structuredData-73bcbf07.js} +32 -2
- package/esm/structuredData-73bcbf07.js.map +1 -0
- package/esm/{styles-1f1841ef.js → styles-f3ba5bae.js} +3 -2
- package/esm/styles-f3ba5bae.js.map +1 -0
- package/esm/typography.js +6 -6
- package/esm/{urlParams-9cfdaf71.js → urlParams-e7114d3e.js} +2 -2
- package/esm/{urlParams-9cfdaf71.js.map → urlParams-e7114d3e.js.map} +1 -1
- package/esm/{useCookieConsent-6661d419.js → useCookieConsent-4b667d40.js} +2 -2
- package/esm/{useCookieConsent-6661d419.js.map → useCookieConsent-4b667d40.js.map} +1 -1
- package/esm/{useEqualSheetHeight-60ff9de7.js → useEqualSheetHeight-80704864.js} +4 -4
- package/esm/{useEqualSheetHeight-60ff9de7.js.map → useEqualSheetHeight-80704864.js.map} +1 -1
- package/esm/{useLazyInput-0b6932aa.js → useLazyInput-08ee63f4.js} +2 -2
- package/esm/{useLazyInput-0b6932aa.js.map → useLazyInput-08ee63f4.js.map} +1 -1
- package/esm/{useLeafletMap-fa0ab7d4.js → useLeafletMap-f9050715.js} +2 -2
- package/esm/{useLeafletMap-fa0ab7d4.js.map → useLeafletMap-f9050715.js.map} +1 -1
- package/esm/{useMediaQuery-4c1b1fa6.js → useMediaQuery-c9fa1339.js} +3 -3
- package/esm/{useMediaQuery-4c1b1fa6.js.map → useMediaQuery-c9fa1339.js.map} +1 -1
- package/package.json +1 -1
- package/types/buttons.d.ts +1 -0
- package/types/buttons.d.ts.map +1 -1
- package/types/components/base/Grid.d.ts +3 -0
- package/types/components/base/Grid.d.ts.map +1 -1
- package/types/components/base/Section.d.ts +3 -1
- package/types/components/base/Section.d.ts.map +1 -1
- package/types/components/base/icons/ButtonLeft.d.ts +1 -2
- package/types/components/base/icons/ButtonLeft.d.ts.map +1 -1
- package/types/components/base/icons/ButtonRight.d.ts +1 -2
- package/types/components/base/icons/ButtonRight.d.ts.map +1 -1
- package/types/components/base/icons/CircleX.d.ts +10 -0
- package/types/components/base/icons/CircleX.d.ts.map +1 -0
- package/types/components/base/icons/Icons.d.ts +3 -0
- package/types/components/base/icons/Icons.d.ts.map +1 -1
- package/types/components/blocks/Alert.d.ts.map +1 -1
- package/types/components/blocks/CookieConsent.d.ts.map +1 -1
- package/types/components/blocks/EventBlock.d.ts +18 -11
- package/types/components/blocks/EventBlock.d.ts.map +1 -1
- package/types/components/blocks/Feature.d.ts +6 -2
- package/types/components/blocks/Feature.d.ts.map +1 -1
- package/types/components/blocks/Image.d.ts +2 -0
- package/types/components/blocks/Image.d.ts.map +1 -1
- package/types/components/blocks/InfoList.d.ts +5 -1
- package/types/components/blocks/InfoList.d.ts.map +1 -1
- package/types/components/blocks/JobCard.d.ts +4 -0
- package/types/components/blocks/JobCard.d.ts.map +1 -1
- package/types/components/blocks/NavBlock.d.ts.map +1 -1
- package/types/components/blocks/NewsCard.d.ts +20 -9
- package/types/components/blocks/NewsCard.d.ts.map +1 -1
- package/types/components/blocks/POICard.d.ts +7 -1
- package/types/components/blocks/POICard.d.ts.map +1 -1
- package/types/components/blocks/POIFacts.d.ts +1 -0
- package/types/components/blocks/POIFacts.d.ts.map +1 -1
- package/types/components/blocks/PriceTag.d.ts +9 -4
- package/types/components/blocks/PriceTag.d.ts.map +1 -1
- package/types/components/blocks/PromotionCard.d.ts +2 -2
- package/types/components/blocks/PromotionCard.d.ts.map +1 -1
- package/types/components/blocks/TableBlock.d.ts +2 -0
- package/types/components/blocks/TableBlock.d.ts.map +1 -1
- package/types/components/blocks/Tag.d.ts +1 -0
- package/types/components/blocks/Tag.d.ts.map +1 -1
- package/types/components/blocks/Title.d.ts +5 -0
- package/types/components/blocks/Title.d.ts.map +1 -1
- package/types/components/blocks/VideoBlock.d.ts +2 -0
- package/types/components/blocks/VideoBlock.d.ts.map +1 -1
- package/types/components/blocks/VideoCard.d.ts +2 -0
- package/types/components/blocks/VideoCard.d.ts.map +1 -1
- package/types/components/buttons/Button.d.ts +6 -1
- package/types/components/buttons/Button.d.ts.map +1 -1
- package/types/components/buttons/ButtonGhost.d.ts +6 -1
- package/types/components/buttons/ButtonGhost.d.ts.map +1 -1
- package/types/components/buttons/Control.d.ts.map +1 -1
- package/types/components/buttons/PickerAction.d.ts +14 -0
- package/types/components/buttons/PickerAction.d.ts.map +1 -0
- package/types/components/buttons/Pointer.d.ts +6 -2
- package/types/components/buttons/Pointer.d.ts.map +1 -1
- package/types/components/fields/Checkbox.d.ts +0 -1
- package/types/components/fields/Checkbox.d.ts.map +1 -1
- package/types/components/fields/CompactForm.d.ts.map +1 -1
- package/types/components/fields/Datepicker.d.ts +31 -13
- package/types/components/fields/Datepicker.d.ts.map +1 -1
- package/types/components/fields/FileUpload.d.ts.map +1 -1
- package/types/components/fields/FormField.d.ts +4 -1
- package/types/components/fields/FormField.d.ts.map +1 -1
- package/types/components/fields/LocationField.d.ts +1 -0
- package/types/components/fields/LocationField.d.ts.map +1 -1
- package/types/components/fields/MultiselectDropdown.d.ts.map +1 -1
- package/types/components/fields/Radio.d.ts +0 -1
- package/types/components/fields/Radio.d.ts.map +1 -1
- package/types/components/fields/SelectDropdown.d.ts.map +1 -1
- package/types/components/fields/Textarea.d.ts.map +1 -1
- package/types/components/fields/Textfield.d.ts.map +1 -1
- package/types/components/sections/Accordion.d.ts +6 -6
- package/types/components/sections/Accordion.d.ts.map +1 -1
- package/types/components/sections/AlertList.d.ts +10 -6
- package/types/components/sections/AlertList.d.ts.map +1 -1
- package/types/components/sections/CallToAction.d.ts +14 -9
- package/types/components/sections/CallToAction.d.ts.map +1 -1
- package/types/components/sections/CardList.d.ts +19 -14
- package/types/components/sections/CardList.d.ts.map +1 -1
- package/types/components/sections/ComparisonSlider.d.ts.map +1 -1
- package/types/components/sections/CrossPromotion.d.ts +11 -12
- package/types/components/sections/CrossPromotion.d.ts.map +1 -1
- package/types/components/sections/FactGrid.d.ts +4 -0
- package/types/components/sections/FactGrid.d.ts.map +1 -1
- package/types/components/sections/FactList.d.ts +13 -0
- package/types/components/sections/FactList.d.ts.map +1 -1
- package/types/components/sections/FeatureList.d.ts +4 -0
- package/types/components/sections/FeatureList.d.ts.map +1 -1
- package/types/components/sections/Gallery.d.ts +2 -0
- package/types/components/sections/Gallery.d.ts.map +1 -1
- package/types/components/sections/IconList.d.ts +4 -0
- package/types/components/sections/IconList.d.ts.map +1 -1
- package/types/components/sections/IndexList.d.ts +2 -0
- package/types/components/sections/IndexList.d.ts.map +1 -1
- package/types/components/sections/Map.d.ts +11 -24
- package/types/components/sections/Map.d.ts.map +1 -1
- package/types/components/sections/NavList.d.ts +2 -0
- package/types/components/sections/NavList.d.ts.map +1 -1
- package/types/components/sections/NumberList.d.ts +4 -0
- package/types/components/sections/NumberList.d.ts.map +1 -1
- package/types/components/sections/ParallaxBackground.d.ts.map +1 -1
- package/types/components/sections/PriceList.d.ts +18 -0
- package/types/components/sections/PriceList.d.ts.map +1 -1
- package/types/components/sections/PriceTable.d.ts +6 -2
- package/types/components/sections/PriceTable.d.ts.map +1 -1
- package/types/components/sections/Quote.d.ts.map +1 -1
- package/types/components/sections/RawVideo.d.ts +4 -0
- package/types/components/sections/RawVideo.d.ts.map +1 -1
- package/types/components/sections/SocialWall.d.ts +13 -12
- package/types/components/sections/SocialWall.d.ts.map +1 -1
- package/types/components/sections/Table.d.ts +11 -2
- package/types/components/sections/Table.d.ts.map +1 -1
- package/types/components/sections/Teaser.d.ts.map +1 -1
- package/types/components/sections/TeaserWide.d.ts.map +1 -1
- package/types/components/sections/Video.d.ts +2 -0
- package/types/components/sections/Video.d.ts.map +1 -1
- package/types/components/sections/events/EventDetail.d.ts +14 -14
- package/types/components/sections/events/EventDetail.d.ts.map +1 -1
- package/types/components/sections/events/EventList.d.ts +3 -16
- package/types/components/sections/events/EventList.d.ts.map +1 -1
- package/types/components/sections/events/EventOverview.d.ts +3 -15
- package/types/components/sections/events/EventOverview.d.ts.map +1 -1
- package/types/components/sections/form/DynamicForm.d.ts +9 -9
- package/types/components/sections/form/DynamicForm.d.ts.map +1 -1
- package/types/components/sections/form/renderer/datepickerRenderer.d.ts.map +1 -1
- package/types/components/sections/header/HeaderKenBurns.d.ts.map +1 -1
- package/types/components/sections/header/HeaderPoster.d.ts.map +1 -1
- package/types/components/sections/header/HeaderVideo.d.ts.map +1 -1
- package/types/components/sections/jobs/JobArticle.d.ts +4 -0
- package/types/components/sections/jobs/JobArticle.d.ts.map +1 -1
- package/types/components/sections/jobs/JobList.d.ts +8 -0
- package/types/components/sections/jobs/JobList.d.ts.map +1 -1
- package/types/components/sections/news/NewsAuthorCard.d.ts.map +1 -1
- package/types/components/sections/news/NewsFooter.d.ts +3 -16
- package/types/components/sections/news/NewsFooter.d.ts.map +1 -1
- package/types/components/sections/news/NewsImages.d.ts.map +1 -1
- package/types/components/sections/news/NewsIntro.d.ts.map +1 -1
- package/types/components/sections/news/NewsList.d.ts +3 -16
- package/types/components/sections/news/NewsList.d.ts.map +1 -1
- package/types/components/sections/news/NewsOverview.d.ts +3 -15
- package/types/components/sections/news/NewsOverview.d.ts.map +1 -1
- package/types/components/sections/news/NewsTable.d.ts +8 -0
- package/types/components/sections/news/NewsTable.d.ts.map +1 -1
- package/types/components/sections/news/NewsVideo.d.ts +4 -0
- package/types/components/sections/news/NewsVideo.d.ts.map +1 -1
- package/types/components/sections/pois/PointOfInterestOverview.d.ts +13 -12
- package/types/components/sections/pois/PointOfInterestOverview.d.ts.map +1 -1
- package/types/components/typography/Callout.d.ts +1 -0
- package/types/components/typography/Callout.d.ts.map +1 -1
- package/types/components/typography/Copy.d.ts +7 -1
- package/types/components/typography/Copy.d.ts.map +1 -1
- package/types/components/typography/Heading.d.ts +1 -0
- package/types/components/typography/Heading.d.ts.map +1 -1
- package/types/components/typography/Link.d.ts +3 -0
- package/types/components/typography/Link.d.ts.map +1 -1
- package/types/fields.d.ts +0 -1
- package/types/fields.d.ts.map +1 -1
- package/types/utils/structuredData.d.ts +14 -0
- package/types/utils/structuredData.d.ts.map +1 -1
- package/types/utils/styles.d.ts +1 -0
- package/types/utils/styles.d.ts.map +1 -1
- package/cjs/Actions-c52a14e4.js +0 -2
- package/cjs/Bdot-62c8e349.js +0 -2
- package/cjs/Button-1adf99b8.js +0 -2
- package/cjs/Button-1adf99b8.js.map +0 -1
- package/cjs/ButtonGhost-fbab8769.js +0 -2
- package/cjs/ButtonGhost-fbab8769.js.map +0 -1
- package/cjs/Callout-d84ca60b.js +0 -2
- package/cjs/Callout-d84ca60b.js.map +0 -1
- package/cjs/Checkbox-ddc9a87d.js +0 -2
- package/cjs/Checkbox-ddc9a87d.js.map +0 -1
- package/cjs/Control-e15e1572.js +0 -2
- package/cjs/Control-e15e1572.js.map +0 -1
- package/cjs/Copy-2a9d4b5d.js +0 -2
- package/cjs/Copy-2a9d4b5d.js.map +0 -1
- package/cjs/EventBlock-0b0f0dd3.js +0 -2
- package/cjs/EventBlock-0b0f0dd3.js.map +0 -1
- package/cjs/Filter-89286db9.js +0 -2
- package/cjs/Filter-89286db9.js.map +0 -1
- package/cjs/FilterBar-bfd9db6e.js +0 -2
- package/cjs/FilterBar-bfd9db6e.js.map +0 -1
- package/cjs/FilterField-d204feb1.js +0 -2
- package/cjs/Grid-1acefee9.js +0 -2
- package/cjs/Grid-1acefee9.js.map +0 -1
- package/cjs/Image-69a9c116.js +0 -2
- package/cjs/Image-69a9c116.js.map +0 -1
- package/cjs/InfoList-f040b8fb.js +0 -2
- package/cjs/InfoList-f040b8fb.js.map +0 -1
- package/cjs/LanguageSwitcher-c6fd04df.js +0 -2
- package/cjs/LibThemeProvider-69109901.js +0 -2
- package/cjs/Link-8951180c.js +0 -2
- package/cjs/Link-8951180c.js.map +0 -1
- package/cjs/MultiselectDropdown-d46ae36f.js +0 -2
- package/cjs/MultiselectDropdown-d46ae36f.js.map +0 -1
- package/cjs/Navigation-6c5d9dee.js +0 -2
- package/cjs/Pointer-0f69256f.js +0 -2
- package/cjs/Pointer-0f69256f.js.map +0 -1
- package/cjs/Section-c9a16ccc.js +0 -2
- package/cjs/Section-c9a16ccc.js.map +0 -1
- package/cjs/SocialList-73af56b5.js +0 -2
- package/cjs/TableBlock-532c7e1e.js +0 -2
- package/cjs/TableBlock-532c7e1e.js.map +0 -1
- package/cjs/Tag-232f7aa9.js +0 -2
- package/cjs/Tag-232f7aa9.js.map +0 -1
- package/cjs/Textarea-d30682bd.js +0 -2
- package/cjs/Textarea-d30682bd.js.map +0 -1
- package/cjs/Textfield-b3769184.js +0 -2
- package/cjs/Textfield-b3769184.js.map +0 -1
- package/cjs/VideoBlock-0cae22f0.js +0 -2
- package/cjs/VideoCard-c9d4f46a.js +0 -2
- package/cjs/VideoCard-c9d4f46a.js.map +0 -1
- package/cjs/Wrapper-bca9463e.js +0 -2
- package/cjs/concat-f387d848.js +0 -2
- package/cjs/formFieldText-21f5f620.js +0 -2
- package/cjs/formFieldText-21f5f620.js.map +0 -1
- package/cjs/navigation-3f9d4ac4.js +0 -2
- package/cjs/structuredData-0b1278a9.js +0 -2
- package/cjs/structuredData-0b1278a9.js.map +0 -1
- package/cjs/styles-13e5d9ac.js +0 -2
- package/cjs/styles-13e5d9ac.js.map +0 -1
- package/cjs/useCookieConsent-665d91cf.js +0 -2
- package/cjs/useEqualSheetHeight-f1c10ec5.js +0 -2
- package/cjs/useLazyInput-911b8eda.js +0 -2
- package/cjs/useLeafletMap-514304b6.js +0 -2
- package/cjs/useMediaQuery-619d7203.js +0 -2
- package/esm/Button-9a0dd9aa.js +0 -115
- package/esm/Button-9a0dd9aa.js.map +0 -1
- package/esm/ButtonGhost-fc9e7a75.js +0 -112
- package/esm/ButtonGhost-fc9e7a75.js.map +0 -1
- package/esm/Callout-46f0bef0.js.map +0 -1
- package/esm/Checkbox-962fea67.js.map +0 -1
- package/esm/Control-56ec7872.js +0 -52
- package/esm/Control-56ec7872.js.map +0 -1
- package/esm/Copy-fd9e25c0.js.map +0 -1
- package/esm/EventBlock-12361860.js.map +0 -1
- package/esm/Filter-19220970.js.map +0 -1
- package/esm/FilterBar-8c258534.js.map +0 -1
- package/esm/Grid-7b33e271.js.map +0 -1
- package/esm/Image-c67870d4.js.map +0 -1
- package/esm/InfoList-d853db58.js.map +0 -1
- package/esm/Link-6067a27f.js.map +0 -1
- package/esm/MultiselectDropdown-61a5a1a6.js.map +0 -1
- package/esm/Pointer-3e965d7b.js +0 -111
- package/esm/Pointer-3e965d7b.js.map +0 -1
- package/esm/Section-bd61eb2f.js.map +0 -1
- package/esm/TableBlock-a65315ca.js.map +0 -1
- package/esm/Tag-217cd89b.js.map +0 -1
- package/esm/Textarea-60503eb7.js.map +0 -1
- package/esm/Textfield-e8f48b5f.js.map +0 -1
- package/esm/VideoBlock-3f150172.js.map +0 -1
- package/esm/VideoCard-aa60fbe5.js.map +0 -1
- package/esm/concat-ab3c66f2.js.map +0 -1
- package/esm/formFieldText-c6fcd370.js.map +0 -1
- package/esm/structuredData-abf610d8.js.map +0 -1
- package/esm/styles-1f1841ef.js.map +0 -1
- package/types/components/fields/SearchInput.d.ts +0 -16
- package/types/components/fields/SearchInput.d.ts.map +0 -1
package/cjs/sections.news.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.news.js","sources":["../src/components/sections/news/NewsAuthorCard.tsx","../src/components/blocks/NewsCard.tsx","../src/components/sections/news/NewsOverview.tsx","../src/components/sections/news/NewsFooter.tsx","../src/components/sections/news/NewsImages.tsx","../src/components/sections/news/NewsIntro.tsx","../src/components/sections/news/NewsList.tsx","../src/components/sections/news/NewsTable.tsx","../src/components/sections/news/NewsText.tsx","../src/components/sections/news/NewsVideo.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst Seperator = styled.div<{ isInverted?: boolean; isTop?: boolean }>`\n border-bottom: solid 1px\n ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n\n margin-top: ${({ isTop }) => !isTop && spacings.spacer}px;\n margin-bottom: ${({ isTop }) => isTop && spacings.spacer}px;\n`;\n\nconst AuthorContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n justify-content: flex-start;\n text-align: left;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.spacer}px;\n }\n }\n`;\n\nconst Avatar = styled.img`\n border-radius: 50%; ;\n`;\n\nconst Author = styled.div``;\n\nconst StyledCopy = styled(Copy)`\n text-transform: uppercase;\n margin-bottom: ${spacings.nudge * 3}px;\n`;\n\nconst NewsAuthorCard: React.FC<{\n /** Text above author name */\n label?: string;\n\n /** Article's author name */\n author?: string;\n\n /** Author avatar image */\n avatar?: { src: string; alt?: string };\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ label, author, avatar, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {author && (\n <React.Fragment>\n <Seperator isTop isInverted={isInverted} />\n <AuthorContainer>\n {avatar && (\n <Avatar src={avatar.src} alt={avatar.alt} />\n )}\n <Author>\n {author && (\n <StyledCopy\n isInverted={isInverted}\n type=\"copy-b\"\n >\n {label || 'Written By'}\n </StyledCopy>\n )}\n <Heading\n isInverted={isInverted}\n size=\"heading-2\"\n >\n {author}\n </Heading>\n </Author>\n </AuthorContainer>\n </React.Fragment>\n )}\n <Seperator isInverted={isInverted} />\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsAuthorCardComponent = NewsAuthorCard;\nexport default withLibTheme(NewsAuthorCard);\n","import React, { forwardRef, useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport {\n spacings,\n getGlobals as global,\n getFonts as font,\n getColors,\n} from 'utils/styles';\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport StatusFormatter from 'utils/statusFormatter';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport { isValidArray } from 'utils/arrays';\n\nconst View = styled.div`\n position: relative;\n text-decoration: none;\n margin: 0;\n padding: 0;\n`;\n\nconst ImageLink = styled(Link)`\n display: block;\n width: 100%;\n`;\n\nconst StyledImage = styled(Image)`\n overflow: hidden;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n`;\n\nconst BorderPlaceholder = styled.div<{ hasBg?: boolean }>`\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg\n ? getColors(theme).elementBg.light\n : getColors(theme).elementBg.medium};\n`;\n\nconst TitleLink = styled(Link)`\n display: inline-block;\n ${copyStyle('copy-b', 'big')}\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n text-decoration: none;\n`;\n\nconst Head = styled.div`\n display: flex;\n\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n &:not(:last-child) {\n margin-bottom: ${spacings.nudge * 3}px;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Tags = styled.div`\n display: flex;\n overflow: scroll;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst PublishDate = styled(Copy)`\n &:only-child {\n margin-left: auto;\n }\n`;\n\nconst Main = styled.div`\n max-width: 95%;\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Text = styled(Copy)`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 6; /* number of lines to show */\n line-clamp: 6;\n -webkit-box-orient: vertical;\n\n & > * {\n margin: 0 !important;\n }\n\n & > p:not(:first-of-type) {\n display: none;\n }\n\n & > ul,\n & > ol,\n & > table {\n display: none;\n }\n`;\n\nconst Action = styled.div`\n margin-top: ${spacings.nudge * 3}px;\n`;\n\nexport interface NewsCardProps {\n /** Invert text and background for use on dark sections */\n isInverted?: boolean;\n\n /** News tag name */\n tags?: TagProps[];\n\n /** News publish date */\n publishDate?: Date;\n\n /** News title */\n title?: string;\n\n /** News text */\n text?: string;\n\n /** News image settings */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** News link settings */\n link?: LinkProps;\n\n /** Callback function if tag in news iten has been clicked */\n onTagClick?: (tag: TagProps) => void;\n\n /** Function to inject primary action */\n action?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLAnchorElement>) => void;\n }) => React.ReactNode;\n\n hasBg?: boolean;\n}\n\nconst NewsCard = forwardRef<\n HTMLDivElement,\n NewsCardProps & {\n className?: string;\n }\n>(\n (\n {\n tags,\n onTagClick,\n publishDate,\n title,\n text,\n image,\n link,\n isInverted,\n action,\n customTag,\n className,\n hasBg,\n },\n ref\n ) => {\n const { globals } = useLibTheme();\n\n let publishedAt = '';\n if (publishDate) {\n const formatter = new StatusFormatter(\n publishDate.getTime(),\n '',\n globals.sections.newsDateFormat(publishDate),\n globals.sections.newsTimeFormat(publishDate),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n const handleTagClick = (tag: TagProps) =>\n onTagClick\n ? (ev?: React.SyntheticEvent<HTMLAnchorElement>) => {\n ev?.preventDefault();\n onTagClick(tag);\n }\n : undefined;\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag.name);\n }, [tags]);\n\n return (\n <View ref={ref} className={className}>\n {image?.small ? (\n <ImageLink {...link} ariaLabel={title}>\n <StyledImage\n {...image}\n coverSpace\n isInverted={isInverted}\n />\n </ImageLink>\n ) : (\n <BorderPlaceholder hasBg={hasBg} />\n )}\n <Head data-sheet=\"head\">\n {isValidArray(filteredTags, false) && (\n <Tags>\n {filteredTags.map((tag, i) => {\n if (customTag) {\n return customTag({\n key: i,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n clickHandler: handleTagClick(tag),\n });\n } else {\n return (\n <Tag\n key={i}\n isInverted={isInverted}\n name={tag.name}\n link={tag.link}\n onClick={handleTagClick(tag)}\n />\n );\n }\n })}\n </Tags>\n )}\n {publishedAt && (\n <PublishDate\n size=\"small\"\n renderAs=\"div\"\n isInverted={isInverted}\n >\n {publishedAt}\n </PublishDate>\n )}\n </Head>\n <Main>\n {title && (\n <TitleLink\n {...link}\n ariaLabel={title}\n isInverted={isInverted}\n dataSheet=\"title\"\n >\n {title}\n </TitleLink>\n )}\n {text && (\n <Text\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n data-sheet=\"text\"\n size=\"medium\"\n />\n )}\n </Main>\n {action && <Action>{action(isInverted)}</Action>}\n </View>\n );\n }\n);\n\nNewsCard.displayName = 'NewsCard';\n\nexport default NewsCard;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport Copy from 'components/typography/Copy';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport Pointer from 'components/buttons/Pointer';\nimport { isValidArray } from 'utils/arrays';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport Filter from 'components/base/icons/Filter';\nimport useUpdateEffect from 'utils/useUpdateEffect';\nimport useMounted from 'utils/useMounted';\n\nconst TagContainer = styled.div`\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ${spacings.nudge * 6}px;\n }\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nconst ListFooter = styled.div`\n margin-top: ${spacings.nudge * 6}px;\n text-align: center;\n\n @media ${mq.medium} {\n text-align: left;\n }\n`;\n\nconst ShowMore = styled.span<{ itemCount?: number }>`\n display: ${({ itemCount }) =>\n itemCount && itemCount > 2 ? 'block' : 'none'};\n`;\n\nconst FilterIcon = styled(Copy)`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ${spacings.nudge / 2}px ${spacings.nudge}px 0 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nexport const getNewsFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.newsFilterName;\n if (!filterName) return url;\n\n try {\n const validUrl = new URL(url);\n const newParams = new URLSearchParams(validUrl.search);\n newParams.set(filterName, encodeURIComponent(tags.join(',')));\n\n return `${url}?${newParams.toString()}`;\n } catch (err) {\n return `${url}?${filterName}=${encodeURIComponent(tags.join(','))}`;\n }\n};\n\ntype NewsOverviewMq = 'small' | 'semilarge' | 'large';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'customTag' | 'isInverted' | 'onTagClick'\n>;\n\nconst NewsOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news?: NewsItem[];\n\n /** Tags for news filtering */\n tags?: string[];\n\n /** Initial data. If not defined the component tries to collect this from URL params */\n initial?: {\n activeTags?: string[];\n visibleRows?: number;\n };\n\n /** Text for load more toggle. Only visible if browser doesn't support IntersectionObserver. */\n showMoreText?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /**\n * Callback function to handle tag click outside of component\n * If no callback is defined filtering is controlled on client\n * */\n onTagClick?: (tag: TagProps, insideList?: boolean) => void;\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLElement>) => void;\n }) => React.ReactNode;\n}> = ({\n anchorId,\n news,\n tags,\n initial,\n showMoreText,\n bgMode,\n\n onTagClick,\n customTag,\n}) => {\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.newsFilterName;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [selectedTags, setSelectedTags] = useState<string[]>(\n initial?.activeTags || []\n );\n\n const mqs: NewsOverviewMq[] = ['small', 'semilarge', 'large'];\n const currentMq = useMediaQuery(mqs) as NewsOverviewMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(3);\n const [visibleRows, setVisibleRows] = useState(initial?.visibleRows || 3);\n const isMounted = useMounted();\n\n const targetRef = useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n\n const newsCount = news?.length || 0;\n\n const setNewPos = useScrollTo(800);\n const { sheetRefs: cardRefs, triggerCalculation } =\n useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n const getFilters = useCallback(() => {\n const tags: string[] = [];\n\n const filters = getUrlParams()[filterName];\n if (filters) {\n const tagsFilter = filters?.split(',');\n if (isValidArray(tagsFilter, false)) {\n tags.push(...tagsFilter);\n }\n }\n return tags;\n }, [filterName]);\n\n useEffect(() => {\n // if initial data is defined exit hook\n if (initial) return;\n\n // if no initial data provied try to find needed params in URL\n const paramTags = getFilters();\n const paramRows = parseInt(getUrlParams()['rows']);\n\n setVisibleRows(paramRows || 3);\n\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\n\n // trigger equal sheet height recalculation\n triggerCalculation();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getFilters, initial]);\n\n useEffect(() => {\n if (!initial || isMounted) return;\n\n // set inital data into URL\n setUrlParam('rows', initial?.visibleRows || 3);\n\n if (isValidArray(initial?.activeTags, false)) {\n setUrlParam(filterName, initial?.activeTags?.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterName, initial, isMounted]);\n\n useUpdateEffect(() => {\n setUrlParam('rows', visibleRows);\n }, [visibleRows]);\n\n useUpdateEffect(() => {\n if (onTagClick || !isValidArray(selectedTags)) return;\n\n // set filters to URL params\n if (selectedTags.length > 0) {\n setUrlParam(filterName, selectedTags.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [selectedTags]);\n\n useEffect(() => {\n switch (currentMq) {\n case 'large':\n setItemsPerRow(3);\n break;\n\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n const handleTagClick = (tag: TagProps, enableToggling = true) => {\n setSelectedTags((prev) => {\n const prevCopy = [...prev];\n const itemIndex = tag.name ? prev.indexOf(tag.name) : -1;\n\n if (itemIndex === -1 && tag.name) {\n return [...prevCopy, tag.name];\n }\n if (enableToggling) {\n prevCopy.splice(itemIndex, 1);\n return prevCopy;\n }\n return prev;\n });\n // trigger equal sheet height recalculation\n triggerCalculation();\n setVisibleRows(3);\n };\n\n const filteredNews = useMemo(() => {\n const tagFilterFn = (item: NewsItem) => {\n if (!isValidArray(selectedTags, false)) return true;\n if (!item.tags) return false;\n\n let hasTags = false;\n for (let i = 0; i < item.tags.length; i++) {\n if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {\n hasTags = true;\n break;\n }\n }\n return hasTags;\n };\n\n let filtered = isValidArray(news) ? [...news] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [news, selectedTags]);\n\n const visibleNews: NewsItem[] = useMemo(() => {\n return (\n filteredNews?.filter((_, i) => i < visibleRows * itemsPerRow) || []\n );\n }, [filteredNews, itemsPerRow, visibleRows]);\n\n useEffect(() => {\n // cancel if intersection observers are not supported\n if (!observerSupported) return;\n\n const element = targetRef.current;\n let observer: IntersectionObserver;\n\n if (element) {\n const options = {\n rootMargin: '0px 0px 100px 0px',\n threshold: 0,\n };\n\n observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry?.isIntersecting) {\n // on bottom of the wrapper load more news\n if (\n visibleRows <\n Math.ceil(filteredNews.length / itemsPerRow)\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }\n }, options);\n observer.observe(element);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, [\n itemsPerRow,\n newsCount,\n visibleRows,\n observerSupported,\n filteredNews.length,\n ]);\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag);\n }, [tags]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {isValidArray(filteredTags, false) && (\n <TagContainer>\n <FilterIcon\n size=\"small\"\n type=\"copy\"\n isInverted={isInverted}\n >\n <Filter />\n <span>Filter</span>\n </FilterIcon>\n {filteredTags.map((tag, i) => (\n <TagWrapper key={i}>\n {customTag ? (\n customTag({\n key: i,\n name: tag,\n isInverted: isInverted,\n isActive:\n selectedTags.indexOf(tag) !== -1,\n clickHandler: (ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else onTagClick({ name: tag });\n },\n })\n ) : (\n <Tag\n isInverted={isInverted}\n onClick={(ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else\n onTagClick(\n { name: tag },\n false\n );\n }}\n isActive={\n selectedTags.indexOf(tag) !== -1\n }\n >\n {tag}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n <News>\n {visibleNews.map((item, i) => (\n <NewsItem key={`${i}_news_${item.title}`}>\n <NewsCard\n hasBg={hasBg || isInverted}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => ({\n name: tag.name,\n }))}\n isInverted={isInverted}\n onTagClick={(tag) => {\n // scroll back to top\n setNewPos(0);\n if (!onTagClick) {\n // if no callback is defined handle filtering on client side inside the component\n handleTagClick(\n { name: tag.name },\n false\n );\n } else {\n onTagClick({ name: tag.name }, true);\n }\n }}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {news && news.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={news.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredNews.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredNews.length / itemsPerRow && (\n <Pointer.View\n as=\"button\"\n isInverted={isInverted}\n >\n <Pointer.Label>\n {showMoreText ||\n 'mehr anzeigen'}\n </Pointer.Label>\n </Pointer.View>\n )}\n </ShowMore>\n </Copy>\n )}\n </ListFooter>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsOverviewComponent = NewsOverview;\nexport default withLibTheme(NewsOverview);\n","import React from 'react';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { useEffect, useState } from 'react';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\ntype NewsFooterMq = 'small' | 'semilarge';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsFooter: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news: NewsItem[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n const newsCount = news?.length || 0;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const mqs: NewsFooterMq[] = ['small', 'semilarge'];\n const currentMq = useMediaQuery(mqs) as NewsFooterMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(2);\n const [visibleRows, setVisibleRows] = useState(1);\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 2,\n xlarge: 2,\n },\n });\n\n useEffect(() => {\n switch (currentMq) {\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n <Grid.Row>\n {news\n ?.filter((_, i) => i < visibleRows * itemsPerRow)\n .map((item, i) => (\n <Grid.Col\n medium={{ span: 6 / 12 }}\n key={`${i}_news_${item.title}`}\n >\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n isInverted={isInverted}\n customTag={customTag}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsFooterComponent = NewsFooter;\nexport default withLibTheme(NewsFooter);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Grid from 'components/base/Grid';\n\nconst StyledImage = styled(Image)`\n width: 100%;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n picture > img {\n width: 100%;\n height: 100%;\n }\n`;\n\ntype ImageType = Omit<ImageProps, 'coverSpace'> & { isFull?: boolean };\n\nconst NewsImages: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** List of gallery images */\n images?: ImageType[];\n\n /** Image style */\n isFull?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, images, bgMode }) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Grid.Row>\n {images\n ?.filter((img) => img.small)\n ?.map((img, i) => (\n <Grid.Col\n key={i}\n semilarge={{\n span: img.isFull ? 12 / 12 : 6 / 12,\n }}\n >\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n {/* {images && (imageStyle === 'half' || images.length >= 2) ? (\n <Grid.Row>\n {images.map((img, i) => {\n return (\n <Grid.Col medium={{ span: 6 / 12 }} key={i}>\n <div>\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </div>\n </Grid.Col>\n );\n })}\n </Grid.Row>\n ) : (\n images && (\n <div>\n {images.map((img, i) => {\n return (\n <StyledImage\n key={i}\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n );\n })}\n </div>\n )\n )} */}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsImagesComponent = NewsImages;\nexport default withLibTheme(NewsImages);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Title from 'components/blocks/Title';\nimport Copy from 'components/typography/Copy';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { mq, spacings } from 'utils/styles';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst Content = styled.div`\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst IntroHead = styled(Copy)`\n display: flex;\n\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n align-items: center;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.nudge * 2}px;\n }\n }\n`;\n\nconst Tags = styled.div`\n flex: 1 1 80%;\n\n display: flex;\n flex-wrap: wrap;\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n`;\n\nconst TagWrapper = styled.span`\n display: inline-block;\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst MetaBlock = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst StyledTitle = styled(Title)<{ clampTitle?: boolean }>`\n max-width: ${({ clampTitle }) =>\n clampTitle && (13 / 28) * spacings.wrapperSmall + 'px'};\n`;\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapper + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsIntro: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news tags */\n tags?: TagProps[];\n\n /** News article's meta informations */\n meta?: { date?: Date; author?: string };\n\n /** Title of news article */\n title?: string;\n\n /** Main image of news article */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** Text of news article (richtext) */\n text?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, tags, meta, title, text, image, bgMode, customTag }) => {\n const { globals, colors, theme } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n let publishedAt = '';\n if (meta?.date) {\n const formatter = new StatusFormatter(\n meta.date.getTime(),\n '',\n globals.sections.newsDateFormat(meta.date),\n globals.sections.newsTimeFormat(meta.date),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Content>\n <IntroHead isInverted={isInverted}>\n <Tags>\n {tags?.map((tag, i) => {\n let tagLink: LinkProps | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagLink = {\n ...tag.link,\n href: getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n ),\n };\n }\n\n return (\n <TagWrapper key={`headtag-${i}`}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tagLink,\n })\n ) : (\n <Tag\n link={tagLink}\n isInverted={isInverted}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n );\n })}\n </Tags>\n {(publishedAt || meta?.author) && (\n <MetaBlock>\n {meta?.author && <div>{meta?.author}</div>}\n {publishedAt && <div>{publishedAt}</div>}\n </MetaBlock>\n )}\n </IntroHead>\n <div>\n <StyledTitle\n colorMode={isInverted ? 'inverted' : 'default'}\n title={title}\n />\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy-b\"\n innerHTML={text}\n />\n )}\n </div>\n {image?.small && (\n <Image\n {...image}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n />\n )}\n </Content>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsIntroComponent = NewsIntro;\nexport default withLibTheme(NewsIntro);\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { mq, spacings } from 'utils/styles';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n max-width: 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Show a short version of three or a expanded version of six news items */\n mode?: 'short' | 'expanded';\n\n /** Array of news card settings */\n news?: NewsItem[];\n\n /** Sections background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, mode = 'short', news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n\n const items = useMemo<NewsCardProps[]>(() => {\n if (!news) return [];\n if (mode === 'expanded') return news.slice(0, 6);\n else return news.slice(0, 3);\n }, [news, mode]);\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: items.length,\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 2,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <News>\n {items?.map((item, i) => (\n <NewsItem key={i}>\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n isInverted={isInverted}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsListComponent = NewsList;\nexport default withLibTheme(NewsList);\n","import React from 'react';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport TableBlock, { TableProps } from 'components/blocks/TableBlock';\nimport styled from 'styled-components';\nimport { spacings } from 'utils/styles';\n\nconst NewsTableSection = styled(Section)`\n overflow: unset;\n`;\n\nconst TableWrapper = styled(Wrapper)`\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsTable: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Table rows and columns */\n tableItems: TableProps[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, bgMode, tableItems }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full' || isInverted;\n\n return (\n <NewsTableSection\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <TableWrapper clampWidth=\"small\">\n {tableItems.map((item, i) => {\n return (\n <TableBlock\n {...item}\n key={i}\n hasBack={hasBg}\n isInverted={isInverted}\n />\n );\n })}\n </TableWrapper>\n </NewsTableSection>\n );\n};\n\nexport const NewsTableComponent = NewsTable;\nexport default withLibTheme(NewsTable);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Copy from 'components/typography/Copy';\nimport Wrapper from 'components/base/Wrapper';\nimport { spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapperSmall + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.nudge * 5}px;\n }\n`;\n\nconst NewsText: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Main text (RichText) */\n text: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, text, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsTextComponent = NewsText;\nexport default withLibTheme(NewsText);\n","import React from 'react';\n\nimport { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Wrapper from 'components/base/Wrapper';\nimport VideoCard from 'components/blocks/VideoCard';\n\nconst NewsVideo: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Placeholder image */\n bgImage?: ImageProps;\n\n /** Embed video ID. E.g. from Youtube */\n embedId?: string;\n\n /** Custom play icon */\n playIcon?: React.ReactNode;\n\n /** Text for cookie consent overlay */\n consentText?: string;\n\n /** Function to inject custom action on cookie consent overlay */\n consentAction?: (props: {\n handleClick?: () => void;\n consentProps: Record<string, string>;\n }) => React.ReactNode;\n /**\n * Custom handler for play button click\n * @returns true if video should be played\n */\n onPlayClick?: () => Promise<boolean>;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgImage,\n embedId,\n playIcon,\n consentText,\n consentAction,\n onPlayClick,\n bgMode,\n}) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n {embedId && bgImage && (\n <VideoCard\n bgImage={bgImage}\n embedId={embedId}\n playIcon={playIcon}\n consentText={consentText}\n consentAction={consentAction}\n onPlayClick={onPlayClick}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsVideoComponent = NewsVideo;\nexport default withLibTheme(NewsVideo);\n"],"names":["Seperator","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","_a","isInverted","theme","color","elementBg","light","dark","isTop","spacings","spacer","AuthorContainer","templateObject_2","mq","medium","Avatar","img","templateObject_3","Author","templateObject_4","StyledCopy","Copy","templateObject_5","nudge","NewsAuthorCard$1","withLibTheme","label","author","avatar","bgMode","colors","useLibTheme","hasBg","React","Section","addSeperation","bgColor","sectionBg","mapToBgMode","createElement","Wrapper","clampWidth","addWhitespace","Fragment","src","alt","type","Heading","size","View","ImageLink","Link","StyledImage","Image","global","sections","edgeRadius","BorderPlaceholder","getColors","TitleLink","copyStyle","font","getFonts","big","colorInverted","Head","templateObject_6","Tags","templateObject_7","PublishDate","templateObject_8","Main","Text","templateObject_10","Action","NewsCard","forwardRef","ref","tags","onTagClick","publishDate","title","text","image","link","action","customTag","className","globals","publishedAt","StatusFormatter","getTime","newsDateFormat","newsTimeFormat","newsLocaleKey","getFormattedDate","handleTagClick","tag","ev","preventDefault","undefined","filteredTags","useMemo","filter","name","small","__assign","ariaLabel","coverSpace","isValidArray","map","i","key","isActive","clickHandler","Tag","onClick","renderAs","dataSheet","innerHTML","TagContainer","TagWrapper","News","ul","NewsItem","li","large","ListFooter","ShowMore","span","itemCount","FilterIcon","getNewsFilterParams","url","filterName","newsFilterName","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","join","concat","toString","err","NewsOverview$1","anchorId","news","initial","showMoreText","_b","_c","useState","activeTags","selectedTags","setSelectedTags","currentMq","useMediaQuery","_d","itemsPerRow","setItemsPerRow","_e","visibleRows","setVisibleRows","isMounted","useMounted","targetRef","useRef","observerSupported","useObserverSupport","newsCount","length","setNewPos","useScrollTo","_f","useEqualSheetHeight","listLength","Math","min","identifiers","responsive","semilarge","xlarge","cardRefs","sheetRefs","triggerCalculation","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","push","apply","useEffect","paramTags","paramRows","parseInt","setUrlParam","deleteUrlParam","useUpdateEffect","enableToggling","prev","prevCopy","__spreadArray","itemIndex","indexOf","splice","filteredNews","filtered","item","hasTags","visibleNews","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","ceil","rootMargin","threshold","observe","disconnect","Filter","Pointer","as","Label","Grid","Row","Col","tagHref","href","NewsImages$1","images","isFull","Content","IntroHead","MetaBlock","StyledTitle","Title","clampTitle","wrapperSmall","ContentBlock","isCentered","clampText","wrapper","NewsIntro$1","meta","date","tagLink","colorMode","allowEdgeRadius","NewsList$1","mode","items","slice","NewsTableSection","TableWrapper","NewsTable$1","tableItems","TableBlock","hasBack","NewsText$1","bgImage","embedId","playIcon","consentText","consentAction","onPlayClick","VideoCard"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sections.news.js","sources":["../src/components/sections/news/NewsAuthorCard.tsx","../src/components/blocks/NewsCard.tsx","../src/components/sections/news/NewsOverview.tsx","../src/components/sections/news/NewsFooter.tsx","../src/components/sections/news/NewsImages.tsx","../src/components/sections/news/NewsIntro.tsx","../src/components/sections/news/NewsList.tsx","../src/components/sections/news/NewsTable.tsx","../src/components/sections/news/NewsText.tsx","../src/components/sections/news/NewsVideo.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst Seperator = styled.div<{ isInverted?: boolean; isTop?: boolean }>`\n border-bottom: solid 1px\n ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n\n margin-top: ${({ isTop }) => !isTop && spacings.spacer}px;\n margin-bottom: ${({ isTop }) => isTop && spacings.spacer}px;\n`;\n\nconst AuthorContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n justify-content: flex-start;\n text-align: left;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.spacer}px;\n }\n }\n`;\n\nconst Avatar = styled.img`\n border-radius: 50%; ;\n`;\n\nconst Author = styled.div``;\n\nconst StyledCopy = styled(Copy)`\n text-transform: uppercase;\n margin-bottom: ${spacings.nudge * 3}px;\n`;\n\nconst NewsAuthorCard: React.FC<{\n /** Text above author name */\n label?: string;\n\n /** Article's author name */\n author?: string;\n\n /** Author avatar image */\n avatar?: { src: string; alt?: string };\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ label, author, avatar, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {author && (\n <React.Fragment>\n <Seperator isTop isInverted={isInverted} />\n <AuthorContainer>\n {avatar && (\n <Avatar\n src={avatar.src}\n alt={avatar.alt ?? ''}\n />\n )}\n <Author>\n {author && (\n <StyledCopy\n isInverted={isInverted}\n type=\"copy-b\"\n >\n {label || 'Written By'}\n </StyledCopy>\n )}\n <Heading\n isInverted={isInverted}\n size=\"heading-2\"\n >\n {author}\n </Heading>\n </Author>\n </AuthorContainer>\n </React.Fragment>\n )}\n <Seperator isInverted={isInverted} />\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsAuthorCardComponent = NewsAuthorCard;\nexport default withLibTheme(NewsAuthorCard);\n","import React, { forwardRef, useId, useMemo } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n spacings,\n getGlobals as global,\n getFonts as font,\n getColors as color,\n} from 'utils/styles';\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport StatusFormatter from 'utils/statusFormatter';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport { isValidArray } from 'utils/arrays';\nimport { concat as cn } from 'utils/concat';\n\nconst View = styled.article<{ isInverted?: boolean }>`\n position: relative;\n text-decoration: none;\n margin: 0;\n padding: 0;\n\n display: flex;\n flex-direction: column;\n gap: ${spacings.nudge * 3}px;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n & > * {\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme).link.colorHoverInverted\n : font(theme).link.colorHover};\n }\n }\n }\n`;\n\nconst StyledImage = styled(Image)`\n overflow: hidden;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n cursor: ${({ onClick }) => onClick && 'pointer'};\n`;\n\nconst BorderPlaceholder = styled.div<{ hasBg?: boolean }>`\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg\n ? color(theme).elementBg.light\n : color(theme).elementBg.medium};\n`;\n\nconst TitleLink = styled(Link)`\n display: inline-block;\n ${copyStyle('copy-b', 'big')}\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n text-decoration: none;\n\n * {\n padding: 0;\n margin: 0;\n ${copyStyle('copy-b', 'big')}\n }\n`;\n\nconst Title = styled.div<{ isInverted?: boolean; onClick?: () => void }>`\n display: inline-block;\n ${copyStyle('copy-b', 'big')}\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n ${({ theme, isInverted, onClick }) =>\n onClick &&\n css`\n color: ${isInverted\n ? font(theme).link.colorHoverInverted\n : font(theme).link.colorHover};\n cursor: pointer;\n `};\n }\n }\n\n * {\n padding: 0;\n margin: 0;\n ${copyStyle('copy-b', 'big')}\n }\n`;\n\nconst Head = styled.div`\n order: 0;\n display: flex;\n\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n margin-left: -4px;\n margin-top: -4px;\n margin-bottom: -4px;\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Tags = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n gap: ${spacings.nudge}px;\n padding: 4px;\n overflow: scroll;\n scrollbar-width: none;\n\n z-index: 1;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n }\n`;\n\nconst PublishDate = styled(Copy)`\n &:only-child {\n margin-left: auto;\n }\n`;\n\nconst Main = styled.div`\n order: 1;\n max-width: 95%;\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Text = styled(Copy)`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 6; /* number of lines to show */\n line-clamp: 6;\n -webkit-box-orient: vertical;\n\n & > * {\n margin: 0 !important;\n }\n\n & > p:not(:first-of-type) {\n display: none;\n }\n\n & > ul,\n & > ol,\n & > table {\n display: none;\n }\n`;\n\nconst CardFooter = styled.div`\n order: 2;\n`;\n\nexport type NewsCardActionFn = (\n props: NewsCardActionFnProps\n) => React.ReactNode;\n\nexport interface NewsCardActionFnProps {\n isInverted?: boolean;\n title?: string;\n link?: LinkProps;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLElement>) => void;\n}\n\nexport interface NewsCardCustomTagFnProps {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLAnchorElement>) => void;\n}\nexport type NewsCardCustomTagFn = (\n props: NewsCardCustomTagFnProps\n) => React.ReactNode;\n\nexport interface NewsCardProps {\n /** Invert text and background for use on dark sections */\n isInverted?: boolean;\n\n /** News tag name */\n tags?: TagProps[];\n\n /** News publish date */\n publishDate?: Date;\n\n /** News title */\n title?: string;\n\n /** News text */\n text?: string;\n\n /** News image settings */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** News link settings */\n link?: LinkProps;\n\n /** Callback function if tag in news iten has been clicked */\n onTagClick?: (tag: TagProps) => void;\n\n /** Aria label for the tag list */\n tagListAriaLabel?: string;\n\n /** Function to inject primary action */\n action?: NewsCardActionFn;\n\n /** Function to inject custom tag node */\n customTag?: NewsCardCustomTagFn;\n\n hasBg?: boolean;\n}\n\nconst NewsCard = forwardRef<\n HTMLDivElement,\n NewsCardProps & {\n className?: string;\n }\n>(\n (\n {\n tags,\n onTagClick,\n publishDate,\n title,\n text,\n image,\n link,\n isInverted,\n customTag,\n tagListAriaLabel,\n className,\n hasBg,\n action,\n },\n ref\n ) => {\n const { globals } = useLibTheme();\n const uniqueId = useId();\n\n let publishedAt = '';\n if (publishDate) {\n const formatter = new StatusFormatter(\n publishDate.getTime(),\n '',\n globals.sections.newsDateFormat(publishDate),\n globals.sections.newsTimeFormat(publishDate),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n const handleTagClick = (tag: TagProps) =>\n onTagClick\n ? (ev?: React.SyntheticEvent<HTMLAnchorElement>) => {\n ev?.stopPropagation();\n ev?.preventDefault();\n onTagClick(tag);\n }\n : (ev?: React.SyntheticEvent<HTMLAnchorElement>) => {\n ev?.stopPropagation();\n ev?.preventDefault();\n };\n\n const handleClick = () => {\n if (!link?.href) return;\n if (link.isExternal) {\n window.open(link.href, '_blank', 'noopener');\n } else {\n window.location.href = link.href;\n }\n };\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag.name);\n }, [tags]);\n\n return (\n <View\n ref={ref}\n className={className}\n aria-labelledby={uniqueId}\n isInverted={isInverted}\n >\n {image?.small ? (\n <StyledImage\n {...image}\n coverSpace\n isInverted={isInverted}\n onClick={link?.href ? handleClick : undefined}\n />\n ) : (\n <BorderPlaceholder hasBg={hasBg} />\n )}\n <Main>\n {title && (\n <>\n {action ? (\n <Title\n isInverted={isInverted}\n data-sheet=\"title\"\n aria-label={title}\n onClick={\n link?.href ? handleClick : undefined\n }\n >\n <h3 id={uniqueId}>{title}</h3>\n </Title>\n ) : (\n <TitleLink\n {...link}\n isInverted={isInverted}\n ariaLabel={title}\n dataSheet=\"title\"\n >\n <h3 id={uniqueId}>{title}</h3>\n </TitleLink>\n )}\n </>\n )}\n {text && (\n <Text\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n data-sheet=\"text\"\n size=\"medium\"\n />\n )}\n </Main>\n {action && (\n <CardFooter>\n {action({\n isInverted,\n link,\n title: cn(['Read article', title], ': '),\n clickHandler: handleClick,\n })}\n </CardFooter>\n )}\n <Head data-sheet=\"head\">\n {isValidArray(filteredTags, false) && (\n <Tags\n aria-label={tagListAriaLabel || 'News categories'}\n >\n {filteredTags.map((tag, i) => {\n if (customTag) {\n return customTag({\n key: i,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n clickHandler: handleTagClick(tag),\n });\n } else {\n return (\n <li key={i}>\n <Tag\n isInverted={isInverted}\n name={tag.name}\n link={tag.link}\n onClick={handleTagClick(tag)}\n />\n </li>\n );\n }\n })}\n </Tags>\n )}\n {publishedAt && (\n <PublishDate\n size=\"small\"\n renderAs=\"div\"\n isInverted={isInverted}\n >\n {publishedAt}\n </PublishDate>\n )}\n </Head>\n </View>\n );\n }\n);\n\nNewsCard.displayName = 'NewsCard';\n\nexport default NewsCard;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport NewsCard, {\n NewsCardCustomTagFn,\n NewsCardProps,\n} from 'components/blocks/NewsCard';\nimport { mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport Copy from 'components/typography/Copy';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport Pointer from 'components/buttons/Pointer';\nimport { isValidArray } from 'utils/arrays';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport Filter from 'components/base/icons/Filter';\nimport useUpdateEffect from 'utils/useUpdateEffect';\nimport useMounted from 'utils/useMounted';\n\nconst TagContainer = styled.div`\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ${spacings.nudge * 6}px;\n }\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nconst ListFooter = styled.div`\n margin-top: ${spacings.nudge * 6}px;\n text-align: center;\n\n @media ${mq.medium} {\n text-align: left;\n }\n`;\n\nconst ShowMore = styled.span<{ itemCount?: number }>`\n display: ${({ itemCount }) =>\n itemCount && itemCount > 2 ? 'block' : 'none'};\n`;\n\nconst FilterIcon = styled(Copy)`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ${spacings.nudge / 2}px ${spacings.nudge}px 0 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nexport const getNewsFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.newsFilterName;\n if (!filterName) return url;\n\n try {\n const validUrl = new URL(url);\n const newParams = new URLSearchParams(validUrl.search);\n newParams.set(filterName, encodeURIComponent(tags.join(',')));\n\n return `${url}?${newParams.toString()}`;\n } catch (err) {\n return `${url}?${filterName}=${encodeURIComponent(tags.join(','))}`;\n }\n};\n\ntype NewsOverviewMq = 'small' | 'semilarge' | 'large';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'customTag' | 'isInverted' | 'onTagClick'\n>;\n\nconst NewsOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news?: NewsItem[];\n\n /** Tags for news filtering */\n tags?: string[];\n\n /** Initial data. If not defined the component tries to collect this from URL params */\n initial?: {\n activeTags?: string[];\n visibleRows?: number;\n };\n\n /** Text for load more toggle. Only visible if browser doesn't support IntersectionObserver. */\n showMoreText?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /**\n * Callback function to handle tag click outside of component\n * If no callback is defined filtering is controlled on client\n * */\n onTagClick?: (tag: TagProps, insideList?: boolean) => void;\n\n /** Function to inject custom tag node */\n customTag?: NewsCardCustomTagFn;\n}> = ({\n anchorId,\n news,\n tags,\n initial,\n showMoreText,\n bgMode,\n\n onTagClick,\n customTag,\n}) => {\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.newsFilterName;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [selectedTags, setSelectedTags] = useState<string[]>(\n initial?.activeTags || []\n );\n\n const mqs: NewsOverviewMq[] = ['small', 'semilarge', 'large'];\n const currentMq = useMediaQuery(mqs) as NewsOverviewMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(3);\n const [visibleRows, setVisibleRows] = useState(initial?.visibleRows || 3);\n const isMounted = useMounted();\n\n const targetRef = useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n\n const newsCount = news?.length || 0;\n\n const setNewPos = useScrollTo(800);\n const { sheetRefs: cardRefs, triggerCalculation } =\n useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n const getFilters = useCallback(() => {\n const tags: string[] = [];\n\n const filters = getUrlParams()[filterName];\n if (filters) {\n const tagsFilter = filters?.split(',');\n if (isValidArray(tagsFilter, false)) {\n tags.push(...tagsFilter);\n }\n }\n return tags;\n }, [filterName]);\n\n useEffect(() => {\n // if initial data is defined exit hook\n if (initial) return;\n\n // if no initial data provied try to find needed params in URL\n const paramTags = getFilters();\n const paramRows = parseInt(getUrlParams()['rows']);\n\n setVisibleRows(paramRows || 3);\n\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\n\n // trigger equal sheet height recalculation\n triggerCalculation();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getFilters, initial]);\n\n useEffect(() => {\n if (!initial || isMounted) return;\n\n // set inital data into URL\n setUrlParam('rows', initial?.visibleRows || 3);\n\n if (isValidArray(initial?.activeTags, false)) {\n setUrlParam(filterName, initial?.activeTags?.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterName, initial, isMounted]);\n\n useUpdateEffect(() => {\n setUrlParam('rows', visibleRows);\n }, [visibleRows]);\n\n useUpdateEffect(() => {\n if (onTagClick || !isValidArray(selectedTags)) return;\n\n // set filters to URL params\n if (selectedTags.length > 0) {\n setUrlParam(filterName, selectedTags.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [selectedTags]);\n\n useEffect(() => {\n switch (currentMq) {\n case 'large':\n setItemsPerRow(3);\n break;\n\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n const handleTagClick = (tag: TagProps, enableToggling = true) => {\n setSelectedTags((prev) => {\n const prevCopy = [...prev];\n const itemIndex = tag.name ? prev.indexOf(tag.name) : -1;\n\n if (itemIndex === -1 && tag.name) {\n return [...prevCopy, tag.name];\n }\n if (enableToggling) {\n prevCopy.splice(itemIndex, 1);\n return prevCopy;\n }\n return prev;\n });\n // trigger equal sheet height recalculation\n triggerCalculation();\n setVisibleRows(3);\n };\n\n const filteredNews = useMemo(() => {\n const tagFilterFn = (item: NewsItem) => {\n if (!isValidArray(selectedTags, false)) return true;\n if (!item.tags) return false;\n\n let hasTags = false;\n for (let i = 0; i < item.tags.length; i++) {\n if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {\n hasTags = true;\n break;\n }\n }\n return hasTags;\n };\n\n let filtered = isValidArray(news) ? [...news] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [news, selectedTags]);\n\n const visibleNews: NewsItem[] = useMemo(() => {\n return (\n filteredNews?.filter((_, i) => i < visibleRows * itemsPerRow) || []\n );\n }, [filteredNews, itemsPerRow, visibleRows]);\n\n useEffect(() => {\n // cancel if intersection observers are not supported\n if (!observerSupported) return;\n\n const element = targetRef.current;\n let observer: IntersectionObserver;\n\n if (element) {\n const options = {\n rootMargin: '0px 0px 100px 0px',\n threshold: 0,\n };\n\n observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry?.isIntersecting) {\n // on bottom of the wrapper load more news\n if (\n visibleRows <\n Math.ceil(filteredNews.length / itemsPerRow)\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }\n }, options);\n observer.observe(element);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, [\n itemsPerRow,\n newsCount,\n visibleRows,\n observerSupported,\n filteredNews.length,\n ]);\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag);\n }, [tags]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {isValidArray(filteredTags, false) && (\n <TagContainer>\n <FilterIcon\n size=\"small\"\n type=\"copy\"\n isInverted={isInverted}\n >\n <Filter />\n <span>Filter</span>\n </FilterIcon>\n {filteredTags.map((tag, i) => (\n <TagWrapper key={i}>\n {customTag ? (\n customTag({\n key: i,\n name: tag,\n isInverted: isInverted,\n isActive:\n selectedTags.indexOf(tag) !== -1,\n clickHandler: (ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else onTagClick({ name: tag });\n },\n })\n ) : (\n <Tag\n isInverted={isInverted}\n onClick={(ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else\n onTagClick(\n { name: tag },\n false\n );\n }}\n isActive={\n selectedTags.indexOf(tag) !== -1\n }\n >\n {tag}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n <News aria-label=\"Neuigkeiten-Übersicht\">\n {visibleNews.map((item, i) => (\n <NewsItem key={`${i}_news_${item.title}`}>\n <NewsCard\n hasBg={hasBg || isInverted}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => ({\n name: tag.name,\n }))}\n isInverted={isInverted}\n onTagClick={(tag) => {\n // scroll back to top\n setNewPos(0);\n if (!onTagClick) {\n // if no callback is defined handle filtering on client side inside the component\n handleTagClick(\n { name: tag.name },\n false\n );\n } else {\n onTagClick({ name: tag.name }, true);\n }\n }}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {news && news.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={news.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredNews.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredNews.length / itemsPerRow && (\n <Pointer.View\n as=\"button\"\n isInverted={isInverted}\n >\n <Pointer.Label>\n {showMoreText ||\n 'mehr anzeigen'}\n </Pointer.Label>\n </Pointer.View>\n )}\n </ShowMore>\n </Copy>\n )}\n </ListFooter>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsOverviewComponent = NewsOverview;\nexport default withLibTheme(NewsOverview);\n","import Grid from 'components/base/Grid';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport NewsCard, {\n NewsCardCustomTagFn,\n NewsCardProps,\n} from 'components/blocks/NewsCard';\nimport React, { useEffect, useState } from 'react';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { getNewsFilterParams } from './NewsOverview';\n\ntype NewsFooterMq = 'small' | 'semilarge';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsFooter: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news: NewsItem[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: NewsCardCustomTagFn;\n}> = ({ anchorId, news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n const newsCount = news?.length || 0;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const mqs: NewsFooterMq[] = ['small', 'semilarge'];\n const currentMq = useMediaQuery(mqs) as NewsFooterMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(2);\n const [visibleRows, setVisibleRows] = useState(1);\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 2,\n xlarge: 2,\n },\n });\n\n useEffect(() => {\n switch (currentMq) {\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n <Grid.Row asList ariaLabel=\"Weitere News\">\n {news\n ?.filter((_, i) => i < visibleRows * itemsPerRow)\n .map((item, i) => (\n <Grid.Col\n medium={{ span: 6 / 12 }}\n key={`${i}_news_${item.title}`}\n ariaLabel={item.title}\n >\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n isInverted={isInverted}\n customTag={customTag}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsFooterComponent = NewsFooter;\nexport default withLibTheme(NewsFooter);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Grid from 'components/base/Grid';\n\nconst StyledImage = styled(Image)`\n width: 100%;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n picture > img {\n width: 100%;\n height: 100%;\n }\n`;\n\ntype ImageType = Omit<ImageProps, 'coverSpace'> & { isFull?: boolean };\n\nconst NewsImages: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** List of gallery images */\n images?: ImageType[];\n\n /** Image style */\n isFull?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, images, bgMode }) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Grid.Row>\n {images\n ?.filter((img) => img.small)\n ?.map((img, i) => (\n <Grid.Col\n key={i}\n semilarge={{\n span: img.isFull ? 12 / 12 : 6 / 12,\n }}\n >\n <StyledImage\n {...img}\n alt={img.alt ?? ''}\n coverSpace\n isInverted={isInverted}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n {/* {images && (imageStyle === 'half' || images.length >= 2) ? (\n <Grid.Row>\n {images.map((img, i) => {\n return (\n <Grid.Col medium={{ span: 6 / 12 }} key={i}>\n <div>\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </div>\n </Grid.Col>\n );\n })}\n </Grid.Row>\n ) : (\n images && (\n <div>\n {images.map((img, i) => {\n return (\n <StyledImage\n key={i}\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n );\n })}\n </div>\n )\n )} */}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsImagesComponent = NewsImages;\nexport default withLibTheme(NewsImages);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Title from 'components/blocks/Title';\nimport Copy from 'components/typography/Copy';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { mq, spacings } from 'utils/styles';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst Content = styled.div`\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst IntroHead = styled(Copy)`\n display: flex;\n\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n align-items: center;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.nudge * 2}px;\n }\n }\n`;\n\nconst Tags = styled.div`\n flex: 1 1 80%;\n\n display: flex;\n flex-wrap: wrap;\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n`;\n\nconst TagWrapper = styled.span`\n display: inline-block;\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst MetaBlock = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst StyledTitle = styled(Title)<{ clampTitle?: boolean }>`\n max-width: ${({ clampTitle }) =>\n clampTitle && (13 / 28) * spacings.wrapperSmall + 'px'};\n`;\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapper + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsIntro: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news tags */\n tags?: TagProps[];\n\n /** News article's meta informations */\n meta?: { date?: Date; author?: string };\n\n /** Title of news article */\n title?: string;\n\n /** Main image of news article */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** Text of news article (richtext) */\n text?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, tags, meta, title, text, image, bgMode, customTag }) => {\n const { globals, colors, theme } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n let publishedAt = '';\n if (meta?.date) {\n const formatter = new StatusFormatter(\n meta.date.getTime(),\n '',\n globals.sections.newsDateFormat(meta.date),\n globals.sections.newsTimeFormat(meta.date),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Content>\n <IntroHead isInverted={isInverted}>\n <Tags>\n {tags?.map((tag, i) => {\n let tagLink: LinkProps | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagLink = {\n ...tag.link,\n href: getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n ),\n };\n }\n\n return (\n <TagWrapper key={`headtag-${i}`}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tagLink,\n })\n ) : (\n <Tag\n link={tagLink}\n isInverted={isInverted}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n );\n })}\n </Tags>\n {(publishedAt || meta?.author) && (\n <MetaBlock>\n {meta?.author && <div>{meta?.author}</div>}\n {publishedAt && <div>{publishedAt}</div>}\n </MetaBlock>\n )}\n </IntroHead>\n <div>\n <StyledTitle\n colorMode={isInverted ? 'inverted' : 'default'}\n title={title}\n />\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy-b\"\n innerHTML={text}\n />\n )}\n </div>\n {image?.small && (\n <Image\n {...image}\n alt={image.alt ?? ''}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n />\n )}\n </Content>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsIntroComponent = NewsIntro;\nexport default withLibTheme(NewsIntro);\n","import Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport NewsCard, {\n NewsCardCustomTagFn,\n NewsCardProps,\n} from 'components/blocks/NewsCard';\nimport React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { mq, spacings } from 'utils/styles';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n max-width: 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Show a short version of three or a expanded version of six news items */\n mode?: 'short' | 'expanded';\n\n /** Array of news card settings */\n news?: NewsItem[];\n\n /** Sections background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: NewsCardCustomTagFn;\n}> = ({ anchorId, mode = 'short', news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n\n const items = useMemo<NewsCardProps[]>(() => {\n if (!news) return [];\n if (mode === 'expanded') return news.slice(0, 6);\n else return news.slice(0, 3);\n }, [news, mode]);\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: items.length,\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 2,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <News aria-label=\"News-Liste\">\n {items?.map((item, i) => (\n <NewsItem key={i}>\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n isInverted={isInverted}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsListComponent = NewsList;\nexport default withLibTheme(NewsList);\n","import React from 'react';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport TableBlock, { TableProps } from 'components/blocks/TableBlock';\nimport styled from 'styled-components';\nimport { spacings } from 'utils/styles';\n\nconst NewsTableSection = styled(Section)`\n overflow: unset;\n`;\n\nconst TableWrapper = styled(Wrapper)`\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsTable: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Table rows and columns */\n tableItems: TableProps[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Optional aria controls for left buttons */\n ariaControlLeft?: string;\n /** Optional aria controls for right buttons */\n ariaControlRight?: string;\n}> = ({ anchorId, bgMode, tableItems, ariaControlLeft, ariaControlRight }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full' || isInverted;\n\n return (\n <NewsTableSection\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <TableWrapper clampWidth=\"small\">\n {tableItems.map((item, i) => {\n return (\n <TableBlock\n {...item}\n key={i}\n hasBack={hasBg}\n isInverted={isInverted}\n ariaControlLeft={ariaControlLeft}\n ariaControlRight={ariaControlRight}\n />\n );\n })}\n </TableWrapper>\n </NewsTableSection>\n );\n};\n\nexport const NewsTableComponent = NewsTable;\nexport default withLibTheme(NewsTable);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Copy from 'components/typography/Copy';\nimport Wrapper from 'components/base/Wrapper';\nimport { spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapperSmall + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.nudge * 5}px;\n }\n`;\n\nconst NewsText: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Main text (RichText) */\n text: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, text, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsTextComponent = NewsText;\nexport default withLibTheme(NewsText);\n","import React from 'react';\n\nimport { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Wrapper from 'components/base/Wrapper';\nimport VideoCard from 'components/blocks/VideoCard';\n\nconst NewsVideo: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Placeholder image */\n bgImage?: ImageProps;\n\n /** Embed video ID. E.g. from Youtube */\n embedId?: string;\n\n /** Custom play icon */\n playIcon?: React.ReactNode;\n\n /** Text for cookie consent overlay */\n consentText?: string;\n\n /** Aria label for play button */\n playBtnAriaLabel?: string;\n\n /** Function to inject custom action on cookie consent overlay */\n consentAction?: (props: {\n handleClick?: () => void;\n consentProps: Record<string, string>;\n }) => React.ReactNode;\n /**\n * Custom handler for play button click\n * @returns true if video should be played\n */\n onPlayClick?: () => Promise<boolean>;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgImage,\n embedId,\n playIcon,\n consentText = 'Für die Wiedergabe von Videos muss der Nutzung von Cookies & Daten zugestimmt werden.',\n playBtnAriaLabel = 'Play video',\n consentAction,\n onPlayClick,\n bgMode,\n}) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n {embedId && bgImage && (\n <VideoCard\n bgImage={bgImage}\n embedId={embedId}\n playBtnAriaLabel={playBtnAriaLabel}\n playIcon={playIcon}\n consentText={consentText}\n consentAction={consentAction}\n onPlayClick={onPlayClick}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsVideoComponent = NewsVideo;\nexport default withLibTheme(NewsVideo);\n"],"names":["Seperator","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","_a","isInverted","theme","color","elementBg","light","dark","isTop","spacings","spacer","AuthorContainer","templateObject_2","mq","medium","Avatar","img","templateObject_3","Author","templateObject_4","StyledCopy","Copy","templateObject_5","nudge","NewsAuthorCard$1","withLibTheme","label","author","avatar","bgMode","colors","useLibTheme","hasBg","React","Section","addSeperation","bgColor","sectionBg","mapToBgMode","createElement","Wrapper","clampWidth","addWhitespace","Fragment","src","alt","_b","type","Heading","size","View","article","font","link","colorHoverInverted","colorHover","StyledImage","Image","global","sections","edgeRadius","onClick","BorderPlaceholder","TitleLink","Link","copyStyle","getFonts","big","colorInverted","Title","css","Head","Tags","ul","templateObject_8","PublishDate","templateObject_9","Main","Text","templateObject_11","CardFooter","templateObject_12","NewsCard","forwardRef","ref","tags","onTagClick","publishDate","title","text","image","customTag","tagListAriaLabel","className","action","globals","uniqueId","useId","publishedAt","StatusFormatter","getTime","newsDateFormat","newsTimeFormat","newsLocaleKey","getFormattedDate","handleTagClick","tag","ev","stopPropagation","preventDefault","handleClick","href","isExternal","window","open","location","filteredTags","useMemo","filter","name","small","__assign","coverSpace","undefined","id","ariaLabel","dataSheet","innerHTML","cn","clickHandler","isValidArray","map","i","key","isActive","Tag","renderAs","TagContainer","TagWrapper","News","NewsItem","li","large","ListFooter","ShowMore","span","templateObject_6","itemCount","FilterIcon","templateObject_7","getNewsFilterParams","url","filterName","newsFilterName","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","join","concat","toString","err","NewsOverview$1","anchorId","news","initial","showMoreText","_c","useState","activeTags","selectedTags","setSelectedTags","currentMq","useMediaQuery","_d","itemsPerRow","setItemsPerRow","_e","visibleRows","setVisibleRows","isMounted","useMounted","targetRef","useRef","observerSupported","useObserverSupport","newsCount","length","setNewPos","useScrollTo","_f","useEqualSheetHeight","listLength","Math","min","identifiers","responsive","semilarge","xlarge","cardRefs","sheetRefs","triggerCalculation","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","push","apply","useEffect","paramTags","paramRows","parseInt","setUrlParam","deleteUrlParam","useUpdateEffect","enableToggling","prev","prevCopy","__spreadArray","itemIndex","indexOf","splice","filteredNews","filtered","item","hasTags","visibleNews","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","ceil","rootMargin","threshold","observe","disconnect","Filter","Pointer","as","Label","Grid","Row","asList","Col","tagHref","NewsImages$1","images","isFull","Content","IntroHead","MetaBlock","StyledTitle","clampTitle","wrapperSmall","ContentBlock","isCentered","clampText","wrapper","NewsIntro$1","meta","date","tagLink","colorMode","allowEdgeRadius","NewsList$1","mode","items","slice","NewsTableSection","TableWrapper","NewsTable$1","tableItems","ariaControlLeft","ariaControlRight","TableBlock","hasBack","NewsText$1","bgImage","embedId","playIcon","consentText","playBtnAriaLabel","consentAction","onPlayClick","VideoCard"],"mappings":"mwCAUMA,EAAYC,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,4BAAAC,YAAA,gBAAGJ,CAAqDK,IAAAA,EAAAC,EAAAA,qBAAA,CAAA,2CAAA,wBAAA,2BAAA,SAAA,CAAA,2CAK1B,wBAEa,2BACE,YANlD,SAACC,OAAEC,EAAUD,EAAAC,WAAEC,EAAKF,EAAAE,MAClB,OAAAD,EACME,EAAAA,UAAMD,GAAOE,UAAUC,MACvBF,EAAAA,UAAMD,GAAOE,UAAUE,QAEvB,SAACN,GAAc,OAAPA,EAAAO,OAAiBC,EAAQA,SAACC,UAC/B,SAACT,GAAc,OAAPA,EAAAO,OAAgBC,EAAQA,SAACC,UAGhDC,EAAkBjB,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,kCAAAC,YAAA,gBAAGJ,CAAUkB,IAAAA,EAAAZ,uBAAA,CAAA,8KAAA,4BAAA,kLAAA,2BAAA,CAAA,8KAQG,4BAGf,kLAOoB,6BAVpBS,EAAQA,SAACC,OAGlBG,EAAAA,GAAGC,OAOWL,WAASC,QAK9BK,EAASrB,EAAAA,QAAOsB,IAAVpB,WAAA,CAAAC,YAAA,yBAAAC,YAAA,gBAAGJ,CAAUuB,IAAAA,EAAAjB,uBAAA,CAAA,iCAAA,CAAA,oCAInBkB,EAASxB,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,yBAAAC,YAAA,gBAAGJ,CAAUyB,IAAAA,EAAAnB,uBAAA,CAAA,IAAA,CAAA,OAEnBoB,EAAa1B,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,6BAAAC,YAAA,gBAAGJ,CAAY4B,IAAAA,EAAAtB,EAAAA,qBAAA,CAAA,wDAAA,SAAA,CAAA,wDAEQ,WAAD,EAAjBS,EAAQA,SAACc,OAqE9BC,EAAeC,EAAYA,cAtDtB,SAACxB,SAAEyB,EAAKzB,EAAAyB,MAAEC,EAAM1B,EAAA0B,OAAEC,EAAM3B,EAAA2B,OAAEC,EAAM5B,EAAA4B,OACzBC,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,wBAACC,UAAO,CACJC,eACA,EAAAC,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAC,WAAW,QAAQC,eAAa,GACpCf,GACGM,UAACM,cAAAN,EAAK,QAACU,SAAQ,KACXV,EAAAA,QAAAM,cAAC9C,EAAU,CAAAe,SAAMN,WAAYA,IAC7B+B,EAAAA,QAAAM,cAAC5B,EAAe,KACXiB,GACGK,EAAAA,QAACM,cAAAxB,GACG6B,IAAKhB,EAAOgB,IACZC,IAAmB,UAAdjB,EAAOiB,WAAO,IAAAC,EAAAA,EAAA,KAG3Bb,EAAAA,QAAAM,cAACrB,EAAM,KACFS,GACGM,EAAAA,QAAAM,cAACnB,EAAU,CACPlB,WAAYA,EACZ6C,KAAK,UAEJrB,GAAS,cAGlBO,EAAAA,QAAAM,cAACS,EAAAA,QAAO,CACJ9C,WAAYA,EACZ+C,KAAK,aAEJtB,MAMrBM,EAAAA,QAACM,cAAA9C,GAAUS,WAAYA,SChGjCgD,EAAOxD,EAAAA,QAAOyD,QAAVvD,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAcK,IAAAA,EAAAC,EAAAA,qBAAA,CAAA,uJAAA,0HAAA,wCAAA,CAA0B,uJAQxB,0HAQwB,0CARzB,EAAjBS,EAAQA,SAACc,OAKK,SAACtB,OAAEE,EAAKF,EAAAE,MACb,OADyBF,EAAAC,WAEnBkD,EAAAA,SAAKjD,GAAOkD,KAAKC,mBACjBF,EAAAA,SAAKjD,GAAOkD,KAAKE,cAMrCC,EAAc9D,EAAM,QAAC+D,SAAV7D,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAakB,IAAAA,EAAAZ,EAAAA,qBAAA,CAAA,+CAAA,kBAAA,OAAA,CAAA,+CAEoC,kBAClB,UAD9B,SAACC,GAAE,IAAAE,EAAKF,EAAAE,MAAO,OAAAuD,aAAOvD,GAAOwD,SAASC,cAC7C,SAAC3D,GAAgB4D,OAAP5D,EAAA4D,SAAkB,aAGpCC,EAAoBpE,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAGJ,CAA+BuB,IAAAA,EAAAjB,EAAAA,qBAAA,CAAA,wCAAA,OAAA,CAAA,wCAKV,UAHrC,SAACC,OAAEE,EAAKF,EAAAE,MACN,OADaF,EAAA+B,MAEP5B,EAAAA,UAAMD,GAAOE,UAAUC,MACvBF,EAAAA,UAAMD,GAAOE,UAAUS,UAGnCiD,GAAYrE,EAAM,QAACsE,QAAVpE,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAGJ,CAAYyB,IAAAA,EAAAnB,EAAAA,qBAAA,CAAA,qCAAA,kBAAA,8FAAA,aAAA,CAAA,qCAEE,kBAKa,8FAMT,eAX9BiE,EAASA,UAAC,SAAU,QAEb,SAAChE,OAAEE,EAAKF,EAAAE,MACbD,OADyBD,EAAAC,WAEnBkD,EAAIc,SAAC/D,GAAO,UAAUgE,IAAIC,cAC1BhB,EAAAA,SAAKjD,GAAO,UAAUgE,IAAI/D,QAM9B6D,YAAU,SAAU,QAIxBI,GAAQ3E,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,kBAAAC,YAAA,eAAGJ,gRAA0D,qCAExC,kBAKa,wFAW5B,oFAOmB,eAvB9BuE,EAASA,UAAC,SAAU,QAEb,SAAChE,OAAEE,EAAKF,EAAAE,MACbD,OADyBD,EAAAC,WAEnBkD,EAAIc,SAAC/D,GAAO,UAAUgE,IAAIC,cAC1BhB,EAAAA,SAAKjD,GAAO,UAAUgE,IAAI/D,SAI1B,SAACH,GAAE,IAAAE,UAAOD,EAAUD,EAAAC,WAClB,OAD2BD,EAAA4D,SAE3BS,EAAAA,IAAGhD,IAAAA,EAAAtB,EAAAA,qBAAA,CAAA,gCAAA,6DAAA,CAAA,gCAGkC,+DAFxBE,EACHkD,EAAAA,SAAKjD,GAAOkD,KAAKC,mBACjBF,EAAAA,SAAKjD,GAAOkD,KAAKE,cASjCU,YAAU,SAAU,QAIxBM,GAAO7E,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,oSAAU,oPAYkB,kBAAD,EAAjBe,EAAQA,SAACc,OAI1BiD,GAAO9E,EAAAA,QAAO+E,GAAV7E,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAASgF,IAAAA,EAAA1E,EAAAA,qBAAA,CAAA,0FAAA,sMAAA,CAAA,0FAKG,wMAAdS,EAAQA,SAACc,OAcdoD,GAAcjF,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAYkF,IAAAA,EAAA5E,uBAAA,CAAA,6DAAA,CAAA,gEAM1B6E,GAAOnF,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,gIAAU,gFAKiB,kBAAD,EAAjBe,EAAQA,SAACc,OAIzBuD,GAAOpF,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAYqF,IAAAA,EAAA/E,uBAAA,CAAA,0YAAA,CAAA,6YAuBnBgF,GAAatF,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,gBAAGJ,CAAUuF,IAAAA,EAAAjF,uBAAA,CAAA,qBAAA,CAAA,wBAgEvBkF,GAAWC,EAAUA,YAMvB,SACIlF,EAeAmF,GAdI,IAAAC,SACAC,EAAUrF,EAAAqF,WACVC,EAAWtF,EAAAsF,YACXC,EAAKvF,EAAAuF,MACLC,EAAIxF,EAAAwF,KACJC,UACArC,EAAIpD,EAAAoD,KACJnD,EAAUD,EAAAC,WACVyF,EAAS1F,EAAA0F,UACTC,EAAgB3F,EAAA2F,iBAChBC,cACA7D,EAAK/B,EAAA+B,MACL8D,EAAM7F,EAAA6F,OAIFC,EAAYhE,wBACdiE,EAAWC,EAAAA,QAEbC,EAAc,GACdX,IAQAW,EAPkB,IAAIC,EAAAA,gBAClBZ,EAAYa,UACZ,GACAL,EAAQpC,SAAS0C,eAAed,GAChCQ,EAAQpC,SAAS2C,eAAef,GAChCQ,EAAQpC,SAAS4C,eAEGC,oBAG5B,IAAMC,EAAiB,SAACC,GACpB,OAAApB,EACM,SAACqB,GACGA,MAAAA,GAAAA,EAAIC,kBACJD,MAAAA,GAAAA,EAAIE,iBACJvB,EAAWoB,IAEf,SAACC,GACGA,MAAAA,GAAAA,EAAIC,kBACJD,MAAAA,GAAAA,EAAIE,mBAGZC,EAAc,YACXzD,MAAAA,OAAA,EAAAA,EAAM0D,QACP1D,EAAK2D,WACLC,OAAOC,KAAK7D,EAAK0D,KAAM,SAAU,YAEjCE,OAAOE,SAASJ,KAAO1D,EAAK0D,OAI9BK,EAAeC,EAAAA,SAAQ,WACzB,OAAOhC,MAAAA,SAAAA,EAAMiC,QAAO,SAACZ,GAAQA,OAAAA,EAAIa,UAClC,CAAClC,IAEJ,OACIpD,EAAC,QAAAM,cAAAW,EACG,CAAAkC,IAAKA,EACLS,UAAWA,EACM,kBAAAG,EACjB9F,WAAYA,IAEXwF,MAAAA,OAAA,EAAAA,EAAO8B,OACJvF,EAAA,QAAAM,cAACiB,EACOiE,EAAAA,SAAA,GAAA/B,EACJ,CAAAgC,YACA,EAAAxH,WAAYA,EACZ2D,SAASR,MAAAA,OAAI,EAAJA,EAAM0D,MAAOD,OAAca,KAGxC1F,EAAAA,QAAAM,cAACuB,EAAiB,CAAC9B,MAAOA,IAE9BC,EAAA,QAAAM,cAACsC,GAAI,KACAW,GACGvD,EAAA,QAAAM,cAAAN,EAAA,QAAAU,SAAA,KACKmD,EACG7D,EAAC,QAAAM,cAAA8B,IACGnE,WAAYA,EAAU,aACX,QACC,aAAAsF,EACZ3B,SACIR,MAAAA,SAAAA,EAAM0D,MAAOD,OAAca,GAG/B1F,EAAI,QAAAM,cAAA,KAAA,CAAAqF,GAAI5B,GAAWR,IAGvBvD,UAAAM,cAACwB,GAAS0D,EAAAA,SAAA,GACFpE,EAAI,CACRnD,WAAYA,EACZ2H,UAAWrC,EACXsC,UAAU,UAEV7F,EAAAA,QAAIM,cAAA,KAAA,CAAAqF,GAAI5B,GAAWR,KAKlCC,GACGxD,EAAA,QAAAM,cAACuC,GAAI,CACD5E,WAAYA,EACZ6C,KAAK,OACLgF,UAAWtC,EAAI,aACJ,OACXxC,KAAK,YAIhB6C,GACG7D,EAAA,QAAAM,cAACyC,GAAU,KACNc,EAAO,CACJ5F,WAAUA,EACVmD,KAAIA,EACJmC,MAAOwC,EAAAA,OAAG,CAAC,eAAgBxC,GAAQ,MACnCyC,aAAcnB,KAI1B7E,EAAAA,QAACM,cAAAgC,IAAgB,aAAA,QACZ2D,EAAAA,aAAad,GAAc,IACxBnF,wBAACuC,GAAI,CAAA,aACWoB,GAAoB,mBAE/BwB,EAAae,KAAI,SAACzB,EAAK0B,GACpB,OAAIzC,EACOA,EAAU,CACb0C,IAAKD,EACLb,KAAMb,EAAIa,MAAQ,GAClBrH,WAAYA,EACZoI,UAAU,EACVjF,KAAMqD,EAAIrD,KACV4E,aAAcxB,EAAeC,KAI7BzE,EAAA,QAAAM,cAAA,KAAA,CAAI8F,IAAKD,GACLnG,EAAC,QAAAM,cAAAgG,MACG,CAAArI,WAAYA,EACZqH,KAAMb,EAAIa,KACVlE,KAAMqD,EAAIrD,KACVQ,QAAS4C,EAAeC,UAQnDR,GACGjE,UAACM,cAAAoC,IACG1B,KAAK,QACLuF,SAAS,MACTtI,WAAYA,GAEXgG,QAS7BhB,GAASrF,YAAc,WC1XvB,gEAAM4I,GAAe/I,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,6BAAAC,YAAA,cAAGJ,CAAUK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,iIAAA,gBAAA,CAAA,sBACE,0BACC,iIAOS,kBARxBS,EAAAA,SAASc,MACRd,WAASc,MAOa,EAAjBd,EAAQA,SAACc,OAI5BmH,GAAahJ,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,2BAAAC,YAAA,cAAGJ,CAAUkB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,SAAA,CAAA,sBACI,0BACC,WADfS,EAAQA,SAACc,MACRd,EAAAA,SAASc,OAGvBoH,GAAOjJ,EAAAA,QAAO+E,GAAV7E,WAAA,CAAAC,YAAA,qBAAAC,YAAA,cAAGJ,CAASuB,KAAAA,GAAAjB,EAAAA,qBAAA,CAAA,6DAAA,0BAAA,kKAAA,CAAA,6DAGe,0BACF,oKADC,EAAjBS,EAAQA,SAACc,MACRd,EAAAA,SAASC,QAWvBkI,GAAWlJ,EAAAA,QAAOmJ,GAAVjJ,WAAA,CAAAC,YAAA,yBAAAC,YAAA,cAAGJ,CAASyB,KAAAA,GAAAnB,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,0CAAA,4EAAA,sEAAA,CAAA,sBACW,0BACF,0CAGb,4EAKD,wEATe,EAAjBS,EAAQA,SAACc,MACRd,WAASC,OAGhBG,EAAAA,GAAGC,OAKHD,EAAEA,GAACiI,OAMVC,GAAarJ,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,2BAAAC,YAAA,cAAGJ,CAAU4B,KAAAA,GAAAtB,EAAAA,qBAAA,CAAA,qBAAA,8CAAA,0CAAA,CAAA,qBACO,8CAGd,4CAHa,EAAjBS,EAAQA,SAACc,MAGdV,EAAAA,GAAGC,QAKVkI,GAAWtJ,EAAAA,QAAOuJ,KAAVrJ,WAAA,CAAAC,YAAA,yBAAAC,YAAA,cAAGJ,CAAmCwJ,KAAAA,GAAAlJ,EAAAA,qBAAA,CAAA,kBAAA,OAAA,CAAA,kBAEC,UADtC,SAACC,GAAE,IAAAkJ,EAASlJ,EAAAkJ,UACnBA,OAAAA,GAAaA,EAAY,EAAI,QAAU,UAGzCC,GAAa1J,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,2BAAAC,YAAA,cAAGJ,CAAY2J,KAAAA,GAAArJ,EAAAA,qBAAA,CAAA,4FAAA,MAAA,oDAAA,gBAAA,CAAA,4FAKE,MAAoB,oDAGhB,kBAHtBS,EAAAA,SAASc,MAAQ,EAAOd,EAAAA,SAASc,MAGzBd,WAASc,OAInB+H,GAAsB,SAC/BC,EACApJ,EACAkF,GAEA,QAFA,IAAAA,IAAAA,EAAmB,KAEdkE,EAAK,MAAO,GACb,IAACrB,EAAAA,aAAa7C,GAAM,GAAQ,OAAOkE,EAEjCC,IAAAA,EAAarJ,EAAM4F,QAAQpC,SAAS8F,eAC1C,IAAKD,EAAY,OAAOD,EAEpB,IACA,IAAMG,EAAW,IAAIC,IAAIJ,GACnBK,EAAY,IAAIC,gBAAgBH,EAASI,QAG/C,OAFAF,EAAUG,IAAIP,EAAYQ,mBAAmB3E,EAAK4E,KAAK,OAEhD,GAAAC,OAAGX,EAAO,KAAAW,OAAAN,EAAUO,YAC7B,MAAOC,GACE,MAAA,GAAGF,OAAAX,EAAO,KAAAW,OAAAV,cAAcQ,mBAAmB3E,EAAK4E,KAAK,SAmZpEI,GAAe5I,EAAYA,cA1WtB,SAACxB,OACFqK,EAAQrK,EAAAqK,SACRC,EAAItK,EAAAsK,KACJlF,EAAIpF,EAAAoF,KACJmF,EAAOvK,EAAAuK,QACPC,EAAYxK,EAAAwK,aACZ5I,EAAM5B,EAAA4B,OAENyD,EAAUrF,EAAAqF,WACVK,EAAS1F,EAAA0F,UAEH7C,EAAsBf,EAAAA,cAApBD,EAAMgB,EAAAhB,OACR0H,EADiB1G,EAAAiD,QACIpC,SAAS8F,eAE9BvJ,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAER6I,EAAkCC,EAAAA,UACpCH,MAAAA,SAAAA,EAASI,aAAc,IADpBC,OAAcC,OAKfC,EAAYC,gBADY,CAAC,QAAS,YAAa,UAE/CC,EAAgCN,EAAQA,SAAC,GAAxCO,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAgCT,EAAAA,UAASH,MAAAA,SAAAA,EAASa,cAAe,GAAhEA,OAAaC,OACdC,EAAYC,EAAAA,aAEZC,EAAYC,SAAuB,MACnCC,EAAoBC,EAAAA,qBAEpBC,GAAYtB,MAAAA,OAAA,EAAAA,EAAMuB,SAAU,EAE5BC,EAAYC,cAAY,KACxBC,EACFC,EAAAA,oBAAoC,CAChCC,WAAYC,KAAKC,IAAIhB,EAAcH,EAAaW,GAChDS,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACR/E,MAAO,EACP1G,OAAQ,EACR0L,UAAW,EACX1D,MAAO,EACP2D,OAAQ,KAbDC,EAAQT,EAAAU,UAAEC,uBAiBvBC,EAAaC,EAAAA,aAAY,WACrBzH,IAAAA,EAAiB,GAEjB0H,EAAUC,EAAAA,eAAexD,GAC/B,GAAIuD,EAAS,CACT,IAAME,EAAaF,MAAAA,OAAO,EAAPA,EAASG,MAAM,KAC9BhF,EAAYA,aAAC+E,GAAY,IACzB5H,EAAK8H,KAAIC,MAAT/H,EAAa4H,GAGrB,OAAO5H,IACR,CAACmE,IAEJ6D,EAAAA,WAAU,WAEF7C,IAAAA,EAAAA,CAGE8C,IAAAA,EAAYT,IACZU,EAAYC,SAASR,EAAYA,eAAA,MAEvC1B,EAAeiC,GAAa,GAExBrF,EAAYA,aAACoF,GAAW,IACxBxC,EAAgBwC,GAIpBV,OAGD,CAACC,EAAYrC,IAEhB6C,EAAAA,WAAU,iBACD7C,IAAWe,IAGhBkC,EAAAA,YAAY,QAAQjD,MAAAA,OAAA,EAAAA,EAASa,cAAe,GAExCnD,eAAasC,MAAAA,OAAO,EAAPA,EAASI,YAAY,GAClC6C,cAAYjE,EAAiC,QAArBvJ,EAAAuK,MAAAA,OAAO,EAAPA,EAASI,kBAAY,IAAA3K,OAAA,EAAAA,EAAAgK,KAAK,MAElDyD,EAAcA,eAAClE,MAEpB,CAACA,EAAYgB,EAASe,IAEzBoC,EAAAA,iBAAgB,WACZF,cAAY,OAAQpC,KACrB,CAACA,IAEJsC,EAAAA,iBAAgB,YACRrI,GAAe4C,eAAa2C,KAG5BA,EAAaiB,OAAS,EACtB2B,EAAAA,YAAYjE,EAAYqB,EAAaZ,KAAK,MAE1CyD,EAAcA,eAAClE,MAEpB,CAACqB,IAEJwC,EAAAA,WAAU,WACN,OAAQtC,GACJ,IAAK,QACDI,EAAe,GACf,MAEJ,IAAK,YACDA,EAAe,GACf,MAEJ,IAAK,QACDA,EAAe,GACXE,EAAc,GAAGC,EAAe,GACpC,MAEJ,QACIH,EAAe,MAExB,CAACJ,EAAWM,IAEf,IAAM5E,EAAiB,SAACC,EAAekH,QAAA,IAAAA,IAAAA,GAAqB,GACxD9C,GAAgB,SAAC+C,GACPC,IAAAA,EAAQC,EAAAA,cAAA,GAAOF,GAAI,GACnBG,EAAYtH,EAAIa,KAAOsG,EAAKI,QAAQvH,EAAIa,OAAS,EAEnDyG,OAAe,IAAfA,GAAoBtH,EAAIa,KACxBwG,gBAAAA,EAAAA,cAAA,GAAWD,GAAQ,GAAA,CAAEpH,EAAIa,OAAM,GAE/BqG,GACAE,EAASI,OAAOF,EAAW,GACpBF,GAEJD,KAGXjB,IACAtB,EAAe,IAGb6C,EAAe9G,EAAAA,SAAQ,WACzB,IAcI+G,EAAWlG,eAAaqC,GAAOwD,EAAAA,cAAA,GAAKxD,GAAI,GAAI,GAKhD,OAFA6D,EAAWA,MAAAA,OAAQ,EAARA,EAAU9G,QAjBD,SAAC+G,GACb,IAACnG,EAAAA,aAAa2C,GAAc,GAAQ,OAAO,EAC/C,IAAKwD,EAAKhJ,KAAM,OAAO,EAGvB,IADIiJ,IAAAA,GAAU,EACLlG,EAAI,EAAGA,EAAIiG,EAAKhJ,KAAKyG,OAAQ1D,IAClC,IAAuD,IAAnDyC,EAAaoD,QAAQI,EAAKhJ,KAAK+C,GAAGb,MAAQ,IAAY,CACtD+G,GAAU,EACV,MAGR,OAAOA,OASZ,CAAC/D,EAAMM,IAEJ0D,EAA0BlH,EAAAA,SAAQ,WAEhC,OAAA8G,MAAAA,OAAA,EAAAA,EAAc7G,QAAO,SAACkH,EAAGpG,GAAM,OAAAA,EAAIiD,EAAcH,OAAgB,KAEtE,CAACiD,EAAcjD,EAAaG,IAE/BgC,EAAAA,WAAU,WAEF,GAAC1B,EAAD,CAEJ,IACI8C,EADEC,EAAUjD,EAAUkD,QAG1B,GAAID,EAAS,EAMTD,EAAW,IAAIG,sBAAqB,SAACC,GACjC,IAAMC,EAAQD,EAAQ,IAClBC,MAAAA,SAAAA,EAAOC,iBAGH1D,EACAe,KAAK4C,KAAKb,EAAarC,OAASZ,IAEhCI,GAAe,SAACuC,GAASA,OAAAA,EAAO,OAb5B,CACZoB,WAAY,oBACZC,UAAW,KAeNC,QAAQT,GAGrB,OAAO,WACCD,GAAUA,EAASW,iBAE5B,CACClE,EACAW,EACAR,EACAM,EACAwC,EAAarC,SAGjB,IAAM1E,EAAeC,EAAAA,SAAQ,WACzB,OAAOhC,MAAAA,OAAA,EAAAA,EAAMiC,QAAO,SAACZ,GAAQ,OAAAA,OAC9B,CAACrB,IAEJ,OACIpD,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAC,QAAAM,cAAAC,WAAQE,eAAa,GACjBwF,eAAad,GAAc,IACxBnF,wBAACwG,GAAY,KACTxG,UAAAM,cAAC6G,GAAU,CACPnG,KAAK,QACLF,KAAK,OACL7C,WAAYA,GAEZ+B,EAAAA,QAAAM,cAAC8M,EAAAA,OAAS,MACVpN,EAAA,QAAAM,cAAA,OAAA,KAAA,WAEH6E,EAAae,KAAI,SAACzB,EAAK0B,GAAM,OAC1BnG,EAAA,QAAAM,cAACmG,GAAW,CAAAL,IAAKD,GACZzC,EACGA,EAAU,CACN0C,IAAKD,EACLb,KAAMb,EACNxG,WAAYA,EACZoI,UACmC,IAA/BuC,EAAaoD,QAAQvH,GACzBuB,aAAc,SAACtB,GACXA,MAAAA,GAAAA,EAAIE,iBACCvB,EAEEA,EAAW,CAAEiC,KAAMb,IADtBD,EAAe,CAAEc,KAAMb,OAKnCzE,EAAAA,QAACM,cAAAgG,MACG,CAAArI,WAAYA,EACZ2D,QAAS,SAAC8C,GACNA,MAAAA,GAAAA,EAAIE,iBACCvB,EAGDA,EACI,CAAEiC,KAAMb,IACR,GAJJD,EAAe,CAAEc,KAAMb,KAO/B4B,UACmC,IAA/BuC,EAAaoD,QAAQvH,IAGxBA,QAOzBzE,EAAAA,QAACM,cAAAoG,GAAgB,CAAA,aAAA,yBACZ4F,EAAYpG,KAAI,SAACkG,EAAMjG,SAAM,OAC1BnG,EAAA,QAAAM,cAACqG,GAAQ,CAACP,IAAK,GAAG6B,OAAA9B,EAAU,UAAA8B,OAAAmE,EAAK7I,QAC7BvD,UAAAM,cAAC2C,GAAQuC,WAAA,CACLzF,MAAOA,GAAS9B,EAChBkF,IAAKsH,EAAStE,IACViG,EAAI,CACRhJ,KAAiB,QAAXpF,EAAAoO,EAAKhJ,YAAM,IAAApF,OAAA,EAAAA,EAAAkI,KAAI,SAACzB,GAAS,MAAA,CAC3Ba,KAAMb,EAAIa,SAEdrH,WAAYA,EACZoF,WAAY,SAACoB,GAETqF,EAAU,GACLzG,EAODA,EAAW,CAAEiC,KAAMb,EAAIa,OAAQ,GAL/Bd,EACI,CAAEc,KAAMb,EAAIa,OACZ,IAMZ5B,UAAWA,UAK3B1D,EAAAA,QAAKM,cAAA,MAAA,CAAA6C,IAAKqG,KACRE,GACE1J,EAAA,QAAAM,cAACwG,GAAU,KACNwB,GAAQA,EAAKuB,OAAS,GACnB7J,EAAAA,QAAAM,cAAClB,EAAAA,KAAI,CACD0B,KAAK,OACLE,KAAK,SACL/C,WAAYA,GAEZ+B,EAAC,QAAAM,cAAAyG,GACG,CAAAG,UAAWoB,EAAKuB,OAChBjI,QAAS,SAAC8C,GACNA,EAAGE,iBAECwE,EACAe,KAAK4C,KACDb,EAAarC,OACTZ,IAGRI,GAAe,SAACuC,GAASA,OAAAA,EAAO,OAIvCxC,EACG8C,EAAarC,OAASZ,GACtBjJ,EAAAA,QAACM,cAAA+M,EAAOA,QAACpM,MACLqM,GAAG,SACHrP,WAAYA,GAEZ+B,UAAAM,cAAC+M,EAAOA,QAACE,MAAK,KACT/E,GACG,0BCvXrChJ,GAAAA,EAAAA,cAzGV,SAACxB,OAAEqK,EAAQrK,EAAAqK,SAAEC,EAAItK,EAAAsK,KAAE1I,EAAM5B,EAAA4B,OAAE8D,EAAS1F,EAAA0F,UAC/B7C,EAAoBf,EAAAA,cAAlBD,EAAMgB,EAAAhB,OAAE3B,EAAK2C,EAAA3C,MACf0L,GAAYtB,MAAAA,OAAA,EAAAA,EAAMuB,SAAU,EAE5B5L,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAGRkJ,EAAYC,gBADU,CAAC,QAAS,cAEhCN,EAAgCC,EAAQA,SAAC,GAAxCO,EAAWR,EAAA,GAAES,EAAcT,EAAA,GAC5BO,EAAgCN,EAAQA,SAAC,GAAxCU,EAAWJ,EAAA,GAAEK,EAAcL,EAAA,GAEfyB,EAAaR,EAAAA,oBAAoC,CAChEC,WAAYC,KAAKC,IAAIhB,EAAcH,EAAaW,GAChDS,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACR/E,MAAO,EACP1G,OAAQ,EACR0L,UAAW,EACX1D,MAAO,EACP2D,OAAQ,eAoBhB,OAhBAY,EAAAA,WAAU,WACN,OAAQtC,GACJ,IAAK,YACDI,EAAe,GACf,MAEJ,IAAK,QACDA,EAAe,GACXE,EAAc,GAAGC,EAAe,GACpC,MAEJ,QACIH,EAAe,MAExB,CAACJ,EAAWM,IAGXpJ,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAE,eAAc,EAAAD,WAAW,SAC9BR,UAAAM,cAACkN,EAAIA,KAACC,IAAI,CAAAC,UAAO9H,UAAU,gBACtB0C,MAAAA,OAAA,EAAAA,EACKjD,QAAO,SAACkH,EAAGpG,GAAM,OAAAA,EAAIiD,EAAcH,KACpC/C,KAAI,SAACkG,EAAMjG,SAAM,OACdnG,UAAAM,cAACkN,EAAIA,KAACG,IAAG,CACL9O,OAAQ,CAAEmI,KAAM,IAChBZ,IAAK,GAAA6B,OAAG9B,EAAC,UAAA8B,OAASmE,EAAK7I,OACvBqC,UAAWwG,EAAK7I,OAEhBvD,UAACM,cAAA2C,GACGuC,WAAA,CAAAY,IAAKD,EACLhD,IAAKsH,EAAStE,IACViG,EAAI,CACRhJ,KAAiB,QAAXpF,EAAAoO,EAAKhJ,YAAM,IAAApF,OAAA,EAAAA,EAAAkI,KAAI,SAACzB,WACdmJ,OACAlI,EAUG,OARHjB,EAAIa,OAAgB,QAARtH,EAAAyG,EAAIrD,YAAI,IAAApD,OAAA,EAAAA,EAAE8G,QACtB8I,EAAUvG,GACN5C,EAAIrD,KAAK0D,KACT5G,EACA,CAACuG,EAAIa,QAIN,CACHA,KAAMb,EAAIa,KACVlE,cAAMP,EAAA4D,EAAIrD,2BAAM0D,MACXU,EAAAA,SAAAA,EAAAA,SAAA,GACQf,EAAIrD,MAAI,CACX0D,KAAM8I,SAEVlI,MAGdzH,WAAYA,EACZyF,UAAWA,eCpHzCnC,GAAc9D,EAAM,QAAC+D,SAAV7D,WAAA,CAAAC,YAAA,0BAAAC,YAAA,gBAAGJ,CAAaK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,0CAAA,yGAAA,CAAA,0CAEoC,4GAAhD,SAACC,GAAE,IAAAE,EAAKF,EAAAE,MAAO,OAAAuD,aAAOvD,GAAOwD,SAASC,cAoG3DkM,GAAerO,EAAYA,cA7EtB,SAACxB,SAAEqK,aAAUyF,EAAM9P,EAAA8P,OAAElO,EAAM5B,EAAA4B,OACpBC,EAAWC,uBAEb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAC,WAAW,QAAQC,eAAa,GACrCT,EAAAA,QAAAM,cAACkN,EAAIA,KAACC,IAAG,KAE2B,QAD/B5M,EAAAiN,MAAAA,OAAA,EAAAA,EACKzI,QAAO,SAACtG,GAAQA,OAAAA,EAAIwG,gBAAM,IAAA1E,OAAA,EAAAA,EAC1BqF,KAAI,SAACnH,EAAKoH,SAAM,OACdnG,UAACM,cAAAkN,EAAIA,KAACG,IACF,CAAAvH,IAAKD,EACLoE,UAAW,CACPvD,KAAMjI,EAAIgP,OAAS,EAAU,KAGjC/N,EAAAA,QAACM,cAAAiB,iBACOxC,EAAG,CACP6B,YAAK5C,EAAAe,EAAI6B,mBAAO,GAChB6E,YACA,EAAAxH,WAAYA,eCtD1C+P,GAAUvQ,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,qBAAAC,YAAA,eAAGJ,4FAAU,0CAEc,kBAAD,EAAjBe,EAAQA,SAACc,OAIzB2O,GAAYxQ,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAGJ,CAAYkB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,kKAAA,4BAAA,+IAAA,2BAAA,CAAA,kKAQU,4BAGlB,+IAMuB,6BATN,EAAjBS,EAAQA,SAACc,MAGlBV,EAAEA,GAACC,OAM4B,EAAjBL,EAAAA,SAASc,OAK9BiD,GAAO9E,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,kBAAAC,YAAA,eAAGJ,CAAUuB,KAAAA,GAAAjB,EAAAA,qBAAA,CAAA,sFAAA,0BAAA,SAAA,CAAA,sFAKU,0BACC,WADfS,EAAQA,SAACc,MACRd,EAAAA,SAASc,OAGvBmH,GAAahJ,EAAAA,QAAOuJ,KAAVrJ,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAWyB,KAAAA,GAAAnB,EAAAA,qBAAA,CAAA,kDAAA,0BAAA,SAAA,CAAA,kDAEG,0BACC,WADfS,EAAQA,SAACc,MACRd,EAAAA,SAASc,OAGvB4O,GAAYzQ,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAGJ,iUAAU,+QAYa,kBAAD,EAAjBe,EAAQA,SAACc,OAI1B6O,GAAc1Q,EAAM,QAAC2E,SAAVzE,WAAA,CAAAC,YAAA,yBAAAC,YAAA,eAAGJ,CAAuCwJ,KAAAA,GAAAlJ,EAAAA,qBAAA,CAAA,oBAAA,OAAA,CAAA,oBAEG,UAD7C,SAACC,GACVoQ,OADsBpQ,EAAAoQ,YACP,GAAK,GAAM5P,EAAAA,SAAS6P,aAAe,QAGpDC,GAAe7Q,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAGJ,CAGnB2J,KAAAA,GAAArJ,EAAAA,qBAAA,CAAA,sCAAA,qBAAA,uDAAA,gBAAA,CAAA,sCAEsD,qBAEA,uDAGlB,mBALxB,SAACC,GAAmBuQ,OAAPvQ,EAAAuQ,YAAqB,YAC/B,SAACvQ,GACVwQ,OADqBxQ,EAAAwQ,WACP,GAAK,GAAMhQ,EAAAA,SAASiQ,QAAU,OAG7BjQ,EAAAA,SAASC,QA4IhCiQ,GAAelP,EAAYA,cA1GtB,SAACxB,SAAEqK,EAAQrK,EAAAqK,SAAEjF,EAAIpF,EAAAoF,KAAEuL,EAAI3Q,EAAA2Q,KAAEpL,EAAKvF,EAAAuF,MAAEC,EAAIxF,EAAAwF,KAAEC,EAAKzF,EAAAyF,MAAE7D,EAAM5B,EAAA4B,OAAE8D,EAAS1F,EAAA0F,UACzD+E,EAA6B3I,EAAAA,cAA3BgE,EAAO2E,EAAA3E,QAAEjE,EAAM4I,EAAA5I,OAAE3B,EAAKuK,EAAAvK,MACxBD,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEVqE,EAAc,IACd0K,MAAAA,SAAAA,EAAMC,QAQN3K,EAPkB,IAAIC,EAAJA,gBACdyK,EAAKC,KAAKzK,UACV,GACAL,EAAQpC,SAAS0C,eAAeuK,EAAKC,MACrC9K,EAAQpC,SAAS2C,eAAesK,EAAKC,MACrC9K,EAAQpC,SAAS4C,eAEGC,oBAG5B,OACIvE,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAC,WAAW,QAAQC,eAAa,GACrCT,EAAAA,QAAAM,cAAC0N,GAAO,KACJhO,EAAA,QAAAM,cAAC2N,GAAS,CAAChQ,WAAYA,GACnB+B,EAAAA,QAAAM,cAACiC,GAAI,KACAa,MAAAA,OAAI,EAAJA,EAAM8C,KAAI,SAACzB,EAAK0B,SACT0I,OAAiCnJ,EAarC,OAXIjB,EAAIa,OAAgB,QAARtH,EAAAyG,EAAIrD,YAAI,IAAApD,OAAA,EAAAA,EAAE8G,QACtB+J,EAAOrJ,EAAAA,SAAAA,EAAAA,SAAA,GACAf,EAAIrD,MAAI,CACX0D,KAAMuC,GACF5C,EAAIrD,KAAK0D,KACT5G,EACA,CAACuG,EAAIa,UAMbtF,EAAC,QAAAM,cAAAmG,GAAW,CAAAL,IAAK,WAAW6B,OAAA9B,IACvBzC,EACGA,EAAU,CACN0C,IAAK,WAAW6B,OAAA9B,GAChBb,KAAMb,EAAIa,MAAQ,GAClBrH,WAAYA,EACZoI,UAAU,EACVjF,KAAMyN,IAGV7O,EAAAA,QAACM,cAAAgG,MACG,CAAAlF,KAAMyN,EACN5Q,WAAYA,GAEXwG,EAAIa,YAO3BrB,IAAe0K,MAAAA,OAAA,EAAAA,EAAMjP,UACnBM,EAAAA,sBAACkO,GAAS,MACLS,MAAAA,OAAA,EAAAA,EAAMjP,SAAUM,EAAM,QAAAM,cAAA,MAAA,KAAAqO,MAAAA,OAAI,EAAJA,EAAMjP,QAC5BuE,GAAejE,EAAAA,QAAMM,cAAA,MAAA,KAAA2D,KAIlCjE,EAAAA,QAAAM,cAAA,MAAA,KACIN,UAAAM,cAAC6N,GACG,CAAAW,UAAW7Q,EAAa,WAAa,UACrCsF,MAAOA,IAEVC,GACGxD,UAAAM,cAACgO,GACG,CAAArQ,WAAYA,EACZ6C,KAAK,SACLgF,UAAWtC,MAItBC,MAAAA,OAAA,EAAAA,EAAO8B,QACJvF,EAAAA,QAAAM,cAACkB,EAADA,MACQgE,EAAAA,SAAA,GAAA/B,EACJ,CAAA7C,YAAKC,EAAA4C,EAAM7C,mBAAO,GAClB6E,YAAU,EACVsJ,iBACA,EAAA9Q,WAAYA,WC9MlCyI,GAAOjJ,EAAAA,QAAO+E,GAAV7E,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAASK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,6DAAA,0BAAA,kKAAA,CAAA,6DAGe,0BACF,oKADC,EAAjBS,EAAQA,SAACc,MACRd,EAAAA,SAASC,QAWvBkI,GAAWlJ,EAAAA,QAAOmJ,GAAVjJ,WAAA,CAAAC,YAAA,qBAAAC,YAAA,eAAGJ,CAASkB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,gEAAA,4EAAA,sEAAA,CAAA,sBACW,0BACF,gEAIb,4EAKD,wEAVe,EAAjBS,EAAQA,SAACc,MACRd,WAASC,OAIhBG,EAAAA,GAAGC,OAKHD,EAAEA,GAACiI,OA4GhBmI,GAAexP,EAAYA,cAlFtB,SAACxB,GAAE,IAAAqK,aAAUxH,EAAA7C,EAAAiR,KAAAA,aAAO,QAAOpO,EAAEyH,SAAM1I,EAAM5B,EAAA4B,OAAE8D,EAAS1F,EAAA0F,UAC/C+E,EAAoB3I,EAAAA,cAAlBD,EAAM4I,EAAA5I,OAAE3B,EAAKuK,EAAAvK,MAEfgR,EAAQ9J,EAAAA,SAAyB,WACnC,OAAKkD,EACQ,aAAT2G,EAA4B3G,EAAK6G,MAAM,EAAG,GAClC7G,EAAK6G,MAAM,EAAG,GAFR,KAGnB,CAAC7G,EAAM2G,IAEJhR,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEK6K,EAAaR,EAAAA,oBAAoC,CAChEC,WAAYgF,EAAMrF,OAClBQ,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACR/E,MAAO,EACP1G,OAAQ,EACR0L,UAAW,EACX1D,MAAO,EACP2D,OAAQ,eAIhB,OACIxK,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAC,QAAAM,cAAAC,WAAQE,eAAa,GAClBT,EAAA,QAAAM,cAACoG,GAAI,CAAY,aAAA,cACZwI,MAAAA,OAAA,EAAAA,EAAOhJ,KAAI,SAACkG,EAAMjG,SAAM,OACrBnG,EAAC,QAAAM,cAAAqG,GAAS,CAAAP,IAAKD,GACXnG,UAAAM,cAAC2C,GAAQuC,WAAA,CACLY,IAAKD,EACLhD,IAAKsH,EAAStE,IACViG,EACJ,CAAAnO,WAAYA,EACZmF,KAAe,QAATpF,EAAAoO,EAAKhJ,YAAI,IAAApF,OAAA,EAAAA,EAAEkI,KAAI,SAACzB,WACdmJ,OAA8BlI,EAU3B,OARHjB,EAAIa,OAAgB,QAARtH,EAAAyG,EAAIrD,YAAI,IAAApD,OAAA,EAAAA,EAAE8G,QACtB8I,EAAUvG,GACN5C,EAAIrD,KAAK0D,KACT5G,EACA,CAACuG,EAAIa,QAIN,CACHA,KAAMb,EAAIa,KACVlE,cAAMP,EAAA4D,EAAIrD,2BAAM0D,MACXU,EAAAA,SAAAA,EAAAA,SAAA,GACQf,EAAIrD,MAAI,CACX0D,KAAM8I,SAEVlI,MAGdhC,UAAWA,eC/HrC0L,GAAmB3R,EAAM,QAACwC,WAAVtC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAGJ,CAAeK,KAAAA,GAAAC,uBAAA,CAAA,4BAAA,CAAA,+BAIlCsR,GAAe5R,EAAM,QAAC8C,WAAV5C,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAGJ,CAAekB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,0CAAA,gBAAA,CAAA,0CAEC,kBAAfS,EAAQA,SAACC,QAuD/B6Q,GAAe9P,EAAYA,cArCtB,SAACxB,GAAE,IAAAqK,EAAQrK,EAAAqK,SAAEzI,EAAM5B,EAAA4B,OAAE2P,EAAUvR,EAAAuR,WAAEC,EAAexR,EAAAwR,gBAAEC,EAAgBzR,EAAAyR,iBAC3D5P,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,GAAqB3B,EAEnC,OACI+B,EAAA,QAAAM,cAAC8O,GAAgB,CACblP,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAAC+O,GAAY,CAAC7O,WAAW,SACpB+O,EAAWrJ,KAAI,SAACkG,EAAMjG,GAEfnG,OAAAA,EAAAA,QAACM,cAAAoP,EAAAA,WACOlK,EAAAA,SAAA,GAAA4G,EACJ,CAAAhG,IAAKD,EACLwJ,QAAS5P,EACT9B,WAAYA,EACZuR,gBAAiBA,EACjBC,iBAAkBA,aCnDxCnB,GAAe7Q,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,yBAAAC,YAAA,eAAGJ,CAGnBK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,sCAAA,qBAAA,uDAAA,gBAAA,CAAA,sCAEsD,qBAEK,uDAGpB,mBAL3B,SAACC,GAAmBuQ,OAAPvQ,EAAAuQ,YAAqB,YAC/B,SAACvQ,GACVwQ,OADqBxQ,EAAAwQ,WACP,GAAK,GAAMhQ,EAAAA,SAAS6P,aAAe,OAGjB,EAAjB7P,EAAQA,SAACc,OA6ChCsQ,GAAepQ,EAAYA,cAhCtB,SAACxB,GAAE,IAAAqK,aAAU7E,EAAIxF,EAAAwF,KAAE5D,EAAM5B,EAAA4B,OAClBC,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAO,CAACC,WAAW,QAAQC,eAAa,GACpC+C,GACGxD,EAAAA,QAAAM,cAACgO,GACG,CAAArQ,WAAYA,EACZ6C,KAAK,OACLgF,UAAWtC,SCgCpBhE,GAAAA,EAAAA,cA/CV,SAACxB,GACF,IAAAqK,EAAQrK,EAAAqK,SACRwH,EAAO7R,EAAA6R,QACPC,EAAO9R,EAAA8R,QACPC,EAAQ/R,EAAA+R,SACRlP,EAAqG7C,EAAAgS,YAArGA,OAAc,IAAAnP,EAAA,wFAAuFA,EACrG4H,EAA+BzK,EAAAiS,iBAA/BA,OAAgB,IAAAxH,EAAG,aAAYA,EAC/ByH,EAAalS,EAAAkS,cACbC,EAAWnS,EAAAmS,YACXvQ,EAAM5B,EAAA4B,OAEEC,EAAWC,uBAEb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbmI,SAAUA,EACVlI,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAC,QAAAM,cAAAC,WAAQE,eAAa,EAACD,WAAW,SAC7BsP,GAAWD,GACR7P,UAAAM,cAAC8P,EAAAA,UACG,CAAAP,QAASA,EACTC,QAASA,EACTG,iBAAkBA,EAClBF,SAAUA,EACVC,YAAaA,EACbE,cAAeA,EACfC,YAAaA"}
|
package/cjs/sections.pois.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Filter-89286db9.js"),n=require("react"),t=require("styled-components"),i=require("./Section-c9a16ccc.js"),r=require("./Wrapper-bca9463e.js"),a=require("./Image-69a9c116.js"),o=require("./Copy-2a9d4b5d.js"),l=require("./styles-13e5d9ac.js"),s=require("./LibThemeProvider-69109901.js"),c=require("./Grid-1acefee9.js"),d=require("./InfoList-f040b8fb.js"),u=require("./FilterBar-bfd9db6e.js"),p=require("./arrays-c272ed59.js"),m=require("./urlParams-7525f638.js");require("./useScroll-2f086e7f.js"),require("react-dom/server");var f=require("./escape-1ef8dd83.js"),g=require("./useLeafletMap-514304b6.js"),h=require("./Navigation-6c5d9dee.js"),v=require("./useGeolocation-d8946470.js");function b(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-f387d848.js"),require("./clamp-bd21d587.js"),require("./FilterField-d204feb1.js"),require("./useLazyInput-911b8eda.js"),require("./MultiselectDropdown-d46ae36f.js"),require("./formFieldText-21f5f620.js"),require("./useMounted-0bba9869.js"),require("./Checkbox-ddc9a87d.js"),require("react-dom"),require("./Pointer-0f69256f.js"),require("./useMediaQuery-619d7203.js"),require("./navigation-3f9d4ac4.js"),require("./Link-8951180c.js"),require("./LanguageSwitcher-c6fd04df.js");var x,y,w,_,I,C,F,k,j,E,P,M,O,L,q,T,N,S,z=b(n),A=b(t),B=A.default(a.Image).withConfig({displayName:"PointOfInterestDetail__StyledImage",componentId:"sc-hksryh-0"})(x||(x=e.__makeTemplateObject(["\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"],["\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"])),l.spacings.spacer),V=A.default(u.POIFacts).withConfig({displayName:"PointOfInterestDetail__Facts",componentId:"sc-hksryh-1"})(y||(y=e.__makeTemplateObject(["\n max-width: 880px;\n"],["\n max-width: 880px;\n"]))),R=A.default(o.Heading).withConfig({displayName:"PointOfInterestDetail__PoiTitle",componentId:"sc-hksryh-2"})(w||(w=e.__makeTemplateObject(["\n max-width: 880px;\n\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"],["\n max-width: 880px;\n\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"])),3*l.spacings.nudge),D=A.default(o.Copy).withConfig({displayName:"PointOfInterestDetail__PoiText",componentId:"sc-hksryh-3"})(_||(_=e.__makeTemplateObject(["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"],["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"])),3*l.spacings.nudge),G=s.withLibTheme((function(t){var a=t.anchorId,o=t.image,u=t.title,m=t.intro,f=t.text,g=t.facts,h=t.infos,v=t.bgMode,b=t.customFact,x=s.useLibTheme().colors,y="inverted"===v,w="full"===v,_=n.useMemo((function(){return p.isValidArray(null==h?void 0:h.filter((function(e){return p.isValidArray(e.items,!1)})),!1)}),[h]);return z.default.createElement(i.Section,{addSeperation:!0,anchorId:a,bgColor:y?x.sectionBg.dark:w?x.sectionBg.medium:x.sectionBg.light,bgMode:i.mapToBgMode(v,!0)},z.default.createElement(r.Wrapper,{addWhitespace:!0},(null==o?void 0:o.small)&&z.default.createElement(B,e.__assign({},o,{coverSpace:!0,allowEdgeRadius:!0,isInverted:y})),z.default.createElement(c.Grid.Row,{gutter:5*l.spacings.nudge,semilarge:{gutter:l.spacings.spacer}},z.default.createElement(c.Grid.Col,{semilarge:{span:_?5.7/8:1}},u&&z.default.createElement(R,{size:"heading-2",isInverted:y},u),p.isValidArray(g,!1)&&z.default.createElement(V,{isInverted:y,facts:g,customFact:b}),m&&z.default.createElement(D,{size:"medium",type:"copy-b",isInverted:y,innerHTML:m}),f&&z.default.createElement(D,{size:"medium",isInverted:y,innerHTML:f})),_&&z.default.createElement(c.Grid.Col,{semilarge:{span:2.3/8}},z.default.createElement(d.InfoList,{isInverted:y,items:h})))))})),H=function(e,n){return n?null==n?void 0:n.filter((function(n){return!e.find((function(e){return e.item.id===n.id}))})):[]},U=function(e,n){var t=[];if(!p.isValidArray(null==n?void 0:n.filter((function(e){return void 0!==e.id})),!1))return t;var i=null==n?void 0:n.filter(function(e){return function(n){return new RegExp(e).test(n.name)}}(e));p.isValidArray(i,!1)&&t.push.apply(t,i.map((function(e){return{item:e,priority:1}})));var r=H(t,null==n?void 0:n.filter(function(e){return function(n){var t=e.toLowerCase().replace(/\s/g,""),i=n.name.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(e)));p.isValidArray(r,!1)&&t.push.apply(t,r.map((function(e){return{item:e,priority:2}})));var a=H(t,null==n?void 0:n.filter(function(e){return function(n){if(!p.isValidArray(n.facts,!1))return!1;var t=e.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!n.facts.find((function(e){var n=e.toLowerCase().replace(/\s/g,"");return i.test(n)}))}}(e)));p.isValidArray(a,!1)&&t.push.apply(t,a.map((function(e){return{item:e,priority:3}})));var o=H(t,null==n?void 0:n.filter(function(e){return function(n){if(!p.isValidArray(null==n?void 0:n.infos,!1))return!1;var t=e.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!n.infos.find((function(e){if(!e.text)return!1;var n=e.text.toLowerCase().replace(/\s/g,"");return i.test(n)}))}}(e)));p.isValidArray(o,!1)&&t.push.apply(t,o.map((function(e){return{item:e,priority:4}})));var l=H(t,null==n?void 0:n.filter(function(e){return function(n){if(!n.shortDescription)return!1;var t=e.toLowerCase().replace(/\s/g,""),i=n.shortDescription.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(e)));return p.isValidArray(l,!1)&&t.push.apply(t,l.map((function(e){return{item:e,priority:5}}))),t},W=function(e,n,t){var i,r=new Map;if(!e&&!n.length)for(var a=0,o=t;a<o.length;a++){var l=o[a];r.set(l.id,{item:l,priority:0})}for(var s=0,c=t;s<c.length;s++){(null===(i=(l=c[s]).facts)||void 0===i?void 0:i.some((function(e){return n.includes(e)})))&&r.set(l.id,{item:l,priority:1})}for(var d=0,u=e?U(f.escapeRegExp(e),t||[]):[];d<u.length;d++){var p=u[d];r.has(p.item.id)||r.set(p.item.id,p)}return r},Z=function(n){var t=n.hasBorders,i=n.value,r=n.onChange,a=n.textFilter,o=n.categoryFilter,l=n.mobileSubmitLabel,s=n.closeIcon,c=n.toggleLabel,d=n.filterIcon,p=n.indicator,m=n.isInverted,f=n.className;return z.default.createElement(u.FilterBar,{isInverted:m,hasBorders:t,value:i,onChange:r,textFilter:a?{placeholder:a.placeholder||"Search...",icon:a.icon?a.icon:function(){return z.default.createElement(e.Magnifier,{width:18,height:18})},submitIcon:a.submitIcon?a.submitIcon:function(){return null},clearIcon:a.clearIcon?a.clearIcon:function(){return z.default.createElement(e.CrossBubble,null)}}:void 0,categoryFilter:o?{label:o.label||"Categories",items:o.items||[],resetLabel:o.resetLabel||"reset selection"}:void 0,mobileSubmitLabel:l||"Apply filters",closeIcon:s||function(){return z.default.createElement(e.Cross,null)},toggleLabel:c||"Search & Filter",filterIcon:d||function(){return z.default.createElement(e.Filter,null)},indicator:p,className:f})},Q=Object.freeze({__proto__:null,PoiFilterBar:Z}),J=A.default(i.Section).withConfig({displayName:"PointOfInterestOverview__POISection",componentId:"sc-epctuk-0"})(I||(I=e.__makeTemplateObject(["\n overflow: visible;\n"],["\n overflow: visible;\n"]))),K=A.default.div.withConfig({displayName:"PointOfInterestOverview__Content",componentId:"sc-epctuk-1"})(C||(C=e.__makeTemplateObject(["\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n & > * + * {\n margin-top: ","px;\n }\n }\n"],["\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n & > * + * {\n margin-top: ","px;\n }\n }\n"])),5*l.spacings.nudge,l.mq.large,3*l.spacings.nudge),X=A.default(Z).withConfig({displayName:"PointOfInterestOverview__PoiOverviewFilterBar",componentId:"sc-epctuk-2"})(F||(F=e.__makeTemplateObject(["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ",";\n border-radius: ",";\n\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n\n @media "," {\n border: none;\n }\n"],["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ",";\n border-radius: ",";\n\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n\n @media "," {\n border: none;\n }\n"])),(function(e){var n=e.theme;return e.isInverted?l.getColors(n).elementBg.light:l.getColors(n).elementBg.dark}),(function(e){return e.theme.globals.sections.edgeRadius}),5*l.spacings.nudge,l.mq.medium),Y=s.withLibTheme((function(t){var a,o=t.anchorId,l=t.bgMode,c=t.pois,d=t.initialPoiFilters,f=t.poiFilters,g=t.customPoiFilters,h=s.useLibTheme(),v=h.colors,b=h.globals,x=b.sections.poiFilterName,y=b.sections.poiFactFilterName,w="inverted"===l,_="full"===l,I=n.useState(d||{categoryFilter:[],textFilter:""}),C=I[0],F=I[1],k=n.useMemo((function(){return null==c?void 0:c.reduce((function(n,t){for(var i=e.__spreadArray([],n,!0),r=0,a=t.facts||[];r<a.length;r++){var o=a[r];i.includes(o)||i.push(o)}return i}),[])}),[c]),j=n.useMemo((function(){var e=W((null==C?void 0:C.textFilter)||"",(null==C?void 0:C.categoryFilter)||[],c||[])||c;return Array.from(e).map((function(e){return e[1]}))}),[null==C?void 0:C.textFilter,null==C?void 0:C.categoryFilter,c]);return n.useEffect((function(){C.textFilter?m.setUrlParam(x,C.textFilter):m.deleteUrlParam(x),p.isValidArray(C.categoryFilter,!1)?m.setUrlParam(y,C.categoryFilter.join(",")):m.deleteUrlParam(y)}),[x,y,C.textFilter,C.categoryFilter]),z.default.createElement(J,{addSeperation:!0,anchorId:o,bgColor:w?v.sectionBg.dark:_?v.sectionBg.medium:v.sectionBg.light,bgMode:i.mapToBgMode(l,!0)},z.default.createElement(r.Wrapper,{addWhitespace:!0},f?g?null==g?void 0:g({filters:C,setFilters:F,pois:c||[],settings:f}):z.default.createElement(X,{hasBorders:!0,value:C,onChange:F,textFilter:(null==f?void 0:f.textFilter)||void 0,categoryFilter:(null==f?void 0:f.categoryFilter)?e.__assign(e.__assign({},f.categoryFilter),{items:null==k?void 0:k.map((function(e){return{value:e,label:e}||[]}))}):void 0,mobileSubmitLabel:null==f?void 0:f.mobileSubmitLabel,closeIcon:null==f?void 0:f.closeIcon,toggleLabel:null==f?void 0:f.toggleLabel,filterIcon:null==f?void 0:f.filterIcon,indicator:null==f?void 0:f.indicator,isInverted:w}):null,z.default.createElement(K,null,null===(a=null==j?void 0:j.sort((function(e,n){return e.priority-n.priority})))||void 0===a?void 0:a.map((function(n,t){return z.default.createElement(u.POICard,e.__assign({key:t},n.item,{isInverted:w}))})))))})),$=A.default(i.Section).withConfig({displayName:"PointOfInterestMap__PoiMapSection",componentId:"sc-1ke8oz0-0"})(E||(E=e.__makeTemplateObject(["\n position: relative;\n ","\n\n header + & {\n ","\n ","\n }\n"],["\n position: relative;\n ","\n\n header + & {\n ","\n ","\n }\n"])),(function(n){return n.isLarge&&t.css(j||(j=e.__makeTemplateObject(["\n // Doing some crazy shit to calculate curent navbar height in CSS\n ","\n"],["\n // Doing some crazy shit to calculate curent navbar height in CSS\n ","\n"])),(function(n){var i=n.theme,r=h.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0}),a=h.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasTop:!0}),o=h.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasBottom:!0}),s=h.generateNavbarIdent({pageFlow:"beforeContent",hasTop:!0,hasMain:!0,hasBottom:!0}),c=h.getFullNavbarHeights(i,r).large,d=h.getFullNavbarHeights(i,a).large,u=h.getFullNavbarHeights(i,o).large,p=h.getFullNavbarHeights(i,s).large,m=function(e){return e.map((function(e){return"[data-navbar-ident*='".concat(e,"']")})).join("")},f="100vh";return t.css(k||(k=e.__makeTemplateObject(["\n "," {\n height: ",";\n }\n\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n @media "," {\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc(\n "," - ","px\n );\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n }\n "],["\n "," {\n height: ",";\n }\n\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n @media "," {\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc(\n "," - ","px\n );\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n }\n "])),ne,f,m(r.split("-")),ne,f,c[0],m(a.split("-")),ne,f,d[0],m(o.split("-")),ne,f,u[0],m(s.split("-")),ne,f,p[0],l.mq.semilarge,m(r.split("-")),ne,f,c[1],m(a.split("-")),ne,f,d[1],m(o.split("-")),ne,f,u[1],m(s.split("-")),ne,f,p[1])}))}),l.withRange([0],"padding-top"),l.withRange([0],"margin-top")),ee=A.default.div.withConfig({displayName:"PointOfInterestMap__MapContainer",componentId:"sc-1ke8oz0-1"})(P||(P=e.__makeTemplateObject(["\n position: relative;\n"],["\n position: relative;\n"]))),ne=A.default.div.withConfig({displayName:"PointOfInterestMap__Map",componentId:"sc-1ke8oz0-2"})(M||(M=e.__makeTemplateObject(["\n min-height: 360px;\n height: 360px;\n max-height: 1300px;\n z-index: 0;\n\n @media "," {\n height: 600px;\n min-height: 600px;\n }\n"],["\n min-height: 360px;\n height: 360px;\n max-height: 1300px;\n z-index: 0;\n\n @media "," {\n height: 600px;\n min-height: 600px;\n }\n"])),l.mq.medium),te=A.default.button.withConfig({displayName:"PointOfInterestMap__RequestGeolocationBtn",componentId:"sc-1ke8oz0-3"})(O||(O=e.__makeTemplateObject(["\n background-color: transparent;\n border: none;\n padding: ","px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"],["\n background-color: transparent;\n border: none;\n padding: ","px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"])),l.spacings.nudge,(function(e){var n=e.theme;return l.getColors(n).primary.default})),ie=A.default.div.withConfig({displayName:"PointOfInterestMap__CardStage",componentId:"sc-1ke8oz0-4"})(L||(L=e.__makeTemplateObject(["\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n pointer-events: all;\n background-color: rgba(255, 255, 255, 0.8);\n\n @media "," {\n position: absolute;\n background-color: transparent;\n padding: ","px;\n padding-bottom: ","px;\n\n pointer-events: none;\n }\n"],["\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n pointer-events: all;\n background-color: rgba(255, 255, 255, 0.8);\n\n @media "," {\n position: absolute;\n background-color: transparent;\n padding: ","px;\n padding-bottom: ","px;\n\n pointer-events: none;\n }\n"])),l.mq.medium,2*l.spacings.nudge,3*l.spacings.nudge),re=A.default.div.withConfig({displayName:"PointOfInterestMap__MapCardView",componentId:"sc-1ke8oz0-5"})(q||(q=e.__makeTemplateObject(["\n max-height: 100%;\n width: 100%;\n padding: ","px;\n overflow: auto;\n\n background: ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: ",";\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 400px;\n }\n"],["\n max-height: 100%;\n width: 100%;\n padding: ","px;\n overflow: auto;\n\n background: ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: ",";\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 400px;\n }\n"])),2*l.spacings.nudge,(function(e){var n=e.theme;return l.getColors(n).elementBg.light}),(function(e){var n=e.theme;return l.getGlobals(n).sections.edgeRadius}),3*l.spacings.nudge,l.mq.medium),ae=A.default.header.withConfig({displayName:"PointOfInterestMap__MapCardHeader",componentId:"sc-1ke8oz0-6"})(T||(T=e.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),oe=A.default.button.withConfig({displayName:"PointOfInterestMap__CloseBtn",componentId:"sc-1ke8oz0-7"})(N||(N=e.__makeTemplateObject(["\n display: inline-block;\n border: none;\n background-color: transparent;\n cursor: pointer;\n margin-left: auto;\n padding: ","px;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n"],["\n display: inline-block;\n border: none;\n background-color: transparent;\n cursor: pointer;\n margin-left: auto;\n padding: ","px;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n"])),l.spacings.nudge,(function(e){var n=e.theme;return l.getColors(n).primary.default})),le=A.default.div.withConfig({displayName:"PointOfInterestMap__Overlay",componentId:"sc-1ke8oz0-8"})(S||(S=e.__makeTemplateObject(["\n position: absolute;\n top: ","px;\n left: ","px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n position: absolute;\n top: ","px;\n left: ","px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ","px;\n }\n"])),2*l.spacings.nudge,2*l.spacings.nudge,2*l.spacings.nudge),se=function(n){var t=n.name,i=n.facts,r=n.description,a=n.infos,l=n.action,c=n.customFact,m=n.customClose,f=n.onClose,g=n.className,h=s.useLibTheme().colors;return z.default.createElement(re,{className:g},z.default.createElement(ae,null,t&&z.default.createElement(o.Copy,{type:"copy-b",size:"big"},t),z.default.createElement(oe,{onClick:f},m||z.default.createElement(e.Cross,{iconColor:h.text.default}))),p.isValidArray(i,!1)&&z.default.createElement(u.POIFacts,{facts:i,customFact:c}),r&&z.default.createElement(o.Copy,{type:"copy",size:"small",innerHTML:r}),p.isValidArray(a,!1)&&z.default.createElement(d.InfoList,{items:[{items:a}]}),l&&l)},ce=s.withLibTheme((function(t){var i=t.anchorId,a=t.size,o=t.pois,c=t.initialPointOfInterest,d=void 0===c?"":c,u=t.provider,f=t.attribution,h=t.center,b=void 0===h?[51.505,-.09]:h,x=t.zoom,y=void 0===x?5:x,w=t.fitBoundsPadding,_=t.allMarkersOnInit,I=void 0!==_&&_,C=t.restrictToMarkersArea,F=void 0===C||C,k=t.showOwnPosition,j=t.flyToZoom,E=t.customFact,P=t.currentPosMarker,M=t.customCardClose,O=t.customLocationRequest,L=t.initialPoiFilters,q=t.poiFilters,T=t.customPoiFilters,N="large"===a,S=s.useLibTheme(),A=S.colors,B=S.globals,V=n.useState(d||""),R=V[0],D=V[1],G=n.useState(!1),H=G[0],U=G[1],Q=n.useState(L||{categoryFilter:[],textFilter:""}),J=Q[0],K=Q[1],X=n.useMemo((function(){return null==o?void 0:o.reduce((function(n,t){for(var i=e.__spreadArray([],n,!0),r=0,a=t.facts||[];r<a.length;r++){var o=a[r];i.includes(o)||i.push(o)}return i}),[])}),[o]),Y=n.useMemo((function(){var e=W((null==J?void 0:J.textFilter)||"",(null==J?void 0:J.categoryFilter)||[],o||[])||o;return Array.from(e).map((function(e){return e[1].item}))}),[null==J?void 0:J.textFilter,null==J?void 0:J.categoryFilter,o]),re=n.useMemo((function(){return null==Y?void 0:Y.find((function(e){return e.id===R}))}),[R,Y]),ae=v.useGeolocation(!0,!1),oe=ae.isSupported,ce=ae.location,de=ae.reset,ue=n.useMemo((function(){var n,t={size:[28,28],anchor:[14,28],sizeActive:[70,70],anchorActive:[35,70],url:l.getSVGDataImg(z.default.createElement(e.LocationPin,null))},i={size:[24,24],anchor:[12,12],sizeActive:[24,24],anchorActive:[12,12],url:l.getSVGDataImg(z.default.createElement(e.CurrentLocation,{iconColor:"#5383EC"}))},r=(null===(n=null==Y?void 0:Y.filter((function(e){return void 0!==e.id})))||void 0===n?void 0:n.map((function(e){return{id:e.id,position:e.position,icon:e.icon||t,isInteractive:!0}})))||[];return oe&&(null==ce?void 0:ce.coords.latitude)&&(null==ce?void 0:ce.coords.longitude)&&r.push({id:"my-current-position-123456789",position:[ce.coords.latitude,ce.coords.longitude],icon:P||i}),r}),[P,oe,null==ce?void 0:ce.coords.latitude,null==ce?void 0:ce.coords.longitude,Y]),pe=g.useLeafletMap({url:u,attribution:f,center:b,zoom:y,activeMarkerId:R,markers:ue,fitBoundsPadding:w,restrictToMarkersArea:F,showZoomControls:!0,zoomControlPosition:"bottomleft",onMarkerClick:function(e){D((function(n){return n===e?"":e}))}}),me=pe.isLoaded,fe=pe.setContainer,ge=pe.flyToActive,he=pe.showAllMarkers,ve=pe.flyToPosition,be=pe.getCurrentZoom;n.useEffect((function(){if(me&&!H)I&&he();else{var e=be(),n=j;void 0!==j&&e>j&&(n=e),ge(n)}}),[R,I,ge,j,be,d,H,me,he]),n.useEffect((function(){H||R===d||U(!0)}),[R,d,H]);var xe=B.sections.poiFilterName,ye=B.sections.poiFactFilterName;return n.useEffect((function(){J.textFilter?m.setUrlParam(xe,J.textFilter):m.deleteUrlParam(xe),p.isValidArray(J.categoryFilter,!1)?m.setUrlParam(ye,J.categoryFilter.join(",")):m.deleteUrlParam(ye)}),[xe,ye,J.textFilter,J.categoryFilter]),n.useEffect((function(){D(""),U(!1)}),[J]),z.default.createElement($,{anchorId:i,bgColor:"image",bgMode:"full",isLarge:N},z.default.createElement(r.Wrapper,{clampWidth:N?"large":"normal"},z.default.createElement(ee,null,z.default.createElement(ne,{ref:fe,isLarge:"large"===a}),(k||q)&&z.default.createElement(le,null,k&&z.default.createElement(te,{onClick:function(){return e.__awaiter(void 0,void 0,void 0,(function(){var n,t,i,r;return e.__generator(this,(function(e){switch(e.label){case 0:return(null===(i=null==ce?void 0:ce.coords)||void 0===i?void 0:i.latitude)&&(null===(r=null==ce?void 0:ce.coords)||void 0===r?void 0:r.longitude)?(n=be(),t=j,void 0!==j&&n>j&&(t=n),ve([ce.coords.latitude,ce.coords.longitude],t),[3,4]):[3,1];case 1:return e.trys.push([1,3,,4]),[4,de()];case 2:return e.sent()&&he(),[3,4];case 3:return e.sent(),[3,4];case 4:return[2]}}))}))}},O||z.default.createElement(e.MyLocation,{iconColor:A.text.default})),q?T?T({filters:J,setFilters:K,pois:o||[],settings:q}):z.default.createElement(Z,{value:J,onChange:K,textFilter:(null==q?void 0:q.textFilter)||void 0,categoryFilter:(null==q?void 0:q.categoryFilter)?e.__assign(e.__assign({},q.categoryFilter),{items:null==X?void 0:X.map((function(e){return{value:e,label:e}||[]}))}):void 0,mobileSubmitLabel:null==q?void 0:q.mobileSubmitLabel,closeIcon:null==q?void 0:q.closeIcon,toggleLabel:null==q?void 0:q.toggleLabel,filterIcon:null==q?void 0:q.filterIcon,indicator:null==q?void 0:q.indicator}):null),re&&re.name&&z.default.createElement(ie,{onClick:function(e){e.target===e.currentTarget&&D("")}},z.default.createElement(se,e.__assign({},re,{onClose:function(){return D("")},customFact:E,customClose:M}))))))}));exports.PoiPartials=Q,exports.PointOfInterestDetail=G,exports.PointOfInterestMap=ce,exports.PointOfInterestOverview=Y;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./ButtonLeft-7e1f216a.js"),n=require("react"),t=require("styled-components"),i=require("./Section-89240e41.js"),r=require("./Wrapper-c755d727.js"),a=require("./Image-14b2cb93.js"),o=require("./Copy-1b9e33ba.js"),l=require("./styles-271afb02.js"),s=require("./LibThemeProvider-878ed68c.js"),c=require("./Grid-dab3343f.js"),d=require("./InfoList-b4f39949.js"),u=require("./FilterBar-238c2290.js"),p=require("./arrays-c272ed59.js"),m=require("./urlParams-c412d937.js");require("./useScroll-2f086e7f.js"),require("react-dom/server");var f=require("./escape-1ef8dd83.js"),g=require("./useLeafletMap-145217ee.js"),h=require("./Navigation-2d3590a0.js"),v=require("./useGeolocation-d8946470.js");function b(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-8bd71a50.js"),require("./clamp-bd21d587.js"),require("./FilterField-c8dc9450.js"),require("./useLazyInput-1481445a.js"),require("./MultiselectDropdown-54cd988f.js"),require("./formFieldText-fcf0452b.js"),require("./useMounted-0bba9869.js"),require("./Checkbox-d27880f4.js"),require("react-dom"),require("./Pointer-b8875387.js"),require("./useMediaQuery-dd367f98.js"),require("./navigation-ec5cddfc.js"),require("./Link-6e728957.js"),require("./LanguageSwitcher-3ee77117.js");var x,y,w,_,I,C,F,k,j,E,P,L,M,O,q,T,N,S,z=b(n),A=b(t),B=A.default(a.Image).withConfig({displayName:"PointOfInterestDetail__StyledImage",componentId:"sc-hksryh-0"})(x||(x=e.__makeTemplateObject(["\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"],["\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"])),l.spacings.spacer),V=A.default(u.POIFacts).withConfig({displayName:"PointOfInterestDetail__Facts",componentId:"sc-hksryh-1"})(y||(y=e.__makeTemplateObject(["\n max-width: 880px;\n"],["\n max-width: 880px;\n"]))),R=A.default(o.Heading).withConfig({displayName:"PointOfInterestDetail__PoiTitle",componentId:"sc-hksryh-2"})(w||(w=e.__makeTemplateObject(["\n max-width: 880px;\n\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"],["\n max-width: 880px;\n\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"])),3*l.spacings.nudge),D=A.default(o.Copy).withConfig({displayName:"PointOfInterestDetail__PoiText",componentId:"sc-hksryh-3"})(_||(_=e.__makeTemplateObject(["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"],["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"])),3*l.spacings.nudge),G=s.withLibTheme((function(t){var a=t.anchorId,o=t.image,u=t.title,m=t.intro,f=t.text,g=t.facts,h=t.infos,v=t.bgMode,b=t.customFact,x=s.useLibTheme().colors,y="inverted"===v,w="full"===v,_=n.useMemo((function(){return p.isValidArray(null==h?void 0:h.filter((function(e){return p.isValidArray(e.items,!1)})),!1)}),[h]);return z.default.createElement(i.Section,{addSeperation:!0,anchorId:a,bgColor:y?x.sectionBg.dark:w?x.sectionBg.medium:x.sectionBg.light,bgMode:i.mapToBgMode(v,!0)},z.default.createElement(r.Wrapper,{addWhitespace:!0},(null==o?void 0:o.small)&&z.default.createElement(B,e.__assign({},o,{coverSpace:!0,allowEdgeRadius:!0,isInverted:y})),z.default.createElement(c.Grid.Row,{gutter:5*l.spacings.nudge,semilarge:{gutter:l.spacings.spacer}},z.default.createElement(c.Grid.Col,{semilarge:{span:_?5.7/8:1}},u&&z.default.createElement(R,{size:"heading-2",isInverted:y},u),p.isValidArray(g,!1)&&z.default.createElement(V,{isInverted:y,facts:g,customFact:b}),m&&z.default.createElement(D,{size:"medium",type:"copy-b",isInverted:y,innerHTML:m}),f&&z.default.createElement(D,{size:"medium",isInverted:y,innerHTML:f})),_&&z.default.createElement(c.Grid.Col,{semilarge:{span:2.3/8}},z.default.createElement(d.InfoList,{isInverted:y,items:h})))))})),H=function(e,n){return n?null==n?void 0:n.filter((function(n){return!e.find((function(e){return e.item.id===n.id}))})):[]},U=function(e,n){var t=[];if(!p.isValidArray(null==n?void 0:n.filter((function(e){return void 0!==e.id})),!1))return t;var i=null==n?void 0:n.filter(function(e){return function(n){return new RegExp(e).test(n.name)}}(e));p.isValidArray(i,!1)&&t.push.apply(t,i.map((function(e){return{item:e,priority:1}})));var r=H(t,null==n?void 0:n.filter(function(e){return function(n){var t=e.toLowerCase().replace(/\s/g,""),i=n.name.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(e)));p.isValidArray(r,!1)&&t.push.apply(t,r.map((function(e){return{item:e,priority:2}})));var a=H(t,null==n?void 0:n.filter(function(e){return function(n){if(!p.isValidArray(n.facts,!1))return!1;var t=e.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!n.facts.find((function(e){var n=e.toLowerCase().replace(/\s/g,"");return i.test(n)}))}}(e)));p.isValidArray(a,!1)&&t.push.apply(t,a.map((function(e){return{item:e,priority:3}})));var o=H(t,null==n?void 0:n.filter(function(e){return function(n){if(!p.isValidArray(null==n?void 0:n.infos,!1))return!1;var t=e.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!n.infos.find((function(e){if(!e.text)return!1;var n=e.text.toLowerCase().replace(/\s/g,"");return i.test(n)}))}}(e)));p.isValidArray(o,!1)&&t.push.apply(t,o.map((function(e){return{item:e,priority:4}})));var l=H(t,null==n?void 0:n.filter(function(e){return function(n){if(!n.shortDescription)return!1;var t=e.toLowerCase().replace(/\s/g,""),i=n.shortDescription.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(e)));return p.isValidArray(l,!1)&&t.push.apply(t,l.map((function(e){return{item:e,priority:5}}))),t},W=function(e,n,t){var i,r=new Map;if(!e&&!n.length)for(var a=0,o=t;a<o.length;a++){var l=o[a];r.set(l.id,{item:l,priority:0})}for(var s=0,c=t;s<c.length;s++){(null===(i=(l=c[s]).facts)||void 0===i?void 0:i.some((function(e){return n.includes(e)})))&&r.set(l.id,{item:l,priority:1})}for(var d=0,u=e?U(f.escapeRegExp(e),t||[]):[];d<u.length;d++){var p=u[d];r.has(p.item.id)||r.set(p.item.id,p)}return r},Z=function(n){var t=n.hasBorders,i=n.value,r=n.onChange,a=n.textFilter,o=n.categoryFilter,l=n.mobileSubmitLabel,s=n.closeIcon,c=n.toggleLabel,d=n.filterIcon,p=n.indicator,m=n.isInverted,f=n.className;return z.default.createElement(u.FilterBar,{isInverted:m,hasBorders:t,value:i,onChange:r,textFilter:a?{placeholder:a.placeholder||"Search...",icon:a.icon?a.icon:function(){return z.default.createElement(e.Magnifier,{width:18,height:18})},submitIcon:a.submitIcon?a.submitIcon:function(){return null},clearIcon:a.clearIcon?a.clearIcon:function(){return z.default.createElement(e.CrossBubble,null)}}:void 0,categoryFilter:o?{label:o.label||"Categories",items:o.items||[],resetLabel:o.resetLabel||"reset selection"}:void 0,mobileSubmitLabel:l||"Apply filters",closeIcon:s||function(){return z.default.createElement(e.Cross,null)},toggleLabel:c||"Search & Filter",filterIcon:d||function(){return z.default.createElement(e.Filter,null)},indicator:p,className:f})},Q=Object.freeze({__proto__:null,PoiFilterBar:Z}),J=A.default(i.Section).withConfig({displayName:"PointOfInterestOverview__POISection",componentId:"sc-epctuk-0"})(I||(I=e.__makeTemplateObject(["\n overflow: visible;\n"],["\n overflow: visible;\n"]))),K=A.default.ul.withConfig({displayName:"PointOfInterestOverview__Content",componentId:"sc-epctuk-1"})(C||(C=e.__makeTemplateObject(["\n list-style: none;\n margin: 0;\n padding: 0;\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n & > * + * {\n margin-top: ","px;\n }\n }\n"],["\n list-style: none;\n margin: 0;\n padding: 0;\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n & > * + * {\n margin-top: ","px;\n }\n }\n"])),5*l.spacings.nudge,l.mq.large,3*l.spacings.nudge),X=A.default(Z).withConfig({displayName:"PointOfInterestOverview__PoiOverviewFilterBar",componentId:"sc-epctuk-2"})(F||(F=e.__makeTemplateObject(["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ",";\n border-radius: ",";\n\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n\n @media "," {\n border: none;\n }\n"],["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ",";\n border-radius: ",";\n\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n\n @media "," {\n border: none;\n }\n"])),(function(e){var n=e.theme;return e.isInverted?l.getColors(n).elementBg.light:l.getColors(n).elementBg.dark}),(function(e){return e.theme.globals.sections.edgeRadius}),5*l.spacings.nudge,l.mq.medium),Y=s.withLibTheme((function(t){var a,o=t.anchorId,l=t.bgMode,c=t.pois,d=t.initialPoiFilters,f=t.poiFilters,g=t.customPoiFilters,h=t.listAriaLabel,v=void 0===h?"List of card items with points of interest":h,b=s.useLibTheme(),x=b.colors,y=b.globals,w=y.sections.poiFilterName,_=y.sections.poiFactFilterName,I="inverted"===l,C="full"===l,F=n.useState(d||{categoryFilter:[],textFilter:""}),k=F[0],j=F[1],E=n.useMemo((function(){return null==c?void 0:c.reduce((function(n,t){for(var i=e.__spreadArray([],n,!0),r=0,a=t.facts||[];r<a.length;r++){var o=a[r];i.includes(o)||i.push(o)}return i}),[])}),[c]),P=n.useMemo((function(){var e=W((null==k?void 0:k.textFilter)||"",(null==k?void 0:k.categoryFilter)||[],c||[])||c;return Array.from(e).map((function(e){return e[1]}))}),[null==k?void 0:k.textFilter,null==k?void 0:k.categoryFilter,c]);return n.useEffect((function(){k.textFilter?m.setUrlParam(w,k.textFilter):m.deleteUrlParam(w),p.isValidArray(k.categoryFilter,!1)?m.setUrlParam(_,k.categoryFilter.join(",")):m.deleteUrlParam(_)}),[w,_,k.textFilter,k.categoryFilter]),z.default.createElement(J,{addSeperation:!0,anchorId:o,bgColor:I?x.sectionBg.dark:C?x.sectionBg.medium:x.sectionBg.light,bgMode:i.mapToBgMode(l,!0)},z.default.createElement(r.Wrapper,{addWhitespace:!0},f?g?null==g?void 0:g({filters:k,setFilters:j,pois:c||[],settings:f}):z.default.createElement(X,{hasBorders:!0,value:k,onChange:j,textFilter:(null==f?void 0:f.textFilter)||void 0,categoryFilter:(null==f?void 0:f.categoryFilter)?e.__assign(e.__assign({},f.categoryFilter),{items:null==E?void 0:E.map((function(e){return{value:e,label:e}||[]}))}):void 0,mobileSubmitLabel:null==f?void 0:f.mobileSubmitLabel,closeIcon:null==f?void 0:f.closeIcon,toggleLabel:null==f?void 0:f.toggleLabel,filterIcon:null==f?void 0:f.filterIcon,indicator:null==f?void 0:f.indicator,isInverted:I}):null,z.default.createElement(K,{"aria-label":v},null===(a=null==P?void 0:P.sort((function(e,n){return e.priority-n.priority})))||void 0===a?void 0:a.map((function(n,t){return z.default.createElement(u.POICard,e.__assign({key:t},n.item,{renderAs:"li",isInverted:I}))})))))})),$=A.default(i.Section).withConfig({displayName:"PointOfInterestMap__PoiMapSection",componentId:"sc-1ke8oz0-0"})(E||(E=e.__makeTemplateObject(["\n position: relative;\n ","\n\n header + & {\n ","\n ","\n }\n"],["\n position: relative;\n ","\n\n header + & {\n ","\n ","\n }\n"])),(function(n){return n.isLarge&&t.css(j||(j=e.__makeTemplateObject(["\n // Doing some crazy shit to calculate curent navbar height in CSS\n ","\n"],["\n // Doing some crazy shit to calculate curent navbar height in CSS\n ","\n"])),(function(n){var i=n.theme,r=h.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0}),a=h.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasTop:!0}),o=h.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasBottom:!0}),s=h.generateNavbarIdent({pageFlow:"beforeContent",hasTop:!0,hasMain:!0,hasBottom:!0}),c=h.getFullNavbarHeights(i,r).large,d=h.getFullNavbarHeights(i,a).large,u=h.getFullNavbarHeights(i,o).large,p=h.getFullNavbarHeights(i,s).large,m=function(e){return e.map((function(e){return"[data-navbar-ident*='".concat(e,"']")})).join("")},f="100vh";return t.css(k||(k=e.__makeTemplateObject(["\n "," {\n height: ",";\n }\n\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n @media "," {\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc(\n "," - ","px\n );\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n }\n "],["\n "," {\n height: ",";\n }\n\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n @media "," {\n // with main navbar element\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and top navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n\n // with main and bottom navbar elements\n header"," ~ & {\n "," {\n height: calc(\n "," - ","px\n );\n }\n }\n\n // with all navbar elements\n header"," ~ & {\n "," {\n height: calc("," - ","px);\n }\n }\n }\n "])),ne,f,m(r.split("-")),ne,f,c[0],m(a.split("-")),ne,f,d[0],m(o.split("-")),ne,f,u[0],m(s.split("-")),ne,f,p[0],l.mq.semilarge,m(r.split("-")),ne,f,c[1],m(a.split("-")),ne,f,d[1],m(o.split("-")),ne,f,u[1],m(s.split("-")),ne,f,p[1])}))}),l.withRange([0],"padding-top"),l.withRange([0],"margin-top")),ee=A.default.div.withConfig({displayName:"PointOfInterestMap__MapContainer",componentId:"sc-1ke8oz0-1"})(P||(P=e.__makeTemplateObject(["\n position: relative;\n"],["\n position: relative;\n"]))),ne=A.default.div.withConfig({displayName:"PointOfInterestMap__Map",componentId:"sc-1ke8oz0-2"})(L||(L=e.__makeTemplateObject(["\n min-height: 360px;\n height: 360px;\n max-height: 1300px;\n z-index: 0;\n\n @media "," {\n height: 600px;\n min-height: 600px;\n }\n"],["\n min-height: 360px;\n height: 360px;\n max-height: 1300px;\n z-index: 0;\n\n @media "," {\n height: 600px;\n min-height: 600px;\n }\n"])),l.mq.medium),te=A.default.button.withConfig({displayName:"PointOfInterestMap__RequestGeolocationBtn",componentId:"sc-1ke8oz0-3"})(M||(M=e.__makeTemplateObject(["\n background-color: transparent;\n border: none;\n padding: ","px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"],["\n background-color: transparent;\n border: none;\n padding: ","px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"])),l.spacings.nudge,(function(e){var n=e.theme;return l.getColors(n).primary.default})),ie=A.default.div.withConfig({displayName:"PointOfInterestMap__CardStage",componentId:"sc-1ke8oz0-4"})(O||(O=e.__makeTemplateObject(["\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n pointer-events: all;\n background-color: rgba(255, 255, 255, 0.8);\n\n @media "," {\n position: absolute;\n background-color: transparent;\n padding: ","px;\n padding-bottom: ","px;\n\n pointer-events: none;\n }\n"],["\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n pointer-events: all;\n background-color: rgba(255, 255, 255, 0.8);\n\n @media "," {\n position: absolute;\n background-color: transparent;\n padding: ","px;\n padding-bottom: ","px;\n\n pointer-events: none;\n }\n"])),l.mq.medium,2*l.spacings.nudge,3*l.spacings.nudge),re=A.default.div.withConfig({displayName:"PointOfInterestMap__MapCardView",componentId:"sc-1ke8oz0-5"})(q||(q=e.__makeTemplateObject(["\n max-height: 100%;\n width: 100%;\n padding: ","px;\n overflow: auto;\n\n background: ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: ",";\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 400px;\n }\n"],["\n max-height: 100%;\n width: 100%;\n padding: ","px;\n overflow: auto;\n\n background: ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: ",";\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 400px;\n }\n"])),2*l.spacings.nudge,(function(e){var n=e.theme;return l.getColors(n).elementBg.light}),(function(e){var n=e.theme;return l.getGlobals(n).sections.edgeRadius}),3*l.spacings.nudge,l.mq.medium),ae=A.default.header.withConfig({displayName:"PointOfInterestMap__MapCardHeader",componentId:"sc-1ke8oz0-6"})(T||(T=e.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),oe=A.default.button.withConfig({displayName:"PointOfInterestMap__CloseBtn",componentId:"sc-1ke8oz0-7"})(N||(N=e.__makeTemplateObject(["\n display: inline-block;\n border: none;\n background-color: transparent;\n cursor: pointer;\n margin-left: auto;\n padding: ","px;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n"],["\n display: inline-block;\n border: none;\n background-color: transparent;\n cursor: pointer;\n margin-left: auto;\n padding: ","px;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ",";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n"])),l.spacings.nudge,(function(e){var n=e.theme;return l.getColors(n).primary.default})),le=A.default.div.withConfig({displayName:"PointOfInterestMap__Overlay",componentId:"sc-1ke8oz0-8"})(S||(S=e.__makeTemplateObject(["\n position: absolute;\n top: ","px;\n left: ","px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n position: absolute;\n top: ","px;\n left: ","px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ","px;\n }\n"])),2*l.spacings.nudge,2*l.spacings.nudge,2*l.spacings.nudge),se=function(n){var t=n.name,i=n.facts,r=n.description,a=n.infos,l=n.action,c=n.customFact,m=n.customClose,f=n.onClose,g=n.className,h=s.useLibTheme().colors;return z.default.createElement(re,{className:g},z.default.createElement(ae,null,t&&z.default.createElement(o.Copy,{type:"copy-b",size:"big"},t),z.default.createElement(oe,{onClick:f},m||z.default.createElement(e.Cross,{iconColor:h.text.default}))),p.isValidArray(i,!1)&&z.default.createElement(u.POIFacts,{facts:i,customFact:c}),r&&z.default.createElement(o.Copy,{type:"copy",size:"small",innerHTML:r}),p.isValidArray(a,!1)&&z.default.createElement(d.InfoList,{items:[{items:a}]}),l&&l)},ce=s.withLibTheme((function(t){var i=t.anchorId,a=t.size,o=t.pois,c=t.initialPointOfInterest,d=void 0===c?"":c,u=t.provider,f=t.attribution,h=t.center,b=void 0===h?[51.505,-.09]:h,x=t.zoom,y=void 0===x?5:x,w=t.fitBoundsPadding,_=t.allMarkersOnInit,I=void 0!==_&&_,C=t.restrictToMarkersArea,F=void 0===C||C,k=t.showOwnPosition,j=t.flyToZoom,E=t.customFact,P=t.currentPosMarker,L=t.customCardClose,M=t.customLocationRequest,O=t.initialPoiFilters,q=t.poiFilters,T=t.customPoiFilters,N="large"===a,S=s.useLibTheme(),A=S.colors,B=S.globals,V=n.useState(d||""),R=V[0],D=V[1],G=n.useState(!1),H=G[0],U=G[1],Q=n.useState(O||{categoryFilter:[],textFilter:""}),J=Q[0],K=Q[1],X=n.useMemo((function(){return null==o?void 0:o.reduce((function(n,t){for(var i=e.__spreadArray([],n,!0),r=0,a=t.facts||[];r<a.length;r++){var o=a[r];i.includes(o)||i.push(o)}return i}),[])}),[o]),Y=n.useMemo((function(){var e=W((null==J?void 0:J.textFilter)||"",(null==J?void 0:J.categoryFilter)||[],o||[])||o;return Array.from(e).map((function(e){return e[1].item}))}),[null==J?void 0:J.textFilter,null==J?void 0:J.categoryFilter,o]),re=n.useMemo((function(){return null==Y?void 0:Y.find((function(e){return e.id===R}))}),[R,Y]),ae=v.useGeolocation(!0,!1),oe=ae.isSupported,ce=ae.location,de=ae.reset,ue=n.useMemo((function(){var n,t={size:[28,28],anchor:[14,28],sizeActive:[70,70],anchorActive:[35,70],url:l.getSVGDataImg(z.default.createElement(e.LocationPin,null))},i={size:[24,24],anchor:[12,12],sizeActive:[24,24],anchorActive:[12,12],url:l.getSVGDataImg(z.default.createElement(e.CurrentLocation,{iconColor:"#5383EC"}))},r=(null===(n=null==Y?void 0:Y.filter((function(e){return void 0!==e.id})))||void 0===n?void 0:n.map((function(e){return{id:e.id,position:e.position,icon:e.icon||t,isInteractive:!0}})))||[];return oe&&(null==ce?void 0:ce.coords.latitude)&&(null==ce?void 0:ce.coords.longitude)&&r.push({id:"my-current-position-123456789",position:[ce.coords.latitude,ce.coords.longitude],icon:P||i}),r}),[P,oe,null==ce?void 0:ce.coords.latitude,null==ce?void 0:ce.coords.longitude,Y]),pe=g.useLeafletMap({url:u,attribution:f,center:b,zoom:y,activeMarkerId:R,markers:ue,fitBoundsPadding:w,restrictToMarkersArea:F,showZoomControls:!0,zoomControlPosition:"bottomleft",onMarkerClick:function(e){D((function(n){return n===e?"":e}))}}),me=pe.isLoaded,fe=pe.setContainer,ge=pe.flyToActive,he=pe.showAllMarkers,ve=pe.flyToPosition,be=pe.getCurrentZoom;n.useEffect((function(){if(me&&!H)I&&he();else{var e=be(),n=j;void 0!==j&&e>j&&(n=e),ge(n)}}),[R,I,ge,j,be,d,H,me,he]),n.useEffect((function(){H||R===d||U(!0)}),[R,d,H]);var xe=B.sections.poiFilterName,ye=B.sections.poiFactFilterName;return n.useEffect((function(){J.textFilter?m.setUrlParam(xe,J.textFilter):m.deleteUrlParam(xe),p.isValidArray(J.categoryFilter,!1)?m.setUrlParam(ye,J.categoryFilter.join(",")):m.deleteUrlParam(ye)}),[xe,ye,J.textFilter,J.categoryFilter]),n.useEffect((function(){D(""),U(!1)}),[J]),z.default.createElement($,{anchorId:i,bgColor:"image",bgMode:"full",isLarge:N},z.default.createElement(r.Wrapper,{clampWidth:N?"large":"normal"},z.default.createElement(ee,null,z.default.createElement(ne,{ref:fe,isLarge:"large"===a}),(k||q)&&z.default.createElement(le,null,k&&z.default.createElement(te,{onClick:function(){return e.__awaiter(void 0,void 0,void 0,(function(){var n,t,i,r;return e.__generator(this,(function(e){switch(e.label){case 0:return(null===(i=null==ce?void 0:ce.coords)||void 0===i?void 0:i.latitude)&&(null===(r=null==ce?void 0:ce.coords)||void 0===r?void 0:r.longitude)?(n=be(),t=j,void 0!==j&&n>j&&(t=n),ve([ce.coords.latitude,ce.coords.longitude],t),[3,4]):[3,1];case 1:return e.trys.push([1,3,,4]),[4,de()];case 2:return e.sent()&&he(),[3,4];case 3:return e.sent(),[3,4];case 4:return[2]}}))}))}},M||z.default.createElement(e.MyLocation,{iconColor:A.text.default})),q?T?T({filters:J,setFilters:K,pois:o||[],settings:q}):z.default.createElement(Z,{value:J,onChange:K,textFilter:(null==q?void 0:q.textFilter)||void 0,categoryFilter:(null==q?void 0:q.categoryFilter)?e.__assign(e.__assign({},q.categoryFilter),{items:null==X?void 0:X.map((function(e){return{value:e,label:e}||[]}))}):void 0,mobileSubmitLabel:null==q?void 0:q.mobileSubmitLabel,closeIcon:null==q?void 0:q.closeIcon,toggleLabel:null==q?void 0:q.toggleLabel,filterIcon:null==q?void 0:q.filterIcon,indicator:null==q?void 0:q.indicator}):null),re&&re.name&&z.default.createElement(ie,{onClick:function(e){e.target===e.currentTarget&&D("")}},z.default.createElement(se,e.__assign({},re,{onClose:function(){return D("")},customFact:E,customClose:L}))))))}));exports.PoiPartials=Q,exports.PointOfInterestDetail=G,exports.PointOfInterestMap=ce,exports.PointOfInterestOverview=Y;
|
|
2
2
|
//# sourceMappingURL=sections.pois.js.map
|