@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.events.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"),a=require("./Section-e8e8cf81.js"),i=require("./Wrapper-ff6854d7.js"),r=require("./EventBlock-04e719a7.js"),o=require("./styles-3a495a2d.js"),l=require("./LibThemeProvider-4823de57.js"),d=require("./statusFormatter-0393122b.js"),s=require("./concat-f387d848.js"),m=require("./Filter-d6d90b8b.js"),c=require("./Tag-9238cf0c.js"),p=require("./Pointer-fde7b548.js"),u=require("./Copy-ea6ab025.js"),g=require("./arrays-c272ed59.js"),f=require("./urlParams-7525f638.js"),v=require("./useMounted-0bba9869.js"),x=require("./useObserverSupport-5ab320dd.js"),h=require("./useScrollTo-fdd665da.js"),b=require("./useUpdateEffect-4d233e2c.js"),y=require("./Image-c72f7a80.js"),w=require("./Grid-6f4f99bc.js"),_=require("./InfoList-71d3388a.js");function E(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./Link-5a6f1633.js"),require("react-dom/server"),require("./clamp-bd21d587.js");var k,T,I,C,j,q,B,O,F,L,M,S,A,N,D,z,P,U,V,R=E(n),W=E(t),G=W.default.div.withConfig({displayName:"EventOverview__TagContainer",componentId:"sc-u2afqs-0"})(k||(k=e.__makeTemplateObject(["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"],["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"])),o.spacings.nudge,o.spacings.nudge,6*o.spacings.nudge),H=W.default.div.withConfig({displayName:"EventOverview__TagWrapper",componentId:"sc-u2afqs-1"})(T||(T=e.__makeTemplateObject(["\n padding-top: ","px;\n padding-left: ","px;\n"],["\n padding-top: ","px;\n padding-left: ","px;\n"])),o.spacings.nudge,o.spacings.nudge),K=W.default.ul.withConfig({displayName:"EventOverview__Events",componentId:"sc-u2afqs-2"})(I||(I=e.__makeTemplateObject(["\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"],["\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"])),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),3*o.spacings.nudge),J=W.default(u.Copy).withConfig({displayName:"EventOverview__FilterIcon",componentId:"sc-u2afqs-3"})(C||(C=e.__makeTemplateObject(["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"])),o.spacings.nudge/2,o.spacings.nudge,o.spacings.nudge),Q=W.default.li.withConfig({displayName:"EventOverview__EventItem",componentId:"sc-u2afqs-4"})(j||(j=e.__makeTemplateObject(["\n /* padding: ","px 0; */\n"],["\n /* padding: ","px 0; */\n"])),3*o.spacings.nudge),X=W.default.div.withConfig({displayName:"EventOverview__ListFooter",componentId:"sc-u2afqs-5"})(q||(q=e.__makeTemplateObject(["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"],["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"])),6*o.spacings.nudge,o.mq.medium),Y=W.default.span.withConfig({displayName:"EventOverview__ShowMore",componentId:"sc-u2afqs-6"})(B||(B=e.__makeTemplateObject(["\n display: ",";\n"],["\n display: ",";\n"])),(function(e){var n=e.itemCount;return n&&n>2?"block":"none"})),Z=l.withLibTheme((function(t){var o=t.tags,y=t.events,w=t.bgMode,_=t.anchorId,E=t.initial,k=t.showMoreText,T=t.onTagClick,I=t.customTag,C="inverted"===w,j="full"===w,q=l.useLibTheme(),B=q.colors,O=q.globals,F=O.sections.eventFilterName,L=R.default.useState((null==E?void 0:E.activeTags)||[]),M=L[0],S=L[1],A=R.default.useState(1)[0],N=R.default.useState((null==E?void 0:E.visibleRows)||3),D=N[0],z=N[1],P=R.default.useRef(null),U=x.useObserverSupport(),V=v.useMounted(),W=(null==y?void 0:y.length)||0,Z=h.useScrollTo(800),$=n.useCallback((function(){var e=[],n=f.getUrlParams()[F];if(n){var t=null==n?void 0:n.split(",");g.isValidArray(t,!1)&&e.push.apply(e,t)}return e}),[F]);n.useEffect((function(){if(!E){var e=$();g.isValidArray(e,!1)&&S(e)}}),[$,E]),n.useEffect((function(){var e;E&&!V&&(f.setUrlParam("rows",(null==E?void 0:E.visibleRows)||3),g.isValidArray(null==E?void 0:E.activeTags,!1)?f.setUrlParam(F,null===(e=null==E?void 0:E.activeTags)||void 0===e?void 0:e.join(",")):f.deleteUrlParam(F))}),[F,E,V]),b.useUpdateEffect((function(){f.setUrlParam("rows",D)}),[D]),b.useUpdateEffect((function(){!T&&g.isValidArray(M)&&(M.length>0?f.setUrlParam(F,M.join(",")):f.deleteUrlParam(F))}),[M]);var ee=function(n,t){void 0===t&&(t=!0),S((function(a){var i=e.__spreadArray([],a,!0),r=n.name?a.indexOf(n.name):-1;return-1===r&&n.name?e.__spreadArray(e.__spreadArray([],i,!0),[n.name],!1):t?(i.splice(r,1),i):a})),z(3)},ne=n.useMemo((function(){var n=g.isValidArray(y)?e.__spreadArray([],y,!0):[];return n=null==n?void 0:n.filter((function(e){if(!g.isValidArray(M,!1))return!0;if(!e.tags)return!1;for(var n=!1,t=0;t<e.tags.length;t++)if(-1!==M.indexOf(e.tags[t].name||"")){n=!0;break}return n}))}),[y,M]),te=n.useMemo((function(){return(null==ne?void 0:ne.filter((function(e,n){return n<D*A})))||[]}),[ne,A,D]);n.useEffect((function(){if(U){var e,n=P.current;if(n){(e=new IntersectionObserver((function(e){var n=e[0];(null==n?void 0:n.isIntersecting)&&D<Math.ceil(ne.length/A)&&z((function(e){return e+1}))}),{rootMargin:"0px 0px 100px 0px",threshold:0})).observe(n)}return function(){e&&e.disconnect()}}}),[A,W,D,U,ne.length]);var ae=n.useMemo((function(){return null==o?void 0:o.filter((function(e){return e}))}),[o]);return R.default.createElement(a.Section,{addSeperation:!0,anchorId:_,bgColor:C?B.sectionBg.dark:j?B.sectionBg.medium:"transparent",bgMode:a.mapToBgMode(w,!0)},R.default.createElement(i.Wrapper,{addWhitespace:!0},g.isValidArray(ae,!1)&&R.default.createElement(G,null,R.default.createElement(J,{size:"small",type:"copy",isInverted:C},R.default.createElement(m.Filter,null),R.default.createElement("span",null,"Filter")),ae.map((function(e,n){return R.default.createElement(H,{key:n},I?I({key:n,name:e,isInverted:C,isActive:-1!==M.indexOf(e),clickHandler:function(n){null==n||n.preventDefault(),T?T({name:e}):ee({name:e})}}):R.default.createElement(c.Tag,{isInverted:C,onClick:function(n){null==n||n.preventDefault(),T?T({name:e},!1):ee({name:e})},isActive:-1!==M.indexOf(e)},e))}))),R.default.createElement(K,{hasBg:j},te.map((function(n,t){var a,i="";n.date&&(i=new d.StatusFormatter(n.date.getTime(),"",O.sections.eventDateFormat(n.date),O.sections.eventTimeFormat(n.date),O.sections.eventLocaleKey).getFormattedTimespan(O.sections.eventTimespanFormat(n.date,n.duration),n.duration));var o=s.concat([i,n.address]," | ");return R.default.createElement(Q,{key:"".concat(t,"_event_").concat(n.title)},R.default.createElement(r.EventBlock,e.__assign({hasBg:"full"===w},n,{text:o,tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(e){return{name:e.name}})),isInverted:C,onTagClick:function(e){Z(0),T?T({name:e.name},!0):ee({name:e.name},!1)},customTag:I})))}))),R.default.createElement("div",{ref:P}),!U&&R.default.createElement(X,null,y&&y.length>0&&R.default.createElement(u.Copy,{type:"copy",size:"medium",isInverted:C},R.default.createElement(Y,{itemCount:y.length,onClick:function(e){e.preventDefault(),D<Math.ceil(ne.length/A)&&z((function(e){return e+1}))}},D<ne.length/A&&R.default.createElement(p.Pointer.View,{as:"button",isInverted:C},R.default.createElement(p.Pointer.Label,null,k||"mehr anzeigen")))))))})),$=W.default.ul.withConfig({displayName:"EventList__List",componentId:"sc-1ssgszz-0"})(O||(O=e.__makeTemplateObject(["\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"],["\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"])),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),3*o.spacings.nudge),ee=W.default.li.withConfig({displayName:"EventList__ListItem",componentId:"sc-1ssgszz-1"})(F||(F=e.__makeTemplateObject(["\n /* padding: ","px 0; */\n"],["\n /* padding: ","px 0; */\n"])),3*o.spacings.nudge),ne=l.withLibTheme((function(n){var t=n.anchorId,o=n.events,m=n.bgMode,c=n.customTag,p=l.useLibTheme(),u=p.colors,f=p.globals,v=p.theme,x="inverted"===m,h="full"===m;return R.default.createElement(a.Section,{addSeperation:!0,anchorId:t,bgColor:x?u.sectionBg.dark:m?u.sectionBg.medium:u.sectionBg.light,bgMode:a.mapToBgMode(m,!0)},R.default.createElement(i.Wrapper,{addWhitespace:!0},R.default.createElement($,{hasBg:h},null==o?void 0:o.map((function(n,t){var a,i="";n.date&&(i=new d.StatusFormatter(n.date.getTime(),"",f.sections.eventDateFormat(n.date),f.sections.eventTimeFormat(n.date),f.sections.eventLocaleKey).getFormattedTimespan(f.sections.eventTimespanFormat(n.date,n.duration),n.duration));var o=s.concat([i,n.address]," | ");return R.default.createElement(ee,{key:t},R.default.createElement(r.EventBlock,e.__assign({hasBg:"full"===m},n,{tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(n){var t,a,i=void 0;return n.name&&(null===(t=n.link)||void 0===t?void 0:t.href)&&(i=function(e,n,t){if(void 0===t&&(t=[]),!e||!n)return"";if(!g.isValidArray(t,!1))return e;var a=n.globals.sections.eventFilterName;if(!a)return e;try{var i=new URL(e),r=new URLSearchParams(i.search);return r.set(a,encodeURIComponent(t.join(","))),"".concat(e,"?").concat(r.toString())}catch(n){return"".concat(e,"?").concat(a,"=").concat(encodeURIComponent(t.join(",")))}}(n.link.href,v,[n.name])),{name:n.name,link:(null===(a=n.link)||void 0===a?void 0:a.href)?e.__assign(e.__assign({},n.link),{href:i}):void 0}})),isInverted:x,text:o,customTag:c})))})))))})),te=W.default.div.withConfig({displayName:"EventDetail__ImageContainer",componentId:"sc-1ko6neq-0"})(L||(L=e.__makeTemplateObject(["\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ",";\n\n overflow: hidden;\n\n margin-bottom: ","px;\n"],["\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ",";\n\n overflow: hidden;\n\n margin-bottom: ","px;\n"])),(function(e){switch(e.hAlign){case"center":return"center";case"right":return"flex-end";default:return"flex-start"}}),o.spacings.spacer),ae=W.default.div.withConfig({displayName:"EventDetail__ImgWrapper",componentId:"sc-1ko6neq-1"})(M||(M=e.__makeTemplateObject(["\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media "," {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ","px;\n }\n }\n"],["\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media "," {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ","px;\n }\n }\n"])),o.mq.medium,o.spacings.nudge),ie=W.default.div.withConfig({displayName:"EventDetail__ImageBackground",componentId:"sc-1ko6neq-2"})(S||(S=e.__makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ",";\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n"],["\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ",";\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n"])),(function(e){var n=e.theme;return e.isInverted?o.getGlobals(n).sections.imagePlaceholderBg.inverted:o.getGlobals(n).sections.imagePlaceholderBg.default})),re=W.default(y.Image).withConfig({displayName:"EventDetail__StyledTextImage",componentId:"sc-1ko6neq-3"})(A||(A=e.__makeTemplateObject(["\n margin-top: ","px;\n\n @media "," {\n display: none;\n }\n"],["\n margin-top: ","px;\n\n @media "," {\n display: none;\n }\n"])),3*o.spacings.nudge,o.mq.medium),oe=W.default.div.withConfig({displayName:"EventDetail__TagContainer",componentId:"sc-1ko6neq-4"})(N||(N=e.__makeTemplateObject(["\n max-width: 880px;\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n"],["\n max-width: 880px;\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n"])),o.spacings.nudge,o.spacings.nudge),le=W.default.div.withConfig({displayName:"EventDetail__TagWrapper",componentId:"sc-1ko6neq-5"})(D||(D=e.__makeTemplateObject(["\n padding-top: ","px;\n padding-left: ","px;\n"],["\n padding-top: ","px;\n padding-left: ","px;\n"])),o.spacings.nudge,o.spacings.nudge),de=W.default(u.Heading).withConfig({displayName:"EventDetail__EventTitle",componentId:"sc-1ko6neq-6"})(z||(z=e.__makeTemplateObject(["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n @media "," {\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"],["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n @media "," {\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"])),3*o.spacings.nudge,o.mq.semilarge),se=W.default(u.Copy).withConfig({displayName:"EventDetail__EventDateTime",componentId:"sc-1ko6neq-7"})(P||(P=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*o.spacings.nudge),me=W.default(u.Copy).withConfig({displayName:"EventDetail__EventAddress",componentId:"sc-1ko6neq-8"})(U||(U=e.__makeTemplateObject(["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n "," + & {\n margin-top: ","px;\n }\n\n @media "," {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"],["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n "," + & {\n margin-top: ","px;\n }\n\n @media "," {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"])),3*o.spacings.nudge,se,o.spacings.nudge,o.mq.semilarge),ce=W.default(u.Copy).withConfig({displayName:"EventDetail__EventText",componentId:"sc-1ko6neq-9"})(V||(V=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*o.spacings.nudge),pe=l.withLibTheme((function(t){var r,s=t.anchorId,m=t.event,p=t.infos,u=t.useImageAsBg,f=t.bgMode,v=t.customTag,x=l.useLibTheme(),h=x.colors,b=x.globals,E="inverted"===f,k="full"===f,T=n.useMemo((function(){return g.isValidArray(null==p?void 0:p.filter((function(e){return g.isValidArray(e.items,!1)})),!1)}),[p]),I="",C="";if(null==m?void 0:m.date){var j=new d.StatusFormatter(m.date.getTime(),"",b.sections.eventDateFormat(m.date),b.sections.eventTimeFormat(m.date),b.sections.eventLocaleKey);I=j.getFormattedDate(),C=j.getFormattedTimespan(b.sections.eventTimespanFormat(m.date,m.duration),m.duration)}var q=n.useMemo((function(){var e;return null===(e=null==m?void 0:m.images)||void 0===e?void 0:e.slice(0,2)}),[null==m?void 0:m.images]),B=null==q?void 0:q[1];return R.default.createElement(a.Section,{addSeperation:!0,anchorId:s,bgColor:E?h.sectionBg.dark:k?h.sectionBg.medium:h.sectionBg.light,bgMode:a.mapToBgMode(f,!0)},R.default.createElement(i.Wrapper,{addWhitespace:!0},g.isValidArray(q,!1)&&R.default.createElement(te,{hAlign:u?"center":"left"},q.map((function(n,t){return n.small?R.default.createElement(ae,{key:t},R.default.createElement(y.Image,e.__assign({},n,{coverSpace:!0,allowEdgeRadius:!0,isInverted:E,ratios:{small:{w:4,h:3}}}))):null})),R.default.createElement(ie,{isInverted:E,style:{backgroundImage:u&&q.length<2?"url(".concat(null===(r=null==m?void 0:m.images)||void 0===r?void 0:r[0].small,")"):void 0}})),R.default.createElement(w.Grid.Row,{gutter:5*o.spacings.nudge,semilarge:{gutter:o.spacings.spacer}},R.default.createElement(w.Grid.Col,{semilarge:{span:T?5.7/8:1}},(null==m?void 0:m.tags)&&R.default.createElement(oe,null,m.tags.map((function(e,n){return R.default.createElement(le,{key:"tag_"+n},v?v({key:"headtag-".concat(n),name:e.name||"",isInverted:E,isActive:!1,link:e.link}):R.default.createElement(c.Tag,{link:e.link,isInverted:E},e.name))}))),(null==m?void 0:m.title)&&R.default.createElement(de,{size:"heading-2",isInverted:E},m.title),I&&R.default.createElement(se,{size:"big",type:"copy-b",isInverted:E},I||"",I&&C?" | ":"",C),(null==m?void 0:m.address)&&R.default.createElement(me,{size:"big",type:"copy",innerHTML:m.address,isInverted:E}),(null==m?void 0:m.abstract)&&R.default.createElement(ce,{size:"medium",type:"copy-b",isInverted:E},m.abstract),B&&R.default.createElement(re,e.__assign({},B,{coverSpace:!0,allowEdgeRadius:!0,isInverted:E,ratios:{small:{w:4,h:3}}})),(null==m?void 0:m.text)&&R.default.createElement(ce,{size:"medium",isInverted:E,innerHTML:m.text})),T&&R.default.createElement(w.Grid.Col,{semilarge:{span:2.3/8}},R.default.createElement(_.InfoList,{isInverted:E,items:p})))))}));exports.EventDetail=pe,exports.EventList=ne,exports.EventOverview=Z;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Filter-89286db9.js"),n=require("react"),t=require("styled-components"),a=require("./Section-c9a16ccc.js"),i=require("./Wrapper-bca9463e.js"),r=require("./EventBlock-4e406696.js"),o=require("./styles-13e5d9ac.js"),l=require("./LibThemeProvider-69109901.js"),d=require("./statusFormatter-0393122b.js"),s=require("./concat-f387d848.js"),c=require("./Tag-937849ad.js"),m=require("./Pointer-331140b6.js"),p=require("./Copy-a0bc570d.js"),u=require("./arrays-c272ed59.js"),g=require("./urlParams-7525f638.js"),f=require("./useMounted-0bba9869.js"),v=require("./useObserverSupport-5ab320dd.js"),x=require("./useScrollTo-fdd665da.js"),h=require("./useUpdateEffect-4d233e2c.js"),b=require("./Image-94820dfd.js"),y=require("./Grid-1acefee9.js"),w=require("./InfoList-e416058c.js");function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./Link-8951180c.js"),require("react-dom/server"),require("./clamp-bd21d587.js");var E,k,T,I,C,j,q,B,O,F,L,M,S,A,N,D,z,P,U,V=_(n),R=_(t),W=R.default.div.withConfig({displayName:"EventOverview__TagContainer",componentId:"sc-u2afqs-0"})(E||(E=e.__makeTemplateObject(["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"],["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"])),o.spacings.nudge,o.spacings.nudge,6*o.spacings.nudge),G=R.default.div.withConfig({displayName:"EventOverview__TagWrapper",componentId:"sc-u2afqs-1"})(k||(k=e.__makeTemplateObject(["\n padding-top: ","px;\n padding-left: ","px;\n"],["\n padding-top: ","px;\n padding-left: ","px;\n"])),o.spacings.nudge,o.spacings.nudge),H=R.default.ul.withConfig({displayName:"EventOverview__Events",componentId:"sc-u2afqs-2"})(T||(T=e.__makeTemplateObject(["\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"],["\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"])),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),3*o.spacings.nudge),K=R.default(p.Copy).withConfig({displayName:"EventOverview__FilterIcon",componentId:"sc-u2afqs-3"})(I||(I=e.__makeTemplateObject(["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"])),o.spacings.nudge/2,o.spacings.nudge,o.spacings.nudge),J=R.default.li.withConfig({displayName:"EventOverview__EventItem",componentId:"sc-u2afqs-4"})(C||(C=e.__makeTemplateObject(["\n /* padding: ","px 0; */\n"],["\n /* padding: ","px 0; */\n"])),3*o.spacings.nudge),Q=R.default.div.withConfig({displayName:"EventOverview__ListFooter",componentId:"sc-u2afqs-5"})(j||(j=e.__makeTemplateObject(["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"],["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"])),6*o.spacings.nudge,o.mq.medium),X=R.default.span.withConfig({displayName:"EventOverview__ShowMore",componentId:"sc-u2afqs-6"})(q||(q=e.__makeTemplateObject(["\n display: ",";\n"],["\n display: ",";\n"])),(function(e){var n=e.itemCount;return n&&n>2?"block":"none"})),Y=l.withLibTheme((function(t){var o=t.tags,b=t.events,y=t.bgMode,w=t.anchorId,_=t.initial,E=t.showMoreText,k=t.onTagClick,T=t.customTag,I="inverted"===y,C="full"===y,j=l.useLibTheme(),q=j.colors,B=j.globals,O=B.sections.eventFilterName,F=V.default.useState((null==_?void 0:_.activeTags)||[]),L=F[0],M=F[1],S=V.default.useState(1)[0],A=V.default.useState((null==_?void 0:_.visibleRows)||3),N=A[0],D=A[1],z=V.default.useRef(null),P=v.useObserverSupport(),U=f.useMounted(),R=(null==b?void 0:b.length)||0,Y=x.useScrollTo(800),Z=n.useCallback((function(){var e=[],n=g.getUrlParams()[O];if(n){var t=null==n?void 0:n.split(",");u.isValidArray(t,!1)&&e.push.apply(e,t)}return e}),[O]);n.useEffect((function(){if(!_){var e=Z();u.isValidArray(e,!1)&&M(e)}}),[Z,_]),n.useEffect((function(){var e;_&&!U&&(g.setUrlParam("rows",(null==_?void 0:_.visibleRows)||3),u.isValidArray(null==_?void 0:_.activeTags,!1)?g.setUrlParam(O,null===(e=null==_?void 0:_.activeTags)||void 0===e?void 0:e.join(",")):g.deleteUrlParam(O))}),[O,_,U]),h.useUpdateEffect((function(){g.setUrlParam("rows",N)}),[N]),h.useUpdateEffect((function(){!k&&u.isValidArray(L)&&(L.length>0?g.setUrlParam(O,L.join(",")):g.deleteUrlParam(O))}),[L]);var $=function(n,t){void 0===t&&(t=!0),M((function(a){var i=e.__spreadArray([],a,!0),r=n.name?a.indexOf(n.name):-1;return-1===r&&n.name?e.__spreadArray(e.__spreadArray([],i,!0),[n.name],!1):t?(i.splice(r,1),i):a})),D(3)},ee=n.useMemo((function(){var n=u.isValidArray(b)?e.__spreadArray([],b,!0):[];return n=null==n?void 0:n.filter((function(e){if(!u.isValidArray(L,!1))return!0;if(!e.tags)return!1;for(var n=!1,t=0;t<e.tags.length;t++)if(-1!==L.indexOf(e.tags[t].name||"")){n=!0;break}return n}))}),[b,L]),ne=n.useMemo((function(){return(null==ee?void 0:ee.filter((function(e,n){return n<N*S})))||[]}),[ee,S,N]);n.useEffect((function(){if(P){var e,n=z.current;if(n){(e=new IntersectionObserver((function(e){var n=e[0];(null==n?void 0:n.isIntersecting)&&N<Math.ceil(ee.length/S)&&D((function(e){return e+1}))}),{rootMargin:"0px 0px 100px 0px",threshold:0})).observe(n)}return function(){e&&e.disconnect()}}}),[S,R,N,P,ee.length]);var te=n.useMemo((function(){return null==o?void 0:o.filter((function(e){return e}))}),[o]);return V.default.createElement(a.Section,{addSeperation:!0,anchorId:w,bgColor:I?q.sectionBg.dark:C?q.sectionBg.medium:"transparent",bgMode:a.mapToBgMode(y,!0)},V.default.createElement(i.Wrapper,{addWhitespace:!0},u.isValidArray(te,!1)&&V.default.createElement(W,null,V.default.createElement(K,{size:"small",type:"copy",isInverted:I},V.default.createElement(e.Filter,null),V.default.createElement("span",null,"Filter")),te.map((function(e,n){return V.default.createElement(G,{key:n},T?T({key:n,name:e,isInverted:I,isActive:-1!==L.indexOf(e),clickHandler:function(n){null==n||n.preventDefault(),k?k({name:e}):$({name:e})}}):V.default.createElement(c.Tag,{isInverted:I,onClick:function(n){null==n||n.preventDefault(),k?k({name:e},!1):$({name:e})},isActive:-1!==L.indexOf(e)},e))}))),V.default.createElement(H,{hasBg:C},ne.map((function(n,t){var a,i="";n.date&&(i=new d.StatusFormatter(n.date.getTime(),"",B.sections.eventDateFormat(n.date),B.sections.eventTimeFormat(n.date),B.sections.eventLocaleKey).getFormattedTimespan(B.sections.eventTimespanFormat(n.date,n.duration),n.duration));var o=s.concat([i,n.address]," | ");return V.default.createElement(J,{key:"".concat(t,"_event_").concat(n.title)},V.default.createElement(r.EventBlock,e.__assign({hasBg:"full"===y},n,{text:o,tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(e){return{name:e.name}})),isInverted:I,onTagClick:function(e){Y(0),k?k({name:e.name},!0):$({name:e.name},!1)},customTag:T})))}))),V.default.createElement("div",{ref:z}),!P&&V.default.createElement(Q,null,b&&b.length>0&&V.default.createElement(p.Copy,{type:"copy",size:"medium",isInverted:I},V.default.createElement(X,{itemCount:b.length,onClick:function(e){e.preventDefault(),N<Math.ceil(ee.length/S)&&D((function(e){return e+1}))}},N<ee.length/S&&V.default.createElement(m.Pointer.View,{as:"button",isInverted:I},V.default.createElement(m.Pointer.Label,null,E||"mehr anzeigen")))))))})),Z=R.default.ul.withConfig({displayName:"EventList__List",componentId:"sc-1ssgszz-0"})(B||(B=e.__makeTemplateObject(["\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"],["\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ",";\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ",";\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ",";\n } */\n\n & > * + * {\n padding-top: ","px;\n }\n"])),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),(function(e){var n=e.theme;return e.hasBg?o.getColors(n).elementBg.light:o.getColors(n).elementBg.medium}),3*o.spacings.nudge),$=R.default.li.withConfig({displayName:"EventList__ListItem",componentId:"sc-1ssgszz-1"})(O||(O=e.__makeTemplateObject(["\n /* padding: ","px 0; */\n"],["\n /* padding: ","px 0; */\n"])),3*o.spacings.nudge),ee=l.withLibTheme((function(n){var t=n.anchorId,o=n.events,c=n.bgMode,m=n.customTag,p=l.useLibTheme(),g=p.colors,f=p.globals,v=p.theme,x="inverted"===c,h="full"===c;return V.default.createElement(a.Section,{addSeperation:!0,anchorId:t,bgColor:x?g.sectionBg.dark:c?g.sectionBg.medium:g.sectionBg.light,bgMode:a.mapToBgMode(c,!0)},V.default.createElement(i.Wrapper,{addWhitespace:!0},V.default.createElement(Z,{hasBg:h},null==o?void 0:o.map((function(n,t){var a,i="";n.date&&(i=new d.StatusFormatter(n.date.getTime(),"",f.sections.eventDateFormat(n.date),f.sections.eventTimeFormat(n.date),f.sections.eventLocaleKey).getFormattedTimespan(f.sections.eventTimespanFormat(n.date,n.duration),n.duration));var o=s.concat([i,n.address]," | ");return V.default.createElement($,{key:t},V.default.createElement(r.EventBlock,e.__assign({hasBg:"full"===c},n,{tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(n){var t,a,i=void 0;return n.name&&(null===(t=n.link)||void 0===t?void 0:t.href)&&(i=function(e,n,t){if(void 0===t&&(t=[]),!e||!n)return"";if(!u.isValidArray(t,!1))return e;var a=n.globals.sections.eventFilterName;if(!a)return e;try{var i=new URL(e),r=new URLSearchParams(i.search);return r.set(a,encodeURIComponent(t.join(","))),"".concat(e,"?").concat(r.toString())}catch(n){return"".concat(e,"?").concat(a,"=").concat(encodeURIComponent(t.join(",")))}}(n.link.href,v,[n.name])),{name:n.name,link:(null===(a=n.link)||void 0===a?void 0:a.href)?e.__assign(e.__assign({},n.link),{href:i}):void 0}})),isInverted:x,text:o,customTag:m})))})))))})),ne=R.default.div.withConfig({displayName:"EventDetail__ImageContainer",componentId:"sc-1ko6neq-0"})(F||(F=e.__makeTemplateObject(["\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ",";\n\n overflow: hidden;\n\n margin-bottom: ","px;\n"],["\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ",";\n\n overflow: hidden;\n\n margin-bottom: ","px;\n"])),(function(e){switch(e.hAlign){case"center":return"center";case"right":return"flex-end";default:return"flex-start"}}),o.spacings.spacer),te=R.default.div.withConfig({displayName:"EventDetail__ImgWrapper",componentId:"sc-1ko6neq-1"})(L||(L=e.__makeTemplateObject(["\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media "," {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ","px;\n }\n }\n"],["\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media "," {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ","px;\n }\n }\n"])),o.mq.medium,o.spacings.nudge),ae=R.default.div.withConfig({displayName:"EventDetail__ImageBackground",componentId:"sc-1ko6neq-2"})(M||(M=e.__makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ",";\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n"],["\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ",";\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n"])),(function(e){var n=e.theme;return e.isInverted?o.getGlobals(n).sections.imagePlaceholderBg.inverted:o.getGlobals(n).sections.imagePlaceholderBg.default})),ie=R.default(b.Image).withConfig({displayName:"EventDetail__StyledTextImage",componentId:"sc-1ko6neq-3"})(S||(S=e.__makeTemplateObject(["\n margin-top: ","px;\n\n @media "," {\n display: none;\n }\n"],["\n margin-top: ","px;\n\n @media "," {\n display: none;\n }\n"])),3*o.spacings.nudge,o.mq.medium),re=R.default.div.withConfig({displayName:"EventDetail__TagContainer",componentId:"sc-1ko6neq-4"})(A||(A=e.__makeTemplateObject(["\n max-width: 880px;\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n"],["\n max-width: 880px;\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n"])),o.spacings.nudge,o.spacings.nudge),oe=R.default.div.withConfig({displayName:"EventDetail__TagWrapper",componentId:"sc-1ko6neq-5"})(N||(N=e.__makeTemplateObject(["\n padding-top: ","px;\n padding-left: ","px;\n"],["\n padding-top: ","px;\n padding-left: ","px;\n"])),o.spacings.nudge,o.spacings.nudge),le=R.default(p.Heading).withConfig({displayName:"EventDetail__EventTitle",componentId:"sc-1ko6neq-6"})(D||(D=e.__makeTemplateObject(["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n @media "," {\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"],["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n @media "," {\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"])),3*o.spacings.nudge,o.mq.semilarge),de=R.default(p.Copy).withConfig({displayName:"EventDetail__EventDateTime",componentId:"sc-1ko6neq-7"})(z||(z=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*o.spacings.nudge),se=R.default(p.Copy).withConfig({displayName:"EventDetail__EventAddress",componentId:"sc-1ko6neq-8"})(P||(P=e.__makeTemplateObject(["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n "," + & {\n margin-top: ","px;\n }\n\n @media "," {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"],["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n "," + & {\n margin-top: ","px;\n }\n\n @media "," {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"])),3*o.spacings.nudge,de,o.spacings.nudge,o.mq.semilarge),ce=R.default(p.Copy).withConfig({displayName:"EventDetail__EventText",componentId:"sc-1ko6neq-9"})(U||(U=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*o.spacings.nudge),me=l.withLibTheme((function(t){var r,s=t.anchorId,m=t.event,p=t.infos,g=t.useImageAsBg,f=t.bgMode,v=t.customTag,x=l.useLibTheme(),h=x.colors,_=x.globals,E="inverted"===f,k="full"===f,T=n.useMemo((function(){return u.isValidArray(null==p?void 0:p.filter((function(e){return u.isValidArray(e.items,!1)})),!1)}),[p]),I="",C="";if(null==m?void 0:m.date){var j=new d.StatusFormatter(m.date.getTime(),"",_.sections.eventDateFormat(m.date),_.sections.eventTimeFormat(m.date),_.sections.eventLocaleKey);I=j.getFormattedDate(),C=j.getFormattedTimespan(_.sections.eventTimespanFormat(m.date,m.duration),m.duration)}var q=n.useMemo((function(){var e;return null===(e=null==m?void 0:m.images)||void 0===e?void 0:e.slice(0,2)}),[null==m?void 0:m.images]),B=null==q?void 0:q[1];return V.default.createElement(a.Section,{addSeperation:!0,anchorId:s,bgColor:E?h.sectionBg.dark:k?h.sectionBg.medium:h.sectionBg.light,bgMode:a.mapToBgMode(f,!0)},V.default.createElement(i.Wrapper,{addWhitespace:!0},u.isValidArray(q,!1)&&V.default.createElement(ne,{hAlign:g?"center":"left"},q.map((function(n,t){return n.small?V.default.createElement(te,{key:t},V.default.createElement(b.Image,e.__assign({},n,{coverSpace:!0,allowEdgeRadius:!0,isInverted:E,ratios:{small:{w:4,h:3}}}))):null})),V.default.createElement(ae,{isInverted:E,style:{backgroundImage:g&&q.length<2?"url(".concat(null===(r=null==m?void 0:m.images)||void 0===r?void 0:r[0].small,")"):void 0}})),V.default.createElement(y.Grid.Row,{gutter:5*o.spacings.nudge,semilarge:{gutter:o.spacings.spacer}},V.default.createElement(y.Grid.Col,{semilarge:{span:T?5.7/8:1}},(null==m?void 0:m.tags)&&V.default.createElement(re,null,m.tags.map((function(e,n){return V.default.createElement(oe,{key:"tag_"+n},v?v({key:"headtag-".concat(n),name:e.name||"",isInverted:E,isActive:!1,link:e.link}):V.default.createElement(c.Tag,{link:e.link,isInverted:E},e.name))}))),(null==m?void 0:m.title)&&V.default.createElement(le,{size:"heading-2",isInverted:E},m.title),I&&V.default.createElement(de,{size:"big",type:"copy-b",isInverted:E},I||"",I&&C?" | ":"",C),(null==m?void 0:m.address)&&V.default.createElement(se,{size:"big",type:"copy",innerHTML:m.address,isInverted:E}),(null==m?void 0:m.abstract)&&V.default.createElement(ce,{size:"medium",type:"copy-b",isInverted:E},m.abstract),B&&V.default.createElement(ie,e.__assign({},B,{coverSpace:!0,allowEdgeRadius:!0,isInverted:E,ratios:{small:{w:4,h:3}}})),(null==m?void 0:m.text)&&V.default.createElement(ce,{size:"medium",isInverted:E,innerHTML:m.text})),T&&V.default.createElement(y.Grid.Col,{semilarge:{span:2.3/8}},V.default.createElement(w.InfoList,{isInverted:E,items:p})))))}));exports.EventDetail=me,exports.EventList=ee,exports.EventOverview=Y;
|
|
2
2
|
//# sourceMappingURL=sections.events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.events.js","sources":["../src/components/sections/events/EventOverview.tsx","../src/components/sections/events/EventList.tsx","../src/components/sections/events/EventDetail.tsx"],"sourcesContent":["import Filter from 'components/base/icons/Filter';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport EventBlock, { EventProps } from 'components/blocks/EventBlock';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport Pointer from 'components/buttons/Pointer';\nimport Copy from 'components/typography/Copy';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { concat } from 'utils/concat';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport useMounted from 'utils/useMounted';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport useUpdateEffect from 'utils/useUpdateEffect';\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 Events = styled.ul<{ hasBg?: boolean }>`\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\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\nconst EventItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\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\nexport const getEventFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url || !theme) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.eventFilterName;\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\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Tags for events 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 tags,\n events,\n bgMode,\n anchorId,\n initial,\n showMoreText,\n onTagClick,\n customTag,\n}) => {\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.eventFilterName;\n\n const [selectedTags, setSelectedTags] = React.useState<string[]>(\n initial?.activeTags || []\n );\n const [itemsPerRow] = React.useState(1);\n const [visibleRows, setVisibleRows] = React.useState(\n initial?.visibleRows || 3\n );\n\n const targetRef = React.useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n const isMounted = useMounted();\n\n const eventCount = events?.length || 0;\n const setNewPos = useScrollTo(800);\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\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\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 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 setVisibleRows(3);\n };\n\n const filteredEvents = useMemo(() => {\n const tagFilterFn = (item: EventItem) => {\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(events) ? [...events] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [events, selectedTags]);\n\n const visibleEvents = useMemo(() => {\n return (\n filteredEvents?.filter((_, i) => i < visibleRows * itemsPerRow) ||\n []\n );\n }, [filteredEvents, 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 events\n if (\n visibleRows <\n Math.ceil(filteredEvents.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 eventCount,\n visibleRows,\n observerSupported,\n filteredEvents.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 : 'transparent'\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 <Events hasBg={hasBg}>\n {visibleEvents.map((item, i) => {\n let timespan = '';\n\n if (item.date) {\n const formatter = new StatusFormatter(\n item.date.getTime(),\n '',\n globals.sections.eventDateFormat(item.date),\n globals.sections.eventTimeFormat(item.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n item.date,\n item.duration\n ),\n item.duration\n );\n }\n\n const text = concat([timespan, item.address], ' | ');\n\n return (\n <EventItem key={`${i}_event_${item.title}`}>\n <EventBlock\n hasBg={bgMode === 'full'}\n {...item}\n text={text}\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(\n { name: tag.name },\n true\n );\n }\n }}\n customTag={customTag}\n />\n </EventItem>\n );\n })}\n </Events>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {events && events.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={events.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredEvents.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredEvents.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 EventOverviewComponent = EventOverview;\nexport default withLibTheme(EventOverview);\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 EventBlock, { EventProps } from 'components/blocks/EventBlock';\nimport { getColors as color, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { concat } from 'utils/concat';\nimport { getEventFilterParams } from './EventOverview';\n\nconst List = styled.ul<{ hasBg?: boolean }>`\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst ListItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\n`;\n\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\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, events, bgMode, customTag }) => {\n const { colors, globals, theme } = 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 : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <List hasBg={hasBg}>\n {events?.map((event, i) => {\n let timespan = '';\n\n if (event.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n event.date,\n event.duration\n ),\n event.duration\n );\n }\n\n const text = concat([timespan, event.address], ' | ');\n\n return (\n <ListItem key={i}>\n <EventBlock\n hasBg={bgMode === 'full'}\n {...event}\n tags={event.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getEventFilterParams(\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 text={text}\n customTag={customTag}\n />\n </ListItem>\n );\n })}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventListComponent = EventList;\nexport default withLibTheme(EventList);\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';\nimport { EventProps } from 'components/blocks/EventBlock';\nimport Image from 'components/blocks/Image';\nimport Tag from 'components/blocks/Tag';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { LinkProps } from 'components/typography/Link';\nimport { mq, spacings, getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport StatusFormatter from 'utils/statusFormatter';\nimport InfoList from 'components/blocks/InfoList';\nimport { isValidArray } from 'utils/arrays';\n\nconst ImageContainer = styled.div<{ hAlign?: 'left' | 'center' | 'right' }>`\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ${({ hAlign }) => {\n switch (hAlign) {\n case 'center':\n return 'center';\n\n case 'right':\n return 'flex-end';\n\n case 'left':\n default:\n return 'flex-start';\n }\n }};\n\n overflow: hidden;\n\n margin-bottom: ${spacings.spacer}px;\n`;\n\nconst ImgWrapper = styled.div`\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media ${mq.medium} {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ${spacings.nudge}px;\n }\n }\n`;\n\nconst ImageBackground = styled.div<{ isInverted?: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n`;\n\nconst StyledTextImage = styled(Image)`\n margin-top: ${spacings.nudge * 3}px;\n\n @media ${mq.medium} {\n display: none;\n }\n`;\n\nconst TagContainer = styled.div`\n max-width: 880px;\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\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst EventTitle = styled(Heading)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\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`;\n\nconst EventDateTime = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst EventAddress = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n ${EventDateTime} + & {\n margin-top: ${spacings.nudge}px;\n }\n\n @media ${mq.semilarge} {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst EventText = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nexport type DetailEventProps = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'link'\n>;\n\nexport interface EventInfoGroup {\n title?: string;\n items: EventInfo[];\n}\n\nexport interface EventInfo {\n /** icon injection function */\n icon?: (isInverted?: boolean) => React.ReactNode;\n /** Event info text (richtText) */\n text?: string;\n}\n\nconst EventDetail: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n event?: DetailEventProps & { address?: string; abstract?: string };\n\n /** Additional event infos */\n infos?: EventInfoGroup[];\n\n /** Use image as blurred background for single images */\n useImageAsBg?: boolean;\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\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, event, infos, useImageAsBg, bgMode, customTag }) => {\n const { colors, globals } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const hasInfos = useMemo(() => {\n return isValidArray(\n infos?.filter((info) => isValidArray(info.items, false)),\n false\n );\n }, [infos]);\n\n let publishedAt = '';\n let timespan = '';\n\n if (event?.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(event.date, event.duration),\n event.duration\n );\n }\n\n const images = useMemo(() => event?.images?.slice(0, 2), [event?.images]);\n const secondaryImage = images?.[1];\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(images, false) && (\n <ImageContainer hAlign={useImageAsBg ? 'center' : 'left'}>\n {images.map((img, i) => {\n if (!img.small) return null;\n return (\n <ImgWrapper key={i}>\n <Image\n {...img}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n />\n </ImgWrapper>\n );\n })}\n <ImageBackground\n isInverted={isInverted}\n style={{\n backgroundImage:\n useImageAsBg && images.length < 2\n ? `url(${event?.images?.[0].small})`\n : undefined,\n }}\n />\n </ImageContainer>\n )}\n <Grid.Row\n gutter={spacings.nudge * 5}\n semilarge={{ gutter: spacings.spacer }}\n >\n <Grid.Col semilarge={{ span: hasInfos ? 5.7 / 8 : 1 }}>\n {event?.tags && (\n <TagContainer>\n {event.tags.map((tag, i) => (\n <TagWrapper key={'tag_' + i}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n })\n ) : (\n <Tag\n link={tag.link}\n isInverted={isInverted}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n {event?.title && (\n <EventTitle\n size=\"heading-2\"\n isInverted={isInverted}\n >\n {event.title}\n </EventTitle>\n )}\n {publishedAt && (\n <EventDateTime\n size=\"big\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {publishedAt || ''}\n {publishedAt && timespan ? ' | ' : ''}\n {timespan}\n </EventDateTime>\n )}\n {event?.address && (\n <EventAddress\n size=\"big\"\n type=\"copy\"\n innerHTML={event.address}\n isInverted={isInverted}\n />\n )}\n {event?.abstract && (\n <EventText\n size=\"medium\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {event.abstract}\n </EventText>\n )}\n {secondaryImage && (\n <StyledTextImage\n {...secondaryImage}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n />\n )}\n {event?.text && (\n <EventText\n size=\"medium\"\n isInverted={isInverted}\n innerHTML={event.text}\n />\n )}\n </Grid.Col>\n {hasInfos && (\n <Grid.Col semilarge={{ span: 2.3 / 8 }}>\n <InfoList isInverted={isInverted} items={infos} />\n </Grid.Col>\n )}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventDetailComponent = EventDetail;\nexport default withLibTheme(EventDetail);\n"],"names":["TagContainer","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","nudge","TagWrapper","templateObject_2","Events","ul","_a","theme","hasBg","color","elementBg","light","medium","FilterIcon","Copy","templateObject_4","EventItem","li","ListFooter","templateObject_6","mq","ShowMore","span","templateObject_7","itemCount","EventOverview$1","withLibTheme","tags","events","bgMode","anchorId","initial","showMoreText","onTagClick","customTag","isInverted","_b","useLibTheme","colors","globals","filterName","sections","eventFilterName","_c","React","useState","activeTags","selectedTags","setSelectedTags","itemsPerRow","_d","visibleRows","setVisibleRows","targetRef","useRef","observerSupported","useObserverSupport","isMounted","useMounted","eventCount","length","setNewPos","useScrollTo","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","isValidArray","push","apply","useEffect","paramTags","setUrlParam","join","deleteUrlParam","useUpdateEffect","handleTagClick","tag","enableToggling","prev","prevCopy","__spreadArray","itemIndex","name","indexOf","splice","filteredEvents","useMemo","filtered","filter","item","hasTags","i","visibleEvents","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","Math","ceil","rootMargin","threshold","observe","disconnect","filteredTags","createElement","Section","addSeperation","bgColor","sectionBg","dark","mapToBgMode","Wrapper","addWhitespace","size","type","Filter","map","key","isActive","clickHandler","ev","preventDefault","Tag","onClick","timespan","date","StatusFormatter","getTime","eventDateFormat","eventTimeFormat","eventLocaleKey","getFormattedTimespan","eventTimespanFormat","duration","text","concat","address","title","EventBlock","__assign","ref","Pointer","View","as","Label","List","ListItem","EventList$1","event","tagHref","undefined","link","href","url","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","toString","err","getEventFilterParams","ImageContainer","hAlign","spacer","ImgWrapper","ImageBackground","templateObject_3","global","getGlobals","imagePlaceholderBg","inverted","default","StyledTextImage","Image","templateObject_5","EventTitle","Heading","semilarge","EventDateTime","templateObject_8","EventAddress","templateObject_9","EventText","templateObject_10","EventDetail$1","infos","useImageAsBg","hasInfos","info","items","publishedAt","formatter","getFormattedDate","images","slice","secondaryImage","img","small","coverSpace","allowEdgeRadius","ratios","w","h","style","backgroundImage","Grid","Row","gutter","Col","innerHTML","abstract","InfoList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sections.events.js","sources":["../src/components/sections/events/EventOverview.tsx","../src/components/sections/events/EventList.tsx","../src/components/sections/events/EventDetail.tsx"],"sourcesContent":["import Filter from 'components/base/icons/Filter';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport EventBlock, { EventProps } from 'components/blocks/EventBlock';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport Pointer from 'components/buttons/Pointer';\nimport Copy from 'components/typography/Copy';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { concat } from 'utils/concat';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport useMounted from 'utils/useMounted';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport useUpdateEffect from 'utils/useUpdateEffect';\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 Events = styled.ul<{ hasBg?: boolean }>`\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\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\nconst EventItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\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\nexport const getEventFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url || !theme) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.eventFilterName;\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\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Tags for events 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 tags,\n events,\n bgMode,\n anchorId,\n initial,\n showMoreText,\n onTagClick,\n customTag,\n}) => {\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.eventFilterName;\n\n const [selectedTags, setSelectedTags] = React.useState<string[]>(\n initial?.activeTags || []\n );\n const [itemsPerRow] = React.useState(1);\n const [visibleRows, setVisibleRows] = React.useState(\n initial?.visibleRows || 3\n );\n\n const targetRef = React.useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n const isMounted = useMounted();\n\n const eventCount = events?.length || 0;\n const setNewPos = useScrollTo(800);\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\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\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 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 setVisibleRows(3);\n };\n\n const filteredEvents = useMemo(() => {\n const tagFilterFn = (item: EventItem) => {\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(events) ? [...events] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [events, selectedTags]);\n\n const visibleEvents = useMemo(() => {\n return (\n filteredEvents?.filter((_, i) => i < visibleRows * itemsPerRow) ||\n []\n );\n }, [filteredEvents, 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 events\n if (\n visibleRows <\n Math.ceil(filteredEvents.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 eventCount,\n visibleRows,\n observerSupported,\n filteredEvents.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 : 'transparent'\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 <Events hasBg={hasBg}>\n {visibleEvents.map((item, i) => {\n let timespan = '';\n\n if (item.date) {\n const formatter = new StatusFormatter(\n item.date.getTime(),\n '',\n globals.sections.eventDateFormat(item.date),\n globals.sections.eventTimeFormat(item.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n item.date,\n item.duration\n ),\n item.duration\n );\n }\n\n const text = concat([timespan, item.address], ' | ');\n\n return (\n <EventItem key={`${i}_event_${item.title}`}>\n <EventBlock\n hasBg={bgMode === 'full'}\n {...item}\n text={text}\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(\n { name: tag.name },\n true\n );\n }\n }}\n customTag={customTag}\n />\n </EventItem>\n );\n })}\n </Events>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {events && events.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={events.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredEvents.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredEvents.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 EventOverviewComponent = EventOverview;\nexport default withLibTheme(EventOverview);\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 EventBlock, { EventProps } from 'components/blocks/EventBlock';\nimport { getColors as color, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { concat } from 'utils/concat';\nimport { getEventFilterParams } from './EventOverview';\n\nconst List = styled.ul<{ hasBg?: boolean }>`\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst ListItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\n`;\n\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\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, events, bgMode, customTag }) => {\n const { colors, globals, theme } = 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 : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <List hasBg={hasBg}>\n {events?.map((event, i) => {\n let timespan = '';\n\n if (event.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n event.date,\n event.duration\n ),\n event.duration\n );\n }\n\n const text = concat([timespan, event.address], ' | ');\n\n return (\n <ListItem key={i}>\n <EventBlock\n hasBg={bgMode === 'full'}\n {...event}\n tags={event.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getEventFilterParams(\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 text={text}\n customTag={customTag}\n />\n </ListItem>\n );\n })}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventListComponent = EventList;\nexport default withLibTheme(EventList);\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';\nimport { EventProps } from 'components/blocks/EventBlock';\nimport Image from 'components/blocks/Image';\nimport Tag from 'components/blocks/Tag';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { LinkProps } from 'components/typography/Link';\nimport { mq, spacings, getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport StatusFormatter from 'utils/statusFormatter';\nimport InfoList from 'components/blocks/InfoList';\nimport { isValidArray } from 'utils/arrays';\n\nconst ImageContainer = styled.div<{ hAlign?: 'left' | 'center' | 'right' }>`\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ${({ hAlign }) => {\n switch (hAlign) {\n case 'center':\n return 'center';\n\n case 'right':\n return 'flex-end';\n\n case 'left':\n default:\n return 'flex-start';\n }\n }};\n\n overflow: hidden;\n\n margin-bottom: ${spacings.spacer}px;\n`;\n\nconst ImgWrapper = styled.div`\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media ${mq.medium} {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ${spacings.nudge}px;\n }\n }\n`;\n\nconst ImageBackground = styled.div<{ isInverted?: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n`;\n\nconst StyledTextImage = styled(Image)`\n margin-top: ${spacings.nudge * 3}px;\n\n @media ${mq.medium} {\n display: none;\n }\n`;\n\nconst TagContainer = styled.div`\n max-width: 880px;\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\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst EventTitle = styled(Heading)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\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`;\n\nconst EventDateTime = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst EventAddress = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n ${EventDateTime} + & {\n margin-top: ${spacings.nudge}px;\n }\n\n @media ${mq.semilarge} {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst EventText = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nexport type DetailEventProps = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'link'\n>;\n\nexport interface EventInfoGroup {\n title?: string;\n items: EventInfo[];\n}\n\nexport interface EventInfo {\n /** icon injection function */\n icon?: (isInverted?: boolean) => React.ReactNode;\n /** Event info text (richtText) */\n text?: string;\n}\n\nconst EventDetail: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n event?: DetailEventProps & { address?: string; abstract?: string };\n\n /** Additional event infos */\n infos?: EventInfoGroup[];\n\n /** Use image as blurred background for single images */\n useImageAsBg?: boolean;\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\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, event, infos, useImageAsBg, bgMode, customTag }) => {\n const { colors, globals } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const hasInfos = useMemo(() => {\n return isValidArray(\n infos?.filter((info) => isValidArray(info.items, false)),\n false\n );\n }, [infos]);\n\n let publishedAt = '';\n let timespan = '';\n\n if (event?.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(event.date, event.duration),\n event.duration\n );\n }\n\n const images = useMemo(() => event?.images?.slice(0, 2), [event?.images]);\n const secondaryImage = images?.[1];\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(images, false) && (\n <ImageContainer hAlign={useImageAsBg ? 'center' : 'left'}>\n {images.map((img, i) => {\n if (!img.small) return null;\n return (\n <ImgWrapper key={i}>\n <Image\n {...img}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n />\n </ImgWrapper>\n );\n })}\n <ImageBackground\n isInverted={isInverted}\n style={{\n backgroundImage:\n useImageAsBg && images.length < 2\n ? `url(${event?.images?.[0].small})`\n : undefined,\n }}\n />\n </ImageContainer>\n )}\n <Grid.Row\n gutter={spacings.nudge * 5}\n semilarge={{ gutter: spacings.spacer }}\n >\n <Grid.Col semilarge={{ span: hasInfos ? 5.7 / 8 : 1 }}>\n {event?.tags && (\n <TagContainer>\n {event.tags.map((tag, i) => (\n <TagWrapper key={'tag_' + i}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n })\n ) : (\n <Tag\n link={tag.link}\n isInverted={isInverted}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n {event?.title && (\n <EventTitle\n size=\"heading-2\"\n isInverted={isInverted}\n >\n {event.title}\n </EventTitle>\n )}\n {publishedAt && (\n <EventDateTime\n size=\"big\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {publishedAt || ''}\n {publishedAt && timespan ? ' | ' : ''}\n {timespan}\n </EventDateTime>\n )}\n {event?.address && (\n <EventAddress\n size=\"big\"\n type=\"copy\"\n innerHTML={event.address}\n isInverted={isInverted}\n />\n )}\n {event?.abstract && (\n <EventText\n size=\"medium\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {event.abstract}\n </EventText>\n )}\n {secondaryImage && (\n <StyledTextImage\n {...secondaryImage}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n />\n )}\n {event?.text && (\n <EventText\n size=\"medium\"\n isInverted={isInverted}\n innerHTML={event.text}\n />\n )}\n </Grid.Col>\n {hasInfos && (\n <Grid.Col semilarge={{ span: 2.3 / 8 }}>\n <InfoList isInverted={isInverted} items={infos} />\n </Grid.Col>\n )}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventDetailComponent = EventDetail;\nexport default withLibTheme(EventDetail);\n"],"names":["TagContainer","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","nudge","TagWrapper","templateObject_2","Events","ul","_a","theme","hasBg","color","elementBg","light","medium","FilterIcon","Copy","templateObject_4","EventItem","li","ListFooter","templateObject_6","mq","ShowMore","span","templateObject_7","itemCount","EventOverview$1","withLibTheme","tags","events","bgMode","anchorId","initial","showMoreText","onTagClick","customTag","isInverted","_b","useLibTheme","colors","globals","filterName","sections","eventFilterName","_c","React","useState","activeTags","selectedTags","setSelectedTags","itemsPerRow","_d","visibleRows","setVisibleRows","targetRef","useRef","observerSupported","useObserverSupport","isMounted","useMounted","eventCount","length","setNewPos","useScrollTo","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","isValidArray","push","apply","useEffect","paramTags","setUrlParam","join","deleteUrlParam","useUpdateEffect","handleTagClick","tag","enableToggling","prev","prevCopy","__spreadArray","itemIndex","name","indexOf","splice","filteredEvents","useMemo","filtered","filter","item","hasTags","i","visibleEvents","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","Math","ceil","rootMargin","threshold","observe","disconnect","filteredTags","createElement","Section","addSeperation","bgColor","sectionBg","dark","mapToBgMode","Wrapper","addWhitespace","size","type","Filter","map","key","isActive","clickHandler","ev","preventDefault","Tag","onClick","timespan","date","StatusFormatter","getTime","eventDateFormat","eventTimeFormat","eventLocaleKey","getFormattedTimespan","eventTimespanFormat","duration","text","concat","address","title","EventBlock","__assign","ref","Pointer","View","as","Label","List","ListItem","EventList$1","event","tagHref","undefined","link","href","url","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","toString","err","getEventFilterParams","ImageContainer","hAlign","spacer","ImgWrapper","ImageBackground","templateObject_3","global","getGlobals","imagePlaceholderBg","inverted","default","StyledTextImage","Image","templateObject_5","EventTitle","Heading","semilarge","EventDateTime","templateObject_8","EventAddress","templateObject_9","EventText","templateObject_10","EventDetail$1","infos","useImageAsBg","hasInfos","info","items","publishedAt","formatter","getFormattedDate","images","slice","secondaryImage","img","small","coverSpace","allowEdgeRadius","ratios","w","h","style","backgroundImage","Grid","Row","gutter","Col","innerHTML","abstract","InfoList"],"mappings":"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"}
|
package/cjs/sections.forms.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Filter-89286db9.js"),n=require("react"),t=require("styled-components"),r=require("./LibThemeProvider-69109901.js"),i=require("./Section-c9a16ccc.js"),a=require("./styles-13e5d9ac.js"),l=require("./Wrapper-bca9463e.js"),d=require("./Textfield-24f468be.js"),o=require("formik"),s=require("./Actions-c52a14e4.js"),u=require("./Button-1adf99b8.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-f387d848.js"),require("./arrays-c272ed59.js"),require("react-dom/server"),require("./Copy-a0bc570d.js"),require("./clamp-bd21d587.js"),require("./formFieldText-046fcbf4.js"),require("./hexRgbConverter-91b28aea.js");var m,g,f,p=c(n),h=c(t),v=h.default.form.withConfig({displayName:"NewsletterForm__Form",componentId:"sc-1pmvhu2-0"})(m||(m=e.__makeTemplateObject(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media "," {\n flex-direction: row;\n }\n"],["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media "," {\n flex-direction: row;\n }\n"])),a.mq.semilarge),b=h.default.div.withConfig({displayName:"NewsletterForm__FieldContainer",componentId:"sc-1pmvhu2-1"})(g||(g=e.__makeTemplateObject(["\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ","px;\n }\n\n &:last-child {\n padding-left: ","px;\n }\n }\n"],["\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ","px;\n }\n\n &:last-child {\n padding-left: ","px;\n }\n }\n"])),3*a.spacings.nudge,3*a.spacings.nudge,a.mq.semilarge,3*a.spacings.nudge,3*a.spacings.nudge),x=h.default.div.withConfig({displayName:"NewsletterForm__ActionContainer",componentId:"sc-1pmvhu2-2"})(f||(f=e.__makeTemplateObject(["\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ","px;\n\n text-align: center;\n"],["\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ","px;\n\n text-align: center;\n"])),2*a.spacings.spacer),_=function(e){var n=e.key,t=e.field,r=e.isInverted,i=e.value,a=e.handleChange,l=e.handleBlur,o=e.error,s=e.isTouched;return p.default.createElement(d.Textfield,{key:n,label:"".concat(t.label||n).concat(t.isRequired?"*":""),placeholder:t.placeholder,name:"".concat(n),isInverted:r,value:i,onChange:a,onBlur:l,infoMessage:t.info,errorMessage:o&&s?o:void 0})},q=r.withLibTheme((function(t){var d=t.anchorId,c=t.bgMode,m=t.fields,g=t.customField,f=t.action,h=t.method,q=t.submitAction,w=t.onSubmit,j=r.useLibTheme().theme,y=n.useRef(null),C="inverted"===c,T={};for(var F in m)T[F]=m[F].initialValue||"";var k=o.useFormik({initialValues:e.__assign({},T),onSubmit:function(n){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return y.current?f&&h?(y.current.submit(),[3,4]):[3,1]:[2];case 1:return w?[4,w(n,y.current)]:[3,3];case 2:e.sent(),e.label=3;case 3:e.label=4;case 4:return S(!1),[2]}}))}))},validateOnBlur:!0,validateOnChange:!0,validate:function(n){return e.__awaiter(void 0,void 0,void 0,(function(){var t,r,i,a,l,d,o,s;return e.__generator(this,(function(e){switch(e.label){case 0:for(i in t={},r=[],m)r.push(i);a=0,e.label=1;case 1:return a<r.length?(l=r[a],d=m[l],o=d.inputType,m[l].isRequired&&!n[l]&&(t[l]=m[l].errorMsg||"Required field"),d.validate?[4,d.validate(l,n[l],d)]:[3,3]):[3,5];case 2:return(s=e.sent())&&(t[l]=s),[3,5];case 3:switch(o){case"email":n[l]&&!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(n[l])&&(t[l]=m[l].errorMsg||"Invalid Mail format");break;case"tel":n[l]&&/[A-Z]/gi.test(n[l])&&(t[l]=m[l].errorMsg||"Ungültige Telefonnummer");break;case"number":n[l]&&!/^[+]?\d+([.]\d+)?$/gm.test(n[l])&&(t[l]=m[l].errorMsg||"Zahlenformat ungültig")}e.label=4;case 4:return a++,[3,1];case 5:return[2,t]}}))}))}}),B=k.handleSubmit,M=k.handleChange,O=k.handleBlur,I=k.setFieldTouched,S=k.setSubmitting,E=k.validateField,A=k.submitForm,N=k.setValues,R=k.isSubmitting,Z=k.touched,L=k.values,V=k.errors,W=k.dirty,D=k.validateOnBlur,P=k.validateOnChange,$=n.useCallback((function(n,t,r){return e.__awaiter(void 0,void 0,void 0,(function(){var i;return e.__generator(this,(function(a){return[2,N(e.__assign(e.__assign({},L),(i={},i[n]=t,i)),r)]}))}))}),[N,L]);return p.default.createElement(i.Section,{addSeperation:!0,anchorId:d,bgColor:C?a.getColors(j).sectionBg.dark:c?a.getColors(j).sectionBg.medium:a.getColors(j).sectionBg.light,bgMode:i.mapToBgMode(c,!0)},p.default.createElement(l.Wrapper,{addWhitespace:!0},p.default.createElement(v,{ref:y,action:f,method:h,onSubmit:B},p.default.createElement(b,null,m&&Object.keys(m).map((function(e,n){var t={index:n,field:m[e],key:e,value:L[e],error:V[e],isTouched:Z[e]||!1,isInverted:C,setField:$,setTouched:I,validateField:E,handleChange:M,handleBlur:O,validateOnBlur:D,validateOnChange:P,theme:j};return g?g(t):_(t)})))),m&&p.default.createElement(x,null,p.default.createElement(s.Actions,{primary:q?q({isInverted:C,isDisabled:R||!W,handleSubmit:A}):p.default.createElement(u.Button.View,e.__assign({as:"button",onClick:A,isDisabled:R||!W},{type:"submit"}),p.default.createElement(u.Button.Label,null,"send"))}))))}));exports.NewsletterForm=q;
|
|
2
2
|
//# sourceMappingURL=sections.forms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.forms.js","sources":["../src/components/sections/NewsletterForm.tsx"],"sourcesContent":["import React, { FC, useCallback, useRef } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport Wrapper from 'components/base/Wrapper';\nimport Textfield from 'components/fields/Textfield';\nimport { FormikErrors, useFormik } from 'formik';\nimport Actions from 'components/blocks/Actions';\nimport Button from 'components/buttons/Button';\n\nconst Form = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media ${mq.semilarge} {\n flex-direction: row;\n }\n`;\n\nconst FieldContainer = styled.div`\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ${spacings.nudge * 3}px;\n }\n\n &:last-child {\n padding-left: ${spacings.nudge * 3}px;\n }\n }\n`;\n\nconst ActionContainer = styled.div`\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ${spacings.spacer * 2}px;\n\n text-align: center;\n`;\n\nexport interface FieldGenerationProps {\n field: NewsletterField;\n value: string;\n error: string;\n info?: string;\n isTouched: boolean;\n key: string;\n isInverted: boolean;\n theme: DefaultTheme;\n setField: (\n field: string,\n value: any,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n validateField: (\n name: string\n ) => Promise<string | undefined> | Promise<void>;\n setTouched: (\n field: string,\n touched?: boolean | undefined,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n handleChange: {\n (e: React.ChangeEvent<any>): void;\n <T_1 = string | React.ChangeEvent<any>>(\n field: T_1\n ): T_1 extends React.ChangeEvent<any>\n ? void\n : (e: string | React.ChangeEvent<any>) => void;\n };\n handleBlur: {\n (e: React.FocusEvent<any>): void;\n <T = any>(fieldOrEvent: T): T extends string ? (e: any) => void : void;\n };\n validateOnBlur?: boolean;\n validateOnChange?: boolean;\n}\n\nexport interface NewsletterFormStructure {\n [key: string]: NewsletterField;\n}\n\nexport interface FormData {\n [key: string]: string;\n}\n\nexport interface NewsletterField {\n inputType?: 'text' | 'number' | 'email' | 'password' | 'tel';\n isRequired?: boolean;\n label?: string;\n errorMsg?: string;\n initialValue?: string;\n placeholder?: string;\n info?: string;\n validate?: (\n key: string,\n value: string,\n config: NewsletterField\n ) => Promise<string>;\n}\n\nconst NewsletterForm: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Structure to define fields of newsletter form */\n fields?: NewsletterFormStructure;\n\n /** Function to inject custom field definition */\n customField?: (props: FieldGenerationProps) => React.ReactNode;\n\n /** HTML form element action */\n action?: string;\n\n /** HTML form element method */\n method?: string;\n\n /** Form submission callback */\n onSubmit?: (values: FormData, element: HTMLFormElement) => Promise<void>;\n\n /** Function to inject custom submit button */\n submitAction?: (props: {\n isInverted?: boolean;\n handleSubmit?: () => Promise<any>;\n isDisabled?: boolean;\n }) => React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgMode,\n fields,\n customField,\n action,\n method,\n submitAction,\n onSubmit,\n}) => {\n const { theme } = useLibTheme();\n const formRef = useRef<HTMLFormElement>(null);\n const isInverted = bgMode === 'inverted';\n\n // generate initial data and setup yup validation definition\n const initialData: FormData = {};\n\n for (const key in fields) {\n initialData[key] = fields[key].initialValue || '';\n }\n\n const validation = async (values: FormData) => {\n const errors: Partial<FormData> = {};\n\n // search for errors and set them\n for (const key in fields) {\n const config = fields[key];\n const inputType = config.inputType;\n\n // default\n if (fields[key].isRequired && !values[key]) {\n errors[key] = fields[key].errorMsg || 'Required field';\n }\n\n // custom validation\n if (config.validate) {\n const error = await config.validate(\n key,\n values[key] as string,\n config\n );\n if (error) errors[key] = error;\n break;\n }\n\n switch (inputType) {\n case 'email':\n if (\n values[key] &&\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\n values[key] as string\n )\n ) {\n errors[key] =\n fields[key].errorMsg || 'Invalid Mail format';\n }\n break;\n case 'tel':\n if (values[key] && /[A-Z]/gi.test(values[key] as string)) {\n errors[key] =\n fields[key].errorMsg || 'Ungültige Telefonnummer';\n }\n break;\n case 'number':\n if (\n values[key] &&\n !/^[+]?\\d+([.]\\d+)?$/gm.test(values[key] as string)\n ) {\n errors[key] =\n fields[key].errorMsg || 'Zahlenformat ungültig';\n }\n break;\n }\n }\n\n return errors;\n };\n\n // formik hook\n const {\n handleSubmit,\n handleChange,\n handleBlur,\n setFieldTouched,\n setSubmitting,\n validateField,\n submitForm,\n setValues,\n isSubmitting,\n touched,\n values,\n errors,\n dirty,\n validateOnBlur,\n validateOnChange,\n } = useFormik<FormData>({\n initialValues: {\n ...initialData,\n } as FormData,\n\n onSubmit: async (values) => {\n if (!formRef.current) return;\n\n if (action && method) {\n formRef.current.submit();\n } else {\n onSubmit && (await onSubmit(values, formRef.current));\n }\n\n setSubmitting(false);\n },\n validateOnBlur: true,\n validateOnChange: true,\n validate: validation,\n });\n\n // rewrite setFieldValue to prevent loadash feature of Formik: https://github.com/jaredpalmer/formik/issues/2262\n const setField = useCallback(\n async (key: string, value: any, shouldValidate?: boolean) => {\n return setValues({ ...values, [key]: value }, shouldValidate);\n },\n [setValues, values]\n );\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? color(theme).sectionBg.dark\n : bgMode\n ? color(theme).sectionBg.medium\n : color(theme).sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <Form\n ref={formRef}\n action={action}\n method={method}\n onSubmit={handleSubmit}\n >\n <FieldContainer>\n {fields &&\n Object.keys(fields).map((key, i) => {\n const generationProps = {\n index: i,\n field: fields[key],\n key: key,\n value: values[key],\n error: errors[key],\n isTouched: touched[key] || false,\n isInverted: isInverted,\n setField: setField,\n setTouched: setFieldTouched,\n validateField: validateField,\n handleChange: handleChange,\n handleBlur: handleBlur,\n validateOnBlur,\n validateOnChange,\n theme: theme,\n } as FieldGenerationProps;\n\n return customField\n ? customField(generationProps)\n : generateTextField(generationProps);\n })}\n </FieldContainer>\n </Form>\n {fields && (\n <ActionContainer>\n <Actions\n primary={\n submitAction ? (\n submitAction({\n isInverted,\n isDisabled: isSubmitting || !dirty,\n handleSubmit: submitForm,\n })\n ) : (\n <Button.View\n as=\"button\"\n onClick={submitForm}\n isDisabled={isSubmitting || !dirty}\n {...{\n type: 'submit',\n }}\n >\n <Button.Label>send</Button.Label>\n </Button.View>\n )\n }\n />\n </ActionContainer>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nconst generateTextField = ({\n key,\n field,\n isInverted,\n value,\n handleChange,\n handleBlur,\n error,\n isTouched,\n}: FieldGenerationProps) => (\n <Textfield\n key={key}\n label={`${field.label || key}${field.isRequired ? '*' : ''}`}\n placeholder={field.placeholder}\n name={`${key}`}\n isInverted={isInverted}\n value={value as string}\n onChange={handleChange}\n onBlur={handleBlur}\n infoMessage={field.info}\n errorMessage={error && isTouched ? error : undefined}\n />\n);\n\nexport const NewsletterFormComponent = NewsletterForm;\nexport default withLibTheme(NewsletterForm);\n"],"names":["Form","styled","form","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","mq","semilarge","FieldContainer","div","templateObject_2","spacings","nudge","ActionContainer","spacer","generateTextField","_a","key","field","isInverted","value","handleChange","handleBlur","error","isTouched","React","createElement","Textfield","label","concat","isRequired","placeholder","name","onChange","onBlur","infoMessage","info","errorMessage","undefined","NewsletterForm$1","withLibTheme","anchorId","bgMode","fields","customField","action","method","submitAction","onSubmit","theme","useLibTheme","formRef","useRef","initialData","initialValue","_b","useFormik","initialValues","__assign","values","__awaiter","current","submit","sent","setSubmitting","validateOnBlur","validateOnChange","validate","errors","config","inputType","errorMsg","_c","test","handleSubmit","setFieldTouched","validateField","submitForm","setValues","isSubmitting","touched","dirty","setField","useCallback","shouldValidate","Section","addSeperation","bgColor","color","getColors","sectionBg","dark","medium","light","mapToBgMode","Wrapper","addWhitespace","ref","Object","keys","map","i","generationProps","index","setTouched","Actions","primary","isDisabled","Button","View","as","onClick","type","Label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sections.forms.js","sources":["../src/components/sections/NewsletterForm.tsx"],"sourcesContent":["import React, { FC, useCallback, useRef } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport Wrapper from 'components/base/Wrapper';\nimport Textfield from 'components/fields/Textfield';\nimport { FormikErrors, useFormik } from 'formik';\nimport Actions from 'components/blocks/Actions';\nimport Button from 'components/buttons/Button';\n\nconst Form = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media ${mq.semilarge} {\n flex-direction: row;\n }\n`;\n\nconst FieldContainer = styled.div`\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ${spacings.nudge * 3}px;\n }\n\n &:last-child {\n padding-left: ${spacings.nudge * 3}px;\n }\n }\n`;\n\nconst ActionContainer = styled.div`\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ${spacings.spacer * 2}px;\n\n text-align: center;\n`;\n\nexport interface FieldGenerationProps {\n field: NewsletterField;\n value: string;\n error: string;\n info?: string;\n isTouched: boolean;\n key: string;\n isInverted: boolean;\n theme: DefaultTheme;\n setField: (\n field: string,\n value: any,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n validateField: (\n name: string\n ) => Promise<string | undefined> | Promise<void>;\n setTouched: (\n field: string,\n touched?: boolean | undefined,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n handleChange: {\n (e: React.ChangeEvent<any>): void;\n <T_1 = string | React.ChangeEvent<any>>(\n field: T_1\n ): T_1 extends React.ChangeEvent<any>\n ? void\n : (e: string | React.ChangeEvent<any>) => void;\n };\n handleBlur: {\n (e: React.FocusEvent<any>): void;\n <T = any>(fieldOrEvent: T): T extends string ? (e: any) => void : void;\n };\n validateOnBlur?: boolean;\n validateOnChange?: boolean;\n}\n\nexport interface NewsletterFormStructure {\n [key: string]: NewsletterField;\n}\n\nexport interface FormData {\n [key: string]: string;\n}\n\nexport interface NewsletterField {\n inputType?: 'text' | 'number' | 'email' | 'password' | 'tel';\n isRequired?: boolean;\n label?: string;\n errorMsg?: string;\n initialValue?: string;\n placeholder?: string;\n info?: string;\n validate?: (\n key: string,\n value: string,\n config: NewsletterField\n ) => Promise<string>;\n}\n\nconst NewsletterForm: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Structure to define fields of newsletter form */\n fields?: NewsletterFormStructure;\n\n /** Function to inject custom field definition */\n customField?: (props: FieldGenerationProps) => React.ReactNode;\n\n /** HTML form element action */\n action?: string;\n\n /** HTML form element method */\n method?: string;\n\n /** Form submission callback */\n onSubmit?: (values: FormData, element: HTMLFormElement) => Promise<void>;\n\n /** Function to inject custom submit button */\n submitAction?: (props: {\n isInverted?: boolean;\n handleSubmit?: () => Promise<any>;\n isDisabled?: boolean;\n }) => React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgMode,\n fields,\n customField,\n action,\n method,\n submitAction,\n onSubmit,\n}) => {\n const { theme } = useLibTheme();\n const formRef = useRef<HTMLFormElement>(null);\n const isInverted = bgMode === 'inverted';\n\n // generate initial data and setup yup validation definition\n const initialData: FormData = {};\n\n for (const key in fields) {\n initialData[key] = fields[key].initialValue || '';\n }\n\n const validation = async (values: FormData) => {\n const errors: Partial<FormData> = {};\n\n // search for errors and set them\n for (const key in fields) {\n const config = fields[key];\n const inputType = config.inputType;\n\n // default\n if (fields[key].isRequired && !values[key]) {\n errors[key] = fields[key].errorMsg || 'Required field';\n }\n\n // custom validation\n if (config.validate) {\n const error = await config.validate(\n key,\n values[key] as string,\n config\n );\n if (error) errors[key] = error;\n break;\n }\n\n switch (inputType) {\n case 'email':\n if (\n values[key] &&\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\n values[key] as string\n )\n ) {\n errors[key] =\n fields[key].errorMsg || 'Invalid Mail format';\n }\n break;\n case 'tel':\n if (values[key] && /[A-Z]/gi.test(values[key] as string)) {\n errors[key] =\n fields[key].errorMsg || 'Ungültige Telefonnummer';\n }\n break;\n case 'number':\n if (\n values[key] &&\n !/^[+]?\\d+([.]\\d+)?$/gm.test(values[key] as string)\n ) {\n errors[key] =\n fields[key].errorMsg || 'Zahlenformat ungültig';\n }\n break;\n }\n }\n\n return errors;\n };\n\n // formik hook\n const {\n handleSubmit,\n handleChange,\n handleBlur,\n setFieldTouched,\n setSubmitting,\n validateField,\n submitForm,\n setValues,\n isSubmitting,\n touched,\n values,\n errors,\n dirty,\n validateOnBlur,\n validateOnChange,\n } = useFormik<FormData>({\n initialValues: {\n ...initialData,\n } as FormData,\n\n onSubmit: async (values) => {\n if (!formRef.current) return;\n\n if (action && method) {\n formRef.current.submit();\n } else {\n onSubmit && (await onSubmit(values, formRef.current));\n }\n\n setSubmitting(false);\n },\n validateOnBlur: true,\n validateOnChange: true,\n validate: validation,\n });\n\n // rewrite setFieldValue to prevent loadash feature of Formik: https://github.com/jaredpalmer/formik/issues/2262\n const setField = useCallback(\n async (key: string, value: any, shouldValidate?: boolean) => {\n return setValues({ ...values, [key]: value }, shouldValidate);\n },\n [setValues, values]\n );\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? color(theme).sectionBg.dark\n : bgMode\n ? color(theme).sectionBg.medium\n : color(theme).sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <Form\n ref={formRef}\n action={action}\n method={method}\n onSubmit={handleSubmit}\n >\n <FieldContainer>\n {fields &&\n Object.keys(fields).map((key, i) => {\n const generationProps = {\n index: i,\n field: fields[key],\n key: key,\n value: values[key],\n error: errors[key],\n isTouched: touched[key] || false,\n isInverted: isInverted,\n setField: setField,\n setTouched: setFieldTouched,\n validateField: validateField,\n handleChange: handleChange,\n handleBlur: handleBlur,\n validateOnBlur,\n validateOnChange,\n theme: theme,\n } as FieldGenerationProps;\n\n return customField\n ? customField(generationProps)\n : generateTextField(generationProps);\n })}\n </FieldContainer>\n </Form>\n {fields && (\n <ActionContainer>\n <Actions\n primary={\n submitAction ? (\n submitAction({\n isInverted,\n isDisabled: isSubmitting || !dirty,\n handleSubmit: submitForm,\n })\n ) : (\n <Button.View\n as=\"button\"\n onClick={submitForm}\n isDisabled={isSubmitting || !dirty}\n {...{\n type: 'submit',\n }}\n >\n <Button.Label>send</Button.Label>\n </Button.View>\n )\n }\n />\n </ActionContainer>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nconst generateTextField = ({\n key,\n field,\n isInverted,\n value,\n handleChange,\n handleBlur,\n error,\n isTouched,\n}: FieldGenerationProps) => (\n <Textfield\n key={key}\n label={`${field.label || key}${field.isRequired ? '*' : ''}`}\n placeholder={field.placeholder}\n name={`${key}`}\n isInverted={isInverted}\n value={value as string}\n onChange={handleChange}\n onBlur={handleBlur}\n infoMessage={field.info}\n errorMessage={error && isTouched ? error : undefined}\n />\n);\n\nexport const NewsletterFormComponent = NewsletterForm;\nexport default withLibTheme(NewsletterForm);\n"],"names":["Form","styled","form","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","mq","semilarge","FieldContainer","div","templateObject_2","spacings","nudge","ActionContainer","spacer","generateTextField","_a","key","field","isInverted","value","handleChange","handleBlur","error","isTouched","React","createElement","Textfield","label","concat","isRequired","placeholder","name","onChange","onBlur","infoMessage","info","errorMessage","undefined","NewsletterForm$1","withLibTheme","anchorId","bgMode","fields","customField","action","method","submitAction","onSubmit","theme","useLibTheme","formRef","useRef","initialData","initialValue","_b","useFormik","initialValues","__assign","values","__awaiter","current","submit","sent","setSubmitting","validateOnBlur","validateOnChange","validate","errors","config","inputType","errorMsg","_c","test","handleSubmit","setFieldTouched","validateField","submitForm","setValues","isSubmitting","touched","dirty","setField","useCallback","shouldValidate","Section","addSeperation","bgColor","color","getColors","sectionBg","dark","medium","light","mapToBgMode","Wrapper","addWhitespace","ref","Object","keys","map","i","generationProps","index","setTouched","Actions","primary","isDisabled","Button","View","as","onClick","type","Label"],"mappings":"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"}
|