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

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 (161) hide show
  1. package/cjs/Actions-6dd616e0.js +2 -0
  2. package/cjs/Actions-6dd616e0.js.map +1 -0
  3. package/cjs/Bdot-d898ba3b.js +2 -0
  4. package/cjs/Bdot-d898ba3b.js.map +1 -0
  5. package/cjs/Button-72747f63.js +2 -0
  6. package/cjs/Button-72747f63.js.map +1 -0
  7. package/cjs/ButtonGhost-046437c5.js +2 -0
  8. package/cjs/ButtonGhost-046437c5.js.map +1 -0
  9. package/cjs/Control-eead1a4c.js +2 -0
  10. package/cjs/Control-eead1a4c.js.map +1 -0
  11. package/cjs/FilterField-497e998f.js +2 -0
  12. package/cjs/{FilterField-569d60e5.js.map → FilterField-497e998f.js.map} +1 -1
  13. package/cjs/Image-d9681be0.js +2 -0
  14. package/cjs/Image-d9681be0.js.map +1 -0
  15. package/cjs/LanguageSwitcher-47e25e95.js +2 -0
  16. package/cjs/LanguageSwitcher-47e25e95.js.map +1 -0
  17. package/cjs/Navigation-3f5d6088.js +2 -0
  18. package/cjs/{Navigation-ebb27a9b.js.map → Navigation-3f5d6088.js.map} +1 -1
  19. package/cjs/POICard-9911980e.js +2 -0
  20. package/cjs/POICard-9911980e.js.map +1 -0
  21. package/cjs/Pointer-3588eadf.js +2 -0
  22. package/cjs/Pointer-3588eadf.js.map +1 -0
  23. package/cjs/SocialList-da77e994.js +2 -0
  24. package/cjs/SocialList-da77e994.js.map +1 -0
  25. package/cjs/TableBlock-080c9c2e.js +2 -0
  26. package/cjs/TableBlock-080c9c2e.js.map +1 -0
  27. package/cjs/VideoCard-1fa209fc.js +2 -0
  28. package/cjs/VideoCard-1fa209fc.js.map +1 -0
  29. package/cjs/blocks.js +1 -1
  30. package/cjs/buttons.js +1 -1
  31. package/cjs/cookies.js +1 -1
  32. package/cjs/cookies.js.map +1 -1
  33. package/cjs/fields.js +1 -1
  34. package/cjs/fields.js.map +1 -1
  35. package/cjs/footer.js +2 -0
  36. package/cjs/footer.js.map +1 -0
  37. package/cjs/hooks.js +1 -1
  38. package/cjs/hooks.js.map +1 -1
  39. package/cjs/navigation.js +1 -1
  40. package/cjs/navigation.js.map +1 -1
  41. package/cjs/sections.js +1 -1
  42. package/cjs/sections.js.map +1 -1
  43. package/cjs/sections_news.js +2 -0
  44. package/cjs/sections_news.js.map +1 -0
  45. package/cjs/statusFormatter-0393122b.js +2 -0
  46. package/cjs/statusFormatter-0393122b.js.map +1 -0
  47. package/cjs/{urlParams-51ce7168.js → urlParams-1d03b5a6.js} +2 -2
  48. package/cjs/urlParams-1d03b5a6.js.map +1 -0
  49. package/cjs/useIE-aef9decc.js +2 -0
  50. package/cjs/useIE-aef9decc.js.map +1 -0
  51. package/esm/Actions-73e13c48.js +57 -0
  52. package/esm/Actions-73e13c48.js.map +1 -0
  53. package/esm/Bdot-30b047cc.js +24 -0
  54. package/esm/Bdot-30b047cc.js.map +1 -0
  55. package/esm/Button-678be396.js +115 -0
  56. package/esm/Button-678be396.js.map +1 -0
  57. package/esm/ButtonGhost-6673a07e.js +112 -0
  58. package/esm/ButtonGhost-6673a07e.js.map +1 -0
  59. package/esm/{Callout-03ad4c6e.js → Callout-439308f6.js} +4 -4
  60. package/esm/{Callout-03ad4c6e.js.map → Callout-439308f6.js.map} +1 -1
  61. package/esm/{Checkbox-76c2576b.js → Checkbox-a365d733.js} +5 -5
  62. package/esm/{Checkbox-76c2576b.js.map → Checkbox-a365d733.js.map} +1 -1
  63. package/esm/{ClockFilled-cff5900e.js → ClockFilled-8784ddac.js} +2 -2
  64. package/esm/{ClockFilled-cff5900e.js.map → ClockFilled-8784ddac.js.map} +1 -1
  65. package/esm/Control-e61c9395.js +52 -0
  66. package/esm/Control-e61c9395.js.map +1 -0
  67. package/esm/{Copy-d2be4fb7.js → Copy-3444d005.js} +4 -4
  68. package/esm/{Copy-d2be4fb7.js.map → Copy-3444d005.js.map} +1 -1
  69. package/esm/{FilterField-b1a28df7.js → FilterField-f423b4d1.js} +8 -7
  70. package/esm/{FilterField-b1a28df7.js.map → FilterField-f423b4d1.js.map} +1 -1
  71. package/esm/Image-82417953.js +193 -0
  72. package/esm/Image-82417953.js.map +1 -0
  73. package/esm/LanguageSwitcher-a53094d3.js +70 -0
  74. package/esm/LanguageSwitcher-a53094d3.js.map +1 -0
  75. package/esm/{LibThemeProvider-17012395.js → LibThemeProvider-90a5375f.js} +3 -3
  76. package/esm/{LibThemeProvider-17012395.js.map → LibThemeProvider-90a5375f.js.map} +1 -1
  77. package/esm/{Link-42f0b80f.js → Link-ee8a48ed.js} +3 -3
  78. package/esm/{Link-42f0b80f.js.map → Link-ee8a48ed.js.map} +1 -1
  79. package/esm/{Navigation-fae92776.js → Navigation-ece0ff0d.js} +10 -9
  80. package/esm/{Navigation-fae92776.js.map → Navigation-ece0ff0d.js.map} +1 -1
  81. package/esm/{Bdot-a103eeef.js → POICard-d8832988.js} +56 -280
  82. package/esm/POICard-d8832988.js.map +1 -0
  83. package/esm/Pointer-da4d0977.js +111 -0
  84. package/esm/Pointer-da4d0977.js.map +1 -0
  85. package/esm/SocialList-7c00c70e.js +61 -0
  86. package/esm/SocialList-7c00c70e.js.map +1 -0
  87. package/esm/TableBlock-0bbde956.js +218 -0
  88. package/esm/TableBlock-0bbde956.js.map +1 -0
  89. package/esm/VideoCard-2557407b.js +187 -0
  90. package/esm/VideoCard-2557407b.js.map +1 -0
  91. package/esm/{Wrapper-38c912a6.js → Wrapper-f4a70e30.js} +3 -3
  92. package/esm/{Wrapper-38c912a6.js.map → Wrapper-f4a70e30.js.map} +1 -1
  93. package/esm/base.js +3 -3
  94. package/esm/blocks.js +15 -10
  95. package/esm/blocks.js.map +1 -1
  96. package/esm/buttons.js +6 -4
  97. package/esm/buttons.js.map +1 -1
  98. package/esm/cookies.js +9 -8
  99. package/esm/cookies.js.map +1 -1
  100. package/esm/fields.js +9 -8
  101. package/esm/fields.js.map +1 -1
  102. package/esm/footer.js +300 -0
  103. package/esm/footer.js.map +1 -0
  104. package/esm/hooks.js +10 -9
  105. package/esm/hooks.js.map +1 -1
  106. package/esm/icons.js +1 -1
  107. package/esm/index.js +3 -3
  108. package/esm/{navigation-e135836f.js → navigation-49280321.js} +2 -2
  109. package/esm/{navigation-e135836f.js.map → navigation-49280321.js.map} +1 -1
  110. package/esm/navigation.js +12 -10
  111. package/esm/navigation.js.map +1 -1
  112. package/esm/sections.js +493 -1933
  113. package/esm/sections.js.map +1 -1
  114. package/esm/sections_news.js +1018 -0
  115. package/esm/sections_news.js.map +1 -0
  116. package/esm/{Actions-59bdbbf7.js → statusFormatter-9be0fbff.js} +2 -57
  117. package/esm/statusFormatter-9be0fbff.js.map +1 -0
  118. package/esm/{styles-eca3acc8.js → styles-5f78e59d.js} +2 -2
  119. package/esm/{styles-eca3acc8.js.map → styles-5f78e59d.js.map} +1 -1
  120. package/esm/typography.js +6 -6
  121. package/esm/{urlParams-c16d7370.js → urlParams-882563ce.js} +4 -15
  122. package/esm/urlParams-882563ce.js.map +1 -0
  123. package/esm/{useCookieConsent-cd262961.js → useCookieConsent-db86e5cb.js} +2 -2
  124. package/esm/{useCookieConsent-cd262961.js.map → useCookieConsent-db86e5cb.js.map} +1 -1
  125. package/esm/{useGeolocation-c99d76bd.js → useGeolocation-c81e3efc.js} +2 -2
  126. package/esm/{useGeolocation-c99d76bd.js.map → useGeolocation-c81e3efc.js.map} +1 -1
  127. package/esm/useIE-a9c56989.js +15 -0
  128. package/esm/useIE-a9c56989.js.map +1 -0
  129. package/esm/{useMediaQuery-07eee3f4.js → useMediaQuery-43629cbb.js} +2 -2
  130. package/esm/{useMediaQuery-07eee3f4.js.map → useMediaQuery-43629cbb.js.map} +1 -1
  131. package/footer/package.json +7 -0
  132. package/package.json +2 -1
  133. package/sections/news/package.json +7 -0
  134. package/types/footer.d.ts +4 -0
  135. package/types/footer.d.ts.map +1 -0
  136. package/types/sections.d.ts +0 -13
  137. package/types/sections.d.ts.map +1 -1
  138. package/types/sections_news.d.ts +10 -0
  139. package/types/sections_news.d.ts.map +1 -0
  140. package/cjs/Actions-487104b2.js +0 -2
  141. package/cjs/Actions-487104b2.js.map +0 -1
  142. package/cjs/Bdot-760e0e3a.js +0 -2
  143. package/cjs/Bdot-760e0e3a.js.map +0 -1
  144. package/cjs/ButtonGhost-e9644acd.js +0 -2
  145. package/cjs/ButtonGhost-e9644acd.js.map +0 -1
  146. package/cjs/Control-23259241.js +0 -2
  147. package/cjs/Control-23259241.js.map +0 -1
  148. package/cjs/FilterField-569d60e5.js +0 -2
  149. package/cjs/Navigation-ebb27a9b.js +0 -2
  150. package/cjs/SocialList-79ddf9d6.js +0 -2
  151. package/cjs/SocialList-79ddf9d6.js.map +0 -1
  152. package/cjs/urlParams-51ce7168.js.map +0 -1
  153. package/esm/Actions-59bdbbf7.js.map +0 -1
  154. package/esm/Bdot-a103eeef.js.map +0 -1
  155. package/esm/ButtonGhost-422fd723.js +0 -220
  156. package/esm/ButtonGhost-422fd723.js.map +0 -1
  157. package/esm/Control-52ff8784.js +0 -157
  158. package/esm/Control-52ff8784.js.map +0 -1
  159. package/esm/SocialList-385cde53.js +0 -307
  160. package/esm/SocialList-385cde53.js.map +0 -1
  161. package/esm/urlParams-c16d7370.js.map +0 -1
@@ -0,0 +1,1018 @@
1
+ import { a as __makeTemplateObject, _ as __assign, e as __spreadArray } from './ClockFilled-8784ddac.js';
2
+ import React__default, { forwardRef, useMemo, useState, useRef, useCallback, useEffect } from 'react';
3
+ import styled from 'styled-components';
4
+ import { S as Section, m as mapToBgMode, W as Wrapper, G as Grid } from './Wrapper-f4a70e30.js';
5
+ import { C as Copy, H as Heading, c as copyStyle } from './Copy-3444d005.js';
6
+ import { g as getColors, s as spacings, m as mq, c as getGlobals, a as getFonts } from './styles-5f78e59d.js';
7
+ import { w as withLibTheme, u as useLibTheme } from './LibThemeProvider-90a5375f.js';
8
+ import { I as Image } from './Image-82417953.js';
9
+ import { a as Tag, T as Title, b as TableBlock } from './TableBlock-0bbde956.js';
10
+ import { S as StatusFormatter } from './statusFormatter-9be0fbff.js';
11
+ import { L as Link } from './Link-ee8a48ed.js';
12
+ import { i as isValidArray } from './arrays-65b644ef.js';
13
+ import { u as useMediaQuery } from './useMediaQuery-43629cbb.js';
14
+ import { b as useScrollTo, u as useEqualSheetHeight, g as getUrlParams, s as setUrlParam, d as deleteUrlParam } from './urlParams-882563ce.js';
15
+ import { u as useObserverSupport } from './useObserverSupport-02bce7f5.js';
16
+ import { P as Pointer } from './Pointer-da4d0977.js';
17
+ import { F as Filter, V as VideoCard } from './VideoCard-2557407b.js';
18
+ import { u as useUpdateEffect } from './useUpdateEffect-824c0c84.js';
19
+ import { u as useMounted } from './useMounted-1e4cc87b.js';
20
+ import './clamp-12d37b65.js';
21
+ import './concat-ab3c66f2.js';
22
+ import 'react-dom/server';
23
+ import './useCookieConsent-db86e5cb.js';
24
+ import './ButtonGhost-6673a07e.js';
25
+ import './hexRgbConverter-edb91624.js';
26
+
27
+ var Seperator = styled.div.withConfig({
28
+ displayName: "NewsAuthorCard__Seperator",
29
+ componentId: "sc-17dx8qw-0"
30
+ })(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n border-bottom: solid 1px\n ", ";\n\n margin-top: ", "px;\n margin-bottom: ", "px;\n"], ["\n border-bottom: solid 1px\n ", ";\n\n margin-top: ", "px;\n margin-bottom: ", "px;\n"])), function (_a) {
31
+ var isInverted = _a.isInverted,
32
+ theme = _a.theme;
33
+ return isInverted ? getColors(theme).elementBg.light : getColors(theme).elementBg.dark;
34
+ }, function (_a) {
35
+ var isTop = _a.isTop;
36
+ return !isTop && spacings.spacer;
37
+ }, function (_a) {
38
+ var isTop = _a.isTop;
39
+ return isTop && spacings.spacer;
40
+ });
41
+ var AuthorContainer = styled.div.withConfig({
42
+ displayName: "NewsAuthorCard__AuthorContainer",
43
+ componentId: "sc-17dx8qw-1"
44
+ })(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n flex-direction: row;\n justify-content: flex-start;\n text-align: left;\n\n & > * + * {\n margin-top: 0;\n margin-left: ", "px;\n }\n }\n"], ["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n flex-direction: row;\n justify-content: flex-start;\n text-align: left;\n\n & > * + * {\n margin-top: 0;\n margin-left: ", "px;\n }\n }\n"])), spacings.spacer, mq.medium, spacings.spacer);
45
+ var Avatar = styled.img.withConfig({
46
+ displayName: "NewsAuthorCard__Avatar",
47
+ componentId: "sc-17dx8qw-2"
48
+ })(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n border-radius: 50%; ;\n"], ["\n border-radius: 50%; ;\n"])));
49
+ var Author = styled.div.withConfig({
50
+ displayName: "NewsAuthorCard__Author",
51
+ componentId: "sc-17dx8qw-3"
52
+ })(templateObject_4$3 || (templateObject_4$3 = __makeTemplateObject([""], [""])));
53
+ var StyledCopy = styled(Copy).withConfig({
54
+ displayName: "NewsAuthorCard__StyledCopy",
55
+ componentId: "sc-17dx8qw-4"
56
+ })(templateObject_5$3 || (templateObject_5$3 = __makeTemplateObject(["\n text-transform: uppercase;\n margin-bottom: ", "px;\n"], ["\n text-transform: uppercase;\n margin-bottom: ", "px;\n"])), spacings.nudge * 3);
57
+
58
+ var NewsAuthorCard = function (_a) {
59
+ var label = _a.label,
60
+ author = _a.author,
61
+ avatar = _a.avatar,
62
+ bgMode = _a.bgMode;
63
+ var colors = useLibTheme().colors;
64
+ var isInverted = bgMode === 'inverted';
65
+ var hasBg = bgMode === 'full';
66
+ return React__default.createElement(Section, {
67
+ addSeperation: true,
68
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
69
+ bgMode: mapToBgMode(bgMode, true)
70
+ }, React__default.createElement(Wrapper, {
71
+ clampWidth: "small",
72
+ addWhitespace: true
73
+ }, author && React__default.createElement(React__default.Fragment, null, React__default.createElement(Seperator, {
74
+ isTop: true,
75
+ isInverted: isInverted
76
+ }), React__default.createElement(AuthorContainer, null, avatar && React__default.createElement(Avatar, {
77
+ src: avatar.src,
78
+ alt: avatar.alt
79
+ }), React__default.createElement(Author, null, author && React__default.createElement(StyledCopy, {
80
+ isInverted: isInverted,
81
+ type: "copy-b"
82
+ }, label || 'Written By'), React__default.createElement(Heading, {
83
+ isInverted: isInverted,
84
+ size: "heading-2"
85
+ }, author)))), React__default.createElement(Seperator, {
86
+ isInverted: isInverted
87
+ })));
88
+ };
89
+ var NewsAuthorCard$1 = withLibTheme(NewsAuthorCard);
90
+ var templateObject_1$7, templateObject_2$4, templateObject_3$3, templateObject_4$3, templateObject_5$3;
91
+
92
+ var View = styled.div.withConfig({
93
+ displayName: "NewsCard__View",
94
+ componentId: "sc-ahox9b-0"
95
+ })(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n position: relative;\n text-decoration: none;\n margin: 0;\n padding: 0;\n"], ["\n position: relative;\n text-decoration: none;\n margin: 0;\n padding: 0;\n"])));
96
+ var ImageLink = styled(Link).withConfig({
97
+ displayName: "NewsCard__ImageLink",
98
+ componentId: "sc-ahox9b-1"
99
+ })(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n display: block;\n width: 100%;\n"], ["\n display: block;\n width: 100%;\n"])));
100
+ var StyledImage$1 = styled(Image).withConfig({
101
+ displayName: "NewsCard__StyledImage",
102
+ componentId: "sc-ahox9b-2"
103
+ })(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n overflow: hidden;\n border-radius: ", ";\n"], ["\n overflow: hidden;\n border-radius: ", ";\n"])), function (_a) {
104
+ var theme = _a.theme;
105
+ return getGlobals(theme).sections.edgeRadius;
106
+ });
107
+ var BorderPlaceholder = styled.div.withConfig({
108
+ displayName: "NewsCard__BorderPlaceholder",
109
+ componentId: "sc-ahox9b-3"
110
+ })(templateObject_4$2 || (templateObject_4$2 = __makeTemplateObject(["\n border-top: 1px solid\n ", ";\n"], ["\n border-top: 1px solid\n ", ";\n"])), function (_a) {
111
+ var theme = _a.theme,
112
+ hasBg = _a.hasBg;
113
+ return hasBg ? getColors(theme).elementBg.light : getColors(theme).elementBg.medium;
114
+ });
115
+ var TitleLink = styled(Link).withConfig({
116
+ displayName: "NewsCard__TitleLink",
117
+ componentId: "sc-ahox9b-4"
118
+ })(templateObject_5$2 || (templateObject_5$2 = __makeTemplateObject(["\n display: inline-block;\n ", "\n\n color: ", ";\n text-decoration: none;\n"], ["\n display: inline-block;\n ", "\n\n color: ", ";\n text-decoration: none;\n"])), copyStyle('copy-b', 'big'), function (_a) {
119
+ var theme = _a.theme,
120
+ isInverted = _a.isInverted;
121
+ return isInverted ? getFonts(theme)['copy-b'].big.colorInverted : getFonts(theme)['copy-b'].big.color;
122
+ });
123
+ var Head = styled.div.withConfig({
124
+ displayName: "NewsCard__Head",
125
+ componentId: "sc-ahox9b-5"
126
+ })(templateObject_6$2 || (templateObject_6$2 = __makeTemplateObject(["\n display: flex;\n\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &:not(:first-child) {\n margin-top: ", "px;\n }\n\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n\n & > * + * {\n margin-left: ", "px;\n }\n"], ["\n display: flex;\n\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &:not(:first-child) {\n margin-top: ", "px;\n }\n\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n\n & > * + * {\n margin-left: ", "px;\n }\n"])), spacings.nudge * 3, spacings.nudge * 3, spacings.nudge * 3);
127
+ var Tags$1 = styled.div.withConfig({
128
+ displayName: "NewsCard__Tags",
129
+ componentId: "sc-ahox9b-6"
130
+ })(templateObject_7$2 || (templateObject_7$2 = __makeTemplateObject(["\n display: flex;\n overflow: scroll;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n }\n\n & > * + * {\n margin-left: ", "px;\n }\n"], ["\n display: flex;\n overflow: scroll;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n }\n\n & > * + * {\n margin-left: ", "px;\n }\n"])), spacings.nudge);
131
+ var PublishDate = styled(Copy).withConfig({
132
+ displayName: "NewsCard__PublishDate",
133
+ componentId: "sc-ahox9b-7"
134
+ })(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n &:only-child {\n margin-left: auto;\n }\n"], ["\n &:only-child {\n margin-left: auto;\n }\n"])));
135
+ var Main = styled.div.withConfig({
136
+ displayName: "NewsCard__Main",
137
+ componentId: "sc-ahox9b-8"
138
+ })(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n max-width: 95%;\n\n & > * + * {\n margin-top: ", "px;\n }\n"], ["\n max-width: 95%;\n\n & > * + * {\n margin-top: ", "px;\n }\n"])), spacings.nudge * 3);
139
+ var Text = styled(Copy).withConfig({
140
+ displayName: "NewsCard__Text",
141
+ componentId: "sc-ahox9b-9"
142
+ })(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 6; /* number of lines to show */\n line-clamp: 6;\n -webkit-box-orient: vertical;\n\n & > * {\n margin: 0 !important;\n }\n\n & > p:not(:first-of-type) {\n display: none;\n }\n\n & > ul,\n & > ol,\n & > table {\n display: none;\n }\n"], ["\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 6; /* number of lines to show */\n line-clamp: 6;\n -webkit-box-orient: vertical;\n\n & > * {\n margin: 0 !important;\n }\n\n & > p:not(:first-of-type) {\n display: none;\n }\n\n & > ul,\n & > ol,\n & > table {\n display: none;\n }\n"])));
143
+ var Action = styled.div.withConfig({
144
+ displayName: "NewsCard__Action",
145
+ componentId: "sc-ahox9b-10"
146
+ })(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n margin-top: ", "px;\n"], ["\n margin-top: ", "px;\n"])), spacings.nudge * 3);
147
+ var NewsCard = forwardRef(function (_a, ref) {
148
+ var tags = _a.tags,
149
+ onTagClick = _a.onTagClick,
150
+ publishDate = _a.publishDate,
151
+ title = _a.title,
152
+ text = _a.text,
153
+ image = _a.image,
154
+ link = _a.link,
155
+ isInverted = _a.isInverted,
156
+ action = _a.action,
157
+ customTag = _a.customTag,
158
+ className = _a.className,
159
+ hasBg = _a.hasBg;
160
+ var globals = useLibTheme().globals;
161
+ var publishedAt = '';
162
+
163
+ if (publishDate) {
164
+ var formatter = new StatusFormatter(publishDate.getTime(), '', globals.sections.newsDateFormat(publishDate), globals.sections.newsTimeFormat(publishDate), globals.sections.newsLocaleKey);
165
+ publishedAt = formatter.getFormattedDate();
166
+ }
167
+
168
+ var handleTagClick = function (tag) {
169
+ return onTagClick ? function (ev) {
170
+ ev === null || ev === void 0 ? void 0 : ev.preventDefault();
171
+ onTagClick(tag);
172
+ } : undefined;
173
+ };
174
+
175
+ var filteredTags = useMemo(function () {
176
+ return tags === null || tags === void 0 ? void 0 : tags.filter(function (tag) {
177
+ return tag.name;
178
+ });
179
+ }, [tags]);
180
+ return React__default.createElement(View, {
181
+ ref: ref,
182
+ className: className
183
+ }, image ? React__default.createElement(ImageLink, __assign({}, link, {
184
+ ariaLabel: title
185
+ }), React__default.createElement(StyledImage$1, __assign({}, image, {
186
+ coverSpace: true,
187
+ isInverted: isInverted
188
+ }))) : React__default.createElement(BorderPlaceholder, {
189
+ hasBg: hasBg
190
+ }), React__default.createElement(Head, {
191
+ "data-sheet": "head"
192
+ }, isValidArray(filteredTags, false) && React__default.createElement(Tags$1, null, filteredTags.map(function (tag, i) {
193
+ if (customTag) {
194
+ return customTag({
195
+ key: i,
196
+ name: tag.name || '',
197
+ isInverted: isInverted,
198
+ isActive: false,
199
+ link: tag.link,
200
+ clickHandler: handleTagClick(tag)
201
+ });
202
+ } else {
203
+ return React__default.createElement(Tag, {
204
+ key: i,
205
+ isInverted: isInverted,
206
+ name: tag.name,
207
+ link: tag.link,
208
+ onClick: handleTagClick(tag)
209
+ });
210
+ }
211
+ })), publishedAt && React__default.createElement(PublishDate, {
212
+ size: "small",
213
+ renderAs: "div",
214
+ isInverted: isInverted
215
+ }, publishedAt)), React__default.createElement(Main, null, title && React__default.createElement(TitleLink, __assign({}, link, {
216
+ ariaLabel: title,
217
+ isInverted: isInverted,
218
+ dataSheet: "title"
219
+ }), title), text && React__default.createElement(Text, {
220
+ isInverted: isInverted,
221
+ type: "copy",
222
+ innerHTML: text,
223
+ "data-sheet": "text",
224
+ size: "medium"
225
+ })), action && React__default.createElement(Action, null, action(isInverted)));
226
+ });
227
+ NewsCard.displayName = 'NewsCard';
228
+ var templateObject_1$6, templateObject_2$3, templateObject_3$2, templateObject_4$2, templateObject_5$2, templateObject_6$2, templateObject_7$2, templateObject_8, templateObject_9, templateObject_10, templateObject_11;
229
+
230
+ var TagContainer = styled.div.withConfig({
231
+ displayName: "NewsOverview__TagContainer",
232
+ componentId: "sc-5r2c7-0"
233
+ })(templateObject_1$5 || (templateObject_1$5 = __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);
234
+ var TagWrapper$1 = styled.div.withConfig({
235
+ displayName: "NewsOverview__TagWrapper",
236
+ componentId: "sc-5r2c7-1"
237
+ })(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n padding-top: ", "px;\n padding-left: ", "px;\n"], ["\n padding-top: ", "px;\n padding-left: ", "px;\n"])), spacings.nudge, spacings.nudge);
238
+ var News$1 = styled.ul.withConfig({
239
+ displayName: "NewsOverview__News",
240
+ componentId: "sc-5r2c7-2"
241
+ })(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n list-style: none;\n margin: 0;\n margin-top: -", "px;\n margin-left: -", "px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n"], ["\n list-style: none;\n margin: 0;\n margin-top: -", "px;\n margin-left: -", "px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n"])), spacings.nudge * 6, spacings.spacer);
242
+ var NewsItem$1 = styled.li.withConfig({
243
+ displayName: "NewsOverview__NewsItem",
244
+ componentId: "sc-5r2c7-3"
245
+ })(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n padding-top: ", "px;\n padding-left: ", "px;\n flex: 1 0 100%;\n\n @media ", " {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ", " {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n"], ["\n padding-top: ", "px;\n padding-left: ", "px;\n flex: 1 0 100%;\n\n @media ", " {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ", " {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n"])), spacings.nudge * 6, spacings.spacer, mq.medium, mq.large);
246
+ var ListFooter = styled.div.withConfig({
247
+ displayName: "NewsOverview__ListFooter",
248
+ componentId: "sc-5r2c7-4"
249
+ })(templateObject_5$1 || (templateObject_5$1 = __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);
250
+ var ShowMore = styled.span.withConfig({
251
+ displayName: "NewsOverview__ShowMore",
252
+ componentId: "sc-5r2c7-5"
253
+ })(templateObject_6$1 || (templateObject_6$1 = __makeTemplateObject(["\n display: ", ";\n"], ["\n display: ", ";\n"])), function (_a) {
254
+ var itemCount = _a.itemCount;
255
+ return itemCount && itemCount > 2 ? 'block' : 'none';
256
+ });
257
+ var FilterIcon = styled(Copy).withConfig({
258
+ displayName: "NewsOverview__FilterIcon",
259
+ componentId: "sc-5r2c7-6"
260
+ })(templateObject_7$1 || (templateObject_7$1 = __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);
261
+ var getNewsFilterParams = function (url, theme, tags) {
262
+ if (tags === void 0) {
263
+ tags = [];
264
+ }
265
+
266
+ if (!url) return '';
267
+ if (!isValidArray(tags, false)) return url;
268
+ var filterName = theme.globals.sections.newsFilterName;
269
+ if (!filterName) return url;
270
+
271
+ try {
272
+ var validUrl = new URL(url);
273
+ var newParams = new URLSearchParams(validUrl.search);
274
+ newParams.set(filterName, encodeURIComponent(tags.join(',')));
275
+ return "".concat(url, "?").concat(newParams.toString());
276
+ } catch (err) {
277
+ return "".concat(url, "?").concat(filterName, "=").concat(encodeURIComponent(tags.join(',')));
278
+ }
279
+ };
280
+
281
+ var NewsOverview = function (_a) {
282
+ var anchorId = _a.anchorId,
283
+ news = _a.news,
284
+ tags = _a.tags,
285
+ initial = _a.initial,
286
+ showMoreText = _a.showMoreText,
287
+ bgMode = _a.bgMode,
288
+ onTagClick = _a.onTagClick,
289
+ customTag = _a.customTag;
290
+
291
+ var _b = useLibTheme(),
292
+ colors = _b.colors,
293
+ globals = _b.globals;
294
+
295
+ var filterName = globals.sections.newsFilterName;
296
+ var isInverted = bgMode === 'inverted';
297
+ var hasBg = bgMode === 'full';
298
+
299
+ var _c = useState((initial === null || initial === void 0 ? void 0 : initial.activeTags) || []),
300
+ selectedTags = _c[0],
301
+ setSelectedTags = _c[1];
302
+
303
+ var mqs = ['small', 'semilarge', 'large'];
304
+ var currentMq = useMediaQuery(mqs);
305
+
306
+ var _d = useState(3),
307
+ itemsPerRow = _d[0],
308
+ setItemsPerRow = _d[1];
309
+
310
+ var _e = useState((initial === null || initial === void 0 ? void 0 : initial.visibleRows) || 3),
311
+ visibleRows = _e[0],
312
+ setVisibleRows = _e[1];
313
+
314
+ var isMounted = useMounted();
315
+ var targetRef = useRef(null);
316
+ var observerSupported = useObserverSupport();
317
+ var newsCount = (news === null || news === void 0 ? void 0 : news.length) || 0;
318
+ var setNewPos = useScrollTo(800);
319
+
320
+ var _f = useEqualSheetHeight({
321
+ listLength: Math.min(visibleRows * itemsPerRow, newsCount),
322
+ identifiers: ['[data-sheet="head"]', '[data-sheet="title"]', '[data-sheet="text"]'],
323
+ responsive: {
324
+ small: 1,
325
+ medium: 1,
326
+ semilarge: 2,
327
+ large: 3,
328
+ xlarge: 3
329
+ }
330
+ }),
331
+ cardRefs = _f.sheetRefs,
332
+ triggerCalculation = _f.triggerCalculation;
333
+
334
+ var getFilters = useCallback(function () {
335
+ var tags = [];
336
+ var filters = getUrlParams()[filterName];
337
+
338
+ if (filters) {
339
+ var tagsFilter = filters === null || filters === void 0 ? void 0 : filters.split(',');
340
+
341
+ if (isValidArray(tagsFilter, false)) {
342
+ tags.push.apply(tags, tagsFilter);
343
+ }
344
+ }
345
+
346
+ return tags;
347
+ }, [filterName]);
348
+ useEffect(function () {
349
+ // if initial data is defined exit hook
350
+ if (initial) return; // if no initial data provied try to find needed params in URL
351
+
352
+ var paramTags = getFilters();
353
+ var paramRows = parseInt(getUrlParams()['rows']);
354
+ setVisibleRows(paramRows || 3);
355
+
356
+ if (isValidArray(paramTags, false)) {
357
+ setSelectedTags(paramTags);
358
+ } // trigger equal sheet height recalculation
359
+
360
+
361
+ triggerCalculation(); // eslint-disable-next-line react-hooks/exhaustive-deps
362
+ }, [getFilters, initial]);
363
+ useEffect(function () {
364
+ var _a;
365
+
366
+ if (!initial || isMounted) return; // set inital data into URL
367
+
368
+ setUrlParam('rows', (initial === null || initial === void 0 ? void 0 : initial.visibleRows) || 3);
369
+
370
+ if (isValidArray(initial === null || initial === void 0 ? void 0 : initial.activeTags, false)) {
371
+ setUrlParam(filterName, (_a = initial === null || initial === void 0 ? void 0 : initial.activeTags) === null || _a === void 0 ? void 0 : _a.join(','));
372
+ } else {
373
+ deleteUrlParam(filterName);
374
+ }
375
+ }, [filterName, initial, isMounted]);
376
+ useUpdateEffect(function () {
377
+ setUrlParam('rows', visibleRows);
378
+ }, [visibleRows]);
379
+ useUpdateEffect(function () {
380
+ if (onTagClick || !isValidArray(selectedTags)) return; // set filters to URL params
381
+
382
+ if (selectedTags.length > 0) {
383
+ setUrlParam(filterName, selectedTags.join(','));
384
+ } else {
385
+ deleteUrlParam(filterName);
386
+ }
387
+ }, [selectedTags]);
388
+ useEffect(function () {
389
+ switch (currentMq) {
390
+ case 'large':
391
+ setItemsPerRow(3);
392
+ break;
393
+
394
+ case 'semilarge':
395
+ setItemsPerRow(2);
396
+ break;
397
+
398
+ case 'small':
399
+ setItemsPerRow(1);
400
+ if (visibleRows < 3) setVisibleRows(3);
401
+ break;
402
+
403
+ default:
404
+ setItemsPerRow(1);
405
+ }
406
+ }, [currentMq, visibleRows]);
407
+
408
+ var handleTagClick = function (tag, enableToggling) {
409
+ if (enableToggling === void 0) {
410
+ enableToggling = true;
411
+ }
412
+
413
+ setSelectedTags(function (prev) {
414
+ var prevCopy = __spreadArray([], prev, true);
415
+
416
+ var itemIndex = tag.name ? prev.indexOf(tag.name) : -1;
417
+
418
+ if (itemIndex === -1 && tag.name) {
419
+ return __spreadArray(__spreadArray([], prevCopy, true), [tag.name], false);
420
+ }
421
+
422
+ if (enableToggling) {
423
+ prevCopy.splice(itemIndex, 1);
424
+ return prevCopy;
425
+ }
426
+
427
+ return prev;
428
+ }); // trigger equal sheet height recalculation
429
+
430
+ triggerCalculation();
431
+ setVisibleRows(3);
432
+ };
433
+
434
+ var filteredNews = useMemo(function () {
435
+ var tagFilterFn = function (item) {
436
+ if (!isValidArray(selectedTags, false)) return true;
437
+ if (!item.tags) return false;
438
+ var hasTags = false;
439
+
440
+ for (var i = 0; i < item.tags.length; i++) {
441
+ if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {
442
+ hasTags = true;
443
+ break;
444
+ }
445
+ }
446
+
447
+ return hasTags;
448
+ };
449
+
450
+ var filtered = isValidArray(news) ? __spreadArray([], news, true) : []; // adding filter
451
+
452
+ filtered = filtered === null || filtered === void 0 ? void 0 : filtered.filter(tagFilterFn);
453
+ return filtered;
454
+ }, [news, selectedTags]);
455
+ var visibleNews = useMemo(function () {
456
+ return (filteredNews === null || filteredNews === void 0 ? void 0 : filteredNews.filter(function (_, i) {
457
+ return i < visibleRows * itemsPerRow;
458
+ })) || [];
459
+ }, [filteredNews, itemsPerRow, visibleRows]);
460
+ useEffect(function () {
461
+ // cancel if intersection observers are not supported
462
+ if (!observerSupported) return;
463
+ var element = targetRef.current;
464
+ var observer;
465
+
466
+ if (element) {
467
+ var options = {
468
+ rootMargin: '0px 0px 100px 0px',
469
+ threshold: 0
470
+ };
471
+ observer = new IntersectionObserver(function (entries) {
472
+ var entry = entries[0];
473
+
474
+ if (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) {
475
+ // on bottom of the wrapper load more news
476
+ if (visibleRows < Math.ceil(filteredNews.length / itemsPerRow)) {
477
+ setVisibleRows(function (prev) {
478
+ return prev + 1;
479
+ });
480
+ }
481
+ }
482
+ }, options);
483
+ observer.observe(element);
484
+ }
485
+
486
+ return function () {
487
+ if (observer) observer.disconnect();
488
+ };
489
+ }, [itemsPerRow, newsCount, visibleRows, observerSupported, filteredNews.length]);
490
+ var filteredTags = useMemo(function () {
491
+ return tags === null || tags === void 0 ? void 0 : tags.filter(function (tag) {
492
+ return tag;
493
+ });
494
+ }, [tags]);
495
+ return React__default.createElement(Section, {
496
+ addSeperation: true,
497
+ anchorId: anchorId,
498
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
499
+ bgMode: mapToBgMode(bgMode, true)
500
+ }, React__default.createElement(Wrapper, {
501
+ addWhitespace: true
502
+ }, isValidArray(filteredTags, false) && React__default.createElement(TagContainer, null, React__default.createElement(FilterIcon, {
503
+ size: "small",
504
+ type: "copy",
505
+ isInverted: isInverted
506
+ }, React__default.createElement(Filter, null), React__default.createElement("span", null, "Filter")), filteredTags.map(function (tag, i) {
507
+ return React__default.createElement(TagWrapper$1, {
508
+ key: i
509
+ }, customTag ? customTag({
510
+ key: i,
511
+ name: tag,
512
+ isInverted: isInverted,
513
+ isActive: selectedTags.indexOf(tag) !== -1,
514
+ clickHandler: function (ev) {
515
+ ev === null || ev === void 0 ? void 0 : ev.preventDefault();
516
+
517
+ if (!onTagClick) {
518
+ handleTagClick({
519
+ name: tag
520
+ });
521
+ } else onTagClick({
522
+ name: tag
523
+ });
524
+ }
525
+ }) : React__default.createElement(Tag, {
526
+ isInverted: isInverted,
527
+ onClick: function (ev) {
528
+ ev === null || ev === void 0 ? void 0 : ev.preventDefault();
529
+
530
+ if (!onTagClick) {
531
+ handleTagClick({
532
+ name: tag
533
+ });
534
+ } else onTagClick({
535
+ name: tag
536
+ }, false);
537
+ },
538
+ isActive: selectedTags.indexOf(tag) !== -1
539
+ }, tag));
540
+ })), React__default.createElement(News$1, null, visibleNews.map(function (item, i) {
541
+ var _a;
542
+
543
+ return React__default.createElement(NewsItem$1, {
544
+ key: "".concat(i, "_news_").concat(item.title)
545
+ }, React__default.createElement(NewsCard, __assign({
546
+ hasBg: hasBg || isInverted,
547
+ ref: cardRefs[i]
548
+ }, item, {
549
+ tags: (_a = item.tags) === null || _a === void 0 ? void 0 : _a.map(function (tag) {
550
+ return {
551
+ name: tag.name
552
+ };
553
+ }),
554
+ isInverted: isInverted,
555
+ onTagClick: function (tag) {
556
+ // scroll back to top
557
+ setNewPos(0);
558
+
559
+ if (!onTagClick) {
560
+ // if no callback is defined handle filtering on client side inside the component
561
+ handleTagClick({
562
+ name: tag.name
563
+ }, false);
564
+ } else {
565
+ onTagClick({
566
+ name: tag.name
567
+ }, true);
568
+ }
569
+ },
570
+ customTag: customTag
571
+ })));
572
+ })), React__default.createElement("div", {
573
+ ref: targetRef
574
+ }), !observerSupported && React__default.createElement(ListFooter, null, news && news.length > 0 && React__default.createElement(Copy, {
575
+ type: "copy",
576
+ size: "medium",
577
+ isInverted: isInverted
578
+ }, React__default.createElement(ShowMore, {
579
+ itemCount: news.length,
580
+ onClick: function (ev) {
581
+ ev.preventDefault();
582
+
583
+ if (visibleRows < Math.ceil(filteredNews.length / itemsPerRow)) {
584
+ setVisibleRows(function (prev) {
585
+ return prev + 1;
586
+ });
587
+ }
588
+ }
589
+ }, visibleRows < filteredNews.length / itemsPerRow && React__default.createElement(Pointer.View, {
590
+ as: "button",
591
+ isInverted: isInverted
592
+ }, React__default.createElement(Pointer.Label, null, showMoreText || 'mehr anzeigen')))))));
593
+ };
594
+ var NewsOverview$1 = withLibTheme(NewsOverview);
595
+ var templateObject_1$5, templateObject_2$2, templateObject_3$1, templateObject_4$1, templateObject_5$1, templateObject_6$1, templateObject_7$1;
596
+
597
+ var NewsFooter = function (_a) {
598
+ var anchorId = _a.anchorId,
599
+ news = _a.news,
600
+ bgMode = _a.bgMode,
601
+ customTag = _a.customTag;
602
+
603
+ var _b = useLibTheme(),
604
+ colors = _b.colors,
605
+ theme = _b.theme;
606
+
607
+ var newsCount = (news === null || news === void 0 ? void 0 : news.length) || 0;
608
+ var isInverted = bgMode === 'inverted';
609
+ var hasBg = bgMode === 'full';
610
+ var mqs = ['small', 'semilarge'];
611
+ var currentMq = useMediaQuery(mqs);
612
+
613
+ var _c = useState(2),
614
+ itemsPerRow = _c[0],
615
+ setItemsPerRow = _c[1];
616
+
617
+ var _d = useState(1),
618
+ visibleRows = _d[0],
619
+ setVisibleRows = _d[1];
620
+
621
+ var cardRefs = useEqualSheetHeight({
622
+ listLength: Math.min(visibleRows * itemsPerRow, newsCount),
623
+ identifiers: ['[data-sheet="head"]', '[data-sheet="title"]', '[data-sheet="text"]'],
624
+ responsive: {
625
+ small: 1,
626
+ medium: 1,
627
+ semilarge: 2,
628
+ large: 2,
629
+ xlarge: 2
630
+ }
631
+ }).sheetRefs;
632
+ useEffect(function () {
633
+ switch (currentMq) {
634
+ case 'semilarge':
635
+ setItemsPerRow(2);
636
+ break;
637
+
638
+ case 'small':
639
+ setItemsPerRow(1);
640
+ if (visibleRows < 3) setVisibleRows(3);
641
+ break;
642
+
643
+ default:
644
+ setItemsPerRow(1);
645
+ }
646
+ }, [currentMq, visibleRows]);
647
+ return React__default.createElement(Section, {
648
+ addSeperation: true,
649
+ anchorId: anchorId,
650
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
651
+ bgMode: mapToBgMode(bgMode, true)
652
+ }, React__default.createElement(Wrapper, {
653
+ addWhitespace: true,
654
+ clampWidth: "small"
655
+ }, React__default.createElement(Grid.Row, null, news === null || news === void 0 ? void 0 : news.filter(function (_, i) {
656
+ return i < visibleRows * itemsPerRow;
657
+ }).map(function (item, i) {
658
+ var _a;
659
+
660
+ return React__default.createElement(Grid.Col, {
661
+ medium: {
662
+ span: 6 / 12
663
+ },
664
+ key: "".concat(i, "_news_").concat(item.title)
665
+ }, React__default.createElement(NewsCard, __assign({
666
+ key: i,
667
+ ref: cardRefs[i]
668
+ }, item, {
669
+ tags: (_a = item.tags) === null || _a === void 0 ? void 0 : _a.map(function (tag) {
670
+ var _a, _b;
671
+
672
+ var tagHref = undefined;
673
+
674
+ if (tag.name && ((_a = tag.link) === null || _a === void 0 ? void 0 : _a.href)) {
675
+ tagHref = getNewsFilterParams(tag.link.href, theme, [tag.name]);
676
+ }
677
+
678
+ return {
679
+ name: tag.name,
680
+ link: ((_b = tag.link) === null || _b === void 0 ? void 0 : _b.href) ? __assign(__assign({}, tag.link), {
681
+ href: tagHref
682
+ }) : undefined
683
+ };
684
+ }),
685
+ isInverted: isInverted,
686
+ customTag: customTag
687
+ })));
688
+ }))));
689
+ };
690
+ var NewsFooter$1 = withLibTheme(NewsFooter);
691
+
692
+ var StyledImage = styled(Image).withConfig({
693
+ displayName: "NewsImages__StyledImage",
694
+ componentId: "sc-1l72vc0-0"
695
+ })(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n width: 100%;\n border-radius: ", ";\n overflow: hidden;\n\n picture > img {\n width: 100%;\n height: 100%;\n }\n"], ["\n width: 100%;\n border-radius: ", ";\n overflow: hidden;\n\n picture > img {\n width: 100%;\n height: 100%;\n }\n"])), function (_a) {
696
+ var theme = _a.theme;
697
+ return getGlobals(theme).sections.edgeRadius;
698
+ });
699
+
700
+ var NewsImages = function (_a) {
701
+ var _b;
702
+
703
+ var anchorId = _a.anchorId,
704
+ images = _a.images,
705
+ bgMode = _a.bgMode;
706
+ var colors = useLibTheme().colors;
707
+ var isInverted = bgMode === 'inverted';
708
+ var hasBg = bgMode === 'full';
709
+ return React__default.createElement(Section, {
710
+ addSeperation: true,
711
+ anchorId: anchorId,
712
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
713
+ bgMode: mapToBgMode(bgMode, true)
714
+ }, React__default.createElement(Wrapper, {
715
+ clampWidth: "small",
716
+ addWhitespace: true
717
+ }, React__default.createElement(Grid.Row, null, (_b = images === null || images === void 0 ? void 0 : images.filter(function (img) {
718
+ return img.small;
719
+ })) === null || _b === void 0 ? void 0 : _b.map(function (img, i) {
720
+ return React__default.createElement(Grid.Col, {
721
+ key: i,
722
+ semilarge: {
723
+ span: img.isFull ? 12 / 12 : 6 / 12
724
+ }
725
+ }, React__default.createElement(StyledImage, __assign({}, img, {
726
+ coverSpace: true,
727
+ isInverted: isInverted
728
+ })));
729
+ }))));
730
+ };
731
+ var NewsImages$1 = withLibTheme(NewsImages);
732
+ var templateObject_1$4;
733
+
734
+ var Content = styled.div.withConfig({
735
+ displayName: "NewsIntro__Content",
736
+ componentId: "sc-zz6rn6-0"
737
+ })(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n & > * + * {\n margin-top: ", "px;\n }\n"], ["\n & > * + * {\n margin-top: ", "px;\n }\n"])), spacings.nudge * 3);
738
+ var IntroHead = styled(Copy).withConfig({
739
+ displayName: "NewsIntro__IntroHead",
740
+ componentId: "sc-zz6rn6-1"
741
+ })(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n display: flex;\n\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n flex-direction: row;\n align-items: center;\n\n & > * + * {\n margin-top: 0;\n margin-left: ", "px;\n }\n }\n"], ["\n display: flex;\n\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n flex-direction: row;\n align-items: center;\n\n & > * + * {\n margin-top: 0;\n margin-left: ", "px;\n }\n }\n"])), spacings.nudge * 2, mq.medium, spacings.nudge * 2);
742
+ var Tags = styled.div.withConfig({
743
+ displayName: "NewsIntro__Tags",
744
+ componentId: "sc-zz6rn6-2"
745
+ })(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n flex: 1 1 80%;\n\n display: flex;\n flex-wrap: wrap;\n margin-top: -", "px;\n margin-left: -", "px;\n"], ["\n flex: 1 1 80%;\n\n display: flex;\n flex-wrap: wrap;\n margin-top: -", "px;\n margin-left: -", "px;\n"])), spacings.nudge, spacings.nudge);
746
+ var TagWrapper = styled.span.withConfig({
747
+ displayName: "NewsIntro__TagWrapper",
748
+ componentId: "sc-zz6rn6-3"
749
+ })(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: inline-block;\n padding-top: ", "px;\n padding-left: ", "px;\n"], ["\n display: inline-block;\n padding-top: ", "px;\n padding-left: ", "px;\n"])), spacings.nudge, spacings.nudge);
750
+ var MetaBlock = styled.div.withConfig({
751
+ displayName: "NewsIntro__MetaBlock",
752
+ componentId: "sc-zz6rn6-4"
753
+ })(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n flex: 1 0 auto;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * + * {\n margin-left: ", "px;\n }\n"], ["\n flex: 1 0 auto;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * + * {\n margin-left: ", "px;\n }\n"])), spacings.nudge * 3);
754
+ var StyledTitle = styled(Title).withConfig({
755
+ displayName: "NewsIntro__StyledTitle",
756
+ componentId: "sc-zz6rn6-5"
757
+ })(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n max-width: ", ";\n"], ["\n max-width: ", ";\n"])), function (_a) {
758
+ var clampTitle = _a.clampTitle;
759
+ return clampTitle && 13 / 28 * spacings.wrapperSmall + 'px';
760
+ });
761
+ var ContentBlock$1 = styled(Copy).withConfig({
762
+ displayName: "NewsIntro__ContentBlock",
763
+ componentId: "sc-zz6rn6-6"
764
+ })(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: block;\n margin: ", ";\n max-width: ", ";\n\n :not(:first-child) {\n padding-top: ", "px;\n }\n"], ["\n display: block;\n margin: ", ";\n max-width: ", ";\n\n :not(:first-child) {\n padding-top: ", "px;\n }\n"])), function (_a) {
765
+ var isCentered = _a.isCentered;
766
+ return isCentered && '0 auto';
767
+ }, function (_a) {
768
+ var clampText = _a.clampText;
769
+ return clampText && 19 / 28 * spacings.wrapper + 'px';
770
+ }, spacings.spacer);
771
+
772
+ var NewsIntro = function (_a) {
773
+ var anchorId = _a.anchorId,
774
+ tags = _a.tags,
775
+ meta = _a.meta,
776
+ title = _a.title,
777
+ text = _a.text,
778
+ image = _a.image,
779
+ bgMode = _a.bgMode,
780
+ customTag = _a.customTag;
781
+
782
+ var _b = useLibTheme(),
783
+ globals = _b.globals,
784
+ colors = _b.colors,
785
+ theme = _b.theme;
786
+
787
+ var isInverted = bgMode === 'inverted';
788
+ var hasBg = bgMode === 'full';
789
+ var publishedAt = '';
790
+
791
+ if (meta === null || meta === void 0 ? void 0 : meta.date) {
792
+ var formatter = new StatusFormatter(meta.date.getTime(), '', globals.sections.newsDateFormat(meta.date), globals.sections.newsTimeFormat(meta.date), globals.sections.newsLocaleKey);
793
+ publishedAt = formatter.getFormattedDate();
794
+ }
795
+
796
+ return React__default.createElement(Section, {
797
+ addSeperation: true,
798
+ anchorId: anchorId,
799
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
800
+ bgMode: mapToBgMode(bgMode, true)
801
+ }, React__default.createElement(Wrapper, {
802
+ clampWidth: "small",
803
+ addWhitespace: true
804
+ }, React__default.createElement(Content, null, React__default.createElement(IntroHead, {
805
+ isInverted: isInverted
806
+ }, React__default.createElement(Tags, null, tags === null || tags === void 0 ? void 0 : tags.map(function (tag, i) {
807
+ var _a;
808
+
809
+ var tagLink = undefined;
810
+
811
+ if (tag.name && ((_a = tag.link) === null || _a === void 0 ? void 0 : _a.href)) {
812
+ tagLink = __assign(__assign({}, tag.link), {
813
+ href: getNewsFilterParams(tag.link.href, theme, [tag.name])
814
+ });
815
+ }
816
+
817
+ return React__default.createElement(TagWrapper, {
818
+ key: "headtag-".concat(i)
819
+ }, customTag ? customTag({
820
+ key: "headtag-".concat(i),
821
+ name: tag.name || '',
822
+ isInverted: isInverted,
823
+ isActive: false,
824
+ link: tagLink
825
+ }) : React__default.createElement(Tag, {
826
+ link: tagLink,
827
+ isInverted: isInverted
828
+ }, tag.name));
829
+ })), (publishedAt || (meta === null || meta === void 0 ? void 0 : meta.author)) && React__default.createElement(MetaBlock, null, (meta === null || meta === void 0 ? void 0 : meta.author) && React__default.createElement("div", null, meta === null || meta === void 0 ? void 0 : meta.author), publishedAt && React__default.createElement("div", null, publishedAt))), React__default.createElement("div", null, React__default.createElement(StyledTitle, {
830
+ colorMode: isInverted ? 'inverted' : 'default',
831
+ title: title
832
+ }), text && React__default.createElement(ContentBlock$1, {
833
+ isInverted: isInverted,
834
+ type: "copy-b",
835
+ innerHTML: text
836
+ })), (image === null || image === void 0 ? void 0 : image.small) && React__default.createElement(Image, __assign({}, image, {
837
+ coverSpace: true,
838
+ allowEdgeRadius: true,
839
+ isInverted: isInverted
840
+ })))));
841
+ };
842
+ var NewsIntro$1 = withLibTheme(NewsIntro);
843
+ var templateObject_1$3, templateObject_2$1, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
844
+
845
+ var News = styled.ul.withConfig({
846
+ displayName: "NewsList__News",
847
+ componentId: "sc-sew5jz-0"
848
+ })(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n list-style: none;\n margin: 0;\n margin-top: -", "px;\n margin-left: -", "px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n"], ["\n list-style: none;\n margin: 0;\n margin-top: -", "px;\n margin-left: -", "px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n"])), spacings.nudge * 6, spacings.spacer);
849
+ var NewsItem = styled.li.withConfig({
850
+ displayName: "NewsList__NewsItem",
851
+ componentId: "sc-sew5jz-1"
852
+ })(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding-top: ", "px;\n padding-left: ", "px;\n flex: 1 0 100%;\n max-width: 100%;\n\n @media ", " {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ", " {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n"], ["\n padding-top: ", "px;\n padding-left: ", "px;\n flex: 1 0 100%;\n max-width: 100%;\n\n @media ", " {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ", " {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n"])), spacings.nudge * 6, spacings.spacer, mq.medium, mq.large);
853
+
854
+ var NewsList = function (_a) {
855
+ var anchorId = _a.anchorId,
856
+ _b = _a.mode,
857
+ mode = _b === void 0 ? 'short' : _b,
858
+ news = _a.news,
859
+ bgMode = _a.bgMode,
860
+ customTag = _a.customTag;
861
+
862
+ var _c = useLibTheme(),
863
+ colors = _c.colors,
864
+ theme = _c.theme;
865
+
866
+ var items = useMemo(function () {
867
+ if (!news) return [];
868
+ if (mode === 'expanded') return news.slice(0, 6);else return news.slice(0, 3);
869
+ }, [news, mode]);
870
+ var isInverted = bgMode === 'inverted';
871
+ var hasBg = bgMode === 'full';
872
+ var cardRefs = useEqualSheetHeight({
873
+ listLength: items.length,
874
+ identifiers: ['[data-sheet="head"]', '[data-sheet="title"]', '[data-sheet="text"]'],
875
+ responsive: {
876
+ small: 1,
877
+ medium: 2,
878
+ semilarge: 2,
879
+ large: 3,
880
+ xlarge: 3
881
+ }
882
+ }).sheetRefs;
883
+ return React__default.createElement(Section, {
884
+ addSeperation: true,
885
+ anchorId: anchorId,
886
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
887
+ bgMode: mapToBgMode(bgMode, true)
888
+ }, React__default.createElement(Wrapper, {
889
+ addWhitespace: true
890
+ }, React__default.createElement(News, null, items === null || items === void 0 ? void 0 : items.map(function (item, i) {
891
+ var _a;
892
+
893
+ return React__default.createElement(NewsItem, {
894
+ key: i
895
+ }, React__default.createElement(NewsCard, __assign({
896
+ key: i,
897
+ ref: cardRefs[i]
898
+ }, item, {
899
+ isInverted: isInverted,
900
+ tags: (_a = item.tags) === null || _a === void 0 ? void 0 : _a.map(function (tag) {
901
+ var _a, _b;
902
+
903
+ var tagHref = undefined;
904
+
905
+ if (tag.name && ((_a = tag.link) === null || _a === void 0 ? void 0 : _a.href)) {
906
+ tagHref = getNewsFilterParams(tag.link.href, theme, [tag.name]);
907
+ }
908
+
909
+ return {
910
+ name: tag.name,
911
+ link: ((_b = tag.link) === null || _b === void 0 ? void 0 : _b.href) ? __assign(__assign({}, tag.link), {
912
+ href: tagHref
913
+ }) : undefined
914
+ };
915
+ }),
916
+ customTag: customTag
917
+ })));
918
+ }))));
919
+ };
920
+ var NewsList$1 = withLibTheme(NewsList);
921
+ var templateObject_1$2, templateObject_2;
922
+
923
+ var TableWrapper = styled(Wrapper).withConfig({
924
+ displayName: "NewsTable__TableWrapper",
925
+ componentId: "sc-ph099f-0"
926
+ })(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n & > * + * {\n margin-top: ", "px;\n }\n"], ["\n & > * + * {\n margin-top: ", "px;\n }\n"])), spacings.spacer);
927
+
928
+ var NewsTable = function (_a) {
929
+ var anchorId = _a.anchorId,
930
+ bgMode = _a.bgMode,
931
+ tableItems = _a.tableItems;
932
+ var colors = useLibTheme().colors;
933
+ var isInverted = bgMode === 'inverted';
934
+ var hasBg = bgMode === 'full' || isInverted;
935
+ return React__default.createElement(Section, {
936
+ addSeperation: true,
937
+ anchorId: anchorId,
938
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
939
+ bgMode: mapToBgMode(bgMode, true)
940
+ }, React__default.createElement(TableWrapper, {
941
+ clampWidth: "small"
942
+ }, tableItems.map(function (item, i) {
943
+ return React__default.createElement(TableBlock, __assign({}, item, {
944
+ key: i,
945
+ hasBack: hasBg,
946
+ isInverted: isInverted
947
+ }));
948
+ })));
949
+ };
950
+ var NewsTable$1 = withLibTheme(NewsTable);
951
+ var templateObject_1$1;
952
+
953
+ var ContentBlock = styled(Copy).withConfig({
954
+ displayName: "NewsText__ContentBlock",
955
+ componentId: "sc-2vavtq-0"
956
+ })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: block;\n margin: ", ";\n max-width: ", ";\n\n :not(:first-child) {\n padding-top: ", "px;\n }\n"], ["\n display: block;\n margin: ", ";\n max-width: ", ";\n\n :not(:first-child) {\n padding-top: ", "px;\n }\n"])), function (_a) {
957
+ var isCentered = _a.isCentered;
958
+ return isCentered && '0 auto';
959
+ }, function (_a) {
960
+ var clampText = _a.clampText;
961
+ return clampText && 19 / 28 * spacings.wrapperSmall + 'px';
962
+ }, spacings.nudge * 5);
963
+
964
+ var NewsText = function (_a) {
965
+ var anchorId = _a.anchorId,
966
+ text = _a.text,
967
+ bgMode = _a.bgMode;
968
+ var colors = useLibTheme().colors;
969
+ var isInverted = bgMode === 'inverted';
970
+ var hasBg = bgMode === 'full';
971
+ return React__default.createElement(Section, {
972
+ addSeperation: true,
973
+ anchorId: anchorId,
974
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
975
+ bgMode: mapToBgMode(bgMode, true)
976
+ }, React__default.createElement(Wrapper, {
977
+ clampWidth: "small",
978
+ addWhitespace: true
979
+ }, text && React__default.createElement(ContentBlock, {
980
+ isInverted: isInverted,
981
+ type: "copy",
982
+ innerHTML: text
983
+ })));
984
+ };
985
+ var NewsText$1 = withLibTheme(NewsText);
986
+ var templateObject_1;
987
+
988
+ var NewsVideo = function (_a) {
989
+ var anchorId = _a.anchorId,
990
+ bgImage = _a.bgImage,
991
+ embedId = _a.embedId,
992
+ playIcon = _a.playIcon,
993
+ consentText = _a.consentText,
994
+ consentAction = _a.consentAction,
995
+ bgMode = _a.bgMode;
996
+ var colors = useLibTheme().colors;
997
+ var isInverted = bgMode === 'inverted';
998
+ var hasBg = bgMode === 'full';
999
+ return React__default.createElement(Section, {
1000
+ addSeperation: true,
1001
+ anchorId: anchorId,
1002
+ bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
1003
+ bgMode: mapToBgMode(bgMode, true)
1004
+ }, React__default.createElement(Wrapper, {
1005
+ addWhitespace: true,
1006
+ clampWidth: "small"
1007
+ }, embedId && bgImage && React__default.createElement(VideoCard, {
1008
+ bgImage: bgImage,
1009
+ embedId: embedId,
1010
+ playIcon: playIcon,
1011
+ consentText: consentText,
1012
+ consentAction: consentAction
1013
+ })));
1014
+ };
1015
+ var NewsVideo$1 = withLibTheme(NewsVideo);
1016
+
1017
+ export { NewsAuthorCard$1 as NewsAuthorCard, NewsFooter$1 as NewsFooter, NewsImages$1 as NewsImages, NewsIntro$1 as NewsIntro, NewsList$1 as NewsList, NewsOverview$1 as NewsOverview, NewsTable$1 as NewsTable, NewsText$1 as NewsText, NewsVideo$1 as NewsVideo };
1018
+ //# sourceMappingURL=sections_news.js.map