@blateral/b.kit 2.7.5 → 2.8.0

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 (311) 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-2266ee4d.js +2 -0
  22. package/cjs/FilterBar-2266ee4d.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-ce2084d6.js +2 -0
  38. package/cjs/MultiselectDropdown-ce2084d6.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-f9e957c1.js +460 -0
  132. package/esm/FilterBar-f9e957c1.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-10ab18cf.js +296 -0
  148. package/esm/MultiselectDropdown-10ab18cf.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 +24 -24
  198. package/esm/sections.news.js +17 -18
  199. package/esm/sections.news.js.map +1 -1
  200. package/esm/sections.pois.js +282 -145
  201. package/esm/sections.pois.js.map +1 -1
  202. package/esm/{styles-da982973.js → styles-1f1841ef.js} +4 -3
  203. package/esm/styles-1f1841ef.js.map +1 -0
  204. package/esm/typography.js +6 -6
  205. package/esm/{useCookieConsent-6b2d4d93.js → useCookieConsent-6661d419.js} +49 -49
  206. package/esm/useCookieConsent-6661d419.js.map +1 -0
  207. package/esm/{useEqualSheetHeight-97420d63.js → useEqualSheetHeight-60ff9de7.js} +4 -4
  208. package/esm/{useEqualSheetHeight-97420d63.js.map → useEqualSheetHeight-60ff9de7.js.map} +1 -1
  209. package/esm/{useLazyInput-54d1785c.js → useLazyInput-0b6932aa.js} +2 -2
  210. package/esm/{useLazyInput-54d1785c.js.map → useLazyInput-0b6932aa.js.map} +1 -1
  211. package/esm/{useLeafletMap-84170d32.js → useLeafletMap-fa0ab7d4.js} +10 -6
  212. package/esm/useLeafletMap-fa0ab7d4.js.map +1 -0
  213. package/esm/{useMediaQuery-b42fd64e.js → useMediaQuery-4c1b1fa6.js} +3 -3
  214. package/esm/{useMediaQuery-b42fd64e.js.map → useMediaQuery-4c1b1fa6.js.map} +1 -1
  215. package/esm/useScroll-881c7b04.js +76 -0
  216. package/esm/useScroll-881c7b04.js.map +1 -0
  217. package/package.json +2 -1
  218. package/types/blocks.d.ts +1 -0
  219. package/types/blocks.d.ts.map +1 -1
  220. package/types/components/base/icons/Cross.d.ts +2 -0
  221. package/types/components/base/icons/Cross.d.ts.map +1 -1
  222. package/types/components/base/icons/CrossBubble.d.ts +8 -0
  223. package/types/components/base/icons/CrossBubble.d.ts.map +1 -0
  224. package/types/components/base/icons/Icons.d.ts +3 -0
  225. package/types/components/base/icons/Icons.d.ts.map +1 -1
  226. package/types/components/base/icons/Magnifier.d.ts +2 -0
  227. package/types/components/base/icons/Magnifier.d.ts.map +1 -1
  228. package/types/components/blocks/FilterBar.d.ts +38 -0
  229. package/types/components/blocks/FilterBar.d.ts.map +1 -0
  230. package/types/components/blocks/POICard.d.ts.map +1 -1
  231. package/types/components/blocks/Portal.d.ts +8 -0
  232. package/types/components/blocks/Portal.d.ts.map +1 -0
  233. package/types/components/fields/Checkbox.d.ts +3 -1
  234. package/types/components/fields/Checkbox.d.ts.map +1 -1
  235. package/types/components/fields/FilterField.d.ts +1 -0
  236. package/types/components/fields/FilterField.d.ts.map +1 -1
  237. package/types/components/fields/MultiselectDropdown.d.ts +42 -0
  238. package/types/components/fields/MultiselectDropdown.d.ts.map +1 -0
  239. package/types/components/sections/pois/PointOfInterestMap.d.ts +42 -1
  240. package/types/components/sections/pois/PointOfInterestMap.d.ts.map +1 -1
  241. package/types/components/sections/pois/PointOfInterestOverview.d.ts +41 -20
  242. package/types/components/sections/pois/PointOfInterestOverview.d.ts.map +1 -1
  243. package/types/components/sections/pois/filters.d.ts +10 -0
  244. package/types/components/sections/pois/filters.d.ts.map +1 -0
  245. package/types/components/sections/pois/partials/PoiFilterBar.d.ts +8 -0
  246. package/types/components/sections/pois/partials/PoiFilterBar.d.ts.map +1 -0
  247. package/types/components/sections/pois/partials/index.d.ts +3 -0
  248. package/types/components/sections/pois/partials/index.d.ts.map +1 -0
  249. package/types/fields.d.ts +1 -0
  250. package/types/fields.d.ts.map +1 -1
  251. package/types/sections.pois.d.ts +1 -0
  252. package/types/sections.pois.d.ts.map +1 -1
  253. package/types/utils/styles.d.ts +1 -0
  254. package/types/utils/styles.d.ts.map +1 -1
  255. package/types/utils/useLeafletMap.d.ts.map +1 -1
  256. package/cjs/Actions-c7b16449.js +0 -2
  257. package/cjs/Bdot-5f8e0450.js +0 -2
  258. package/cjs/Button-51ea72b7.js +0 -2
  259. package/cjs/ButtonGhost-628bbd60.js +0 -2
  260. package/cjs/Callout-5dd16679.js +0 -2
  261. package/cjs/Checkbox-1c34c7e6.js +0 -2
  262. package/cjs/Checkbox-1c34c7e6.js.map +0 -1
  263. package/cjs/ClockFilled-2483aa4a.js +0 -2
  264. package/cjs/ClockFilled-2483aa4a.js.map +0 -1
  265. package/cjs/Control-08d09950.js +0 -2
  266. package/cjs/Copy-ea6ab025.js +0 -2
  267. package/cjs/EventBlock-04e719a7.js +0 -2
  268. package/cjs/Filter-d6d90b8b.js +0 -2
  269. package/cjs/Filter-d6d90b8b.js.map +0 -1
  270. package/cjs/FilterField-cce38ffb.js +0 -2
  271. package/cjs/FilterField-cce38ffb.js.map +0 -1
  272. package/cjs/Grid-6f4f99bc.js +0 -2
  273. package/cjs/Image-c72f7a80.js +0 -2
  274. package/cjs/InfoList-71d3388a.js +0 -2
  275. package/cjs/LanguageSwitcher-8fdd22ba.js +0 -2
  276. package/cjs/LibThemeProvider-4823de57.js +0 -2
  277. package/cjs/Link-5a6f1633.js +0 -2
  278. package/cjs/Navigation-939e4d0e.js +0 -2
  279. package/cjs/POICard-e46f9041.js +0 -2
  280. package/cjs/POICard-e46f9041.js.map +0 -1
  281. package/cjs/Pointer-fde7b548.js +0 -2
  282. package/cjs/Section-e8e8cf81.js +0 -2
  283. package/cjs/SocialList-1d5f75a8.js +0 -2
  284. package/cjs/TableBlock-f2c59d9b.js +0 -2
  285. package/cjs/Tag-9238cf0c.js +0 -2
  286. package/cjs/Textarea-03bd2c34.js +0 -2
  287. package/cjs/Textfield-56996c98.js +0 -2
  288. package/cjs/Textfield-56996c98.js.map +0 -1
  289. package/cjs/VideoBlock-dea7de8a.js +0 -2
  290. package/cjs/VideoCard-f6c436ca.js +0 -2
  291. package/cjs/Wrapper-ff6854d7.js +0 -2
  292. package/cjs/navigation-bf154e6e.js +0 -2
  293. package/cjs/styles-3a495a2d.js +0 -2
  294. package/cjs/styles-3a495a2d.js.map +0 -1
  295. package/cjs/useCookieConsent-aa9f1104.js +0 -2
  296. package/cjs/useEqualSheetHeight-501f4c5f.js +0 -2
  297. package/cjs/useLazyInput-f71c221b.js +0 -2
  298. package/cjs/useLeafletMap-2e608b01.js +0 -2
  299. package/cjs/useMediaQuery-3d1054e5.js +0 -2
  300. package/esm/Checkbox-dd12facd.js.map +0 -1
  301. package/esm/ClockFilled-62515a8f.js.map +0 -1
  302. package/esm/Filter-2b5f5e53.js +0 -32
  303. package/esm/Filter-2b5f5e53.js.map +0 -1
  304. package/esm/FilterField-962ec61f.js +0 -129
  305. package/esm/FilterField-962ec61f.js.map +0 -1
  306. package/esm/POICard-96ec71d8.js +0 -116
  307. package/esm/POICard-96ec71d8.js.map +0 -1
  308. package/esm/Textfield-d2f201a9.js.map +0 -1
  309. package/esm/styles-da982973.js.map +0 -1
  310. package/esm/useCookieConsent-6b2d4d93.js.map +0 -1
  311. 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, 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-f9e957c1.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-10ab18cf.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",
@@ -111,15 +116,6 @@ var PointOfInterestDetail = function (_a) {
111
116
  var PointOfInterestDetail$1 = withLibTheme(PointOfInterestDetail);
112
117
  var templateObject_1$2, templateObject_2$2, templateObject_3$1, templateObject_4$1;
113
118
 
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);
122
-
123
119
  var poiExactNameFilter = function (filterQuery) {
124
120
  return function (value) {
125
121
  var regex = new RegExp(filterQuery);
@@ -253,98 +249,156 @@ var filterPois = function (filterQuery, pois) {
253
249
  return prioList;
254
250
  };
255
251
 
256
- var PointOfInterestOverview = function (_a) {
257
- var _b;
252
+ var getFilterMatches = function (filterQuery, includeIds, items) {
253
+ var searchMatches = new Map();
258
254
 
259
- var anchorId = _a.anchorId,
260
- bgMode = _a.bgMode,
261
- 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;
255
+ if (!filterQuery && !includeIds.length) {
256
+ for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
257
+ var item = items_1[_i];
258
+ searchMatches.set(item.id, {
259
+ item: item,
260
+ priority: 0
261
+ });
262
+ }
263
+ }
268
264
 
269
- var _d = useLibTheme(),
270
- colors = _d.colors,
271
- globals = _d.globals;
265
+ for (var _a = 0, items_2 = items; _a < items_2.length; _a++) {
266
+ var item = items_2[_a];
272
267
 
273
- var filterName = globals.sections.poiFilterName;
274
- var isInverted = bgMode === 'inverted';
275
- var hasBg = bgMode === 'full';
268
+ if (includeIds.includes(item.id)) {
269
+ searchMatches.set(item.id, {
270
+ item: item,
271
+ priority: 1
272
+ });
273
+ }
274
+ } // tracking matches of each query part
276
275
 
277
- var _e = useState(initialFilterQuery || ''),
278
- filterQuery = _e[0],
279
- setFilterQuery = _e[1];
280
276
 
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
277
+ var matches = filterQuery ? filterPois(escapeRegExp(filterQuery), items || []) : [];
278
+
279
+ for (var _b = 0, matches_1 = matches; _b < matches_1.length; _b++) {
280
+ var match = matches_1[_b];
281
+ if (searchMatches.has(match.item.id)) continue;
282
+ searchMatches.set(match.item.id, match);
283
+ }
287
284
 
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 || []);
285
+ return searchMatches;
286
+ };
291
287
 
292
- var _loop_1 = function (match) {
293
- var intersectionIndex = searchMatches.findIndex(function (sItem) {
294
- return sItem.match.item.id === match.item.id;
288
+ var PoiFilterBar = function (_a) {
289
+ var hasBorders = _a.hasBorders,
290
+ value = _a.value,
291
+ onChange = _a.onChange,
292
+ textFilter = _a.textFilter,
293
+ categoryFilter = _a.categoryFilter,
294
+ mobileSubmitLabel = _a.mobileSubmitLabel,
295
+ closeIcon = _a.closeIcon,
296
+ toggleLabel = _a.toggleLabel,
297
+ filterIcon = _a.filterIcon,
298
+ indicator = _a.indicator,
299
+ isInverted = _a.isInverted,
300
+ className = _a.className;
301
+ return React__default.createElement(FilterBar, {
302
+ isInverted: isInverted,
303
+ hasBorders: hasBorders,
304
+ value: value,
305
+ onChange: onChange,
306
+ textFilter: textFilter ? {
307
+ placeholder: textFilter.placeholder || 'Search...',
308
+ icon: textFilter.icon ? textFilter.icon : function () {
309
+ return React__default.createElement(Magnifier, {
310
+ width: 18,
311
+ height: 18
295
312
  });
313
+ },
314
+ submitIcon: textFilter.submitIcon ? textFilter.submitIcon : function () {
315
+ return null;
316
+ },
317
+ clearIcon: textFilter.clearIcon ? textFilter.clearIcon : function () {
318
+ return React__default.createElement(CrossBubble, null);
319
+ }
320
+ } : undefined,
321
+ categoryFilter: categoryFilter ? {
322
+ label: categoryFilter.label || 'Categories',
323
+ items: categoryFilter.items || [],
324
+ resetLabel: categoryFilter.resetLabel || 'reset selection'
325
+ } : undefined,
326
+ mobileSubmitLabel: mobileSubmitLabel || 'Apply filters',
327
+ closeIcon: closeIcon ? closeIcon : function () {
328
+ return React__default.createElement(Cross, null);
329
+ },
330
+ toggleLabel: toggleLabel || 'Search & Filter',
331
+ filterIcon: filterIcon ? filterIcon : function () {
332
+ return React__default.createElement(Filter, null);
333
+ },
334
+ indicator: indicator,
335
+ className: className
336
+ });
337
+ };
296
338
 
297
- if (intersectionIndex !== -1) {
298
- searchMatches[intersectionIndex].intersections += 1;
299
- } else {
300
- searchMatches.push({
301
- match: match,
302
- intersections: 1
303
- });
304
- }
305
- };
339
+ var index = /*#__PURE__*/Object.freeze({
340
+ __proto__: null,
341
+ PoiFilterBar: PoiFilterBar
342
+ });
343
+
344
+ var Content = styled.div.withConfig({
345
+ displayName: "PointOfInterestOverview__Content",
346
+ componentId: "sc-epctuk-0"
347
+ })(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);
348
+ var PoiOverviewFilterBar = styled(PoiFilterBar).withConfig({
349
+ displayName: "PointOfInterestOverview__PoiOverviewFilterBar",
350
+ componentId: "sc-epctuk-1"
351
+ })(templateObject_2$1 || (templateObject_2$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) {
352
+ var theme = _a.theme,
353
+ isInverted = _a.isInverted;
354
+ return isInverted ? getColors(theme).elementBg.light : getColors(theme).elementBg.dark;
355
+ }, spacings.nudge * 5, mq.medium);
306
356
 
307
- for (var _a = 0, matches_1 = matches; _a < matches_1.length; _a++) {
308
- var match = matches_1[_a];
357
+ var PointOfInterestOverview = function (_a) {
358
+ var _b;
309
359
 
310
- _loop_1(match);
311
- }
312
- } // filter search matches by intersections so only matches with results for all search parts are shown
360
+ var anchorId = _a.anchorId,
361
+ bgMode = _a.bgMode,
362
+ pois = _a.pois,
363
+ initialPoiFilters = _a.initialPoiFilters,
364
+ poiFilters = _a.poiFilters,
365
+ customPoiFilters = _a.customPoiFilters;
313
366
 
367
+ var _c = useLibTheme(),
368
+ colors = _c.colors,
369
+ globals = _c.globals;
314
370
 
315
- return searchMatches.filter(function (m) {
316
- return m.intersections >= queryParts.length;
317
- }).map(function (m) {
318
- return __assign({}, m.match);
319
- });
320
- }, [filterQuery, pois]);
321
- var getFilter = useCallback(function () {
322
- return getUrlParams()[filterName];
323
- }, [filterName]);
324
- useEffect(function () {
325
- var urlFilter = getFilter();
371
+ var filterName = globals.sections.poiFilterName;
372
+ var factFiltername = globals.sections.poiFactFilterName;
373
+ var isInverted = bgMode === 'inverted';
374
+ var hasBg = bgMode === 'full';
326
375
 
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
376
+ var _d = useState(initialPoiFilters || {
377
+ categoryFilter: [],
378
+ textFilter: ''
379
+ }),
380
+ filters = _d[0],
381
+ setFilters = _d[1];
333
382
 
334
- if (filterQuery) {
335
- setUrlParam(filterName, filterQuery);
383
+ var poiMatches = useMemo(function () {
384
+ var matches = getFilterMatches((filters === null || filters === void 0 ? void 0 : filters.textFilter) || '', (filters === null || filters === void 0 ? void 0 : filters.categoryFilter) || [], pois || []) || pois;
385
+ return Array.from(matches).map(function (m) {
386
+ return m[1];
387
+ });
388
+ }, [pois, filters]);
389
+ useEffect(function () {
390
+ if (filters.textFilter) {
391
+ setUrlParam(filterName, filters.textFilter);
336
392
  } else {
337
393
  deleteUrlParam(filterName);
338
394
  }
339
- }, [filterName, filterQuery, isMounted]);
340
- useUpdateEffect(function () {
341
- // set filters to URL params
342
- if (filterQuery) {
343
- setUrlParam(filterName, filterQuery);
395
+
396
+ if (isValidArray(filters.categoryFilter, false)) {
397
+ setUrlParam(factFiltername, filters.categoryFilter.join(','));
344
398
  } else {
345
- deleteUrlParam(filterName);
399
+ deleteUrlParam(factFiltername);
346
400
  }
347
- }, [filterQuery]);
401
+ }, [filterName, factFiltername, filters.textFilter, filters.categoryFilter]);
348
402
  return React__default.createElement(Section, {
349
403
  addSeperation: true,
350
404
  anchorId: anchorId,
@@ -352,15 +406,30 @@ var PointOfInterestOverview = function (_a) {
352
406
  bgMode: mapToBgMode(bgMode, true)
353
407
  }, React__default.createElement(Wrapper, {
354
408
  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,
362
- isInverted: isInverted
363
- }), React__default.createElement(Content, null, (_b = poiMatches === null || poiMatches === void 0 ? void 0 : poiMatches.sort(function (a, b) {
409
+ }, poiFilters ? customPoiFilters ? customPoiFilters === null || customPoiFilters === void 0 ? void 0 : customPoiFilters({
410
+ filters: filters,
411
+ setFilters: setFilters,
412
+ pois: pois || [],
413
+ settings: poiFilters
414
+ }) : React__default.createElement(PoiOverviewFilterBar, {
415
+ hasBorders: true,
416
+ value: filters,
417
+ onChange: setFilters,
418
+ textFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.textFilter) || undefined,
419
+ categoryFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.categoryFilter) ? __assign(__assign({}, poiFilters.categoryFilter), {
420
+ items: pois === null || pois === void 0 ? void 0 : pois.map(function (poi) {
421
+ return {
422
+ value: poi.id,
423
+ label: poi.name
424
+ } || [];
425
+ })
426
+ }) : undefined,
427
+ mobileSubmitLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.mobileSubmitLabel,
428
+ closeIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.closeIcon,
429
+ toggleLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.toggleLabel,
430
+ filterIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.filterIcon,
431
+ indicator: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.indicator
432
+ }) : null, React__default.createElement(Content, null, (_b = poiMatches === null || poiMatches === void 0 ? void 0 : poiMatches.sort(function (a, b) {
364
433
  return a.priority - b.priority;
365
434
  })) === null || _b === void 0 ? void 0 : _b.map(function (poi, i) {
366
435
  return React__default.createElement(POICard, __assign({
@@ -412,7 +481,7 @@ var genHeightStyles = function () {
412
481
  };
413
482
 
414
483
  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]);
484
+ 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
485
  });
417
486
  };
418
487
 
@@ -427,14 +496,14 @@ var MapContainer = styled.div.withConfig({
427
496
  displayName: "PointOfInterestMap__MapContainer",
428
497
  componentId: "sc-1ke8oz0-1"
429
498
  })(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
430
- var Map = styled.div.withConfig({
499
+ var Map$1 = styled.div.withConfig({
431
500
  displayName: "PointOfInterestMap__Map",
432
501
  componentId: "sc-1ke8oz0-2"
433
502
  })(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
503
  var RequestGeolocationBtn = styled.button.withConfig({
435
504
  displayName: "PointOfInterestMap__RequestGeolocationBtn",
436
505
  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) {
506
+ })(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
507
  var theme = _a.theme;
439
508
  return getColors(theme).primary.default;
440
509
  });
@@ -445,9 +514,12 @@ var CardStage = styled.div.withConfig({
445
514
  var MapCardView = styled.div.withConfig({
446
515
  displayName: "PointOfInterestMap__MapCardView",
447
516
  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) {
517
+ })(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
518
  var theme = _a.theme;
450
519
  return getColors(theme).elementBg.light;
520
+ }, function (_a) {
521
+ var theme = _a.theme;
522
+ return getGlobals(theme).sections.edgeRadius;
451
523
  }, spacings.nudge * 3, mq.medium);
452
524
  var MapCardHeader = styled.header.withConfig({
453
525
  displayName: "PointOfInterestMap__MapCardHeader",
@@ -460,6 +532,10 @@ var CloseBtn = styled.button.withConfig({
460
532
  var theme = _a.theme;
461
533
  return getColors(theme).primary.default;
462
534
  });
535
+ var Overlay = styled.div.withConfig({
536
+ displayName: "PointOfInterestMap__Overlay",
537
+ componentId: "sc-1ke8oz0-8"
538
+ })(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
539
 
464
540
  var MapCard = function (_a) {
465
541
  var name = _a.name,
@@ -517,28 +593,48 @@ var PointOfInterestMap = function (_a) {
517
593
  customFact = _a.customFact,
518
594
  currentPosMarker = _a.currentPosMarker,
519
595
  customCardClose = _a.customCardClose,
520
- customLocationRequest = _a.customLocationRequest;
596
+ customLocationRequest = _a.customLocationRequest,
597
+ initialPoiFilters = _a.initialPoiFilters,
598
+ poiFilters = _a.poiFilters,
599
+ customPoiFilters = _a.customPoiFilters;
521
600
  var isLarge = size === 'large';
522
- var colors = useLibTheme().colors;
523
601
 
524
- var _g = useState(initialPointOfInterest || ''),
525
- activePoiId = _g[0],
526
- setActivePoiId = _g[1];
602
+ var _g = useLibTheme(),
603
+ colors = _g.colors,
604
+ globals = _g.globals;
605
+
606
+ var _h = useState(initialPointOfInterest || ''),
607
+ activePoiId = _h[0],
608
+ setActivePoiId = _h[1];
527
609
 
528
- var _h = useState(false),
529
- isDirty = _h[0],
530
- setIsDirty = _h[1];
610
+ var _j = useState(false),
611
+ isDirty = _j[0],
612
+ setIsDirty = _j[1];
531
613
 
614
+ var _k = useState(initialPoiFilters || {
615
+ categoryFilter: [],
616
+ textFilter: ''
617
+ }),
618
+ filters = _k[0],
619
+ setFilters = _k[1];
620
+
621
+ var activePois = useMemo(function () {
622
+ // text matches
623
+ var matches = getFilterMatches((filters === null || filters === void 0 ? void 0 : filters.textFilter) || '', (filters === null || filters === void 0 ? void 0 : filters.categoryFilter) || [], pois || []) || pois;
624
+ return Array.from(matches).map(function (m) {
625
+ return m[1].item;
626
+ });
627
+ }, [pois, filters]);
532
628
  var activePOI = useMemo(function () {
533
- return pois === null || pois === void 0 ? void 0 : pois.find(function (poi) {
629
+ return activePois === null || activePois === void 0 ? void 0 : activePois.find(function (poi) {
534
630
  return poi.id === activePoiId;
535
631
  });
536
- }, [activePoiId, pois]);
632
+ }, [activePoiId, activePois]);
537
633
 
538
- var _j = useGeolocation(true, false),
539
- isGeolocationSupported = _j.isSupported,
540
- location = _j.location,
541
- resetGeolocation = _j.reset;
634
+ var _l = useGeolocation(true, false),
635
+ isGeolocationSupported = _l.isSupported,
636
+ location = _l.location,
637
+ resetGeolocation = _l.reset;
542
638
 
543
639
  var mapMarkers = useMemo(function () {
544
640
  var _a;
@@ -560,7 +656,7 @@ var PointOfInterestMap = function (_a) {
560
656
  iconColor: "#5383EC"
561
657
  }))
562
658
  };
563
- var markers = ((_a = pois === null || pois === void 0 ? void 0 : pois.filter(function (poi) {
659
+ var markers = ((_a = activePois === null || activePois === void 0 ? void 0 : activePois.filter(function (poi) {
564
660
  return poi.id !== undefined;
565
661
  })) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
566
662
  var id = _a.id,
@@ -583,9 +679,9 @@ var PointOfInterestMap = function (_a) {
583
679
  }
584
680
 
585
681
  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]);
682
+ }, [currentPosMarker, isGeolocationSupported, location === null || location === void 0 ? void 0 : location.coords.latitude, location === null || location === void 0 ? void 0 : location.coords.longitude, activePois]);
587
683
 
588
- var _k = useLeafletMap({
684
+ var _m = useLeafletMap({
589
685
  url: provider,
590
686
  attribution: attribution,
591
687
  center: center,
@@ -606,12 +702,12 @@ var PointOfInterestMap = function (_a) {
606
702
  });
607
703
  }
608
704
  }),
609
- isLoaded = _k.isLoaded,
610
- setMapContainer = _k.setContainer,
611
- flyToActive = _k.flyToActive,
612
- showAllMarkers = _k.showAllMarkers,
613
- flyToPosition = _k.flyToPosition,
614
- getCurrentZoom = _k.getCurrentZoom;
705
+ isLoaded = _m.isLoaded,
706
+ setMapContainer = _m.setContainer,
707
+ flyToActive = _m.flyToActive,
708
+ showAllMarkers = _m.showAllMarkers,
709
+ flyToPosition = _m.flyToPosition,
710
+ getCurrentZoom = _m.getCurrentZoom;
615
711
 
616
712
  useEffect(function () {
617
713
  if (isLoaded && !isDirty) {
@@ -686,6 +782,25 @@ var PointOfInterestMap = function (_a) {
686
782
  });
687
783
  };
688
784
 
785
+ var filterName = globals.sections.poiFilterName;
786
+ var factFiltername = globals.sections.poiFactFilterName;
787
+ useEffect(function () {
788
+ if (filters.textFilter) {
789
+ setUrlParam(filterName, filters.textFilter);
790
+ } else {
791
+ deleteUrlParam(filterName);
792
+ }
793
+
794
+ if (isValidArray(filters.categoryFilter, false)) {
795
+ setUrlParam(factFiltername, filters.categoryFilter.join(','));
796
+ } else {
797
+ deleteUrlParam(factFiltername);
798
+ }
799
+ }, [filterName, factFiltername, filters.textFilter, filters.categoryFilter]);
800
+ useEffect(function () {
801
+ setActivePoiId('');
802
+ setIsDirty(false);
803
+ }, [filters]);
689
804
  return React__default.createElement(PoiMapSection, {
690
805
  anchorId: anchorId,
691
806
  bgColor: "image",
@@ -693,14 +808,36 @@ var PointOfInterestMap = function (_a) {
693
808
  isLarge: isLarge
694
809
  }, React__default.createElement(Wrapper, {
695
810
  clampWidth: isLarge ? 'large' : 'normal'
696
- }, React__default.createElement(MapContainer, null, React__default.createElement(Map, {
811
+ }, React__default.createElement(MapContainer, null, React__default.createElement(Map$1, {
697
812
  ref: setMapContainer,
698
813
  isLarge: size === 'large'
699
- }), showOwnPosition && React__default.createElement(RequestGeolocationBtn, {
814
+ }), (showOwnPosition || poiFilters) && React__default.createElement(Overlay, null, showOwnPosition && React__default.createElement(RequestGeolocationBtn, {
700
815
  onClick: handleLocationRequest
701
816
  }, customLocationRequest || React__default.createElement(MyLocation, {
702
817
  iconColor: colors.text.default
703
- })), activePOI && activePOI.name && React__default.createElement(CardStage, {
818
+ })), poiFilters ? customPoiFilters ? customPoiFilters({
819
+ filters: filters,
820
+ setFilters: setFilters,
821
+ pois: pois || [],
822
+ settings: poiFilters
823
+ }) : React__default.createElement(PoiFilterBar, {
824
+ value: filters,
825
+ onChange: setFilters,
826
+ textFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.textFilter) || undefined,
827
+ categoryFilter: (poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.categoryFilter) ? __assign(__assign({}, poiFilters.categoryFilter), {
828
+ items: pois === null || pois === void 0 ? void 0 : pois.map(function (poi) {
829
+ return {
830
+ value: poi.id,
831
+ label: poi.name
832
+ } || [];
833
+ })
834
+ }) : undefined,
835
+ mobileSubmitLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.mobileSubmitLabel,
836
+ closeIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.closeIcon,
837
+ toggleLabel: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.toggleLabel,
838
+ filterIcon: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.filterIcon,
839
+ indicator: poiFilters === null || poiFilters === void 0 ? void 0 : poiFilters.indicator
840
+ }) : null), activePOI && activePOI.name && React__default.createElement(CardStage, {
704
841
  onClick: function (ev) {
705
842
  if (ev.target !== ev.currentTarget) return;
706
843
  setActivePoiId('');
@@ -714,7 +851,7 @@ var PointOfInterestMap = function (_a) {
714
851
  }))))));
715
852
  };
716
853
  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;
854
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11;
718
855
 
719
- export { PointOfInterestDetail$1 as PointOfInterestDetail, PointOfInterestMap$1 as PointOfInterestMap, PointOfInterestOverview$1 as PointOfInterestOverview };
856
+ export { index as PoiPartials, PointOfInterestDetail$1 as PointOfInterestDetail, PointOfInterestMap$1 as PointOfInterestMap, PointOfInterestOverview$1 as PointOfInterestOverview };
720
857
  //# sourceMappingURL=sections.pois.js.map