@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
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./ClockFilled-2483aa4a.js"),n=require("react"),t=require("styled-components"),a=require("./Wrapper-3b9c9e89.js"),i=require("./Copy-e860efe7.js"),l=require("./styles-0f1a0aea.js"),r=require("./LibThemeProvider-fb99fd6d.js"),o=require("./Image-d9681be0.js"),d=require("./TableBlock-080c9c2e.js"),s=require("./statusFormatter-0393122b.js"),c=require("./Link-70143bb7.js"),m=require("./arrays-c272ed59.js"),p=require("./useMediaQuery-d4f81f88.js"),u=require("./urlParams-1d03b5a6.js"),f=require("./useObserverSupport-5ab320dd.js"),g=require("./Pointer-3588eadf.js"),h=require("./VideoCard-1fa209fc.js"),x=require("./useUpdateEffect-4d233e2c.js"),w=require("./useMounted-0bba9869.js");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./clamp-bd21d587.js"),require("./concat-f387d848.js"),require("react-dom/server"),require("./useCookieConsent-0bf94751.js"),require("./ButtonGhost-046437c5.js"),require("./hexRgbConverter-91b28aea.js");var b,_,y,k,I,T,C,E,N,j,B,M,O,S,L,q,A=v(n),W=v(t),z=W.default.div.withConfig({displayName:"NewsAuthorCard__Seperator",componentId:"sc-17dx8qw-0"})(b||(b=e.__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(e){var n=e.isInverted,t=e.theme;return n?l.getColors(t).elementBg.light:l.getColors(t).elementBg.dark}),(function(e){return!e.isTop&&l.spacings.spacer}),(function(e){return e.isTop&&l.spacings.spacer})),F=W.default.div.withConfig({displayName:"NewsAuthorCard__AuthorContainer",componentId:"sc-17dx8qw-1"})(_||(_=e.__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"])),l.spacings.spacer,l.mq.medium,l.spacings.spacer),P=W.default.img.withConfig({displayName:"NewsAuthorCard__Avatar",componentId:"sc-17dx8qw-2"})(y||(y=e.__makeTemplateObject(["\n border-radius: 50%; ;\n"],["\n border-radius: 50%; ;\n"]))),R=W.default.div.withConfig({displayName:"NewsAuthorCard__Author",componentId:"sc-17dx8qw-3"})(k||(k=e.__makeTemplateObject([""],[""]))),U=W.default(i.Copy).withConfig({displayName:"NewsAuthorCard__StyledCopy",componentId:"sc-17dx8qw-4"})(I||(I=e.__makeTemplateObject(["\n text-transform: uppercase;\n margin-bottom: ","px;\n"],["\n text-transform: uppercase;\n margin-bottom: ","px;\n"])),3*l.spacings.nudge),V=r.withLibTheme((function(e){var n=e.label,t=e.author,l=e.avatar,o=e.bgMode,d=r.useLibTheme().colors,s="inverted"===o,c="full"===o;return A.default.createElement(a.Section,{addSeperation:!0,bgColor:s?d.sectionBg.dark:c?d.sectionBg.medium:d.sectionBg.light,bgMode:a.mapToBgMode(o,!0)},A.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},t&&A.default.createElement(A.default.Fragment,null,A.default.createElement(z,{isTop:!0,isInverted:s}),A.default.createElement(F,null,l&&A.default.createElement(P,{src:l.src,alt:l.alt}),A.default.createElement(R,null,t&&A.default.createElement(U,{isInverted:s,type:"copy-b"},n||"Written By"),A.default.createElement(i.Heading,{isInverted:s,size:"heading-2"},t)))),A.default.createElement(z,{isInverted:s})))})),H=W.default.div.withConfig({displayName:"NewsCard__View",componentId:"sc-ahox9b-0"})(T||(T=e.__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"]))),D=W.default(c.Link).withConfig({displayName:"NewsCard__ImageLink",componentId:"sc-ahox9b-1"})(C||(C=e.__makeTemplateObject(["\n display: block;\n width: 100%;\n"],["\n display: block;\n width: 100%;\n"]))),G=W.default(o.Image).withConfig({displayName:"NewsCard__StyledImage",componentId:"sc-ahox9b-2"})(E||(E=e.__makeTemplateObject(["\n overflow: hidden;\n border-radius: ",";\n"],["\n overflow: hidden;\n border-radius: ",";\n"])),(function(e){var n=e.theme;return l.getGlobals(n).sections.edgeRadius})),Q=W.default.div.withConfig({displayName:"NewsCard__BorderPlaceholder",componentId:"sc-ahox9b-3"})(N||(N=e.__makeTemplateObject(["\n border-top: 1px solid\n ",";\n"],["\n border-top: 1px solid\n ",";\n"])),(function(e){var n=e.theme;return e.hasBg?l.getColors(n).elementBg.light:l.getColors(n).elementBg.medium})),K=W.default(c.Link).withConfig({displayName:"NewsCard__TitleLink",componentId:"sc-ahox9b-4"})(j||(j=e.__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"])),i.copyStyle("copy-b","big"),(function(e){var n=e.theme;return e.isInverted?l.getFonts(n)["copy-b"].big.colorInverted:l.getFonts(n)["copy-b"].big.color})),J=W.default.div.withConfig({displayName:"NewsCard__Head",componentId:"sc-ahox9b-5"})(B||(B=e.__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"])),3*l.spacings.nudge,3*l.spacings.nudge,3*l.spacings.nudge),X=W.default.div.withConfig({displayName:"NewsCard__Tags",componentId:"sc-ahox9b-6"})(M||(M=e.__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"])),l.spacings.nudge),Y=W.default(i.Copy).withConfig({displayName:"NewsCard__PublishDate",componentId:"sc-ahox9b-7"})(O||(O=e.__makeTemplateObject(["\n &:only-child {\n margin-left: auto;\n }\n"],["\n &:only-child {\n margin-left: auto;\n }\n"]))),Z=W.default.div.withConfig({displayName:"NewsCard__Main",componentId:"sc-ahox9b-8"})(S||(S=e.__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"])),3*l.spacings.nudge),$=W.default(i.Copy).withConfig({displayName:"NewsCard__Text",componentId:"sc-ahox9b-9"})(L||(L=e.__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"]))),ee=W.default.div.withConfig({displayName:"NewsCard__Action",componentId:"sc-ahox9b-10"})(q||(q=e.__makeTemplateObject(["\n margin-top: ","px;\n"],["\n margin-top: ","px;\n"])),3*l.spacings.nudge),ne=n.forwardRef((function(t,a){var i=t.tags,l=t.onTagClick,o=t.publishDate,c=t.title,p=t.text,u=t.image,f=t.link,g=t.isInverted,h=t.action,x=t.customTag,w=t.className,v=t.hasBg,b=r.useLibTheme().globals,_="";o&&(_=new s.StatusFormatter(o.getTime(),"",b.sections.newsDateFormat(o),b.sections.newsTimeFormat(o),b.sections.newsLocaleKey).getFormattedDate());var y=function(e){return l?function(n){null==n||n.preventDefault(),l(e)}:void 0},k=n.useMemo((function(){return null==i?void 0:i.filter((function(e){return e.name}))}),[i]);return A.default.createElement(H,{ref:a,className:w},u?A.default.createElement(D,e.__assign({},f,{ariaLabel:c}),A.default.createElement(G,e.__assign({},u,{coverSpace:!0,isInverted:g}))):A.default.createElement(Q,{hasBg:v}),A.default.createElement(J,{"data-sheet":"head"},m.isValidArray(k,!1)&&A.default.createElement(X,null,k.map((function(e,n){return x?x({key:n,name:e.name||"",isInverted:g,isActive:!1,link:e.link,clickHandler:y(e)}):A.default.createElement(d.Tag,{key:n,isInverted:g,name:e.name,link:e.link,onClick:y(e)})}))),_&&A.default.createElement(Y,{size:"small",renderAs:"div",isInverted:g},_)),A.default.createElement(Z,null,c&&A.default.createElement(K,e.__assign({},f,{ariaLabel:c,isInverted:g,dataSheet:"title"}),c),p&&A.default.createElement($,{isInverted:g,type:"copy",innerHTML:p,"data-sheet":"text",size:"medium"})),h&&A.default.createElement(ee,null,h(g)))}));ne.displayName="NewsCard";var te,ae,ie,le,re,oe,de,se,ce,me,pe,ue,fe,ge,he,xe,we,ve,be,_e=W.default.div.withConfig({displayName:"NewsOverview__TagContainer",componentId:"sc-5r2c7-0"})(te||(te=e.__makeTemplateObject(["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"],["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"])),l.spacings.nudge,l.spacings.nudge,6*l.spacings.nudge),ye=W.default.div.withConfig({displayName:"NewsOverview__TagWrapper",componentId:"sc-5r2c7-1"})(ae||(ae=e.__makeTemplateObject(["\n padding-top: ","px;\n padding-left: ","px;\n"],["\n padding-top: ","px;\n padding-left: ","px;\n"])),l.spacings.nudge,l.spacings.nudge),ke=W.default.ul.withConfig({displayName:"NewsOverview__News",componentId:"sc-5r2c7-2"})(ie||(ie=e.__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"])),6*l.spacings.nudge,l.spacings.spacer),Ie=W.default.li.withConfig({displayName:"NewsOverview__NewsItem",componentId:"sc-5r2c7-3"})(le||(le=e.__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"])),6*l.spacings.nudge,l.spacings.spacer,l.mq.medium,l.mq.large),Te=W.default.div.withConfig({displayName:"NewsOverview__ListFooter",componentId:"sc-5r2c7-4"})(re||(re=e.__makeTemplateObject(["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"],["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"])),6*l.spacings.nudge,l.mq.medium),Ce=W.default.span.withConfig({displayName:"NewsOverview__ShowMore",componentId:"sc-5r2c7-5"})(oe||(oe=e.__makeTemplateObject(["\n display: ",";\n"],["\n display: ",";\n"])),(function(e){var n=e.itemCount;return n&&n>2?"block":"none"})),Ee=W.default(i.Copy).withConfig({displayName:"NewsOverview__FilterIcon",componentId:"sc-5r2c7-6"})(de||(de=e.__makeTemplateObject(["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"])),l.spacings.nudge/2,l.spacings.nudge,l.spacings.nudge),Ne=function(e,n,t){if(void 0===t&&(t=[]),!e)return"";if(!m.isValidArray(t,!1))return e;var a=n.globals.sections.newsFilterName;if(!a)return e;try{var i=new URL(e),l=new URLSearchParams(i.search);return l.set(a,encodeURIComponent(t.join(","))),"".concat(e,"?").concat(l.toString())}catch(n){return"".concat(e,"?").concat(a,"=").concat(encodeURIComponent(t.join(",")))}},je=r.withLibTheme((function(t){var l=t.anchorId,o=t.news,s=t.tags,c=t.initial,v=t.showMoreText,b=t.bgMode,_=t.onTagClick,y=t.customTag,k=r.useLibTheme(),I=k.colors,T=k.globals.sections.newsFilterName,C="inverted"===b,E="full"===b,N=n.useState((null==c?void 0:c.activeTags)||[]),j=N[0],B=N[1],M=p.useMediaQuery(["small","semilarge","large"]),O=n.useState(3),S=O[0],L=O[1],q=n.useState((null==c?void 0:c.visibleRows)||3),W=q[0],z=q[1],F=w.useMounted(),P=n.useRef(null),R=f.useObserverSupport(),U=(null==o?void 0:o.length)||0,V=u.useScrollTo(800),H=u.useEqualSheetHeight({listLength:Math.min(W*S,U),identifiers:['[data-sheet="head"]','[data-sheet="title"]','[data-sheet="text"]'],responsive:{small:1,medium:1,semilarge:2,large:3,xlarge:3}}),D=H.sheetRefs,G=H.triggerCalculation,Q=n.useCallback((function(){var e=[],n=u.getUrlParams()[T];if(n){var t=null==n?void 0:n.split(",");m.isValidArray(t,!1)&&e.push.apply(e,t)}return e}),[T]);n.useEffect((function(){if(!c){var e=Q(),n=parseInt(u.getUrlParams().rows);z(n||3),m.isValidArray(e,!1)&&B(e),G()}}),[Q,c]),n.useEffect((function(){var e;c&&!F&&(u.setUrlParam("rows",(null==c?void 0:c.visibleRows)||3),m.isValidArray(null==c?void 0:c.activeTags,!1)?u.setUrlParam(T,null===(e=null==c?void 0:c.activeTags)||void 0===e?void 0:e.join(",")):u.deleteUrlParam(T))}),[T,c,F]),x.useUpdateEffect((function(){u.setUrlParam("rows",W)}),[W]),x.useUpdateEffect((function(){!_&&m.isValidArray(j)&&(j.length>0?u.setUrlParam(T,j.join(",")):u.deleteUrlParam(T))}),[j]),n.useEffect((function(){switch(M){case"large":L(3);break;case"semilarge":L(2);break;case"small":L(1),W<3&&z(3);break;default:L(1)}}),[M,W]);var K=function(n,t){void 0===t&&(t=!0),B((function(a){var i=e.__spreadArray([],a,!0),l=n.name?a.indexOf(n.name):-1;return-1===l&&n.name?e.__spreadArray(e.__spreadArray([],i,!0),[n.name],!1):t?(i.splice(l,1),i):a})),G(),z(3)},J=n.useMemo((function(){var n=m.isValidArray(o)?e.__spreadArray([],o,!0):[];return n=null==n?void 0:n.filter((function(e){if(!m.isValidArray(j,!1))return!0;if(!e.tags)return!1;for(var n=!1,t=0;t<e.tags.length;t++)if(-1!==j.indexOf(e.tags[t].name||"")){n=!0;break}return n}))}),[o,j]),X=n.useMemo((function(){return(null==J?void 0:J.filter((function(e,n){return n<W*S})))||[]}),[J,S,W]);n.useEffect((function(){if(R){var e,n=P.current;if(n){(e=new IntersectionObserver((function(e){var n=e[0];(null==n?void 0:n.isIntersecting)&&W<Math.ceil(J.length/S)&&z((function(e){return e+1}))}),{rootMargin:"0px 0px 100px 0px",threshold:0})).observe(n)}return function(){e&&e.disconnect()}}}),[S,U,W,R,J.length]);var Y=n.useMemo((function(){return null==s?void 0:s.filter((function(e){return e}))}),[s]);return A.default.createElement(a.Section,{addSeperation:!0,anchorId:l,bgColor:C?I.sectionBg.dark:E?I.sectionBg.medium:I.sectionBg.light,bgMode:a.mapToBgMode(b,!0)},A.default.createElement(a.Wrapper,{addWhitespace:!0},m.isValidArray(Y,!1)&&A.default.createElement(_e,null,A.default.createElement(Ee,{size:"small",type:"copy",isInverted:C},A.default.createElement(h.Filter,null),A.default.createElement("span",null,"Filter")),Y.map((function(e,n){return A.default.createElement(ye,{key:n},y?y({key:n,name:e,isInverted:C,isActive:-1!==j.indexOf(e),clickHandler:function(n){null==n||n.preventDefault(),_?_({name:e}):K({name:e})}}):A.default.createElement(d.Tag,{isInverted:C,onClick:function(n){null==n||n.preventDefault(),_?_({name:e},!1):K({name:e})},isActive:-1!==j.indexOf(e)},e))}))),A.default.createElement(ke,null,X.map((function(n,t){var a;return A.default.createElement(Ie,{key:"".concat(t,"_news_").concat(n.title)},A.default.createElement(ne,e.__assign({hasBg:E||C,ref:D[t]},n,{tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(e){return{name:e.name}})),isInverted:C,onTagClick:function(e){V(0),_?_({name:e.name},!0):K({name:e.name},!1)},customTag:y})))}))),A.default.createElement("div",{ref:P}),!R&&A.default.createElement(Te,null,o&&o.length>0&&A.default.createElement(i.Copy,{type:"copy",size:"medium",isInverted:C},A.default.createElement(Ce,{itemCount:o.length,onClick:function(e){e.preventDefault(),W<Math.ceil(J.length/S)&&z((function(e){return e+1}))}},W<J.length/S&&A.default.createElement(g.Pointer.View,{as:"button",isInverted:C},A.default.createElement(g.Pointer.Label,null,v||"mehr anzeigen")))))))})),Be=r.withLibTheme((function(t){var i=t.anchorId,l=t.news,o=t.bgMode,d=t.customTag,s=r.useLibTheme(),c=s.colors,m=s.theme,f=(null==l?void 0:l.length)||0,g="inverted"===o,h="full"===o,x=p.useMediaQuery(["small","semilarge"]),w=n.useState(2),v=w[0],b=w[1],_=n.useState(1),y=_[0],k=_[1],I=u.useEqualSheetHeight({listLength:Math.min(y*v,f),identifiers:['[data-sheet="head"]','[data-sheet="title"]','[data-sheet="text"]'],responsive:{small:1,medium:1,semilarge:2,large:2,xlarge:2}}).sheetRefs;return n.useEffect((function(){switch(x){case"semilarge":b(2);break;case"small":b(1),y<3&&k(3);break;default:b(1)}}),[x,y]),A.default.createElement(a.Section,{addSeperation:!0,anchorId:i,bgColor:g?c.sectionBg.dark:h?c.sectionBg.medium:c.sectionBg.light,bgMode:a.mapToBgMode(o,!0)},A.default.createElement(a.Wrapper,{addWhitespace:!0,clampWidth:"small"},A.default.createElement(a.Grid.Row,null,null==l?void 0:l.filter((function(e,n){return n<y*v})).map((function(n,t){var i;return A.default.createElement(a.Grid.Col,{medium:{span:.5},key:"".concat(t,"_news_").concat(n.title)},A.default.createElement(ne,e.__assign({key:t,ref:I[t]},n,{tags:null===(i=n.tags)||void 0===i?void 0:i.map((function(n){var t,a,i=void 0;return n.name&&(null===(t=n.link)||void 0===t?void 0:t.href)&&(i=Ne(n.link.href,m,[n.name])),{name:n.name,link:(null===(a=n.link)||void 0===a?void 0:a.href)?e.__assign(e.__assign({},n.link),{href:i}):void 0}})),isInverted:g,customTag:d})))})))))})),Me=W.default(o.Image).withConfig({displayName:"NewsImages__StyledImage",componentId:"sc-1l72vc0-0"})(se||(se=e.__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(e){var n=e.theme;return l.getGlobals(n).sections.edgeRadius})),Oe=r.withLibTheme((function(n){var t,i=n.anchorId,l=n.images,o=n.bgMode,d=r.useLibTheme().colors,s="inverted"===o,c="full"===o;return A.default.createElement(a.Section,{addSeperation:!0,anchorId:i,bgColor:s?d.sectionBg.dark:c?d.sectionBg.medium:d.sectionBg.light,bgMode:a.mapToBgMode(o,!0)},A.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},A.default.createElement(a.Grid.Row,null,null===(t=null==l?void 0:l.filter((function(e){return e.small})))||void 0===t?void 0:t.map((function(n,t){return A.default.createElement(a.Grid.Col,{key:t,semilarge:{span:n.isFull?1:.5}},A.default.createElement(Me,e.__assign({},n,{coverSpace:!0,isInverted:s})))})))))})),Se=W.default.div.withConfig({displayName:"NewsIntro__Content",componentId:"sc-zz6rn6-0"})(ce||(ce=e.__makeTemplateObject(["\n & > * + * {\n margin-top: ","px;\n }\n"],["\n & > * + * {\n margin-top: ","px;\n }\n"])),3*l.spacings.nudge),Le=W.default(i.Copy).withConfig({displayName:"NewsIntro__IntroHead",componentId:"sc-zz6rn6-1"})(me||(me=e.__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"])),2*l.spacings.nudge,l.mq.medium,2*l.spacings.nudge),qe=W.default.div.withConfig({displayName:"NewsIntro__Tags",componentId:"sc-zz6rn6-2"})(pe||(pe=e.__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"])),l.spacings.nudge,l.spacings.nudge),Ae=W.default.span.withConfig({displayName:"NewsIntro__TagWrapper",componentId:"sc-zz6rn6-3"})(ue||(ue=e.__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"])),l.spacings.nudge,l.spacings.nudge),We=W.default.div.withConfig({displayName:"NewsIntro__MetaBlock",componentId:"sc-zz6rn6-4"})(fe||(fe=e.__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"])),3*l.spacings.nudge),ze=W.default(d.Title).withConfig({displayName:"NewsIntro__StyledTitle",componentId:"sc-zz6rn6-5"})(ge||(ge=e.__makeTemplateObject(["\n max-width: ",";\n"],["\n max-width: ",";\n"])),(function(e){return e.clampTitle&&13/28*l.spacings.wrapperSmall+"px"})),Fe=W.default(i.Copy).withConfig({displayName:"NewsIntro__ContentBlock",componentId:"sc-zz6rn6-6"})(he||(he=e.__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(e){return e.isCentered&&"0 auto"}),(function(e){return e.clampText&&19/28*l.spacings.wrapper+"px"}),l.spacings.spacer),Pe=r.withLibTheme((function(n){var t=n.anchorId,i=n.tags,l=n.meta,c=n.title,m=n.text,p=n.image,u=n.bgMode,f=n.customTag,g=r.useLibTheme(),h=g.globals,x=g.colors,w=g.theme,v="inverted"===u,b="full"===u,_="";(null==l?void 0:l.date)&&(_=new s.StatusFormatter(l.date.getTime(),"",h.sections.newsDateFormat(l.date),h.sections.newsTimeFormat(l.date),h.sections.newsLocaleKey).getFormattedDate());return A.default.createElement(a.Section,{addSeperation:!0,anchorId:t,bgColor:v?x.sectionBg.dark:b?x.sectionBg.medium:x.sectionBg.light,bgMode:a.mapToBgMode(u,!0)},A.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},A.default.createElement(Se,null,A.default.createElement(Le,{isInverted:v},A.default.createElement(qe,null,null==i?void 0:i.map((function(n,t){var a,i=void 0;return n.name&&(null===(a=n.link)||void 0===a?void 0:a.href)&&(i=e.__assign(e.__assign({},n.link),{href:Ne(n.link.href,w,[n.name])})),A.default.createElement(Ae,{key:"headtag-".concat(t)},f?f({key:"headtag-".concat(t),name:n.name||"",isInverted:v,isActive:!1,link:i}):A.default.createElement(d.Tag,{link:i,isInverted:v},n.name))}))),(_||(null==l?void 0:l.author))&&A.default.createElement(We,null,(null==l?void 0:l.author)&&A.default.createElement("div",null,null==l?void 0:l.author),_&&A.default.createElement("div",null,_))),A.default.createElement("div",null,A.default.createElement(ze,{colorMode:v?"inverted":"default",title:c}),m&&A.default.createElement(Fe,{isInverted:v,type:"copy-b",innerHTML:m})),(null==p?void 0:p.small)&&A.default.createElement(o.Image,e.__assign({},p,{coverSpace:!0,allowEdgeRadius:!0,isInverted:v})))))})),Re=W.default.ul.withConfig({displayName:"NewsList__News",componentId:"sc-sew5jz-0"})(xe||(xe=e.__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"])),6*l.spacings.nudge,l.spacings.spacer),Ue=W.default.li.withConfig({displayName:"NewsList__NewsItem",componentId:"sc-sew5jz-1"})(we||(we=e.__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"])),6*l.spacings.nudge,l.spacings.spacer,l.mq.medium,l.mq.large),Ve=r.withLibTheme((function(t){var i=t.anchorId,l=t.mode,o=void 0===l?"short":l,d=t.news,s=t.bgMode,c=t.customTag,m=r.useLibTheme(),p=m.colors,f=m.theme,g=n.useMemo((function(){return d?"expanded"===o?d.slice(0,6):d.slice(0,3):[]}),[d,o]),h="inverted"===s,x="full"===s,w=u.useEqualSheetHeight({listLength:g.length,identifiers:['[data-sheet="head"]','[data-sheet="title"]','[data-sheet="text"]'],responsive:{small:1,medium:2,semilarge:2,large:3,xlarge:3}}).sheetRefs;return A.default.createElement(a.Section,{addSeperation:!0,anchorId:i,bgColor:h?p.sectionBg.dark:x?p.sectionBg.medium:p.sectionBg.light,bgMode:a.mapToBgMode(s,!0)},A.default.createElement(a.Wrapper,{addWhitespace:!0},A.default.createElement(Re,null,null==g?void 0:g.map((function(n,t){var a;return A.default.createElement(Ue,{key:t},A.default.createElement(ne,e.__assign({key:t,ref:w[t]},n,{isInverted:h,tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(n){var t,a,i=void 0;return n.name&&(null===(t=n.link)||void 0===t?void 0:t.href)&&(i=Ne(n.link.href,f,[n.name])),{name:n.name,link:(null===(a=n.link)||void 0===a?void 0:a.href)?e.__assign(e.__assign({},n.link),{href:i}):void 0}})),customTag:c})))})))))})),He=W.default(a.Wrapper).withConfig({displayName:"NewsTable__TableWrapper",componentId:"sc-ph099f-0"})(ve||(ve=e.__makeTemplateObject(["\n & > * + * {\n margin-top: ","px;\n }\n"],["\n & > * + * {\n margin-top: ","px;\n }\n"])),l.spacings.spacer),De=r.withLibTheme((function(n){var t=n.anchorId,i=n.bgMode,l=n.tableItems,o=r.useLibTheme().colors,s="inverted"===i,c="full"===i||s;return A.default.createElement(a.Section,{addSeperation:!0,anchorId:t,bgColor:s?o.sectionBg.dark:c?o.sectionBg.medium:o.sectionBg.light,bgMode:a.mapToBgMode(i,!0)},A.default.createElement(He,{clampWidth:"small"},l.map((function(n,t){return A.default.createElement(d.TableBlock,e.__assign({},n,{key:t,hasBack:c,isInverted:s}))}))))})),Ge=W.default(i.Copy).withConfig({displayName:"NewsText__ContentBlock",componentId:"sc-2vavtq-0"})(be||(be=e.__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(e){return e.isCentered&&"0 auto"}),(function(e){return e.clampText&&19/28*l.spacings.wrapperSmall+"px"}),5*l.spacings.nudge),Qe=r.withLibTheme((function(e){var n=e.anchorId,t=e.text,i=e.bgMode,l=r.useLibTheme().colors,o="inverted"===i,d="full"===i;return A.default.createElement(a.Section,{addSeperation:!0,anchorId:n,bgColor:o?l.sectionBg.dark:d?l.sectionBg.medium:l.sectionBg.light,bgMode:a.mapToBgMode(i,!0)},A.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},t&&A.default.createElement(Ge,{isInverted:o,type:"copy",innerHTML:t})))})),Ke=r.withLibTheme((function(e){var n=e.anchorId,t=e.bgImage,i=e.embedId,l=e.playIcon,o=e.consentText,d=e.consentAction,s=e.bgMode,c=r.useLibTheme().colors,m="inverted"===s,p="full"===s;return A.default.createElement(a.Section,{addSeperation:!0,anchorId:n,bgColor:m?c.sectionBg.dark:p?c.sectionBg.medium:c.sectionBg.light,bgMode:a.mapToBgMode(s,!0)},A.default.createElement(a.Wrapper,{addWhitespace:!0,clampWidth:"small"},i&&t&&A.default.createElement(h.VideoCard,{bgImage:t,embedId:i,playIcon:l,consentText:o,consentAction:d})))}));exports.NewsAuthorCard=V,exports.NewsFooter=Be,exports.NewsImages=Oe,exports.NewsIntro=Pe,exports.NewsList=Ve,exports.NewsOverview=je,exports.NewsTable=De,exports.NewsText=Qe,exports.NewsVideo=Ke;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./ClockFilled-2483aa4a.js"),n=require("react"),t=require("styled-components"),a=require("./Wrapper-91748bdb.js"),i=require("./Copy-e860efe7.js"),l=require("./styles-0f1a0aea.js"),r=require("./LibThemeProvider-fb99fd6d.js"),o=require("./Image-d9681be0.js"),d=require("./Tag-5c72cc0d.js"),s=require("./statusFormatter-0393122b.js"),c=require("./Link-70143bb7.js"),m=require("./arrays-c272ed59.js"),p=require("./useMediaQuery-d4f81f88.js"),u=require("./useEqualSheetHeight-cfd4176e.js"),f=require("./Grid-39b12e21.js"),g=require("./useObserverSupport-5ab320dd.js"),h=require("./useScrollTo-fdd665da.js"),x=require("./Pointer-3588eadf.js"),w=require("./urlParams-7525f638.js"),v=require("./Filter-d6d90b8b.js"),b=require("./useUpdateEffect-4d233e2c.js"),_=require("./useMounted-0bba9869.js"),y=require("./TableBlock-a5b16e8f.js"),k=require("./VideoCard-405b518a.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-f387d848.js"),require("./clamp-bd21d587.js"),require("react-dom/server"),require("./useCookieConsent-0bf94751.js"),require("./ButtonGhost-046437c5.js"),require("./hexRgbConverter-91b28aea.js");var I,C,E,N,j,B,M,O,S,q,L,A,W,z,F,P,R=T(n),U=T(t),V=U.default.div.withConfig({displayName:"NewsAuthorCard__Seperator",componentId:"sc-17dx8qw-0"})(I||(I=e.__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(e){var n=e.isInverted,t=e.theme;return n?l.getColors(t).elementBg.light:l.getColors(t).elementBg.dark}),(function(e){return!e.isTop&&l.spacings.spacer}),(function(e){return e.isTop&&l.spacings.spacer})),H=U.default.div.withConfig({displayName:"NewsAuthorCard__AuthorContainer",componentId:"sc-17dx8qw-1"})(C||(C=e.__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"])),l.spacings.spacer,l.mq.medium,l.spacings.spacer),D=U.default.img.withConfig({displayName:"NewsAuthorCard__Avatar",componentId:"sc-17dx8qw-2"})(E||(E=e.__makeTemplateObject(["\n border-radius: 50%; ;\n"],["\n border-radius: 50%; ;\n"]))),G=U.default.div.withConfig({displayName:"NewsAuthorCard__Author",componentId:"sc-17dx8qw-3"})(N||(N=e.__makeTemplateObject([""],[""]))),Q=U.default(i.Copy).withConfig({displayName:"NewsAuthorCard__StyledCopy",componentId:"sc-17dx8qw-4"})(j||(j=e.__makeTemplateObject(["\n text-transform: uppercase;\n margin-bottom: ","px;\n"],["\n text-transform: uppercase;\n margin-bottom: ","px;\n"])),3*l.spacings.nudge),K=r.withLibTheme((function(e){var n=e.label,t=e.author,l=e.avatar,o=e.bgMode,d=r.useLibTheme().colors,s="inverted"===o,c="full"===o;return R.default.createElement(a.Section,{addSeperation:!0,bgColor:s?d.sectionBg.dark:c?d.sectionBg.medium:d.sectionBg.light,bgMode:a.mapToBgMode(o,!0)},R.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},t&&R.default.createElement(R.default.Fragment,null,R.default.createElement(V,{isTop:!0,isInverted:s}),R.default.createElement(H,null,l&&R.default.createElement(D,{src:l.src,alt:l.alt}),R.default.createElement(G,null,t&&R.default.createElement(Q,{isInverted:s,type:"copy-b"},n||"Written By"),R.default.createElement(i.Heading,{isInverted:s,size:"heading-2"},t)))),R.default.createElement(V,{isInverted:s})))})),J=U.default.div.withConfig({displayName:"NewsCard__View",componentId:"sc-ahox9b-0"})(B||(B=e.__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"]))),X=U.default(c.Link).withConfig({displayName:"NewsCard__ImageLink",componentId:"sc-ahox9b-1"})(M||(M=e.__makeTemplateObject(["\n display: block;\n width: 100%;\n"],["\n display: block;\n width: 100%;\n"]))),Y=U.default(o.Image).withConfig({displayName:"NewsCard__StyledImage",componentId:"sc-ahox9b-2"})(O||(O=e.__makeTemplateObject(["\n overflow: hidden;\n border-radius: ",";\n"],["\n overflow: hidden;\n border-radius: ",";\n"])),(function(e){var n=e.theme;return l.getGlobals(n).sections.edgeRadius})),Z=U.default.div.withConfig({displayName:"NewsCard__BorderPlaceholder",componentId:"sc-ahox9b-3"})(S||(S=e.__makeTemplateObject(["\n border-top: 1px solid\n ",";\n"],["\n border-top: 1px solid\n ",";\n"])),(function(e){var n=e.theme;return e.hasBg?l.getColors(n).elementBg.light:l.getColors(n).elementBg.medium})),$=U.default(c.Link).withConfig({displayName:"NewsCard__TitleLink",componentId:"sc-ahox9b-4"})(q||(q=e.__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"])),i.copyStyle("copy-b","big"),(function(e){var n=e.theme;return e.isInverted?l.getFonts(n)["copy-b"].big.colorInverted:l.getFonts(n)["copy-b"].big.color})),ee=U.default.div.withConfig({displayName:"NewsCard__Head",componentId:"sc-ahox9b-5"})(L||(L=e.__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"])),3*l.spacings.nudge,3*l.spacings.nudge,3*l.spacings.nudge),ne=U.default.div.withConfig({displayName:"NewsCard__Tags",componentId:"sc-ahox9b-6"})(A||(A=e.__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"])),l.spacings.nudge),te=U.default(i.Copy).withConfig({displayName:"NewsCard__PublishDate",componentId:"sc-ahox9b-7"})(W||(W=e.__makeTemplateObject(["\n &:only-child {\n margin-left: auto;\n }\n"],["\n &:only-child {\n margin-left: auto;\n }\n"]))),ae=U.default.div.withConfig({displayName:"NewsCard__Main",componentId:"sc-ahox9b-8"})(z||(z=e.__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"])),3*l.spacings.nudge),ie=U.default(i.Copy).withConfig({displayName:"NewsCard__Text",componentId:"sc-ahox9b-9"})(F||(F=e.__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"]))),le=U.default.div.withConfig({displayName:"NewsCard__Action",componentId:"sc-ahox9b-10"})(P||(P=e.__makeTemplateObject(["\n margin-top: ","px;\n"],["\n margin-top: ","px;\n"])),3*l.spacings.nudge),re=n.forwardRef((function(t,a){var i=t.tags,l=t.onTagClick,o=t.publishDate,c=t.title,p=t.text,u=t.image,f=t.link,g=t.isInverted,h=t.action,x=t.customTag,w=t.className,v=t.hasBg,b=r.useLibTheme().globals,_="";o&&(_=new s.StatusFormatter(o.getTime(),"",b.sections.newsDateFormat(o),b.sections.newsTimeFormat(o),b.sections.newsLocaleKey).getFormattedDate());var y=function(e){return l?function(n){null==n||n.preventDefault(),l(e)}:void 0},k=n.useMemo((function(){return null==i?void 0:i.filter((function(e){return e.name}))}),[i]);return R.default.createElement(J,{ref:a,className:w},u?R.default.createElement(X,e.__assign({},f,{ariaLabel:c}),R.default.createElement(Y,e.__assign({},u,{coverSpace:!0,isInverted:g}))):R.default.createElement(Z,{hasBg:v}),R.default.createElement(ee,{"data-sheet":"head"},m.isValidArray(k,!1)&&R.default.createElement(ne,null,k.map((function(e,n){return x?x({key:n,name:e.name||"",isInverted:g,isActive:!1,link:e.link,clickHandler:y(e)}):R.default.createElement(d.Tag,{key:n,isInverted:g,name:e.name,link:e.link,onClick:y(e)})}))),_&&R.default.createElement(te,{size:"small",renderAs:"div",isInverted:g},_)),R.default.createElement(ae,null,c&&R.default.createElement($,e.__assign({},f,{ariaLabel:c,isInverted:g,dataSheet:"title"}),c),p&&R.default.createElement(ie,{isInverted:g,type:"copy",innerHTML:p,"data-sheet":"text",size:"medium"})),h&&R.default.createElement(le,null,h(g)))}));re.displayName="NewsCard";var oe,de,se,ce,me,pe,ue,fe,ge,he,xe,we,ve,be,_e,ye,ke,Te,Ie,Ce=U.default.div.withConfig({displayName:"NewsOverview__TagContainer",componentId:"sc-5r2c7-0"})(oe||(oe=e.__makeTemplateObject(["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"],["\n margin-top: -","px;\n margin-left: -","px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ","px;\n }\n"])),l.spacings.nudge,l.spacings.nudge,6*l.spacings.nudge),Ee=U.default.div.withConfig({displayName:"NewsOverview__TagWrapper",componentId:"sc-5r2c7-1"})(de||(de=e.__makeTemplateObject(["\n padding-top: ","px;\n padding-left: ","px;\n"],["\n padding-top: ","px;\n padding-left: ","px;\n"])),l.spacings.nudge,l.spacings.nudge),Ne=U.default.ul.withConfig({displayName:"NewsOverview__News",componentId:"sc-5r2c7-2"})(se||(se=e.__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"])),6*l.spacings.nudge,l.spacings.spacer),je=U.default.li.withConfig({displayName:"NewsOverview__NewsItem",componentId:"sc-5r2c7-3"})(ce||(ce=e.__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"])),6*l.spacings.nudge,l.spacings.spacer,l.mq.medium,l.mq.large),Be=U.default.div.withConfig({displayName:"NewsOverview__ListFooter",componentId:"sc-5r2c7-4"})(me||(me=e.__makeTemplateObject(["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"],["\n margin-top: ","px;\n text-align: center;\n\n @media "," {\n text-align: left;\n }\n"])),6*l.spacings.nudge,l.mq.medium),Me=U.default.span.withConfig({displayName:"NewsOverview__ShowMore",componentId:"sc-5r2c7-5"})(pe||(pe=e.__makeTemplateObject(["\n display: ",";\n"],["\n display: ",";\n"])),(function(e){var n=e.itemCount;return n&&n>2?"block":"none"})),Oe=U.default(i.Copy).withConfig({displayName:"NewsOverview__FilterIcon",componentId:"sc-5r2c7-6"})(ue||(ue=e.__makeTemplateObject(["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ","px ","px 0 0;\n\n & > * + * {\n margin-left: ","px;\n }\n"])),l.spacings.nudge/2,l.spacings.nudge,l.spacings.nudge),Se=function(e,n,t){if(void 0===t&&(t=[]),!e)return"";if(!m.isValidArray(t,!1))return e;var a=n.globals.sections.newsFilterName;if(!a)return e;try{var i=new URL(e),l=new URLSearchParams(i.search);return l.set(a,encodeURIComponent(t.join(","))),"".concat(e,"?").concat(l.toString())}catch(n){return"".concat(e,"?").concat(a,"=").concat(encodeURIComponent(t.join(",")))}},qe=r.withLibTheme((function(t){var l=t.anchorId,o=t.news,s=t.tags,c=t.initial,f=t.showMoreText,y=t.bgMode,k=t.onTagClick,T=t.customTag,I=r.useLibTheme(),C=I.colors,E=I.globals.sections.newsFilterName,N="inverted"===y,j="full"===y,B=n.useState((null==c?void 0:c.activeTags)||[]),M=B[0],O=B[1],S=p.useMediaQuery(["small","semilarge","large"]),q=n.useState(3),L=q[0],A=q[1],W=n.useState((null==c?void 0:c.visibleRows)||3),z=W[0],F=W[1],P=_.useMounted(),U=n.useRef(null),V=g.useObserverSupport(),H=(null==o?void 0:o.length)||0,D=h.useScrollTo(800),G=u.useEqualSheetHeight({listLength:Math.min(z*L,H),identifiers:['[data-sheet="head"]','[data-sheet="title"]','[data-sheet="text"]'],responsive:{small:1,medium:1,semilarge:2,large:3,xlarge:3}}),Q=G.sheetRefs,K=G.triggerCalculation,J=n.useCallback((function(){var e=[],n=w.getUrlParams()[E];if(n){var t=null==n?void 0:n.split(",");m.isValidArray(t,!1)&&e.push.apply(e,t)}return e}),[E]);n.useEffect((function(){if(!c){var e=J(),n=parseInt(w.getUrlParams().rows);F(n||3),m.isValidArray(e,!1)&&O(e),K()}}),[J,c]),n.useEffect((function(){var e;c&&!P&&(w.setUrlParam("rows",(null==c?void 0:c.visibleRows)||3),m.isValidArray(null==c?void 0:c.activeTags,!1)?w.setUrlParam(E,null===(e=null==c?void 0:c.activeTags)||void 0===e?void 0:e.join(",")):w.deleteUrlParam(E))}),[E,c,P]),b.useUpdateEffect((function(){w.setUrlParam("rows",z)}),[z]),b.useUpdateEffect((function(){!k&&m.isValidArray(M)&&(M.length>0?w.setUrlParam(E,M.join(",")):w.deleteUrlParam(E))}),[M]),n.useEffect((function(){switch(S){case"large":A(3);break;case"semilarge":A(2);break;case"small":A(1),z<3&&F(3);break;default:A(1)}}),[S,z]);var X=function(n,t){void 0===t&&(t=!0),O((function(a){var i=e.__spreadArray([],a,!0),l=n.name?a.indexOf(n.name):-1;return-1===l&&n.name?e.__spreadArray(e.__spreadArray([],i,!0),[n.name],!1):t?(i.splice(l,1),i):a})),K(),F(3)},Y=n.useMemo((function(){var n=m.isValidArray(o)?e.__spreadArray([],o,!0):[];return n=null==n?void 0:n.filter((function(e){if(!m.isValidArray(M,!1))return!0;if(!e.tags)return!1;for(var n=!1,t=0;t<e.tags.length;t++)if(-1!==M.indexOf(e.tags[t].name||"")){n=!0;break}return n}))}),[o,M]),Z=n.useMemo((function(){return(null==Y?void 0:Y.filter((function(e,n){return n<z*L})))||[]}),[Y,L,z]);n.useEffect((function(){if(V){var e,n=U.current;if(n){(e=new IntersectionObserver((function(e){var n=e[0];(null==n?void 0:n.isIntersecting)&&z<Math.ceil(Y.length/L)&&F((function(e){return e+1}))}),{rootMargin:"0px 0px 100px 0px",threshold:0})).observe(n)}return function(){e&&e.disconnect()}}}),[L,H,z,V,Y.length]);var $=n.useMemo((function(){return null==s?void 0:s.filter((function(e){return e}))}),[s]);return R.default.createElement(a.Section,{addSeperation:!0,anchorId:l,bgColor:N?C.sectionBg.dark:j?C.sectionBg.medium:C.sectionBg.light,bgMode:a.mapToBgMode(y,!0)},R.default.createElement(a.Wrapper,{addWhitespace:!0},m.isValidArray($,!1)&&R.default.createElement(Ce,null,R.default.createElement(Oe,{size:"small",type:"copy",isInverted:N},R.default.createElement(v.Filter,null),R.default.createElement("span",null,"Filter")),$.map((function(e,n){return R.default.createElement(Ee,{key:n},T?T({key:n,name:e,isInverted:N,isActive:-1!==M.indexOf(e),clickHandler:function(n){null==n||n.preventDefault(),k?k({name:e}):X({name:e})}}):R.default.createElement(d.Tag,{isInverted:N,onClick:function(n){null==n||n.preventDefault(),k?k({name:e},!1):X({name:e})},isActive:-1!==M.indexOf(e)},e))}))),R.default.createElement(Ne,null,Z.map((function(n,t){var a;return R.default.createElement(je,{key:"".concat(t,"_news_").concat(n.title)},R.default.createElement(re,e.__assign({hasBg:j||N,ref:Q[t]},n,{tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(e){return{name:e.name}})),isInverted:N,onTagClick:function(e){D(0),k?k({name:e.name},!0):X({name:e.name},!1)},customTag:T})))}))),R.default.createElement("div",{ref:U}),!V&&R.default.createElement(Be,null,o&&o.length>0&&R.default.createElement(i.Copy,{type:"copy",size:"medium",isInverted:N},R.default.createElement(Me,{itemCount:o.length,onClick:function(e){e.preventDefault(),z<Math.ceil(Y.length/L)&&F((function(e){return e+1}))}},z<Y.length/L&&R.default.createElement(x.Pointer.View,{as:"button",isInverted:N},R.default.createElement(x.Pointer.Label,null,f||"mehr anzeigen")))))))})),Le=r.withLibTheme((function(t){var i=t.anchorId,l=t.news,o=t.bgMode,d=t.customTag,s=r.useLibTheme(),c=s.colors,m=s.theme,g=(null==l?void 0:l.length)||0,h="inverted"===o,x="full"===o,w=p.useMediaQuery(["small","semilarge"]),v=n.useState(2),b=v[0],_=v[1],y=n.useState(1),k=y[0],T=y[1],I=u.useEqualSheetHeight({listLength:Math.min(k*b,g),identifiers:['[data-sheet="head"]','[data-sheet="title"]','[data-sheet="text"]'],responsive:{small:1,medium:1,semilarge:2,large:2,xlarge:2}}).sheetRefs;return n.useEffect((function(){switch(w){case"semilarge":_(2);break;case"small":_(1),k<3&&T(3);break;default:_(1)}}),[w,k]),R.default.createElement(a.Section,{addSeperation:!0,anchorId:i,bgColor:h?c.sectionBg.dark:x?c.sectionBg.medium:c.sectionBg.light,bgMode:a.mapToBgMode(o,!0)},R.default.createElement(a.Wrapper,{addWhitespace:!0,clampWidth:"small"},R.default.createElement(f.Grid.Row,null,null==l?void 0:l.filter((function(e,n){return n<k*b})).map((function(n,t){var a;return R.default.createElement(f.Grid.Col,{medium:{span:.5},key:"".concat(t,"_news_").concat(n.title)},R.default.createElement(re,e.__assign({key:t,ref:I[t]},n,{tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(n){var t,a,i=void 0;return n.name&&(null===(t=n.link)||void 0===t?void 0:t.href)&&(i=Se(n.link.href,m,[n.name])),{name:n.name,link:(null===(a=n.link)||void 0===a?void 0:a.href)?e.__assign(e.__assign({},n.link),{href:i}):void 0}})),isInverted:h,customTag:d})))})))))})),Ae=U.default(o.Image).withConfig({displayName:"NewsImages__StyledImage",componentId:"sc-1l72vc0-0"})(fe||(fe=e.__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(e){var n=e.theme;return l.getGlobals(n).sections.edgeRadius})),We=r.withLibTheme((function(n){var t,i=n.anchorId,l=n.images,o=n.bgMode,d=r.useLibTheme().colors,s="inverted"===o,c="full"===o;return R.default.createElement(a.Section,{addSeperation:!0,anchorId:i,bgColor:s?d.sectionBg.dark:c?d.sectionBg.medium:d.sectionBg.light,bgMode:a.mapToBgMode(o,!0)},R.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},R.default.createElement(f.Grid.Row,null,null===(t=null==l?void 0:l.filter((function(e){return e.small})))||void 0===t?void 0:t.map((function(n,t){return R.default.createElement(f.Grid.Col,{key:t,semilarge:{span:n.isFull?1:.5}},R.default.createElement(Ae,e.__assign({},n,{coverSpace:!0,isInverted:s})))})))))})),ze=U.default.div.withConfig({displayName:"NewsIntro__Content",componentId:"sc-zz6rn6-0"})(ge||(ge=e.__makeTemplateObject(["\n & > * + * {\n margin-top: ","px;\n }\n"],["\n & > * + * {\n margin-top: ","px;\n }\n"])),3*l.spacings.nudge),Fe=U.default(i.Copy).withConfig({displayName:"NewsIntro__IntroHead",componentId:"sc-zz6rn6-1"})(he||(he=e.__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"])),2*l.spacings.nudge,l.mq.medium,2*l.spacings.nudge),Pe=U.default.div.withConfig({displayName:"NewsIntro__Tags",componentId:"sc-zz6rn6-2"})(xe||(xe=e.__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"])),l.spacings.nudge,l.spacings.nudge),Re=U.default.span.withConfig({displayName:"NewsIntro__TagWrapper",componentId:"sc-zz6rn6-3"})(we||(we=e.__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"])),l.spacings.nudge,l.spacings.nudge),Ue=U.default.div.withConfig({displayName:"NewsIntro__MetaBlock",componentId:"sc-zz6rn6-4"})(ve||(ve=e.__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"])),3*l.spacings.nudge),Ve=U.default(y.Title).withConfig({displayName:"NewsIntro__StyledTitle",componentId:"sc-zz6rn6-5"})(be||(be=e.__makeTemplateObject(["\n max-width: ",";\n"],["\n max-width: ",";\n"])),(function(e){return e.clampTitle&&13/28*l.spacings.wrapperSmall+"px"})),He=U.default(i.Copy).withConfig({displayName:"NewsIntro__ContentBlock",componentId:"sc-zz6rn6-6"})(_e||(_e=e.__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(e){return e.isCentered&&"0 auto"}),(function(e){return e.clampText&&19/28*l.spacings.wrapper+"px"}),l.spacings.spacer),De=r.withLibTheme((function(n){var t=n.anchorId,i=n.tags,l=n.meta,c=n.title,m=n.text,p=n.image,u=n.bgMode,f=n.customTag,g=r.useLibTheme(),h=g.globals,x=g.colors,w=g.theme,v="inverted"===u,b="full"===u,_="";(null==l?void 0:l.date)&&(_=new s.StatusFormatter(l.date.getTime(),"",h.sections.newsDateFormat(l.date),h.sections.newsTimeFormat(l.date),h.sections.newsLocaleKey).getFormattedDate());return R.default.createElement(a.Section,{addSeperation:!0,anchorId:t,bgColor:v?x.sectionBg.dark:b?x.sectionBg.medium:x.sectionBg.light,bgMode:a.mapToBgMode(u,!0)},R.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},R.default.createElement(ze,null,R.default.createElement(Fe,{isInverted:v},R.default.createElement(Pe,null,null==i?void 0:i.map((function(n,t){var a,i=void 0;return n.name&&(null===(a=n.link)||void 0===a?void 0:a.href)&&(i=e.__assign(e.__assign({},n.link),{href:Se(n.link.href,w,[n.name])})),R.default.createElement(Re,{key:"headtag-".concat(t)},f?f({key:"headtag-".concat(t),name:n.name||"",isInverted:v,isActive:!1,link:i}):R.default.createElement(d.Tag,{link:i,isInverted:v},n.name))}))),(_||(null==l?void 0:l.author))&&R.default.createElement(Ue,null,(null==l?void 0:l.author)&&R.default.createElement("div",null,null==l?void 0:l.author),_&&R.default.createElement("div",null,_))),R.default.createElement("div",null,R.default.createElement(Ve,{colorMode:v?"inverted":"default",title:c}),m&&R.default.createElement(He,{isInverted:v,type:"copy-b",innerHTML:m})),(null==p?void 0:p.small)&&R.default.createElement(o.Image,e.__assign({},p,{coverSpace:!0,allowEdgeRadius:!0,isInverted:v})))))})),Ge=U.default(a.Wrapper).withConfig({displayName:"NewsTable__TableWrapper",componentId:"sc-ph099f-0"})(ye||(ye=e.__makeTemplateObject(["\n & > * + * {\n margin-top: ","px;\n }\n"],["\n & > * + * {\n margin-top: ","px;\n }\n"])),l.spacings.spacer),Qe=r.withLibTheme((function(n){var t=n.anchorId,i=n.bgMode,l=n.tableItems,o=r.useLibTheme().colors,d="inverted"===i,s="full"===i||d;return R.default.createElement(a.Section,{addSeperation:!0,anchorId:t,bgColor:d?o.sectionBg.dark:s?o.sectionBg.medium:o.sectionBg.light,bgMode:a.mapToBgMode(i,!0)},R.default.createElement(Ge,{clampWidth:"small"},l.map((function(n,t){return R.default.createElement(y.TableBlock,e.__assign({},n,{key:t,hasBack:s,isInverted:d}))}))))})),Ke=U.default(i.Copy).withConfig({displayName:"NewsText__ContentBlock",componentId:"sc-2vavtq-0"})(ke||(ke=e.__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(e){return e.isCentered&&"0 auto"}),(function(e){return e.clampText&&19/28*l.spacings.wrapperSmall+"px"}),5*l.spacings.nudge),Je=r.withLibTheme((function(e){var n=e.anchorId,t=e.text,i=e.bgMode,l=r.useLibTheme().colors,o="inverted"===i,d="full"===i;return R.default.createElement(a.Section,{addSeperation:!0,anchorId:n,bgColor:o?l.sectionBg.dark:d?l.sectionBg.medium:l.sectionBg.light,bgMode:a.mapToBgMode(i,!0)},R.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},t&&R.default.createElement(Ke,{isInverted:o,type:"copy",innerHTML:t})))})),Xe=r.withLibTheme((function(e){var n=e.anchorId,t=e.bgImage,i=e.embedId,l=e.playIcon,o=e.consentText,d=e.consentAction,s=e.bgMode,c=r.useLibTheme().colors,m="inverted"===s,p="full"===s;return R.default.createElement(a.Section,{addSeperation:!0,anchorId:n,bgColor:m?c.sectionBg.dark:p?c.sectionBg.medium:c.sectionBg.light,bgMode:a.mapToBgMode(s,!0)},R.default.createElement(a.Wrapper,{addWhitespace:!0,clampWidth:"small"},i&&t&&R.default.createElement(k.VideoCard,{bgImage:t,embedId:i,playIcon:l,consentText:o,consentAction:d})))})),Ye=U.default.ul.withConfig({displayName:"NewsList__News",componentId:"sc-sew5jz-0"})(Te||(Te=e.__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"])),6*l.spacings.nudge,l.spacings.spacer),Ze=U.default.li.withConfig({displayName:"NewsList__NewsItem",componentId:"sc-sew5jz-1"})(Ie||(Ie=e.__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"])),6*l.spacings.nudge,l.spacings.spacer,l.mq.medium,l.mq.large),$e=r.withLibTheme((function(t){var i=t.anchorId,l=t.mode,o=void 0===l?"short":l,d=t.news,s=t.bgMode,c=t.customTag,m=r.useLibTheme(),p=m.colors,f=m.theme,g=n.useMemo((function(){return d?"expanded"===o?d.slice(0,6):d.slice(0,3):[]}),[d,o]),h="inverted"===s,x="full"===s,w=u.useEqualSheetHeight({listLength:g.length,identifiers:['[data-sheet="head"]','[data-sheet="title"]','[data-sheet="text"]'],responsive:{small:1,medium:2,semilarge:2,large:3,xlarge:3}}).sheetRefs;return R.default.createElement(a.Section,{addSeperation:!0,anchorId:i,bgColor:h?p.sectionBg.dark:x?p.sectionBg.medium:p.sectionBg.light,bgMode:a.mapToBgMode(s,!0)},R.default.createElement(a.Wrapper,{addWhitespace:!0},R.default.createElement(Ye,null,null==g?void 0:g.map((function(n,t){var a;return R.default.createElement(Ze,{key:t},R.default.createElement(re,e.__assign({key:t,ref:w[t]},n,{isInverted:h,tags:null===(a=n.tags)||void 0===a?void 0:a.map((function(n){var t,a,i=void 0;return n.name&&(null===(t=n.link)||void 0===t?void 0:t.href)&&(i=Se(n.link.href,f,[n.name])),{name:n.name,link:(null===(a=n.link)||void 0===a?void 0:a.href)?e.__assign(e.__assign({},n.link),{href:i}):void 0}})),customTag:c})))})))))}));exports.NewsAuthorCard=K,exports.NewsFooter=Le,exports.NewsImages=We,exports.NewsIntro=De,exports.NewsList=$e,exports.NewsOverview=qe,exports.NewsTable=Qe,exports.NewsText=Je,exports.NewsVideo=Xe;
2
2
  //# sourceMappingURL=sections_news.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sections_news.js","sources":["../src/components/sections/news/NewsAuthorCard.tsx","../src/components/blocks/NewsCard.tsx","../src/components/sections/news/NewsOverview.tsx","../src/components/sections/news/NewsFooter.tsx","../src/components/sections/news/NewsImages.tsx","../src/components/sections/news/NewsIntro.tsx","../src/components/sections/news/NewsList.tsx","../src/components/sections/news/NewsTable.tsx","../src/components/sections/news/NewsText.tsx","../src/components/sections/news/NewsVideo.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst Seperator = styled.div<{ isInverted?: boolean; isTop?: boolean }>`\n border-bottom: solid 1px\n ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n\n margin-top: ${({ isTop }) => !isTop && spacings.spacer}px;\n margin-bottom: ${({ isTop }) => isTop && spacings.spacer}px;\n`;\n\nconst AuthorContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n justify-content: flex-start;\n text-align: left;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.spacer}px;\n }\n }\n`;\n\nconst Avatar = styled.img`\n border-radius: 50%; ;\n`;\n\nconst Author = styled.div``;\n\nconst StyledCopy = styled(Copy)`\n text-transform: uppercase;\n margin-bottom: ${spacings.nudge * 3}px;\n`;\n\nconst NewsAuthorCard: React.FC<{\n /** Text above author name */\n label?: string;\n\n /** Article's author name */\n author?: string;\n\n /** Author avatar image */\n avatar?: { src: string; alt?: string };\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ label, author, avatar, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {author && (\n <React.Fragment>\n <Seperator isTop isInverted={isInverted} />\n <AuthorContainer>\n {avatar && (\n <Avatar src={avatar.src} alt={avatar.alt} />\n )}\n <Author>\n {author && (\n <StyledCopy\n isInverted={isInverted}\n type=\"copy-b\"\n >\n {label || 'Written By'}\n </StyledCopy>\n )}\n <Heading\n isInverted={isInverted}\n size=\"heading-2\"\n >\n {author}\n </Heading>\n </Author>\n </AuthorContainer>\n </React.Fragment>\n )}\n <Seperator isInverted={isInverted} />\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsAuthorCardComponent = NewsAuthorCard;\nexport default withLibTheme(NewsAuthorCard);\n","import React, { forwardRef, useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport {\n spacings,\n getGlobals as global,\n getFonts as font,\n getColors,\n} from 'utils/styles';\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport StatusFormatter from 'utils/statusFormatter';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport { isValidArray } from 'utils/arrays';\n\nconst View = styled.div`\n position: relative;\n text-decoration: none;\n margin: 0;\n padding: 0;\n`;\n\nconst ImageLink = styled(Link)`\n display: block;\n width: 100%;\n`;\n\nconst StyledImage = styled(Image)`\n overflow: hidden;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n`;\n\nconst BorderPlaceholder = styled.div<{ hasBg?: boolean }>`\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg\n ? getColors(theme).elementBg.light\n : getColors(theme).elementBg.medium};\n`;\n\nconst TitleLink = styled(Link)`\n display: inline-block;\n ${copyStyle('copy-b', 'big')}\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n text-decoration: none;\n`;\n\nconst Head = styled.div`\n display: flex;\n\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n &:not(:last-child) {\n margin-bottom: ${spacings.nudge * 3}px;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Tags = styled.div`\n display: flex;\n overflow: scroll;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst PublishDate = styled(Copy)`\n &:only-child {\n margin-left: auto;\n }\n`;\n\nconst Main = styled.div`\n max-width: 95%;\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Text = styled(Copy)`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 6; /* number of lines to show */\n line-clamp: 6;\n -webkit-box-orient: vertical;\n\n & > * {\n margin: 0 !important;\n }\n\n & > p:not(:first-of-type) {\n display: none;\n }\n\n & > ul,\n & > ol,\n & > table {\n display: none;\n }\n`;\n\nconst Action = styled.div`\n margin-top: ${spacings.nudge * 3}px;\n`;\n\nexport interface NewsCardProps {\n /** Invert text and background for use on dark sections */\n isInverted?: boolean;\n\n /** News tag name */\n tags?: TagProps[];\n\n /** News publish date */\n publishDate?: Date;\n\n /** News title */\n title?: string;\n\n /** News text */\n text?: string;\n\n /** News image settings */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** News link settings */\n link?: LinkProps;\n\n /** Callback function if tag in news iten has been clicked */\n onTagClick?: (tag: TagProps) => void;\n\n /** Function to inject primary action */\n action?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLAnchorElement>) => void;\n }) => React.ReactNode;\n\n hasBg?: boolean;\n}\n\nconst NewsCard = forwardRef<\n HTMLDivElement,\n NewsCardProps & {\n className?: string;\n }\n>(\n (\n {\n tags,\n onTagClick,\n publishDate,\n title,\n text,\n image,\n link,\n isInverted,\n action,\n customTag,\n className,\n hasBg,\n },\n ref\n ) => {\n const { globals } = useLibTheme();\n\n let publishedAt = '';\n if (publishDate) {\n const formatter = new StatusFormatter(\n publishDate.getTime(),\n '',\n globals.sections.newsDateFormat(publishDate),\n globals.sections.newsTimeFormat(publishDate),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n const handleTagClick = (tag: TagProps) =>\n onTagClick\n ? (ev?: React.SyntheticEvent<HTMLAnchorElement>) => {\n ev?.preventDefault();\n onTagClick(tag);\n }\n : undefined;\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag.name);\n }, [tags]);\n\n return (\n <View ref={ref} className={className}>\n {image ? (\n <ImageLink {...link} ariaLabel={title}>\n <StyledImage\n {...image}\n coverSpace\n isInverted={isInverted}\n />\n </ImageLink>\n ) : (\n <BorderPlaceholder hasBg={hasBg} />\n )}\n <Head data-sheet=\"head\">\n {isValidArray(filteredTags, false) && (\n <Tags>\n {filteredTags.map((tag, i) => {\n if (customTag) {\n return customTag({\n key: i,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n clickHandler: handleTagClick(tag),\n });\n } else {\n return (\n <Tag\n key={i}\n isInverted={isInverted}\n name={tag.name}\n link={tag.link}\n onClick={handleTagClick(tag)}\n />\n );\n }\n })}\n </Tags>\n )}\n {publishedAt && (\n <PublishDate\n size=\"small\"\n renderAs=\"div\"\n isInverted={isInverted}\n >\n {publishedAt}\n </PublishDate>\n )}\n </Head>\n <Main>\n {title && (\n <TitleLink\n {...link}\n ariaLabel={title}\n isInverted={isInverted}\n dataSheet=\"title\"\n >\n {title}\n </TitleLink>\n )}\n {text && (\n <Text\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n data-sheet=\"text\"\n size=\"medium\"\n />\n )}\n </Main>\n {action && <Action>{action(isInverted)}</Action>}\n </View>\n );\n }\n);\n\nNewsCard.displayName = 'NewsCard';\n\nexport default NewsCard;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport Copy from 'components/typography/Copy';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport Pointer from 'components/buttons/Pointer';\nimport { isValidArray } from 'utils/arrays';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport Filter from 'components/base/icons/Filter';\nimport useUpdateEffect from 'utils/useUpdateEffect';\nimport useMounted from 'utils/useMounted';\n\nconst TagContainer = styled.div`\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ${spacings.nudge * 6}px;\n }\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nconst ListFooter = styled.div`\n margin-top: ${spacings.nudge * 6}px;\n text-align: center;\n\n @media ${mq.medium} {\n text-align: left;\n }\n`;\n\nconst ShowMore = styled.span<{ itemCount?: number }>`\n display: ${({ itemCount }) =>\n itemCount && itemCount > 2 ? 'block' : 'none'};\n`;\n\nconst FilterIcon = styled(Copy)`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ${spacings.nudge / 2}px ${spacings.nudge}px 0 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nexport const getNewsFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.newsFilterName;\n if (!filterName) return url;\n\n try {\n const validUrl = new URL(url);\n const newParams = new URLSearchParams(validUrl.search);\n newParams.set(filterName, encodeURIComponent(tags.join(',')));\n\n return `${url}?${newParams.toString()}`;\n } catch (err) {\n return `${url}?${filterName}=${encodeURIComponent(tags.join(','))}`;\n }\n};\n\ntype NewsOverviewMq = 'small' | 'semilarge' | 'large';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'customTag' | 'isInverted' | 'onTagClick'\n>;\n\nconst NewsOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news?: NewsItem[];\n\n /** Tags for news filtering */\n tags?: string[];\n\n /** Initial data. If not defined the component tries to collect this from URL params */\n initial?: {\n activeTags?: string[];\n visibleRows?: number;\n };\n\n /** Text for load more toggle. Only visible if browser doesn't support IntersectionObserver. */\n showMoreText?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /**\n * Callback function to handle tag click outside of component\n * If no callback is defined filtering is controlled on client\n * */\n onTagClick?: (tag: TagProps, insideList?: boolean) => void;\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLElement>) => void;\n }) => React.ReactNode;\n}> = ({\n anchorId,\n news,\n tags,\n initial,\n showMoreText,\n bgMode,\n\n onTagClick,\n customTag,\n}) => {\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.newsFilterName;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [selectedTags, setSelectedTags] = useState<string[]>(\n initial?.activeTags || []\n );\n\n const mqs: NewsOverviewMq[] = ['small', 'semilarge', 'large'];\n const currentMq = useMediaQuery(mqs) as NewsOverviewMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(3);\n const [visibleRows, setVisibleRows] = useState(initial?.visibleRows || 3);\n const isMounted = useMounted();\n\n const targetRef = useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n\n const newsCount = news?.length || 0;\n\n const setNewPos = useScrollTo(800);\n const { sheetRefs: cardRefs, triggerCalculation } =\n useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n const getFilters = useCallback(() => {\n const tags: string[] = [];\n\n const filters = getUrlParams()[filterName];\n if (filters) {\n const tagsFilter = filters?.split(',');\n if (isValidArray(tagsFilter, false)) {\n tags.push(...tagsFilter);\n }\n }\n return tags;\n }, [filterName]);\n\n useEffect(() => {\n // if initial data is defined exit hook\n if (initial) return;\n\n // if no initial data provied try to find needed params in URL\n const paramTags = getFilters();\n const paramRows = parseInt(getUrlParams()['rows']);\n\n setVisibleRows(paramRows || 3);\n\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\n\n // trigger equal sheet height recalculation\n triggerCalculation();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getFilters, initial]);\n\n useEffect(() => {\n if (!initial || isMounted) return;\n\n // set inital data into URL\n setUrlParam('rows', initial?.visibleRows || 3);\n\n if (isValidArray(initial?.activeTags, false)) {\n setUrlParam(filterName, initial?.activeTags?.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterName, initial, isMounted]);\n\n useUpdateEffect(() => {\n setUrlParam('rows', visibleRows);\n }, [visibleRows]);\n\n useUpdateEffect(() => {\n if (onTagClick || !isValidArray(selectedTags)) return;\n\n // set filters to URL params\n if (selectedTags.length > 0) {\n setUrlParam(filterName, selectedTags.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [selectedTags]);\n\n useEffect(() => {\n switch (currentMq) {\n case 'large':\n setItemsPerRow(3);\n break;\n\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n const handleTagClick = (tag: TagProps, enableToggling = true) => {\n setSelectedTags((prev) => {\n const prevCopy = [...prev];\n const itemIndex = tag.name ? prev.indexOf(tag.name) : -1;\n\n if (itemIndex === -1 && tag.name) {\n return [...prevCopy, tag.name];\n }\n if (enableToggling) {\n prevCopy.splice(itemIndex, 1);\n return prevCopy;\n }\n return prev;\n });\n // trigger equal sheet height recalculation\n triggerCalculation();\n setVisibleRows(3);\n };\n\n const filteredNews = useMemo(() => {\n const tagFilterFn = (item: NewsItem) => {\n if (!isValidArray(selectedTags, false)) return true;\n if (!item.tags) return false;\n\n let hasTags = false;\n for (let i = 0; i < item.tags.length; i++) {\n if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {\n hasTags = true;\n break;\n }\n }\n return hasTags;\n };\n\n let filtered = isValidArray(news) ? [...news] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [news, selectedTags]);\n\n const visibleNews: NewsItem[] = useMemo(() => {\n return (\n filteredNews?.filter((_, i) => i < visibleRows * itemsPerRow) || []\n );\n }, [filteredNews, itemsPerRow, visibleRows]);\n\n useEffect(() => {\n // cancel if intersection observers are not supported\n if (!observerSupported) return;\n\n const element = targetRef.current;\n let observer: IntersectionObserver;\n\n if (element) {\n const options = {\n rootMargin: '0px 0px 100px 0px',\n threshold: 0,\n };\n\n observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry?.isIntersecting) {\n // on bottom of the wrapper load more news\n if (\n visibleRows <\n Math.ceil(filteredNews.length / itemsPerRow)\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }\n }, options);\n observer.observe(element);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, [\n itemsPerRow,\n newsCount,\n visibleRows,\n observerSupported,\n filteredNews.length,\n ]);\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag);\n }, [tags]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {isValidArray(filteredTags, false) && (\n <TagContainer>\n <FilterIcon\n size=\"small\"\n type=\"copy\"\n isInverted={isInverted}\n >\n <Filter />\n <span>Filter</span>\n </FilterIcon>\n {filteredTags.map((tag, i) => (\n <TagWrapper key={i}>\n {customTag ? (\n customTag({\n key: i,\n name: tag,\n isInverted: isInverted,\n isActive:\n selectedTags.indexOf(tag) !== -1,\n clickHandler: (ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else onTagClick({ name: tag });\n },\n })\n ) : (\n <Tag\n isInverted={isInverted}\n onClick={(ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else\n onTagClick(\n { name: tag },\n false\n );\n }}\n isActive={\n selectedTags.indexOf(tag) !== -1\n }\n >\n {tag}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n <News>\n {visibleNews.map((item, i) => (\n <NewsItem key={`${i}_news_${item.title}`}>\n <NewsCard\n hasBg={hasBg || isInverted}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => ({\n name: tag.name,\n }))}\n isInverted={isInverted}\n onTagClick={(tag) => {\n // scroll back to top\n setNewPos(0);\n if (!onTagClick) {\n // if no callback is defined handle filtering on client side inside the component\n handleTagClick(\n { name: tag.name },\n false\n );\n } else {\n onTagClick({ name: tag.name }, true);\n }\n }}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {news && news.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={news.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredNews.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredNews.length / itemsPerRow && (\n <Pointer.View\n as=\"button\"\n isInverted={isInverted}\n >\n <Pointer.Label>\n {showMoreText ||\n 'mehr anzeigen'}\n </Pointer.Label>\n </Pointer.View>\n )}\n </ShowMore>\n </Copy>\n )}\n </ListFooter>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsOverviewComponent = NewsOverview;\nexport default withLibTheme(NewsOverview);\n","import React from 'react';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { useEffect, useState } from 'react';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\ntype NewsFooterMq = 'small' | 'semilarge';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsFooter: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news: NewsItem[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n const newsCount = news?.length || 0;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const mqs: NewsFooterMq[] = ['small', 'semilarge'];\n const currentMq = useMediaQuery(mqs) as NewsFooterMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(2);\n const [visibleRows, setVisibleRows] = useState(1);\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 2,\n xlarge: 2,\n },\n });\n\n useEffect(() => {\n switch (currentMq) {\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n <Grid.Row>\n {news\n ?.filter((_, i) => i < visibleRows * itemsPerRow)\n .map((item, i) => (\n <Grid.Col\n medium={{ span: 6 / 12 }}\n key={`${i}_news_${item.title}`}\n >\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n isInverted={isInverted}\n customTag={customTag}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsFooterComponent = NewsFooter;\nexport default withLibTheme(NewsFooter);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Grid from 'components/base/Grid';\n\nconst StyledImage = styled(Image)`\n width: 100%;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n picture > img {\n width: 100%;\n height: 100%;\n }\n`;\n\ntype ImageType = Omit<ImageProps, 'coverSpace'> & { isFull?: boolean };\n\nconst NewsImages: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** List of gallery images */\n images?: ImageType[];\n\n /** Image style */\n isFull?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, images, bgMode }) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Grid.Row>\n {images\n ?.filter((img) => img.small)\n ?.map((img, i) => (\n <Grid.Col\n key={i}\n semilarge={{\n span: img.isFull ? 12 / 12 : 6 / 12,\n }}\n >\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n {/* {images && (imageStyle === 'half' || images.length >= 2) ? (\n <Grid.Row>\n {images.map((img, i) => {\n return (\n <Grid.Col medium={{ span: 6 / 12 }} key={i}>\n <div>\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </div>\n </Grid.Col>\n );\n })}\n </Grid.Row>\n ) : (\n images && (\n <div>\n {images.map((img, i) => {\n return (\n <StyledImage\n key={i}\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n );\n })}\n </div>\n )\n )} */}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsImagesComponent = NewsImages;\nexport default withLibTheme(NewsImages);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Title from 'components/blocks/Title';\nimport Copy from 'components/typography/Copy';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { mq, spacings } from 'utils/styles';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst Content = styled.div`\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst IntroHead = styled(Copy)`\n display: flex;\n\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n align-items: center;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.nudge * 2}px;\n }\n }\n`;\n\nconst Tags = styled.div`\n flex: 1 1 80%;\n\n display: flex;\n flex-wrap: wrap;\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n`;\n\nconst TagWrapper = styled.span`\n display: inline-block;\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst MetaBlock = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst StyledTitle = styled(Title)<{ clampTitle?: boolean }>`\n max-width: ${({ clampTitle }) =>\n clampTitle && (13 / 28) * spacings.wrapperSmall + 'px'};\n`;\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapper + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsIntro: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news tags */\n tags?: TagProps[];\n\n /** News article's meta informations */\n meta?: { date?: Date; author?: string };\n\n /** Title of news article */\n title?: string;\n\n /** Main image of news article */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** Text of news article (richtext) */\n text?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, tags, meta, title, text, image, bgMode, customTag }) => {\n const { globals, colors, theme } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n let publishedAt = '';\n if (meta?.date) {\n const formatter = new StatusFormatter(\n meta.date.getTime(),\n '',\n globals.sections.newsDateFormat(meta.date),\n globals.sections.newsTimeFormat(meta.date),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Content>\n <IntroHead isInverted={isInverted}>\n <Tags>\n {tags?.map((tag, i) => {\n let tagLink: LinkProps | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagLink = {\n ...tag.link,\n href: getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n ),\n };\n }\n\n return (\n <TagWrapper key={`headtag-${i}`}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tagLink,\n })\n ) : (\n <Tag\n link={tagLink}\n isInverted={isInverted}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n );\n })}\n </Tags>\n {(publishedAt || meta?.author) && (\n <MetaBlock>\n {meta?.author && <div>{meta?.author}</div>}\n {publishedAt && <div>{publishedAt}</div>}\n </MetaBlock>\n )}\n </IntroHead>\n <div>\n <StyledTitle\n colorMode={isInverted ? 'inverted' : 'default'}\n title={title}\n />\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy-b\"\n innerHTML={text}\n />\n )}\n </div>\n {image?.small && (\n <Image\n {...image}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n />\n )}\n </Content>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsIntroComponent = NewsIntro;\nexport default withLibTheme(NewsIntro);\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { mq, spacings } from 'utils/styles';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n max-width: 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Show a short version of three or a expanded version of six news items */\n mode?: 'short' | 'expanded';\n\n /** Array of news card settings */\n news?: NewsItem[];\n\n /** Sections background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, mode = 'short', news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n\n const items = useMemo<NewsCardProps[]>(() => {\n if (!news) return [];\n if (mode === 'expanded') return news.slice(0, 6);\n else return news.slice(0, 3);\n }, [news, mode]);\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: items.length,\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 2,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <News>\n {items?.map((item, i) => (\n <NewsItem key={i}>\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n isInverted={isInverted}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsListComponent = NewsList;\nexport default withLibTheme(NewsList);\n","import React from 'react';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport TableBlock, { TableProps } from 'components/blocks/TableBlock';\nimport styled from 'styled-components';\nimport { spacings } from 'utils/styles';\n\nconst TableWrapper = styled(Wrapper)`\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsTable: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Table rows and columns */\n tableItems: TableProps[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, bgMode, tableItems }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full' || isInverted;\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <TableWrapper clampWidth=\"small\">\n {tableItems.map((item, i) => {\n return (\n <TableBlock\n {...item}\n key={i}\n hasBack={hasBg}\n isInverted={isInverted}\n />\n );\n })}\n </TableWrapper>\n </Section>\n );\n};\n\nexport const NewsTableComponent = NewsTable;\nexport default withLibTheme(NewsTable);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Copy from 'components/typography/Copy';\nimport Wrapper from 'components/base/Wrapper';\nimport { spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapperSmall + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.nudge * 5}px;\n }\n`;\n\nconst NewsText: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Main text (RichText) */\n text: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, text, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsTextComponent = NewsText;\nexport default withLibTheme(NewsText);\n","import React from 'react';\n\nimport { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Wrapper from 'components/base/Wrapper';\nimport VideoCard from 'components/blocks/VideoCard';\n\nconst NewsVideo: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Placeholder image */\n bgImage?: ImageProps;\n\n /** Embed video ID. E.g. from Youtube */\n embedId?: string;\n\n /** Custom play icon */\n playIcon?: React.ReactNode;\n\n /** Text for cookie consent overlay */\n consentText?: string;\n\n /** Function to inject custom action on cookie consent overlay */\n consentAction?: (props: {\n handleClick?: () => void;\n consentProps: Record<string, string>;\n }) => React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgImage,\n embedId,\n playIcon,\n consentText,\n consentAction,\n bgMode,\n}) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n {embedId && bgImage && (\n <VideoCard\n bgImage={bgImage}\n embedId={embedId}\n playIcon={playIcon}\n consentText={consentText}\n consentAction={consentAction}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsVideoComponent = NewsVideo;\nexport default withLibTheme(NewsVideo);\n"],"names":["Seperator","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","_a","isInverted","theme","color","elementBg","light","dark","isTop","spacings","spacer","AuthorContainer","templateObject_2","mq","medium","Avatar","img","templateObject_3","Author","templateObject_4","StyledCopy","Copy","templateObject_5","nudge","NewsAuthorCard$1","withLibTheme","label","author","avatar","bgMode","colors","useLibTheme","hasBg","React","Section","addSeperation","bgColor","sectionBg","mapToBgMode","createElement","Wrapper","clampWidth","addWhitespace","Fragment","src","alt","type","Heading","size","View","ImageLink","Link","StyledImage","Image","global","sections","edgeRadius","BorderPlaceholder","getColors","TitleLink","copyStyle","font","getFonts","big","colorInverted","Head","templateObject_6","Tags","templateObject_7","PublishDate","templateObject_8","Main","Text","templateObject_10","Action","NewsCard","forwardRef","ref","tags","onTagClick","publishDate","title","text","image","link","action","customTag","className","globals","publishedAt","StatusFormatter","getTime","newsDateFormat","newsTimeFormat","newsLocaleKey","getFormattedDate","handleTagClick","tag","ev","preventDefault","undefined","filteredTags","useMemo","filter","name","__assign","ariaLabel","coverSpace","isValidArray","map","i","key","isActive","clickHandler","Tag","onClick","renderAs","dataSheet","innerHTML","TagContainer","TagWrapper","News","ul","NewsItem","li","large","ListFooter","ShowMore","span","itemCount","FilterIcon","getNewsFilterParams","url","filterName","newsFilterName","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","join","concat","toString","err","NewsOverview$1","anchorId","news","initial","showMoreText","_b","_c","useState","activeTags","selectedTags","setSelectedTags","currentMq","useMediaQuery","_d","itemsPerRow","setItemsPerRow","_e","visibleRows","setVisibleRows","isMounted","useMounted","targetRef","useRef","observerSupported","useObserverSupport","newsCount","length","setNewPos","useScrollTo","_f","useEqualSheetHeight","listLength","Math","min","identifiers","responsive","small","semilarge","xlarge","cardRefs","sheetRefs","triggerCalculation","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","push","apply","useEffect","paramTags","paramRows","parseInt","setUrlParam","deleteUrlParam","useUpdateEffect","enableToggling","prev","prevCopy","__spreadArray","itemIndex","indexOf","splice","filteredNews","filtered","item","hasTags","visibleNews","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","ceil","rootMargin","threshold","observe","disconnect","Filter","Pointer","as","Label","Grid","Row","Col","tagHref","href","NewsImages$1","images","isFull","Content","IntroHead","MetaBlock","StyledTitle","Title","clampTitle","wrapperSmall","ContentBlock","isCentered","clampText","wrapper","NewsIntro$1","meta","date","tagLink","colorMode","allowEdgeRadius","NewsList$1","mode","items","slice","TableWrapper","NewsTable$1","tableItems","TableBlock","hasBack","NewsText$1","bgImage","embedId","playIcon","consentText","consentAction","VideoCard"],"mappings":"wkCAUMA,EAAYC,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,4BAAAC,YAAA,gBAAGJ,CAAqDK,IAAAA,EAAAC,EAAAA,qBAAA,CAAA,2CAAA,wBAAA,2BAAA,SAAA,CAAA,2CAK1B,wBAEa,2BACE,YANlD,SAACC,OAAEC,EAAUD,EAAAC,WAAEC,EAAKF,EAAAE,MAClB,OAAAD,EACME,EAAAA,UAAMD,GAAOE,UAAUC,MACvBF,EAAAA,UAAMD,GAAOE,UAAUE,QAEvB,SAACN,GAAc,OAAPA,EAAAO,OAAiBC,EAAQA,SAACC,UAC/B,SAACT,GAAc,OAAPA,EAAAO,OAAgBC,EAAQA,SAACC,UAGhDC,EAAkBjB,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,kCAAAC,YAAA,gBAAGJ,CAAUkB,IAAAA,EAAAZ,uBAAA,CAAA,8KAAA,4BAAA,kLAAA,2BAAA,CAAA,8KAQG,4BAGf,kLAOoB,6BAVpBS,EAAQA,SAACC,OAGlBG,EAAAA,GAAGC,OAOWL,WAASC,QAK9BK,EAASrB,EAAAA,QAAOsB,IAAVpB,WAAA,CAAAC,YAAA,yBAAAC,YAAA,gBAAGJ,CAAUuB,IAAAA,EAAAjB,uBAAA,CAAA,iCAAA,CAAA,oCAInBkB,EAASxB,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,yBAAAC,YAAA,gBAAGJ,CAAUyB,IAAAA,EAAAnB,uBAAA,CAAA,IAAA,CAAA,OAEnBoB,EAAa1B,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,6BAAAC,YAAA,gBAAGJ,CAAY4B,IAAAA,EAAAtB,EAAAA,qBAAA,CAAA,wDAAA,SAAA,CAAA,wDAEQ,WAAD,EAAjBS,EAAQA,SAACc,OAkE9BC,EAAeC,EAAYA,cAnDtB,SAACxB,OAAEyB,EAAKzB,EAAAyB,MAAEC,EAAM1B,EAAA0B,OAAEC,EAAM3B,EAAA2B,OAAEC,EAAM5B,EAAA4B,OACzBC,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,wBAACC,UAAO,CACJC,eACA,EAAAC,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAC,WAAW,QAAQC,eAAa,GACpCf,GACGM,UAACM,cAAAN,EAAK,QAACU,SAAQ,KACXV,EAAAA,QAAAM,cAAC9C,EAAU,CAAAe,SAAMN,WAAYA,IAC7B+B,EAAAA,QAAAM,cAAC5B,EAAe,KACXiB,GACGK,EAAAA,QAAAM,cAACxB,EAAM,CAAC6B,IAAKhB,EAAOgB,IAAKC,IAAKjB,EAAOiB,MAEzCZ,EAAAA,QAAAM,cAACrB,EAAM,KACFS,GACGM,EAAAA,QAAAM,cAACnB,EAAU,CACPlB,WAAYA,EACZ4C,KAAK,UAEJpB,GAAS,cAGlBO,EAAAA,QAAAM,cAACQ,EAAAA,QAAO,CACJ7C,WAAYA,EACZ8C,KAAK,aAEJrB,MAMrBM,EAAAA,QAACM,cAAA9C,GAAUS,WAAYA,SC9FjC+C,EAAOvD,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAUK,IAAAA,EAAAC,uBAAA,CAAA,4FAAA,CAAA,+FAOjBkD,EAAYxD,EAAM,QAACyD,QAAVvD,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAGJ,CAAYkB,IAAAA,EAAAZ,uBAAA,CAAA,6CAAA,CAAA,gDAKxBoD,EAAc1D,EAAM,QAAC2D,SAAVzD,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAauB,IAAAA,EAAAjB,EAAAA,qBAAA,CAAA,+CAAA,OAAA,CAAA,+CAEoC,UAAhD,SAACC,GAAE,IAAAE,EAAKF,EAAAE,MAAO,OAAAmD,aAAOnD,GAAOoD,SAASC,cAGrDC,EAAoB/D,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAGJ,CAA+ByB,IAAAA,EAAAnB,EAAAA,qBAAA,CAAA,wCAAA,OAAA,CAAA,wCAKN,UAHzC,SAACC,OAAEE,EAAKF,EAAAE,MACN,OADaF,EAAA+B,MAEP0B,EAAAA,UAAUvD,GAAOE,UAAUC,MAC3BoD,EAAAA,UAAUvD,GAAOE,UAAUS,UAGvC6C,EAAYjE,EAAM,QAACyD,QAAVvD,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAGJ,CAAY4B,IAAAA,EAAAtB,EAAAA,qBAAA,CAAA,qCAAA,kBAAA,mCAAA,CAAA,qCAEE,kBAKa,qCALvC4D,EAAAA,UAAU,SAAU,QAEb,SAAC3D,OAAEE,EAAKF,EAAAE,MACbD,OADyBD,EAAAC,WAEnB2D,EAAIC,SAAC3D,GAAO,UAAU4D,IAAIC,cAC1BH,EAAAA,SAAK1D,GAAO,UAAU4D,IAAI3D,SAIlC6D,EAAOvE,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAUwE,IAAAA,EAAAlE,EAAAA,qBAAA,CAAA,qKAAA,kEAAA,uDAAA,gBAAA,CAAA,qKAQiB,kEAIG,uDAIF,kBARF,EAAjBS,WAASc,MAIW,EAAjBd,EAAAA,SAASc,MAIM,EAAjBd,EAAAA,SAASc,OAI1B4C,EAAOzE,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAU0E,IAAAA,EAAApE,EAAAA,qBAAA,CAAA,wNAAA,gBAAA,CAAA,wNAYc,kBAAdS,EAAQA,SAACc,OAI1B8C,EAAc3E,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAY4E,IAAAA,EAAAtE,uBAAA,CAAA,6DAAA,CAAA,gEAM1BuE,EAAO7E,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,iHAAU,iEAIiB,kBAAD,EAAjBe,EAAQA,SAACc,OAIzBiD,EAAO9E,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAAY+E,IAAAA,EAAAzE,uBAAA,CAAA,0YAAA,CAAA,6YAuBnB0E,GAAShF,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,mBAAAC,YAAA,gBAAGJ,8DAAU,qBACW,WAAD,EAAjBe,EAAQA,SAACc,OA4CrBoD,GAAWC,EAAUA,YAMvB,SACI3E,EAcA4E,GAbI,IAAAC,EAAI7E,EAAA6E,KACJC,EAAU9E,EAAA8E,WACVC,EAAW/E,EAAA+E,YACXC,EAAKhF,EAAAgF,MACLC,EAAIjF,EAAAiF,KACJC,EAAKlF,EAAAkF,MACLC,EAAInF,EAAAmF,KACJlF,EAAUD,EAAAC,WACVmF,EAAMpF,EAAAoF,OACNC,cACAC,EAAStF,EAAAsF,UACTvD,EAAK/B,EAAA+B,MAIDwD,EAAYzD,wBAEhB0D,EAAc,GACdT,IAQAS,EAPkB,IAAIC,EAAAA,gBAClBV,EAAYW,UACZ,GACAH,EAAQjC,SAASqC,eAAeZ,GAChCQ,EAAQjC,SAASsC,eAAeb,GAChCQ,EAAQjC,SAASuC,eAEGC,oBAG5B,IAAMC,EAAiB,SAACC,GACpB,OAAAlB,EACM,SAACmB,GACGA,MAAAA,GAAAA,EAAIC,iBACJpB,EAAWkB,SAEfG,GAEJC,EAAeC,EAAAA,SAAQ,WACzB,OAAOxB,MAAAA,SAAAA,EAAMyB,QAAO,SAACN,GAAQA,OAAAA,EAAIO,UAClC,CAAC1B,IAEJ,OACI7C,EAAC,QAAAM,cAAAU,EAAK,CAAA4B,IAAKA,EAAKU,UAAWA,GACtBJ,EACGlD,EAAAA,QAAAM,cAACW,EAASuD,EAAAA,SAAA,GAAKrB,EAAI,CAAEsB,UAAWzB,IAC5BhD,EAAC,QAAAM,cAAAa,gBACO+B,EAAK,CACTwB,YACA,EAAAzG,WAAYA,MAIpB+B,UAACM,cAAAkB,GAAkBzB,MAAOA,IAE9BC,EAAAA,QAACM,cAAA0B,GAAgB,aAAA,QACZ2C,EAAYA,aAACP,GAAc,IACxBpE,EAAA,QAAAM,cAAC4B,EAAI,KACAkC,EAAaQ,KAAI,SAACZ,EAAKa,GACpB,OAAIxB,EACOA,EAAU,CACbyB,IAAKD,EACLN,KAAMP,EAAIO,MAAQ,GAClBtG,WAAYA,EACZ8G,UAAU,EACV5B,KAAMa,EAAIb,KACV6B,aAAcjB,EAAeC,KAI7BhE,EAAA,QAAAM,cAAC2E,MAAG,CACAH,IAAKD,EACL5G,WAAYA,EACZsG,KAAMP,EAAIO,KACVpB,KAAMa,EAAIb,KACV+B,QAASnB,EAAeC,SAO/CR,GACGxD,UAACM,cAAA8B,GACGrB,KAAK,QACLoE,SAAS,MACTlH,WAAYA,GAEXuF,IAIbxD,EAAA,QAAAM,cAACgC,EAAI,KACAU,GACGhD,EAAAA,QAACM,cAAAoB,gBACOyB,EAAI,CACRsB,UAAWzB,EACX/E,WAAYA,EACZmH,UAAU,UAETpC,GAGRC,GACGjD,EAAAA,QAAAM,cAACiC,EAAI,CACDtE,WAAYA,EACZ4C,KAAK,OACLwE,UAAWpC,EAAI,aACJ,OACXlC,KAAK,YAIhBqC,GAAUpD,EAAAA,QAACM,cAAAmC,GAAQ,KAAAW,EAAOnF,QAM3CyE,GAAS9E,YAAc,WC7QvB,6DAAM0H,GAAe7H,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,6BAAAC,YAAA,cAAGJ,CAAUK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,iIAAA,gBAAA,CAAA,sBACE,0BACC,iIAOS,kBARxBS,EAAAA,SAASc,MACRd,WAASc,MAOa,EAAjBd,EAAQA,SAACc,OAI5BiG,GAAa9H,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,2BAAAC,YAAA,cAAGJ,CAAUkB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,SAAA,CAAA,sBACI,0BACC,WADfS,EAAQA,SAACc,MACRd,EAAAA,SAASc,OAGvBkG,GAAO/H,EAAAA,QAAOgI,GAAV9H,WAAA,CAAAC,YAAA,qBAAAC,YAAA,cAAGJ,CAASuB,KAAAA,GAAAjB,EAAAA,qBAAA,CAAA,6DAAA,0BAAA,kKAAA,CAAA,6DAGe,0BACF,oKADC,EAAjBS,EAAQA,SAACc,MACRd,EAAAA,SAASC,QAWvBiH,GAAWjI,EAAAA,QAAOkI,GAAVhI,WAAA,CAAAC,YAAA,yBAAAC,YAAA,cAAGJ,CAASyB,KAAAA,GAAAnB,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,0CAAA,4EAAA,sEAAA,CAAA,sBACW,0BACF,0CAGb,4EAKD,wEATe,EAAjBS,EAAQA,SAACc,MACRd,WAASC,OAGhBG,EAAAA,GAAGC,OAKHD,EAAEA,GAACgH,OAMVC,GAAapI,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,2BAAAC,YAAA,cAAGJ,CAAU4B,KAAAA,GAAAtB,EAAAA,qBAAA,CAAA,qBAAA,8CAAA,0CAAA,CAAA,qBACO,8CAGd,4CAHa,EAAjBS,EAAQA,SAACc,MAGdV,EAAAA,GAAGC,QAKViH,GAAWrI,EAAAA,QAAOsI,KAAVpI,WAAA,CAAAC,YAAA,yBAAAC,YAAA,cAAGJ,CAAmCwE,KAAAA,GAAAlE,EAAAA,qBAAA,CAAA,kBAAA,OAAA,CAAA,kBAEC,UADtC,SAACC,GAAE,IAAAgI,EAAShI,EAAAgI,UACnBA,OAAAA,GAAaA,EAAY,EAAI,QAAU,UAGzCC,GAAaxI,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,2BAAAC,YAAA,cAAGJ,CAAY0E,KAAAA,GAAApE,EAAAA,qBAAA,CAAA,4FAAA,MAAA,oDAAA,gBAAA,CAAA,4FAKE,MAAoB,oDAGhB,kBAHtBS,EAAAA,SAASc,MAAQ,EAAOd,EAAAA,SAASc,MAGzBd,WAASc,OAInB4G,GAAsB,SAC/BC,EACAjI,EACA2E,GAEA,QAFA,IAAAA,IAAAA,EAAmB,KAEdsD,EAAK,MAAO,GACb,IAACxB,EAAAA,aAAa9B,GAAM,GAAQ,OAAOsD,EAEjCC,IAAAA,EAAalI,EAAMqF,QAAQjC,SAAS+E,eAC1C,IAAKD,EAAY,OAAOD,EAEpB,IACA,IAAMG,EAAW,IAAIC,IAAIJ,GACnBK,EAAY,IAAIC,gBAAgBH,EAASI,QAG/C,OAFAF,EAAUG,IAAIP,EAAYQ,mBAAmB/D,EAAKgE,KAAK,OAEhD,GAAAC,OAAGX,EAAO,KAAAW,OAAAN,EAAUO,YAC7B,MAAOC,GACE,MAAA,GAAGF,OAAAX,EAAO,KAAAW,OAAAV,cAAcQ,mBAAmB/D,EAAKgE,KAAK,SAyZpEI,GAAezH,EAAYA,cA1WtB,SAACxB,OACFkJ,EAAQlJ,EAAAkJ,SACRC,EAAInJ,EAAAmJ,KACJtE,EAAI7E,EAAA6E,KACJuE,EAAOpJ,EAAAoJ,QACPC,EAAYrJ,EAAAqJ,aACZzH,EAAM5B,EAAA4B,OAENkD,EAAU9E,EAAA8E,WACVO,EAASrF,EAAAqF,UAEHiE,EAAsBxH,EAAAA,cAApBD,EAAMyH,EAAAzH,OACRuG,EADiBkB,EAAA/D,QACIjC,SAAS+E,eAE9BpI,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAER2H,EAAkCC,EAAAA,UACpCJ,MAAAA,SAAAA,EAASK,aAAc,IADpBC,OAAcC,OAKfC,EAAYC,gBADY,CAAC,QAAS,YAAa,UAE/CC,EAAgCN,EAAQA,SAAC,GAAxCO,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAgCT,EAAAA,UAASJ,MAAAA,SAAAA,EAASc,cAAe,GAAhEA,OAAaC,OACdC,EAAYC,EAAAA,aAEZC,EAAYC,SAAuB,MACnCC,EAAoBC,EAAAA,qBAEpBC,GAAYvB,MAAAA,OAAA,EAAAA,EAAMwB,SAAU,EAE5BC,EAAYC,cAAY,KACxBC,EACFC,EAAAA,oBAAoC,CAChCC,WAAYC,KAAKC,IAAIhB,EAAcH,EAAaW,GAChDS,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACRC,MAAO,EACPxK,OAAQ,EACRyK,UAAW,EACX1D,MAAO,EACP2D,OAAQ,KAbDC,EAAQV,EAAAW,UAAEC,uBAiBvBC,EAAaC,EAAAA,aAAY,WACrB/G,IAAAA,EAAiB,GAEjBgH,EAAUC,EAAAA,eAAe1D,GAC/B,GAAIyD,EAAS,CACT,IAAME,EAAaF,MAAAA,OAAO,EAAPA,EAASG,MAAM,KAC9BrF,EAAYA,aAACoF,GAAY,IACzBlH,EAAKoH,KAAIC,MAATrH,EAAakH,GAGrB,OAAOlH,IACR,CAACuD,IAEJ+D,EAAAA,WAAU,WAEF/C,IAAAA,EAAAA,CAGEgD,IAAAA,EAAYT,IACZU,EAAYC,SAASR,EAAYA,eAAA,MAEvC3B,EAAekC,GAAa,GAExB1F,EAAYA,aAACyF,GAAW,IACxBzC,EAAgByC,GAIpBV,OAGD,CAACC,EAAYvC,IAEhB+C,EAAAA,WAAU,iBACD/C,IAAWgB,IAGhBmC,EAAAA,YAAY,QAAQnD,MAAAA,OAAA,EAAAA,EAASc,cAAe,GAExCvD,eAAayC,MAAAA,OAAO,EAAPA,EAASK,YAAY,GAClC8C,cAAYnE,EAAiC,QAArBpI,EAAAoJ,MAAAA,OAAO,EAAPA,EAASK,kBAAY,IAAAzJ,OAAA,EAAAA,EAAA6I,KAAK,MAElD2D,EAAcA,eAACpE,MAEpB,CAACA,EAAYgB,EAASgB,IAEzBqC,EAAAA,iBAAgB,WACZF,cAAY,OAAQrC,KACrB,CAACA,IAEJuC,EAAAA,iBAAgB,YACR3H,GAAe6B,eAAa+C,KAG5BA,EAAaiB,OAAS,EACtB4B,EAAAA,YAAYnE,EAAYsB,EAAab,KAAK,MAE1C2D,EAAcA,eAACpE,MAEpB,CAACsB,IAEJyC,EAAAA,WAAU,WACN,OAAQvC,GACJ,IAAK,QACDI,EAAe,GACf,MAEJ,IAAK,YACDA,EAAe,GACf,MAEJ,IAAK,QACDA,EAAe,GACXE,EAAc,GAAGC,EAAe,GACpC,MAEJ,QACIH,EAAe,MAExB,CAACJ,EAAWM,IAEf,IAAMnE,EAAiB,SAACC,EAAe0G,QAAA,IAAAA,IAAAA,GAAqB,GACxD/C,GAAgB,SAACgD,GACPC,IAAAA,EAAQC,EAAAA,cAAA,GAAOF,GAAI,GACnBG,EAAY9G,EAAIO,KAAOoG,EAAKI,QAAQ/G,EAAIO,OAAS,EAEnDuG,OAAe,IAAfA,GAAoB9G,EAAIO,KACxBsG,gBAAAA,EAAAA,cAAA,GAAWD,GAAQ,GAAA,CAAE5G,EAAIO,OAAM,GAE/BmG,GACAE,EAASI,OAAOF,EAAW,GACpBF,GAEJD,KAGXjB,IACAvB,EAAe,IAGb8C,EAAe5G,EAAAA,SAAQ,WACzB,IAcI6G,EAAWvG,eAAawC,GAAO0D,EAAAA,cAAA,GAAK1D,GAAI,GAAI,GAKhD,OAFA+D,EAAWA,MAAAA,OAAQ,EAARA,EAAU5G,QAjBD,SAAC6G,GACb,IAACxG,EAAAA,aAAa+C,GAAc,GAAQ,OAAO,EAC/C,IAAKyD,EAAKtI,KAAM,OAAO,EAGvB,IADIuI,IAAAA,GAAU,EACLvG,EAAI,EAAGA,EAAIsG,EAAKtI,KAAK8F,OAAQ9D,IAClC,IAAuD,IAAnD6C,EAAaqD,QAAQI,EAAKtI,KAAKgC,GAAGN,MAAQ,IAAY,CACtD6G,GAAU,EACV,MAGR,OAAOA,OASZ,CAACjE,EAAMO,IAEJ2D,EAA0BhH,EAAAA,SAAQ,WAEhC,OAAA4G,MAAAA,OAAA,EAAAA,EAAc3G,QAAO,SAACgH,EAAGzG,GAAM,OAAAA,EAAIqD,EAAcH,OAAgB,KAEtE,CAACkD,EAAclD,EAAaG,IAE/BiC,EAAAA,WAAU,WAEF,GAAC3B,EAAD,CAEJ,IACI+C,EADEC,EAAUlD,EAAUmD,QAG1B,GAAID,EAAS,EAMTD,EAAW,IAAIG,sBAAqB,SAACC,GACjC,IAAMC,EAAQD,EAAQ,IAClBC,MAAAA,SAAAA,EAAOC,iBAGH3D,EACAe,KAAK6C,KAAKb,EAAatC,OAASZ,IAEhCI,GAAe,SAACwC,GAASA,OAAAA,EAAO,OAb5B,CACZoB,WAAY,oBACZC,UAAW,KAeNC,QAAQT,GAGrB,OAAO,WACCD,GAAUA,EAASW,iBAE5B,CACCnE,EACAW,EACAR,EACAM,EACAyC,EAAatC,SAGjB,IAAMvE,EAAeC,EAAAA,SAAQ,WACzB,OAAOxB,MAAAA,OAAA,EAAAA,EAAMyB,QAAO,SAACN,GAAQ,OAAAA,OAC9B,CAACnB,IAEJ,OACI7C,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAC,QAAAM,cAAAC,WAAQE,eAAa,GACjBkE,eAAaP,GAAc,IACxBpE,wBAACsF,GAAY,KACTtF,UAAAM,cAAC2F,GAAU,CACPlF,KAAK,QACLF,KAAK,OACL5C,WAAYA,GAEZ+B,EAAAA,QAAAM,cAAC6L,EAAAA,OAAS,MACVnM,EAAA,QAAAM,cAAA,OAAA,KAAA,WAEH8D,EAAaQ,KAAI,SAACZ,EAAKa,GAAM,OAC1B7E,EAAA,QAAAM,cAACiF,GAAW,CAAAT,IAAKD,GACZxB,EACGA,EAAU,CACNyB,IAAKD,EACLN,KAAMP,EACN/F,WAAYA,EACZ8G,UACmC,IAA/B2C,EAAaqD,QAAQ/G,GACzBgB,aAAc,SAACf,GACXA,MAAAA,GAAAA,EAAIC,iBACCpB,EAEEA,EAAW,CAAEyB,KAAMP,IADtBD,EAAe,CAAEQ,KAAMP,OAKnChE,EAAAA,QAACM,cAAA2E,MACG,CAAAhH,WAAYA,EACZiH,QAAS,SAACjB,GACNA,MAAAA,GAAAA,EAAIC,iBACCpB,EAGDA,EACI,CAAEyB,KAAMP,IACR,GAJJD,EAAe,CAAEQ,KAAMP,KAO/Be,UACmC,IAA/B2C,EAAaqD,QAAQ/G,IAGxBA,QAOzBhE,UAACM,cAAAkF,QACI6F,EAAYzG,KAAI,SAACuG,EAAMtG,SAAM,OAC1B7E,EAAA,QAAAM,cAACoF,GAAQ,CAACZ,IAAK,GAAGgC,OAAAjC,EAAU,UAAAiC,OAAAqE,EAAKnI,QAC7BhD,UAAAM,cAACoC,GAAQ8B,WAAA,CACLzE,MAAOA,GAAS9B,EAChB2E,IAAK4G,EAAS3E,IACVsG,EAAI,CACRtI,KAAiB,QAAX7E,EAAAmN,EAAKtI,YAAM,IAAA7E,OAAA,EAAAA,EAAA4G,KAAI,SAACZ,GAAS,MAAA,CAC3BO,KAAMP,EAAIO,SAEdtG,WAAYA,EACZ6E,WAAY,SAACkB,GAET4E,EAAU,GACL9F,EAODA,EAAW,CAAEyB,KAAMP,EAAIO,OAAQ,GAL/BR,EACI,CAAEQ,KAAMP,EAAIO,OACZ,IAMZlB,UAAWA,UAK3BrD,EAAAA,QAAKM,cAAA,MAAA,CAAAsC,IAAK0F,KACRE,GACExI,EAAA,QAAAM,cAACuF,GAAU,KACNsB,GAAQA,EAAKwB,OAAS,GACnB3I,EAAAA,QAAAM,cAAClB,EAAAA,KAAI,CACDyB,KAAK,OACLE,KAAK,SACL9C,WAAYA,GAEZ+B,EAAC,QAAAM,cAAAwF,GACG,CAAAE,UAAWmB,EAAKwB,OAChBzD,QAAS,SAACjB,GACNA,EAAGC,iBAECgE,EACAe,KAAK6C,KACDb,EAAatC,OACTZ,IAGRI,GAAe,SAACwC,GAASA,OAAAA,EAAO,OAIvCzC,EACG+C,EAAatC,OAASZ,GACtB/H,EAAAA,QAACM,cAAA8L,EAAOA,QAACpL,MACLqL,GAAG,SACHpO,WAAYA,GAEZ+B,UAAAM,cAAC8L,EAAOA,QAACE,MAAK,KACTjF,GACG,0BCtXrC7H,GAAAA,EAAAA,cAxGV,SAACxB,OAAEkJ,EAAQlJ,EAAAkJ,SAAEC,EAAInJ,EAAAmJ,KAAEvH,EAAM5B,EAAA4B,OAAEyD,EAASrF,EAAAqF,UAC/BiE,EAAoBxH,EAAAA,cAAlBD,EAAMyH,EAAAzH,OAAE3B,EAAKoJ,EAAApJ,MACfwK,GAAYvB,MAAAA,OAAA,EAAAA,EAAMwB,SAAU,EAE5B1K,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAGRgI,EAAYC,gBADU,CAAC,QAAS,cAEhCN,EAAgCC,EAAQA,SAAC,GAAxCO,EAAWR,EAAA,GAAES,EAAcT,EAAA,GAC5BO,EAAgCN,EAAQA,SAAC,GAAxCU,EAAWJ,EAAA,GAAEK,EAAcL,EAAA,GAEf0B,EAAaT,EAAAA,oBAAoC,CAChEC,WAAYC,KAAKC,IAAIhB,EAAcH,EAAaW,GAChDS,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACRC,MAAO,EACPxK,OAAQ,EACRyK,UAAW,EACX1D,MAAO,EACP2D,OAAQ,eAoBhB,OAhBAY,EAAAA,WAAU,WACN,OAAQvC,GACJ,IAAK,YACDI,EAAe,GACf,MAEJ,IAAK,QACDA,EAAe,GACXE,EAAc,GAAGC,EAAe,GACpC,MAEJ,QACIH,EAAe,MAExB,CAACJ,EAAWM,IAGXlI,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAE,eAAc,EAAAD,WAAW,SAC9BR,EAAAA,QAAAM,cAACiM,EAAAA,KAAKC,IAAG,KACJrF,MAAAA,OAAI,EAAJA,EACK7C,QAAO,SAACgH,EAAGzG,GAAM,OAAAA,EAAIqD,EAAcH,KACpCnD,KAAI,SAACuG,EAAMtG,SAAM,OACd7E,UAACM,cAAAiM,EAAIA,KAACE,KACF5N,OAAQ,CAAEkH,KAAM,IAChBjB,IAAK,GAAAgC,OAAGjC,EAAU,UAAAiC,OAAAqE,EAAKnI,QAEvBhD,UAACM,cAAAoC,GACG8B,WAAA,CAAAM,IAAKD,EACLjC,IAAK4G,EAAS3E,IACVsG,EAAI,CACRtI,KAAiB,QAAX7E,EAAAmN,EAAKtI,YAAM,IAAA7E,OAAA,EAAAA,EAAA4G,KAAI,SAACZ,WACd0I,OACAvI,EAUG,OARHH,EAAIO,OAAgB,QAARvG,EAAAgG,EAAIb,YAAI,IAAAnF,OAAA,EAAAA,EAAE2O,QACtBD,EAAUxG,GACNlC,EAAIb,KAAKwJ,KACTzO,EACA,CAAC8F,EAAIO,QAIN,CACHA,KAAMP,EAAIO,KACVpB,cAAMmE,EAAAtD,EAAIb,2BAAMwJ,MACXnI,EAAAA,SAAAA,EAAAA,SAAA,GACQR,EAAIb,MAAI,CACXwJ,KAAMD,SAEVvI,MAGdlG,WAAYA,EACZoF,UAAWA,eCxHzClC,GAAc1D,EAAM,QAAC2D,SAAVzD,WAAA,CAAAC,YAAA,0BAAAC,YAAA,gBAAGJ,CAAaK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,0CAAA,yGAAA,CAAA,0CAEoC,4GAAhD,SAACC,GAAE,IAAAE,EAAKF,EAAAE,MAAO,OAAAmD,aAAOnD,GAAOoD,SAASC,cAmG3DqL,GAAepN,EAAYA,cA5EtB,SAACxB,SAAEkJ,aAAU2F,EAAM7O,EAAA6O,OAAEjN,EAAM5B,EAAA4B,OACpBC,EAAWC,uBAEb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAC,WAAW,QAAQC,eAAa,GACrCT,EAAAA,QAAAM,cAACiM,EAAIA,KAACC,SAE8B,QAD/BlF,EAAAuF,MAAAA,OAAM,EAANA,EACKvI,QAAO,SAACvF,GAAQA,OAAAA,EAAIsK,gBAAM,IAAA/B,OAAA,EAAAA,EAC1B1C,KAAI,SAAC7F,EAAK8F,GAAM,OACd7E,wBAACuM,EAAIA,KAACE,IACF,CAAA3H,IAAKD,EACLyE,UAAW,CACPvD,KAAMhH,EAAI+N,OAAS,EAAU,KAGjC9M,EAAAA,QAAAM,cAACa,GACOqD,EAAAA,SAAA,GAAAzF,GACJ2F,YAAU,EACVzG,WAAYA,eCrD1C8O,GAAUtP,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,qBAAAC,YAAA,eAAGJ,4FAAU,0CAEc,kBAAD,EAAjBe,EAAQA,SAACc,OAIzB0N,GAAYvP,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAGJ,CAAYkB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,kKAAA,4BAAA,+IAAA,2BAAA,CAAA,kKAQU,4BAGlB,+IAMuB,6BATN,EAAjBS,EAAQA,SAACc,MAGlBV,EAAEA,GAACC,OAM4B,EAAjBL,EAAAA,SAASc,OAK9B4C,GAAOzE,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,kBAAAC,YAAA,eAAGJ,CAAUuB,KAAAA,GAAAjB,EAAAA,qBAAA,CAAA,sFAAA,0BAAA,SAAA,CAAA,sFAKU,0BACC,WADfS,EAAQA,SAACc,MACRd,EAAAA,SAASc,OAGvBiG,GAAa9H,EAAAA,QAAOsI,KAAVpI,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAGJ,CAAWyB,KAAAA,GAAAnB,EAAAA,qBAAA,CAAA,kDAAA,0BAAA,SAAA,CAAA,kDAEG,0BACC,WADfS,EAAQA,SAACc,MACRd,EAAAA,SAASc,OAGvB2N,GAAYxP,EAAAA,QAAOC,IAAVC,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAGJ,iUAAU,+QAYa,kBAAD,EAAjBe,EAAQA,SAACc,OAI1B4N,GAAczP,EAAM,QAAC0P,SAAVxP,WAAA,CAAAC,YAAA,yBAAAC,YAAA,eAAGJ,CAAuCwE,KAAAA,GAAAlE,EAAAA,qBAAA,CAAA,oBAAA,OAAA,CAAA,oBAEG,UAD7C,SAACC,GACVoP,OADsBpP,EAAAoP,YACP,GAAK,GAAM5O,EAAAA,SAAS6O,aAAe,QAGpDC,GAAe7P,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAGJ,CAGnB0E,KAAAA,GAAApE,EAAAA,qBAAA,CAAA,sCAAA,qBAAA,uDAAA,gBAAA,CAAA,sCAEsD,qBAEA,uDAGlB,mBALxB,SAACC,GAAmBuP,OAAPvP,EAAAuP,YAAqB,YAC/B,SAACvP,GACVwP,OADqBxP,EAAAwP,WACP,GAAK,GAAMhP,EAAAA,SAASiP,QAAU,OAG7BjP,EAAAA,SAASC,QA2IhCiP,GAAelO,EAAYA,cAzGtB,SAACxB,OAAEkJ,EAAQlJ,EAAAkJ,SAAErE,EAAI7E,EAAA6E,KAAE8K,EAAI3P,EAAA2P,KAAE3K,EAAKhF,EAAAgF,MAAEC,EAAIjF,EAAAiF,KAAEC,EAAKlF,EAAAkF,MAAEtD,EAAM5B,EAAA4B,OAAEyD,EAASrF,EAAAqF,UACzDiE,EAA6BxH,EAAAA,cAA3ByD,EAAO+D,EAAA/D,QAAE1D,EAAMyH,EAAAzH,OAAE3B,EAAKoJ,EAAApJ,MACxBD,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEV4D,EAAc,IACdmK,MAAAA,SAAAA,EAAMC,QAQNpK,EAPkB,IAAIC,EAAJA,gBACdkK,EAAKC,KAAKlK,UACV,GACAH,EAAQjC,SAASqC,eAAegK,EAAKC,MACrCrK,EAAQjC,SAASsC,eAAe+J,EAAKC,MACrCrK,EAAQjC,SAASuC,eAEGC,oBAG5B,OACI9D,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAC,WAAW,QAAQC,eAAa,GACrCT,EAAAA,QAAAM,cAACyM,GAAO,KACJ/M,EAAA,QAAAM,cAAC0M,GAAS,CAAC/O,WAAYA,GACnB+B,EAAAA,QAAAM,cAAC4B,GAAI,KACAW,MAAAA,OAAI,EAAJA,EAAM+B,KAAI,SAACZ,EAAKa,SACTgJ,OAAiC1J,EAarC,OAXIH,EAAIO,OAAgB,QAARvG,EAAAgG,EAAIb,YAAI,IAAAnF,OAAA,EAAAA,EAAE2O,QACtBkB,EAAOrJ,EAAAA,SAAAA,EAAAA,SAAA,GACAR,EAAIb,MAAI,CACXwJ,KAAMzG,GACFlC,EAAIb,KAAKwJ,KACTzO,EACA,CAAC8F,EAAIO,UAMbvE,EAAC,QAAAM,cAAAiF,GAAW,CAAAT,IAAK,WAAWgC,OAAAjC,IACvBxB,EACGA,EAAU,CACNyB,IAAK,WAAWgC,OAAAjC,GAChBN,KAAMP,EAAIO,MAAQ,GAClBtG,WAAYA,EACZ8G,UAAU,EACV5B,KAAM0K,IAGV7N,EAAAA,QAACM,cAAA2E,MACG,CAAA9B,KAAM0K,EACN5P,WAAYA,GAEX+F,EAAIO,YAO3Bf,IAAemK,MAAAA,OAAA,EAAAA,EAAMjO,UACnBM,EAAAA,sBAACiN,GAAS,MACLU,MAAAA,OAAA,EAAAA,EAAMjO,SAAUM,EAAM,QAAAM,cAAA,MAAA,KAAAqN,MAAAA,OAAI,EAAJA,EAAMjO,QAC5B8D,GAAexD,EAAAA,QAAMM,cAAA,MAAA,KAAAkD,KAIlCxD,EAAAA,QAAAM,cAAA,MAAA,KACIN,UAAAM,cAAC4M,GACG,CAAAY,UAAW7P,EAAa,WAAa,UACrC+E,MAAOA,IAEVC,GACGjD,UAAAM,cAACgN,GACG,CAAArP,WAAYA,EACZ4C,KAAK,SACLwE,UAAWpC,MAItBC,MAAAA,OAAA,EAAAA,EAAOmG,QACJrJ,EAAAA,QAACM,cAAAc,EAADA,MACQoD,EAAAA,SAAA,GAAAtB,EACJ,CAAAwB,YACA,EAAAqJ,iBACA,EAAA9P,WAAYA,WC7MlCuH,GAAO/H,EAAAA,QAAOgI,GAAV9H,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAGJ,CAASK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,6DAAA,0BAAA,kKAAA,CAAA,6DAGe,0BACF,oKADC,EAAjBS,EAAQA,SAACc,MACRd,EAAAA,SAASC,QAWvBiH,GAAWjI,EAAAA,QAAOkI,GAAVhI,WAAA,CAAAC,YAAA,qBAAAC,YAAA,eAAGJ,CAASkB,KAAAA,GAAAZ,EAAAA,qBAAA,CAAA,sBAAA,0BAAA,gEAAA,4EAAA,sEAAA,CAAA,sBACW,0BACF,gEAIb,4EAKD,wEAVe,EAAjBS,EAAQA,SAACc,MACRd,WAASC,OAIhBG,EAAAA,GAAGC,OAKHD,EAAEA,GAACgH,OAkHhBoI,GAAexO,EAAYA,cAlFtB,SAACxB,GAAE,IAAAkJ,aAAUI,EAAAtJ,EAAAiQ,KAAAA,aAAO,QAAO3G,EAAEH,SAAMvH,EAAM5B,EAAA4B,OAAEyD,EAASrF,EAAAqF,UAC/CkE,EAAoBzH,EAAAA,cAAlBD,EAAM0H,EAAA1H,OAAE3B,EAAKqJ,EAAArJ,MAEfgQ,EAAQ7J,EAAAA,SAAyB,WACnC,OAAK8C,EACQ,aAAT8G,EAA4B9G,EAAKgH,MAAM,EAAG,GAClChH,EAAKgH,MAAM,EAAG,GAFR,KAGnB,CAAChH,EAAM8G,IAEJhQ,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEK4J,EAAaT,EAAAA,oBAAoC,CAChEC,WAAYkF,EAAMvF,OAClBQ,YAAa,CACT,sBACA,uBACA,uBAEJC,WAAY,CACRC,MAAO,EACPxK,OAAQ,EACRyK,UAAW,EACX1D,MAAO,EACP2D,OAAQ,eAIhB,OACIvJ,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAC,QAAAM,cAAAC,WAAQE,eAAa,GAClBT,EAAAA,QAAAM,cAACkF,GAAI,KACA0I,MAAAA,OAAK,EAALA,EAAOtJ,KAAI,SAACuG,EAAMtG,SAAM,OACrB7E,EAAC,QAAAM,cAAAoF,GAAS,CAAAZ,IAAKD,GACX7E,UAAAM,cAACoC,GAAQ8B,WAAA,CACLM,IAAKD,EACLjC,IAAK4G,EAAS3E,IACVsG,EACJ,CAAAlN,WAAYA,EACZ4E,KAAe,QAAT7E,EAAAmN,EAAKtI,YAAI,IAAA7E,OAAA,EAAAA,EAAE4G,KAAI,SAACZ,WACd0I,OAA8BvI,EAU3B,OARHH,EAAIO,OAAgB,QAARvG,EAAAgG,EAAIb,YAAI,IAAAnF,OAAA,EAAAA,EAAE2O,QACtBD,EAAUxG,GACNlC,EAAIb,KAAKwJ,KACTzO,EACA,CAAC8F,EAAIO,QAIN,CACHA,KAAMP,EAAIO,KACVpB,cAAMmE,EAAAtD,EAAIb,2BAAMwJ,MACXnI,EAAAA,SAAAA,EAAAA,SAAA,GACQR,EAAIb,MAAI,CACXwJ,KAAMD,SAEVvI,MAGdd,UAAWA,eCrIrC+K,GAAe3Q,EAAM,QAAC8C,WAAV5C,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAGJ,CAAeK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,0CAAA,gBAAA,CAAA,0CAEC,kBAAfS,EAAQA,SAACC,QAgD/B4P,GAAe7O,EAAYA,cAnCtB,SAACxB,GAAE,IAAAkJ,aAAUtH,EAAM5B,EAAA4B,OAAE0O,EAAUtQ,EAAAsQ,WACxBzO,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,GAAqB3B,EAEnC,OACI+B,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAAC8N,GAAY,CAAC5N,WAAW,SACpB8N,EAAW1J,KAAI,SAACuG,EAAMtG,GAEf7E,OAAAA,EAAAA,QAACM,cAAAiO,EAAAA,yBACOpD,EAAI,CACRrG,IAAKD,EACL2J,QAASzO,EACT9B,WAAYA,aCxClCqP,GAAe7P,EAAM,QAAC2B,QAAVzB,WAAA,CAAAC,YAAA,yBAAAC,YAAA,eAAGJ,CAGnBK,KAAAA,GAAAC,EAAAA,qBAAA,CAAA,sCAAA,qBAAA,uDAAA,gBAAA,CAAA,sCAEsD,qBAEK,uDAGpB,mBAL3B,SAACC,GAAmBuP,OAAPvP,EAAAuP,YAAqB,YAC/B,SAACvP,GACVwP,OADqBxP,EAAAwP,WACP,GAAK,GAAMhP,EAAAA,SAAS6O,aAAe,OAGjB,EAAjB7O,EAAQA,SAACc,OA6ChCmP,GAAejP,EAAYA,cAhCtB,SAACxB,GAAE,IAAAkJ,aAAUjE,EAAIjF,EAAAiF,KAAErD,EAAM5B,EAAA4B,OAClBC,EAAWC,uBACb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAO,CAACC,WAAW,QAAQC,eAAa,GACpCwC,GACGjD,EAAAA,QAAAM,cAACgN,GACG,CAAArP,WAAYA,EACZ4C,KAAK,OACLwE,UAAWpC,SCoBpBzD,GAAAA,EAAAA,cA3CV,SAACxB,GACF,IAAAkJ,aACAwH,YACAC,YACAC,EAAQ5Q,EAAA4Q,SACRC,EAAW7Q,EAAA6Q,YACXC,EAAa9Q,EAAA8Q,cACblP,EAAM5B,EAAA4B,OAEEC,EAAWC,uBAEb7B,EAAwB,aAAX2B,EACbG,EAAmB,SAAXH,EAEd,OACII,EAAA,QAAAM,cAACL,UAAO,CACJC,eAAa,EACbgH,SAAUA,EACV/G,QACIlC,EACM4B,EAAOO,UAAU9B,KACjByB,EACAF,EAAOO,UAAUvB,OACjBgB,EAAOO,UAAU/B,MAE3BuB,OAAQS,EAAAA,YAAYT,GAAQ,IAE5BI,EAAA,QAAAM,cAACC,UAAQ,CAAAE,iBAAcD,WAAW,SAC7BmO,GAAWD,GACR1O,UAAAM,cAACyO,EAAAA,UACG,CAAAL,QAASA,EACTC,QAASA,EACTC,SAAUA,EACVC,YAAaA,EACbC,cAAeA"}
1
+ {"version":3,"file":"sections_news.js","sources":["../src/components/sections/news/NewsAuthorCard.tsx","../src/components/blocks/NewsCard.tsx","../src/components/sections/news/NewsOverview.tsx","../src/components/sections/news/NewsFooter.tsx","../src/components/sections/news/NewsImages.tsx","../src/components/sections/news/NewsIntro.tsx","../src/components/sections/news/NewsTable.tsx","../src/components/sections/news/NewsText.tsx","../src/components/sections/news/NewsVideo.tsx","../src/components/sections/news/NewsList.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst Seperator = styled.div<{ isInverted?: boolean; isTop?: boolean }>`\n border-bottom: solid 1px\n ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n\n margin-top: ${({ isTop }) => !isTop && spacings.spacer}px;\n margin-bottom: ${({ isTop }) => isTop && spacings.spacer}px;\n`;\n\nconst AuthorContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n justify-content: flex-start;\n text-align: left;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.spacer}px;\n }\n }\n`;\n\nconst Avatar = styled.img`\n border-radius: 50%; ;\n`;\n\nconst Author = styled.div``;\n\nconst StyledCopy = styled(Copy)`\n text-transform: uppercase;\n margin-bottom: ${spacings.nudge * 3}px;\n`;\n\nconst NewsAuthorCard: React.FC<{\n /** Text above author name */\n label?: string;\n\n /** Article's author name */\n author?: string;\n\n /** Author avatar image */\n avatar?: { src: string; alt?: string };\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ label, author, avatar, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {author && (\n <React.Fragment>\n <Seperator isTop isInverted={isInverted} />\n <AuthorContainer>\n {avatar && (\n <Avatar src={avatar.src} alt={avatar.alt} />\n )}\n <Author>\n {author && (\n <StyledCopy\n isInverted={isInverted}\n type=\"copy-b\"\n >\n {label || 'Written By'}\n </StyledCopy>\n )}\n <Heading\n isInverted={isInverted}\n size=\"heading-2\"\n >\n {author}\n </Heading>\n </Author>\n </AuthorContainer>\n </React.Fragment>\n )}\n <Seperator isInverted={isInverted} />\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsAuthorCardComponent = NewsAuthorCard;\nexport default withLibTheme(NewsAuthorCard);\n","import React, { forwardRef, useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport {\n spacings,\n getGlobals as global,\n getFonts as font,\n getColors,\n} from 'utils/styles';\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport StatusFormatter from 'utils/statusFormatter';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport { isValidArray } from 'utils/arrays';\n\nconst View = styled.div`\n position: relative;\n text-decoration: none;\n margin: 0;\n padding: 0;\n`;\n\nconst ImageLink = styled(Link)`\n display: block;\n width: 100%;\n`;\n\nconst StyledImage = styled(Image)`\n overflow: hidden;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n`;\n\nconst BorderPlaceholder = styled.div<{ hasBg?: boolean }>`\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg\n ? getColors(theme).elementBg.light\n : getColors(theme).elementBg.medium};\n`;\n\nconst TitleLink = styled(Link)`\n display: inline-block;\n ${copyStyle('copy-b', 'big')}\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? font(theme)['copy-b'].big.colorInverted\n : font(theme)['copy-b'].big.color};\n text-decoration: none;\n`;\n\nconst Head = styled.div`\n display: flex;\n\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n &:not(:last-child) {\n margin-bottom: ${spacings.nudge * 3}px;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Tags = styled.div`\n display: flex;\n overflow: scroll;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst PublishDate = styled(Copy)`\n &:only-child {\n margin-left: auto;\n }\n`;\n\nconst Main = styled.div`\n max-width: 95%;\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Text = styled(Copy)`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 6; /* number of lines to show */\n line-clamp: 6;\n -webkit-box-orient: vertical;\n\n & > * {\n margin: 0 !important;\n }\n\n & > p:not(:first-of-type) {\n display: none;\n }\n\n & > ul,\n & > ol,\n & > table {\n display: none;\n }\n`;\n\nconst Action = styled.div`\n margin-top: ${spacings.nudge * 3}px;\n`;\n\nexport interface NewsCardProps {\n /** Invert text and background for use on dark sections */\n isInverted?: boolean;\n\n /** News tag name */\n tags?: TagProps[];\n\n /** News publish date */\n publishDate?: Date;\n\n /** News title */\n title?: string;\n\n /** News text */\n text?: string;\n\n /** News image settings */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** News link settings */\n link?: LinkProps;\n\n /** Callback function if tag in news iten has been clicked */\n onTagClick?: (tag: TagProps) => void;\n\n /** Function to inject primary action */\n action?: (isInverted?: boolean) => React.ReactNode;\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLAnchorElement>) => void;\n }) => React.ReactNode;\n\n hasBg?: boolean;\n}\n\nconst NewsCard = forwardRef<\n HTMLDivElement,\n NewsCardProps & {\n className?: string;\n }\n>(\n (\n {\n tags,\n onTagClick,\n publishDate,\n title,\n text,\n image,\n link,\n isInverted,\n action,\n customTag,\n className,\n hasBg,\n },\n ref\n ) => {\n const { globals } = useLibTheme();\n\n let publishedAt = '';\n if (publishDate) {\n const formatter = new StatusFormatter(\n publishDate.getTime(),\n '',\n globals.sections.newsDateFormat(publishDate),\n globals.sections.newsTimeFormat(publishDate),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n const handleTagClick = (tag: TagProps) =>\n onTagClick\n ? (ev?: React.SyntheticEvent<HTMLAnchorElement>) => {\n ev?.preventDefault();\n onTagClick(tag);\n }\n : undefined;\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag.name);\n }, [tags]);\n\n return (\n <View ref={ref} className={className}>\n {image ? (\n <ImageLink {...link} ariaLabel={title}>\n <StyledImage\n {...image}\n coverSpace\n isInverted={isInverted}\n />\n </ImageLink>\n ) : (\n <BorderPlaceholder hasBg={hasBg} />\n )}\n <Head data-sheet=\"head\">\n {isValidArray(filteredTags, false) && (\n <Tags>\n {filteredTags.map((tag, i) => {\n if (customTag) {\n return customTag({\n key: i,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n clickHandler: handleTagClick(tag),\n });\n } else {\n return (\n <Tag\n key={i}\n isInverted={isInverted}\n name={tag.name}\n link={tag.link}\n onClick={handleTagClick(tag)}\n />\n );\n }\n })}\n </Tags>\n )}\n {publishedAt && (\n <PublishDate\n size=\"small\"\n renderAs=\"div\"\n isInverted={isInverted}\n >\n {publishedAt}\n </PublishDate>\n )}\n </Head>\n <Main>\n {title && (\n <TitleLink\n {...link}\n ariaLabel={title}\n isInverted={isInverted}\n dataSheet=\"title\"\n >\n {title}\n </TitleLink>\n )}\n {text && (\n <Text\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n data-sheet=\"text\"\n size=\"medium\"\n />\n )}\n </Main>\n {action && <Action>{action(isInverted)}</Action>}\n </View>\n );\n }\n);\n\nNewsCard.displayName = 'NewsCard';\n\nexport default NewsCard;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { mq, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport Copy from 'components/typography/Copy';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport Pointer from 'components/buttons/Pointer';\nimport { isValidArray } from 'utils/arrays';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport Filter from 'components/base/icons/Filter';\nimport useUpdateEffect from 'utils/useUpdateEffect';\nimport useMounted from 'utils/useMounted';\n\nconst TagContainer = styled.div`\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ${spacings.nudge * 6}px;\n }\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nconst ListFooter = styled.div`\n margin-top: ${spacings.nudge * 6}px;\n text-align: center;\n\n @media ${mq.medium} {\n text-align: left;\n }\n`;\n\nconst ShowMore = styled.span<{ itemCount?: number }>`\n display: ${({ itemCount }) =>\n itemCount && itemCount > 2 ? 'block' : 'none'};\n`;\n\nconst FilterIcon = styled(Copy)`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ${spacings.nudge / 2}px ${spacings.nudge}px 0 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nexport const getNewsFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.newsFilterName;\n if (!filterName) return url;\n\n try {\n const validUrl = new URL(url);\n const newParams = new URLSearchParams(validUrl.search);\n newParams.set(filterName, encodeURIComponent(tags.join(',')));\n\n return `${url}?${newParams.toString()}`;\n } catch (err) {\n return `${url}?${filterName}=${encodeURIComponent(tags.join(','))}`;\n }\n};\n\ntype NewsOverviewMq = 'small' | 'semilarge' | 'large';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'customTag' | 'isInverted' | 'onTagClick'\n>;\n\nconst NewsOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news?: NewsItem[];\n\n /** Tags for news filtering */\n tags?: string[];\n\n /** Initial data. If not defined the component tries to collect this from URL params */\n initial?: {\n activeTags?: string[];\n visibleRows?: number;\n };\n\n /** Text for load more toggle. Only visible if browser doesn't support IntersectionObserver. */\n showMoreText?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /**\n * Callback function to handle tag click outside of component\n * If no callback is defined filtering is controlled on client\n * */\n onTagClick?: (tag: TagProps, insideList?: boolean) => void;\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLElement>) => void;\n }) => React.ReactNode;\n}> = ({\n anchorId,\n news,\n tags,\n initial,\n showMoreText,\n bgMode,\n\n onTagClick,\n customTag,\n}) => {\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.newsFilterName;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [selectedTags, setSelectedTags] = useState<string[]>(\n initial?.activeTags || []\n );\n\n const mqs: NewsOverviewMq[] = ['small', 'semilarge', 'large'];\n const currentMq = useMediaQuery(mqs) as NewsOverviewMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(3);\n const [visibleRows, setVisibleRows] = useState(initial?.visibleRows || 3);\n const isMounted = useMounted();\n\n const targetRef = useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n\n const newsCount = news?.length || 0;\n\n const setNewPos = useScrollTo(800);\n const { sheetRefs: cardRefs, triggerCalculation } =\n useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n const getFilters = useCallback(() => {\n const tags: string[] = [];\n\n const filters = getUrlParams()[filterName];\n if (filters) {\n const tagsFilter = filters?.split(',');\n if (isValidArray(tagsFilter, false)) {\n tags.push(...tagsFilter);\n }\n }\n return tags;\n }, [filterName]);\n\n useEffect(() => {\n // if initial data is defined exit hook\n if (initial) return;\n\n // if no initial data provied try to find needed params in URL\n const paramTags = getFilters();\n const paramRows = parseInt(getUrlParams()['rows']);\n\n setVisibleRows(paramRows || 3);\n\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\n\n // trigger equal sheet height recalculation\n triggerCalculation();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getFilters, initial]);\n\n useEffect(() => {\n if (!initial || isMounted) return;\n\n // set inital data into URL\n setUrlParam('rows', initial?.visibleRows || 3);\n\n if (isValidArray(initial?.activeTags, false)) {\n setUrlParam(filterName, initial?.activeTags?.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterName, initial, isMounted]);\n\n useUpdateEffect(() => {\n setUrlParam('rows', visibleRows);\n }, [visibleRows]);\n\n useUpdateEffect(() => {\n if (onTagClick || !isValidArray(selectedTags)) return;\n\n // set filters to URL params\n if (selectedTags.length > 0) {\n setUrlParam(filterName, selectedTags.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [selectedTags]);\n\n useEffect(() => {\n switch (currentMq) {\n case 'large':\n setItemsPerRow(3);\n break;\n\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n const handleTagClick = (tag: TagProps, enableToggling = true) => {\n setSelectedTags((prev) => {\n const prevCopy = [...prev];\n const itemIndex = tag.name ? prev.indexOf(tag.name) : -1;\n\n if (itemIndex === -1 && tag.name) {\n return [...prevCopy, tag.name];\n }\n if (enableToggling) {\n prevCopy.splice(itemIndex, 1);\n return prevCopy;\n }\n return prev;\n });\n // trigger equal sheet height recalculation\n triggerCalculation();\n setVisibleRows(3);\n };\n\n const filteredNews = useMemo(() => {\n const tagFilterFn = (item: NewsItem) => {\n if (!isValidArray(selectedTags, false)) return true;\n if (!item.tags) return false;\n\n let hasTags = false;\n for (let i = 0; i < item.tags.length; i++) {\n if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {\n hasTags = true;\n break;\n }\n }\n return hasTags;\n };\n\n let filtered = isValidArray(news) ? [...news] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [news, selectedTags]);\n\n const visibleNews: NewsItem[] = useMemo(() => {\n return (\n filteredNews?.filter((_, i) => i < visibleRows * itemsPerRow) || []\n );\n }, [filteredNews, itemsPerRow, visibleRows]);\n\n useEffect(() => {\n // cancel if intersection observers are not supported\n if (!observerSupported) return;\n\n const element = targetRef.current;\n let observer: IntersectionObserver;\n\n if (element) {\n const options = {\n rootMargin: '0px 0px 100px 0px',\n threshold: 0,\n };\n\n observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry?.isIntersecting) {\n // on bottom of the wrapper load more news\n if (\n visibleRows <\n Math.ceil(filteredNews.length / itemsPerRow)\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }\n }, options);\n observer.observe(element);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, [\n itemsPerRow,\n newsCount,\n visibleRows,\n observerSupported,\n filteredNews.length,\n ]);\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag);\n }, [tags]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {isValidArray(filteredTags, false) && (\n <TagContainer>\n <FilterIcon\n size=\"small\"\n type=\"copy\"\n isInverted={isInverted}\n >\n <Filter />\n <span>Filter</span>\n </FilterIcon>\n {filteredTags.map((tag, i) => (\n <TagWrapper key={i}>\n {customTag ? (\n customTag({\n key: i,\n name: tag,\n isInverted: isInverted,\n isActive:\n selectedTags.indexOf(tag) !== -1,\n clickHandler: (ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else onTagClick({ name: tag });\n },\n })\n ) : (\n <Tag\n isInverted={isInverted}\n onClick={(ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else\n onTagClick(\n { name: tag },\n false\n );\n }}\n isActive={\n selectedTags.indexOf(tag) !== -1\n }\n >\n {tag}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n <News>\n {visibleNews.map((item, i) => (\n <NewsItem key={`${i}_news_${item.title}`}>\n <NewsCard\n hasBg={hasBg || isInverted}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => ({\n name: tag.name,\n }))}\n isInverted={isInverted}\n onTagClick={(tag) => {\n // scroll back to top\n setNewPos(0);\n if (!onTagClick) {\n // if no callback is defined handle filtering on client side inside the component\n handleTagClick(\n { name: tag.name },\n false\n );\n } else {\n onTagClick({ name: tag.name }, true);\n }\n }}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {news && news.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={news.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredNews.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredNews.length / itemsPerRow && (\n <Pointer.View\n as=\"button\"\n isInverted={isInverted}\n >\n <Pointer.Label>\n {showMoreText ||\n 'mehr anzeigen'}\n </Pointer.Label>\n </Pointer.View>\n )}\n </ShowMore>\n </Copy>\n )}\n </ListFooter>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsOverviewComponent = NewsOverview;\nexport default withLibTheme(NewsOverview);\n","import React from 'react';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { useEffect, useState } from 'react';\nimport { useMediaQuery } from 'utils/useMediaQuery';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\ntype NewsFooterMq = 'small' | 'semilarge';\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsFooter: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news item settings */\n news: NewsItem[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n const newsCount = news?.length || 0;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const mqs: NewsFooterMq[] = ['small', 'semilarge'];\n const currentMq = useMediaQuery(mqs) as NewsFooterMq | undefined;\n const [itemsPerRow, setItemsPerRow] = useState(2);\n const [visibleRows, setVisibleRows] = useState(1);\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: Math.min(visibleRows * itemsPerRow, newsCount),\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 2,\n xlarge: 2,\n },\n });\n\n useEffect(() => {\n switch (currentMq) {\n case 'semilarge':\n setItemsPerRow(2);\n break;\n\n case 'small':\n setItemsPerRow(1);\n if (visibleRows < 3) setVisibleRows(3);\n break;\n\n default:\n setItemsPerRow(1);\n }\n }, [currentMq, visibleRows]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n <Grid.Row>\n {news\n ?.filter((_, i) => i < visibleRows * itemsPerRow)\n .map((item, i) => (\n <Grid.Col\n medium={{ span: 6 / 12 }}\n key={`${i}_news_${item.title}`}\n >\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n isInverted={isInverted}\n customTag={customTag}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsFooterComponent = NewsFooter;\nexport default withLibTheme(NewsFooter);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Grid from 'components/base/Grid';\n\nconst StyledImage = styled(Image)`\n width: 100%;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n picture > img {\n width: 100%;\n height: 100%;\n }\n`;\n\ntype ImageType = Omit<ImageProps, 'coverSpace'> & { isFull?: boolean };\n\nconst NewsImages: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** List of gallery images */\n images?: ImageType[];\n\n /** Image style */\n isFull?: boolean;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, images, bgMode }) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Grid.Row>\n {images\n ?.filter((img) => img.small)\n ?.map((img, i) => (\n <Grid.Col\n key={i}\n semilarge={{\n span: img.isFull ? 12 / 12 : 6 / 12,\n }}\n >\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </Grid.Col>\n ))}\n </Grid.Row>\n {/* {images && (imageStyle === 'half' || images.length >= 2) ? (\n <Grid.Row>\n {images.map((img, i) => {\n return (\n <Grid.Col medium={{ span: 6 / 12 }} key={i}>\n <div>\n <StyledImage\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n </div>\n </Grid.Col>\n );\n })}\n </Grid.Row>\n ) : (\n images && (\n <div>\n {images.map((img, i) => {\n return (\n <StyledImage\n key={i}\n {...img}\n coverSpace\n isInverted={isInverted}\n />\n );\n })}\n </div>\n )\n )} */}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsImagesComponent = NewsImages;\nexport default withLibTheme(NewsImages);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Title from 'components/blocks/Title';\nimport Copy from 'components/typography/Copy';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport { mq, spacings } from 'utils/styles';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst Content = styled.div`\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst IntroHead = styled(Copy)`\n display: flex;\n\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n\n & > * + * {\n margin-top: ${spacings.nudge * 2}px;\n }\n\n @media ${mq.medium} {\n flex-direction: row;\n align-items: center;\n\n & > * + * {\n margin-top: 0;\n margin-left: ${spacings.nudge * 2}px;\n }\n }\n`;\n\nconst Tags = styled.div`\n flex: 1 1 80%;\n\n display: flex;\n flex-wrap: wrap;\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n`;\n\nconst TagWrapper = styled.span`\n display: inline-block;\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst MetaBlock = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * + * {\n margin-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst StyledTitle = styled(Title)<{ clampTitle?: boolean }>`\n max-width: ${({ clampTitle }) =>\n clampTitle && (13 / 28) * spacings.wrapperSmall + 'px'};\n`;\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapper + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsIntro: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of news tags */\n tags?: TagProps[];\n\n /** News article's meta informations */\n meta?: { date?: Date; author?: string };\n\n /** Title of news article */\n title?: string;\n\n /** Main image of news article */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** Text of news article (richtext) */\n text?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, tags, meta, title, text, image, bgMode, customTag }) => {\n const { globals, colors, theme } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n let publishedAt = '';\n if (meta?.date) {\n const formatter = new StatusFormatter(\n meta.date.getTime(),\n '',\n globals.sections.newsDateFormat(meta.date),\n globals.sections.newsTimeFormat(meta.date),\n globals.sections.newsLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n }\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n <Content>\n <IntroHead isInverted={isInverted}>\n <Tags>\n {tags?.map((tag, i) => {\n let tagLink: LinkProps | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagLink = {\n ...tag.link,\n href: getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n ),\n };\n }\n\n return (\n <TagWrapper key={`headtag-${i}`}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tagLink,\n })\n ) : (\n <Tag\n link={tagLink}\n isInverted={isInverted}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n );\n })}\n </Tags>\n {(publishedAt || meta?.author) && (\n <MetaBlock>\n {meta?.author && <div>{meta?.author}</div>}\n {publishedAt && <div>{publishedAt}</div>}\n </MetaBlock>\n )}\n </IntroHead>\n <div>\n <StyledTitle\n colorMode={isInverted ? 'inverted' : 'default'}\n title={title}\n />\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy-b\"\n innerHTML={text}\n />\n )}\n </div>\n {image?.small && (\n <Image\n {...image}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n />\n )}\n </Content>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsIntroComponent = NewsIntro;\nexport default withLibTheme(NewsIntro);\n","import React from 'react';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport TableBlock, { TableProps } from 'components/blocks/TableBlock';\nimport styled from 'styled-components';\nimport { spacings } from 'utils/styles';\n\nconst TableWrapper = styled(Wrapper)`\n & > * + * {\n margin-top: ${spacings.spacer}px;\n }\n`;\n\nconst NewsTable: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Table rows and columns */\n tableItems: TableProps[];\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, bgMode, tableItems }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full' || isInverted;\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <TableWrapper clampWidth=\"small\">\n {tableItems.map((item, i) => {\n return (\n <TableBlock\n {...item}\n key={i}\n hasBack={hasBg}\n isInverted={isInverted}\n />\n );\n })}\n </TableWrapper>\n </Section>\n );\n};\n\nexport const NewsTableComponent = NewsTable;\nexport default withLibTheme(NewsTable);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Copy from 'components/typography/Copy';\nimport Wrapper from 'components/base/Wrapper';\nimport { spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\n\nconst ContentBlock = styled(Copy)<{\n clampText?: boolean;\n isCentered?: boolean;\n}>`\n display: block;\n margin: ${({ isCentered }) => isCentered && '0 auto'};\n max-width: ${({ clampText }) =>\n clampText && (19 / 28) * spacings.wrapperSmall + 'px'};\n\n :not(:first-child) {\n padding-top: ${spacings.nudge * 5}px;\n }\n`;\n\nconst NewsText: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Main text (RichText) */\n text: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({ anchorId, text, bgMode }) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper clampWidth=\"small\" addWhitespace>\n {text && (\n <ContentBlock\n isInverted={isInverted}\n type=\"copy\"\n innerHTML={text}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsTextComponent = NewsText;\nexport default withLibTheme(NewsText);\n","import React from 'react';\n\nimport { ImageProps } from 'components/blocks/Image';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Wrapper from 'components/base/Wrapper';\nimport VideoCard from 'components/blocks/VideoCard';\n\nconst NewsVideo: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Placeholder image */\n bgImage?: ImageProps;\n\n /** Embed video ID. E.g. from Youtube */\n embedId?: string;\n\n /** Custom play icon */\n playIcon?: React.ReactNode;\n\n /** Text for cookie consent overlay */\n consentText?: string;\n\n /** Function to inject custom action on cookie consent overlay */\n consentAction?: (props: {\n handleClick?: () => void;\n consentProps: Record<string, string>;\n }) => React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgImage,\n embedId,\n playIcon,\n consentText,\n consentAction,\n bgMode,\n}) => {\n const { colors } = useLibTheme();\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace clampWidth=\"small\">\n {embedId && bgImage && (\n <VideoCard\n bgImage={bgImage}\n embedId={embedId}\n playIcon={playIcon}\n consentText={consentText}\n consentAction={consentAction}\n />\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsVideoComponent = NewsVideo;\nexport default withLibTheme(NewsVideo);\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\n\nimport NewsCard, { NewsCardProps } from 'components/blocks/NewsCard';\nimport { mq, spacings } from 'utils/styles';\nimport { useEqualSheetHeight } from 'utils/useEqualSheetHeight';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport { getNewsFilterParams } from './NewsOverview';\n\nconst News = styled.ul`\n list-style: none;\n margin: 0;\n margin-top: -${spacings.nudge * 6}px;\n margin-left: -${spacings.spacer}px;\n padding: 0;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n\n flex-wrap: wrap;\n`;\n\nconst NewsItem = styled.li`\n padding-top: ${spacings.nudge * 6}px;\n padding-left: ${spacings.spacer}px;\n flex: 1 0 100%;\n max-width: 100%;\n\n @media ${mq.medium} {\n flex: 1 0 50%;\n max-width: 50%;\n }\n\n @media ${mq.large} {\n flex: 1 0 33.33%;\n max-width: 33.33%;\n }\n`;\n\nexport type NewsItem = Omit<\n NewsCardProps,\n 'isInverted' | 'onTagClick' | 'customTag'\n>;\n\nconst NewsList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Show a short version of three or a expanded version of six news items */\n mode?: 'short' | 'expanded';\n\n /** Array of news card settings */\n news?: NewsItem[];\n\n /** Sections background */\n bgMode?: 'full' | 'inverted';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, mode = 'short', news, bgMode, customTag }) => {\n const { colors, theme } = useLibTheme();\n\n const items = useMemo<NewsCardProps[]>(() => {\n if (!news) return [];\n if (mode === 'expanded') return news.slice(0, 6);\n else return news.slice(0, 3);\n }, [news, mode]);\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { sheetRefs: cardRefs } = useEqualSheetHeight<HTMLDivElement>({\n listLength: items.length,\n identifiers: [\n '[data-sheet=\"head\"]',\n '[data-sheet=\"title\"]',\n '[data-sheet=\"text\"]',\n ],\n responsive: {\n small: 1,\n medium: 2,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n },\n });\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <News>\n {items?.map((item, i) => (\n <NewsItem key={i}>\n <NewsCard\n key={i}\n ref={cardRefs[i]}\n {...item}\n isInverted={isInverted}\n tags={item.tags?.map((tag) => {\n let tagHref: string | undefined = undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getNewsFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n customTag={customTag}\n />\n </NewsItem>\n ))}\n </News>\n </Wrapper>\n </Section>\n );\n};\n\nexport const NewsListComponent = NewsList;\nexport default withLibTheme(NewsList);\n"],"names":["Seperator","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","_a","isInverted","theme","color","elementBg","light","dark","isTop","spacings","spacer","AuthorContainer","templateObject_2","mq","medium","Avatar","img","templateObject_3","Author","templateObject_4","StyledCopy","Copy","templateObject_5","nudge","NewsAuthorCard$1","withLibTheme","label","author","avatar","bgMode","colors","useLibTheme","hasBg","React","Section","addSeperation","bgColor","sectionBg","mapToBgMode","createElement","Wrapper","clampWidth","addWhitespace","Fragment","src","alt","type","Heading","size","View","ImageLink","Link","StyledImage","Image","global","sections","edgeRadius","BorderPlaceholder","getColors","TitleLink","copyStyle","font","getFonts","big","colorInverted","Head","templateObject_6","Tags","templateObject_7","PublishDate","templateObject_8","Main","Text","templateObject_10","Action","NewsCard","forwardRef","ref","tags","onTagClick","publishDate","title","text","image","link","action","customTag","className","globals","publishedAt","StatusFormatter","getTime","newsDateFormat","newsTimeFormat","newsLocaleKey","getFormattedDate","handleTagClick","tag","ev","preventDefault","undefined","filteredTags","useMemo","filter","name","__assign","ariaLabel","coverSpace","isValidArray","map","i","key","isActive","clickHandler","Tag","onClick","renderAs","dataSheet","innerHTML","TagContainer","TagWrapper","News","ul","NewsItem","li","large","ListFooter","ShowMore","span","itemCount","FilterIcon","getNewsFilterParams","url","filterName","newsFilterName","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","join","concat","toString","err","NewsOverview$1","anchorId","news","initial","showMoreText","_b","_c","useState","activeTags","selectedTags","setSelectedTags","currentMq","useMediaQuery","_d","itemsPerRow","setItemsPerRow","_e","visibleRows","setVisibleRows","isMounted","useMounted","targetRef","useRef","observerSupported","useObserverSupport","newsCount","length","setNewPos","useScrollTo","_f","useEqualSheetHeight","listLength","Math","min","identifiers","responsive","small","semilarge","xlarge","cardRefs","sheetRefs","triggerCalculation","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","push","apply","useEffect","paramTags","paramRows","parseInt","setUrlParam","deleteUrlParam","useUpdateEffect","enableToggling","prev","prevCopy","__spreadArray","itemIndex","indexOf","splice","filteredNews","filtered","item","hasTags","visibleNews","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","ceil","rootMargin","threshold","observe","disconnect","Filter","Pointer","as","Label","Grid","Row","Col","tagHref","href","NewsImages$1","images","isFull","Content","IntroHead","MetaBlock","StyledTitle","Title","clampTitle","wrapperSmall","ContentBlock","isCentered","clampText","wrapper","NewsIntro$1","meta","date","tagLink","colorMode","allowEdgeRadius","TableWrapper","NewsTable$1","tableItems","TableBlock","hasBack","NewsText$1","bgImage","embedId","playIcon","consentText","consentAction","VideoCard","NewsList$1","mode","items","slice"],"mappings":"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"}