@blateral/b.kit 2.8.4 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/cjs/Actions-2590a7b9.js +2 -0
  2. package/cjs/{Actions-c52a14e4.js.map → Actions-2590a7b9.js.map} +1 -1
  3. package/cjs/Bdot-35350767.js +2 -0
  4. package/cjs/{Bdot-62c8e349.js.map → Bdot-35350767.js.map} +1 -1
  5. package/cjs/Button-ddcdefd5.js +2 -0
  6. package/cjs/Button-ddcdefd5.js.map +1 -0
  7. package/cjs/ButtonGhost-22501467.js +2 -0
  8. package/cjs/ButtonGhost-22501467.js.map +1 -0
  9. package/cjs/ButtonLeft-7e1f216a.js +2 -0
  10. package/cjs/ButtonLeft-7e1f216a.js.map +1 -0
  11. package/cjs/Callout-86a61040.js +2 -0
  12. package/cjs/Callout-86a61040.js.map +1 -0
  13. package/cjs/Checkbox-d27880f4.js +2 -0
  14. package/cjs/Checkbox-d27880f4.js.map +1 -0
  15. package/cjs/Control-40e6d4ed.js +2 -0
  16. package/cjs/Control-40e6d4ed.js.map +1 -0
  17. package/cjs/Copy-1b9e33ba.js +2 -0
  18. package/cjs/Copy-1b9e33ba.js.map +1 -0
  19. package/cjs/EventBlock-7dde179c.js +2 -0
  20. package/cjs/EventBlock-7dde179c.js.map +1 -0
  21. package/cjs/FilterBar-238c2290.js +2 -0
  22. package/cjs/FilterBar-238c2290.js.map +1 -0
  23. package/cjs/FilterField-c8dc9450.js +2 -0
  24. package/cjs/{FilterField-d204feb1.js.map → FilterField-c8dc9450.js.map} +1 -1
  25. package/cjs/Grid-dab3343f.js +2 -0
  26. package/cjs/Grid-dab3343f.js.map +1 -0
  27. package/cjs/Image-14b2cb93.js +2 -0
  28. package/cjs/Image-14b2cb93.js.map +1 -0
  29. package/cjs/InfoList-b4f39949.js +2 -0
  30. package/cjs/InfoList-b4f39949.js.map +1 -0
  31. package/cjs/LanguageSwitcher-3ee77117.js +2 -0
  32. package/cjs/{LanguageSwitcher-c6fd04df.js.map → LanguageSwitcher-3ee77117.js.map} +1 -1
  33. package/cjs/LibThemeProvider-878ed68c.js +2 -0
  34. package/cjs/{LibThemeProvider-69109901.js.map → LibThemeProvider-878ed68c.js.map} +1 -1
  35. package/cjs/Link-6e728957.js +2 -0
  36. package/cjs/Link-6e728957.js.map +1 -0
  37. package/cjs/MultiselectDropdown-54cd988f.js +2 -0
  38. package/cjs/MultiselectDropdown-54cd988f.js.map +1 -0
  39. package/cjs/Navigation-2d3590a0.js +2 -0
  40. package/cjs/{Navigation-6c5d9dee.js.map → Navigation-2d3590a0.js.map} +1 -1
  41. package/cjs/PickerAction-ed288096.js +2 -0
  42. package/cjs/PickerAction-ed288096.js.map +1 -0
  43. package/cjs/Pointer-b8875387.js +2 -0
  44. package/cjs/Pointer-b8875387.js.map +1 -0
  45. package/cjs/Section-89240e41.js +2 -0
  46. package/cjs/Section-89240e41.js.map +1 -0
  47. package/cjs/SocialList-f2aca9d8.js +2 -0
  48. package/cjs/{SocialList-73af56b5.js.map → SocialList-f2aca9d8.js.map} +1 -1
  49. package/cjs/TableBlock-8f87c278.js +2 -0
  50. package/cjs/TableBlock-8f87c278.js.map +1 -0
  51. package/cjs/Tag-430477d0.js +2 -0
  52. package/cjs/Tag-430477d0.js.map +1 -0
  53. package/cjs/Textarea-51bea7d0.js +2 -0
  54. package/cjs/Textarea-51bea7d0.js.map +1 -0
  55. package/cjs/Textfield-4ff93649.js +2 -0
  56. package/cjs/Textfield-4ff93649.js.map +1 -0
  57. package/cjs/VideoBlock-087d79b8.js +2 -0
  58. package/cjs/{VideoBlock-0cae22f0.js.map → VideoBlock-087d79b8.js.map} +1 -1
  59. package/cjs/VideoCard-6e2ae7c1.js +2 -0
  60. package/cjs/VideoCard-6e2ae7c1.js.map +1 -0
  61. package/cjs/Wrapper-c755d727.js +2 -0
  62. package/cjs/{Wrapper-bca9463e.js.map → Wrapper-c755d727.js.map} +1 -1
  63. package/cjs/base.js +1 -1
  64. package/cjs/blocks.js +1 -1
  65. package/cjs/buttons.js +1 -1
  66. package/cjs/concat-8bd71a50.js +2 -0
  67. package/cjs/{concat-f387d848.js.map → concat-8bd71a50.js.map} +1 -1
  68. package/cjs/cookies.js +1 -1
  69. package/cjs/cookies.js.map +1 -1
  70. package/cjs/fields.js +1 -1
  71. package/cjs/fields.js.map +1 -1
  72. package/cjs/footer.js +1 -1
  73. package/cjs/footer.js.map +1 -1
  74. package/cjs/formFieldText-fcf0452b.js +2 -0
  75. package/cjs/formFieldText-fcf0452b.js.map +1 -0
  76. package/cjs/headers.js +1 -1
  77. package/cjs/headers.js.map +1 -1
  78. package/cjs/hooks.js +1 -1
  79. package/cjs/hooks.js.map +1 -1
  80. package/cjs/icons.js +1 -1
  81. package/cjs/index.js +1 -1
  82. package/cjs/navigation-ec5cddfc.js +2 -0
  83. package/cjs/{navigation-3f9d4ac4.js.map → navigation-ec5cddfc.js.map} +1 -1
  84. package/cjs/navigation.js +1 -1
  85. package/cjs/navigation.js.map +1 -1
  86. package/cjs/sections.dynamicform.js +1 -1
  87. package/cjs/sections.dynamicform.js.map +1 -1
  88. package/cjs/sections.events.js +1 -1
  89. package/cjs/sections.events.js.map +1 -1
  90. package/cjs/sections.forms.js +1 -1
  91. package/cjs/sections.forms.js.map +1 -1
  92. package/cjs/sections.jobs.js +1 -1
  93. package/cjs/sections.jobs.js.map +1 -1
  94. package/cjs/sections.js +1 -1
  95. package/cjs/sections.js.map +1 -1
  96. package/cjs/sections.news.js +1 -1
  97. package/cjs/sections.news.js.map +1 -1
  98. package/cjs/sections.pois.js +1 -1
  99. package/cjs/sections.pois.js.map +1 -1
  100. package/cjs/structuredData-7c33a463.js +2 -0
  101. package/cjs/structuredData-7c33a463.js.map +1 -0
  102. package/cjs/styles-271afb02.js +2 -0
  103. package/cjs/styles-271afb02.js.map +1 -0
  104. package/cjs/typography.js +1 -1
  105. package/cjs/{urlParams-7525f638.js → urlParams-c412d937.js} +2 -2
  106. package/cjs/{urlParams-7525f638.js.map → urlParams-c412d937.js.map} +1 -1
  107. package/cjs/useCookieConsent-674d004d.js +2 -0
  108. package/cjs/{useCookieConsent-665d91cf.js.map → useCookieConsent-674d004d.js.map} +1 -1
  109. package/cjs/useEqualSheetHeight-7eb7f276.js +2 -0
  110. package/cjs/{useEqualSheetHeight-f1c10ec5.js.map → useEqualSheetHeight-7eb7f276.js.map} +1 -1
  111. package/cjs/useLazyInput-1481445a.js +2 -0
  112. package/cjs/{useLazyInput-911b8eda.js.map → useLazyInput-1481445a.js.map} +1 -1
  113. package/cjs/useLeafletMap-145217ee.js +2 -0
  114. package/cjs/{useLeafletMap-514304b6.js.map → useLeafletMap-145217ee.js.map} +1 -1
  115. package/cjs/useMediaQuery-dd367f98.js +2 -0
  116. package/cjs/{useMediaQuery-619d7203.js.map → useMediaQuery-dd367f98.js.map} +1 -1
  117. package/esm/{Actions-e29b5e75.js → Actions-6859c932.js} +3 -3
  118. package/esm/{Actions-e29b5e75.js.map → Actions-6859c932.js.map} +1 -1
  119. package/esm/{Bdot-5e798e7e.js → Bdot-9e215df7.js} +3 -3
  120. package/esm/{Bdot-5e798e7e.js.map → Bdot-9e215df7.js.map} +1 -1
  121. package/esm/Button-1f634865.js +146 -0
  122. package/esm/Button-1f634865.js.map +1 -0
  123. package/esm/ButtonGhost-476c3826.js +146 -0
  124. package/esm/ButtonGhost-476c3826.js.map +1 -0
  125. package/esm/{Filter-19220970.js → ButtonLeft-a9a132f5.js} +362 -246
  126. package/esm/ButtonLeft-a9a132f5.js.map +1 -0
  127. package/esm/{Callout-46f0bef0.js → Callout-6436d270.js} +8 -6
  128. package/esm/Callout-6436d270.js.map +1 -0
  129. package/esm/{Checkbox-962fea67.js → Checkbox-e7fc7d28.js} +21 -11
  130. package/esm/Checkbox-e7fc7d28.js.map +1 -0
  131. package/esm/Control-84268468.js +44 -0
  132. package/esm/Control-84268468.js.map +1 -0
  133. package/esm/{Copy-fd9e25c0.js → Copy-5a18e01f.js} +27 -9
  134. package/esm/Copy-5a18e01f.js.map +1 -0
  135. package/esm/{EventBlock-12361860.js → EventBlock-0d010725.js} +62 -27
  136. package/esm/EventBlock-0d010725.js.map +1 -0
  137. package/esm/{FilterBar-8c258534.js → FilterBar-d6c1ef40.js} +38 -24
  138. package/esm/FilterBar-d6c1ef40.js.map +1 -0
  139. package/esm/{FilterField-8e64b355.js → FilterField-251b4dad.js} +5 -5
  140. package/esm/{FilterField-8e64b355.js.map → FilterField-251b4dad.js.map} +1 -1
  141. package/esm/{Grid-7b33e271.js → Grid-cbd5e68c.js} +19 -12
  142. package/esm/Grid-cbd5e68c.js.map +1 -0
  143. package/esm/{Image-c67870d4.js → Image-e2018d39.js} +15 -10
  144. package/esm/Image-e2018d39.js.map +1 -0
  145. package/esm/{InfoList-d853db58.js → InfoList-1be2ff46.js} +14 -7
  146. package/esm/InfoList-1be2ff46.js.map +1 -0
  147. package/esm/{LanguageSwitcher-c9aa594a.js → LanguageSwitcher-19482399.js} +5 -5
  148. package/esm/{LanguageSwitcher-c9aa594a.js.map → LanguageSwitcher-19482399.js.map} +1 -1
  149. package/esm/{LibThemeProvider-fb1d35ac.js → LibThemeProvider-48cad3e8.js} +3 -3
  150. package/esm/{LibThemeProvider-fb1d35ac.js.map → LibThemeProvider-48cad3e8.js.map} +1 -1
  151. package/esm/{Link-6067a27f.js → Link-d4a291af.js} +15 -8
  152. package/esm/Link-d4a291af.js.map +1 -0
  153. package/esm/{MultiselectDropdown-61a5a1a6.js → MultiselectDropdown-20b33522.js} +33 -13
  154. package/esm/MultiselectDropdown-20b33522.js.map +1 -0
  155. package/esm/{Navigation-6581bcdf.js → Navigation-d7e14d09.js} +10 -10
  156. package/esm/{Navigation-6581bcdf.js.map → Navigation-d7e14d09.js.map} +1 -1
  157. package/esm/PickerAction-704f2992.js +65 -0
  158. package/esm/PickerAction-704f2992.js.map +1 -0
  159. package/esm/Pointer-41c10bba.js +144 -0
  160. package/esm/Pointer-41c10bba.js.map +1 -0
  161. package/esm/{Section-bd61eb2f.js → Section-ca6daed2.js} +9 -5
  162. package/esm/Section-ca6daed2.js.map +1 -0
  163. package/esm/{SocialList-abaf970d.js → SocialList-d5adb772.js} +5 -5
  164. package/esm/{SocialList-abaf970d.js.map → SocialList-d5adb772.js.map} +1 -1
  165. package/esm/{TableBlock-a65315ca.js → TableBlock-5aad5dd2.js} +63 -115
  166. package/esm/TableBlock-5aad5dd2.js.map +1 -0
  167. package/esm/{Tag-217cd89b.js → Tag-f3f23d9b.js} +9 -13
  168. package/esm/Tag-f3f23d9b.js.map +1 -0
  169. package/esm/{Textarea-60503eb7.js → Textarea-af789d6e.js} +341 -252
  170. package/esm/Textarea-af789d6e.js.map +1 -0
  171. package/esm/{Textfield-e8f48b5f.js → Textfield-1f1ae077.js} +18 -6
  172. package/esm/Textfield-1f1ae077.js.map +1 -0
  173. package/esm/{VideoBlock-3f150172.js → VideoBlock-3c99c5fc.js} +12 -8
  174. package/esm/VideoBlock-3c99c5fc.js.map +1 -0
  175. package/esm/{VideoCard-aa60fbe5.js → VideoCard-dc103fce.js} +29 -24
  176. package/esm/VideoCard-dc103fce.js.map +1 -0
  177. package/esm/{Wrapper-95108115.js → Wrapper-06db8e79.js} +3 -3
  178. package/esm/{Wrapper-95108115.js.map → Wrapper-06db8e79.js.map} +1 -1
  179. package/esm/base.js +6 -6
  180. package/esm/blocks.js +22 -22
  181. package/esm/buttons.js +7 -6
  182. package/esm/buttons.js.map +1 -1
  183. package/esm/{concat-ab3c66f2.js → concat-b6d6d978.js} +2 -2
  184. package/esm/concat-b6d6d978.js.map +1 -0
  185. package/esm/cookies.js +57 -46
  186. package/esm/cookies.js.map +1 -1
  187. package/esm/fields.js +56 -123
  188. package/esm/fields.js.map +1 -1
  189. package/esm/footer.js +15 -13
  190. package/esm/footer.js.map +1 -1
  191. package/esm/{formFieldText-c6fcd370.js → formFieldText-af2106f9.js} +14 -8
  192. package/esm/formFieldText-af2106f9.js.map +1 -0
  193. package/esm/headers.js +21 -17
  194. package/esm/headers.js.map +1 -1
  195. package/esm/hooks.js +12 -12
  196. package/esm/icons.js +5 -2
  197. package/esm/icons.js.map +1 -1
  198. package/esm/index.js +3 -3
  199. package/esm/{navigation-5216dbad.js → navigation-d3d2bf2e.js} +2 -2
  200. package/esm/{navigation-5216dbad.js.map → navigation-d3d2bf2e.js.map} +1 -1
  201. package/esm/navigation.js +12 -12
  202. package/esm/sections.dynamicform.js +29 -33
  203. package/esm/sections.dynamicform.js.map +1 -1
  204. package/esm/sections.events.js +48 -30
  205. package/esm/sections.events.js.map +1 -1
  206. package/esm/sections.forms.js +11 -11
  207. package/esm/sections.jobs.js +99 -45
  208. package/esm/sections.jobs.js.map +1 -1
  209. package/esm/sections.js +537 -259
  210. package/esm/sections.js.map +1 -1
  211. package/esm/sections.news.js +155 -81
  212. package/esm/sections.news.js.map +1 -1
  213. package/esm/sections.pois.js +39 -34
  214. package/esm/sections.pois.js.map +1 -1
  215. package/esm/{structuredData-abf610d8.js → structuredData-73bcbf07.js} +32 -2
  216. package/esm/structuredData-73bcbf07.js.map +1 -0
  217. package/esm/{styles-1f1841ef.js → styles-f3ba5bae.js} +3 -2
  218. package/esm/styles-f3ba5bae.js.map +1 -0
  219. package/esm/typography.js +6 -6
  220. package/esm/{urlParams-9cfdaf71.js → urlParams-e7114d3e.js} +2 -2
  221. package/esm/{urlParams-9cfdaf71.js.map → urlParams-e7114d3e.js.map} +1 -1
  222. package/esm/{useCookieConsent-6661d419.js → useCookieConsent-4b667d40.js} +2 -2
  223. package/esm/{useCookieConsent-6661d419.js.map → useCookieConsent-4b667d40.js.map} +1 -1
  224. package/esm/{useEqualSheetHeight-60ff9de7.js → useEqualSheetHeight-80704864.js} +4 -4
  225. package/esm/{useEqualSheetHeight-60ff9de7.js.map → useEqualSheetHeight-80704864.js.map} +1 -1
  226. package/esm/{useLazyInput-0b6932aa.js → useLazyInput-08ee63f4.js} +2 -2
  227. package/esm/{useLazyInput-0b6932aa.js.map → useLazyInput-08ee63f4.js.map} +1 -1
  228. package/esm/{useLeafletMap-fa0ab7d4.js → useLeafletMap-f9050715.js} +2 -2
  229. package/esm/{useLeafletMap-fa0ab7d4.js.map → useLeafletMap-f9050715.js.map} +1 -1
  230. package/esm/{useMediaQuery-4c1b1fa6.js → useMediaQuery-c9fa1339.js} +3 -3
  231. package/esm/{useMediaQuery-4c1b1fa6.js.map → useMediaQuery-c9fa1339.js.map} +1 -1
  232. package/package.json +1 -1
  233. package/types/buttons.d.ts +1 -0
  234. package/types/buttons.d.ts.map +1 -1
  235. package/types/components/base/Grid.d.ts +3 -0
  236. package/types/components/base/Grid.d.ts.map +1 -1
  237. package/types/components/base/Section.d.ts +3 -1
  238. package/types/components/base/Section.d.ts.map +1 -1
  239. package/types/components/base/icons/ButtonLeft.d.ts +1 -2
  240. package/types/components/base/icons/ButtonLeft.d.ts.map +1 -1
  241. package/types/components/base/icons/ButtonRight.d.ts +1 -2
  242. package/types/components/base/icons/ButtonRight.d.ts.map +1 -1
  243. package/types/components/base/icons/CircleX.d.ts +10 -0
  244. package/types/components/base/icons/CircleX.d.ts.map +1 -0
  245. package/types/components/base/icons/Icons.d.ts +3 -0
  246. package/types/components/base/icons/Icons.d.ts.map +1 -1
  247. package/types/components/blocks/Alert.d.ts.map +1 -1
  248. package/types/components/blocks/CookieConsent.d.ts.map +1 -1
  249. package/types/components/blocks/EventBlock.d.ts +18 -11
  250. package/types/components/blocks/EventBlock.d.ts.map +1 -1
  251. package/types/components/blocks/Feature.d.ts +6 -2
  252. package/types/components/blocks/Feature.d.ts.map +1 -1
  253. package/types/components/blocks/Image.d.ts +2 -0
  254. package/types/components/blocks/Image.d.ts.map +1 -1
  255. package/types/components/blocks/InfoList.d.ts +5 -1
  256. package/types/components/blocks/InfoList.d.ts.map +1 -1
  257. package/types/components/blocks/JobCard.d.ts +4 -0
  258. package/types/components/blocks/JobCard.d.ts.map +1 -1
  259. package/types/components/blocks/NavBlock.d.ts.map +1 -1
  260. package/types/components/blocks/NewsCard.d.ts +20 -9
  261. package/types/components/blocks/NewsCard.d.ts.map +1 -1
  262. package/types/components/blocks/POICard.d.ts +7 -1
  263. package/types/components/blocks/POICard.d.ts.map +1 -1
  264. package/types/components/blocks/POIFacts.d.ts +1 -0
  265. package/types/components/blocks/POIFacts.d.ts.map +1 -1
  266. package/types/components/blocks/PriceTag.d.ts +9 -4
  267. package/types/components/blocks/PriceTag.d.ts.map +1 -1
  268. package/types/components/blocks/PromotionCard.d.ts +2 -2
  269. package/types/components/blocks/PromotionCard.d.ts.map +1 -1
  270. package/types/components/blocks/TableBlock.d.ts +2 -0
  271. package/types/components/blocks/TableBlock.d.ts.map +1 -1
  272. package/types/components/blocks/Tag.d.ts +1 -0
  273. package/types/components/blocks/Tag.d.ts.map +1 -1
  274. package/types/components/blocks/Title.d.ts +5 -0
  275. package/types/components/blocks/Title.d.ts.map +1 -1
  276. package/types/components/blocks/VideoBlock.d.ts +2 -0
  277. package/types/components/blocks/VideoBlock.d.ts.map +1 -1
  278. package/types/components/blocks/VideoCard.d.ts +2 -0
  279. package/types/components/blocks/VideoCard.d.ts.map +1 -1
  280. package/types/components/buttons/Button.d.ts +6 -1
  281. package/types/components/buttons/Button.d.ts.map +1 -1
  282. package/types/components/buttons/ButtonGhost.d.ts +6 -1
  283. package/types/components/buttons/ButtonGhost.d.ts.map +1 -1
  284. package/types/components/buttons/Control.d.ts.map +1 -1
  285. package/types/components/buttons/PickerAction.d.ts +14 -0
  286. package/types/components/buttons/PickerAction.d.ts.map +1 -0
  287. package/types/components/buttons/Pointer.d.ts +6 -2
  288. package/types/components/buttons/Pointer.d.ts.map +1 -1
  289. package/types/components/fields/Checkbox.d.ts +0 -1
  290. package/types/components/fields/Checkbox.d.ts.map +1 -1
  291. package/types/components/fields/CompactForm.d.ts.map +1 -1
  292. package/types/components/fields/Datepicker.d.ts +31 -13
  293. package/types/components/fields/Datepicker.d.ts.map +1 -1
  294. package/types/components/fields/FileUpload.d.ts.map +1 -1
  295. package/types/components/fields/FormField.d.ts +4 -1
  296. package/types/components/fields/FormField.d.ts.map +1 -1
  297. package/types/components/fields/LocationField.d.ts +1 -0
  298. package/types/components/fields/LocationField.d.ts.map +1 -1
  299. package/types/components/fields/MultiselectDropdown.d.ts.map +1 -1
  300. package/types/components/fields/Radio.d.ts +0 -1
  301. package/types/components/fields/Radio.d.ts.map +1 -1
  302. package/types/components/fields/SelectDropdown.d.ts.map +1 -1
  303. package/types/components/fields/Textarea.d.ts.map +1 -1
  304. package/types/components/fields/Textfield.d.ts.map +1 -1
  305. package/types/components/sections/Accordion.d.ts +6 -6
  306. package/types/components/sections/Accordion.d.ts.map +1 -1
  307. package/types/components/sections/AlertList.d.ts +10 -6
  308. package/types/components/sections/AlertList.d.ts.map +1 -1
  309. package/types/components/sections/CallToAction.d.ts +14 -9
  310. package/types/components/sections/CallToAction.d.ts.map +1 -1
  311. package/types/components/sections/CardList.d.ts +19 -14
  312. package/types/components/sections/CardList.d.ts.map +1 -1
  313. package/types/components/sections/ComparisonSlider.d.ts.map +1 -1
  314. package/types/components/sections/CrossPromotion.d.ts +11 -12
  315. package/types/components/sections/CrossPromotion.d.ts.map +1 -1
  316. package/types/components/sections/FactGrid.d.ts +4 -0
  317. package/types/components/sections/FactGrid.d.ts.map +1 -1
  318. package/types/components/sections/FactList.d.ts +13 -0
  319. package/types/components/sections/FactList.d.ts.map +1 -1
  320. package/types/components/sections/FeatureList.d.ts +4 -0
  321. package/types/components/sections/FeatureList.d.ts.map +1 -1
  322. package/types/components/sections/Gallery.d.ts +2 -0
  323. package/types/components/sections/Gallery.d.ts.map +1 -1
  324. package/types/components/sections/IconList.d.ts +4 -0
  325. package/types/components/sections/IconList.d.ts.map +1 -1
  326. package/types/components/sections/IndexList.d.ts +2 -0
  327. package/types/components/sections/IndexList.d.ts.map +1 -1
  328. package/types/components/sections/Map.d.ts +11 -24
  329. package/types/components/sections/Map.d.ts.map +1 -1
  330. package/types/components/sections/NavList.d.ts +2 -0
  331. package/types/components/sections/NavList.d.ts.map +1 -1
  332. package/types/components/sections/NumberList.d.ts +4 -0
  333. package/types/components/sections/NumberList.d.ts.map +1 -1
  334. package/types/components/sections/ParallaxBackground.d.ts.map +1 -1
  335. package/types/components/sections/PriceList.d.ts +18 -0
  336. package/types/components/sections/PriceList.d.ts.map +1 -1
  337. package/types/components/sections/PriceTable.d.ts +6 -2
  338. package/types/components/sections/PriceTable.d.ts.map +1 -1
  339. package/types/components/sections/Quote.d.ts.map +1 -1
  340. package/types/components/sections/RawVideo.d.ts +4 -0
  341. package/types/components/sections/RawVideo.d.ts.map +1 -1
  342. package/types/components/sections/SocialWall.d.ts +13 -12
  343. package/types/components/sections/SocialWall.d.ts.map +1 -1
  344. package/types/components/sections/Table.d.ts +11 -2
  345. package/types/components/sections/Table.d.ts.map +1 -1
  346. package/types/components/sections/Teaser.d.ts.map +1 -1
  347. package/types/components/sections/TeaserWide.d.ts.map +1 -1
  348. package/types/components/sections/Video.d.ts +2 -0
  349. package/types/components/sections/Video.d.ts.map +1 -1
  350. package/types/components/sections/events/EventDetail.d.ts +14 -14
  351. package/types/components/sections/events/EventDetail.d.ts.map +1 -1
  352. package/types/components/sections/events/EventList.d.ts +3 -16
  353. package/types/components/sections/events/EventList.d.ts.map +1 -1
  354. package/types/components/sections/events/EventOverview.d.ts +3 -15
  355. package/types/components/sections/events/EventOverview.d.ts.map +1 -1
  356. package/types/components/sections/form/DynamicForm.d.ts +9 -9
  357. package/types/components/sections/form/DynamicForm.d.ts.map +1 -1
  358. package/types/components/sections/form/renderer/datepickerRenderer.d.ts.map +1 -1
  359. package/types/components/sections/header/HeaderKenBurns.d.ts.map +1 -1
  360. package/types/components/sections/header/HeaderPoster.d.ts.map +1 -1
  361. package/types/components/sections/header/HeaderVideo.d.ts.map +1 -1
  362. package/types/components/sections/jobs/JobArticle.d.ts +4 -0
  363. package/types/components/sections/jobs/JobArticle.d.ts.map +1 -1
  364. package/types/components/sections/jobs/JobList.d.ts +8 -0
  365. package/types/components/sections/jobs/JobList.d.ts.map +1 -1
  366. package/types/components/sections/news/NewsAuthorCard.d.ts.map +1 -1
  367. package/types/components/sections/news/NewsFooter.d.ts +3 -16
  368. package/types/components/sections/news/NewsFooter.d.ts.map +1 -1
  369. package/types/components/sections/news/NewsImages.d.ts.map +1 -1
  370. package/types/components/sections/news/NewsIntro.d.ts.map +1 -1
  371. package/types/components/sections/news/NewsList.d.ts +3 -16
  372. package/types/components/sections/news/NewsList.d.ts.map +1 -1
  373. package/types/components/sections/news/NewsOverview.d.ts +3 -15
  374. package/types/components/sections/news/NewsOverview.d.ts.map +1 -1
  375. package/types/components/sections/news/NewsTable.d.ts +8 -0
  376. package/types/components/sections/news/NewsTable.d.ts.map +1 -1
  377. package/types/components/sections/news/NewsVideo.d.ts +4 -0
  378. package/types/components/sections/news/NewsVideo.d.ts.map +1 -1
  379. package/types/components/sections/pois/PointOfInterestOverview.d.ts +13 -12
  380. package/types/components/sections/pois/PointOfInterestOverview.d.ts.map +1 -1
  381. package/types/components/typography/Callout.d.ts +1 -0
  382. package/types/components/typography/Callout.d.ts.map +1 -1
  383. package/types/components/typography/Copy.d.ts +7 -1
  384. package/types/components/typography/Copy.d.ts.map +1 -1
  385. package/types/components/typography/Heading.d.ts +1 -0
  386. package/types/components/typography/Heading.d.ts.map +1 -1
  387. package/types/components/typography/Link.d.ts +3 -0
  388. package/types/components/typography/Link.d.ts.map +1 -1
  389. package/types/fields.d.ts +0 -1
  390. package/types/fields.d.ts.map +1 -1
  391. package/types/utils/structuredData.d.ts +14 -0
  392. package/types/utils/structuredData.d.ts.map +1 -1
  393. package/types/utils/styles.d.ts +1 -0
  394. package/types/utils/styles.d.ts.map +1 -1
  395. package/cjs/Actions-c52a14e4.js +0 -2
  396. package/cjs/Bdot-62c8e349.js +0 -2
  397. package/cjs/Button-1adf99b8.js +0 -2
  398. package/cjs/Button-1adf99b8.js.map +0 -1
  399. package/cjs/ButtonGhost-fbab8769.js +0 -2
  400. package/cjs/ButtonGhost-fbab8769.js.map +0 -1
  401. package/cjs/Callout-d84ca60b.js +0 -2
  402. package/cjs/Callout-d84ca60b.js.map +0 -1
  403. package/cjs/Checkbox-ddc9a87d.js +0 -2
  404. package/cjs/Checkbox-ddc9a87d.js.map +0 -1
  405. package/cjs/Control-e15e1572.js +0 -2
  406. package/cjs/Control-e15e1572.js.map +0 -1
  407. package/cjs/Copy-2a9d4b5d.js +0 -2
  408. package/cjs/Copy-2a9d4b5d.js.map +0 -1
  409. package/cjs/EventBlock-0b0f0dd3.js +0 -2
  410. package/cjs/EventBlock-0b0f0dd3.js.map +0 -1
  411. package/cjs/Filter-89286db9.js +0 -2
  412. package/cjs/Filter-89286db9.js.map +0 -1
  413. package/cjs/FilterBar-bfd9db6e.js +0 -2
  414. package/cjs/FilterBar-bfd9db6e.js.map +0 -1
  415. package/cjs/FilterField-d204feb1.js +0 -2
  416. package/cjs/Grid-1acefee9.js +0 -2
  417. package/cjs/Grid-1acefee9.js.map +0 -1
  418. package/cjs/Image-69a9c116.js +0 -2
  419. package/cjs/Image-69a9c116.js.map +0 -1
  420. package/cjs/InfoList-f040b8fb.js +0 -2
  421. package/cjs/InfoList-f040b8fb.js.map +0 -1
  422. package/cjs/LanguageSwitcher-c6fd04df.js +0 -2
  423. package/cjs/LibThemeProvider-69109901.js +0 -2
  424. package/cjs/Link-8951180c.js +0 -2
  425. package/cjs/Link-8951180c.js.map +0 -1
  426. package/cjs/MultiselectDropdown-d46ae36f.js +0 -2
  427. package/cjs/MultiselectDropdown-d46ae36f.js.map +0 -1
  428. package/cjs/Navigation-6c5d9dee.js +0 -2
  429. package/cjs/Pointer-0f69256f.js +0 -2
  430. package/cjs/Pointer-0f69256f.js.map +0 -1
  431. package/cjs/Section-c9a16ccc.js +0 -2
  432. package/cjs/Section-c9a16ccc.js.map +0 -1
  433. package/cjs/SocialList-73af56b5.js +0 -2
  434. package/cjs/TableBlock-532c7e1e.js +0 -2
  435. package/cjs/TableBlock-532c7e1e.js.map +0 -1
  436. package/cjs/Tag-232f7aa9.js +0 -2
  437. package/cjs/Tag-232f7aa9.js.map +0 -1
  438. package/cjs/Textarea-d30682bd.js +0 -2
  439. package/cjs/Textarea-d30682bd.js.map +0 -1
  440. package/cjs/Textfield-b3769184.js +0 -2
  441. package/cjs/Textfield-b3769184.js.map +0 -1
  442. package/cjs/VideoBlock-0cae22f0.js +0 -2
  443. package/cjs/VideoCard-c9d4f46a.js +0 -2
  444. package/cjs/VideoCard-c9d4f46a.js.map +0 -1
  445. package/cjs/Wrapper-bca9463e.js +0 -2
  446. package/cjs/concat-f387d848.js +0 -2
  447. package/cjs/formFieldText-21f5f620.js +0 -2
  448. package/cjs/formFieldText-21f5f620.js.map +0 -1
  449. package/cjs/navigation-3f9d4ac4.js +0 -2
  450. package/cjs/structuredData-0b1278a9.js +0 -2
  451. package/cjs/structuredData-0b1278a9.js.map +0 -1
  452. package/cjs/styles-13e5d9ac.js +0 -2
  453. package/cjs/styles-13e5d9ac.js.map +0 -1
  454. package/cjs/useCookieConsent-665d91cf.js +0 -2
  455. package/cjs/useEqualSheetHeight-f1c10ec5.js +0 -2
  456. package/cjs/useLazyInput-911b8eda.js +0 -2
  457. package/cjs/useLeafletMap-514304b6.js +0 -2
  458. package/cjs/useMediaQuery-619d7203.js +0 -2
  459. package/esm/Button-9a0dd9aa.js +0 -115
  460. package/esm/Button-9a0dd9aa.js.map +0 -1
  461. package/esm/ButtonGhost-fc9e7a75.js +0 -112
  462. package/esm/ButtonGhost-fc9e7a75.js.map +0 -1
  463. package/esm/Callout-46f0bef0.js.map +0 -1
  464. package/esm/Checkbox-962fea67.js.map +0 -1
  465. package/esm/Control-56ec7872.js +0 -52
  466. package/esm/Control-56ec7872.js.map +0 -1
  467. package/esm/Copy-fd9e25c0.js.map +0 -1
  468. package/esm/EventBlock-12361860.js.map +0 -1
  469. package/esm/Filter-19220970.js.map +0 -1
  470. package/esm/FilterBar-8c258534.js.map +0 -1
  471. package/esm/Grid-7b33e271.js.map +0 -1
  472. package/esm/Image-c67870d4.js.map +0 -1
  473. package/esm/InfoList-d853db58.js.map +0 -1
  474. package/esm/Link-6067a27f.js.map +0 -1
  475. package/esm/MultiselectDropdown-61a5a1a6.js.map +0 -1
  476. package/esm/Pointer-3e965d7b.js +0 -111
  477. package/esm/Pointer-3e965d7b.js.map +0 -1
  478. package/esm/Section-bd61eb2f.js.map +0 -1
  479. package/esm/TableBlock-a65315ca.js.map +0 -1
  480. package/esm/Tag-217cd89b.js.map +0 -1
  481. package/esm/Textarea-60503eb7.js.map +0 -1
  482. package/esm/Textfield-e8f48b5f.js.map +0 -1
  483. package/esm/VideoBlock-3f150172.js.map +0 -1
  484. package/esm/VideoCard-aa60fbe5.js.map +0 -1
  485. package/esm/concat-ab3c66f2.js.map +0 -1
  486. package/esm/formFieldText-c6fcd370.js.map +0 -1
  487. package/esm/structuredData-abf610d8.js.map +0 -1
  488. package/esm/styles-1f1841ef.js.map +0 -1
  489. package/types/components/fields/SearchInput.d.ts +0 -16
  490. package/types/components/fields/SearchInput.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sections.events.js","sources":["../src/components/sections/events/EventOverview.tsx","../src/components/sections/events/EventList.tsx","../src/components/sections/events/EventDetail.tsx"],"sourcesContent":["import Filter from 'components/base/icons/Filter';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport EventBlock, { EventProps } from 'components/blocks/EventBlock';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport Pointer from 'components/buttons/Pointer';\nimport Copy from 'components/typography/Copy';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { concat } from 'utils/concat';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport useMounted from 'utils/useMounted';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport useUpdateEffect from 'utils/useUpdateEffect';\n\nconst TagContainer = styled.div`\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ${spacings.nudge * 6}px;\n }\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst Events = styled.ul<{ hasBg?: boolean }>`\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst FilterIcon = styled(Copy)`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ${spacings.nudge / 2}px ${spacings.nudge}px 0 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst EventItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\n`;\n\nconst ListFooter = styled.div`\n margin-top: ${spacings.nudge * 6}px;\n text-align: center;\n\n @media ${mq.medium} {\n text-align: left;\n }\n`;\n\nconst ShowMore = styled.span<{ itemCount?: number }>`\n display: ${({ itemCount }) =>\n itemCount && itemCount > 2 ? 'block' : 'none'};\n`;\n\nexport const getEventFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url || !theme) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.eventFilterName;\n if (!filterName) return url;\n\n try {\n const validUrl = new URL(url);\n const newParams = new URLSearchParams(validUrl.search);\n newParams.set(filterName, encodeURIComponent(tags.join(',')));\n\n return `${url}?${newParams.toString()}`;\n } catch (err) {\n return `${url}?${filterName}=${encodeURIComponent(tags.join(','))}`;\n }\n};\n\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Tags for events filtering */\n tags?: string[];\n\n /** Initial data. If not defined the component tries to collect this from URL params */\n initial?: {\n activeTags?: string[];\n visibleRows?: number;\n };\n\n /** Text for load more toggle. Only visible if browser doesn't support IntersectionObserver. */\n showMoreText?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /**\n * Callback function to handle tag click outside of component\n * If no callback is defined filtering is controlled on client\n * */\n onTagClick?: (tag: TagProps, insideList?: boolean) => void;\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n clickHandler?: (ev?: React.SyntheticEvent<HTMLElement>) => void;\n }) => React.ReactNode;\n}> = ({\n tags,\n events,\n bgMode,\n anchorId,\n initial,\n showMoreText,\n onTagClick,\n customTag,\n}) => {\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.eventFilterName;\n\n const [selectedTags, setSelectedTags] = React.useState<string[]>(\n initial?.activeTags || []\n );\n const [itemsPerRow] = React.useState(1);\n const [visibleRows, setVisibleRows] = React.useState(\n initial?.visibleRows || 3\n );\n\n const targetRef = React.useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n const isMounted = useMounted();\n\n const eventCount = events?.length || 0;\n const setNewPos = useScrollTo(800);\n\n const getFilters = useCallback(() => {\n const tags: string[] = [];\n\n const filters = getUrlParams()[filterName];\n if (filters) {\n const tagsFilter = filters?.split(',');\n if (isValidArray(tagsFilter, false)) {\n tags.push(...tagsFilter);\n }\n }\n return tags;\n }, [filterName]);\n\n useEffect(() => {\n // if initial data is defined exit hook\n if (initial) return;\n\n // if no initial data provied try to find needed params in URL\n const paramTags = getFilters();\n\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getFilters, initial]);\n\n useEffect(() => {\n if (!initial || isMounted) return;\n\n // set inital data into URL\n setUrlParam('rows', initial?.visibleRows || 3);\n\n if (isValidArray(initial?.activeTags, false)) {\n setUrlParam(filterName, initial?.activeTags?.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterName, initial, isMounted]);\n\n useUpdateEffect(() => {\n setUrlParam('rows', visibleRows);\n }, [visibleRows]);\n\n useUpdateEffect(() => {\n if (onTagClick || !isValidArray(selectedTags)) return;\n\n // set filters to URL params\n if (selectedTags.length > 0) {\n setUrlParam(filterName, selectedTags.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [selectedTags]);\n\n const handleTagClick = (tag: TagProps, enableToggling = true) => {\n setSelectedTags((prev) => {\n const prevCopy = [...prev];\n const itemIndex = tag.name ? prev.indexOf(tag.name) : -1;\n\n if (itemIndex === -1 && tag.name) {\n return [...prevCopy, tag.name];\n }\n if (enableToggling) {\n prevCopy.splice(itemIndex, 1);\n return prevCopy;\n }\n return prev;\n });\n setVisibleRows(3);\n };\n\n const filteredEvents = useMemo(() => {\n const tagFilterFn = (item: EventItem) => {\n if (!isValidArray(selectedTags, false)) return true;\n if (!item.tags) return false;\n\n let hasTags = false;\n for (let i = 0; i < item.tags.length; i++) {\n if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {\n hasTags = true;\n break;\n }\n }\n return hasTags;\n };\n\n let filtered = isValidArray(events) ? [...events] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [events, selectedTags]);\n\n const visibleEvents = useMemo(() => {\n return (\n filteredEvents?.filter((_, i) => i < visibleRows * itemsPerRow) ||\n []\n );\n }, [filteredEvents, itemsPerRow, visibleRows]);\n\n useEffect(() => {\n // cancel if intersection observers are not supported\n if (!observerSupported) return;\n\n const element = targetRef.current;\n let observer: IntersectionObserver;\n\n if (element) {\n const options = {\n rootMargin: '0px 0px 100px 0px',\n threshold: 0,\n };\n\n observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry?.isIntersecting) {\n // on bottom of the wrapper load more events\n if (\n visibleRows <\n Math.ceil(filteredEvents.length / itemsPerRow)\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }\n }, options);\n observer.observe(element);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, [\n itemsPerRow,\n eventCount,\n visibleRows,\n observerSupported,\n filteredEvents.length,\n ]);\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag);\n }, [tags]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : 'transparent'\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {isValidArray(filteredTags, false) && (\n <TagContainer>\n <FilterIcon\n size=\"small\"\n type=\"copy\"\n isInverted={isInverted}\n >\n <Filter />\n <span>Filter</span>\n </FilterIcon>\n {filteredTags.map((tag, i) => (\n <TagWrapper key={i}>\n {customTag ? (\n customTag({\n key: i,\n name: tag,\n isInverted: isInverted,\n isActive:\n selectedTags.indexOf(tag) !== -1,\n clickHandler: (ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else onTagClick({ name: tag });\n },\n })\n ) : (\n <Tag\n isInverted={isInverted}\n onClick={(ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else\n onTagClick(\n { name: tag },\n false\n );\n }}\n isActive={\n selectedTags.indexOf(tag) !== -1\n }\n >\n {tag}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n <Events hasBg={hasBg}>\n {visibleEvents.map((item, i) => {\n let timespan = '';\n\n if (item.date) {\n const formatter = new StatusFormatter(\n item.date.getTime(),\n '',\n globals.sections.eventDateFormat(item.date),\n globals.sections.eventTimeFormat(item.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n item.date,\n item.duration\n ),\n item.duration\n );\n }\n\n const text = concat([timespan, item.address], ' | ');\n\n return (\n <EventItem key={`${i}_event_${item.title}`}>\n <EventBlock\n hasBg={bgMode === 'full'}\n {...item}\n text={text}\n tags={item.tags?.map((tag) => ({\n name: tag.name,\n }))}\n isInverted={isInverted}\n onTagClick={(tag) => {\n // scroll back to top\n setNewPos(0);\n if (!onTagClick) {\n // if no callback is defined handle filtering on client side inside the component\n handleTagClick(\n { name: tag.name },\n false\n );\n } else {\n onTagClick(\n { name: tag.name },\n true\n );\n }\n }}\n customTag={customTag}\n />\n </EventItem>\n );\n })}\n </Events>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {events && events.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={events.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredEvents.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredEvents.length / itemsPerRow && (\n <Pointer.View\n as=\"button\"\n isInverted={isInverted}\n >\n <Pointer.Label>\n {showMoreText ||\n 'mehr anzeigen'}\n </Pointer.Label>\n </Pointer.View>\n )}\n </ShowMore>\n </Copy>\n )}\n </ListFooter>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventOverviewComponent = EventOverview;\nexport default withLibTheme(EventOverview);\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport EventBlock, { EventProps } from 'components/blocks/EventBlock';\nimport { getColors as color, spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { LinkProps } from 'components/typography/Link';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { concat } from 'utils/concat';\nimport { getEventFilterParams } from './EventOverview';\n\nconst List = styled.ul<{ hasBg?: boolean }>`\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst ListItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\n`;\n\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, events, bgMode, customTag }) => {\n const { colors, globals, theme } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <List hasBg={hasBg}>\n {events?.map((event, i) => {\n let timespan = '';\n\n if (event.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n event.date,\n event.duration\n ),\n event.duration\n );\n }\n\n const text = concat([timespan, event.address], ' | ');\n\n return (\n <ListItem key={i}>\n <EventBlock\n hasBg={bgMode === 'full'}\n {...event}\n tags={event.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getEventFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n isInverted={isInverted}\n text={text}\n customTag={customTag}\n />\n </ListItem>\n );\n })}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventListComponent = EventList;\nexport default withLibTheme(EventList);\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { EventProps } from 'components/blocks/EventBlock';\nimport Image from 'components/blocks/Image';\nimport Tag from 'components/blocks/Tag';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { LinkProps } from 'components/typography/Link';\nimport { mq, spacings, getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport StatusFormatter from 'utils/statusFormatter';\nimport InfoList from 'components/blocks/InfoList';\nimport { isValidArray } from 'utils/arrays';\n\nconst ImageContainer = styled.div<{ hAlign?: 'left' | 'center' | 'right' }>`\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ${({ hAlign }) => {\n switch (hAlign) {\n case 'center':\n return 'center';\n\n case 'right':\n return 'flex-end';\n\n case 'left':\n default:\n return 'flex-start';\n }\n }};\n\n overflow: hidden;\n\n margin-bottom: ${spacings.spacer}px;\n`;\n\nconst ImgWrapper = styled.div`\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media ${mq.medium} {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ${spacings.nudge}px;\n }\n }\n`;\n\nconst ImageBackground = styled.div<{ isInverted?: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n`;\n\nconst StyledTextImage = styled(Image)`\n margin-top: ${spacings.nudge * 3}px;\n\n @media ${mq.medium} {\n display: none;\n }\n`;\n\nconst TagContainer = styled.div`\n max-width: 880px;\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst EventTitle = styled(Heading)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n`;\n\nconst EventDateTime = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst EventAddress = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n ${EventDateTime} + & {\n margin-top: ${spacings.nudge}px;\n }\n\n @media ${mq.semilarge} {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst EventText = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nexport type DetailEventProps = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'link'\n>;\n\nexport interface EventInfoGroup {\n title?: string;\n items: EventInfo[];\n}\n\nexport interface EventInfo {\n /** icon injection function */\n icon?: (isInverted?: boolean) => React.ReactNode;\n /** Event info text (richtText) */\n text?: string;\n}\n\nconst EventDetail: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n event?: DetailEventProps & { address?: string; abstract?: string };\n\n /** Additional event infos */\n infos?: EventInfoGroup[];\n\n /** Use image as blurred background for single images */\n useImageAsBg?: boolean;\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\n\n /** Function to inject custom tag node */\n customTag?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n }) => React.ReactNode;\n}> = ({ anchorId, event, infos, useImageAsBg, bgMode, customTag }) => {\n const { colors, globals } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const hasInfos = useMemo(() => {\n return isValidArray(\n infos?.filter((info) => isValidArray(info.items, false)),\n false\n );\n }, [infos]);\n\n let publishedAt = '';\n let timespan = '';\n\n if (event?.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(event.date, event.duration),\n event.duration\n );\n }\n\n const images = useMemo(() => event?.images?.slice(0, 2), [event?.images]);\n const secondaryImage = images?.[1];\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {isValidArray(images, false) && (\n <ImageContainer hAlign={useImageAsBg ? 'center' : 'left'}>\n {images.map((img, i) => {\n if (!img.small) return null;\n return (\n <ImgWrapper key={i}>\n <Image\n {...img}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n />\n </ImgWrapper>\n );\n })}\n <ImageBackground\n isInverted={isInverted}\n style={{\n backgroundImage:\n useImageAsBg && images.length < 2\n ? `url(${event?.images?.[0].small})`\n : undefined,\n }}\n />\n </ImageContainer>\n )}\n <Grid.Row\n gutter={spacings.nudge * 5}\n semilarge={{ gutter: spacings.spacer }}\n >\n <Grid.Col semilarge={{ span: hasInfos ? 5.7 / 8 : 1 }}>\n {event?.tags && (\n <TagContainer>\n {event.tags.map((tag, i) => (\n <TagWrapper key={'tag_' + i}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n })\n ) : (\n <Tag\n link={tag.link}\n isInverted={isInverted}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n {event?.title && (\n <EventTitle\n size=\"heading-2\"\n isInverted={isInverted}\n >\n {event.title}\n </EventTitle>\n )}\n {publishedAt && (\n <EventDateTime\n size=\"big\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {publishedAt || ''}\n {publishedAt && timespan ? ' | ' : ''}\n {timespan}\n </EventDateTime>\n )}\n {event?.address && (\n <EventAddress\n size=\"big\"\n type=\"copy\"\n innerHTML={event.address}\n isInverted={isInverted}\n />\n )}\n {event?.abstract && (\n <EventText\n size=\"medium\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {event.abstract}\n </EventText>\n )}\n {secondaryImage && (\n <StyledTextImage\n {...secondaryImage}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n />\n )}\n {event?.text && (\n <EventText\n size=\"medium\"\n isInverted={isInverted}\n innerHTML={event.text}\n />\n )}\n </Grid.Col>\n {hasInfos && (\n <Grid.Col semilarge={{ span: 2.3 / 8 }}>\n <InfoList isInverted={isInverted} items={infos} />\n </Grid.Col>\n )}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventDetailComponent = EventDetail;\nexport default withLibTheme(EventDetail);\n"],"names":["TagContainer","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","nudge","TagWrapper","templateObject_2","Events","ul","_a","theme","hasBg","color","elementBg","light","medium","FilterIcon","Copy","templateObject_4","EventItem","li","ListFooter","templateObject_6","mq","ShowMore","span","templateObject_7","itemCount","EventOverview$1","withLibTheme","tags","events","bgMode","anchorId","initial","showMoreText","onTagClick","customTag","isInverted","_b","useLibTheme","colors","globals","filterName","sections","eventFilterName","_c","React","useState","activeTags","selectedTags","setSelectedTags","itemsPerRow","_d","visibleRows","setVisibleRows","targetRef","useRef","observerSupported","useObserverSupport","isMounted","useMounted","eventCount","length","setNewPos","useScrollTo","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","isValidArray","push","apply","useEffect","paramTags","setUrlParam","join","deleteUrlParam","useUpdateEffect","handleTagClick","tag","enableToggling","prev","prevCopy","__spreadArray","itemIndex","name","indexOf","splice","filteredEvents","useMemo","filtered","filter","item","hasTags","i","visibleEvents","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","Math","ceil","rootMargin","threshold","observe","disconnect","filteredTags","createElement","Section","addSeperation","bgColor","sectionBg","dark","mapToBgMode","Wrapper","addWhitespace","size","type","Filter","map","key","isActive","clickHandler","ev","preventDefault","Tag","onClick","timespan","date","StatusFormatter","getTime","eventDateFormat","eventTimeFormat","eventLocaleKey","getFormattedTimespan","eventTimespanFormat","duration","text","concat","address","title","EventBlock","__assign","ref","Pointer","View","as","Label","List","ListItem","EventList$1","event","tagHref","undefined","link","href","url","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","toString","err","getEventFilterParams","ImageContainer","hAlign","spacer","ImgWrapper","ImageBackground","templateObject_3","global","getGlobals","imagePlaceholderBg","inverted","default","StyledTextImage","Image","templateObject_5","EventTitle","Heading","semilarge","EventDateTime","templateObject_8","EventAddress","templateObject_9","EventText","templateObject_10","EventDetail$1","infos","useImageAsBg","hasInfos","info","items","publishedAt","formatter","getFormattedDate","images","slice","secondaryImage","img","small","coverSpace","allowEdgeRadius","ratios","w","h","style","backgroundImage","Grid","Row","gutter","Col","innerHTML","abstract","InfoList"],"mappings":"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"}
1
+ {"version":3,"file":"sections.events.js","sources":["../src/components/sections/events/EventOverview.tsx","../src/components/sections/events/EventList.tsx","../src/components/sections/events/EventDetail.tsx"],"sourcesContent":["import Filter from 'components/base/icons/Filter';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport EventBlock, {\n EventCustomTagFn,\n EventProps,\n} from 'components/blocks/EventBlock';\nimport Tag, { TagProps } from 'components/blocks/Tag';\nimport Pointer from 'components/buttons/Pointer';\nimport Copy from 'components/typography/Copy';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { concat } from 'utils/concat';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\nimport useMounted from 'utils/useMounted';\nimport { useObserverSupport } from 'utils/useObserverSupport';\nimport { useScrollTo } from 'utils/useScrollTo';\nimport useUpdateEffect from 'utils/useUpdateEffect';\n\nconst TagContainer = styled.div`\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n &:not(:only-child) {\n margin-bottom: ${spacings.nudge * 6}px;\n }\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst Events = styled.ul<{ hasBg?: boolean }>`\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst FilterIcon = styled(Copy)`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: ${spacings.nudge / 2}px ${spacings.nudge}px 0 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst EventItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\n`;\n\nconst ListFooter = styled.div`\n margin-top: ${spacings.nudge * 6}px;\n text-align: center;\n\n @media ${mq.medium} {\n text-align: left;\n }\n`;\n\nconst ShowMore = styled.span<{ itemCount?: number }>`\n display: ${({ itemCount }) =>\n itemCount && itemCount > 2 ? 'block' : 'none'};\n`;\n\nexport const getEventFilterParams = (\n url: string,\n theme: DefaultTheme,\n tags: string[] = []\n) => {\n if (!url || !theme) return '';\n if (!isValidArray(tags, false)) return url;\n\n const filterName = theme.globals.sections.eventFilterName;\n if (!filterName) return url;\n\n try {\n const validUrl = new URL(url);\n const newParams = new URLSearchParams(validUrl.search);\n newParams.set(filterName, encodeURIComponent(tags.join(',')));\n\n return `${url}?${newParams.toString()}`;\n } catch (err) {\n return `${url}?${filterName}=${encodeURIComponent(tags.join(','))}`;\n }\n};\n\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Tags for events filtering */\n tags?: string[];\n\n /** Initial data. If not defined the component tries to collect this from URL params */\n initial?: {\n activeTags?: string[];\n visibleRows?: number;\n };\n\n /** Text for load more toggle. Only visible if browser doesn't support IntersectionObserver. */\n showMoreText?: string;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /**\n * Callback function to handle tag click outside of component\n * If no callback is defined filtering is controlled on client\n * */\n onTagClick?: (tag: TagProps, insideList?: boolean) => void;\n\n /** Function to inject custom tag node */\n customTag?: EventCustomTagFn;\n}> = ({\n tags,\n events,\n bgMode,\n anchorId,\n initial,\n showMoreText,\n onTagClick,\n customTag,\n}) => {\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.eventFilterName;\n\n const [selectedTags, setSelectedTags] = React.useState<string[]>(\n initial?.activeTags || []\n );\n const [itemsPerRow] = React.useState(1);\n const [visibleRows, setVisibleRows] = React.useState(\n initial?.visibleRows || 3\n );\n\n const targetRef = React.useRef<HTMLDivElement>(null);\n const observerSupported = useObserverSupport();\n const isMounted = useMounted();\n\n const eventCount = events?.length || 0;\n const setNewPos = useScrollTo(800);\n\n const getFilters = useCallback(() => {\n const tags: string[] = [];\n\n const filters = getUrlParams()[filterName];\n if (filters) {\n const tagsFilter = filters?.split(',');\n if (isValidArray(tagsFilter, false)) {\n tags.push(...tagsFilter);\n }\n }\n return tags;\n }, [filterName]);\n\n useEffect(() => {\n // if initial data is defined exit hook\n if (initial) return;\n\n // if no initial data provied try to find needed params in URL\n const paramTags = getFilters();\n\n if (isValidArray(paramTags, false)) {\n setSelectedTags(paramTags);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getFilters, initial]);\n\n useEffect(() => {\n if (!initial || isMounted) return;\n\n // set inital data into URL\n setUrlParam('rows', initial?.visibleRows || 3);\n\n if (isValidArray(initial?.activeTags, false)) {\n setUrlParam(filterName, initial?.activeTags?.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterName, initial, isMounted]);\n\n useUpdateEffect(() => {\n setUrlParam('rows', visibleRows);\n }, [visibleRows]);\n\n useUpdateEffect(() => {\n if (onTagClick || !isValidArray(selectedTags)) return;\n\n // set filters to URL params\n if (selectedTags.length > 0) {\n setUrlParam(filterName, selectedTags.join(','));\n } else {\n deleteUrlParam(filterName);\n }\n }, [selectedTags]);\n\n const handleTagClick = (tag: TagProps, enableToggling = true) => {\n setSelectedTags((prev) => {\n const prevCopy = [...prev];\n const itemIndex = tag.name ? prev.indexOf(tag.name) : -1;\n\n if (itemIndex === -1 && tag.name) {\n return [...prevCopy, tag.name];\n }\n if (enableToggling) {\n prevCopy.splice(itemIndex, 1);\n return prevCopy;\n }\n return prev;\n });\n setVisibleRows(3);\n };\n\n const filteredEvents = useMemo(() => {\n const tagFilterFn = (item: EventItem) => {\n if (!isValidArray(selectedTags, false)) return true;\n if (!item.tags) return false;\n\n let hasTags = false;\n for (let i = 0; i < item.tags.length; i++) {\n if (selectedTags.indexOf(item.tags[i].name || '') !== -1) {\n hasTags = true;\n break;\n }\n }\n return hasTags;\n };\n\n let filtered = isValidArray(events) ? [...events] : [];\n\n // adding filter\n filtered = filtered?.filter(tagFilterFn);\n\n return filtered;\n }, [events, selectedTags]);\n\n const visibleEvents = useMemo(() => {\n return (\n filteredEvents?.filter((_, i) => i < visibleRows * itemsPerRow) ||\n []\n );\n }, [filteredEvents, itemsPerRow, visibleRows]);\n\n useEffect(() => {\n // cancel if intersection observers are not supported\n if (!observerSupported) return;\n\n const element = targetRef.current;\n let observer: IntersectionObserver;\n\n if (element) {\n const options = {\n rootMargin: '0px 0px 100px 0px',\n threshold: 0,\n };\n\n observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry?.isIntersecting) {\n // on bottom of the wrapper load more events\n if (\n visibleRows <\n Math.ceil(filteredEvents.length / itemsPerRow)\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }\n }, options);\n observer.observe(element);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, [\n itemsPerRow,\n eventCount,\n visibleRows,\n observerSupported,\n filteredEvents.length,\n ]);\n\n const filteredTags = useMemo(() => {\n return tags?.filter((tag) => tag);\n }, [tags]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : 'transparent'\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {isValidArray(filteredTags, false) && (\n <TagContainer aria-label=\"Eventfilter\">\n <FilterIcon\n size=\"small\"\n type=\"copy\"\n isInverted={isInverted}\n >\n <Filter />\n <span>Filter</span>\n </FilterIcon>\n {filteredTags.map((tag, i) => (\n <TagWrapper key={i}>\n {customTag ? (\n customTag({\n key: i,\n name: tag,\n isInverted: isInverted,\n isActive:\n selectedTags.indexOf(tag) !== -1,\n clickHandler: (ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else onTagClick({ name: tag });\n },\n })\n ) : (\n <Tag\n isInverted={isInverted}\n onClick={(ev) => {\n ev?.preventDefault();\n if (!onTagClick) {\n handleTagClick({ name: tag });\n } else\n onTagClick(\n { name: tag },\n false\n );\n }}\n isActive={\n selectedTags.indexOf(tag) !== -1\n }\n >\n {tag}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n <Events hasBg={hasBg} aria-label=\"Weitere Events\">\n {visibleEvents.map((item, i) => {\n let timespan = '';\n\n if (item.date) {\n const formatter = new StatusFormatter(\n item.date.getTime(),\n '',\n globals.sections.eventDateFormat(item.date),\n globals.sections.eventTimeFormat(item.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n item.date,\n item.duration\n ),\n item.duration\n );\n }\n\n const text = concat([timespan, item.address], ' | ');\n\n return (\n <EventItem\n key={`${i}_event_${item.title}`}\n aria-label={`Event: ${item.title}. Datum: ${timespan}. Ort: ${item.address}.`}\n >\n <EventBlock\n hasBg={bgMode === 'full'}\n {...item}\n text={text}\n tags={item.tags?.map((tag) => ({\n name: tag.name,\n }))}\n isInverted={isInverted}\n onTagClick={(tag) => {\n // scroll back to top\n setNewPos(0);\n if (!onTagClick) {\n // if no callback is defined handle filtering on client side inside the component\n handleTagClick(\n { name: tag.name },\n false\n );\n } else {\n onTagClick(\n { name: tag.name },\n true\n );\n }\n }}\n customTag={customTag}\n />\n </EventItem>\n );\n })}\n </Events>\n <div ref={targetRef} />\n {!observerSupported && (\n <ListFooter>\n {events && events.length > 0 && (\n <Copy\n type=\"copy\"\n size=\"medium\"\n isInverted={isInverted}\n >\n <ShowMore\n itemCount={events.length}\n onClick={(ev) => {\n ev.preventDefault();\n if (\n visibleRows <\n Math.ceil(\n filteredEvents.length /\n itemsPerRow\n )\n ) {\n setVisibleRows((prev) => prev + 1);\n }\n }}\n >\n {visibleRows <\n filteredEvents.length / itemsPerRow && (\n <Pointer.View\n as=\"button\"\n isInverted={isInverted}\n ariaLabel=\"Mehr Events anzeigen\"\n >\n <Pointer.Label>\n {showMoreText ||\n 'mehr anzeigen'}\n </Pointer.Label>\n </Pointer.View>\n )}\n </ShowMore>\n </Copy>\n )}\n </ListFooter>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventOverviewComponent = EventOverview;\nexport default withLibTheme(EventOverview);\n","import Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport EventBlock, {\n EventCustomTagFn,\n EventProps,\n} from 'components/blocks/EventBlock';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { concat } from 'utils/concat';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport StatusFormatter from 'utils/statusFormatter';\nimport { getColors as color, spacings } from 'utils/styles';\nimport { getEventFilterParams } from './EventOverview';\n\nconst List = styled.ul<{ hasBg?: boolean }>`\n list-style: none;\n margin: 0;\n padding: 0;\n\n /* & > * + * {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:first-of-type {\n border-top: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n }\n\n & > *:last-of-type {\n border-bottom: 1px solid\n ${({ theme, hasBg }) =>\n hasBg ? color(theme).elementBg.light : color(theme).elementBg.medium};\n } */\n\n & > * + * {\n padding-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst ListItem = styled.li`\n /* padding: ${spacings.nudge * 3}px 0; */\n`;\n\nexport type EventItem = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'text'\n> & { address?: string };\n\nconst EventList: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n events?: EventItem[];\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\n\n /** Function to inject custom tag node */\n customTag?: EventCustomTagFn;\n}> = ({ anchorId, events, bgMode, customTag }) => {\n const { colors, globals, theme } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : bgMode\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <List hasBg={hasBg} aria-label=\"Veranstaltungen\">\n {events?.map((event, i) => {\n let timespan = '';\n\n if (event.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(\n event.date,\n event.duration\n ),\n event.duration\n );\n }\n\n const text = concat([timespan, event.address], ' | ');\n\n return (\n <ListItem key={i}>\n <EventBlock\n hasBg={bgMode === 'full'}\n {...event}\n tags={event.tags?.map((tag) => {\n let tagHref: string | undefined =\n undefined;\n\n if (tag.name && tag.link?.href) {\n tagHref = getEventFilterParams(\n tag.link.href,\n theme,\n [tag.name]\n );\n }\n\n return {\n name: tag.name,\n link: tag.link?.href\n ? {\n ...tag.link,\n href: tagHref,\n }\n : undefined,\n };\n })}\n isInverted={isInverted}\n text={text}\n customTag={customTag}\n />\n </ListItem>\n );\n })}\n </List>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventListComponent = EventList;\nexport default withLibTheme(EventList);\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { EventProps } from 'components/blocks/EventBlock';\nimport Image from 'components/blocks/Image';\nimport Tag from 'components/blocks/Tag';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { LinkProps } from 'components/typography/Link';\nimport { mq, spacings, getGlobals as global } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport StatusFormatter from 'utils/statusFormatter';\nimport InfoList from 'components/blocks/InfoList';\nimport { isValidArray } from 'utils/arrays';\n\nconst ImageContainer = styled.div<{ hAlign?: 'left' | 'center' | 'right' }>`\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: ${({ hAlign }) => {\n switch (hAlign) {\n case 'center':\n return 'center';\n\n case 'right':\n return 'flex-end';\n\n case 'left':\n default:\n return 'flex-start';\n }\n }};\n\n overflow: hidden;\n\n margin-bottom: ${spacings.spacer}px;\n`;\n\nconst ImgWrapper = styled.div`\n flex: 0 0 100%;\n margin-bottom: -6px;\n\n &:not(:first-child) {\n display: none;\n }\n\n @media ${mq.medium} {\n max-width: 50%;\n flex: 0 0 50%;\n\n &:not(:first-child) {\n display: inline-block;\n }\n\n & + & {\n margin-left: ${spacings.nudge}px;\n }\n }\n`;\n\nconst ImageBackground = styled.div<{ isInverted?: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: ${({ theme, isInverted }) =>\n isInverted\n ? global(theme).sections.imagePlaceholderBg.inverted\n : global(theme).sections.imagePlaceholderBg.default};\n\n filter: blur(10px);\n transform: scale(1.5);\n z-index: -1;\n`;\n\nconst StyledTextImage = styled(Image)`\n margin-top: ${spacings.nudge * 3}px;\n\n @media ${mq.medium} {\n display: none;\n }\n`;\n\nconst TagContainer = styled.div`\n max-width: 880px;\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n`;\n\nconst TagWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge}px;\n`;\n\nconst EventTitle = styled(Heading)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2; /* number of lines to show */\n line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n`;\n\nconst EventDateTime = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst EventAddress = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n ${EventDateTime} + & {\n margin-top: ${spacings.nudge}px;\n }\n\n @media ${mq.semilarge} {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst EventText = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nexport type DetailEventProps = Omit<\n EventProps,\n 'customTag' | 'isInverted' | 'onTagClick' | 'link'\n>;\n\nexport interface EventInfoGroup {\n title?: string;\n items: EventInfo[];\n}\n\nexport interface EventInfo {\n /** icon injection function */\n icon?: (isInverted?: boolean) => React.ReactNode;\n /** Event info text (richtText) */\n text?: string;\n}\n\nexport interface EventDetailCustomTagFnProps {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n isActive?: boolean;\n link?: LinkProps;\n}\nexport type EventDetailCustomTagFn = (\n props: EventDetailCustomTagFnProps\n) => React.ReactNode;\n\nconst EventDetail: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of event item settings */\n event?: DetailEventProps & { address?: string; abstract?: string };\n\n /** Additional event infos */\n infos?: EventInfoGroup[];\n\n /** Use image as blurred background for single images */\n useImageAsBg?: boolean;\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\n\n /** Aria-label for the info list */\n infoListAriaLabel?: string;\n\n /** Function to inject custom tag node */\n customTag?: EventDetailCustomTagFn;\n}> = ({\n anchorId,\n event,\n infos,\n useImageAsBg,\n bgMode,\n infoListAriaLabel,\n customTag,\n}) => {\n const { colors, globals } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const hasInfos = useMemo(() => {\n return isValidArray(\n infos?.filter((info) => isValidArray(info.items, false)),\n false\n );\n }, [infos]);\n\n let publishedAt = '';\n let timespan = '';\n\n if (event?.date) {\n const formatter = new StatusFormatter(\n event.date.getTime(),\n '',\n globals.sections.eventDateFormat(event.date),\n globals.sections.eventTimeFormat(event.date),\n globals.sections.eventLocaleKey\n );\n publishedAt = formatter.getFormattedDate();\n\n timespan = formatter.getFormattedTimespan(\n globals.sections.eventTimespanFormat(event.date, event.duration),\n event.duration\n );\n }\n\n const images = useMemo(() => event?.images?.slice(0, 2), [event?.images]);\n const secondaryImage = images?.[1];\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n renderAs=\"article\"\n ariaLabel={event?.title}\n >\n <Wrapper addWhitespace>\n {isValidArray(images, false) && (\n <ImageContainer hAlign={useImageAsBg ? 'center' : 'left'}>\n {images.map((img, i) => {\n if (!img.small) return null;\n return (\n <ImgWrapper key={i}>\n <Image\n {...img}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n alt={img.alt ?? ''}\n />\n </ImgWrapper>\n );\n })}\n <ImageBackground\n isInverted={isInverted}\n style={{\n backgroundImage:\n useImageAsBg && images.length < 2\n ? `url(${event?.images?.[0].small})`\n : undefined,\n }}\n />\n </ImageContainer>\n )}\n <Grid.Row\n gutter={spacings.nudge * 5}\n semilarge={{ gutter: spacings.spacer }}\n >\n <Grid.Col semilarge={{ span: hasInfos ? 5.7 / 8 : 1 }}>\n {event?.tags && (\n <TagContainer>\n {event.tags.map((tag, i) => (\n <TagWrapper key={'tag_' + i}>\n {customTag ? (\n customTag({\n key: `headtag-${i}`,\n name: tag.name || '',\n isInverted: isInverted,\n isActive: false,\n link: tag.link,\n })\n ) : (\n <Tag\n link={tag.link}\n isInverted={isInverted}\n aria-label={`Mehr zu ${tag.name}`}\n >\n {tag.name}\n </Tag>\n )}\n </TagWrapper>\n ))}\n </TagContainer>\n )}\n {event?.title && (\n <EventTitle\n renderAs=\"h1\"\n size=\"heading-2\"\n isInverted={isInverted}\n >\n {event.title}\n </EventTitle>\n )}\n {publishedAt && (\n <EventDateTime\n size=\"big\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n <time dateTime={event?.date?.toISOString()}>\n {publishedAt}\n {event?.duration && ` | ${timespan}`}\n </time>\n </EventDateTime>\n )}\n {event?.address && (\n <EventAddress\n size=\"big\"\n type=\"copy\"\n innerHTML={event.address}\n isInverted={isInverted}\n ariaLabel=\"Veranstaltungsort\"\n />\n )}\n {event?.abstract && (\n <EventText\n size=\"medium\"\n type=\"copy-b\"\n isInverted={isInverted}\n >\n {event.abstract}\n </EventText>\n )}\n {secondaryImage && (\n <StyledTextImage\n {...secondaryImage}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n ratios={{ small: { w: 4, h: 3 } }}\n />\n )}\n {event?.text && (\n <EventText\n size=\"medium\"\n isInverted={isInverted}\n innerHTML={event.text}\n />\n )}\n </Grid.Col>\n {hasInfos && (\n <Grid.Col semilarge={{ span: 2.3 / 8 }}>\n <InfoList\n isInverted={isInverted}\n items={infos}\n ariaLabel={infoListAriaLabel}\n />\n </Grid.Col>\n )}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const EventDetailComponent = EventDetail;\nexport default withLibTheme(EventDetail);\n"],"names":["TagContainer","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","nudge","TagWrapper","templateObject_2","Events","ul","_a","theme","hasBg","color","elementBg","light","medium","FilterIcon","Copy","templateObject_4","EventItem","li","ListFooter","templateObject_6","mq","ShowMore","span","templateObject_7","itemCount","EventOverview$1","withLibTheme","tags","events","bgMode","anchorId","initial","showMoreText","onTagClick","customTag","isInverted","_b","useLibTheme","colors","globals","filterName","sections","eventFilterName","_c","React","useState","activeTags","selectedTags","setSelectedTags","itemsPerRow","_d","visibleRows","setVisibleRows","targetRef","useRef","observerSupported","useObserverSupport","isMounted","useMounted","eventCount","length","setNewPos","useScrollTo","getFilters","useCallback","filters","getUrlParams","tagsFilter","split","isValidArray","push","apply","useEffect","paramTags","setUrlParam","join","deleteUrlParam","useUpdateEffect","handleTagClick","tag","enableToggling","prev","prevCopy","__spreadArray","itemIndex","name","indexOf","splice","filteredEvents","useMemo","filtered","filter","item","hasTags","i","visibleEvents","_","observer","element","current","IntersectionObserver","entries","entry","isIntersecting","Math","ceil","rootMargin","threshold","observe","disconnect","filteredTags","createElement","Section","addSeperation","bgColor","sectionBg","dark","mapToBgMode","Wrapper","addWhitespace","size","type","Filter","map","key","isActive","clickHandler","ev","preventDefault","Tag","onClick","timespan","date","StatusFormatter","getTime","eventDateFormat","eventTimeFormat","eventLocaleKey","getFormattedTimespan","eventTimespanFormat","duration","text","concat","address","title","EventBlock","__assign","ref","Pointer","View","as","ariaLabel","Label","List","ListItem","EventList$1","event","tagHref","undefined","link","href","url","validUrl","URL","newParams","URLSearchParams","search","set","encodeURIComponent","toString","err","getEventFilterParams","ImageContainer","hAlign","spacer","ImgWrapper","ImageBackground","templateObject_3","global","getGlobals","imagePlaceholderBg","inverted","default","StyledTextImage","Image","templateObject_5","EventTitle","Heading","semilarge","EventDateTime","templateObject_8","EventAddress","templateObject_9","EventText","templateObject_10","EventDetail$1","infos","useImageAsBg","infoListAriaLabel","hasInfos","info","items","publishedAt","formatter","getFormattedDate","images","slice","secondaryImage","renderAs","img","small","coverSpace","allowEdgeRadius","ratios","w","h","alt","style","backgroundImage","Grid","Row","gutter","Col","dateTime","toISOString","innerHTML","abstract","InfoList"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Filter-89286db9.js"),n=require("react"),t=require("styled-components"),r=require("./LibThemeProvider-69109901.js"),i=require("./Section-c9a16ccc.js"),a=require("./styles-13e5d9ac.js"),l=require("./Wrapper-bca9463e.js"),d=require("./Textfield-b3769184.js"),o=require("formik"),s=require("./Actions-c52a14e4.js"),u=require("./Button-1adf99b8.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-f387d848.js"),require("./arrays-c272ed59.js"),require("react-dom/server"),require("./Copy-2a9d4b5d.js"),require("./clamp-bd21d587.js"),require("./formFieldText-21f5f620.js"),require("./hexRgbConverter-91b28aea.js");var m,g,f,p=c(n),h=c(t),v=h.default.form.withConfig({displayName:"NewsletterForm__Form",componentId:"sc-1pmvhu2-0"})(m||(m=e.__makeTemplateObject(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media "," {\n flex-direction: row;\n }\n"],["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media "," {\n flex-direction: row;\n }\n"])),a.mq.semilarge),b=h.default.div.withConfig({displayName:"NewsletterForm__FieldContainer",componentId:"sc-1pmvhu2-1"})(g||(g=e.__makeTemplateObject(["\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ","px;\n }\n\n &:last-child {\n padding-left: ","px;\n }\n }\n"],["\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ","px;\n }\n\n &:last-child {\n padding-left: ","px;\n }\n }\n"])),3*a.spacings.nudge,3*a.spacings.nudge,a.mq.semilarge,3*a.spacings.nudge,3*a.spacings.nudge),x=h.default.div.withConfig({displayName:"NewsletterForm__ActionContainer",componentId:"sc-1pmvhu2-2"})(f||(f=e.__makeTemplateObject(["\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ","px;\n\n text-align: center;\n"],["\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ","px;\n\n text-align: center;\n"])),2*a.spacings.spacer),_=function(e){var n=e.key,t=e.field,r=e.isInverted,i=e.value,a=e.handleChange,l=e.handleBlur,o=e.error,s=e.isTouched;return p.default.createElement(d.Textfield,{key:n,label:"".concat(t.label||n).concat(t.isRequired?"*":""),placeholder:t.placeholder,name:"".concat(n),isInverted:r,value:i,onChange:a,onBlur:l,infoMessage:t.info,errorMessage:o&&s?o:void 0})},q=r.withLibTheme((function(t){var d=t.anchorId,c=t.bgMode,m=t.fields,g=t.customField,f=t.action,h=t.method,q=t.submitAction,w=t.onSubmit,j=r.useLibTheme().theme,y=n.useRef(null),C="inverted"===c,T={};for(var F in m)T[F]=m[F].initialValue||"";var k=o.useFormik({initialValues:e.__assign({},T),onSubmit:function(n){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return y.current?f&&h?(y.current.submit(),[3,4]):[3,1]:[2];case 1:return w?[4,w(n,y.current)]:[3,3];case 2:e.sent(),e.label=3;case 3:e.label=4;case 4:return S(!1),[2]}}))}))},validateOnBlur:!0,validateOnChange:!0,validate:function(n){return e.__awaiter(void 0,void 0,void 0,(function(){var t,r,i,a,l,d,o,s;return e.__generator(this,(function(e){switch(e.label){case 0:for(i in t={},r=[],m)r.push(i);a=0,e.label=1;case 1:return a<r.length?(l=r[a],d=m[l],o=d.inputType,m[l].isRequired&&!n[l]&&(t[l]=m[l].errorMsg||"Required field"),d.validate?[4,d.validate(l,n[l],d)]:[3,3]):[3,5];case 2:return(s=e.sent())&&(t[l]=s),[3,5];case 3:switch(o){case"email":n[l]&&!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(n[l])&&(t[l]=m[l].errorMsg||"Invalid Mail format");break;case"tel":n[l]&&/[A-Z]/gi.test(n[l])&&(t[l]=m[l].errorMsg||"Ungültige Telefonnummer");break;case"number":n[l]&&!/^[+]?\d+([.]\d+)?$/gm.test(n[l])&&(t[l]=m[l].errorMsg||"Zahlenformat ungültig")}e.label=4;case 4:return a++,[3,1];case 5:return[2,t]}}))}))}}),B=k.handleSubmit,M=k.handleChange,O=k.handleBlur,I=k.setFieldTouched,S=k.setSubmitting,E=k.validateField,A=k.submitForm,N=k.setValues,R=k.isSubmitting,Z=k.touched,L=k.values,V=k.errors,W=k.dirty,D=k.validateOnBlur,P=k.validateOnChange,$=n.useCallback((function(n,t,r){return e.__awaiter(void 0,void 0,void 0,(function(){var i;return e.__generator(this,(function(a){return[2,N(e.__assign(e.__assign({},L),(i={},i[n]=t,i)),r)]}))}))}),[N,L]);return p.default.createElement(i.Section,{addSeperation:!0,anchorId:d,bgColor:C?a.getColors(j).sectionBg.dark:c?a.getColors(j).sectionBg.medium:a.getColors(j).sectionBg.light,bgMode:i.mapToBgMode(c,!0)},p.default.createElement(l.Wrapper,{addWhitespace:!0},p.default.createElement(v,{ref:y,action:f,method:h,onSubmit:B},p.default.createElement(b,null,m&&Object.keys(m).map((function(e,n){var t={index:n,field:m[e],key:e,value:L[e],error:V[e],isTouched:Z[e]||!1,isInverted:C,setField:$,setTouched:I,validateField:E,handleChange:M,handleBlur:O,validateOnBlur:D,validateOnChange:P,theme:j};return g?g(t):_(t)})))),m&&p.default.createElement(x,null,p.default.createElement(s.Actions,{primary:q?q({isInverted:C,isDisabled:R||!W,handleSubmit:A}):p.default.createElement(u.Button.View,e.__assign({as:"button",onClick:A,isDisabled:R||!W},{type:"submit"}),p.default.createElement(u.Button.Label,null,"send"))}))))}));exports.NewsletterForm=q;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./ButtonLeft-7e1f216a.js"),n=require("react"),t=require("styled-components"),r=require("./LibThemeProvider-878ed68c.js"),i=require("./Section-89240e41.js"),a=require("./styles-271afb02.js"),l=require("./Wrapper-c755d727.js"),d=require("./Textfield-4ff93649.js"),o=require("formik"),s=require("./Actions-2590a7b9.js"),u=require("./Button-ddcdefd5.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-8bd71a50.js"),require("./arrays-c272ed59.js"),require("react-dom/server"),require("./Copy-1b9e33ba.js"),require("./clamp-bd21d587.js"),require("./formFieldText-fcf0452b.js"),require("./hexRgbConverter-91b28aea.js");var m,g,f,p=c(n),h=c(t),v=h.default.form.withConfig({displayName:"NewsletterForm__Form",componentId:"sc-1pmvhu2-0"})(m||(m=e.__makeTemplateObject(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media "," {\n flex-direction: row;\n }\n"],["\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media "," {\n flex-direction: row;\n }\n"])),a.mq.semilarge),b=h.default.div.withConfig({displayName:"NewsletterForm__FieldContainer",componentId:"sc-1pmvhu2-1"})(g||(g=e.__makeTemplateObject(["\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ","px;\n }\n\n &:last-child {\n padding-left: ","px;\n }\n }\n"],["\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-top: ","px;\n }\n\n @media "," {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ","px;\n }\n\n &:last-child {\n padding-left: ","px;\n }\n }\n"])),3*a.spacings.nudge,3*a.spacings.nudge,a.mq.semilarge,3*a.spacings.nudge,3*a.spacings.nudge),x=h.default.div.withConfig({displayName:"NewsletterForm__ActionContainer",componentId:"sc-1pmvhu2-2"})(f||(f=e.__makeTemplateObject(["\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ","px;\n\n text-align: center;\n"],["\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ","px;\n\n text-align: center;\n"])),2*a.spacings.spacer),_=function(e){var n=e.key,t=e.field,r=e.isInverted,i=e.value,a=e.handleChange,l=e.handleBlur,o=e.error,s=e.isTouched;return p.default.createElement(d.Textfield,{key:n,label:"".concat(t.label||n).concat(t.isRequired?"*":""),placeholder:t.placeholder,name:"".concat(n),isInverted:r,value:i,onChange:a,onBlur:l,infoMessage:t.info,errorMessage:o&&s?o:void 0})},q=r.withLibTheme((function(t){var d=t.anchorId,c=t.bgMode,m=t.fields,g=t.customField,f=t.action,h=t.method,q=t.submitAction,w=t.onSubmit,j=r.useLibTheme().theme,y=n.useRef(null),C="inverted"===c,T={};for(var B in m)T[B]=m[B].initialValue||"";var k=o.useFormik({initialValues:e.__assign({},T),onSubmit:function(n){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return y.current?f&&h?(y.current.submit(),[3,4]):[3,1]:[2];case 1:return w?[4,w(n,y.current)]:[3,3];case 2:e.sent(),e.label=3;case 3:e.label=4;case 4:return S(!1),[2]}}))}))},validateOnBlur:!0,validateOnChange:!0,validate:function(n){return e.__awaiter(void 0,void 0,void 0,(function(){var t,r,i,a,l,d,o,s;return e.__generator(this,(function(e){switch(e.label){case 0:for(i in t={},r=[],m)r.push(i);a=0,e.label=1;case 1:return a<r.length?(l=r[a],d=m[l],o=d.inputType,m[l].isRequired&&!n[l]&&(t[l]=m[l].errorMsg||"Required field"),d.validate?[4,d.validate(l,n[l],d)]:[3,3]):[3,5];case 2:return(s=e.sent())&&(t[l]=s),[3,5];case 3:switch(o){case"email":n[l]&&!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(n[l])&&(t[l]=m[l].errorMsg||"Invalid Mail format");break;case"tel":n[l]&&/[A-Z]/gi.test(n[l])&&(t[l]=m[l].errorMsg||"Ungültige Telefonnummer");break;case"number":n[l]&&!/^[+]?\d+([.]\d+)?$/gm.test(n[l])&&(t[l]=m[l].errorMsg||"Zahlenformat ungültig")}e.label=4;case 4:return a++,[3,1];case 5:return[2,t]}}))}))}}),F=k.handleSubmit,M=k.handleChange,O=k.handleBlur,I=k.setFieldTouched,S=k.setSubmitting,E=k.validateField,A=k.submitForm,N=k.setValues,L=k.isSubmitting,R=k.touched,Z=k.values,V=k.errors,W=k.dirty,D=k.validateOnBlur,P=k.validateOnChange,$=n.useCallback((function(n,t,r){return e.__awaiter(void 0,void 0,void 0,(function(){var i;return e.__generator(this,(function(a){return[2,N(e.__assign(e.__assign({},Z),(i={},i[n]=t,i)),r)]}))}))}),[N,Z]);return p.default.createElement(i.Section,{addSeperation:!0,anchorId:d,bgColor:C?a.getColors(j).sectionBg.dark:c?a.getColors(j).sectionBg.medium:a.getColors(j).sectionBg.light,bgMode:i.mapToBgMode(c,!0)},p.default.createElement(l.Wrapper,{addWhitespace:!0},p.default.createElement(v,{ref:y,action:f,method:h,onSubmit:F},p.default.createElement(b,null,m&&Object.keys(m).map((function(e,n){var t={index:n,field:m[e],key:e,value:Z[e],error:V[e],isTouched:R[e]||!1,isInverted:C,setField:$,setTouched:I,validateField:E,handleChange:M,handleBlur:O,validateOnBlur:D,validateOnChange:P,theme:j};return g?g(t):_(t)})))),m&&p.default.createElement(x,null,p.default.createElement(s.Actions,{primary:q?q({isInverted:C,isDisabled:L||!W,handleSubmit:A}):p.default.createElement(u.Button.View,e.__assign({as:"button",onClick:A,isDisabled:L||!W},{type:"submit"}),p.default.createElement(u.Button.Label,null,"send"))}))))}));exports.NewsletterForm=q;
2
2
  //# sourceMappingURL=sections.forms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sections.forms.js","sources":["../src/components/sections/NewsletterForm.tsx"],"sourcesContent":["import React, { FC, useCallback, useRef } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport Wrapper from 'components/base/Wrapper';\nimport Textfield from 'components/fields/Textfield';\nimport { FormikErrors, useFormik } from 'formik';\nimport Actions from 'components/blocks/Actions';\nimport Button from 'components/buttons/Button';\n\nconst Form = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media ${mq.semilarge} {\n flex-direction: row;\n }\n`;\n\nconst FieldContainer = styled.div`\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ${spacings.nudge * 3}px;\n }\n\n &:last-child {\n padding-left: ${spacings.nudge * 3}px;\n }\n }\n`;\n\nconst ActionContainer = styled.div`\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ${spacings.spacer * 2}px;\n\n text-align: center;\n`;\n\nexport interface FieldGenerationProps {\n field: NewsletterField;\n value: string;\n error: string;\n info?: string;\n isTouched: boolean;\n key: string;\n isInverted: boolean;\n theme: DefaultTheme;\n setField: (\n field: string,\n value: any,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n validateField: (\n name: string\n ) => Promise<string | undefined> | Promise<void>;\n setTouched: (\n field: string,\n touched?: boolean | undefined,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n handleChange: {\n (e: React.ChangeEvent<any>): void;\n <T_1 = string | React.ChangeEvent<any>>(\n field: T_1\n ): T_1 extends React.ChangeEvent<any>\n ? void\n : (e: string | React.ChangeEvent<any>) => void;\n };\n handleBlur: {\n (e: React.FocusEvent<any>): void;\n <T = any>(fieldOrEvent: T): T extends string ? (e: any) => void : void;\n };\n validateOnBlur?: boolean;\n validateOnChange?: boolean;\n}\n\nexport interface NewsletterFormStructure {\n [key: string]: NewsletterField;\n}\n\nexport interface FormData {\n [key: string]: string;\n}\n\nexport interface NewsletterField {\n inputType?: 'text' | 'number' | 'email' | 'password' | 'tel';\n isRequired?: boolean;\n label?: string;\n errorMsg?: string;\n initialValue?: string;\n placeholder?: string;\n info?: string;\n validate?: (\n key: string,\n value: string,\n config: NewsletterField\n ) => Promise<string>;\n}\n\nconst NewsletterForm: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Structure to define fields of newsletter form */\n fields?: NewsletterFormStructure;\n\n /** Function to inject custom field definition */\n customField?: (props: FieldGenerationProps) => React.ReactNode;\n\n /** HTML form element action */\n action?: string;\n\n /** HTML form element method */\n method?: string;\n\n /** Form submission callback */\n onSubmit?: (values: FormData, element: HTMLFormElement) => Promise<void>;\n\n /** Function to inject custom submit button */\n submitAction?: (props: {\n isInverted?: boolean;\n handleSubmit?: () => Promise<any>;\n isDisabled?: boolean;\n }) => React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgMode,\n fields,\n customField,\n action,\n method,\n submitAction,\n onSubmit,\n}) => {\n const { theme } = useLibTheme();\n const formRef = useRef<HTMLFormElement>(null);\n const isInverted = bgMode === 'inverted';\n\n // generate initial data and setup yup validation definition\n const initialData: FormData = {};\n\n for (const key in fields) {\n initialData[key] = fields[key].initialValue || '';\n }\n\n const validation = async (values: FormData) => {\n const errors: Partial<FormData> = {};\n\n // search for errors and set them\n for (const key in fields) {\n const config = fields[key];\n const inputType = config.inputType;\n\n // default\n if (fields[key].isRequired && !values[key]) {\n errors[key] = fields[key].errorMsg || 'Required field';\n }\n\n // custom validation\n if (config.validate) {\n const error = await config.validate(\n key,\n values[key] as string,\n config\n );\n if (error) errors[key] = error;\n break;\n }\n\n switch (inputType) {\n case 'email':\n if (\n values[key] &&\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\n values[key] as string\n )\n ) {\n errors[key] =\n fields[key].errorMsg || 'Invalid Mail format';\n }\n break;\n case 'tel':\n if (values[key] && /[A-Z]/gi.test(values[key] as string)) {\n errors[key] =\n fields[key].errorMsg || 'Ungültige Telefonnummer';\n }\n break;\n case 'number':\n if (\n values[key] &&\n !/^[+]?\\d+([.]\\d+)?$/gm.test(values[key] as string)\n ) {\n errors[key] =\n fields[key].errorMsg || 'Zahlenformat ungültig';\n }\n break;\n }\n }\n\n return errors;\n };\n\n // formik hook\n const {\n handleSubmit,\n handleChange,\n handleBlur,\n setFieldTouched,\n setSubmitting,\n validateField,\n submitForm,\n setValues,\n isSubmitting,\n touched,\n values,\n errors,\n dirty,\n validateOnBlur,\n validateOnChange,\n } = useFormik<FormData>({\n initialValues: {\n ...initialData,\n } as FormData,\n\n onSubmit: async (values) => {\n if (!formRef.current) return;\n\n if (action && method) {\n formRef.current.submit();\n } else {\n onSubmit && (await onSubmit(values, formRef.current));\n }\n\n setSubmitting(false);\n },\n validateOnBlur: true,\n validateOnChange: true,\n validate: validation,\n });\n\n // rewrite setFieldValue to prevent loadash feature of Formik: https://github.com/jaredpalmer/formik/issues/2262\n const setField = useCallback(\n async (key: string, value: any, shouldValidate?: boolean) => {\n return setValues({ ...values, [key]: value }, shouldValidate);\n },\n [setValues, values]\n );\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? color(theme).sectionBg.dark\n : bgMode\n ? color(theme).sectionBg.medium\n : color(theme).sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <Form\n ref={formRef}\n action={action}\n method={method}\n onSubmit={handleSubmit}\n >\n <FieldContainer>\n {fields &&\n Object.keys(fields).map((key, i) => {\n const generationProps = {\n index: i,\n field: fields[key],\n key: key,\n value: values[key],\n error: errors[key],\n isTouched: touched[key] || false,\n isInverted: isInverted,\n setField: setField,\n setTouched: setFieldTouched,\n validateField: validateField,\n handleChange: handleChange,\n handleBlur: handleBlur,\n validateOnBlur,\n validateOnChange,\n theme: theme,\n } as FieldGenerationProps;\n\n return customField\n ? customField(generationProps)\n : generateTextField(generationProps);\n })}\n </FieldContainer>\n </Form>\n {fields && (\n <ActionContainer>\n <Actions\n primary={\n submitAction ? (\n submitAction({\n isInverted,\n isDisabled: isSubmitting || !dirty,\n handleSubmit: submitForm,\n })\n ) : (\n <Button.View\n as=\"button\"\n onClick={submitForm}\n isDisabled={isSubmitting || !dirty}\n {...{\n type: 'submit',\n }}\n >\n <Button.Label>send</Button.Label>\n </Button.View>\n )\n }\n />\n </ActionContainer>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nconst generateTextField = ({\n key,\n field,\n isInverted,\n value,\n handleChange,\n handleBlur,\n error,\n isTouched,\n}: FieldGenerationProps) => (\n <Textfield\n key={key}\n label={`${field.label || key}${field.isRequired ? '*' : ''}`}\n placeholder={field.placeholder}\n name={`${key}`}\n isInverted={isInverted}\n value={value as string}\n onChange={handleChange}\n onBlur={handleBlur}\n infoMessage={field.info}\n errorMessage={error && isTouched ? error : undefined}\n />\n);\n\nexport const NewsletterFormComponent = NewsletterForm;\nexport default withLibTheme(NewsletterForm);\n"],"names":["Form","styled","form","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","mq","semilarge","FieldContainer","div","templateObject_2","spacings","nudge","ActionContainer","spacer","generateTextField","_a","key","field","isInverted","value","handleChange","handleBlur","error","isTouched","React","createElement","Textfield","label","concat","isRequired","placeholder","name","onChange","onBlur","infoMessage","info","errorMessage","undefined","NewsletterForm$1","withLibTheme","anchorId","bgMode","fields","customField","action","method","submitAction","onSubmit","theme","useLibTheme","formRef","useRef","initialData","initialValue","_b","useFormik","initialValues","__assign","values","__awaiter","current","submit","sent","setSubmitting","validateOnBlur","validateOnChange","validate","errors","config","inputType","errorMsg","_c","test","handleSubmit","setFieldTouched","validateField","submitForm","setValues","isSubmitting","touched","dirty","setField","useCallback","shouldValidate","Section","addSeperation","bgColor","color","getColors","sectionBg","dark","medium","light","mapToBgMode","Wrapper","addWhitespace","ref","Object","keys","map","i","generationProps","index","setTouched","Actions","primary","isDisabled","Button","View","as","onClick","type","Label"],"mappings":"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"}
1
+ {"version":3,"file":"sections.forms.js","sources":["../src/components/sections/NewsletterForm.tsx"],"sourcesContent":["import React, { FC, useCallback, useRef } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\n\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport { getColors as color, mq, spacings } from 'utils/styles';\nimport Wrapper from 'components/base/Wrapper';\nimport Textfield from 'components/fields/Textfield';\nimport { FormikErrors, useFormik } from 'formik';\nimport Actions from 'components/blocks/Actions';\nimport Button from 'components/buttons/Button';\n\nconst Form = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media ${mq.semilarge} {\n flex-direction: row;\n }\n`;\n\nconst FieldContainer = styled.div`\n flex: 1 1 0;\n text-align: center;\n\n & + & {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n max-width: 590px;\n\n & + & {\n margin-top: 0;\n }\n\n &:first-child {\n padding-right: ${spacings.nudge * 3}px;\n }\n\n &:last-child {\n padding-left: ${spacings.nudge * 3}px;\n }\n }\n`;\n\nconst ActionContainer = styled.div`\n width: 100%;\n max-width: 590px;\n\n margin: 0 auto;\n margin-top: ${spacings.spacer * 2}px;\n\n text-align: center;\n`;\n\nexport interface FieldGenerationProps {\n field: NewsletterField;\n value: string;\n error: string;\n info?: string;\n isTouched: boolean;\n key: string;\n isInverted: boolean;\n theme: DefaultTheme;\n setField: (\n field: string,\n value: any,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n validateField: (\n name: string\n ) => Promise<string | undefined> | Promise<void>;\n setTouched: (\n field: string,\n touched?: boolean | undefined,\n shouldValidate?: boolean | undefined\n ) => Promise<void> | Promise<FormikErrors<FormData>>;\n handleChange: {\n (e: React.ChangeEvent<any>): void;\n <T_1 = string | React.ChangeEvent<any>>(\n field: T_1\n ): T_1 extends React.ChangeEvent<any>\n ? void\n : (e: string | React.ChangeEvent<any>) => void;\n };\n handleBlur: {\n (e: React.FocusEvent<any>): void;\n <T = any>(fieldOrEvent: T): T extends string ? (e: any) => void : void;\n };\n validateOnBlur?: boolean;\n validateOnChange?: boolean;\n}\n\nexport interface NewsletterFormStructure {\n [key: string]: NewsletterField;\n}\n\nexport interface FormData {\n [key: string]: string;\n}\n\nexport interface NewsletterField {\n inputType?: 'text' | 'number' | 'email' | 'password' | 'tel';\n isRequired?: boolean;\n label?: string;\n errorMsg?: string;\n initialValue?: string;\n placeholder?: string;\n info?: string;\n validate?: (\n key: string,\n value: string,\n config: NewsletterField\n ) => Promise<string>;\n}\n\nconst NewsletterForm: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Structure to define fields of newsletter form */\n fields?: NewsletterFormStructure;\n\n /** Function to inject custom field definition */\n customField?: (props: FieldGenerationProps) => React.ReactNode;\n\n /** HTML form element action */\n action?: string;\n\n /** HTML form element method */\n method?: string;\n\n /** Form submission callback */\n onSubmit?: (values: FormData, element: HTMLFormElement) => Promise<void>;\n\n /** Function to inject custom submit button */\n submitAction?: (props: {\n isInverted?: boolean;\n handleSubmit?: () => Promise<any>;\n isDisabled?: boolean;\n }) => React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgMode,\n fields,\n customField,\n action,\n method,\n submitAction,\n onSubmit,\n}) => {\n const { theme } = useLibTheme();\n const formRef = useRef<HTMLFormElement>(null);\n const isInverted = bgMode === 'inverted';\n\n // generate initial data and setup yup validation definition\n const initialData: FormData = {};\n\n for (const key in fields) {\n initialData[key] = fields[key].initialValue || '';\n }\n\n const validation = async (values: FormData) => {\n const errors: Partial<FormData> = {};\n\n // search for errors and set them\n for (const key in fields) {\n const config = fields[key];\n const inputType = config.inputType;\n\n // default\n if (fields[key].isRequired && !values[key]) {\n errors[key] = fields[key].errorMsg || 'Required field';\n }\n\n // custom validation\n if (config.validate) {\n const error = await config.validate(\n key,\n values[key] as string,\n config\n );\n if (error) errors[key] = error;\n break;\n }\n\n switch (inputType) {\n case 'email':\n if (\n values[key] &&\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\n values[key] as string\n )\n ) {\n errors[key] =\n fields[key].errorMsg || 'Invalid Mail format';\n }\n break;\n case 'tel':\n if (values[key] && /[A-Z]/gi.test(values[key] as string)) {\n errors[key] =\n fields[key].errorMsg || 'Ungültige Telefonnummer';\n }\n break;\n case 'number':\n if (\n values[key] &&\n !/^[+]?\\d+([.]\\d+)?$/gm.test(values[key] as string)\n ) {\n errors[key] =\n fields[key].errorMsg || 'Zahlenformat ungültig';\n }\n break;\n }\n }\n\n return errors;\n };\n\n // formik hook\n const {\n handleSubmit,\n handleChange,\n handleBlur,\n setFieldTouched,\n setSubmitting,\n validateField,\n submitForm,\n setValues,\n isSubmitting,\n touched,\n values,\n errors,\n dirty,\n validateOnBlur,\n validateOnChange,\n } = useFormik<FormData>({\n initialValues: {\n ...initialData,\n } as FormData,\n\n onSubmit: async (values) => {\n if (!formRef.current) return;\n\n if (action && method) {\n formRef.current.submit();\n } else {\n onSubmit && (await onSubmit(values, formRef.current));\n }\n\n setSubmitting(false);\n },\n validateOnBlur: true,\n validateOnChange: true,\n validate: validation,\n });\n\n // rewrite setFieldValue to prevent loadash feature of Formik: https://github.com/jaredpalmer/formik/issues/2262\n const setField = useCallback(\n async (key: string, value: any, shouldValidate?: boolean) => {\n return setValues({ ...values, [key]: value }, shouldValidate);\n },\n [setValues, values]\n );\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? color(theme).sectionBg.dark\n : bgMode\n ? color(theme).sectionBg.medium\n : color(theme).sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n <Form\n ref={formRef}\n action={action}\n method={method}\n onSubmit={handleSubmit}\n >\n <FieldContainer>\n {fields &&\n Object.keys(fields).map((key, i) => {\n const generationProps = {\n index: i,\n field: fields[key],\n key: key,\n value: values[key],\n error: errors[key],\n isTouched: touched[key] || false,\n isInverted: isInverted,\n setField: setField,\n setTouched: setFieldTouched,\n validateField: validateField,\n handleChange: handleChange,\n handleBlur: handleBlur,\n validateOnBlur,\n validateOnChange,\n theme: theme,\n } as FieldGenerationProps;\n\n return customField\n ? customField(generationProps)\n : generateTextField(generationProps);\n })}\n </FieldContainer>\n </Form>\n {fields && (\n <ActionContainer>\n <Actions\n primary={\n submitAction ? (\n submitAction({\n isInverted,\n isDisabled: isSubmitting || !dirty,\n handleSubmit: submitForm,\n })\n ) : (\n <Button.View\n as=\"button\"\n onClick={submitForm}\n isDisabled={isSubmitting || !dirty}\n {...{\n type: 'submit',\n }}\n >\n <Button.Label>send</Button.Label>\n </Button.View>\n )\n }\n />\n </ActionContainer>\n )}\n </Wrapper>\n </Section>\n );\n};\n\nconst generateTextField = ({\n key,\n field,\n isInverted,\n value,\n handleChange,\n handleBlur,\n error,\n isTouched,\n}: FieldGenerationProps) => (\n <Textfield\n key={key}\n label={`${field.label || key}${field.isRequired ? '*' : ''}`}\n placeholder={field.placeholder}\n name={`${key}`}\n isInverted={isInverted}\n value={value as string}\n onChange={handleChange}\n onBlur={handleBlur}\n infoMessage={field.info}\n errorMessage={error && isTouched ? error : undefined}\n />\n);\n\nexport const NewsletterFormComponent = NewsletterForm;\nexport default withLibTheme(NewsletterForm);\n"],"names":["Form","styled","form","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","mq","semilarge","FieldContainer","div","templateObject_2","spacings","nudge","ActionContainer","spacer","generateTextField","_a","key","field","isInverted","value","handleChange","handleBlur","error","isTouched","React","createElement","Textfield","label","concat","isRequired","placeholder","name","onChange","onBlur","infoMessage","info","errorMessage","undefined","NewsletterForm$1","withLibTheme","anchorId","bgMode","fields","customField","action","method","submitAction","onSubmit","theme","useLibTheme","formRef","useRef","initialData","initialValue","_b","useFormik","initialValues","__assign","values","__awaiter","current","submit","sent","setSubmitting","validateOnBlur","validateOnChange","validate","errors","config","inputType","errorMsg","_c","test","handleSubmit","setFieldTouched","validateField","submitForm","setValues","isSubmitting","touched","dirty","setField","useCallback","shouldValidate","Section","addSeperation","bgColor","color","getColors","sectionBg","dark","medium","light","mapToBgMode","Wrapper","addWhitespace","ref","Object","keys","map","i","generationProps","index","setTouched","Actions","primary","isDisabled","Button","View","as","onClick","type","Label"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("./Filter-89286db9.js"),e=require("react"),t=require("styled-components"),i=require("./Section-c9a16ccc.js"),a=require("./Wrapper-bca9463e.js"),r=require("./Copy-2a9d4b5d.js"),o=require("./Link-8951180c.js"),l=require("./arrays-c272ed59.js"),s=require("./styles-13e5d9ac.js"),d=require("./LibThemeProvider-69109901.js"),c=require("./useEqualSheetHeight-f1c10ec5.js"),p=require("./FilterField-d204feb1.js"),u=require("./useUpdateEffect-4d233e2c.js"),m=require("./escape-1ef8dd83.js"),f=require("./urlParams-7525f638.js"),g=require("./useMounted-0bba9869.js"),h=require("./Actions-c52a14e4.js"),b=require("./concat-f387d848.js"),x=require("./structuredData-0b1278a9.js");function y(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}require("./clamp-bd21d587.js"),require("react-dom/server"),require("./useMediaQuery-619d7203.js"),require("./useLazyInput-911b8eda.js"),require("react-schemaorg");var v,_,w,j,I,C,E,L=y(e),T=y(t),k=T.default.div.withConfig({displayName:"JobCard__View",componentId:"sc-rrpaxu-0"})(_||(_=n.__makeTemplateObject(["\n position: relative;\n color: ",";\n background: ",";\n\n padding: ","px;\n\n border-radius: ",";\n\n ","\n\n @media "," {\n min-height: 440px;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n }\n"],["\n position: relative;\n color: ",";\n background: ",";\n\n padding: ","px;\n\n border-radius: ",";\n\n ","\n\n @media "," {\n min-height: 440px;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n }\n"])),(function(n){var e=n.theme;return s.getColors(e).primary.default}),(function(n){var e=n.theme,t=n.hasBg;return n.isInverted?s.getColors(e).elementBg.medium:t?s.getColors(e).elementBg.light:s.getColors(e).elementBg.medium}),s.spacings.spacer,(function(n){var e=n.theme;return s.getGlobals(e).sections.edgeRadius}),(function(e){var i=e.clickable,a=e.isInverted;return i&&t.css(v||(v=n.__makeTemplateObject(["\n transition: all 0.2s ease-in-out;\n cursor: pointer;\n\n &:hover {\n box-shadow: 0px 2px 6px\n ",";\n\n color: ",";\n }\n\n &:focus {\n box-shadow: 0px 2px 6px\n ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n\n &:active {\n box-shadow: 0px 2px 6px\n ",";\n }\n "],["\n transition: all 0.2s ease-in-out;\n cursor: pointer;\n\n &:hover {\n box-shadow: 0px 2px 6px\n ",";\n\n color: ",";\n }\n\n &:focus {\n box-shadow: 0px 2px 6px\n ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n\n &:active {\n box-shadow: 0px 2px 6px\n ",";\n }\n "])),a?"rgba(255, 255, 255, 0.7)":"rgba(0, 0, 0, 0.35)",(function(n){var e=n.theme;return s.getColors(e).primary.hover}),a?"rgba(255, 255, 255, 0.7)":"rgba(0, 0, 0, 0.3)",a?"rgba(255, 255, 255, 0.7)":"rgba(0, 0, 0, 0.3)")}),s.mq.medium),q=T.default(r.Copy).withConfig({displayName:"JobCard__JobInfos",componentId:"sc-rrpaxu-1"})(w||(w=n.__makeTemplateObject(["\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n color: ",";\n\n ",":hover & {\n color: ",";\n }\n"],["\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n color: ",";\n\n ",":hover & {\n color: ",";\n }\n"])),4*s.spacings.nudge,(function(n){var e=n.theme;return s.getColors(e).primary.default}),k,(function(n){var e=n.theme;return s.getColors(e).primary.hover})),A=T.default.div.withConfig({displayName:"JobCard__Info",componentId:"sc-rrpaxu-2"})(j||(j=n.__makeTemplateObject(["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"])),3*s.spacings.nudge,2*s.spacings.nudge),J=T.default.div.withConfig({displayName:"JobCard__Icon",componentId:"sc-rrpaxu-3"})(I||(I=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"],["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"]))),N=T.default.div.withConfig({displayName:"JobCard__MainLabel",componentId:"sc-rrpaxu-4"})(C||(C=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),O=T.default(o.Link).withConfig({displayName:"JobCard__ViewLink",componentId:"sc-rrpaxu-5"})(E||(E=n.__makeTemplateObject(["\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n && {\n margin: 0;\n }\n"],["\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n && {\n margin: 0;\n }\n"]))),M=L.default.forwardRef((function(e,t){var i,a,o=e.isInverted,s=e.hasBackground,d=e.jobTitle,c=e.employmentTypes,p=e.locations,u=e.totalLocations,m=e.allLocationsLabel,f=e.modelIcon,g=e.locationIcon,h=e.className,b=e.link,x=l.isValidArray(c,!1),y=null==p?void 0:p.filter((function(n){return n.name})),v=l.isValidArray(y,!1),_="";return v&&(_=void 0!==u&&y.length>=u&&m?m:null===(i=y.map((function(n){return n.name})))||void 0===i?void 0:i.join(", ")),L.default.createElement(k,{ref:t,isInverted:o,hasBg:s,className:h,clickable:!!b},L.default.createElement(r.Heading,{textColor:"inherit",size:"heading-2","data-sheet":"title",innerHTML:d,hyphens:!0}),(x||v)&&L.default.createElement(q,{type:"copy-b","data-sheet":"info"},x&&L.default.createElement(A,null,L.default.createElement(J,null,f?f():L.default.createElement(n.ClockFilled,null)),L.default.createElement(N,null,null===(a=null==c?void 0:c.filter((function(n){return n.name})).map((function(n){return n.name})))||void 0===a?void 0:a.join(", "))),v&&L.default.createElement(A,null,L.default.createElement(J,null,g?g():L.default.createElement(n.LocationPin,null)),L.default.createElement(N,null,_))),b&&L.default.createElement(O,n.__assign({},b,{ariaLabel:(null==b?void 0:b.href)?d:void 0})))}));M.displayName="JobCard";var B,V,P,S,F,z,H,R,U,W,D=T.default.ul.withConfig({displayName:"JobList__List",componentId:"sc-1b9tzu5-0"})(B||(B=n.__makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n\n margin-top: -","px;\n margin-left: -","px;\n\n @media "," {\n margin-top: -","px;\n margin-left: -","px;\n }\n"],["\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n\n margin-top: -","px;\n margin-left: -","px;\n\n @media "," {\n margin-top: -","px;\n margin-left: -","px;\n }\n"])),2*s.spacings.nudge,2*s.spacings.nudge,s.mq.medium,s.spacings.spacer,s.spacings.spacer),Q=T.default.li.withConfig({displayName:"JobList__Item",componentId:"sc-1b9tzu5-1"})(V||(V=n.__makeTemplateObject(["\n flex: 0 1 100%;\n max-width: 100%;\n margin: 0;\n\n padding-top: ","px;\n padding-left: ","px;\n\n @media "," {\n flex: 0 1 50%;\n max-width: 50%;\n\n padding-top: ","px;\n padding-left: ","px;\n }\n\n @media "," {\n flex: 0 1 33.33%;\n max-width: 33.33%;\n }\n"],["\n flex: 0 1 100%;\n max-width: 100%;\n margin: 0;\n\n padding-top: ","px;\n padding-left: ","px;\n\n @media "," {\n flex: 0 1 50%;\n max-width: 50%;\n\n padding-top: ","px;\n padding-left: ","px;\n }\n\n @media "," {\n flex: 0 1 33.33%;\n max-width: 33.33%;\n }\n"])),2*s.spacings.nudge,2*s.spacings.nudge,s.mq.medium,s.spacings.spacer,s.spacings.spacer,s.mq.large),G=T.default(p.FilterField).withConfig({displayName:"JobList__Filter",componentId:"sc-1b9tzu5-2"})(P||(P=n.__makeTemplateObject(["\n margin-top: ","px;\n margin-bottom: ","px;\n\n min-width: 50%;\n"],["\n margin-top: ","px;\n margin-bottom: ","px;\n\n min-width: 50%;\n"])),s.spacings.nudge,5*s.spacings.nudge),K=function(n,e){return e?null==e?void 0:e.filter((function(e){return!n.find((function(n){return n.item.id===e.id}))})):[]},X=function(n,e){var t=[];if(!l.isValidArray(null==e?void 0:e.filter((function(n){return void 0!==n.jobTitle})),!1))return t;var i=null==e?void 0:e.filter(function(n){return function(e){return new RegExp(n).test(e.jobTitle)}}(n));l.isValidArray(i,!1)&&t.push.apply(t,i.map((function(n){return{item:n,priority:1}})));var a=K(t,null==e?void 0:e.filter(function(n){return function(e){var t=n.toLowerCase().replace(/\s/g,""),i=e.jobTitle.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(n)));l.isValidArray(a,!1)&&t.push.apply(t,a.map((function(n){return{item:n,priority:2}})));var r=K(t,null==e?void 0:e.filter(function(n){return function(e){if(!l.isValidArray(e.locations,!1))return!1;var t=n.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!e.locations.find((function(n){var e,t=null===(e=n.name)||void 0===e?void 0:e.toLowerCase().replace(/\s/g,"");return i.test(t||"")}))}}(n)));l.isValidArray(r,!1)&&t.push.apply(t,r.map((function(n){return{item:n,priority:3}})));var o=K(t,null==e?void 0:e.filter(function(n){return function(e){if(!l.isValidArray(null==e?void 0:e.employmentTypes,!1))return!1;var t=n.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!e.employmentTypes.find((function(n){if(!n.name)return!1;var e=n.name.toLowerCase().replace(/\s/g,"");return i.test(e)}))}}(n)));return l.isValidArray(o,!1)&&t.push.apply(t,o.map((function(n){return{item:n,priority:4}}))),t},Y=d.withLibTheme((function(t){var r=t.anchorId,o=t.jobs,l=t.bgMode,s=t.modelIcon,p=t.locationIcon,h=t.totalJobLocations,b=t.allJobLocationsLabel,x=t.initialFilterQuery,y=t.filterPlaceholder,v=t.hasFilter,_=t.filterSubmitIcon,w=t.filterClearIcon,j=d.useLibTheme(),I=j.colors,C=j.globals.sections.jobFilterName,E="inverted"===l,T="full"===l,k=(null==o?void 0:o.length)||0,q=c.useEqualSheetHeight({listLength:k,identifiers:['[data-sheet="title"]','[data-sheet="info"]'],responsive:{small:1,semilarge:2,large:3}}).sheetRefs,A=L.default.useState(x||""),J=A[0],N=A[1],O=g.useMounted(),B=L.default.useMemo((function(){for(var e=void 0!==J?J.split(" ").map((function(n){return n.trim()})):[""],t=[],i=0,a=e;i<a.length;i++)for(var r=a[i],l=function(n){var e=t.findIndex((function(e){return e.match.item.id===n.item.id}));-1!==e?t[e].intersections+=1:t.push({match:n,intersections:1})},s=0,d=X(m.escapeRegExp(r),o||[]);s<d.length;s++){l(d[s])}return t.filter((function(n){return n.intersections>=e.length})).map((function(e){return n.__assign({},e.match)}))}),[J,o]),V=e.useCallback((function(){return f.getUrlParams()[C]}),[C]);return e.useEffect((function(){var n=V();null!=n&&"string"==typeof n&&N(n)}),[V]),e.useEffect((function(){O||(J?f.setUrlParam(C,J):f.deleteUrlParam(C))}),[C,J,O]),u.useUpdateEffect((function(){J?f.setUrlParam(C,J):f.deleteUrlParam(C)}),[J]),L.default.createElement(i.Section,{addSeperation:!0,anchorId:r,bgColor:E?I.sectionBg.dark:l?I.sectionBg.medium:I.sectionBg.light,bgMode:i.mapToBgMode(l,!0)},L.default.createElement(a.Wrapper,{addWhitespace:!0},v&&L.default.createElement(G,{placeholder:y||"Suche",value:J,initialValue:x,onSubmit:N,isInverted:E,submitIcon:_,clearIcon:w}),L.default.createElement(D,null,null==B?void 0:B.sort((function(n,e){return n.priority-e.priority})).map((function(e,t){return L.default.createElement(Q,{key:t},L.default.createElement(M,n.__assign({ref:q[t]},e.item,{isInverted:E,hasBackground:T,modelIcon:s,locationIcon:p,totalLocations:h,allLocationsLabel:b})))})))))})),Z=T.default.div.withConfig({displayName:"JobArticle__ArticleHead",componentId:"sc-1bwhr8-0"})(S||(S=n.__makeTemplateObject(["\n & + * {\n margin-top: ","px;\n }\n"],["\n & + * {\n margin-top: ","px;\n }\n"])),s.spacings.spacer),$=T.default(r.Copy).withConfig({displayName:"JobArticle__JobInfos",componentId:"sc-1bwhr8-1"})(F||(F=n.__makeTemplateObject(["\n &:not(:first-child) {\n margin-top: ","px;\n }\n"],["\n &:not(:first-child) {\n margin-top: ","px;\n }\n"])),s.spacings.spacer),nn=T.default.div.withConfig({displayName:"JobArticle__Info",componentId:"sc-1bwhr8-2"})(z||(z=n.__makeTemplateObject(["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"])),3*s.spacings.nudge,2*s.spacings.nudge),en=T.default.span.withConfig({displayName:"JobArticle__Icon",componentId:"sc-1bwhr8-3"})(H||(H=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"],["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"]))),tn=T.default.span.withConfig({displayName:"JobArticle__MainLabel",componentId:"sc-1bwhr8-4"})(R||(R=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),an=T.default(r.Copy).withConfig({displayName:"JobArticle__Text",componentId:"sc-1bwhr8-5"})(U||(U=n.__makeTemplateObject(["\n & + & {\n margin-top: ","px;\n }\n"],["\n & + & {\n margin-top: ","px;\n }\n"])),3*s.spacings.nudge),rn=T.default(h.Actions).withConfig({displayName:"JobArticle__StyledActions",componentId:"sc-1bwhr8-6"})(W||(W=n.__makeTemplateObject(["\n margin-top: ","px;\n"],["\n margin-top: ","px;\n"])),s.spacings.spacer),on=d.withLibTheme((function(e){var t,o,s=e.anchorId,c=e.bgMode,p=e.jobTitle,u=e.employmentTypes,m=e.locations,f=e.totalLocations,g=e.allLocationsLabel,h=e.modelIcon,y=e.locationIcon,v=e.abstract,_=e.description,w=e.organization,j=e.datePosted,I=e.primaryAction,C=e.secondaryAction,E=d.useLibTheme().colors,T="inverted"===c,k=l.isValidArray(u,!1),q=null==m?void 0:m.filter((function(n){return n.name})),A=l.isValidArray(q,!1),J="";A&&(J=void 0!==f&&q.length>=f?g||"":null===(t=q.map((function(n){return n.name})))||void 0===t?void 0:t.join(", "));var N={jobTitle:p,locations:m,jobDesc:b.concat([v,_]," - "),organization:w,directApply:!(!I&&!C),employmentTypes:(null==u?void 0:u.filter((function(n){return n.type})).map((function(n){return n.type})))||[],datePosted:j};return L.default.createElement(i.Section,{addSeperation:!0,anchorId:s,bgColor:T?E.sectionBg.dark:c?E.sectionBg.medium:E.sectionBg.light,bgMode:i.mapToBgMode(c,!0)},x.generateJob(N),L.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},L.default.createElement(Z,null,L.default.createElement(r.Heading,{size:"heading-2",innerHTML:p,isInverted:T}),(k||A)&&L.default.createElement($,{type:"copy-b","data-sheet":"info",isInverted:T},k&&L.default.createElement(nn,null,L.default.createElement(en,null,h?h():L.default.createElement(n.ClockFilled,null)),L.default.createElement(tn,null,null===(o=null==u?void 0:u.filter((function(n){return n.name})).map((function(n){return n.name})))||void 0===o?void 0:o.join(", "))),A&&L.default.createElement(nn,null,L.default.createElement(en,null,y?y():L.default.createElement(n.LocationPin,null)),L.default.createElement(tn,null,J)))),v&&L.default.createElement(an,{type:"copy-b",isInverted:T},v),_&&L.default.createElement(an,{innerHTML:_,isInverted:T}),(I||C)&&L.default.createElement(rn,{primary:I&&I(T),secondary:C&&C(T)})))}));exports.JobArticle=on,exports.JobList=Y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("./ButtonLeft-7e1f216a.js"),e=require("react"),t=require("styled-components"),i=require("./Section-89240e41.js"),a=require("./Wrapper-c755d727.js"),r=require("./Copy-1b9e33ba.js"),o=require("./Link-6e728957.js"),l=require("./arrays-c272ed59.js"),s=require("./styles-271afb02.js"),d=require("./LibThemeProvider-878ed68c.js"),c=require("./useEqualSheetHeight-7eb7f276.js"),m=require("./FilterField-c8dc9450.js"),u=require("./useUpdateEffect-4d233e2c.js"),p=require("./escape-1ef8dd83.js"),f=require("./urlParams-c412d937.js"),g=require("./useMounted-0bba9869.js"),b=require("./concat-8bd71a50.js"),h=require("./Actions-2590a7b9.js"),x=require("./structuredData-7c33a463.js");function y(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}require("./clamp-bd21d587.js"),require("react-dom/server"),require("./useMediaQuery-dd367f98.js"),require("./useLazyInput-1481445a.js"),require("react-schemaorg");var v,_,w,j,L,C,I,E=y(e),T=y(t),k=T.default.div.withConfig({displayName:"JobCard__View",componentId:"sc-rrpaxu-0"})(_||(_=n.__makeTemplateObject(["\n position: relative;\n color: ",";\n background: ",";\n\n padding: ","px;\n\n border-radius: ",";\n\n ","\n\n @media "," {\n min-height: 440px;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n }\n"],["\n position: relative;\n color: ",";\n background: ",";\n\n padding: ","px;\n\n border-radius: ",";\n\n ","\n\n @media "," {\n min-height: 440px;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n }\n"])),(function(n){var e=n.theme;return s.getColors(e).primary.default}),(function(n){var e=n.theme,t=n.hasBg;return n.isInverted?s.getColors(e).elementBg.medium:t?s.getColors(e).elementBg.light:s.getColors(e).elementBg.medium}),s.spacings.spacer,(function(n){var e=n.theme;return s.getGlobals(e).sections.edgeRadius}),(function(e){var i=e.clickable,a=e.isInverted,r=e.theme;return i&&t.css(v||(v=n.__makeTemplateObject(["\n transition: box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;\n cursor: pointer;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n box-shadow: 0px 2px 6px\n ",";\n\n color: ",";\n }\n }\n\n &:has(:focus-visible) {\n outline: 2px solid\n ",";\n outline-offset: 2px;\n }\n\n &:active {\n box-shadow: 0px 2px 6px\n ",";\n }\n "],["\n transition: box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;\n cursor: pointer;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n box-shadow: 0px 2px 6px\n ",";\n\n color: ",";\n }\n }\n\n &:has(:focus-visible) {\n outline: 2px solid\n ",";\n outline-offset: 2px;\n }\n\n &:active {\n box-shadow: 0px 2px 6px\n ",";\n }\n "])),a?"rgba(255, 255, 255, 0.7)":"rgba(0, 0, 0, 0.35)",(function(n){var e=n.theme;return s.getColors(e).primary.hover}),a?s.getColors(r).primary.inverted:s.getColors(r).primary.default,a?"rgba(255, 255, 255, 0.7)":"rgba(0, 0, 0, 0.3)")}),s.mq.medium),A=T.default(r.Copy).withConfig({displayName:"JobCard__JobInfos",componentId:"sc-rrpaxu-1"})(w||(w=n.__makeTemplateObject(["\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n color: ",";\n\n ",":hover & {\n color: ",";\n }\n"],["\n &:not(:first-child) {\n margin-top: ","px;\n }\n\n color: ",";\n\n ",":hover & {\n color: ",";\n }\n"])),4*s.spacings.nudge,(function(n){var e=n.theme;return s.getColors(e).primary.default}),k,(function(n){var e=n.theme;return s.getColors(e).primary.hover})),q=T.default.div.withConfig({displayName:"JobCard__Info",componentId:"sc-rrpaxu-2"})(j||(j=n.__makeTemplateObject(["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"])),3*s.spacings.nudge,2*s.spacings.nudge),J=T.default.div.withConfig({displayName:"JobCard__Icon",componentId:"sc-rrpaxu-3"})(L||(L=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"],["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"]))),N=T.default.div.withConfig({displayName:"JobCard__MainLabel",componentId:"sc-rrpaxu-4"})(C||(C=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),O=T.default(o.Link).withConfig({displayName:"JobCard__HeadingLink",componentId:"sc-rrpaxu-5"})(I||(I=n.__makeTemplateObject(["\n color: ",";\n text-decoration: none;\n\n ",":hover & {\n color: ",";\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:before {\n content: '';\n position: absolute;\n inset: 0;\n }\n"],["\n color: ",";\n text-decoration: none;\n\n ",":hover & {\n color: ",";\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:before {\n content: '';\n position: absolute;\n inset: 0;\n }\n"])),(function(n){var e=n.theme;return s.getColors(e).primary.default}),k,(function(n){var e=n.theme;return s.getColors(e).primary.hover})),B=E.default.forwardRef((function(e,t){var i,a,o=e.isInverted,s=e.hasBackground,d=e.jobTitle,c=e.employmentTypes,m=e.locations,u=e.totalLocations,p=e.allLocationsLabel,f=e.modelIcon,g=e.locationIcon,b=e.employmentTypeAriaLabel,h=e.locationAriaLabel,x=e.className,y=e.link,v=l.isValidArray(c,!1),_=null==m?void 0:m.filter((function(n){return n.name})),w=l.isValidArray(_,!1),j="";w&&(j=void 0!==u&&_.length>=u&&p?p:null===(i=_.map((function(n){return n.name})))||void 0===i?void 0:i.join(", "));var L=null===(a=null==c?void 0:c.filter((function(n){return n.name})).map((function(n){return n.name})))||void 0===a?void 0:a.join(", ");return E.default.createElement(k,{ref:t,isInverted:o,hasBg:s,className:x,clickable:!!y},E.default.createElement(O,n.__assign({},y,{ariaLabel:(null==y?void 0:y.href)?d:void 0}),E.default.createElement(r.Heading,{renderAs:"h3",textColor:"inherit",size:"heading-2","data-sheet":"title",innerHTML:d,hyphens:!0})),(v||w)&&E.default.createElement(A,{type:"copy-b","data-sheet":"info"},v&&E.default.createElement(q,null,E.default.createElement(J,null,f?f():E.default.createElement(n.ClockFilled,null)),E.default.createElement(N,{"aria-label":b||"Employment Type: ".concat(L)},L)),w&&E.default.createElement(q,null,E.default.createElement(J,null,g?g():E.default.createElement(n.LocationPin,null)),E.default.createElement(N,{"aria-label":h||"Locations: ".concat(j)},j))))}));B.displayName="JobCard";var M,V,P,S,F,H,z,R,U,W,D=T.default.ul.withConfig({displayName:"JobList__List",componentId:"sc-1b9tzu5-0"})(M||(M=n.__makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n\n margin-top: -","px;\n margin-left: -","px;\n\n @media "," {\n margin-top: -","px;\n margin-left: -","px;\n }\n"],["\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n\n margin-top: -","px;\n margin-left: -","px;\n\n @media "," {\n margin-top: -","px;\n margin-left: -","px;\n }\n"])),2*s.spacings.nudge,2*s.spacings.nudge,s.mq.medium,s.spacings.spacer,s.spacings.spacer),Q=T.default.li.withConfig({displayName:"JobList__Item",componentId:"sc-1b9tzu5-1"})(V||(V=n.__makeTemplateObject(["\n flex: 0 1 100%;\n max-width: 100%;\n margin: 0;\n\n padding-top: ","px;\n padding-left: ","px;\n\n @media "," {\n flex: 0 1 50%;\n max-width: 50%;\n\n padding-top: ","px;\n padding-left: ","px;\n }\n\n @media "," {\n flex: 0 1 33.33%;\n max-width: 33.33%;\n }\n"],["\n flex: 0 1 100%;\n max-width: 100%;\n margin: 0;\n\n padding-top: ","px;\n padding-left: ","px;\n\n @media "," {\n flex: 0 1 50%;\n max-width: 50%;\n\n padding-top: ","px;\n padding-left: ","px;\n }\n\n @media "," {\n flex: 0 1 33.33%;\n max-width: 33.33%;\n }\n"])),2*s.spacings.nudge,2*s.spacings.nudge,s.mq.medium,s.spacings.spacer,s.spacings.spacer,s.mq.large),G=T.default(m.FilterField).withConfig({displayName:"JobList__Filter",componentId:"sc-1b9tzu5-2"})(P||(P=n.__makeTemplateObject(["\n margin-top: ","px;\n margin-bottom: ","px;\n\n min-width: 50%;\n"],["\n margin-top: ","px;\n margin-bottom: ","px;\n\n min-width: 50%;\n"])),s.spacings.nudge,5*s.spacings.nudge),K=function(n,e){return e?null==e?void 0:e.filter((function(e){return!n.find((function(n){return n.item.id===e.id}))})):[]},X=function(n,e){var t=[];if(!l.isValidArray(null==e?void 0:e.filter((function(n){return void 0!==n.jobTitle})),!1))return t;var i=null==e?void 0:e.filter(function(n){return function(e){return new RegExp(n).test(e.jobTitle)}}(n));l.isValidArray(i,!1)&&t.push.apply(t,i.map((function(n){return{item:n,priority:1}})));var a=K(t,null==e?void 0:e.filter(function(n){return function(e){var t=n.toLowerCase().replace(/\s/g,""),i=e.jobTitle.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(n)));l.isValidArray(a,!1)&&t.push.apply(t,a.map((function(n){return{item:n,priority:2}})));var r=K(t,null==e?void 0:e.filter(function(n){return function(e){if(!l.isValidArray(e.locations,!1))return!1;var t=n.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!e.locations.find((function(n){var e,t=null===(e=n.name)||void 0===e?void 0:e.toLowerCase().replace(/\s/g,"");return i.test(t||"")}))}}(n)));l.isValidArray(r,!1)&&t.push.apply(t,r.map((function(n){return{item:n,priority:3}})));var o=K(t,null==e?void 0:e.filter(function(n){return function(e){if(!l.isValidArray(null==e?void 0:e.employmentTypes,!1))return!1;var t=n.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!e.employmentTypes.find((function(n){if(!n.name)return!1;var e=n.name.toLowerCase().replace(/\s/g,"");return i.test(e)}))}}(n)));return l.isValidArray(o,!1)&&t.push.apply(t,o.map((function(n){return{item:n,priority:4}}))),t},Y=d.withLibTheme((function(t){var r=t.anchorId,o=t.jobs,s=t.bgMode,m=t.modelIcon,h=t.locationIcon,x=t.totalJobLocations,y=t.allJobLocationsLabel,v=t.initialFilterQuery,_=t.filterPlaceholder,w=t.hasFilter,j=t.filterSubmitIcon,L=t.filterClearIcon,C=t.listAriaLabel,I=void 0===C?"List of job offers":C,T=t.itemAriaLabel,k=d.useLibTheme(),A=k.colors,q=k.globals.sections.jobFilterName,J="inverted"===s,N="full"===s,O=(null==o?void 0:o.length)||0,M=c.useEqualSheetHeight({listLength:O,identifiers:['[data-sheet="title"]','[data-sheet="info"]'],responsive:{small:1,semilarge:2,large:3}}).sheetRefs,V=E.default.useState(v||""),P=V[0],S=V[1],F=g.useMounted(),H=E.default.useMemo((function(){for(var e=void 0!==P?P.split(" ").map((function(n){return n.trim()})):[""],t=[],i=0,a=e;i<a.length;i++)for(var r=a[i],l=function(n){var e=t.findIndex((function(e){return e.match.item.id===n.item.id}));-1!==e?t[e].intersections+=1:t.push({match:n,intersections:1})},s=0,d=X(p.escapeRegExp(r),o||[]);s<d.length;s++){l(d[s])}return t.filter((function(n){return n.intersections>=e.length})).map((function(e){return n.__assign({},e.match)}))}),[P,o]),z=e.useCallback((function(){return f.getUrlParams()[q]}),[q]);return e.useEffect((function(){var n=z();null!=n&&"string"==typeof n&&S(n)}),[z]),e.useEffect((function(){F||(P?f.setUrlParam(q,P):f.deleteUrlParam(q))}),[q,P,F]),u.useUpdateEffect((function(){P?f.setUrlParam(q,P):f.deleteUrlParam(q)}),[P]),E.default.createElement(i.Section,{addSeperation:!0,anchorId:r,bgColor:J?A.sectionBg.dark:s?A.sectionBg.medium:A.sectionBg.light,bgMode:i.mapToBgMode(s,!0)},E.default.createElement(a.Wrapper,{addWhitespace:!0},w&&E.default.createElement(G,{placeholder:_||"Suche",value:P,initialValue:v,onSubmit:S,isInverted:J,submitIcon:j,clearIcon:L}),E.default.createElement(D,{"aria-label":I},null==H?void 0:H.sort((function(n,e){return n.priority-e.priority})).map((function(e,t){var i,a,r,o,s=null===(a=null===(i=e.item.employmentTypes)||void 0===i?void 0:i.filter((function(n){return n.name})).map((function(n){return n.name})))||void 0===a?void 0:a.join(", "),d=null===(r=e.item.locations)||void 0===r?void 0:r.filter((function(n){return n.name})),c="";l.isValidArray(d,!1)&&(c=void 0!==x&&d.length>=x&&y?y:null===(o=d.map((function(n){return n.name})))||void 0===o?void 0:o.join(", "));var u=T?T(e.item.jobTitle,s||"",c):"Job offer: ".concat(b.concat([e.item.jobTitle,s,c],", "));return E.default.createElement(Q,{key:t,"aria-label":u},E.default.createElement(B,n.__assign({ref:M[t]},e.item,{isInverted:J,hasBackground:N,modelIcon:m,locationIcon:h,totalLocations:x,allLocationsLabel:y})))})))))})),Z=T.default.div.withConfig({displayName:"JobArticle__ArticleHead",componentId:"sc-1bwhr8-0"})(S||(S=n.__makeTemplateObject(["\n & + * {\n margin-top: ","px;\n }\n"],["\n & + * {\n margin-top: ","px;\n }\n"])),s.spacings.spacer),$=T.default(r.Copy).withConfig({displayName:"JobArticle__JobInfos",componentId:"sc-1bwhr8-1"})(F||(F=n.__makeTemplateObject(["\n &:not(:first-child) {\n margin-top: ","px;\n }\n"],["\n &:not(:first-child) {\n margin-top: ","px;\n }\n"])),s.spacings.spacer),nn=T.default.div.withConfig({displayName:"JobArticle__Info",componentId:"sc-1bwhr8-2"})(H||(H=n.__makeTemplateObject(["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"],["\n display: -ms-grid;\n display: grid;\n\n -ms-grid-columns: min-content 1fr;\n grid-template-columns: min-content 1fr;\n -ms-grid-rows: min-content 1fr;\n grid-auto-rows: min-content 1fr;\n\n & + & {\n margin-top: ","px;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n"])),3*s.spacings.nudge,2*s.spacings.nudge),en=T.default.span.withConfig({displayName:"JobArticle__Icon",componentId:"sc-1bwhr8-3"})(z||(z=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"],["\n display: flex;\n align-items: center;\n\n & > * {\n height: 32px;\n width: 32px;\n }\n"]))),tn=T.default.span.withConfig({displayName:"JobArticle__MainLabel",componentId:"sc-1bwhr8-4"})(R||(R=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),an=T.default(r.Copy).withConfig({displayName:"JobArticle__Text",componentId:"sc-1bwhr8-5"})(U||(U=n.__makeTemplateObject(["\n & + & {\n margin-top: ","px;\n }\n"],["\n & + & {\n margin-top: ","px;\n }\n"])),3*s.spacings.nudge),rn=T.default(h.Actions).withConfig({displayName:"JobArticle__StyledActions",componentId:"sc-1bwhr8-6"})(W||(W=n.__makeTemplateObject(["\n margin-top: ","px;\n"],["\n margin-top: ","px;\n"])),s.spacings.spacer),on=d.withLibTheme((function(e){var t,o,s=e.anchorId,c=e.bgMode,m=e.jobTitle,u=e.employmentTypes,p=e.locations,f=e.totalLocations,g=e.allLocationsLabel,h=e.modelIcon,y=e.locationIcon,v=e.abstract,_=e.description,w=e.organization,j=e.datePosted,L=e.primaryAction,C=e.secondaryAction,I=e.ariaLabelEmploymentType,T=e.ariaLabelLocation,k=d.useLibTheme().colors,A="inverted"===c,q=l.isValidArray(u,!1),J=null==p?void 0:p.filter((function(n){return n.name})),N=l.isValidArray(J,!1),O="";N&&(O=void 0!==f&&J.length>=f?g||"":null===(t=J.map((function(n){return n.name})))||void 0===t?void 0:t.join(", "));var B={jobTitle:m,locations:p,jobDesc:b.concat([v,_]," - "),organization:w,directApply:!(!L&&!C),employmentTypes:(null==u?void 0:u.filter((function(n){return n.type})).map((function(n){return n.type})))||[],datePosted:j},M=null===(o=null==u?void 0:u.filter((function(n){return n.name})).map((function(n){return n.name})))||void 0===o?void 0:o.join(", "),V=I?I(M||""):"Employment type: ".concat(M||""),P=T?T(O||""):"Location: ".concat(O||"");return E.default.createElement(i.Section,{addSeperation:!0,anchorId:s,bgColor:A?k.sectionBg.dark:c?k.sectionBg.medium:k.sectionBg.light,bgMode:i.mapToBgMode(c,!0)},x.generateJob(B),E.default.createElement(a.Wrapper,{clampWidth:"small",addWhitespace:!0},E.default.createElement(Z,null,E.default.createElement(r.Heading,{size:"heading-2",innerHTML:m,isInverted:A}),(q||N)&&E.default.createElement($,{type:"copy-b","data-sheet":"info",isInverted:A},q&&E.default.createElement(nn,null,E.default.createElement(en,null,h?h():E.default.createElement(n.ClockFilled,null)),E.default.createElement(tn,{"aria-label":V},M)),N&&E.default.createElement(nn,null,E.default.createElement(en,null,y?y():E.default.createElement(n.LocationPin,null)),E.default.createElement(tn,{"aria-label":P},O)))),v&&E.default.createElement(an,{type:"copy-b",isInverted:A},v),_&&E.default.createElement(an,{innerHTML:_,isInverted:A}),(L||C)&&E.default.createElement(rn,{primary:L&&L(A),secondary:C&&C(A)})))}));exports.JobArticle=on,exports.JobList=Y;
2
2
  //# sourceMappingURL=sections.jobs.js.map