@blateral/b.kit 2.3.0-beta.1.3 → 2.3.0-beta.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/cjs/EventBlock-10b9d78d.js +2 -0
  2. package/cjs/EventBlock-10b9d78d.js.map +1 -0
  3. package/cjs/FileUpload-ece8bb07.js +2 -0
  4. package/cjs/FileUpload-ece8bb07.js.map +1 -0
  5. package/cjs/Filter-d6d90b8b.js +2 -0
  6. package/cjs/Filter-d6d90b8b.js.map +1 -0
  7. package/cjs/FilterField-cf9e2f16.js +2 -0
  8. package/cjs/FilterField-cf9e2f16.js.map +1 -0
  9. package/cjs/Grid-39b12e21.js +2 -0
  10. package/cjs/Grid-39b12e21.js.map +1 -0
  11. package/cjs/InfoList-577f3c57.js +2 -0
  12. package/cjs/InfoList-577f3c57.js.map +1 -0
  13. package/cjs/POICard-492bf8d0.js +2 -0
  14. package/cjs/POICard-492bf8d0.js.map +1 -0
  15. package/cjs/TableBlock-a5b16e8f.js +2 -0
  16. package/cjs/TableBlock-a5b16e8f.js.map +1 -0
  17. package/cjs/Tag-5c72cc0d.js +2 -0
  18. package/cjs/Tag-5c72cc0d.js.map +1 -0
  19. package/cjs/VideoBlock-301997a9.js +2 -0
  20. package/cjs/VideoBlock-301997a9.js.map +1 -0
  21. package/cjs/VideoCard-405b518a.js +2 -0
  22. package/cjs/VideoCard-405b518a.js.map +1 -0
  23. package/cjs/Wrapper-91748bdb.js +2 -0
  24. package/cjs/Wrapper-91748bdb.js.map +1 -0
  25. package/cjs/base.js +1 -1
  26. package/cjs/blocks.js +1 -1
  27. package/cjs/escape-1ef8dd83.js +2 -0
  28. package/cjs/escape-1ef8dd83.js.map +1 -0
  29. package/cjs/fields.js +1 -1
  30. package/cjs/fields.js.map +1 -1
  31. package/cjs/footer.js +1 -1
  32. package/cjs/footer.js.map +1 -1
  33. package/cjs/hooks.js +1 -1
  34. package/cjs/hooks.js.map +1 -1
  35. package/cjs/sections.js +1 -1
  36. package/cjs/sections.js.map +1 -1
  37. package/cjs/sections_events.js +2 -0
  38. package/cjs/sections_events.js.map +1 -0
  39. package/cjs/sections_forms.js +2 -0
  40. package/cjs/sections_forms.js.map +1 -0
  41. package/cjs/sections_jobs.js +2 -0
  42. package/cjs/sections_jobs.js.map +1 -0
  43. package/cjs/sections_news.js +1 -1
  44. package/cjs/sections_news.js.map +1 -1
  45. package/cjs/sections_pois.js +2 -0
  46. package/cjs/sections_pois.js.map +1 -0
  47. package/cjs/structuredData-0b1278a9.js +2 -0
  48. package/cjs/structuredData-0b1278a9.js.map +1 -0
  49. package/cjs/urlParams-7525f638.js +2 -0
  50. package/cjs/urlParams-7525f638.js.map +1 -0
  51. package/cjs/useEqualSheetHeight-cfd4176e.js +2 -0
  52. package/cjs/useEqualSheetHeight-cfd4176e.js.map +1 -0
  53. package/cjs/useGeolocation-d8946470.js +2 -0
  54. package/cjs/useGeolocation-d8946470.js.map +1 -0
  55. package/cjs/useLazyInput-f71c221b.js +2 -0
  56. package/cjs/useLazyInput-f71c221b.js.map +1 -0
  57. package/cjs/useLeafletMap-2e608b01.js +2 -0
  58. package/cjs/useLeafletMap-2e608b01.js.map +1 -0
  59. package/cjs/useScrollTo-fdd665da.js +2 -0
  60. package/cjs/useScrollTo-fdd665da.js.map +1 -0
  61. package/esm/{Actions-73e13c48.js → Actions-3f06c2e9.js} +3 -3
  62. package/esm/{Actions-73e13c48.js.map → Actions-3f06c2e9.js.map} +1 -1
  63. package/esm/{Bdot-30b047cc.js → Bdot-fae262fc.js} +3 -3
  64. package/esm/{Bdot-30b047cc.js.map → Bdot-fae262fc.js.map} +1 -1
  65. package/esm/{Button-678be396.js → Button-ab1a4e79.js} +3 -3
  66. package/esm/{Button-678be396.js.map → Button-ab1a4e79.js.map} +1 -1
  67. package/esm/{ButtonGhost-6673a07e.js → ButtonGhost-5b498dba.js} +3 -3
  68. package/esm/{ButtonGhost-6673a07e.js.map → ButtonGhost-5b498dba.js.map} +1 -1
  69. package/esm/{Callout-439308f6.js → Callout-389fed95.js} +4 -4
  70. package/esm/{Callout-439308f6.js.map → Callout-389fed95.js.map} +1 -1
  71. package/esm/{Checkbox-a365d733.js → Checkbox-957d8f33.js} +5 -5
  72. package/esm/{Checkbox-a365d733.js.map → Checkbox-957d8f33.js.map} +1 -1
  73. package/esm/{ClockFilled-8784ddac.js → ClockFilled-6bae80dc.js} +2 -2
  74. package/esm/{ClockFilled-8784ddac.js.map → ClockFilled-6bae80dc.js.map} +1 -1
  75. package/esm/{Control-e61c9395.js → Control-57a287dc.js} +3 -3
  76. package/esm/{Control-e61c9395.js.map → Control-57a287dc.js.map} +1 -1
  77. package/esm/{Copy-3444d005.js → Copy-fb124972.js} +4 -4
  78. package/esm/{Copy-3444d005.js.map → Copy-fb124972.js.map} +1 -1
  79. package/esm/EventBlock-0109da13.js +132 -0
  80. package/esm/EventBlock-0109da13.js.map +1 -0
  81. package/esm/{FilterField-f423b4d1.js → FileUpload-4ba0a672.js} +48 -165
  82. package/esm/FileUpload-4ba0a672.js.map +1 -0
  83. package/esm/Filter-fec6dc5c.js +32 -0
  84. package/esm/Filter-fec6dc5c.js.map +1 -0
  85. package/esm/FilterField-03097694.js +129 -0
  86. package/esm/FilterField-03097694.js.map +1 -0
  87. package/esm/{Wrapper-f4a70e30.js → Grid-151498da.js} +7 -224
  88. package/esm/Grid-151498da.js.map +1 -0
  89. package/esm/{Image-82417953.js → Image-b538f659.js} +5 -5
  90. package/esm/{Image-82417953.js.map → Image-b538f659.js.map} +1 -1
  91. package/esm/InfoList-616d17fd.js +74 -0
  92. package/esm/InfoList-616d17fd.js.map +1 -0
  93. package/esm/{LanguageSwitcher-a53094d3.js → LanguageSwitcher-058e0145.js} +5 -5
  94. package/esm/{LanguageSwitcher-a53094d3.js.map → LanguageSwitcher-058e0145.js.map} +1 -1
  95. package/esm/{LibThemeProvider-90a5375f.js → LibThemeProvider-a38c5bf1.js} +3 -3
  96. package/esm/{LibThemeProvider-90a5375f.js.map → LibThemeProvider-a38c5bf1.js.map} +1 -1
  97. package/esm/{Link-ee8a48ed.js → Link-0a1e35d6.js} +3 -3
  98. package/esm/{Link-ee8a48ed.js.map → Link-0a1e35d6.js.map} +1 -1
  99. package/esm/{Navigation-ece0ff0d.js → Navigation-13dce48c.js} +10 -10
  100. package/esm/{Navigation-ece0ff0d.js.map → Navigation-13dce48c.js.map} +1 -1
  101. package/esm/POICard-392a2c3a.js +116 -0
  102. package/esm/POICard-392a2c3a.js.map +1 -0
  103. package/esm/{Pointer-da4d0977.js → Pointer-bc68154f.js} +3 -3
  104. package/esm/{Pointer-da4d0977.js.map → Pointer-bc68154f.js.map} +1 -1
  105. package/esm/{SocialList-7c00c70e.js → SocialList-4396cad9.js} +5 -5
  106. package/esm/{SocialList-7c00c70e.js.map → SocialList-4396cad9.js.map} +1 -1
  107. package/esm/{TableBlock-0bbde956.js → TableBlock-26530c71.js} +11 -70
  108. package/esm/TableBlock-26530c71.js.map +1 -0
  109. package/esm/Tag-72424779.js +67 -0
  110. package/esm/Tag-72424779.js.map +1 -0
  111. package/esm/{POICard-d8832988.js → VideoBlock-b3f4ae27.js} +39 -332
  112. package/esm/VideoBlock-b3f4ae27.js.map +1 -0
  113. package/esm/{VideoCard-2557407b.js → VideoCard-3fd368ef.js} +8 -35
  114. package/esm/VideoCard-3fd368ef.js.map +1 -0
  115. package/esm/Wrapper-29347885.js +224 -0
  116. package/esm/Wrapper-29347885.js.map +1 -0
  117. package/esm/base.js +4 -3
  118. package/esm/base.js.map +1 -1
  119. package/esm/blocks.js +19 -15
  120. package/esm/blocks.js.map +1 -1
  121. package/esm/buttons.js +6 -6
  122. package/esm/cookies.js +8 -8
  123. package/esm/escape-cbff9c25.js +6 -0
  124. package/esm/escape-cbff9c25.js.map +1 -0
  125. package/esm/fields.js +12 -9
  126. package/esm/fields.js.map +1 -1
  127. package/esm/footer.js +10 -9
  128. package/esm/footer.js.map +1 -1
  129. package/esm/hooks.js +13 -9
  130. package/esm/hooks.js.map +1 -1
  131. package/esm/icons.js +1 -1
  132. package/esm/index.js +3 -3
  133. package/esm/{navigation-49280321.js → navigation-a2998143.js} +2 -2
  134. package/esm/{navigation-49280321.js.map → navigation-a2998143.js.map} +1 -1
  135. package/esm/navigation.js +12 -12
  136. package/esm/sections.js +2595 -5807
  137. package/esm/sections.js.map +1 -1
  138. package/esm/sections_events.js +573 -0
  139. package/esm/sections_events.js.map +1 -0
  140. package/esm/sections_forms.js +1405 -0
  141. package/esm/sections_forms.js.map +1 -0
  142. package/esm/sections_jobs.js +508 -0
  143. package/esm/sections_jobs.js.map +1 -0
  144. package/esm/sections_news.js +102 -97
  145. package/esm/sections_news.js.map +1 -1
  146. package/esm/sections_pois.js +719 -0
  147. package/esm/sections_pois.js.map +1 -0
  148. package/esm/structuredData-87423414.js +117 -0
  149. package/esm/structuredData-87423414.js.map +1 -0
  150. package/esm/{styles-5f78e59d.js → styles-f6c54818.js} +2 -2
  151. package/esm/{styles-5f78e59d.js.map → styles-f6c54818.js.map} +1 -1
  152. package/esm/typography.js +6 -6
  153. package/esm/urlParams-9cfdaf71.js +51 -0
  154. package/esm/urlParams-9cfdaf71.js.map +1 -0
  155. package/esm/{useCookieConsent-db86e5cb.js → useCookieConsent-8caef116.js} +2 -2
  156. package/esm/{useCookieConsent-db86e5cb.js.map → useCookieConsent-8caef116.js.map} +1 -1
  157. package/esm/{urlParams-882563ce.js → useEqualSheetHeight-c18cebd3.js} +4 -105
  158. package/esm/useEqualSheetHeight-c18cebd3.js.map +1 -0
  159. package/esm/useGeolocation-f9f073cc.js +95 -0
  160. package/esm/useGeolocation-f9f073cc.js.map +1 -0
  161. package/esm/useLazyInput-e66fc5be.js +85 -0
  162. package/esm/useLazyInput-e66fc5be.js.map +1 -0
  163. package/esm/{useGeolocation-c81e3efc.js → useLeafletMap-6dea7a8e.js} +4 -175
  164. package/esm/useLeafletMap-6dea7a8e.js.map +1 -0
  165. package/esm/{useMediaQuery-43629cbb.js → useMediaQuery-0d473a9c.js} +2 -2
  166. package/esm/{useMediaQuery-43629cbb.js.map → useMediaQuery-0d473a9c.js.map} +1 -1
  167. package/esm/useScrollTo-70af34bf.js +57 -0
  168. package/esm/useScrollTo-70af34bf.js.map +1 -0
  169. package/package.json +1 -1
  170. package/sections/events/package.json +7 -0
  171. package/sections/forms/package.json +7 -0
  172. package/sections/jobs/package.json +7 -0
  173. package/sections/pois/package.json +7 -0
  174. package/types/sections.d.ts +0 -10
  175. package/types/sections.d.ts.map +1 -1
  176. package/types/sections_events.d.ts +4 -0
  177. package/types/sections_events.d.ts.map +1 -0
  178. package/types/sections_forms.d.ts +3 -0
  179. package/types/sections_forms.d.ts.map +1 -0
  180. package/types/sections_jobs.d.ts +3 -0
  181. package/types/sections_jobs.d.ts.map +1 -0
  182. package/types/sections_news.d.ts +2 -2
  183. package/types/sections_news.d.ts.map +1 -1
  184. package/types/sections_pois.d.ts +4 -0
  185. package/types/sections_pois.d.ts.map +1 -0
  186. package/cjs/FilterField-497e998f.js +0 -2
  187. package/cjs/FilterField-497e998f.js.map +0 -1
  188. package/cjs/POICard-9911980e.js +0 -2
  189. package/cjs/POICard-9911980e.js.map +0 -1
  190. package/cjs/TableBlock-080c9c2e.js +0 -2
  191. package/cjs/TableBlock-080c9c2e.js.map +0 -1
  192. package/cjs/VideoCard-1fa209fc.js +0 -2
  193. package/cjs/VideoCard-1fa209fc.js.map +0 -1
  194. package/cjs/Wrapper-3b9c9e89.js +0 -2
  195. package/cjs/Wrapper-3b9c9e89.js.map +0 -1
  196. package/cjs/urlParams-1d03b5a6.js +0 -2
  197. package/cjs/urlParams-1d03b5a6.js.map +0 -1
  198. package/cjs/useGeolocation-4d38150b.js +0 -2
  199. package/cjs/useGeolocation-4d38150b.js.map +0 -1
  200. package/esm/FilterField-f423b4d1.js.map +0 -1
  201. package/esm/POICard-d8832988.js.map +0 -1
  202. package/esm/TableBlock-0bbde956.js.map +0 -1
  203. package/esm/VideoCard-2557407b.js.map +0 -1
  204. package/esm/Wrapper-f4a70e30.js.map +0 -1
  205. package/esm/urlParams-882563ce.js.map +0 -1
  206. package/esm/useGeolocation-c81e3efc.js.map +0 -1
@@ -0,0 +1,573 @@
1
+ import { a as __makeTemplateObject, _ as __assign, e as __spreadArray } from './ClockFilled-6bae80dc.js';
2
+ import React__default, { useMemo, useCallback, useEffect } from 'react';
3
+ import styled from 'styled-components';
4
+ import { S as Section, m as mapToBgMode, W as Wrapper } from './Wrapper-29347885.js';
5
+ import { I as Image } from './Image-b538f659.js';
6
+ import { T as Tag } from './Tag-72424779.js';
7
+ import { H as Heading, C as Copy } from './Copy-fb124972.js';
8
+ import { s as spacings, m as mq, g as getColors } from './styles-f6c54818.js';
9
+ import { w as withLibTheme, u as useLibTheme } from './LibThemeProvider-a38c5bf1.js';
10
+ import { G as Grid } from './Grid-151498da.js';
11
+ import { S as StatusFormatter } from './statusFormatter-9be0fbff.js';
12
+ import { I as InfoList } from './InfoList-616d17fd.js';
13
+ import { i as isValidArray } from './arrays-65b644ef.js';
14
+ import { E as EventBlock } from './EventBlock-0109da13.js';
15
+ import { c as concat } from './concat-ab3c66f2.js';
16
+ import { F as Filter } from './Filter-fec6dc5c.js';
17
+ import { P as Pointer } from './Pointer-bc68154f.js';
18
+ import { g as getUrlParams, s as setUrlParam, d as deleteUrlParam } from './urlParams-9cfdaf71.js';
19
+ import { u as useMounted } from './useMounted-1e4cc87b.js';
20
+ import { u as useObserverSupport } from './useObserverSupport-02bce7f5.js';
21
+ import { u as useScrollTo } from './useScrollTo-70af34bf.js';
22
+ import { u as useUpdateEffect } from './useUpdateEffect-824c0c84.js';
23
+ import './Link-0a1e35d6.js';
24
+ import './clamp-12d37b65.js';
25
+ import 'react-dom/server';
26
+
27
+ var StyledImage = styled(Image).withConfig({
28
+ displayName: "EventDetail__StyledImage",
29
+ componentId: "sc-1ko6neq-0"
30
+ })(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n"], ["\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n"])), spacings.spacer);
31
+ var TagContainer$1 = styled.div.withConfig({
32
+ displayName: "EventDetail__TagContainer",
33
+ componentId: "sc-1ko6neq-1"
34
+ })(templateObject_2$2 || (templateObject_2$2 = __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"])), spacings.nudge, spacings.nudge);
35
+ var TagWrapper$1 = styled.div.withConfig({
36
+ displayName: "EventDetail__TagWrapper",
37
+ componentId: "sc-1ko6neq-2"
38
+ })(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n padding-top: ", "px;\n padding-left: ", "px;\n"], ["\n padding-top: ", "px;\n padding-left: ", "px;\n"])), spacings.nudge, spacings.nudge);
39
+ var EventTitle = styled(Heading).withConfig({
40
+ displayName: "EventDetail__EventTitle",
41
+ componentId: "sc-1ko6neq-3"
42
+ })(templateObject_4$1 || (templateObject_4$1 = __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"])), spacings.nudge * 3, mq.semilarge);
43
+ var EventDateTime = styled(Copy).withConfig({
44
+ displayName: "EventDetail__EventDateTime",
45
+ componentId: "sc-1ko6neq-4"
46
+ })(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n max-width: 880px;\n /* overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; */\n\n &:not(:first-child) {\n margin-top: ", "px;\n }\n"], ["\n max-width: 880px;\n /* overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; */\n\n &:not(:first-child) {\n margin-top: ", "px;\n }\n"])), spacings.nudge * 3);
47
+ var EventAddress = styled(Copy).withConfig({
48
+ displayName: "EventDetail__EventAddress",
49
+ componentId: "sc-1ko6neq-5"
50
+ })(templateObject_6$1 || (templateObject_6$1 = __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"])), spacings.nudge * 3, EventDateTime, spacings.nudge, mq.semilarge);
51
+ var EventText = styled(Copy).withConfig({
52
+ displayName: "EventDetail__EventText",
53
+ componentId: "sc-1ko6neq-6"
54
+ })(templateObject_7$1 || (templateObject_7$1 = __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"])), spacings.nudge * 3);
55
+
56
+ var EventDetail = function (_a) {
57
+ var _b;
58
+
59
+ var anchorId = _a.anchorId,
60
+ event = _a.event,
61
+ infos = _a.infos,
62
+ bgMode = _a.bgMode,
63
+ customTag = _a.customTag;
64
+
65
+ var _c = useLibTheme(),
66
+ colors = _c.colors,
67
+ globals = _c.globals;
68
+
69
+ var isInverted = bgMode === 'inverted';
70
+ var hasBg = bgMode === 'full';
71
+ var hasInfos = useMemo(function () {
72
+ return isValidArray(infos === null || infos === void 0 ? void 0 : infos.filter(function (info) {
73
+ return isValidArray(info.items, false);
74
+ }), false);
75
+ }, [infos]);
76
+ var publishedAt = '';
77
+ var timespan = '';
78
+
79
+ if (event === null || event === void 0 ? void 0 : event.date) {
80
+ var formatter = new StatusFormatter(event.date.getTime(), '', globals.sections.eventDateFormat(event.date), globals.sections.eventTimeFormat(event.date), globals.sections.eventLocaleKey);
81
+ publishedAt = formatter.getFormattedDate();
82
+ timespan = formatter.getFormattedTimespan(globals.sections.eventTimespanFormat(event.date, event.duration), event.duration);
83
+ }
84
+
85
+ return React__default.createElement(Section, {
86
+ addSeperation: true,
87
+ anchorId: anchorId,
88
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
89
+ bgMode: mapToBgMode(bgMode, true)
90
+ }, React__default.createElement(Wrapper, {
91
+ addWhitespace: true
92
+ }, ((_b = event.image) === null || _b === void 0 ? void 0 : _b.small) && React__default.createElement(StyledImage, __assign({}, event.image, {
93
+ coverSpace: true,
94
+ allowEdgeRadius: true,
95
+ isInverted: isInverted
96
+ })), React__default.createElement(Grid.Row, {
97
+ gutter: spacings.nudge * 5,
98
+ semilarge: {
99
+ gutter: spacings.spacer
100
+ }
101
+ }, React__default.createElement(Grid.Col, {
102
+ semilarge: {
103
+ span: hasInfos ? 5.7 / 8 : 1
104
+ }
105
+ }, event.tags && React__default.createElement(TagContainer$1, null, event.tags.map(function (tag, i) {
106
+ return React__default.createElement(TagWrapper$1, {
107
+ key: 'tag_' + i
108
+ }, customTag ? customTag({
109
+ key: "headtag-".concat(i),
110
+ name: tag.name || '',
111
+ isInverted: isInverted,
112
+ isActive: false,
113
+ link: tag.link
114
+ }) : React__default.createElement(Tag, {
115
+ link: tag.link,
116
+ isInverted: isInverted
117
+ }, tag.name));
118
+ })), event.title && React__default.createElement(EventTitle, {
119
+ size: "heading-2",
120
+ isInverted: isInverted
121
+ }, event.title), publishedAt && React__default.createElement(EventDateTime, {
122
+ size: "big",
123
+ type: "copy-b"
124
+ }, publishedAt || '', publishedAt && timespan ? ' | ' : '', timespan), event.address && React__default.createElement(EventAddress, {
125
+ size: "big",
126
+ type: "copy",
127
+ innerHTML: event.address
128
+ }), event.abstract && React__default.createElement(EventText, {
129
+ size: "medium",
130
+ type: "copy-b",
131
+ isInverted: isInverted
132
+ }, event.abstract), event.text && React__default.createElement(EventText, {
133
+ size: "medium",
134
+ isInverted: isInverted,
135
+ innerHTML: event.text
136
+ })), hasInfos && React__default.createElement(Grid.Col, {
137
+ semilarge: {
138
+ span: 2.3 / 8
139
+ }
140
+ }, React__default.createElement(InfoList, {
141
+ isInverted: isInverted,
142
+ items: infos
143
+ })))));
144
+ };
145
+ var EventDetail$1 = withLibTheme(EventDetail);
146
+ var templateObject_1$2, templateObject_2$2, templateObject_3$1, templateObject_4$1, templateObject_5$1, templateObject_6$1, templateObject_7$1;
147
+
148
+ var TagContainer = styled.div.withConfig({
149
+ displayName: "EventOverview__TagContainer",
150
+ componentId: "sc-u2afqs-0"
151
+ })(templateObject_1$1 || (templateObject_1$1 = __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"])), spacings.nudge, spacings.nudge, spacings.nudge * 6);
152
+ var TagWrapper = styled.div.withConfig({
153
+ displayName: "EventOverview__TagWrapper",
154
+ componentId: "sc-u2afqs-1"
155
+ })(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n padding-top: ", "px;\n padding-left: ", "px;\n"], ["\n padding-top: ", "px;\n padding-left: ", "px;\n"])), spacings.nudge, spacings.nudge);
156
+ var Events = styled.ul.withConfig({
157
+ displayName: "EventOverview__Events",
158
+ componentId: "sc-u2afqs-2"
159
+ })(templateObject_3 || (templateObject_3 = __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 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"])), function (_a) {
160
+ var theme = _a.theme,
161
+ hasBg = _a.hasBg;
162
+ return hasBg ? getColors(theme).elementBg.light : getColors(theme).elementBg.medium;
163
+ }, function (_a) {
164
+ var theme = _a.theme,
165
+ hasBg = _a.hasBg;
166
+ return hasBg ? getColors(theme).elementBg.light : getColors(theme).elementBg.medium;
167
+ }, function (_a) {
168
+ var theme = _a.theme,
169
+ hasBg = _a.hasBg;
170
+ return hasBg ? getColors(theme).elementBg.light : getColors(theme).elementBg.medium;
171
+ });
172
+ var FilterIcon = styled(Copy).withConfig({
173
+ displayName: "EventOverview__FilterIcon",
174
+ componentId: "sc-u2afqs-3"
175
+ })(templateObject_4 || (templateObject_4 = __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"])), spacings.nudge / 2, spacings.nudge, spacings.nudge);
176
+ var EventItem = styled.li.withConfig({
177
+ displayName: "EventOverview__EventItem",
178
+ componentId: "sc-u2afqs-4"
179
+ })(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n padding: ", "px 0;\n"], ["\n padding: ", "px 0;\n"])), spacings.nudge * 3);
180
+ var ListFooter = styled.div.withConfig({
181
+ displayName: "EventOverview__ListFooter",
182
+ componentId: "sc-u2afqs-5"
183
+ })(templateObject_6 || (templateObject_6 = __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"])), spacings.nudge * 6, mq.medium);
184
+ var ShowMore = styled.span.withConfig({
185
+ displayName: "EventOverview__ShowMore",
186
+ componentId: "sc-u2afqs-6"
187
+ })(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: ", ";\n"], ["\n display: ", ";\n"])), function (_a) {
188
+ var itemCount = _a.itemCount;
189
+ return itemCount && itemCount > 2 ? 'block' : 'none';
190
+ });
191
+ var getEventFilterParams = function (url, theme, tags) {
192
+ if (tags === void 0) {
193
+ tags = [];
194
+ }
195
+
196
+ if (!url || !theme) return '';
197
+ if (!isValidArray(tags, false)) return url;
198
+ var filterName = theme.globals.sections.eventFilterName;
199
+ if (!filterName) return url;
200
+
201
+ try {
202
+ var validUrl = new URL(url);
203
+ var newParams = new URLSearchParams(validUrl.search);
204
+ newParams.set(filterName, encodeURIComponent(tags.join(',')));
205
+ return "".concat(url, "?").concat(newParams.toString());
206
+ } catch (err) {
207
+ return "".concat(url, "?").concat(filterName, "=").concat(encodeURIComponent(tags.join(',')));
208
+ }
209
+ };
210
+
211
+ var EventOverview = function (_a) {
212
+ var tags = _a.tags,
213
+ events = _a.events,
214
+ bgMode = _a.bgMode,
215
+ anchorId = _a.anchorId,
216
+ initial = _a.initial,
217
+ showMoreText = _a.showMoreText,
218
+ onTagClick = _a.onTagClick,
219
+ customTag = _a.customTag;
220
+ var isInverted = bgMode === 'inverted';
221
+ var hasBg = bgMode === 'full';
222
+
223
+ var _b = useLibTheme(),
224
+ colors = _b.colors,
225
+ globals = _b.globals;
226
+
227
+ var filterName = globals.sections.eventFilterName;
228
+
229
+ var _c = React__default.useState((initial === null || initial === void 0 ? void 0 : initial.activeTags) || []),
230
+ selectedTags = _c[0],
231
+ setSelectedTags = _c[1];
232
+
233
+ var itemsPerRow = React__default.useState(1)[0];
234
+
235
+ var _d = React__default.useState((initial === null || initial === void 0 ? void 0 : initial.visibleRows) || 3),
236
+ visibleRows = _d[0],
237
+ setVisibleRows = _d[1];
238
+
239
+ var targetRef = React__default.useRef(null);
240
+ var observerSupported = useObserverSupport();
241
+ var isMounted = useMounted();
242
+ var eventCount = (events === null || events === void 0 ? void 0 : events.length) || 0;
243
+ var setNewPos = useScrollTo(800);
244
+ var getFilters = useCallback(function () {
245
+ var tags = [];
246
+ var filters = getUrlParams()[filterName];
247
+
248
+ if (filters) {
249
+ var tagsFilter = filters === null || filters === void 0 ? void 0 : filters.split(',');
250
+
251
+ if (isValidArray(tagsFilter, false)) {
252
+ tags.push.apply(tags, tagsFilter);
253
+ }
254
+ }
255
+
256
+ return tags;
257
+ }, [filterName]);
258
+ useEffect(function () {
259
+ // if initial data is defined exit hook
260
+ if (initial) return; // if no initial data provied try to find needed params in URL
261
+
262
+ var paramTags = getFilters();
263
+
264
+ if (isValidArray(paramTags, false)) {
265
+ setSelectedTags(paramTags);
266
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
267
+
268
+ }, [getFilters, initial]);
269
+ useEffect(function () {
270
+ var _a;
271
+
272
+ if (!initial || isMounted) return; // set inital data into URL
273
+
274
+ setUrlParam('rows', (initial === null || initial === void 0 ? void 0 : initial.visibleRows) || 3);
275
+
276
+ if (isValidArray(initial === null || initial === void 0 ? void 0 : initial.activeTags, false)) {
277
+ setUrlParam(filterName, (_a = initial === null || initial === void 0 ? void 0 : initial.activeTags) === null || _a === void 0 ? void 0 : _a.join(','));
278
+ } else {
279
+ deleteUrlParam(filterName);
280
+ }
281
+ }, [filterName, initial, isMounted]);
282
+ useUpdateEffect(function () {
283
+ setUrlParam('rows', visibleRows);
284
+ }, [visibleRows]);
285
+ useUpdateEffect(function () {
286
+ if (onTagClick || !isValidArray(selectedTags)) return; // set filters to URL params
287
+
288
+ if (selectedTags.length > 0) {
289
+ setUrlParam(filterName, selectedTags.join(','));
290
+ } else {
291
+ deleteUrlParam(filterName);
292
+ }
293
+ }, [selectedTags]);
294
+
295
+ var handleTagClick = function (tag, enableToggling) {
296
+ if (enableToggling === void 0) {
297
+ enableToggling = true;
298
+ }
299
+
300
+ setSelectedTags(function (prev) {
301
+ var prevCopy = __spreadArray([], prev, true);
302
+
303
+ var itemIndex = tag.name ? prev.indexOf(tag.name) : -1;
304
+
305
+ if (itemIndex === -1 && tag.name) {
306
+ return __spreadArray(__spreadArray([], prevCopy, true), [tag.name], false);
307
+ }
308
+
309
+ if (enableToggling) {
310
+ prevCopy.splice(itemIndex, 1);
311
+ return prevCopy;
312
+ }
313
+
314
+ return prev;
315
+ });
316
+ setVisibleRows(3);
317
+ };
318
+
319
+ var filteredEvents = useMemo(function () {
320
+ var tagFilterFn = function (item) {
321
+ if (!isValidArray(selectedTags, false)) return true;
322
+ if (!item.tags) return false;
323
+ var hasTags = false;
324
+
325
+ for (var i = 0; i < item.tags.length; i++) {
326
+ if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {
327
+ hasTags = true;
328
+ break;
329
+ }
330
+ }
331
+
332
+ return hasTags;
333
+ };
334
+
335
+ var filtered = isValidArray(events) ? __spreadArray([], events, true) : []; // adding filter
336
+
337
+ filtered = filtered === null || filtered === void 0 ? void 0 : filtered.filter(tagFilterFn);
338
+ return filtered;
339
+ }, [events, selectedTags]);
340
+ var visibleEvents = useMemo(function () {
341
+ return (filteredEvents === null || filteredEvents === void 0 ? void 0 : filteredEvents.filter(function (_, i) {
342
+ return i < visibleRows * itemsPerRow;
343
+ })) || [];
344
+ }, [filteredEvents, itemsPerRow, visibleRows]);
345
+ useEffect(function () {
346
+ // cancel if intersection observers are not supported
347
+ if (!observerSupported) return;
348
+ var element = targetRef.current;
349
+ var observer;
350
+
351
+ if (element) {
352
+ var options = {
353
+ rootMargin: '0px 0px 100px 0px',
354
+ threshold: 0
355
+ };
356
+ observer = new IntersectionObserver(function (entries) {
357
+ var entry = entries[0];
358
+
359
+ if (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) {
360
+ // on bottom of the wrapper load more events
361
+ if (visibleRows < Math.ceil(filteredEvents.length / itemsPerRow)) {
362
+ setVisibleRows(function (prev) {
363
+ return prev + 1;
364
+ });
365
+ }
366
+ }
367
+ }, options);
368
+ observer.observe(element);
369
+ }
370
+
371
+ return function () {
372
+ if (observer) observer.disconnect();
373
+ };
374
+ }, [itemsPerRow, eventCount, visibleRows, observerSupported, filteredEvents.length]);
375
+ var filteredTags = useMemo(function () {
376
+ return tags === null || tags === void 0 ? void 0 : tags.filter(function (tag) {
377
+ return tag;
378
+ });
379
+ }, [tags]);
380
+ return React__default.createElement(Section, {
381
+ addSeperation: true,
382
+ anchorId: anchorId,
383
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : 'transparent',
384
+ bgMode: mapToBgMode(bgMode, true)
385
+ }, React__default.createElement(Wrapper, {
386
+ addWhitespace: true
387
+ }, isValidArray(filteredTags, false) && React__default.createElement(TagContainer, null, React__default.createElement(FilterIcon, {
388
+ size: "small",
389
+ type: "copy",
390
+ isInverted: isInverted
391
+ }, React__default.createElement(Filter, null), React__default.createElement("span", null, "Filter")), filteredTags.map(function (tag, i) {
392
+ return React__default.createElement(TagWrapper, {
393
+ key: i
394
+ }, customTag ? customTag({
395
+ key: i,
396
+ name: tag,
397
+ isInverted: isInverted,
398
+ isActive: selectedTags.indexOf(tag) !== -1,
399
+ clickHandler: function (ev) {
400
+ ev === null || ev === void 0 ? void 0 : ev.preventDefault();
401
+
402
+ if (!onTagClick) {
403
+ handleTagClick({
404
+ name: tag
405
+ });
406
+ } else onTagClick({
407
+ name: tag
408
+ });
409
+ }
410
+ }) : React__default.createElement(Tag, {
411
+ isInverted: isInverted,
412
+ onClick: function (ev) {
413
+ ev === null || ev === void 0 ? void 0 : ev.preventDefault();
414
+
415
+ if (!onTagClick) {
416
+ handleTagClick({
417
+ name: tag
418
+ });
419
+ } else onTagClick({
420
+ name: tag
421
+ }, false);
422
+ },
423
+ isActive: selectedTags.indexOf(tag) !== -1
424
+ }, tag));
425
+ })), React__default.createElement(Events, {
426
+ hasBg: hasBg
427
+ }, visibleEvents.map(function (item, i) {
428
+ var _a;
429
+
430
+ var timespan = '';
431
+
432
+ if (item.date) {
433
+ var formatter = new StatusFormatter(item.date.getTime(), '', globals.sections.eventDateFormat(item.date), globals.sections.eventTimeFormat(item.date), globals.sections.eventLocaleKey);
434
+ timespan = formatter.getFormattedTimespan(globals.sections.eventTimespanFormat(item.date, item.duration), item.duration);
435
+ }
436
+
437
+ var text = concat([timespan, item.address], ' | ');
438
+ return React__default.createElement(EventItem, {
439
+ key: "".concat(i, "_event_").concat(item.title)
440
+ }, React__default.createElement(EventBlock, __assign({}, item, {
441
+ text: text,
442
+ tags: (_a = item.tags) === null || _a === void 0 ? void 0 : _a.map(function (tag) {
443
+ return {
444
+ name: tag.name
445
+ };
446
+ }),
447
+ isInverted: isInverted,
448
+ onTagClick: function (tag) {
449
+ // scroll back to top
450
+ setNewPos(0);
451
+
452
+ if (!onTagClick) {
453
+ // if no callback is defined handle filtering on client side inside the component
454
+ handleTagClick({
455
+ name: tag.name
456
+ }, false);
457
+ } else {
458
+ onTagClick({
459
+ name: tag.name
460
+ }, true);
461
+ }
462
+ },
463
+ customTag: customTag
464
+ })));
465
+ })), React__default.createElement("div", {
466
+ ref: targetRef
467
+ }), !observerSupported && React__default.createElement(ListFooter, null, events && events.length > 0 && React__default.createElement(Copy, {
468
+ type: "copy",
469
+ size: "medium",
470
+ isInverted: isInverted
471
+ }, React__default.createElement(ShowMore, {
472
+ itemCount: events.length,
473
+ onClick: function (ev) {
474
+ ev.preventDefault();
475
+
476
+ if (visibleRows < Math.ceil(filteredEvents.length / itemsPerRow)) {
477
+ setVisibleRows(function (prev) {
478
+ return prev + 1;
479
+ });
480
+ }
481
+ }
482
+ }, visibleRows < filteredEvents.length / itemsPerRow && React__default.createElement(Pointer.View, {
483
+ as: "button",
484
+ isInverted: isInverted
485
+ }, React__default.createElement(Pointer.Label, null, showMoreText || 'mehr anzeigen')))))));
486
+ };
487
+ var EventOverview$1 = withLibTheme(EventOverview);
488
+ var templateObject_1$1, templateObject_2$1, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
489
+
490
+ var List = styled.ul.withConfig({
491
+ displayName: "EventList__List",
492
+ componentId: "sc-1ssgszz-0"
493
+ })(templateObject_1 || (templateObject_1 = __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 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"])), function (_a) {
494
+ var theme = _a.theme,
495
+ hasBg = _a.hasBg;
496
+ return hasBg ? getColors(theme).elementBg.light : getColors(theme).elementBg.medium;
497
+ }, function (_a) {
498
+ var theme = _a.theme,
499
+ hasBg = _a.hasBg;
500
+ return hasBg ? getColors(theme).elementBg.light : getColors(theme).elementBg.medium;
501
+ }, function (_a) {
502
+ var theme = _a.theme,
503
+ hasBg = _a.hasBg;
504
+ return hasBg ? getColors(theme).elementBg.light : getColors(theme).elementBg.medium;
505
+ });
506
+ var ListItem = styled.li.withConfig({
507
+ displayName: "EventList__ListItem",
508
+ componentId: "sc-1ssgszz-1"
509
+ })(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: ", "px 0;\n"], ["\n padding: ", "px 0;\n"])), spacings.nudge * 3);
510
+
511
+ var EventList = function (_a) {
512
+ var anchorId = _a.anchorId,
513
+ events = _a.events,
514
+ bgMode = _a.bgMode,
515
+ customTag = _a.customTag;
516
+
517
+ var _b = useLibTheme(),
518
+ colors = _b.colors,
519
+ globals = _b.globals,
520
+ theme = _b.theme;
521
+
522
+ var isInverted = bgMode === 'inverted';
523
+ var hasBg = bgMode === 'full';
524
+ return React__default.createElement(Section, {
525
+ addSeperation: true,
526
+ anchorId: anchorId,
527
+ bgColor: isInverted ? colors.sectionBg.dark : bgMode ? colors.sectionBg.medium : colors.sectionBg.light,
528
+ bgMode: mapToBgMode(bgMode, true)
529
+ }, React__default.createElement(Wrapper, {
530
+ addWhitespace: true
531
+ }, React__default.createElement(List, {
532
+ hasBg: hasBg
533
+ }, events === null || events === void 0 ? void 0 : events.map(function (event, i) {
534
+ var _a;
535
+
536
+ var timespan = '';
537
+
538
+ if (event.date) {
539
+ var formatter = new StatusFormatter(event.date.getTime(), '', globals.sections.eventDateFormat(event.date), globals.sections.eventTimeFormat(event.date), globals.sections.eventLocaleKey);
540
+ timespan = formatter.getFormattedTimespan(globals.sections.eventTimespanFormat(event.date, event.duration), event.duration);
541
+ }
542
+
543
+ var text = concat([timespan, event.address], ' | ');
544
+ return React__default.createElement(ListItem, {
545
+ key: i
546
+ }, React__default.createElement(EventBlock, __assign({}, event, {
547
+ tags: (_a = event.tags) === null || _a === void 0 ? void 0 : _a.map(function (tag) {
548
+ var _a, _b;
549
+
550
+ var tagHref = undefined;
551
+
552
+ if (tag.name && ((_a = tag.link) === null || _a === void 0 ? void 0 : _a.href)) {
553
+ tagHref = getEventFilterParams(tag.link.href, theme, [tag.name]);
554
+ }
555
+
556
+ return {
557
+ name: tag.name,
558
+ link: ((_b = tag.link) === null || _b === void 0 ? void 0 : _b.href) ? __assign(__assign({}, tag.link), {
559
+ href: tagHref
560
+ }) : undefined
561
+ };
562
+ }),
563
+ isInverted: isInverted,
564
+ text: text,
565
+ customTag: customTag
566
+ })));
567
+ }))));
568
+ };
569
+ var EventList$1 = withLibTheme(EventList);
570
+ var templateObject_1, templateObject_2;
571
+
572
+ export { EventDetail$1 as EventDetail, EventList$1 as EventList, EventOverview$1 as EventOverview };
573
+ //# sourceMappingURL=sections_events.js.map