@blateral/b.kit 2.7.5 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/cjs/Actions-c52a14e4.js +2 -0
  2. package/cjs/{Actions-c7b16449.js.map → Actions-c52a14e4.js.map} +1 -1
  3. package/cjs/Bdot-62c8e349.js +2 -0
  4. package/cjs/{Bdot-5f8e0450.js.map → Bdot-62c8e349.js.map} +1 -1
  5. package/cjs/Button-1adf99b8.js +2 -0
  6. package/cjs/{Button-51ea72b7.js.map → Button-1adf99b8.js.map} +1 -1
  7. package/cjs/ButtonGhost-fbab8769.js +2 -0
  8. package/cjs/{ButtonGhost-628bbd60.js.map → ButtonGhost-fbab8769.js.map} +1 -1
  9. package/cjs/Callout-d84ca60b.js +2 -0
  10. package/cjs/{Callout-5dd16679.js.map → Callout-d84ca60b.js.map} +1 -1
  11. package/cjs/Checkbox-8dccd42f.js +2 -0
  12. package/cjs/Checkbox-8dccd42f.js.map +1 -0
  13. package/cjs/Control-e15e1572.js +2 -0
  14. package/cjs/{Control-08d09950.js.map → Control-e15e1572.js.map} +1 -1
  15. package/cjs/Copy-a0bc570d.js +2 -0
  16. package/cjs/{Copy-ea6ab025.js.map → Copy-a0bc570d.js.map} +1 -1
  17. package/cjs/EventBlock-4e406696.js +2 -0
  18. package/cjs/{EventBlock-04e719a7.js.map → EventBlock-4e406696.js.map} +1 -1
  19. package/cjs/Filter-89286db9.js +2 -0
  20. package/cjs/Filter-89286db9.js.map +1 -0
  21. package/cjs/FilterBar-0781490f.js +2 -0
  22. package/cjs/FilterBar-0781490f.js.map +1 -0
  23. package/cjs/FilterField-7efcacb7.js +2 -0
  24. package/cjs/FilterField-7efcacb7.js.map +1 -0
  25. package/cjs/Grid-1acefee9.js +2 -0
  26. package/cjs/{Grid-6f4f99bc.js.map → Grid-1acefee9.js.map} +1 -1
  27. package/cjs/Image-94820dfd.js +2 -0
  28. package/cjs/{Image-c72f7a80.js.map → Image-94820dfd.js.map} +1 -1
  29. package/cjs/InfoList-e416058c.js +2 -0
  30. package/cjs/{InfoList-71d3388a.js.map → InfoList-e416058c.js.map} +1 -1
  31. package/cjs/LanguageSwitcher-aa96cc7d.js +2 -0
  32. package/cjs/{LanguageSwitcher-8fdd22ba.js.map → LanguageSwitcher-aa96cc7d.js.map} +1 -1
  33. package/cjs/LibThemeProvider-69109901.js +2 -0
  34. package/cjs/{LibThemeProvider-4823de57.js.map → LibThemeProvider-69109901.js.map} +1 -1
  35. package/cjs/Link-8951180c.js +2 -0
  36. package/cjs/{Link-5a6f1633.js.map → Link-8951180c.js.map} +1 -1
  37. package/cjs/MultiselectDropdown-a16ea1c9.js +2 -0
  38. package/cjs/MultiselectDropdown-a16ea1c9.js.map +1 -0
  39. package/cjs/Navigation-6abb6213.js +2 -0
  40. package/cjs/{Navigation-939e4d0e.js.map → Navigation-6abb6213.js.map} +1 -1
  41. package/cjs/Pointer-331140b6.js +2 -0
  42. package/cjs/{Pointer-fde7b548.js.map → Pointer-331140b6.js.map} +1 -1
  43. package/cjs/Section-c9a16ccc.js +2 -0
  44. package/cjs/{Section-e8e8cf81.js.map → Section-c9a16ccc.js.map} +1 -1
  45. package/cjs/SocialList-aec9a5c2.js +2 -0
  46. package/cjs/{SocialList-1d5f75a8.js.map → SocialList-aec9a5c2.js.map} +1 -1
  47. package/cjs/TableBlock-c545ca8d.js +2 -0
  48. package/cjs/{TableBlock-f2c59d9b.js.map → TableBlock-c545ca8d.js.map} +1 -1
  49. package/cjs/Tag-937849ad.js +2 -0
  50. package/cjs/{Tag-9238cf0c.js.map → Tag-937849ad.js.map} +1 -1
  51. package/cjs/Textarea-599e94a4.js +2 -0
  52. package/cjs/{Textarea-03bd2c34.js.map → Textarea-599e94a4.js.map} +1 -1
  53. package/cjs/Textfield-24f468be.js +2 -0
  54. package/cjs/Textfield-24f468be.js.map +1 -0
  55. package/cjs/VideoBlock-1fbf598b.js +2 -0
  56. package/cjs/{VideoBlock-dea7de8a.js.map → VideoBlock-1fbf598b.js.map} +1 -1
  57. package/cjs/VideoCard-905c08d2.js +2 -0
  58. package/cjs/{VideoCard-f6c436ca.js.map → VideoCard-905c08d2.js.map} +1 -1
  59. package/cjs/Wrapper-bca9463e.js +2 -0
  60. package/cjs/{Wrapper-ff6854d7.js.map → Wrapper-bca9463e.js.map} +1 -1
  61. package/cjs/base.js +1 -1
  62. package/cjs/blocks.js +1 -1
  63. package/cjs/buttons.js +1 -1
  64. package/cjs/cookies.js +1 -1
  65. package/cjs/cookies.js.map +1 -1
  66. package/cjs/fields.js +1 -1
  67. package/cjs/fields.js.map +1 -1
  68. package/cjs/footer.js +1 -1
  69. package/cjs/footer.js.map +1 -1
  70. package/cjs/formFieldText-046fcbf4.js +2 -0
  71. package/cjs/formFieldText-046fcbf4.js.map +1 -0
  72. package/cjs/headers.js +1 -1
  73. package/cjs/headers.js.map +1 -1
  74. package/cjs/hooks.js +1 -1
  75. package/cjs/hooks.js.map +1 -1
  76. package/cjs/icons.js +1 -1
  77. package/cjs/index.js +1 -1
  78. package/cjs/navigation-3f9d4ac4.js +2 -0
  79. package/cjs/{navigation-bf154e6e.js.map → navigation-3f9d4ac4.js.map} +1 -1
  80. package/cjs/navigation.js +1 -1
  81. package/cjs/navigation.js.map +1 -1
  82. package/cjs/sections.dynamicform.js +1 -1
  83. package/cjs/sections.dynamicform.js.map +1 -1
  84. package/cjs/sections.events.js +1 -1
  85. package/cjs/sections.events.js.map +1 -1
  86. package/cjs/sections.forms.js +1 -1
  87. package/cjs/sections.forms.js.map +1 -1
  88. package/cjs/sections.jobs.js +1 -1
  89. package/cjs/sections.jobs.js.map +1 -1
  90. package/cjs/sections.js +1 -1
  91. package/cjs/sections.js.map +1 -1
  92. package/cjs/sections.news.js +1 -1
  93. package/cjs/sections.news.js.map +1 -1
  94. package/cjs/sections.pois.js +1 -1
  95. package/cjs/sections.pois.js.map +1 -1
  96. package/cjs/styles-13e5d9ac.js +2 -0
  97. package/cjs/styles-13e5d9ac.js.map +1 -0
  98. package/cjs/typography.js +1 -1
  99. package/cjs/useCookieConsent-665d91cf.js +2 -0
  100. package/cjs/{useCookieConsent-aa9f1104.js.map → useCookieConsent-665d91cf.js.map} +1 -1
  101. package/cjs/useEqualSheetHeight-f1c10ec5.js +2 -0
  102. package/cjs/{useEqualSheetHeight-501f4c5f.js.map → useEqualSheetHeight-f1c10ec5.js.map} +1 -1
  103. package/cjs/useLazyInput-911b8eda.js +2 -0
  104. package/cjs/{useLazyInput-f71c221b.js.map → useLazyInput-911b8eda.js.map} +1 -1
  105. package/cjs/useLeafletMap-514304b6.js +2 -0
  106. package/cjs/{useLeafletMap-2e608b01.js.map → useLeafletMap-514304b6.js.map} +1 -1
  107. package/cjs/useMediaQuery-619d7203.js +2 -0
  108. package/cjs/{useMediaQuery-3d1054e5.js.map → useMediaQuery-619d7203.js.map} +1 -1
  109. package/cjs/useScroll-2f086e7f.js +2 -0
  110. package/cjs/useScroll-2f086e7f.js.map +1 -0
  111. package/esm/{Actions-21372b3a.js → Actions-e29b5e75.js} +3 -3
  112. package/esm/{Actions-21372b3a.js.map → Actions-e29b5e75.js.map} +1 -1
  113. package/esm/{Bdot-4db38753.js → Bdot-5e798e7e.js} +3 -3
  114. package/esm/{Bdot-4db38753.js.map → Bdot-5e798e7e.js.map} +1 -1
  115. package/esm/{Button-f9279013.js → Button-9a0dd9aa.js} +3 -3
  116. package/esm/{Button-f9279013.js.map → Button-9a0dd9aa.js.map} +1 -1
  117. package/esm/{ButtonGhost-ae2e97a2.js → ButtonGhost-fc9e7a75.js} +3 -3
  118. package/esm/{ButtonGhost-ae2e97a2.js.map → ButtonGhost-fc9e7a75.js.map} +1 -1
  119. package/esm/{Callout-a926194d.js → Callout-46f0bef0.js} +4 -4
  120. package/esm/{Callout-a926194d.js.map → Callout-46f0bef0.js.map} +1 -1
  121. package/esm/{Checkbox-dd12facd.js → Checkbox-1957067a.js} +11 -8
  122. package/esm/Checkbox-1957067a.js.map +1 -0
  123. package/esm/{Control-2d605e12.js → Control-56ec7872.js} +3 -3
  124. package/esm/{Control-2d605e12.js.map → Control-56ec7872.js.map} +1 -1
  125. package/esm/{Copy-a28aeb61.js → Copy-c6786949.js} +4 -4
  126. package/esm/{Copy-a28aeb61.js.map → Copy-c6786949.js.map} +1 -1
  127. package/esm/{EventBlock-b9204a0d.js → EventBlock-8e130f6b.js} +8 -8
  128. package/esm/{EventBlock-b9204a0d.js.map → EventBlock-8e130f6b.js.map} +1 -1
  129. package/esm/{ClockFilled-62515a8f.js → Filter-19220970.js} +321 -235
  130. package/esm/Filter-19220970.js.map +1 -0
  131. package/esm/FilterBar-2a2a09b7.js +460 -0
  132. package/esm/FilterBar-2a2a09b7.js.map +1 -0
  133. package/esm/FilterField-bec061bc.js +115 -0
  134. package/esm/FilterField-bec061bc.js.map +1 -0
  135. package/esm/{Grid-5eec127f.js → Grid-7b33e271.js} +3 -3
  136. package/esm/{Grid-5eec127f.js.map → Grid-7b33e271.js.map} +1 -1
  137. package/esm/{Image-dc2b33c1.js → Image-b26692a9.js} +5 -5
  138. package/esm/{Image-dc2b33c1.js.map → Image-b26692a9.js.map} +1 -1
  139. package/esm/{InfoList-5c4586ed.js → InfoList-b6980a42.js} +4 -4
  140. package/esm/{InfoList-5c4586ed.js.map → InfoList-b6980a42.js.map} +1 -1
  141. package/esm/{LanguageSwitcher-3fa20077.js → LanguageSwitcher-f9218fdc.js} +5 -5
  142. package/esm/{LanguageSwitcher-3fa20077.js.map → LanguageSwitcher-f9218fdc.js.map} +1 -1
  143. package/esm/{LibThemeProvider-52555ac9.js → LibThemeProvider-fb1d35ac.js} +3 -3
  144. package/esm/{LibThemeProvider-52555ac9.js.map → LibThemeProvider-fb1d35ac.js.map} +1 -1
  145. package/esm/{Link-3fd9c9b8.js → Link-6067a27f.js} +3 -3
  146. package/esm/{Link-3fd9c9b8.js.map → Link-6067a27f.js.map} +1 -1
  147. package/esm/MultiselectDropdown-a97be6bc.js +296 -0
  148. package/esm/MultiselectDropdown-a97be6bc.js.map +1 -0
  149. package/esm/{Navigation-99f6dc41.js → Navigation-bb79a1eb.js} +10 -10
  150. package/esm/{Navigation-99f6dc41.js.map → Navigation-bb79a1eb.js.map} +1 -1
  151. package/esm/{Pointer-5c77b1f1.js → Pointer-b4abee91.js} +3 -3
  152. package/esm/{Pointer-5c77b1f1.js.map → Pointer-b4abee91.js.map} +1 -1
  153. package/esm/{Section-b76e6909.js → Section-bd61eb2f.js} +3 -3
  154. package/esm/{Section-b76e6909.js.map → Section-bd61eb2f.js.map} +1 -1
  155. package/esm/{SocialList-402b8f20.js → SocialList-336b7f6d.js} +5 -5
  156. package/esm/{SocialList-402b8f20.js.map → SocialList-336b7f6d.js.map} +1 -1
  157. package/esm/{TableBlock-67fe2385.js → TableBlock-1ddfd539.js} +5 -5
  158. package/esm/{TableBlock-67fe2385.js.map → TableBlock-1ddfd539.js.map} +1 -1
  159. package/esm/{Tag-ac51e916.js → Tag-c3bd6b7f.js} +5 -5
  160. package/esm/{Tag-ac51e916.js.map → Tag-c3bd6b7f.js.map} +1 -1
  161. package/esm/{Textarea-266f1e45.js → Textarea-95352f50.js} +10 -10
  162. package/esm/{Textarea-266f1e45.js.map → Textarea-95352f50.js.map} +1 -1
  163. package/esm/{Textfield-d2f201a9.js → Textfield-99d91b4e.js} +10 -97
  164. package/esm/Textfield-99d91b4e.js.map +1 -0
  165. package/esm/{VideoBlock-b227ae6e.js → VideoBlock-474e0aa4.js} +7 -7
  166. package/esm/{VideoBlock-b227ae6e.js.map → VideoBlock-474e0aa4.js.map} +1 -1
  167. package/esm/{VideoCard-2c6e26d1.js → VideoCard-91438667.js} +7 -7
  168. package/esm/{VideoCard-2c6e26d1.js.map → VideoCard-91438667.js.map} +1 -1
  169. package/esm/{Wrapper-90dccc89.js → Wrapper-95108115.js} +3 -3
  170. package/esm/{Wrapper-90dccc89.js.map → Wrapper-95108115.js.map} +1 -1
  171. package/esm/base.js +5 -5
  172. package/esm/blocks.js +25 -16
  173. package/esm/blocks.js.map +1 -1
  174. package/esm/buttons.js +6 -6
  175. package/esm/cookies.js +7 -7
  176. package/esm/fields.js +14 -12
  177. package/esm/fields.js.map +1 -1
  178. package/esm/footer.js +11 -11
  179. package/esm/formFieldText-f4188e55.js +96 -0
  180. package/esm/formFieldText-f4188e55.js.map +1 -0
  181. package/esm/headers.js +12 -12
  182. package/esm/hooks.js +12 -83
  183. package/esm/hooks.js.map +1 -1
  184. package/esm/icons.js +5 -2
  185. package/esm/icons.js.map +1 -1
  186. package/esm/index.js +3 -3
  187. package/esm/{navigation-b89325f8.js → navigation-5216dbad.js} +2 -2
  188. package/esm/{navigation-b89325f8.js.map → navigation-5216dbad.js.map} +1 -1
  189. package/esm/navigation.js +12 -12
  190. package/esm/sections.dynamicform.js +15 -14
  191. package/esm/sections.dynamicform.js.map +1 -1
  192. package/esm/sections.events.js +13 -14
  193. package/esm/sections.events.js.map +1 -1
  194. package/esm/sections.forms.js +10 -9
  195. package/esm/sections.forms.js.map +1 -1
  196. package/esm/sections.jobs.js +12 -12
  197. package/esm/sections.js +28 -25
  198. package/esm/sections.js.map +1 -1
  199. package/esm/sections.news.js +17 -18
  200. package/esm/sections.news.js.map +1 -1
  201. package/esm/sections.pois.js +318 -143
  202. package/esm/sections.pois.js.map +1 -1
  203. package/esm/{styles-da982973.js → styles-1f1841ef.js} +4 -3
  204. package/esm/styles-1f1841ef.js.map +1 -0
  205. package/esm/typography.js +6 -6
  206. package/esm/{useCookieConsent-6b2d4d93.js → useCookieConsent-6661d419.js} +49 -49
  207. package/esm/useCookieConsent-6661d419.js.map +1 -0
  208. package/esm/{useEqualSheetHeight-97420d63.js → useEqualSheetHeight-60ff9de7.js} +4 -4
  209. package/esm/{useEqualSheetHeight-97420d63.js.map → useEqualSheetHeight-60ff9de7.js.map} +1 -1
  210. package/esm/{useLazyInput-54d1785c.js → useLazyInput-0b6932aa.js} +2 -2
  211. package/esm/{useLazyInput-54d1785c.js.map → useLazyInput-0b6932aa.js.map} +1 -1
  212. package/esm/{useLeafletMap-84170d32.js → useLeafletMap-fa0ab7d4.js} +10 -6
  213. package/esm/useLeafletMap-fa0ab7d4.js.map +1 -0
  214. package/esm/{useMediaQuery-b42fd64e.js → useMediaQuery-4c1b1fa6.js} +3 -3
  215. package/esm/{useMediaQuery-b42fd64e.js.map → useMediaQuery-4c1b1fa6.js.map} +1 -1
  216. package/esm/useScroll-881c7b04.js +76 -0
  217. package/esm/useScroll-881c7b04.js.map +1 -0
  218. package/package.json +2 -1
  219. package/types/blocks.d.ts +1 -0
  220. package/types/blocks.d.ts.map +1 -1
  221. package/types/components/base/icons/Cross.d.ts +2 -0
  222. package/types/components/base/icons/Cross.d.ts.map +1 -1
  223. package/types/components/base/icons/CrossBubble.d.ts +8 -0
  224. package/types/components/base/icons/CrossBubble.d.ts.map +1 -0
  225. package/types/components/base/icons/Icons.d.ts +3 -0
  226. package/types/components/base/icons/Icons.d.ts.map +1 -1
  227. package/types/components/base/icons/Magnifier.d.ts +2 -0
  228. package/types/components/base/icons/Magnifier.d.ts.map +1 -1
  229. package/types/components/blocks/FilterBar.d.ts +38 -0
  230. package/types/components/blocks/FilterBar.d.ts.map +1 -0
  231. package/types/components/blocks/POICard.d.ts.map +1 -1
  232. package/types/components/blocks/Portal.d.ts +8 -0
  233. package/types/components/blocks/Portal.d.ts.map +1 -0
  234. package/types/components/fields/Checkbox.d.ts +3 -1
  235. package/types/components/fields/Checkbox.d.ts.map +1 -1
  236. package/types/components/fields/FilterField.d.ts +1 -0
  237. package/types/components/fields/FilterField.d.ts.map +1 -1
  238. package/types/components/fields/MultiselectDropdown.d.ts +42 -0
  239. package/types/components/fields/MultiselectDropdown.d.ts.map +1 -0
  240. package/types/components/sections/Accordion.d.ts.map +1 -1
  241. package/types/components/sections/pois/PointOfInterestMap.d.ts +42 -1
  242. package/types/components/sections/pois/PointOfInterestMap.d.ts.map +1 -1
  243. package/types/components/sections/pois/PointOfInterestOverview.d.ts +41 -20
  244. package/types/components/sections/pois/PointOfInterestOverview.d.ts.map +1 -1
  245. package/types/components/sections/pois/filters.d.ts +10 -0
  246. package/types/components/sections/pois/filters.d.ts.map +1 -0
  247. package/types/components/sections/pois/partials/PoiFilterBar.d.ts +8 -0
  248. package/types/components/sections/pois/partials/PoiFilterBar.d.ts.map +1 -0
  249. package/types/components/sections/pois/partials/index.d.ts +3 -0
  250. package/types/components/sections/pois/partials/index.d.ts.map +1 -0
  251. package/types/fields.d.ts +1 -0
  252. package/types/fields.d.ts.map +1 -1
  253. package/types/sections.pois.d.ts +1 -0
  254. package/types/sections.pois.d.ts.map +1 -1
  255. package/types/utils/styles.d.ts +1 -0
  256. package/types/utils/styles.d.ts.map +1 -1
  257. package/types/utils/useLeafletMap.d.ts.map +1 -1
  258. package/cjs/Actions-c7b16449.js +0 -2
  259. package/cjs/Bdot-5f8e0450.js +0 -2
  260. package/cjs/Button-51ea72b7.js +0 -2
  261. package/cjs/ButtonGhost-628bbd60.js +0 -2
  262. package/cjs/Callout-5dd16679.js +0 -2
  263. package/cjs/Checkbox-1c34c7e6.js +0 -2
  264. package/cjs/Checkbox-1c34c7e6.js.map +0 -1
  265. package/cjs/ClockFilled-2483aa4a.js +0 -2
  266. package/cjs/ClockFilled-2483aa4a.js.map +0 -1
  267. package/cjs/Control-08d09950.js +0 -2
  268. package/cjs/Copy-ea6ab025.js +0 -2
  269. package/cjs/EventBlock-04e719a7.js +0 -2
  270. package/cjs/Filter-d6d90b8b.js +0 -2
  271. package/cjs/Filter-d6d90b8b.js.map +0 -1
  272. package/cjs/FilterField-cce38ffb.js +0 -2
  273. package/cjs/FilterField-cce38ffb.js.map +0 -1
  274. package/cjs/Grid-6f4f99bc.js +0 -2
  275. package/cjs/Image-c72f7a80.js +0 -2
  276. package/cjs/InfoList-71d3388a.js +0 -2
  277. package/cjs/LanguageSwitcher-8fdd22ba.js +0 -2
  278. package/cjs/LibThemeProvider-4823de57.js +0 -2
  279. package/cjs/Link-5a6f1633.js +0 -2
  280. package/cjs/Navigation-939e4d0e.js +0 -2
  281. package/cjs/POICard-e46f9041.js +0 -2
  282. package/cjs/POICard-e46f9041.js.map +0 -1
  283. package/cjs/Pointer-fde7b548.js +0 -2
  284. package/cjs/Section-e8e8cf81.js +0 -2
  285. package/cjs/SocialList-1d5f75a8.js +0 -2
  286. package/cjs/TableBlock-f2c59d9b.js +0 -2
  287. package/cjs/Tag-9238cf0c.js +0 -2
  288. package/cjs/Textarea-03bd2c34.js +0 -2
  289. package/cjs/Textfield-56996c98.js +0 -2
  290. package/cjs/Textfield-56996c98.js.map +0 -1
  291. package/cjs/VideoBlock-dea7de8a.js +0 -2
  292. package/cjs/VideoCard-f6c436ca.js +0 -2
  293. package/cjs/Wrapper-ff6854d7.js +0 -2
  294. package/cjs/navigation-bf154e6e.js +0 -2
  295. package/cjs/styles-3a495a2d.js +0 -2
  296. package/cjs/styles-3a495a2d.js.map +0 -1
  297. package/cjs/useCookieConsent-aa9f1104.js +0 -2
  298. package/cjs/useEqualSheetHeight-501f4c5f.js +0 -2
  299. package/cjs/useLazyInput-f71c221b.js +0 -2
  300. package/cjs/useLeafletMap-2e608b01.js +0 -2
  301. package/cjs/useMediaQuery-3d1054e5.js +0 -2
  302. package/esm/Checkbox-dd12facd.js.map +0 -1
  303. package/esm/ClockFilled-62515a8f.js.map +0 -1
  304. package/esm/Filter-2b5f5e53.js +0 -32
  305. package/esm/Filter-2b5f5e53.js.map +0 -1
  306. package/esm/FilterField-962ec61f.js +0 -129
  307. package/esm/FilterField-962ec61f.js.map +0 -1
  308. package/esm/POICard-96ec71d8.js +0 -116
  309. package/esm/POICard-96ec71d8.js.map +0 -1
  310. package/esm/Textfield-d2f201a9.js.map +0 -1
  311. package/esm/styles-da982973.js.map +0 -1
  312. package/esm/useCookieConsent-6b2d4d93.js.map +0 -1
  313. package/esm/useLeafletMap-84170d32.js.map +0 -1
@@ -1,32 +1,37 @@
1
- import { a as __makeTemplateObject, _ as __assign, L as LocationPin, a8 as CurrentLocation, V as MyLocation, f as Cross, h as __awaiter, i as __generator } from './ClockFilled-62515a8f.js';
2
- import React__default, { useMemo, useState, useCallback, useEffect } from 'react';
1
+ import { a as __makeTemplateObject, _ as __assign, h as Magnifier, ab as CrossBubble, f as Cross, ac as Filter, e as __spreadArray, L as LocationPin, a9 as CurrentLocation, $ as MyLocation, k as __awaiter, l as __generator } from './Filter-19220970.js';
2
+ import React__default, { useMemo, useState, useEffect } from 'react';
3
3
  import styled, { css } from 'styled-components';
4
- import { S as Section, m as mapToBgMode } from './Section-b76e6909.js';
5
- import { W as Wrapper } from './Wrapper-90dccc89.js';
6
- import { I as Image } from './Image-dc2b33c1.js';
7
- import { H as Heading, C as Copy } from './Copy-a28aeb61.js';
8
- import { s as spacings, m as mq, w as withRange, g as getColors, f as getSVGDataImg } from './styles-da982973.js';
9
- import { w as withLibTheme, u as useLibTheme } from './LibThemeProvider-52555ac9.js';
10
- import { G as Grid } from './Grid-5eec127f.js';
11
- import { I as InfoList } from './InfoList-5c4586ed.js';
12
- import { P as POIFacts, a as POICard } from './POICard-96ec71d8.js';
4
+ import { S as Section, m as mapToBgMode } from './Section-bd61eb2f.js';
5
+ import { W as Wrapper } from './Wrapper-95108115.js';
6
+ import { I as Image } from './Image-b26692a9.js';
7
+ import { H as Heading, C as Copy } from './Copy-c6786949.js';
8
+ import { s as spacings, m as mq, g as getColors, w as withRange, c as getGlobals, f as getSVGDataImg } from './styles-1f1841ef.js';
9
+ import { w as withLibTheme, u as useLibTheme } from './LibThemeProvider-fb1d35ac.js';
10
+ import { G as Grid } from './Grid-7b33e271.js';
11
+ import { I as InfoList } from './InfoList-b6980a42.js';
12
+ import { P as POIFacts, F as FilterBar, a as POICard } from './FilterBar-2a2a09b7.js';
13
13
  import { i as isValidArray } from './arrays-65b644ef.js';
14
- import { F as FilterField } from './FilterField-962ec61f.js';
15
- import { u as useUpdateEffect } from './useUpdateEffect-824c0c84.js';
14
+ import { s as setUrlParam, d as deleteUrlParam } from './urlParams-9cfdaf71.js';
15
+ import './useScroll-881c7b04.js';
16
+ import 'react-dom/server';
16
17
  import { e as escapeRegExp } from './escape-cbff9c25.js';
17
- import { u as useMounted } from './useMounted-1e4cc87b.js';
18
- import { g as getUrlParams, s as setUrlParam, d as deleteUrlParam } from './urlParams-9cfdaf71.js';
19
- import { u as useLeafletMap } from './useLeafletMap-84170d32.js';
20
- import { g as generateNavbarIdent, a as getFullNavbarHeights } from './Navigation-99f6dc41.js';
18
+ import { u as useLeafletMap } from './useLeafletMap-fa0ab7d4.js';
19
+ import { g as generateNavbarIdent, a as getFullNavbarHeights } from './Navigation-bb79a1eb.js';
21
20
  import { u as useGeolocation } from './useGeolocation-f9f073cc.js';
22
21
  import './concat-ab3c66f2.js';
23
22
  import './clamp-12d37b65.js';
24
- import 'react-dom/server';
25
- import './useLazyInput-54d1785c.js';
26
- import './useMediaQuery-b42fd64e.js';
27
- import './navigation-b89325f8.js';
28
- import './Link-3fd9c9b8.js';
29
- import './LanguageSwitcher-3fa20077.js';
23
+ import './FilterField-bec061bc.js';
24
+ import './useLazyInput-0b6932aa.js';
25
+ import './MultiselectDropdown-a97be6bc.js';
26
+ import './formFieldText-f4188e55.js';
27
+ import './useMounted-1e4cc87b.js';
28
+ import './Checkbox-1957067a.js';
29
+ import 'react-dom';
30
+ import './Pointer-b4abee91.js';
31
+ import './useMediaQuery-4c1b1fa6.js';
32
+ import './navigation-5216dbad.js';
33
+ import './Link-6067a27f.js';
34
+ import './LanguageSwitcher-f9218fdc.js';
30
35
 
31
36
  var StyledImage = styled(Image).withConfig({
32
37
  displayName: "PointOfInterestDetail__StyledImage",
@@ -39,7 +44,7 @@ var Facts = styled(POIFacts).withConfig({
39
44
  var PoiTitle = styled(Heading).withConfig({
40
45
  displayName: "PointOfInterestDetail__PoiTitle",
41
46
  componentId: "sc-hksryh-2"
42
- })(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n max-width: 880px;\n\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 &:not(:first-child) {\n margin-top: ", "px;\n }\n"], ["\n max-width: 880px;\n\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 &:not(:first-child) {\n margin-top: ", "px;\n }\n"])), spacings.nudge * 3);
47
+ })(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n max-width: 880px;\n\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 &:not(:first-child) {\n margin-top: ", "px;\n }\n"], ["\n max-width: 880px;\n\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 &:not(:first-child) {\n margin-top: ", "px;\n }\n"])), spacings.nudge * 3);
43
48
  var PoiText = styled(Copy).withConfig({
44
49
  displayName: "PointOfInterestDetail__PoiText",
45
50
  componentId: "sc-hksryh-3"
@@ -109,16 +114,7 @@ var PointOfInterestDetail = function (_a) {
109
114
  })))));
110
115
  };
111
116
  var PointOfInterestDetail$1 = withLibTheme(PointOfInterestDetail);
112
- var templateObject_1$2, templateObject_2$2, templateObject_3$1, templateObject_4$1;
113
-
114
- var Content = styled.div.withConfig({
115
- displayName: "PointOfInterestOverview__Content",
116
- componentId: "sc-epctuk-0"
117
- })(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n & > * + * {\n margin-top: ", "px;\n }\n }\n"], ["\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n & > * + * {\n margin-top: ", "px;\n }\n }\n"])), spacings.nudge * 5, mq.large, spacings.nudge * 3);
118
- var Filter = styled(FilterField).withConfig({
119
- displayName: "PointOfInterestOverview__Filter",
120
- componentId: "sc-epctuk-1"
121
- })(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n"], ["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n"])), spacings.nudge * 5);
117
+ var templateObject_1$2, templateObject_2$2, templateObject_3$2, templateObject_4$1;
122
118
 
123
119
  var poiExactNameFilter = function (filterQuery) {
124
120
  return function (value) {
@@ -253,114 +249,211 @@ var filterPois = function (filterQuery, pois) {
253
249
  return prioList;
254
250
  };
255
251
 
252
+ var getFilterMatches = function (filterQuery, categoryFilters, items) {
253
+ var _a;
254
+
255
+ var searchMatches = new Map();
256
+
257
+ if (!filterQuery && !categoryFilters.length) {
258
+ for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
259
+ var item = items_1[_i];
260
+ searchMatches.set(item.id, {
261
+ item: item,
262
+ priority: 0
263
+ });
264
+ }
265
+ }
266
+
267
+ for (var _b = 0, items_2 = items; _b < items_2.length; _b++) {
268
+ var item = items_2[_b];
269
+
270
+ if ((_a = item.facts) === null || _a === void 0 ? void 0 : _a.some(function (fact) {
271
+ return categoryFilters.includes(fact);
272
+ })) {
273
+ searchMatches.set(item.id, {
274
+ item: item,
275
+ priority: 1
276
+ });
277
+ }
278
+ } // tracking matches of each query part
279
+
280
+
281
+ var matches = filterQuery ? filterPois(escapeRegExp(filterQuery), items || []) : [];
282
+
283
+ for (var _c = 0, matches_1 = matches; _c < matches_1.length; _c++) {
284
+ var match = matches_1[_c];
285
+ if (searchMatches.has(match.item.id)) continue;
286
+ searchMatches.set(match.item.id, match);
287
+ }
288
+
289
+ return searchMatches;
290
+ };
291
+
292
+ var PoiFilterBar = function (_a) {
293
+ var hasBorders = _a.hasBorders,
294
+ value = _a.value,
295
+ onChange = _a.onChange,
296
+ textFilter = _a.textFilter,
297
+ categoryFilter = _a.categoryFilter,
298
+ mobileSubmitLabel = _a.mobileSubmitLabel,
299
+ closeIcon = _a.closeIcon,
300
+ toggleLabel = _a.toggleLabel,
301
+ filterIcon = _a.filterIcon,
302
+ indicator = _a.indicator,
303
+ isInverted = _a.isInverted,
304
+ className = _a.className;
305
+ return React__default.createElement(FilterBar, {
306
+ isInverted: isInverted,
307
+ hasBorders: hasBorders,
308
+ value: value,
309
+ onChange: onChange,
310
+ textFilter: textFilter ? {
311
+ placeholder: textFilter.placeholder || 'Search...',
312
+ icon: textFilter.icon ? textFilter.icon : function () {
313
+ return React__default.createElement(Magnifier, {
314
+ width: 18,
315
+ height: 18
316
+ });
317
+ },
318
+ submitIcon: textFilter.submitIcon ? textFilter.submitIcon : function () {
319
+ return null;
320
+ },
321
+ clearIcon: textFilter.clearIcon ? textFilter.clearIcon : function () {
322
+ return React__default.createElement(CrossBubble, null);
323
+ }
324
+ } : undefined,
325
+ categoryFilter: categoryFilter ? {
326
+ label: categoryFilter.label || 'Categories',
327
+ items: categoryFilter.items || [],
328
+ resetLabel: categoryFilter.resetLabel || 'reset selection'
329
+ } : undefined,
330
+ mobileSubmitLabel: mobileSubmitLabel || 'Apply filters',
331
+ closeIcon: closeIcon ? closeIcon : function () {
332
+ return React__default.createElement(Cross, null);
333
+ },
334
+ toggleLabel: toggleLabel || 'Search & Filter',
335
+ filterIcon: filterIcon ? filterIcon : function () {
336
+ return React__default.createElement(Filter, null);
337
+ },
338
+ indicator: indicator,
339
+ className: className
340
+ });
341
+ };
342
+
343
+ var index = /*#__PURE__*/Object.freeze({
344
+ __proto__: null,
345
+ PoiFilterBar: PoiFilterBar
346
+ });
347
+
348
+ var POISection = styled(Section).withConfig({
349
+ displayName: "PointOfInterestOverview__POISection",
350
+ componentId: "sc-epctuk-0"
351
+ })(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n overflow: visible;\n"], ["\n overflow: visible;\n"])));
352
+ var Content = styled.div.withConfig({
353
+ displayName: "PointOfInterestOverview__Content",
354
+ componentId: "sc-epctuk-1"
355
+ })(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject(["\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n & > * + * {\n margin-top: ", "px;\n }\n }\n"], ["\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n & > * + * {\n margin-top: ", "px;\n }\n }\n"])), spacings.nudge * 5, mq.large, spacings.nudge * 3);
356
+ var PoiOverviewFilterBar = styled(PoiFilterBar).withConfig({
357
+ displayName: "PointOfInterestOverview__PoiOverviewFilterBar",
358
+ componentId: "sc-epctuk-2"
359
+ })(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ", ";\n\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n\n @media ", " {\n border: none;\n }\n"], ["\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ", ";\n\n &:not(:last-child) {\n margin-bottom: ", "px;\n }\n\n @media ", " {\n border: none;\n }\n"])), function (_a) {
360
+ var theme = _a.theme,
361
+ isInverted = _a.isInverted;
362
+ return isInverted ? getColors(theme).elementBg.light : getColors(theme).elementBg.dark;
363
+ }, spacings.nudge * 5, mq.medium);
364
+
256
365
  var PointOfInterestOverview = function (_a) {
257
366
  var _b;
258
367
 
259
368
  var anchorId = _a.anchorId,
260
369
  bgMode = _a.bgMode,
261
370
  pois = _a.pois,
262
- enableFiltering = _a.enableFiltering,
263
- initialFilterQuery = _a.initialFilterQuery,
264
- _c = _a.filterPlaceholder,
265
- filterPlaceholder = _c === void 0 ? 'Filter' : _c,
266
- filterSubmitIcon = _a.filterSubmitIcon,
267
- filterClearIcon = _a.filterClearIcon;
371
+ initialPoiFilters = _a.initialPoiFilters,
372
+ poiFilters = _a.poiFilters,
373
+ customPoiFilters = _a.customPoiFilters;
268
374
 
269
- var _d = useLibTheme(),
270
- colors = _d.colors,
271
- globals = _d.globals;
375
+ var _c = useLibTheme(),
376
+ colors = _c.colors,
377
+ globals = _c.globals;
272
378
 
273
379
  var filterName = globals.sections.poiFilterName;
380
+ var factFiltername = globals.sections.poiFactFilterName;
274
381
  var isInverted = bgMode === 'inverted';
275
382
  var hasBg = bgMode === 'full';
276
383
 
277
- var _e = useState(initialFilterQuery || ''),
278
- filterQuery = _e[0],
279
- setFilterQuery = _e[1];
280
-
281
- var isMounted = useMounted();
282
- var poiMatches = React__default.useMemo(function () {
283
- var queryParts = filterQuery.split(' ').map(function (part) {
284
- return part.trim();
285
- });
286
- var searchMatches = []; // tracking matches of each query part
384
+ var _d = useState(initialPoiFilters || {
385
+ categoryFilter: [],
386
+ textFilter: ''
387
+ }),
388
+ filters = _d[0],
389
+ setFilters = _d[1];
287
390
 
288
- for (var _i = 0, queryParts_1 = queryParts; _i < queryParts_1.length; _i++) {
289
- var part = queryParts_1[_i];
290
- var matches = filterPois(escapeRegExp(part), pois || []);
391
+ var categories = useMemo(function () {
392
+ return pois === null || pois === void 0 ? void 0 : pois.reduce(function (acc, poi) {
393
+ var newCategories = __spreadArray([], acc, true);
291
394
 
292
- var _loop_1 = function (match) {
293
- var intersectionIndex = searchMatches.findIndex(function (sItem) {
294
- return sItem.match.item.id === match.item.id;
295
- });
395
+ for (var _i = 0, _a = poi.facts || []; _i < _a.length; _i++) {
396
+ var fact = _a[_i];
296
397
 
297
- if (intersectionIndex !== -1) {
298
- searchMatches[intersectionIndex].intersections += 1;
299
- } else {
300
- searchMatches.push({
301
- match: match,
302
- intersections: 1
303
- });
398
+ if (!newCategories.includes(fact)) {
399
+ newCategories.push(fact);
304
400
  }
305
- };
306
-
307
- for (var _a = 0, matches_1 = matches; _a < matches_1.length; _a++) {
308
- var match = matches_1[_a];
309
-
310
- _loop_1(match);
311
401
  }
312
- } // filter search matches by intersections so only matches with results for all search parts are shown
313
402
 
314
-
315
- return searchMatches.filter(function (m) {
316
- return m.intersections >= queryParts.length;
317
- }).map(function (m) {
318
- return __assign({}, m.match);
403
+ return newCategories;
404
+ }, []);
405
+ }, [pois]);
406
+ var poiMatches = useMemo(function () {
407
+ var matches = getFilterMatches((filters === null || filters === void 0 ? void 0 : filters.textFilter) || '', (filters === null || filters === void 0 ? void 0 : filters.categoryFilter) || [], pois || []) || pois;
408
+ return Array.from(matches).map(function (m) {
409
+ return m[1];
319
410
  });
320
- }, [filterQuery, pois]);
321
- var getFilter = useCallback(function () {
322
- return getUrlParams()[filterName];
323
- }, [filterName]);
411
+ }, [filters === null || filters === void 0 ? void 0 : filters.textFilter, filters === null || filters === void 0 ? void 0 : filters.categoryFilter, pois]);
324
412
  useEffect(function () {
325
- var urlFilter = getFilter();
326
-
327
- if (urlFilter !== undefined && urlFilter !== null && typeof urlFilter === 'string') {
328
- setFilterQuery(urlFilter);
329
- }
330
- }, [getFilter]);
331
- useEffect(function () {
332
- if (isMounted) return; // set inital data into URL
333
-
334
- if (filterQuery) {
335
- setUrlParam(filterName, filterQuery);
413
+ if (filters.textFilter) {
414
+ setUrlParam(filterName, filters.textFilter);
336
415
  } else {
337
416
  deleteUrlParam(filterName);
338
417
  }
339
- }, [filterName, filterQuery, isMounted]);
340
- useUpdateEffect(function () {
341
- // set filters to URL params
342
- if (filterQuery) {
343
- setUrlParam(filterName, filterQuery);
418
+
419
+ if (isValidArray(filters.categoryFilter, false)) {
420
+ setUrlParam(factFiltername, filters.categoryFilter.join(','));
344
421
  } else {
345
- deleteUrlParam(filterName);
422
+ deleteUrlParam(factFiltername);
346
423
  }
347
- }, [filterQuery]);
348
- return React__default.createElement(Section, {
424
+ }, [filterName, factFiltername, filters.textFilter, filters.categoryFilter]);
425
+ return React__default.createElement(POISection, {
349
426
  addSeperation: true,
350
427
  anchorId: anchorId,
351
428
  bgColor: isInverted ? colors.sectionBg.dark : hasBg ? colors.sectionBg.medium : colors.sectionBg.light,
352
429
  bgMode: mapToBgMode(bgMode, true)
353
430
  }, React__default.createElement(Wrapper, {
354
431
  addWhitespace: true
355
- }, enableFiltering && React__default.createElement(Filter, {
356
- value: filterQuery,
357
- initialValue: initialFilterQuery,
358
- placeholder: filterPlaceholder,
359
- onSubmit: setFilterQuery,
360
- submitIcon: filterSubmitIcon,
361
- clearIcon: filterClearIcon,
432
+ }, poiFilters ? customPoiFilters ? customPoiFilters === null || customPoiFilters === void 0 ? void 0 : customPoiFilters({
433
+ filters: filters,
434
+ setFilters: setFilters,
435
+ pois: pois || [],
436
+ settings: poiFilters
437
+ }) : React__default.createElement(PoiOverviewFilterBar, {
438
+ hasBorders: true,
439
+ value: filters,
440
+ onChange: setFilters,
441
+ textFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.textFilter) || undefined,
442
+ categoryFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.categoryFilter) ? __assign(__assign({}, poiFilters.categoryFilter), {
443
+ items: categories === null || categories === void 0 ? void 0 : categories.map(function (cat) {
444
+ return {
445
+ value: cat,
446
+ label: cat
447
+ } || [];
448
+ })
449
+ }) : undefined,
450
+ mobileSubmitLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.mobileSubmitLabel,
451
+ closeIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.closeIcon,
452
+ toggleLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.toggleLabel,
453
+ filterIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.filterIcon,
454
+ indicator: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.indicator,
362
455
  isInverted: isInverted
363
- }), React__default.createElement(Content, null, (_b = poiMatches === null || poiMatches === void 0 ? void 0 : poiMatches.sort(function (a, b) {
456
+ }) : null, React__default.createElement(Content, null, (_b = poiMatches === null || poiMatches === void 0 ? void 0 : poiMatches.sort(function (a, b) {
364
457
  return a.priority - b.priority;
365
458
  })) === null || _b === void 0 ? void 0 : _b.map(function (poi, i) {
366
459
  return React__default.createElement(POICard, __assign({
@@ -371,7 +464,7 @@ var PointOfInterestOverview = function (_a) {
371
464
  }))));
372
465
  };
373
466
  var PointOfInterestOverview$1 = withLibTheme(PointOfInterestOverview);
374
- var templateObject_1$1, templateObject_2$1;
467
+ var templateObject_1$1, templateObject_2$1, templateObject_3$1;
375
468
 
376
469
  var genHeightStyles = function () {
377
470
  return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n // Doing some crazy shit to calculate curent navbar height in CSS\n ", "\n"], ["\n // Doing some crazy shit to calculate curent navbar height in CSS\n ", "\n"])), function (_a) {
@@ -412,7 +505,7 @@ var genHeightStyles = function () {
412
505
  };
413
506
 
414
507
  var refHeight = '100vh';
415
- return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", " {\n height: ", ";\n }\n\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n @media ", " {\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(\n ", " - ", "px\n );\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n }\n "], ["\n ", " {\n height: ", ";\n }\n\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n @media ", " {\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(\n ", " - ", "px\n );\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n }\n "])), Map, refHeight, mapToSelector(mainIdent.split('-')), Map, refHeight, navMainHeight[0], mapToSelector(mainTopIdent.split('-')), Map, refHeight, navMainTopHeight[0], mapToSelector(mainBottomIdent.split('-')), Map, refHeight, navMainBottomHeight[0], mapToSelector(fullIdent.split('-')), Map, refHeight, navFullHeight[0], mq.semilarge, mapToSelector(mainIdent.split('-')), Map, refHeight, navMainHeight[1], mapToSelector(mainTopIdent.split('-')), Map, refHeight, navMainTopHeight[1], mapToSelector(mainBottomIdent.split('-')), Map, refHeight, navMainBottomHeight[1], mapToSelector(fullIdent.split('-')), Map, refHeight, navFullHeight[1]);
508
+ return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", " {\n height: ", ";\n }\n\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n @media ", " {\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(\n ", " - ", "px\n );\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n }\n "], ["\n ", " {\n height: ", ";\n }\n\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n @media ", " {\n // with main navbar element\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and top navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n\n // with main and bottom navbar elements\n header", " ~ & {\n ", " {\n height: calc(\n ", " - ", "px\n );\n }\n }\n\n // with all navbar elements\n header", " ~ & {\n ", " {\n height: calc(", " - ", "px);\n }\n }\n }\n "])), Map$1, refHeight, mapToSelector(mainIdent.split('-')), Map$1, refHeight, navMainHeight[0], mapToSelector(mainTopIdent.split('-')), Map$1, refHeight, navMainTopHeight[0], mapToSelector(mainBottomIdent.split('-')), Map$1, refHeight, navMainBottomHeight[0], mapToSelector(fullIdent.split('-')), Map$1, refHeight, navFullHeight[0], mq.semilarge, mapToSelector(mainIdent.split('-')), Map$1, refHeight, navMainHeight[1], mapToSelector(mainTopIdent.split('-')), Map$1, refHeight, navMainTopHeight[1], mapToSelector(mainBottomIdent.split('-')), Map$1, refHeight, navMainBottomHeight[1], mapToSelector(fullIdent.split('-')), Map$1, refHeight, navFullHeight[1]);
416
509
  });
417
510
  };
418
511
 
@@ -427,14 +520,14 @@ var MapContainer = styled.div.withConfig({
427
520
  displayName: "PointOfInterestMap__MapContainer",
428
521
  componentId: "sc-1ke8oz0-1"
429
522
  })(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
430
- var Map = styled.div.withConfig({
523
+ var Map$1 = styled.div.withConfig({
431
524
  displayName: "PointOfInterestMap__Map",
432
525
  componentId: "sc-1ke8oz0-2"
433
526
  })(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n min-height: 360px;\n height: 360px;\n max-height: 1300px;\n z-index: 0;\n\n @media ", " {\n height: 600px;\n min-height: 600px;\n }\n"], ["\n min-height: 360px;\n height: 360px;\n max-height: 1300px;\n z-index: 0;\n\n @media ", " {\n height: 600px;\n min-height: 600px;\n }\n"])), mq.medium);
434
527
  var RequestGeolocationBtn = styled.button.withConfig({
435
528
  displayName: "PointOfInterestMap__RequestGeolocationBtn",
436
529
  componentId: "sc-1ke8oz0-3"
437
- })(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n position: absolute;\n top: ", "px;\n left: ", "px;\n\n background-color: transparent;\n border: none;\n padding: ", "px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ", ";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"], ["\n position: absolute;\n top: ", "px;\n left: ", "px;\n\n background-color: transparent;\n border: none;\n padding: ", "px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ", ";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"])), spacings.nudge * 2, spacings.nudge * 2, spacings.nudge, function (_a) {
530
+ })(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n background-color: transparent;\n border: none;\n padding: ", "px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ", ";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"], ["\n background-color: transparent;\n border: none;\n padding: ", "px;\n cursor: pointer;\n\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n opacity: 0.6;\n }\n }\n\n &:focus {\n outline: 2px solid ", ";\n transform: scale(1.012);\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n width: 30px;\n height: 30px;\n }\n"])), spacings.nudge, function (_a) {
438
531
  var theme = _a.theme;
439
532
  return getColors(theme).primary.default;
440
533
  });
@@ -445,9 +538,12 @@ var CardStage = styled.div.withConfig({
445
538
  var MapCardView = styled.div.withConfig({
446
539
  displayName: "PointOfInterestMap__MapCardView",
447
540
  componentId: "sc-1ke8oz0-5"
448
- })(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n max-height: 100%;\n width: 100%;\n padding: ", "px;\n overflow: auto;\n\n background: ", ";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: 8px;\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n max-width: 400px;\n }\n"], ["\n max-height: 100%;\n width: 100%;\n padding: ", "px;\n overflow: auto;\n\n background: ", ";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: 8px;\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n max-width: 400px;\n }\n"])), spacings.nudge * 2, function (_a) {
541
+ })(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n max-height: 100%;\n width: 100%;\n padding: ", "px;\n overflow: auto;\n\n background: ", ";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: ", ";\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n max-width: 400px;\n }\n"], ["\n max-height: 100%;\n width: 100%;\n padding: ", "px;\n overflow: auto;\n\n background: ", ";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);\n pointer-events: all;\n border-radius: ", ";\n\n & > * + * {\n margin-top: ", "px;\n }\n\n @media ", " {\n max-width: 400px;\n }\n"])), spacings.nudge * 2, function (_a) {
449
542
  var theme = _a.theme;
450
543
  return getColors(theme).elementBg.light;
544
+ }, function (_a) {
545
+ var theme = _a.theme;
546
+ return getGlobals(theme).sections.edgeRadius;
451
547
  }, spacings.nudge * 3, mq.medium);
452
548
  var MapCardHeader = styled.header.withConfig({
453
549
  displayName: "PointOfInterestMap__MapCardHeader",
@@ -460,6 +556,10 @@ var CloseBtn = styled.button.withConfig({
460
556
  var theme = _a.theme;
461
557
  return getColors(theme).primary.default;
462
558
  });
559
+ var Overlay = styled.div.withConfig({
560
+ displayName: "PointOfInterestMap__Overlay",
561
+ componentId: "sc-1ke8oz0-8"
562
+ })(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n position: absolute;\n top: ", "px;\n left: ", "px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ", "px;\n }\n"], ["\n position: absolute;\n top: ", "px;\n left: ", "px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ", "px;\n }\n"])), spacings.nudge * 2, spacings.nudge * 2, spacings.nudge * 2);
463
563
 
464
564
  var MapCard = function (_a) {
465
565
  var name = _a.name,
@@ -517,28 +617,62 @@ var PointOfInterestMap = function (_a) {
517
617
  customFact = _a.customFact,
518
618
  currentPosMarker = _a.currentPosMarker,
519
619
  customCardClose = _a.customCardClose,
520
- customLocationRequest = _a.customLocationRequest;
620
+ customLocationRequest = _a.customLocationRequest,
621
+ initialPoiFilters = _a.initialPoiFilters,
622
+ poiFilters = _a.poiFilters,
623
+ customPoiFilters = _a.customPoiFilters;
521
624
  var isLarge = size === 'large';
522
- var colors = useLibTheme().colors;
523
625
 
524
- var _g = useState(initialPointOfInterest || ''),
525
- activePoiId = _g[0],
526
- setActivePoiId = _g[1];
626
+ var _g = useLibTheme(),
627
+ colors = _g.colors,
628
+ globals = _g.globals;
629
+
630
+ var _h = useState(initialPointOfInterest || ''),
631
+ activePoiId = _h[0],
632
+ setActivePoiId = _h[1];
633
+
634
+ var _j = useState(false),
635
+ isDirty = _j[0],
636
+ setIsDirty = _j[1];
637
+
638
+ var _k = useState(initialPoiFilters || {
639
+ categoryFilter: [],
640
+ textFilter: ''
641
+ }),
642
+ filters = _k[0],
643
+ setFilters = _k[1];
644
+
645
+ var categories = useMemo(function () {
646
+ return pois === null || pois === void 0 ? void 0 : pois.reduce(function (acc, poi) {
647
+ var newCategories = __spreadArray([], acc, true);
527
648
 
528
- var _h = useState(false),
529
- isDirty = _h[0],
530
- setIsDirty = _h[1];
649
+ for (var _i = 0, _a = poi.facts || []; _i < _a.length; _i++) {
650
+ var fact = _a[_i];
531
651
 
652
+ if (!newCategories.includes(fact)) {
653
+ newCategories.push(fact);
654
+ }
655
+ }
656
+
657
+ return newCategories;
658
+ }, []);
659
+ }, [pois]);
660
+ var activePois = useMemo(function () {
661
+ var matches = getFilterMatches((filters === null || filters === void 0 ? void 0 : filters.textFilter) || '', (filters === null || filters === void 0 ? void 0 : filters.categoryFilter) || [], pois || []) || pois;
662
+ return Array.from(matches).map(function (m) {
663
+ return m[1].item;
664
+ });
665
+ }, [filters === null || filters === void 0 ? void 0 : filters.textFilter, filters === null || filters === void 0 ? void 0 : filters.categoryFilter, pois]);
532
666
  var activePOI = useMemo(function () {
533
- return pois === null || pois === void 0 ? void 0 : pois.find(function (poi) {
667
+ return activePois === null || activePois === void 0 ? void 0 : activePois.find(function (poi) {
534
668
  return poi.id === activePoiId;
535
669
  });
536
- }, [activePoiId, pois]);
670
+ }, [activePoiId, activePois]);
537
671
 
538
- var _j = useGeolocation(true, false),
539
- isGeolocationSupported = _j.isSupported,
540
- location = _j.location,
541
- resetGeolocation = _j.reset;
672
+ var _l = useGeolocation(true, false),
673
+ isGeolocationSupported = _l.isSupported,
674
+ location = _l.location,
675
+ resetGeolocation = _l.reset;
542
676
 
543
677
  var mapMarkers = useMemo(function () {
544
678
  var _a;
@@ -560,7 +694,7 @@ var PointOfInterestMap = function (_a) {
560
694
  iconColor: "#5383EC"
561
695
  }))
562
696
  };
563
- var markers = ((_a = pois === null || pois === void 0 ? void 0 : pois.filter(function (poi) {
697
+ var markers = ((_a = activePois === null || activePois === void 0 ? void 0 : activePois.filter(function (poi) {
564
698
  return poi.id !== undefined;
565
699
  })) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
566
700
  var id = _a.id,
@@ -583,9 +717,9 @@ var PointOfInterestMap = function (_a) {
583
717
  }
584
718
 
585
719
  return markers;
586
- }, [currentPosMarker, isGeolocationSupported, location === null || location === void 0 ? void 0 : location.coords.latitude, location === null || location === void 0 ? void 0 : location.coords.longitude, pois]);
720
+ }, [currentPosMarker, isGeolocationSupported, location === null || location === void 0 ? void 0 : location.coords.latitude, location === null || location === void 0 ? void 0 : location.coords.longitude, activePois]);
587
721
 
588
- var _k = useLeafletMap({
722
+ var _m = useLeafletMap({
589
723
  url: provider,
590
724
  attribution: attribution,
591
725
  center: center,
@@ -606,12 +740,12 @@ var PointOfInterestMap = function (_a) {
606
740
  });
607
741
  }
608
742
  }),
609
- isLoaded = _k.isLoaded,
610
- setMapContainer = _k.setContainer,
611
- flyToActive = _k.flyToActive,
612
- showAllMarkers = _k.showAllMarkers,
613
- flyToPosition = _k.flyToPosition,
614
- getCurrentZoom = _k.getCurrentZoom;
743
+ isLoaded = _m.isLoaded,
744
+ setMapContainer = _m.setContainer,
745
+ flyToActive = _m.flyToActive,
746
+ showAllMarkers = _m.showAllMarkers,
747
+ flyToPosition = _m.flyToPosition,
748
+ getCurrentZoom = _m.getCurrentZoom;
615
749
 
616
750
  useEffect(function () {
617
751
  if (isLoaded && !isDirty) {
@@ -686,6 +820,25 @@ var PointOfInterestMap = function (_a) {
686
820
  });
687
821
  };
688
822
 
823
+ var filterName = globals.sections.poiFilterName;
824
+ var factFiltername = globals.sections.poiFactFilterName;
825
+ useEffect(function () {
826
+ if (filters.textFilter) {
827
+ setUrlParam(filterName, filters.textFilter);
828
+ } else {
829
+ deleteUrlParam(filterName);
830
+ }
831
+
832
+ if (isValidArray(filters.categoryFilter, false)) {
833
+ setUrlParam(factFiltername, filters.categoryFilter.join(','));
834
+ } else {
835
+ deleteUrlParam(factFiltername);
836
+ }
837
+ }, [filterName, factFiltername, filters.textFilter, filters.categoryFilter]);
838
+ useEffect(function () {
839
+ setActivePoiId('');
840
+ setIsDirty(false);
841
+ }, [filters]);
689
842
  return React__default.createElement(PoiMapSection, {
690
843
  anchorId: anchorId,
691
844
  bgColor: "image",
@@ -693,14 +846,36 @@ var PointOfInterestMap = function (_a) {
693
846
  isLarge: isLarge
694
847
  }, React__default.createElement(Wrapper, {
695
848
  clampWidth: isLarge ? 'large' : 'normal'
696
- }, React__default.createElement(MapContainer, null, React__default.createElement(Map, {
849
+ }, React__default.createElement(MapContainer, null, React__default.createElement(Map$1, {
697
850
  ref: setMapContainer,
698
851
  isLarge: size === 'large'
699
- }), showOwnPosition && React__default.createElement(RequestGeolocationBtn, {
852
+ }), (showOwnPosition || poiFilters) && React__default.createElement(Overlay, null, showOwnPosition && React__default.createElement(RequestGeolocationBtn, {
700
853
  onClick: handleLocationRequest
701
854
  }, customLocationRequest || React__default.createElement(MyLocation, {
702
855
  iconColor: colors.text.default
703
- })), activePOI && activePOI.name && React__default.createElement(CardStage, {
856
+ })), poiFilters ? customPoiFilters ? customPoiFilters({
857
+ filters: filters,
858
+ setFilters: setFilters,
859
+ pois: pois || [],
860
+ settings: poiFilters
861
+ }) : React__default.createElement(PoiFilterBar, {
862
+ value: filters,
863
+ onChange: setFilters,
864
+ textFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.textFilter) || undefined,
865
+ categoryFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.categoryFilter) ? __assign(__assign({}, poiFilters.categoryFilter), {
866
+ items: categories === null || categories === void 0 ? void 0 : categories.map(function (cat) {
867
+ return {
868
+ value: cat,
869
+ label: cat
870
+ } || [];
871
+ })
872
+ }) : undefined,
873
+ mobileSubmitLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.mobileSubmitLabel,
874
+ closeIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.closeIcon,
875
+ toggleLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.toggleLabel,
876
+ filterIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.filterIcon,
877
+ indicator: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.indicator
878
+ }) : null), activePOI && activePOI.name && React__default.createElement(CardStage, {
704
879
  onClick: function (ev) {
705
880
  if (ev.target !== ev.currentTarget) return;
706
881
  setActivePoiId('');
@@ -714,7 +889,7 @@ var PointOfInterestMap = function (_a) {
714
889
  }))))));
715
890
  };
716
891
  var PointOfInterestMap$1 = withLibTheme(PointOfInterestMap);
717
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
892
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11;
718
893
 
719
- export { PointOfInterestDetail$1 as PointOfInterestDetail, PointOfInterestMap$1 as PointOfInterestMap, PointOfInterestOverview$1 as PointOfInterestOverview };
894
+ export { index as PoiPartials, PointOfInterestDetail$1 as PointOfInterestDetail, PointOfInterestMap$1 as PointOfInterestMap, PointOfInterestOverview$1 as PointOfInterestOverview };
720
895
  //# sourceMappingURL=sections.pois.js.map