@blateral/b.kit 2.7.5 → 2.8.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-c52a14e4.js +2 -0
- package/cjs/{Actions-c7b16449.js.map → Actions-c52a14e4.js.map} +1 -1
- package/cjs/Bdot-62c8e349.js +2 -0
- package/cjs/{Bdot-5f8e0450.js.map → Bdot-62c8e349.js.map} +1 -1
- package/cjs/Button-1adf99b8.js +2 -0
- package/cjs/{Button-51ea72b7.js.map → Button-1adf99b8.js.map} +1 -1
- package/cjs/ButtonGhost-fbab8769.js +2 -0
- package/cjs/{ButtonGhost-628bbd60.js.map → ButtonGhost-fbab8769.js.map} +1 -1
- package/cjs/Callout-d84ca60b.js +2 -0
- package/cjs/{Callout-5dd16679.js.map → Callout-d84ca60b.js.map} +1 -1
- package/cjs/Checkbox-8dccd42f.js +2 -0
- package/cjs/Checkbox-8dccd42f.js.map +1 -0
- package/cjs/Control-e15e1572.js +2 -0
- package/cjs/{Control-08d09950.js.map → Control-e15e1572.js.map} +1 -1
- package/cjs/Copy-a0bc570d.js +2 -0
- package/cjs/{Copy-ea6ab025.js.map → Copy-a0bc570d.js.map} +1 -1
- package/cjs/EventBlock-4e406696.js +2 -0
- package/cjs/{EventBlock-04e719a7.js.map → EventBlock-4e406696.js.map} +1 -1
- package/cjs/Filter-89286db9.js +2 -0
- package/cjs/Filter-89286db9.js.map +1 -0
- package/cjs/FilterBar-0781490f.js +2 -0
- package/cjs/FilterBar-0781490f.js.map +1 -0
- package/cjs/FilterField-7efcacb7.js +2 -0
- package/cjs/FilterField-7efcacb7.js.map +1 -0
- package/cjs/Grid-1acefee9.js +2 -0
- package/cjs/{Grid-6f4f99bc.js.map → Grid-1acefee9.js.map} +1 -1
- package/cjs/Image-94820dfd.js +2 -0
- package/cjs/{Image-c72f7a80.js.map → Image-94820dfd.js.map} +1 -1
- package/cjs/InfoList-e416058c.js +2 -0
- package/cjs/{InfoList-71d3388a.js.map → InfoList-e416058c.js.map} +1 -1
- package/cjs/LanguageSwitcher-aa96cc7d.js +2 -0
- package/cjs/{LanguageSwitcher-8fdd22ba.js.map → LanguageSwitcher-aa96cc7d.js.map} +1 -1
- package/cjs/LibThemeProvider-69109901.js +2 -0
- package/cjs/{LibThemeProvider-4823de57.js.map → LibThemeProvider-69109901.js.map} +1 -1
- package/cjs/Link-8951180c.js +2 -0
- package/cjs/{Link-5a6f1633.js.map → Link-8951180c.js.map} +1 -1
- package/cjs/MultiselectDropdown-a16ea1c9.js +2 -0
- package/cjs/MultiselectDropdown-a16ea1c9.js.map +1 -0
- package/cjs/Navigation-6abb6213.js +2 -0
- package/cjs/{Navigation-939e4d0e.js.map → Navigation-6abb6213.js.map} +1 -1
- package/cjs/Pointer-331140b6.js +2 -0
- package/cjs/{Pointer-fde7b548.js.map → Pointer-331140b6.js.map} +1 -1
- package/cjs/Section-c9a16ccc.js +2 -0
- package/cjs/{Section-e8e8cf81.js.map → Section-c9a16ccc.js.map} +1 -1
- package/cjs/SocialList-aec9a5c2.js +2 -0
- package/cjs/{SocialList-1d5f75a8.js.map → SocialList-aec9a5c2.js.map} +1 -1
- package/cjs/TableBlock-c545ca8d.js +2 -0
- package/cjs/{TableBlock-f2c59d9b.js.map → TableBlock-c545ca8d.js.map} +1 -1
- package/cjs/Tag-937849ad.js +2 -0
- package/cjs/{Tag-9238cf0c.js.map → Tag-937849ad.js.map} +1 -1
- package/cjs/Textarea-599e94a4.js +2 -0
- package/cjs/{Textarea-03bd2c34.js.map → Textarea-599e94a4.js.map} +1 -1
- package/cjs/Textfield-24f468be.js +2 -0
- package/cjs/Textfield-24f468be.js.map +1 -0
- package/cjs/VideoBlock-1fbf598b.js +2 -0
- package/cjs/{VideoBlock-dea7de8a.js.map → VideoBlock-1fbf598b.js.map} +1 -1
- package/cjs/VideoCard-905c08d2.js +2 -0
- package/cjs/{VideoCard-f6c436ca.js.map → VideoCard-905c08d2.js.map} +1 -1
- package/cjs/Wrapper-bca9463e.js +2 -0
- package/cjs/{Wrapper-ff6854d7.js.map → Wrapper-bca9463e.js.map} +1 -1
- package/cjs/base.js +1 -1
- package/cjs/blocks.js +1 -1
- package/cjs/buttons.js +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-046fcbf4.js +2 -0
- package/cjs/formFieldText-046fcbf4.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-3f9d4ac4.js +2 -0
- package/cjs/{navigation-bf154e6e.js.map → navigation-3f9d4ac4.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/styles-13e5d9ac.js +2 -0
- package/cjs/styles-13e5d9ac.js.map +1 -0
- package/cjs/typography.js +1 -1
- package/cjs/useCookieConsent-665d91cf.js +2 -0
- package/cjs/{useCookieConsent-aa9f1104.js.map → useCookieConsent-665d91cf.js.map} +1 -1
- package/cjs/useEqualSheetHeight-f1c10ec5.js +2 -0
- package/cjs/{useEqualSheetHeight-501f4c5f.js.map → useEqualSheetHeight-f1c10ec5.js.map} +1 -1
- package/cjs/useLazyInput-911b8eda.js +2 -0
- package/cjs/{useLazyInput-f71c221b.js.map → useLazyInput-911b8eda.js.map} +1 -1
- package/cjs/useLeafletMap-514304b6.js +2 -0
- package/cjs/{useLeafletMap-2e608b01.js.map → useLeafletMap-514304b6.js.map} +1 -1
- package/cjs/useMediaQuery-619d7203.js +2 -0
- package/cjs/{useMediaQuery-3d1054e5.js.map → useMediaQuery-619d7203.js.map} +1 -1
- package/cjs/useScroll-2f086e7f.js +2 -0
- package/cjs/useScroll-2f086e7f.js.map +1 -0
- package/esm/{Actions-21372b3a.js → Actions-e29b5e75.js} +3 -3
- package/esm/{Actions-21372b3a.js.map → Actions-e29b5e75.js.map} +1 -1
- package/esm/{Bdot-4db38753.js → Bdot-5e798e7e.js} +3 -3
- package/esm/{Bdot-4db38753.js.map → Bdot-5e798e7e.js.map} +1 -1
- package/esm/{Button-f9279013.js → Button-9a0dd9aa.js} +3 -3
- package/esm/{Button-f9279013.js.map → Button-9a0dd9aa.js.map} +1 -1
- package/esm/{ButtonGhost-ae2e97a2.js → ButtonGhost-fc9e7a75.js} +3 -3
- package/esm/{ButtonGhost-ae2e97a2.js.map → ButtonGhost-fc9e7a75.js.map} +1 -1
- package/esm/{Callout-a926194d.js → Callout-46f0bef0.js} +4 -4
- package/esm/{Callout-a926194d.js.map → Callout-46f0bef0.js.map} +1 -1
- package/esm/{Checkbox-dd12facd.js → Checkbox-1957067a.js} +11 -8
- package/esm/Checkbox-1957067a.js.map +1 -0
- package/esm/{Control-2d605e12.js → Control-56ec7872.js} +3 -3
- package/esm/{Control-2d605e12.js.map → Control-56ec7872.js.map} +1 -1
- package/esm/{Copy-a28aeb61.js → Copy-c6786949.js} +4 -4
- package/esm/{Copy-a28aeb61.js.map → Copy-c6786949.js.map} +1 -1
- package/esm/{EventBlock-b9204a0d.js → EventBlock-8e130f6b.js} +8 -8
- package/esm/{EventBlock-b9204a0d.js.map → EventBlock-8e130f6b.js.map} +1 -1
- package/esm/{ClockFilled-62515a8f.js → Filter-19220970.js} +321 -235
- package/esm/Filter-19220970.js.map +1 -0
- package/esm/FilterBar-2a2a09b7.js +460 -0
- package/esm/FilterBar-2a2a09b7.js.map +1 -0
- package/esm/FilterField-bec061bc.js +115 -0
- package/esm/FilterField-bec061bc.js.map +1 -0
- package/esm/{Grid-5eec127f.js → Grid-7b33e271.js} +3 -3
- package/esm/{Grid-5eec127f.js.map → Grid-7b33e271.js.map} +1 -1
- package/esm/{Image-dc2b33c1.js → Image-b26692a9.js} +5 -5
- package/esm/{Image-dc2b33c1.js.map → Image-b26692a9.js.map} +1 -1
- package/esm/{InfoList-5c4586ed.js → InfoList-b6980a42.js} +4 -4
- package/esm/{InfoList-5c4586ed.js.map → InfoList-b6980a42.js.map} +1 -1
- package/esm/{LanguageSwitcher-3fa20077.js → LanguageSwitcher-f9218fdc.js} +5 -5
- package/esm/{LanguageSwitcher-3fa20077.js.map → LanguageSwitcher-f9218fdc.js.map} +1 -1
- package/esm/{LibThemeProvider-52555ac9.js → LibThemeProvider-fb1d35ac.js} +3 -3
- package/esm/{LibThemeProvider-52555ac9.js.map → LibThemeProvider-fb1d35ac.js.map} +1 -1
- package/esm/{Link-3fd9c9b8.js → Link-6067a27f.js} +3 -3
- package/esm/{Link-3fd9c9b8.js.map → Link-6067a27f.js.map} +1 -1
- package/esm/MultiselectDropdown-a97be6bc.js +296 -0
- package/esm/MultiselectDropdown-a97be6bc.js.map +1 -0
- package/esm/{Navigation-99f6dc41.js → Navigation-bb79a1eb.js} +10 -10
- package/esm/{Navigation-99f6dc41.js.map → Navigation-bb79a1eb.js.map} +1 -1
- package/esm/{Pointer-5c77b1f1.js → Pointer-b4abee91.js} +3 -3
- package/esm/{Pointer-5c77b1f1.js.map → Pointer-b4abee91.js.map} +1 -1
- package/esm/{Section-b76e6909.js → Section-bd61eb2f.js} +3 -3
- package/esm/{Section-b76e6909.js.map → Section-bd61eb2f.js.map} +1 -1
- package/esm/{SocialList-402b8f20.js → SocialList-336b7f6d.js} +5 -5
- package/esm/{SocialList-402b8f20.js.map → SocialList-336b7f6d.js.map} +1 -1
- package/esm/{TableBlock-67fe2385.js → TableBlock-1ddfd539.js} +5 -5
- package/esm/{TableBlock-67fe2385.js.map → TableBlock-1ddfd539.js.map} +1 -1
- package/esm/{Tag-ac51e916.js → Tag-c3bd6b7f.js} +5 -5
- package/esm/{Tag-ac51e916.js.map → Tag-c3bd6b7f.js.map} +1 -1
- package/esm/{Textarea-266f1e45.js → Textarea-95352f50.js} +10 -10
- package/esm/{Textarea-266f1e45.js.map → Textarea-95352f50.js.map} +1 -1
- package/esm/{Textfield-d2f201a9.js → Textfield-99d91b4e.js} +10 -97
- package/esm/Textfield-99d91b4e.js.map +1 -0
- package/esm/{VideoBlock-b227ae6e.js → VideoBlock-474e0aa4.js} +7 -7
- package/esm/{VideoBlock-b227ae6e.js.map → VideoBlock-474e0aa4.js.map} +1 -1
- package/esm/{VideoCard-2c6e26d1.js → VideoCard-91438667.js} +7 -7
- package/esm/{VideoCard-2c6e26d1.js.map → VideoCard-91438667.js.map} +1 -1
- package/esm/{Wrapper-90dccc89.js → Wrapper-95108115.js} +3 -3
- package/esm/{Wrapper-90dccc89.js.map → Wrapper-95108115.js.map} +1 -1
- package/esm/base.js +5 -5
- package/esm/blocks.js +25 -16
- package/esm/blocks.js.map +1 -1
- package/esm/buttons.js +6 -6
- package/esm/cookies.js +7 -7
- package/esm/fields.js +14 -12
- package/esm/fields.js.map +1 -1
- package/esm/footer.js +11 -11
- package/esm/formFieldText-f4188e55.js +96 -0
- package/esm/formFieldText-f4188e55.js.map +1 -0
- package/esm/headers.js +12 -12
- package/esm/hooks.js +12 -83
- package/esm/hooks.js.map +1 -1
- package/esm/icons.js +5 -2
- package/esm/icons.js.map +1 -1
- package/esm/index.js +3 -3
- package/esm/{navigation-b89325f8.js → navigation-5216dbad.js} +2 -2
- package/esm/{navigation-b89325f8.js.map → navigation-5216dbad.js.map} +1 -1
- package/esm/navigation.js +12 -12
- package/esm/sections.dynamicform.js +15 -14
- package/esm/sections.dynamicform.js.map +1 -1
- package/esm/sections.events.js +13 -14
- package/esm/sections.events.js.map +1 -1
- package/esm/sections.forms.js +10 -9
- package/esm/sections.forms.js.map +1 -1
- package/esm/sections.jobs.js +12 -12
- package/esm/sections.js +28 -25
- package/esm/sections.js.map +1 -1
- package/esm/sections.news.js +17 -18
- package/esm/sections.news.js.map +1 -1
- package/esm/sections.pois.js +318 -143
- package/esm/sections.pois.js.map +1 -1
- package/esm/{styles-da982973.js → styles-1f1841ef.js} +4 -3
- package/esm/styles-1f1841ef.js.map +1 -0
- package/esm/typography.js +6 -6
- package/esm/{useCookieConsent-6b2d4d93.js → useCookieConsent-6661d419.js} +49 -49
- package/esm/useCookieConsent-6661d419.js.map +1 -0
- package/esm/{useEqualSheetHeight-97420d63.js → useEqualSheetHeight-60ff9de7.js} +4 -4
- package/esm/{useEqualSheetHeight-97420d63.js.map → useEqualSheetHeight-60ff9de7.js.map} +1 -1
- package/esm/{useLazyInput-54d1785c.js → useLazyInput-0b6932aa.js} +2 -2
- package/esm/{useLazyInput-54d1785c.js.map → useLazyInput-0b6932aa.js.map} +1 -1
- package/esm/{useLeafletMap-84170d32.js → useLeafletMap-fa0ab7d4.js} +10 -6
- package/esm/useLeafletMap-fa0ab7d4.js.map +1 -0
- package/esm/{useMediaQuery-b42fd64e.js → useMediaQuery-4c1b1fa6.js} +3 -3
- package/esm/{useMediaQuery-b42fd64e.js.map → useMediaQuery-4c1b1fa6.js.map} +1 -1
- package/esm/useScroll-881c7b04.js +76 -0
- package/esm/useScroll-881c7b04.js.map +1 -0
- package/package.json +2 -1
- package/types/blocks.d.ts +1 -0
- package/types/blocks.d.ts.map +1 -1
- package/types/components/base/icons/Cross.d.ts +2 -0
- package/types/components/base/icons/Cross.d.ts.map +1 -1
- package/types/components/base/icons/CrossBubble.d.ts +8 -0
- package/types/components/base/icons/CrossBubble.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/base/icons/Magnifier.d.ts +2 -0
- package/types/components/base/icons/Magnifier.d.ts.map +1 -1
- package/types/components/blocks/FilterBar.d.ts +38 -0
- package/types/components/blocks/FilterBar.d.ts.map +1 -0
- package/types/components/blocks/POICard.d.ts.map +1 -1
- package/types/components/blocks/Portal.d.ts +8 -0
- package/types/components/blocks/Portal.d.ts.map +1 -0
- package/types/components/fields/Checkbox.d.ts +3 -1
- package/types/components/fields/Checkbox.d.ts.map +1 -1
- package/types/components/fields/FilterField.d.ts +1 -0
- package/types/components/fields/FilterField.d.ts.map +1 -1
- package/types/components/fields/MultiselectDropdown.d.ts +42 -0
- package/types/components/fields/MultiselectDropdown.d.ts.map +1 -0
- package/types/components/sections/Accordion.d.ts.map +1 -1
- package/types/components/sections/pois/PointOfInterestMap.d.ts +42 -1
- package/types/components/sections/pois/PointOfInterestMap.d.ts.map +1 -1
- package/types/components/sections/pois/PointOfInterestOverview.d.ts +41 -20
- package/types/components/sections/pois/PointOfInterestOverview.d.ts.map +1 -1
- package/types/components/sections/pois/filters.d.ts +10 -0
- package/types/components/sections/pois/filters.d.ts.map +1 -0
- package/types/components/sections/pois/partials/PoiFilterBar.d.ts +8 -0
- package/types/components/sections/pois/partials/PoiFilterBar.d.ts.map +1 -0
- package/types/components/sections/pois/partials/index.d.ts +3 -0
- package/types/components/sections/pois/partials/index.d.ts.map +1 -0
- package/types/fields.d.ts +1 -0
- package/types/fields.d.ts.map +1 -1
- package/types/sections.pois.d.ts +1 -0
- package/types/sections.pois.d.ts.map +1 -1
- package/types/utils/styles.d.ts +1 -0
- package/types/utils/styles.d.ts.map +1 -1
- package/types/utils/useLeafletMap.d.ts.map +1 -1
- package/cjs/Actions-c7b16449.js +0 -2
- package/cjs/Bdot-5f8e0450.js +0 -2
- package/cjs/Button-51ea72b7.js +0 -2
- package/cjs/ButtonGhost-628bbd60.js +0 -2
- package/cjs/Callout-5dd16679.js +0 -2
- package/cjs/Checkbox-1c34c7e6.js +0 -2
- package/cjs/Checkbox-1c34c7e6.js.map +0 -1
- package/cjs/ClockFilled-2483aa4a.js +0 -2
- package/cjs/ClockFilled-2483aa4a.js.map +0 -1
- package/cjs/Control-08d09950.js +0 -2
- package/cjs/Copy-ea6ab025.js +0 -2
- package/cjs/EventBlock-04e719a7.js +0 -2
- package/cjs/Filter-d6d90b8b.js +0 -2
- package/cjs/Filter-d6d90b8b.js.map +0 -1
- package/cjs/FilterField-cce38ffb.js +0 -2
- package/cjs/FilterField-cce38ffb.js.map +0 -1
- package/cjs/Grid-6f4f99bc.js +0 -2
- package/cjs/Image-c72f7a80.js +0 -2
- package/cjs/InfoList-71d3388a.js +0 -2
- package/cjs/LanguageSwitcher-8fdd22ba.js +0 -2
- package/cjs/LibThemeProvider-4823de57.js +0 -2
- package/cjs/Link-5a6f1633.js +0 -2
- package/cjs/Navigation-939e4d0e.js +0 -2
- package/cjs/POICard-e46f9041.js +0 -2
- package/cjs/POICard-e46f9041.js.map +0 -1
- package/cjs/Pointer-fde7b548.js +0 -2
- package/cjs/Section-e8e8cf81.js +0 -2
- package/cjs/SocialList-1d5f75a8.js +0 -2
- package/cjs/TableBlock-f2c59d9b.js +0 -2
- package/cjs/Tag-9238cf0c.js +0 -2
- package/cjs/Textarea-03bd2c34.js +0 -2
- package/cjs/Textfield-56996c98.js +0 -2
- package/cjs/Textfield-56996c98.js.map +0 -1
- package/cjs/VideoBlock-dea7de8a.js +0 -2
- package/cjs/VideoCard-f6c436ca.js +0 -2
- package/cjs/Wrapper-ff6854d7.js +0 -2
- package/cjs/navigation-bf154e6e.js +0 -2
- package/cjs/styles-3a495a2d.js +0 -2
- package/cjs/styles-3a495a2d.js.map +0 -1
- package/cjs/useCookieConsent-aa9f1104.js +0 -2
- package/cjs/useEqualSheetHeight-501f4c5f.js +0 -2
- package/cjs/useLazyInput-f71c221b.js +0 -2
- package/cjs/useLeafletMap-2e608b01.js +0 -2
- package/cjs/useMediaQuery-3d1054e5.js +0 -2
- package/esm/Checkbox-dd12facd.js.map +0 -1
- package/esm/ClockFilled-62515a8f.js.map +0 -1
- package/esm/Filter-2b5f5e53.js +0 -32
- package/esm/Filter-2b5f5e53.js.map +0 -1
- package/esm/FilterField-962ec61f.js +0 -129
- package/esm/FilterField-962ec61f.js.map +0 -1
- package/esm/POICard-96ec71d8.js +0 -116
- package/esm/POICard-96ec71d8.js.map +0 -1
- package/esm/Textfield-d2f201a9.js.map +0 -1
- package/esm/styles-da982973.js.map +0 -1
- package/esm/useCookieConsent-6b2d4d93.js.map +0 -1
- package/esm/useLeafletMap-84170d32.js.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 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":"2vCAUMA,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,OAkE9BC,EAAeC,EAAYA,cAnDtB,SAACxB,OAAEyB,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,QAAAM,cAACxB,EAAM,CAAC6B,IAAKhB,EAAOgB,IAAKC,IAAKjB,EAAOiB,MAEzCZ,EAAAA,QAAAM,cAACrB,EAAM,KACFS,GACGM,EAAAA,QAAAM,cAACnB,EAAU,CACPlB,WAAYA,EACZ4C,KAAK,UAEJpB,GAAS,cAGlBO,EAAAA,QAAAM,cAACQ,EAAAA,QAAO,CACJ7C,WAAYA,EACZ8C,KAAK,aAEJrB,MAMrBM,EAAAA,QAACM,cAAA9C,GAAUS,WAAYA,SC9FjC+C,EAAOvD,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAUK,IAAAA,EAAAC,uBAAA,CAAA,4FAAA,CAAA,+FAOjBkD,EAAYxD,EAAM,QAACyD,QAAVvD,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAGJ,CAAYkB,IAAAA,EAAAZ,uBAAA,CAAA,6CAAA,CAAA,gDAKxBoD,EAAc1D,EAAM,QAAC2D,SAAVzD,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAauB,IAAAA,EAAAjB,EAAAA,qBAAA,CAAA,+CAAA,OAAA,CAAA,+CAEoC,UAAhD,SAACC,GAAE,IAAAE,EAAKF,EAAAE,MAAO,OAAAmD,aAAOnD,GAAOoD,SAASC,cAGrDC,EAAoB/D,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAGJ,CAA+ByB,IAAAA,EAAAnB,EAAAA,qBAAA,CAAA,wCAAA,OAAA,CAAA,wCAKN,UAHzC,SAACC,OAAEE,EAAKF,EAAAE,MACN,OADaF,EAAA+B,MAEP0B,EAAAA,UAAUvD,GAAOE,UAAUC,MAC3BoD,EAAAA,UAAUvD,GAAOE,UAAUS,UAGvC6C,EAAYjE,EAAM,QAACyD,QAAVvD,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAGJ,CAAY4B,IAAAA,EAAAtB,EAAAA,qBAAA,CAAA,qCAAA,kBAAA,mCAAA,CAAA,qCAEE,kBAKa,qCALvC4D,EAAAA,UAAU,SAAU,QAEb,SAAC3D,OAAEE,EAAKF,EAAAE,MACbD,OADyBD,EAAAC,WAEnB2D,EAAIC,SAAC3D,GAAO,UAAU4D,IAAIC,cAC1BH,EAAAA,SAAK1D,GAAO,UAAU4D,IAAI3D,SAIlC6D,GAAOvE,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAUwE,IAAAA,EAAAlE,EAAAA,qBAAA,CAAA,qKAAA,kEAAA,uDAAA,gBAAA,CAAA,qKAQiB,kEAIG,uDAIF,kBARF,EAAjBS,WAASc,MAIW,EAAjBd,EAAAA,SAASc,MAIM,EAAjBd,EAAAA,SAASc,OAI1B4C,GAAOzE,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAU0E,IAAAA,EAAApE,EAAAA,qBAAA,CAAA,wNAAA,gBAAA,CAAA,wNAYc,kBAAdS,EAAQA,SAACc,OAI1B8C,GAAc3E,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAY4E,IAAAA,EAAAtE,uBAAA,CAAA,6DAAA,CAAA,gEAM1BuE,GAAO7E,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,iHAAU,iEAIiB,kBAAD,EAAjBe,EAAQA,SAACc,OAIzBiD,GAAO9E,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAY+E,IAAAA,EAAAzE,uBAAA,CAAA,0YAAA,CAAA,6YAuBnB0E,GAAShF,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,mBAAAC,YAAA,gBAAGJ,8DAAU,qBACW,WAAD,EAAjBe,EAAQA,SAACc,OA4CrBoD,GAAWC,EAAUA,YAMvB,SACI3E,EAcA4E,GAbI,IAAAC,EAAI7E,EAAA6E,KACJC,EAAU9E,EAAA8E,WACVC,EAAW/E,EAAA+E,YACXC,EAAKhF,EAAAgF,MACLC,EAAIjF,EAAAiF,KACJC,EAAKlF,EAAAkF,MACLC,EAAInF,EAAAmF,KACJlF,EAAUD,EAAAC,WACVmF,EAAMpF,EAAAoF,OACNC,cACAC,EAAStF,EAAAsF,UACTvD,EAAK/B,EAAA+B,MAIDwD,EAAYzD,wBAEhB0D,EAAc,GACdT,IAQAS,EAPkB,IAAIC,EAAAA,gBAClBV,EAAYW,UACZ,GACAH,EAAQjC,SAASqC,eAAeZ,GAChCQ,EAAQjC,SAASsC,eAAeb,GAChCQ,EAAQjC,SAASuC,eAEGC,oBAG5B,IAAMC,EAAiB,SAACC,GACpB,OAAAlB,EACM,SAACmB,GACGA,MAAAA,GAAAA,EAAIC,iBACJpB,EAAWkB,SAEfG,GAEJC,EAAeC,EAAAA,SAAQ,WACzB,OAAOxB,MAAAA,SAAAA,EAAMyB,QAAO,SAACN,GAAQA,OAAAA,EAAIO,UAClC,CAAC1B,IAEJ,OACI7C,EAAC,QAAAM,cAAAU,EAAK,CAAA4B,IAAKA,EAAKU,UAAWA,IACtBJ,MAAAA,SAAAA,EAAOsB,OACJxE,wBAACiB,EAASwD,EAAAA,SAAA,GAAKtB,EAAM,CAAAuB,UAAW1B,IAC5BhD,EAAC,QAAAM,cAAAa,gBACO+B,EAAK,CACTyB,YACA,EAAA1G,WAAYA,MAIpB+B,UAACM,cAAAkB,GAAkBzB,MAAOA,IAE9BC,EAAAA,QAACM,cAAA0B,IAAgB,aAAA,QACZ4C,EAAYA,aAACR,GAAc,IACxBpE,EAAA,QAAAM,cAAC4B,GAAI,KACAkC,EAAaS,KAAI,SAACb,EAAKc,GACpB,OAAIzB,EACOA,EAAU,CACb0B,IAAKD,EACLP,KAAMP,EAAIO,MAAQ,GAClBtG,WAAYA,EACZ+G,UAAU,EACV7B,KAAMa,EAAIb,KACV8B,aAAclB,EAAeC,KAI7BhE,EAAA,QAAAM,cAAC4E,MAAG,CACAH,IAAKD,EACL7G,WAAYA,EACZsG,KAAMP,EAAIO,KACVpB,KAAMa,EAAIb,KACVgC,QAASpB,EAAeC,SAO/CR,GACGxD,UAACM,cAAA8B,IACGrB,KAAK,QACLqE,SAAS,MACTnH,WAAYA,GAEXuF,IAIbxD,EAAA,QAAAM,cAACgC,GAAI,KACAU,GACGhD,EAAAA,QAACM,cAAAoB,gBACOyB,EAAI,CACRuB,UAAW1B,EACX/E,WAAYA,EACZoH,UAAU,UAETrC,GAGRC,GACGjD,EAAAA,QAAAM,cAACiC,GAAI,CACDtE,WAAYA,EACZ4C,KAAK,OACLyE,UAAWrC,EAAI,aACJ,OACXlC,KAAK,YAIhBqC,GAAUpD,EAAAA,QAACM,cAAAmC,GAAQ,KAAAW,EAAOnF,QAM3CyE,GAAS9E,YAAc,WC7QvB,gEAAM2H,GAAe9H,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,OAI5BkG,GAAa/H,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,OAGvBmG,GAAOhI,EAAAA,QAAOiI,GAAV/H,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,QAWvBkH,GAAWlI,EAAAA,QAAOmI,GAAVjI,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,GAACiH,OAMVC,GAAarI,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,QAKVkH,GAAWtI,EAAAA,QAAOuI,KAAVrI,WAAA,CAAAC,YAAA,yBAAAC,YAAA,cAAGJ,CAAmCwE,KAAAA,GAAAlE,EAAAA,qBAAA,CAAA,kBAAA,OAAA,CAAA,kBAEC,UADtC,SAACC,GAAE,IAAAiI,EAASjI,EAAAiI,UACnBA,OAAAA,GAAaA,EAAY,EAAI,QAAU,UAGzCC,GAAazI,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,2BAAAC,YAAA,cAAGJ,CAAY0E,KAAAA,GAAApE,EAAAA,qBAAA,CAAA,4FAAA,MAAA,oDAAA,gBAAA,CAAA,4FAKE,MAAoB,oDAGhB,kBAHtBS,EAAAA,SAASc,MAAQ,EAAOd,EAAAA,SAASc,MAGzBd,WAASc,OAInB6G,GAAsB,SAC/BC,EACAlI,EACA2E,GAEA,QAFA,IAAAA,IAAAA,EAAmB,KAEduD,EAAK,MAAO,GACb,IAACxB,EAAAA,aAAa/B,GAAM,GAAQ,OAAOuD,EAEjCC,IAAAA,EAAanI,EAAMqF,QAAQjC,SAASgF,eAC1C,IAAKD,EAAY,OAAOD,EAEpB,IACA,IAAMG,EAAW,IAAIC,IAAIJ,GACnBK,EAAY,IAAIC,gBAAgBH,EAASI,QAG/C,OAFAF,EAAUG,IAAIP,EAAYQ,mBAAmBhE,EAAKiE,KAAK,OAEhD,GAAAC,OAAGX,EAAO,KAAAW,OAAAN,EAAUO,YAC7B,MAAOC,GACE,MAAA,GAAGF,OAAAX,EAAO,KAAAW,OAAAV,cAAcQ,mBAAmBhE,EAAKiE,KAAK,SAyZpEI,GAAe1H,EAAYA,cA1WtB,SAACxB,OACFmJ,EAAQnJ,EAAAmJ,SACRC,EAAIpJ,EAAAoJ,KACJvE,EAAI7E,EAAA6E,KACJwE,EAAOrJ,EAAAqJ,QACPC,EAAYtJ,EAAAsJ,aACZ1H,EAAM5B,EAAA4B,OAENkD,EAAU9E,EAAA8E,WACVO,EAASrF,EAAAqF,UAEHkE,EAAsBzH,EAAAA,cAApBD,EAAM0H,EAAA1H,OACRwG,EADiBkB,EAAAhE,QACIjC,SAASgF,eAE9BrI,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAER4H,EAAkCC,EAAAA,UACpCJ,MAAAA,SAAAA,EAASK,aAAc,IADpBC,OAAcC,OAKfC,EAAYC,gBADY,CAAC,QAAS,YAAa,UAE/CC,EAAgCN,EAAQA,SAAC,GAAxCO,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAgCT,EAAAA,UAASJ,MAAAA,SAAAA,EAASc,cAAe,GAAhEA,OAAaC,OACdC,EAAYC,EAAAA,aAEZC,EAAYC,SAAuB,MACnCC,EAAoBC,EAAAA,qBAEpBC,GAAYvB,MAAAA,OAAA,EAAAA,EAAMwB,SAAU,EAE5BC,EAAYC,cAAY,KACxBC,EACFC,EAAAA,oBAAoC,CAChCC,WAAYC,KAAKC,IAAIhB,EAAcH,EAAaW,GAChDS,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACR7E,MAAO,EACP3F,OAAQ,EACRyK,UAAW,EACXzD,MAAO,EACP0D,OAAQ,KAbDC,EAAQT,EAAAU,UAAEC,uBAiBvBC,EAAaC,EAAAA,aAAY,WACrB/G,IAAAA,EAAiB,GAEjBgH,EAAUC,EAAAA,eAAezD,GAC/B,GAAIwD,EAAS,CACT,IAAME,EAAaF,MAAAA,OAAO,EAAPA,EAASG,MAAM,KAC9BpF,EAAYA,aAACmF,GAAY,IACzBlH,EAAKoH,KAAIC,MAATrH,EAAakH,GAGrB,OAAOlH,IACR,CAACwD,IAEJ8D,EAAAA,WAAU,WAEF9C,IAAAA,EAAAA,CAGE+C,IAAAA,EAAYT,IACZU,EAAYC,SAASR,EAAYA,eAAA,MAEvC1B,EAAeiC,GAAa,GAExBzF,EAAYA,aAACwF,GAAW,IACxBxC,EAAgBwC,GAIpBV,OAGD,CAACC,EAAYtC,IAEhB8C,EAAAA,WAAU,iBACD9C,IAAWgB,IAGhBkC,EAAAA,YAAY,QAAQlD,MAAAA,OAAA,EAAAA,EAASc,cAAe,GAExCvD,eAAayC,MAAAA,OAAO,EAAPA,EAASK,YAAY,GAClC6C,cAAYlE,EAAiC,QAArBrI,EAAAqJ,MAAAA,OAAO,EAAPA,EAASK,kBAAY,IAAA1J,OAAA,EAAAA,EAAA8I,KAAK,MAElD0D,EAAcA,eAACnE,MAEpB,CAACA,EAAYgB,EAASgB,IAEzBoC,EAAAA,iBAAgB,WACZF,cAAY,OAAQpC,KACrB,CAACA,IAEJsC,EAAAA,iBAAgB,YACR3H,GAAe8B,eAAa+C,KAG5BA,EAAaiB,OAAS,EACtB2B,EAAAA,YAAYlE,EAAYsB,EAAab,KAAK,MAE1C0D,EAAcA,eAACnE,MAEpB,CAACsB,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,IAAMpE,EAAiB,SAACC,EAAe0G,QAAA,IAAAA,IAAAA,GAAqB,GACxD9C,GAAgB,SAAC+C,GACPC,IAAAA,EAAQC,EAAAA,cAAA,GAAOF,GAAI,GACnBG,EAAY9G,EAAIO,KAAOoG,EAAKI,QAAQ/G,EAAIO,OAAS,EAEnDuG,OAAe,IAAfA,GAAoB9G,EAAIO,KACxBsG,gBAAAA,EAAAA,cAAA,GAAWD,GAAQ,GAAA,CAAE5G,EAAIO,OAAM,GAE/BmG,GACAE,EAASI,OAAOF,EAAW,GACpBF,GAEJD,KAGXjB,IACAtB,EAAe,IAGb6C,EAAe5G,EAAAA,SAAQ,WACzB,IAcI6G,EAAWtG,eAAawC,GAAOyD,EAAAA,cAAA,GAAKzD,GAAI,GAAI,GAKhD,OAFA8D,EAAWA,MAAAA,OAAQ,EAARA,EAAU5G,QAjBD,SAAC6G,GACb,IAACvG,EAAAA,aAAa+C,GAAc,GAAQ,OAAO,EAC/C,IAAKwD,EAAKtI,KAAM,OAAO,EAGvB,IADIuI,IAAAA,GAAU,EACLtG,EAAI,EAAGA,EAAIqG,EAAKtI,KAAK+F,OAAQ9D,IAClC,IAAuD,IAAnD6C,EAAaoD,QAAQI,EAAKtI,KAAKiC,GAAGP,MAAQ,IAAY,CACtD6G,GAAU,EACV,MAGR,OAAOA,OASZ,CAAChE,EAAMO,IAEJ0D,EAA0BhH,EAAAA,SAAQ,WAEhC,OAAA4G,MAAAA,OAAA,EAAAA,EAAc3G,QAAO,SAACgH,EAAGxG,GAAM,OAAAA,EAAIqD,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,IAAMxE,EAAeC,EAAAA,SAAQ,WACzB,OAAOxB,MAAAA,OAAA,EAAAA,EAAMyB,QAAO,SAACN,GAAQ,OAAAA,OAC9B,CAACnB,IAEJ,OACI7C,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbiH,SAAUA,EACVhH,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAC,QAAAM,cAAAC,WAAQE,eAAa,GACjBmE,eAAaR,GAAc,IACxBpE,wBAACuF,GAAY,KACTvF,UAAAM,cAAC4F,GAAU,CACPnF,KAAK,QACLF,KAAK,OACL5C,WAAYA,GAEZ+B,EAAAA,QAAAM,cAAC6L,EAAAA,OAAS,MACVnM,EAAA,QAAAM,cAAA,OAAA,KAAA,WAEH8D,EAAaS,KAAI,SAACb,EAAKc,GAAM,OAC1B9E,EAAA,QAAAM,cAACkF,GAAW,CAAAT,IAAKD,GACZzB,EACGA,EAAU,CACN0B,IAAKD,EACLP,KAAMP,EACN/F,WAAYA,EACZ+G,UACmC,IAA/B2C,EAAaoD,QAAQ/G,GACzBiB,aAAc,SAAChB,GACXA,MAAAA,GAAAA,EAAIC,iBACCpB,EAEEA,EAAW,CAAEyB,KAAMP,IADtBD,EAAe,CAAEQ,KAAMP,OAKnChE,EAAAA,QAACM,cAAA4E,MACG,CAAAjH,WAAYA,EACZkH,QAAS,SAAClB,GACNA,MAAAA,GAAAA,EAAIC,iBACCpB,EAGDA,EACI,CAAEyB,KAAMP,IACR,GAJJD,EAAe,CAAEQ,KAAMP,KAO/BgB,UACmC,IAA/B2C,EAAaoD,QAAQ/G,IAGxBA,QAOzBhE,UAACM,cAAAmF,QACI4F,EAAYxG,KAAI,SAACsG,EAAMrG,SAAM,OAC1B9E,EAAA,QAAAM,cAACqF,GAAQ,CAACZ,IAAK,GAAGgC,OAAAjC,EAAU,UAAAiC,OAAAoE,EAAKnI,QAC7BhD,UAAAM,cAACoC,GAAQ+B,WAAA,CACL1E,MAAOA,GAAS9B,EAChB2E,IAAK4G,EAAS1E,IACVqG,EAAI,CACRtI,KAAiB,QAAX7E,EAAAmN,EAAKtI,YAAM,IAAA7E,OAAA,EAAAA,EAAA6G,KAAI,SAACb,GAAS,MAAA,CAC3BO,KAAMP,EAAIO,SAEdtG,WAAYA,EACZ6E,WAAY,SAACkB,GAET6E,EAAU,GACL/F,EAODA,EAAW,CAAEyB,KAAMP,EAAIO,OAAQ,GAL/BR,EACI,CAAEQ,KAAMP,EAAIO,OACZ,IAMZlB,UAAWA,UAK3BrD,EAAAA,QAAKM,cAAA,MAAA,CAAAsC,IAAK2F,KACRE,GACEzI,EAAA,QAAAM,cAACwF,GAAU,KACNsB,GAAQA,EAAKwB,OAAS,GACnB5I,EAAAA,QAAAM,cAAClB,EAAAA,KAAI,CACDyB,KAAK,OACLE,KAAK,SACL9C,WAAYA,GAEZ+B,EAAC,QAAAM,cAAAyF,GACG,CAAAE,UAAWmB,EAAKwB,OAChBzD,QAAS,SAAClB,GACNA,EAAGC,iBAECiE,EACAe,KAAK4C,KACDb,EAAarC,OACTZ,IAGRI,GAAe,SAACuC,GAASA,OAAAA,EAAO,OAIvCxC,EACG8C,EAAarC,OAASZ,GACtBhI,EAAAA,QAACM,cAAA8L,EAAOA,QAACpL,MACLqL,GAAG,SACHpO,WAAYA,GAEZ+B,UAAAM,cAAC8L,EAAOA,QAACE,MAAK,KACThF,GACG,0BCtXrC9H,GAAAA,EAAAA,cAxGV,SAACxB,OAAEmJ,EAAQnJ,EAAAmJ,SAAEC,EAAIpJ,EAAAoJ,KAAExH,EAAM5B,EAAA4B,OAAEyD,EAASrF,EAAAqF,UAC/BkE,EAAoBzH,EAAAA,cAAlBD,EAAM0H,EAAA1H,OAAE3B,EAAKqJ,EAAArJ,MACfyK,GAAYvB,MAAAA,OAAA,EAAAA,EAAMwB,SAAU,EAE5B3K,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAGRiI,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,CACR7E,MAAO,EACP3F,OAAQ,EACRyK,UAAW,EACXzD,MAAO,EACP0D,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,IAGXnI,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbiH,SAAUA,EACVhH,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,EAAAA,QAAAM,cAACiM,EAAAA,KAAKC,IAAG,KACJpF,MAAAA,OAAI,EAAJA,EACK9C,QAAO,SAACgH,EAAGxG,GAAM,OAAAA,EAAIqD,EAAcH,KACpCnD,KAAI,SAACsG,EAAMrG,SAAM,OACd9E,UAACM,cAAAiM,EAAIA,KAACE,KACF5N,OAAQ,CAAEmH,KAAM,IAChBjB,IAAK,GAAAgC,OAAGjC,EAAU,UAAAiC,OAAAoE,EAAKnI,QAEvBhD,UAACM,cAAAoC,GACG+B,WAAA,CAAAM,IAAKD,EACLlC,IAAK4G,EAAS1E,IACVqG,EAAI,CACRtI,KAAiB,QAAX7E,EAAAmN,EAAKtI,YAAM,IAAA7E,OAAA,EAAAA,EAAA6G,KAAI,SAACb,WACd0I,OACAvI,EAUG,OARHH,EAAIO,OAAgB,QAARvG,EAAAgG,EAAIb,YAAI,IAAAnF,OAAA,EAAAA,EAAE2O,QACtBD,EAAUvG,GACNnC,EAAIb,KAAKwJ,KACTzO,EACA,CAAC8F,EAAIO,QAIN,CACHA,KAAMP,EAAIO,KACVpB,cAAMoE,EAAAvD,EAAIb,2BAAMwJ,MACXlI,EAAAA,SAAAA,EAAAA,SAAA,GACQT,EAAIb,MAAI,CACXwJ,KAAMD,SAEVvI,MAGdlG,WAAYA,EACZoF,UAAWA,eCxHzClC,GAAc1D,EAAM,QAAC2D,SAAVzD,WAAA,CAAAC,YAAA,0BAAAC,YAAA,gBAAGJ,CAAaK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,0CAAA,yGAAA,CAAA,0CAEoC,4GAAhD,SAACC,GAAE,IAAAE,EAAKF,EAAAE,MAAO,OAAAmD,aAAOnD,GAAOoD,SAASC,cAmG3DqL,GAAepN,EAAYA,cA5EtB,SAACxB,SAAEmJ,aAAU0F,EAAM7O,EAAA6O,OAAEjN,EAAM5B,EAAA4B,OACpBC,EAAWC,uBAEb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbiH,SAAUA,EACVhH,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,cAACiM,EAAIA,KAACC,SAE8B,QAD/BjF,EAAAsF,MAAAA,OAAM,EAANA,EACKvI,QAAO,SAACvF,GAAQA,OAAAA,EAAIyF,gBAAM,IAAA+C,OAAA,EAAAA,EAC1B1C,KAAI,SAAC9F,EAAK+F,GAAM,OACd9E,wBAACuM,EAAIA,KAACE,IACF,CAAA1H,IAAKD,EACLwE,UAAW,CACPtD,KAAMjH,EAAI+N,OAAS,EAAU,KAGjC9M,EAAAA,QAAAM,cAACa,GACOsD,EAAAA,SAAA,GAAA1F,GACJ4F,YAAU,EACV1G,WAAYA,eCrD1C8O,GAAUtP,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,qBAAAC,YAAA,eAAGJ,4FAAU,0CAEc,kBAAD,EAAjBe,EAAQA,SAACc,OAIzB0N,GAAYvP,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,OAK9B4C,GAAOzE,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,OAGvBkG,GAAa/H,EAAAA,QAAOuI,KAAVrI,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAWyB,KAAAA,GAAAnB,EAAAA,qBAAA,CAAA,kDAAA,0BAAA,SAAA,CAAA,kDAEG,0BACC,WADfS,EAAQA,SAACc,MACRd,EAAAA,SAASc,OAGvB2N,GAAYxP,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAGJ,iUAAU,+QAYa,kBAAD,EAAjBe,EAAQA,SAACc,OAI1B4N,GAAczP,EAAM,QAAC0P,SAAVxP,WAAA,CAAAC,YAAA,yBAAAC,YAAA,eAAGJ,CAAuCwE,KAAAA,GAAAlE,EAAAA,qBAAA,CAAA,oBAAA,OAAA,CAAA,oBAEG,UAD7C,SAACC,GACVoP,OADsBpP,EAAAoP,YACP,GAAK,GAAM5O,EAAAA,SAAS6O,aAAe,QAGpDC,GAAe7P,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAGJ,CAGnB0E,KAAAA,GAAApE,EAAAA,qBAAA,CAAA,sCAAA,qBAAA,uDAAA,gBAAA,CAAA,sCAEsD,qBAEA,uDAGlB,mBALxB,SAACC,GAAmBuP,OAAPvP,EAAAuP,YAAqB,YAC/B,SAACvP,GACVwP,OADqBxP,EAAAwP,WACP,GAAK,GAAMhP,EAAAA,SAASiP,QAAU,OAG7BjP,EAAAA,SAASC,QA2IhCiP,GAAelO,EAAYA,cAzGtB,SAACxB,OAAEmJ,EAAQnJ,EAAAmJ,SAAEtE,EAAI7E,EAAA6E,KAAE8K,EAAI3P,EAAA2P,KAAE3K,EAAKhF,EAAAgF,MAAEC,EAAIjF,EAAAiF,KAAEC,EAAKlF,EAAAkF,MAAEtD,EAAM5B,EAAA4B,OAAEyD,EAASrF,EAAAqF,UACzDkE,EAA6BzH,EAAAA,cAA3ByD,EAAOgE,EAAAhE,QAAE1D,EAAM0H,EAAA1H,OAAE3B,EAAKqJ,EAAArJ,MACxBD,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEV4D,EAAc,IACdmK,MAAAA,SAAAA,EAAMC,QAQNpK,EAPkB,IAAIC,EAAJA,gBACdkK,EAAKC,KAAKlK,UACV,GACAH,EAAQjC,SAASqC,eAAegK,EAAKC,MACrCrK,EAAQjC,SAASsC,eAAe+J,EAAKC,MACrCrK,EAAQjC,SAASuC,eAEGC,oBAG5B,OACI9D,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbiH,SAAUA,EACVhH,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,cAACyM,GAAO,KACJ/M,EAAA,QAAAM,cAAC0M,GAAS,CAAC/O,WAAYA,GACnB+B,EAAAA,QAAAM,cAAC4B,GAAI,KACAW,MAAAA,OAAI,EAAJA,EAAMgC,KAAI,SAACb,EAAKc,SACT+I,OAAiC1J,EAarC,OAXIH,EAAIO,OAAgB,QAARvG,EAAAgG,EAAIb,YAAI,IAAAnF,OAAA,EAAAA,EAAE2O,QACtBkB,EAAOpJ,EAAAA,SAAAA,EAAAA,SAAA,GACAT,EAAIb,MAAI,CACXwJ,KAAMxG,GACFnC,EAAIb,KAAKwJ,KACTzO,EACA,CAAC8F,EAAIO,UAMbvE,EAAC,QAAAM,cAAAkF,GAAW,CAAAT,IAAK,WAAWgC,OAAAjC,IACvBzB,EACGA,EAAU,CACN0B,IAAK,WAAWgC,OAAAjC,GAChBP,KAAMP,EAAIO,MAAQ,GAClBtG,WAAYA,EACZ+G,UAAU,EACV7B,KAAM0K,IAGV7N,EAAAA,QAACM,cAAA4E,MACG,CAAA/B,KAAM0K,EACN5P,WAAYA,GAEX+F,EAAIO,YAO3Bf,IAAemK,MAAAA,OAAA,EAAAA,EAAMjO,UACnBM,EAAAA,sBAACiN,GAAS,MACLU,MAAAA,OAAA,EAAAA,EAAMjO,SAAUM,EAAM,QAAAM,cAAA,MAAA,KAAAqN,MAAAA,OAAI,EAAJA,EAAMjO,QAC5B8D,GAAexD,EAAAA,QAAMM,cAAA,MAAA,KAAAkD,KAIlCxD,EAAAA,QAAAM,cAAA,MAAA,KACIN,UAAAM,cAAC4M,GACG,CAAAY,UAAW7P,EAAa,WAAa,UACrC+E,MAAOA,IAEVC,GACGjD,UAAAM,cAACgN,GACG,CAAArP,WAAYA,EACZ4C,KAAK,SACLyE,UAAWrC,MAItBC,MAAAA,OAAA,EAAAA,EAAOsB,QACJxE,EAAAA,QAACM,cAAAc,EAADA,MACQqD,EAAAA,SAAA,GAAAvB,EACJ,CAAAyB,YACA,EAAAoJ,iBACA,EAAA9P,WAAYA,WC7MlCwH,GAAOhI,EAAAA,QAAOiI,GAAV/H,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,QAWvBkH,GAAWlI,EAAAA,QAAOmI,GAAVjI,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,GAACiH,OAkHhBmI,GAAexO,EAAYA,cAlFtB,SAACxB,GAAE,IAAAmJ,aAAUI,EAAAvJ,EAAAiQ,KAAAA,aAAO,QAAO1G,EAAEH,SAAMxH,EAAM5B,EAAA4B,OAAEyD,EAASrF,EAAAqF,UAC/CmE,EAAoB1H,EAAAA,cAAlBD,EAAM2H,EAAA3H,OAAE3B,EAAKsJ,EAAAtJ,MAEfgQ,EAAQ7J,EAAAA,SAAyB,WACnC,OAAK+C,EACQ,aAAT6G,EAA4B7G,EAAK+G,MAAM,EAAG,GAClC/G,EAAK+G,MAAM,EAAG,GAFR,KAGnB,CAAC/G,EAAM6G,IAEJhQ,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEK4J,EAAaR,EAAAA,oBAAoC,CAChEC,WAAYiF,EAAMtF,OAClBQ,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACR7E,MAAO,EACP3F,OAAQ,EACRyK,UAAW,EACXzD,MAAO,EACP0D,OAAQ,eAIhB,OACIvJ,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbiH,SAAUA,EACVhH,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAC,QAAAM,cAAAC,WAAQE,eAAa,GAClBT,EAAAA,QAAAM,cAACmF,GAAI,KACAyI,MAAAA,OAAK,EAALA,EAAOrJ,KAAI,SAACsG,EAAMrG,SAAM,OACrB9E,EAAC,QAAAM,cAAAqF,GAAS,CAAAZ,IAAKD,GACX9E,UAAAM,cAACoC,GAAQ+B,WAAA,CACLM,IAAKD,EACLlC,IAAK4G,EAAS1E,IACVqG,EACJ,CAAAlN,WAAYA,EACZ4E,KAAe,QAAT7E,EAAAmN,EAAKtI,YAAI,IAAA7E,OAAA,EAAAA,EAAE6G,KAAI,SAACb,WACd0I,OAA8BvI,EAU3B,OARHH,EAAIO,OAAgB,QAARvG,EAAAgG,EAAIb,YAAI,IAAAnF,OAAA,EAAAA,EAAE2O,QACtBD,EAAUvG,GACNnC,EAAIb,KAAKwJ,KACTzO,EACA,CAAC8F,EAAIO,QAIN,CACHA,KAAMP,EAAIO,KACVpB,cAAMoE,EAAAvD,EAAIb,2BAAMwJ,MACXlI,EAAAA,SAAAA,EAAAA,SAAA,GACQT,EAAIb,MAAI,CACXwJ,KAAMD,SAEVvI,MAGdd,UAAWA,eCrIrC+K,GAAmB3Q,EAAM,QAACwC,WAAVtC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAGJ,CAAeK,KAAAA,GAAAC,uBAAA,CAAA,4BAAA,CAAA,+BAIlCsQ,GAAe5Q,EAAM,QAAC8C,WAAV5C,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAGJ,CAAekB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,0CAAA,gBAAA,CAAA,0CAEC,kBAAfS,EAAQA,SAACC,QAgD/B6P,GAAe9O,EAAYA,cAnCtB,SAACxB,GAAE,IAAAmJ,aAAUvH,EAAM5B,EAAA4B,OAAE2O,EAAUvQ,EAAAuQ,WACxB1O,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,GAAqB3B,EAEnC,OACI+B,EAAA,QAAAM,cAAC8N,GAAgB,CACblO,eAAa,EACbiH,SAAUA,EACVhH,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAAC+N,GAAY,CAAC7N,WAAW,SACpB+N,EAAW1J,KAAI,SAACsG,EAAMrG,GAEf9E,OAAAA,EAAAA,QAACM,cAAAkO,EAAAA,yBACOrD,EAAI,CACRpG,IAAKD,EACL2J,QAAS1O,EACT9B,WAAYA,aC5ClCqP,GAAe7P,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,GAAmBuP,OAAPvP,EAAAuP,YAAqB,YAC/B,SAACvP,GACVwP,OADqBxP,EAAAwP,WACP,GAAK,GAAMhP,EAAAA,SAAS6O,aAAe,OAGjB,EAAjB7O,EAAQA,SAACc,OA6ChCoP,GAAelP,EAAYA,cAhCtB,SAACxB,GAAE,IAAAmJ,aAAUlE,EAAIjF,EAAAiF,KAAErD,EAAM5B,EAAA4B,OAClBC,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbiH,SAAUA,EACVhH,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,GACpCwC,GACGjD,EAAAA,QAAAM,cAACgN,GACG,CAAArP,WAAYA,EACZ4C,KAAK,OACLyE,UAAWrC,SC2BpBzD,GAAAA,EAAAA,cA7CV,SAACxB,OACFmJ,EAAQnJ,EAAAmJ,SACRwH,EAAO3Q,EAAA2Q,QACPC,EAAO5Q,EAAA4Q,QACPC,EAAQ7Q,EAAA6Q,SACRC,EAAW9Q,EAAA8Q,YACXC,EAAa/Q,EAAA+Q,cACbC,EAAWhR,EAAAgR,YACXpP,EAAM5B,EAAA4B,OAEEC,EAAWC,uBAEb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbiH,SAAUA,EACVhH,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,SAC7BoO,GAAWD,GACR3O,wBAACiP,EAAAA,UAAS,CACNN,QAASA,EACTC,QAASA,EACTC,SAAUA,EACVC,YAAaA,EACbC,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("./ClockFilled-2483aa4a.js"),n=require("react"),t=require("styled-components"),i=require("./Section-e8e8cf81.js"),a=require("./Wrapper-ff6854d7.js"),r=require("./Image-c72f7a80.js"),o=require("./Copy-ea6ab025.js"),l=require("./styles-3a495a2d.js"),s=require("./LibThemeProvider-4823de57.js"),c=require("./Grid-6f4f99bc.js"),d=require("./InfoList-71d3388a.js"),u=require("./POICard-e46f9041.js"),p=require("./arrays-c272ed59.js"),m=require("./FilterField-cce38ffb.js"),f=require("./useUpdateEffect-4d233e2c.js"),g=require("./escape-1ef8dd83.js"),h=require("./useMounted-0bba9869.js"),v=require("./urlParams-7525f638.js"),b=require("./useLeafletMap-2e608b01.js"),x=require("./Navigation-939e4d0e.js"),w=require("./useGeolocation-d8946470.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-f387d848.js"),require("./clamp-bd21d587.js"),require("react-dom/server"),require("./useLazyInput-f71c221b.js"),require("./useMediaQuery-3d1054e5.js"),require("./navigation-bf154e6e.js"),require("./Link-5a6f1633.js"),require("./LanguageSwitcher-8fdd22ba.js");var _,C,I,k,E,j,M,O,P,T,q,L,z,F,N,S,A=y(n),V=y(t),B=V.default(r.Image).withConfig({displayName:"PointOfInterestDetail__StyledImage",componentId:"sc-hksryh-0"})(_||(_=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),R=V.default(u.POIFacts).withConfig({displayName:"PointOfInterestDetail__Facts",componentId:"sc-hksryh-1"})(C||(C=e.__makeTemplateObject(["\n max-width: 880px;\n"],["\n max-width: 880px;\n"]))),D=V.default(o.Heading).withConfig({displayName:"PointOfInterestDetail__PoiTitle",componentId:"sc-hksryh-2"})(I||(I=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),G=V.default(o.Copy).withConfig({displayName:"PointOfInterestDetail__PoiText",componentId:"sc-hksryh-3"})(k||(k=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),H=s.withLibTheme((function(t){var r=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,w="inverted"===v,y="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 A.default.createElement(i.Section,{addSeperation:!0,anchorId:r,bgColor:w?x.sectionBg.dark:y?x.sectionBg.medium:x.sectionBg.light,bgMode:i.mapToBgMode(v,!0)},A.default.createElement(a.Wrapper,{addWhitespace:!0},(null==o?void 0:o.small)&&A.default.createElement(B,e.__assign({},o,{coverSpace:!0,allowEdgeRadius:!0,isInverted:w})),A.default.createElement(c.Grid.Row,{gutter:5*l.spacings.nudge,semilarge:{gutter:l.spacings.spacer}},A.default.createElement(c.Grid.Col,{semilarge:{span:_?5.7/8:1}},u&&A.default.createElement(D,{size:"heading-2",isInverted:w},u),p.isValidArray(g,!1)&&A.default.createElement(R,{isInverted:w,facts:g,customFact:b}),m&&A.default.createElement(G,{size:"medium",type:"copy-b",isInverted:w,innerHTML:m}),f&&A.default.createElement(G,{size:"medium",isInverted:w,innerHTML:f})),_&&A.default.createElement(c.Grid.Col,{semilarge:{span:2.3/8}},A.default.createElement(d.InfoList,{isInverted:w,items:h})))))})),U=V.default.div.withConfig({displayName:"PointOfInterestOverview__Content",componentId:"sc-epctuk-0"})(E||(E=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),W=V.default(m.FilterField).withConfig({displayName:"PointOfInterestOverview__Filter",componentId:"sc-epctuk-1"})(j||(j=e.__makeTemplateObject(["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"],["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"])),5*l.spacings.nudge),Z=function(e,n){return n?null==n?void 0:n.filter((function(n){return!e.find((function(e){return e.item.id===n.id}))})):[]},Q=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 a=Z(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(a,!1)&&t.push.apply(t,a.map((function(e){return{item:e,priority:2}})));var r=Z(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(r,!1)&&t.push.apply(t,r.map((function(e){return{item:e,priority:3}})));var o=Z(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=Z(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},J=s.withLibTheme((function(t){var r,o=t.anchorId,l=t.bgMode,c=t.pois,d=t.enableFiltering,p=t.initialFilterQuery,m=t.filterPlaceholder,b=void 0===m?"Filter":m,x=t.filterSubmitIcon,w=t.filterClearIcon,y=s.useLibTheme(),_=y.colors,C=y.globals.sections.poiFilterName,I="inverted"===l,k="full"===l,E=n.useState(p||""),j=E[0],M=E[1],O=h.useMounted(),P=A.default.useMemo((function(){for(var n=j.split(" ").map((function(e){return e.trim()})),t=[],i=0,a=n;i<a.length;i++)for(var r=a[i],o=function(e){var n=t.findIndex((function(n){return n.match.item.id===e.item.id}));-1!==n?t[n].intersections+=1:t.push({match:e,intersections:1})},l=0,s=Q(g.escapeRegExp(r),c||[]);l<s.length;l++){o(s[l])}return t.filter((function(e){return e.intersections>=n.length})).map((function(n){return e.__assign({},n.match)}))}),[j,c]),T=n.useCallback((function(){return v.getUrlParams()[C]}),[C]);return n.useEffect((function(){var e=T();null!=e&&"string"==typeof e&&M(e)}),[T]),n.useEffect((function(){O||(j?v.setUrlParam(C,j):v.deleteUrlParam(C))}),[C,j,O]),f.useUpdateEffect((function(){j?v.setUrlParam(C,j):v.deleteUrlParam(C)}),[j]),A.default.createElement(i.Section,{addSeperation:!0,anchorId:o,bgColor:I?_.sectionBg.dark:k?_.sectionBg.medium:_.sectionBg.light,bgMode:i.mapToBgMode(l,!0)},A.default.createElement(a.Wrapper,{addWhitespace:!0},d&&A.default.createElement(W,{value:j,initialValue:p,placeholder:b,onSubmit:M,submitIcon:x,clearIcon:w,isInverted:I}),A.default.createElement(U,null,null===(r=null==P?void 0:P.sort((function(e,n){return e.priority-n.priority})))||void 0===r?void 0:r.map((function(n,t){return A.default.createElement(u.POICard,e.__assign({key:t},n.item,{isInverted:I}))})))))})),K=V.default(i.Section).withConfig({displayName:"PointOfInterestMap__PoiMapSection",componentId:"sc-1ke8oz0-0"})(P||(P=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(O||(O=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,a=x.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0}),r=x.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasTop:!0}),o=x.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasBottom:!0}),s=x.generateNavbarIdent({pageFlow:"beforeContent",hasTop:!0,hasMain:!0,hasBottom:!0}),c=x.getFullNavbarHeights(i,a).large,d=x.getFullNavbarHeights(i,r).large,u=x.getFullNavbarHeights(i,o).large,p=x.getFullNavbarHeights(i,s).large,m=function(e){return e.map((function(e){return"[data-navbar-ident*='".concat(e,"']")})).join("")},f="100vh";return t.css(M||(M=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 "])),Y,f,m(a.split("-")),Y,f,c[0],m(r.split("-")),Y,f,d[0],m(o.split("-")),Y,f,u[0],m(s.split("-")),Y,f,p[0],l.mq.semilarge,m(a.split("-")),Y,f,c[1],m(r.split("-")),Y,f,d[1],m(o.split("-")),Y,f,u[1],m(s.split("-")),Y,f,p[1])}))}),l.withRange([0],"padding-top"),l.withRange([0],"margin-top")),X=V.default.div.withConfig({displayName:"PointOfInterestMap__MapContainer",componentId:"sc-1ke8oz0-1"})(T||(T=e.__makeTemplateObject(["\n position: relative;\n"],["\n position: relative;\n"]))),Y=V.default.div.withConfig({displayName:"PointOfInterestMap__Map",componentId:"sc-1ke8oz0-2"})(q||(q=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),$=V.default.button.withConfig({displayName:"PointOfInterestMap__RequestGeolocationBtn",componentId:"sc-1ke8oz0-3"})(L||(L=e.__makeTemplateObject(["\n position: absolute;\n top: ","px;\n left: ","px;\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"],["\n position: absolute;\n top: ","px;\n left: ","px;\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"])),2*l.spacings.nudge,2*l.spacings.nudge,l.spacings.nudge,(function(e){var n=e.theme;return l.getColors(n).primary.default})),ee=V.default.div.withConfig({displayName:"PointOfInterestMap__CardStage",componentId:"sc-1ke8oz0-4"})(z||(z=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),ne=V.default.div.withConfig({displayName:"PointOfInterestMap__MapCardView",componentId:"sc-1ke8oz0-5"})(F||(F=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: 8px;\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: 8px;\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}),3*l.spacings.nudge,l.mq.medium),te=V.default.header.withConfig({displayName:"PointOfInterestMap__MapCardHeader",componentId:"sc-1ke8oz0-6"})(N||(N=e.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),ie=V.default.button.withConfig({displayName:"PointOfInterestMap__CloseBtn",componentId:"sc-1ke8oz0-7"})(S||(S=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})),ae=function(n){var t=n.name,i=n.facts,a=n.description,r=n.infos,l=n.action,c=n.customFact,m=n.customClose,f=n.onClose,g=n.className,h=s.useLibTheme().colors;return A.default.createElement(ne,{className:g},A.default.createElement(te,null,t&&A.default.createElement(o.Copy,{type:"copy-b",size:"big"},t),A.default.createElement(ie,{onClick:f},m||A.default.createElement(e.Cross,{iconColor:h.text.default}))),p.isValidArray(i,!1)&&A.default.createElement(u.POIFacts,{facts:i,customFact:c}),a&&A.default.createElement(o.Copy,{type:"copy",size:"small",innerHTML:a}),p.isValidArray(r,!1)&&A.default.createElement(d.InfoList,{items:[{items:r}]}),l&&l)},re=s.withLibTheme((function(t){var i=t.anchorId,r=t.size,o=t.pois,c=t.initialPointOfInterest,d=void 0===c?"":c,u=t.provider,p=t.attribution,m=t.center,f=void 0===m?[51.505,-.09]:m,g=t.zoom,h=void 0===g?5:g,v=t.fitBoundsPadding,x=t.allMarkersOnInit,y=void 0!==x&&x,_=t.restrictToMarkersArea,C=void 0===_||_,I=t.showOwnPosition,k=t.flyToZoom,E=t.customFact,j=t.currentPosMarker,M=t.customCardClose,O=t.customLocationRequest,P="large"===r,T=s.useLibTheme().colors,q=n.useState(d||""),L=q[0],z=q[1],F=n.useState(!1),N=F[0],S=F[1],V=n.useMemo((function(){return null==o?void 0:o.find((function(e){return e.id===L}))}),[L,o]),B=w.useGeolocation(!0,!1),R=B.isSupported,D=B.location,G=B.reset,H=n.useMemo((function(){var n,t={size:[28,28],anchor:[14,28],sizeActive:[70,70],anchorActive:[35,70],url:l.getSVGDataImg(A.default.createElement(e.LocationPin,null))},i={size:[24,24],anchor:[12,12],sizeActive:[24,24],anchorActive:[12,12],url:l.getSVGDataImg(A.default.createElement(e.CurrentLocation,{iconColor:"#5383EC"}))},a=(null===(n=null==o?void 0:o.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 R&&(null==D?void 0:D.coords.latitude)&&(null==D?void 0:D.coords.longitude)&&a.push({id:"my-current-position-123456789",position:[D.coords.latitude,D.coords.longitude],icon:j||i}),a}),[j,R,null==D?void 0:D.coords.latitude,null==D?void 0:D.coords.longitude,o]),U=b.useLeafletMap({url:u,attribution:p,center:f,zoom:h,activeMarkerId:L,markers:H,fitBoundsPadding:v,restrictToMarkersArea:C,showZoomControls:!0,zoomControlPosition:"bottomleft",onMarkerClick:function(e){z((function(n){return n===e?"":e}))}}),W=U.isLoaded,Z=U.setContainer,Q=U.flyToActive,J=U.showAllMarkers,ne=U.flyToPosition,te=U.getCurrentZoom;n.useEffect((function(){if(W&&!N)y&&J();else{var e=te(),n=k;void 0!==k&&e>k&&(n=e),Q(n)}}),[L,y,Q,k,te,d,N,W,J]),n.useEffect((function(){N||L===d||S(!0)}),[L,d,N]);return A.default.createElement(K,{anchorId:i,bgColor:"image",bgMode:"full",isLarge:P},A.default.createElement(a.Wrapper,{clampWidth:P?"large":"normal"},A.default.createElement(X,null,A.default.createElement(Y,{ref:Z,isLarge:"large"===r}),I&&A.default.createElement($,{onClick:function(){return e.__awaiter(void 0,void 0,void 0,(function(){var n,t,i,a;return e.__generator(this,(function(e){switch(e.label){case 0:return(null===(i=null==D?void 0:D.coords)||void 0===i?void 0:i.latitude)&&(null===(a=null==D?void 0:D.coords)||void 0===a?void 0:a.longitude)?(n=te(),t=k,void 0!==k&&n>k&&(t=n),ne([D.coords.latitude,D.coords.longitude],t),[3,4]):[3,1];case 1:return e.trys.push([1,3,,4]),[4,G()];case 2:return e.sent()&&J(),[3,4];case 3:return e.sent(),[3,4];case 4:return[2]}}))}))}},O||A.default.createElement(e.MyLocation,{iconColor:T.text.default})),V&&V.name&&A.default.createElement(ee,{onClick:function(e){e.target===e.currentTarget&&z("")}},A.default.createElement(ae,e.__assign({},V,{onClose:function(){return z("")},customFact:E,customClose:M}))))))}));exports.PointOfInterestDetail=H,exports.PointOfInterestMap=re,exports.PointOfInterestOverview=J;
|
|
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-94820dfd.js"),o=require("./Copy-a0bc570d.js"),l=require("./styles-13e5d9ac.js"),s=require("./LibThemeProvider-69109901.js"),c=require("./Grid-1acefee9.js"),d=require("./InfoList-e416058c.js"),u=require("./FilterBar-0781490f.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-6abb6213.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-7efcacb7.js"),require("./useLazyInput-911b8eda.js"),require("./MultiselectDropdown-a16ea1c9.js"),require("./formFieldText-046fcbf4.js"),require("./useMounted-0bba9869.js"),require("./Checkbox-8dccd42f.js"),require("react-dom"),require("./Pointer-331140b6.js"),require("./useMediaQuery-619d7203.js"),require("./navigation-3f9d4ac4.js"),require("./Link-8951180c.js"),require("./LanguageSwitcher-aa96cc7d.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\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\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}),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;
|
|
2
2
|
//# sourceMappingURL=sections.pois.js.map
|