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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/cjs/EventBlock-10b9d78d.js +2 -0
  2. package/cjs/EventBlock-10b9d78d.js.map +1 -0
  3. package/cjs/FileUpload-ece8bb07.js +2 -0
  4. package/cjs/FileUpload-ece8bb07.js.map +1 -0
  5. package/cjs/Filter-d6d90b8b.js +2 -0
  6. package/cjs/Filter-d6d90b8b.js.map +1 -0
  7. package/cjs/FilterField-cf9e2f16.js +2 -0
  8. package/cjs/FilterField-cf9e2f16.js.map +1 -0
  9. package/cjs/Grid-39b12e21.js +2 -0
  10. package/cjs/Grid-39b12e21.js.map +1 -0
  11. package/cjs/InfoList-577f3c57.js +2 -0
  12. package/cjs/InfoList-577f3c57.js.map +1 -0
  13. package/cjs/POICard-492bf8d0.js +2 -0
  14. package/cjs/POICard-492bf8d0.js.map +1 -0
  15. package/cjs/TableBlock-a5b16e8f.js +2 -0
  16. package/cjs/TableBlock-a5b16e8f.js.map +1 -0
  17. package/cjs/Tag-5c72cc0d.js +2 -0
  18. package/cjs/Tag-5c72cc0d.js.map +1 -0
  19. package/cjs/VideoBlock-301997a9.js +2 -0
  20. package/cjs/VideoBlock-301997a9.js.map +1 -0
  21. package/cjs/VideoCard-405b518a.js +2 -0
  22. package/cjs/VideoCard-405b518a.js.map +1 -0
  23. package/cjs/Wrapper-91748bdb.js +2 -0
  24. package/cjs/Wrapper-91748bdb.js.map +1 -0
  25. package/cjs/base.js +1 -1
  26. package/cjs/blocks.js +1 -1
  27. package/cjs/escape-1ef8dd83.js +2 -0
  28. package/cjs/escape-1ef8dd83.js.map +1 -0
  29. package/cjs/fields.js +1 -1
  30. package/cjs/fields.js.map +1 -1
  31. package/cjs/footer.js +1 -1
  32. package/cjs/footer.js.map +1 -1
  33. package/cjs/hooks.js +1 -1
  34. package/cjs/hooks.js.map +1 -1
  35. package/cjs/sections.js +1 -1
  36. package/cjs/sections.js.map +1 -1
  37. package/cjs/sections_events.js +2 -0
  38. package/cjs/sections_events.js.map +1 -0
  39. package/cjs/sections_forms.js +2 -0
  40. package/cjs/sections_forms.js.map +1 -0
  41. package/cjs/sections_jobs.js +2 -0
  42. package/cjs/sections_jobs.js.map +1 -0
  43. package/cjs/sections_news.js +1 -1
  44. package/cjs/sections_news.js.map +1 -1
  45. package/cjs/sections_pois.js +2 -0
  46. package/cjs/sections_pois.js.map +1 -0
  47. package/cjs/structuredData-0b1278a9.js +2 -0
  48. package/cjs/structuredData-0b1278a9.js.map +1 -0
  49. package/cjs/urlParams-7525f638.js +2 -0
  50. package/cjs/urlParams-7525f638.js.map +1 -0
  51. package/cjs/useEqualSheetHeight-cfd4176e.js +2 -0
  52. package/cjs/useEqualSheetHeight-cfd4176e.js.map +1 -0
  53. package/cjs/useGeolocation-d8946470.js +2 -0
  54. package/cjs/useGeolocation-d8946470.js.map +1 -0
  55. package/cjs/useLazyInput-f71c221b.js +2 -0
  56. package/cjs/useLazyInput-f71c221b.js.map +1 -0
  57. package/cjs/useLeafletMap-2e608b01.js +2 -0
  58. package/cjs/useLeafletMap-2e608b01.js.map +1 -0
  59. package/cjs/useScrollTo-fdd665da.js +2 -0
  60. package/cjs/useScrollTo-fdd665da.js.map +1 -0
  61. package/esm/{Actions-73e13c48.js → Actions-3f06c2e9.js} +3 -3
  62. package/esm/{Actions-73e13c48.js.map → Actions-3f06c2e9.js.map} +1 -1
  63. package/esm/{Bdot-30b047cc.js → Bdot-fae262fc.js} +3 -3
  64. package/esm/{Bdot-30b047cc.js.map → Bdot-fae262fc.js.map} +1 -1
  65. package/esm/{Button-678be396.js → Button-ab1a4e79.js} +3 -3
  66. package/esm/{Button-678be396.js.map → Button-ab1a4e79.js.map} +1 -1
  67. package/esm/{ButtonGhost-6673a07e.js → ButtonGhost-5b498dba.js} +3 -3
  68. package/esm/{ButtonGhost-6673a07e.js.map → ButtonGhost-5b498dba.js.map} +1 -1
  69. package/esm/{Callout-439308f6.js → Callout-389fed95.js} +4 -4
  70. package/esm/{Callout-439308f6.js.map → Callout-389fed95.js.map} +1 -1
  71. package/esm/{Checkbox-a365d733.js → Checkbox-957d8f33.js} +5 -5
  72. package/esm/{Checkbox-a365d733.js.map → Checkbox-957d8f33.js.map} +1 -1
  73. package/esm/{ClockFilled-8784ddac.js → ClockFilled-6bae80dc.js} +2 -2
  74. package/esm/{ClockFilled-8784ddac.js.map → ClockFilled-6bae80dc.js.map} +1 -1
  75. package/esm/{Control-e61c9395.js → Control-57a287dc.js} +3 -3
  76. package/esm/{Control-e61c9395.js.map → Control-57a287dc.js.map} +1 -1
  77. package/esm/{Copy-3444d005.js → Copy-fb124972.js} +4 -4
  78. package/esm/{Copy-3444d005.js.map → Copy-fb124972.js.map} +1 -1
  79. package/esm/EventBlock-0109da13.js +132 -0
  80. package/esm/EventBlock-0109da13.js.map +1 -0
  81. package/esm/{FilterField-f423b4d1.js → FileUpload-4ba0a672.js} +48 -165
  82. package/esm/FileUpload-4ba0a672.js.map +1 -0
  83. package/esm/Filter-fec6dc5c.js +32 -0
  84. package/esm/Filter-fec6dc5c.js.map +1 -0
  85. package/esm/FilterField-03097694.js +129 -0
  86. package/esm/FilterField-03097694.js.map +1 -0
  87. package/esm/{Wrapper-f4a70e30.js → Grid-151498da.js} +7 -224
  88. package/esm/Grid-151498da.js.map +1 -0
  89. package/esm/{Image-82417953.js → Image-b538f659.js} +5 -5
  90. package/esm/{Image-82417953.js.map → Image-b538f659.js.map} +1 -1
  91. package/esm/InfoList-616d17fd.js +74 -0
  92. package/esm/InfoList-616d17fd.js.map +1 -0
  93. package/esm/{LanguageSwitcher-a53094d3.js → LanguageSwitcher-058e0145.js} +5 -5
  94. package/esm/{LanguageSwitcher-a53094d3.js.map → LanguageSwitcher-058e0145.js.map} +1 -1
  95. package/esm/{LibThemeProvider-90a5375f.js → LibThemeProvider-a38c5bf1.js} +3 -3
  96. package/esm/{LibThemeProvider-90a5375f.js.map → LibThemeProvider-a38c5bf1.js.map} +1 -1
  97. package/esm/{Link-ee8a48ed.js → Link-0a1e35d6.js} +3 -3
  98. package/esm/{Link-ee8a48ed.js.map → Link-0a1e35d6.js.map} +1 -1
  99. package/esm/{Navigation-ece0ff0d.js → Navigation-13dce48c.js} +10 -10
  100. package/esm/{Navigation-ece0ff0d.js.map → Navigation-13dce48c.js.map} +1 -1
  101. package/esm/POICard-392a2c3a.js +116 -0
  102. package/esm/POICard-392a2c3a.js.map +1 -0
  103. package/esm/{Pointer-da4d0977.js → Pointer-bc68154f.js} +3 -3
  104. package/esm/{Pointer-da4d0977.js.map → Pointer-bc68154f.js.map} +1 -1
  105. package/esm/{SocialList-7c00c70e.js → SocialList-4396cad9.js} +5 -5
  106. package/esm/{SocialList-7c00c70e.js.map → SocialList-4396cad9.js.map} +1 -1
  107. package/esm/{TableBlock-0bbde956.js → TableBlock-26530c71.js} +11 -70
  108. package/esm/TableBlock-26530c71.js.map +1 -0
  109. package/esm/Tag-72424779.js +67 -0
  110. package/esm/Tag-72424779.js.map +1 -0
  111. package/esm/{POICard-d8832988.js → VideoBlock-b3f4ae27.js} +39 -332
  112. package/esm/VideoBlock-b3f4ae27.js.map +1 -0
  113. package/esm/{VideoCard-2557407b.js → VideoCard-3fd368ef.js} +8 -35
  114. package/esm/VideoCard-3fd368ef.js.map +1 -0
  115. package/esm/Wrapper-29347885.js +224 -0
  116. package/esm/Wrapper-29347885.js.map +1 -0
  117. package/esm/base.js +4 -3
  118. package/esm/base.js.map +1 -1
  119. package/esm/blocks.js +19 -15
  120. package/esm/blocks.js.map +1 -1
  121. package/esm/buttons.js +6 -6
  122. package/esm/cookies.js +8 -8
  123. package/esm/escape-cbff9c25.js +6 -0
  124. package/esm/escape-cbff9c25.js.map +1 -0
  125. package/esm/fields.js +12 -9
  126. package/esm/fields.js.map +1 -1
  127. package/esm/footer.js +10 -9
  128. package/esm/footer.js.map +1 -1
  129. package/esm/hooks.js +13 -9
  130. package/esm/hooks.js.map +1 -1
  131. package/esm/icons.js +1 -1
  132. package/esm/index.js +3 -3
  133. package/esm/{navigation-49280321.js → navigation-a2998143.js} +2 -2
  134. package/esm/{navigation-49280321.js.map → navigation-a2998143.js.map} +1 -1
  135. package/esm/navigation.js +12 -12
  136. package/esm/sections.js +2595 -5807
  137. package/esm/sections.js.map +1 -1
  138. package/esm/sections_events.js +573 -0
  139. package/esm/sections_events.js.map +1 -0
  140. package/esm/sections_forms.js +1405 -0
  141. package/esm/sections_forms.js.map +1 -0
  142. package/esm/sections_jobs.js +508 -0
  143. package/esm/sections_jobs.js.map +1 -0
  144. package/esm/sections_news.js +102 -97
  145. package/esm/sections_news.js.map +1 -1
  146. package/esm/sections_pois.js +719 -0
  147. package/esm/sections_pois.js.map +1 -0
  148. package/esm/structuredData-87423414.js +117 -0
  149. package/esm/structuredData-87423414.js.map +1 -0
  150. package/esm/{styles-5f78e59d.js → styles-f6c54818.js} +2 -2
  151. package/esm/{styles-5f78e59d.js.map → styles-f6c54818.js.map} +1 -1
  152. package/esm/typography.js +6 -6
  153. package/esm/urlParams-9cfdaf71.js +51 -0
  154. package/esm/urlParams-9cfdaf71.js.map +1 -0
  155. package/esm/{useCookieConsent-db86e5cb.js → useCookieConsent-8caef116.js} +2 -2
  156. package/esm/{useCookieConsent-db86e5cb.js.map → useCookieConsent-8caef116.js.map} +1 -1
  157. package/esm/{urlParams-882563ce.js → useEqualSheetHeight-c18cebd3.js} +4 -105
  158. package/esm/useEqualSheetHeight-c18cebd3.js.map +1 -0
  159. package/esm/useGeolocation-f9f073cc.js +95 -0
  160. package/esm/useGeolocation-f9f073cc.js.map +1 -0
  161. package/esm/useLazyInput-e66fc5be.js +85 -0
  162. package/esm/useLazyInput-e66fc5be.js.map +1 -0
  163. package/esm/{useGeolocation-c81e3efc.js → useLeafletMap-6dea7a8e.js} +4 -175
  164. package/esm/useLeafletMap-6dea7a8e.js.map +1 -0
  165. package/esm/{useMediaQuery-43629cbb.js → useMediaQuery-0d473a9c.js} +2 -2
  166. package/esm/{useMediaQuery-43629cbb.js.map → useMediaQuery-0d473a9c.js.map} +1 -1
  167. package/esm/useScrollTo-70af34bf.js +57 -0
  168. package/esm/useScrollTo-70af34bf.js.map +1 -0
  169. package/package.json +1 -1
  170. package/sections/events/package.json +7 -0
  171. package/sections/forms/package.json +7 -0
  172. package/sections/jobs/package.json +7 -0
  173. package/sections/pois/package.json +7 -0
  174. package/types/sections.d.ts +0 -10
  175. package/types/sections.d.ts.map +1 -1
  176. package/types/sections_events.d.ts +4 -0
  177. package/types/sections_events.d.ts.map +1 -0
  178. package/types/sections_forms.d.ts +3 -0
  179. package/types/sections_forms.d.ts.map +1 -0
  180. package/types/sections_jobs.d.ts +3 -0
  181. package/types/sections_jobs.d.ts.map +1 -0
  182. package/types/sections_news.d.ts +2 -2
  183. package/types/sections_news.d.ts.map +1 -1
  184. package/types/sections_pois.d.ts +4 -0
  185. package/types/sections_pois.d.ts.map +1 -0
  186. package/cjs/FilterField-497e998f.js +0 -2
  187. package/cjs/FilterField-497e998f.js.map +0 -1
  188. package/cjs/POICard-9911980e.js +0 -2
  189. package/cjs/POICard-9911980e.js.map +0 -1
  190. package/cjs/TableBlock-080c9c2e.js +0 -2
  191. package/cjs/TableBlock-080c9c2e.js.map +0 -1
  192. package/cjs/VideoCard-1fa209fc.js +0 -2
  193. package/cjs/VideoCard-1fa209fc.js.map +0 -1
  194. package/cjs/Wrapper-3b9c9e89.js +0 -2
  195. package/cjs/Wrapper-3b9c9e89.js.map +0 -1
  196. package/cjs/urlParams-1d03b5a6.js +0 -2
  197. package/cjs/urlParams-1d03b5a6.js.map +0 -1
  198. package/cjs/useGeolocation-4d38150b.js +0 -2
  199. package/cjs/useGeolocation-4d38150b.js.map +0 -1
  200. package/esm/FilterField-f423b4d1.js.map +0 -1
  201. package/esm/POICard-d8832988.js.map +0 -1
  202. package/esm/TableBlock-0bbde956.js.map +0 -1
  203. package/esm/VideoCard-2557407b.js.map +0 -1
  204. package/esm/Wrapper-f4a70e30.js.map +0 -1
  205. package/esm/urlParams-882563ce.js.map +0 -1
  206. package/esm/useGeolocation-c81e3efc.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./ClockFilled-2483aa4a.js"),n=require("react"),t=require("styled-components"),i=require("./Wrapper-91748bdb.js"),a=require("./Image-d9681be0.js"),r=require("./Copy-e860efe7.js"),o=require("./styles-0f1a0aea.js"),l=require("./LibThemeProvider-fb99fd6d.js"),s=require("./Grid-39b12e21.js"),c=require("./InfoList-577f3c57.js"),d=require("./POICard-492bf8d0.js"),u=require("./arrays-c272ed59.js"),p=require("./FilterField-cf9e2f16.js"),m=require("./useUpdateEffect-4d233e2c.js"),f=require("./escape-1ef8dd83.js"),g=require("./useMounted-0bba9869.js"),h=require("./urlParams-7525f638.js"),v=require("./useLeafletMap-2e608b01.js"),b=require("./Navigation-3f5d6088.js"),x=require("./useGeolocation-d8946470.js");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./concat-f387d848.js"),require("./clamp-bd21d587.js"),require("react-dom/server"),require("./useLazyInput-f71c221b.js"),require("./useMediaQuery-d4f81f88.js"),require("./navigation-bf154e6e.js"),require("./Link-70143bb7.js"),require("./LanguageSwitcher-47e25e95.js");var y,_,C,I,k,E,j,M,O,P,T,q,L,z,F,N,S=w(n),A=w(t),V=A.default(a.Image).withConfig({displayName:"PointOfInterestDetail__StyledImage",componentId:"sc-hksryh-0"})(y||(y=e.__makeTemplateObject(["\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"],["\n &:not(:last-child) {\n margin-bottom: ","px;\n }\n"])),o.spacings.spacer),B=A.default(d.POIFacts).withConfig({displayName:"PointOfInterestDetail__Facts",componentId:"sc-hksryh-1"})(_||(_=e.__makeTemplateObject(["\n max-width: 880px;\n"],["\n max-width: 880px;\n"]))),R=A.default(r.Heading).withConfig({displayName:"PointOfInterestDetail__PoiTitle",componentId:"sc-hksryh-2"})(C||(C=e.__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"])),3*o.spacings.nudge),D=A.default(r.Copy).withConfig({displayName:"PointOfInterestDetail__PoiText",componentId:"sc-hksryh-3"})(I||(I=e.__makeTemplateObject(["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"],["\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ","px;\n }\n"])),3*o.spacings.nudge),G=l.withLibTheme((function(t){var a=t.anchorId,r=t.image,d=t.title,p=t.intro,m=t.text,f=t.facts,g=t.infos,h=t.bgMode,v=t.customFact,b=l.useLibTheme().colors,x="inverted"===h,w="full"===h,y=n.useMemo((function(){return u.isValidArray(null==g?void 0:g.filter((function(e){return u.isValidArray(e.items,!1)})),!1)}),[g]);return S.default.createElement(i.Section,{addSeperation:!0,anchorId:a,bgColor:x?b.sectionBg.dark:w?b.sectionBg.medium:b.sectionBg.light,bgMode:i.mapToBgMode(h,!0)},S.default.createElement(i.Wrapper,{addWhitespace:!0},(null==r?void 0:r.small)&&S.default.createElement(V,e.__assign({},r,{coverSpace:!0,allowEdgeRadius:!0,isInverted:x})),S.default.createElement(s.Grid.Row,{gutter:5*o.spacings.nudge,semilarge:{gutter:o.spacings.spacer}},S.default.createElement(s.Grid.Col,{semilarge:{span:y?5.7/8:1}},d&&S.default.createElement(R,{size:"heading-2",isInverted:x},d),u.isValidArray(f,!1)&&S.default.createElement(B,{isInverted:x,facts:f,customFact:v}),p&&S.default.createElement(D,{size:"medium",type:"copy-b",isInverted:x,innerHTML:p}),m&&S.default.createElement(D,{size:"medium",isInverted:x,innerHTML:m})),y&&S.default.createElement(s.Grid.Col,{semilarge:{span:2.3/8}},S.default.createElement(c.InfoList,{isInverted:x,items:g})))))})),H=A.default.div.withConfig({displayName:"PointOfInterestOverview__Content",componentId:"sc-epctuk-0"})(k||(k=e.__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"])),5*o.spacings.nudge,o.mq.large,3*o.spacings.nudge),U=A.default(p.FilterField).withConfig({displayName:"PointOfInterestOverview__Filter",componentId:"sc-epctuk-1"})(E||(E=e.__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"])),5*o.spacings.nudge),W=function(e,n){return n?null==n?void 0:n.filter((function(n){return!e.find((function(e){return e.item.id===n.id}))})):[]},Z=function(e,n){var t=[];if(!u.isValidArray(null==n?void 0:n.filter((function(e){return void 0!==e.id})),!1))return t;var i=null==n?void 0:n.filter(function(e){return function(n){return new RegExp(e).test(n.name)}}(e));u.isValidArray(i,!1)&&t.push.apply(t,i.map((function(e){return{item:e,priority:1}})));var a=W(t,null==n?void 0:n.filter(function(e){return function(n){var t=e.toLowerCase().replace(/\s/g,""),i=n.name.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(e)));u.isValidArray(a,!1)&&t.push.apply(t,a.map((function(e){return{item:e,priority:2}})));var r=W(t,null==n?void 0:n.filter(function(e){return function(n){if(!u.isValidArray(n.facts,!1))return!1;var t=e.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!n.facts.find((function(e){var n=e.toLowerCase().replace(/\s/g,"");return i.test(n)}))}}(e)));u.isValidArray(r,!1)&&t.push.apply(t,r.map((function(e){return{item:e,priority:3}})));var o=W(t,null==n?void 0:n.filter(function(e){return function(n){if(!u.isValidArray(null==n?void 0:n.infos,!1))return!1;var t=e.toLowerCase().replace(/\s/g,""),i=new RegExp(t);return!!n.infos.find((function(e){if(!e.text)return!1;var n=e.text.toLowerCase().replace(/\s/g,"");return i.test(n)}))}}(e)));u.isValidArray(o,!1)&&t.push.apply(t,o.map((function(e){return{item:e,priority:4}})));var l=W(t,null==n?void 0:n.filter(function(e){return function(n){if(!n.shortDescription)return!1;var t=e.toLowerCase().replace(/\s/g,""),i=n.shortDescription.toLowerCase().replace(/\s/g,"");return new RegExp(t).test(i)}}(e)));return u.isValidArray(l,!1)&&t.push.apply(t,l.map((function(e){return{item:e,priority:5}}))),t},Q=l.withLibTheme((function(t){var a,r=t.anchorId,o=t.bgMode,s=t.pois,c=t.enableFiltering,u=t.initialFilterQuery,p=t.filterPlaceholder,v=void 0===p?"Filter":p,b=t.filterSubmitIcon,x=t.filterClearIcon,w=l.useLibTheme(),y=w.colors,_=w.globals.sections.poiFilterName,C="inverted"===o,I="full"===o,k=n.useState(u||""),E=k[0],j=k[1],M=g.useMounted(),O=S.default.useMemo((function(){for(var n=E.split(" ").map((function(e){return e.trim()})),t=[],i=0,a=n;i<a.length;i++)for(var r=a[i],o=function(e){var n=t.findIndex((function(n){return n.match.item.id===e.item.id}));-1!==n?t[n].intersections+=1:t.push({match:e,intersections:1})},l=0,c=Z(f.escapeRegExp(r),s||[]);l<c.length;l++){o(c[l])}return t.filter((function(e){return e.intersections>=n.length})).map((function(n){return e.__assign({},n.match)}))}),[E,s]),P=n.useCallback((function(){return h.getUrlParams()[_]}),[_]);return n.useEffect((function(){var e=P();null!=e&&"string"==typeof e&&j(e)}),[P]),n.useEffect((function(){M||(E?h.setUrlParam(_,E):h.deleteUrlParam(_))}),[_,E,M]),m.useUpdateEffect((function(){E?h.setUrlParam(_,E):h.deleteUrlParam(_)}),[E]),S.default.createElement(i.Section,{addSeperation:!0,anchorId:r,bgColor:C?y.sectionBg.dark:I?y.sectionBg.medium:y.sectionBg.light,bgMode:i.mapToBgMode(o,!0)},S.default.createElement(i.Wrapper,{addWhitespace:!0},c&&S.default.createElement(U,{value:E,initialValue:u,placeholder:v,onSubmit:j,submitIcon:b,clearIcon:x,isInverted:C}),S.default.createElement(H,null,null===(a=null==O?void 0:O.sort((function(e,n){return e.priority-n.priority})))||void 0===a?void 0:a.map((function(n,t){return S.default.createElement(d.POICard,e.__assign({key:t},n.item,{isInverted:C}))})))))})),J=A.default(i.Section).withConfig({displayName:"PointOfInterestMap__PoiMapSection",componentId:"sc-1ke8oz0-0"})(O||(O=e.__makeTemplateObject(["\n position: relative;\n ","\n\n header + & {\n ","\n ","\n }\n"],["\n position: relative;\n ","\n\n header + & {\n ","\n ","\n }\n"])),(function(n){return n.isLarge&&t.css(M||(M=e.__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(n){var i=n.theme,a=b.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0}),r=b.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasTop:!0}),l=b.generateNavbarIdent({pageFlow:"beforeContent",hasMain:!0,hasBottom:!0}),s=b.generateNavbarIdent({pageFlow:"beforeContent",hasTop:!0,hasMain:!0,hasBottom:!0}),c=b.getFullNavbarHeights(i,a).large,d=b.getFullNavbarHeights(i,r).large,u=b.getFullNavbarHeights(i,l).large,p=b.getFullNavbarHeights(i,s).large,m=function(e){return e.map((function(e){return"[data-navbar-ident*='".concat(e,"']")})).join("")},f="100vh";return t.css(j||(j=e.__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 "])),X,f,m(a.split("-")),X,f,c[0],m(r.split("-")),X,f,d[0],m(l.split("-")),X,f,u[0],m(s.split("-")),X,f,p[0],o.mq.semilarge,m(a.split("-")),X,f,c[1],m(r.split("-")),X,f,d[1],m(l.split("-")),X,f,u[1],m(s.split("-")),X,f,p[1])}))}),o.withRange([0],"padding-top"),o.withRange([0],"margin-top")),K=A.default.div.withConfig({displayName:"PointOfInterestMap__MapContainer",componentId:"sc-1ke8oz0-1"})(P||(P=e.__makeTemplateObject(["\n position: relative;\n"],["\n position: relative;\n"]))),X=A.default.div.withConfig({displayName:"PointOfInterestMap__Map",componentId:"sc-1ke8oz0-2"})(T||(T=e.__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"])),o.mq.medium),Y=A.default.button.withConfig({displayName:"PointOfInterestMap__RequestGeolocationBtn",componentId:"sc-1ke8oz0-3"})(q||(q=e.__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"])),2*o.spacings.nudge,2*o.spacings.nudge,o.spacings.nudge,(function(e){var n=e.theme;return o.getColors(n).primary.default})),$=A.default.div.withConfig({displayName:"PointOfInterestMap__CardStage",componentId:"sc-1ke8oz0-4"})(L||(L=e.__makeTemplateObject(["\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n pointer-events: all;\n background-color: rgba(255, 255, 255, 0.8);\n\n @media "," {\n position: absolute;\n background-color: transparent;\n padding: ","px;\n padding-bottom: ","px;\n\n pointer-events: none;\n }\n"],["\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n pointer-events: all;\n background-color: rgba(255, 255, 255, 0.8);\n\n @media "," {\n position: absolute;\n background-color: transparent;\n padding: ","px;\n padding-bottom: ","px;\n\n pointer-events: none;\n }\n"])),o.mq.medium,2*o.spacings.nudge,3*o.spacings.nudge),ee=A.default.div.withConfig({displayName:"PointOfInterestMap__MapCardView",componentId:"sc-1ke8oz0-5"})(z||(z=e.__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"])),2*o.spacings.nudge,(function(e){var n=e.theme;return o.getColors(n).elementBg.light}),3*o.spacings.nudge,o.mq.medium),ne=A.default.header.withConfig({displayName:"PointOfInterestMap__MapCardHeader",componentId:"sc-1ke8oz0-6"})(F||(F=e.__makeTemplateObject(["\n display: flex;\n align-items: center;\n"],["\n display: flex;\n align-items: center;\n"]))),te=A.default.button.withConfig({displayName:"PointOfInterestMap__CloseBtn",componentId:"sc-1ke8oz0-7"})(N||(N=e.__makeTemplateObject(["\n display: inline-block;\n border: none;\n background-color: transparent;\n cursor: pointer;\n margin-left: auto;\n padding: ","px;\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 display: inline-block;\n border: none;\n background-color: transparent;\n cursor: pointer;\n margin-left: auto;\n padding: ","px;\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"])),o.spacings.nudge,(function(e){var n=e.theme;return o.getColors(n).primary.default})),ie=function(n){var t=n.name,i=n.facts,a=n.description,o=n.infos,s=n.action,p=n.customFact,m=n.customClose,f=n.onClose,g=n.className,h=l.useLibTheme().colors;return S.default.createElement(ee,{className:g},S.default.createElement(ne,null,t&&S.default.createElement(r.Copy,{type:"copy-b",size:"big"},t),S.default.createElement(te,{onClick:f},m||S.default.createElement(e.Cross,{iconColor:h.text.default}))),u.isValidArray(i,!1)&&S.default.createElement(d.POIFacts,{facts:i,customFact:p}),a&&S.default.createElement(r.Copy,{type:"copy",size:"small",innerHTML:a}),u.isValidArray(o,!1)&&S.default.createElement(c.InfoList,{items:[{items:o}]}),s&&s)},ae=l.withLibTheme((function(t){var a=t.anchorId,r=t.size,s=t.pois,c=t.initialPointOfInterest,d=void 0===c?"":c,u=t.provider,p=t.attribution,m=t.center,f=void 0===m?[51.505,-.09]:m,g=t.zoom,h=void 0===g?5:g,b=t.fitBoundsPadding,w=t.allMarkersOnInit,y=void 0!==w&&w,_=t.restrictToMarkersArea,C=void 0===_||_,I=t.showOwnPosition,k=t.flyToZoom,E=t.customFact,j=t.currentPosMarker,M=t.customCardClose,O=t.customLocationRequest,P="large"===r,T=l.useLibTheme().colors,q=n.useState(d||""),L=q[0],z=q[1],F=n.useState(!1),N=F[0],A=F[1],V=n.useMemo((function(){return null==s?void 0:s.find((function(e){return e.id===L}))}),[L,s]),B=x.useGeolocation(!0,!1),R=B.isSupported,D=B.location,G=B.reset,H=n.useMemo((function(){var n,t={size:[28,28],anchor:[14,28],sizeActive:[70,70],anchorActive:[35,70],url:o.getSVGDataImg(S.default.createElement(e.LocationPin,null))},i={size:[24,24],anchor:[12,12],sizeActive:[24,24],anchorActive:[12,12],url:o.getSVGDataImg(S.default.createElement(e.CurrentLocation,{iconColor:"#5383EC"}))},a=(null===(n=null==s?void 0:s.filter((function(e){return void 0!==e.id})))||void 0===n?void 0:n.map((function(e){return{id:e.id,position:e.position,icon:e.icon||t,isInteractive:!0}})))||[];return R&&(null==D?void 0:D.coords.latitude)&&(null==D?void 0:D.coords.longitude)&&a.push({id:"my-current-position-123456789",position:[D.coords.latitude,D.coords.longitude],icon:j||i}),a}),[j,R,null==D?void 0:D.coords.latitude,null==D?void 0:D.coords.longitude,s]),U=v.useLeafletMap({url:u,attribution:p,center:f,zoom:h,activeMarkerId:L,markers:H,fitBoundsPadding:b,restrictToMarkersArea:C,showZoomControls:!0,zoomControlPosition:"bottomleft",onMarkerClick:function(e){z((function(n){return n===e?"":e}))}}),W=U.isLoaded,Z=U.setContainer,Q=U.flyToActive,ee=U.showAllMarkers,ne=U.flyToPosition,te=U.getCurrentZoom;n.useEffect((function(){if(W&&!N)y&&ee();else{var e=te(),n=k;void 0!==k&&e>k&&(n=e),Q(n)}}),[L,y,Q,k,te,d,N,W,ee]),n.useEffect((function(){N||L===d||A(!0)}),[L,d,N]);return S.default.createElement(J,{anchorId:a,bgColor:"image",bgMode:"full",isLarge:P},S.default.createElement(i.Wrapper,{clampWidth:P?"large":"normal"},S.default.createElement(K,null,S.default.createElement(X,{ref:Z,isLarge:"large"===r}),I&&S.default.createElement(Y,{onClick:function(){return e.__awaiter(void 0,void 0,void 0,(function(){var n,t,i,a;return e.__generator(this,(function(e){switch(e.label){case 0:return(null===(i=null==D?void 0:D.coords)||void 0===i?void 0:i.latitude)&&(null===(a=null==D?void 0:D.coords)||void 0===a?void 0:a.longitude)?(n=te(),t=k,void 0!==k&&n>k&&(t=n),ne([D.coords.latitude,D.coords.longitude],t),[3,4]):[3,1];case 1:return e.trys.push([1,3,,4]),[4,G()];case 2:return e.sent()&&ee(),[3,4];case 3:return e.sent(),[3,4];case 4:return[2]}}))}))}},O||S.default.createElement(e.MyLocation,{iconColor:T.text.default})),V&&V.name&&S.default.createElement($,{onClick:function(e){e.target===e.currentTarget&&z("")}},S.default.createElement(ie,e.__assign({},V,{onClose:function(){return z("")},customFact:E,customClose:M}))))))}));exports.PointOfInterestDetail=G,exports.PointOfInterestMap=ae,exports.PointOfInterestOverview=Q;
2
+ //# sourceMappingURL=sections_pois.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections_pois.js","sources":["../src/components/sections/pois/PointOfInterestDetail.tsx","../src/components/sections/pois/PointOfInterestOverview.tsx","../src/components/sections/pois/PointOfInterestMap.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport Copy from 'components/typography/Copy';\nimport Heading from 'components/typography/Heading';\nimport { spacings } from 'utils/styles';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport Grid from 'components/base/Grid';\nimport InfoList, { InfoGroup } from 'components/blocks/InfoList';\nimport POIFacts from 'components/blocks/POIFacts';\nimport { isValidArray } from 'utils/arrays';\n\nconst StyledImage = styled(Image)`\n &:not(:last-child) {\n margin-bottom: ${spacings.spacer}px;\n }\n`;\n\nconst Facts = styled(POIFacts)`\n max-width: 880px;\n`;\n\nconst PoiTitle = styled(Heading)`\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: ${spacings.nudge * 3}px;\n }\n`;\n\nconst PoiText = styled(Copy)`\n max-width: 880px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst PointOfInterestDetail: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** POI image */\n image?: Omit<ImageProps, 'coverSpace'>;\n\n /** POI title */\n title?: string;\n\n /** POI intro text */\n intro?: string;\n\n /** POI text (richtext) */\n text?: string;\n\n /** Array of POI facts */\n facts?: string[];\n\n /** Additional POI infos */\n infos?: InfoGroup[];\n\n /** Section background */\n bgMode?: 'inverted' | 'full';\n\n /** Function to inject custom feature node */\n customFact?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n }) => React.ReactNode;\n}> = ({\n anchorId,\n image,\n title,\n intro,\n text,\n facts,\n infos,\n bgMode,\n customFact,\n}) => {\n const { colors } = useLibTheme();\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n const hasInfos = useMemo(() => {\n return isValidArray(\n infos?.filter((info) => isValidArray(info.items, false)),\n false\n );\n }, [infos]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {image?.small && (\n <StyledImage\n {...image}\n coverSpace\n allowEdgeRadius\n isInverted={isInverted}\n />\n )}\n <Grid.Row\n gutter={spacings.nudge * 5}\n semilarge={{ gutter: spacings.spacer }}\n >\n <Grid.Col semilarge={{ span: hasInfos ? 5.7 / 8 : 1 }}>\n {title && (\n <PoiTitle size=\"heading-2\" isInverted={isInverted}>\n {title}\n </PoiTitle>\n )}\n {isValidArray(facts, false) && (\n <Facts\n isInverted={isInverted}\n facts={facts}\n customFact={customFact}\n />\n )}\n {intro && (\n <PoiText\n size=\"medium\"\n type=\"copy-b\"\n isInverted={isInverted}\n innerHTML={intro}\n />\n )}\n {text && (\n <PoiText\n size=\"medium\"\n isInverted={isInverted}\n innerHTML={text}\n />\n )}\n </Grid.Col>\n {hasInfos && (\n <Grid.Col semilarge={{ span: 2.3 / 8 }}>\n <InfoList isInverted={isInverted} items={infos} />\n </Grid.Col>\n )}\n </Grid.Row>\n </Wrapper>\n </Section>\n );\n};\n\nexport const PointOfInterestDetailComponent = PointOfInterestDetail;\nexport default withLibTheme(PointOfInterestDetail);\n","import Section, { mapToBgMode } from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { Info } from 'components/blocks/InfoList';\nimport POICard, { POICardProps } from 'components/blocks/POICard';\nimport FilterField from 'components/fields/FilterField';\nimport useUpdateEffect from 'utils/useUpdateEffect';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { mq, spacings } from 'utils/styles';\nimport { escapeRegExp } from 'utils/escape';\nimport useMounted from 'utils/useMounted';\nimport { deleteUrlParam, getUrlParams, setUrlParam } from 'utils/urlParams';\n\nconst Content = styled.div`\n & > * + * {\n margin-top: ${spacings.nudge * 5}px;\n }\n\n @media ${mq.large} {\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n }\n`;\n\nconst Filter = styled(FilterField)`\n // margin to show prevent section overflow outline\n margin-top: 2px;\n\n &:not(:last-child) {\n margin-bottom: ${spacings.nudge * 5}px;\n }\n`;\n\nconst poiExactNameFilter =\n (filterQuery: string) => (value: PointOfInterestOverviewItem) => {\n const regex = new RegExp(filterQuery);\n return regex.test(value.name);\n };\n\nconst poiSoftNameFilter =\n (filterQuery: string) => (value: PointOfInterestOverviewItem) => {\n const preparedQuery = filterQuery.toLowerCase().replace(/\\s/g, '');\n const preparedName = value.name.toLowerCase().replace(/\\s/g, '');\n\n const regex = new RegExp(preparedQuery);\n return regex.test(preparedName);\n };\n\nconst poiFactFilter =\n (filterQuery: string) => (value: PointOfInterestOverviewItem) => {\n if (!isValidArray(value.facts, false)) return false;\n\n const preparedQuery = filterQuery.toLowerCase().replace(/\\s/g, '');\n const regex = new RegExp(preparedQuery);\n\n const result = value.facts.find((fact) => {\n const preparedFact = fact.toLowerCase().replace(/\\s/g, '');\n return regex.test(preparedFact);\n });\n\n return !!result;\n };\n\nconst poiInfoFilter =\n (filterQuery: string) => (value: PointOfInterestOverviewItem) => {\n if (!isValidArray(value?.infos, false)) return false;\n\n const preparedQuery = filterQuery.toLowerCase().replace(/\\s/g, '');\n const regex = new RegExp(preparedQuery);\n\n return !!value.infos.find((info) => {\n if (!info.text) return false;\n const preparedText = info.text.toLowerCase().replace(/\\s/g, '');\n return regex.test(preparedText);\n });\n };\n\nconst poiDescriptionFilter =\n (filterQuery: string) => (value: PointOfInterestOverviewItem) => {\n if (!value.shortDescription) return false;\n\n const preparedQuery = filterQuery.toLowerCase().replace(/\\s/g, '');\n const preparedDesc = value.shortDescription\n .toLowerCase()\n .replace(/\\s/g, '');\n\n const regex = new RegExp(preparedQuery);\n return regex.test(preparedDesc);\n };\n\nconst removeMatchIntersections = (\n array: FilterMatch[],\n item?: PointOfInterestOverviewItem[]\n) => {\n if (!item) return [];\n return item?.filter(\n (m) => !array.find((prioItem) => prioItem.item.id === m.id)\n );\n};\n\nconst filterPois = (\n filterQuery: string,\n pois: PointOfInterestOverviewItem[]\n) => {\n const prioList: FilterMatch[] = [];\n if (\n !isValidArray(\n pois?.filter((poi) => poi.id !== undefined),\n false\n )\n ) {\n return prioList;\n }\n\n // PRIO 1 Filter: Exact name\n const exactNameMatches = pois?.filter(poiExactNameFilter(filterQuery));\n if (isValidArray(exactNameMatches, false)) {\n prioList.push(\n ...exactNameMatches.map((match) => ({\n item: match,\n priority: 1,\n }))\n );\n }\n\n // PRIO 2 Filter: Name\n const nameMatches = removeMatchIntersections(\n prioList,\n pois?.filter(poiSoftNameFilter(filterQuery))\n );\n\n if (isValidArray(nameMatches, false)) {\n prioList.push(\n ...nameMatches.map((match) => ({\n item: match,\n priority: 2,\n }))\n );\n }\n\n // PRIO 3 Filter: Facts\n const factMatches = removeMatchIntersections(\n prioList,\n pois?.filter(poiFactFilter(filterQuery))\n );\n\n if (isValidArray(factMatches, false)) {\n prioList.push(\n ...factMatches.map((match) => ({\n item: match,\n priority: 3,\n }))\n );\n }\n\n // PRIO 4 Filter: Description\n const infoMatches = removeMatchIntersections(\n prioList,\n pois?.filter(poiInfoFilter(filterQuery))\n );\n\n if (isValidArray(infoMatches, false)) {\n prioList.push(\n ...infoMatches.map((match) => ({\n item: match,\n priority: 4,\n }))\n );\n }\n\n // PRIO 5 Filter: Description\n const descMatches = removeMatchIntersections(\n prioList,\n pois?.filter(poiDescriptionFilter(filterQuery))\n );\n\n if (isValidArray(descMatches, false)) {\n prioList.push(\n ...descMatches.map((match) => ({\n item: match,\n priority: 5,\n }))\n );\n }\n\n return prioList;\n};\n\ninterface CardProps extends POICardProps {\n id: string;\n infos?: Array<Info & { allowFiltering?: boolean }>;\n}\n\nexport type PointOfInterestOverviewItem = Omit<CardProps, 'isInverted'>;\n\ninterface FilterMatch {\n item: PointOfInterestOverviewItem;\n priority: number;\n}\n\nconst PointOfInterestOverview: React.FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Array of POI card settings */\n pois?: PointOfInterestOverviewItem[];\n\n /** Enable/Disable filtering */\n enableFiltering?: boolean;\n\n /** Initial filter query on component render */\n initialFilterQuery?: string;\n\n /** Placeholder for filter input */\n filterPlaceholder?: string;\n\n /** Injection function for filter submit icon */\n filterSubmitIcon?: (isInverted?: boolean) => React.ReactNode;\n\n /** Injection function for filter reset icon */\n filterClearIcon?: (isInverted?: boolean) => React.ReactNode;\n\n /** Section background */\n bgMode?: 'full' | 'inverted';\n}> = ({\n anchorId,\n bgMode,\n pois,\n enableFiltering,\n initialFilterQuery,\n filterPlaceholder = 'Filter',\n filterSubmitIcon,\n filterClearIcon,\n}) => {\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.poiFilterName;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [filterQuery, setFilterQuery] = useState<string>(\n initialFilterQuery || ''\n );\n const isMounted = useMounted();\n\n const poiMatches: FilterMatch[] = React.useMemo(() => {\n const queryParts = filterQuery.split(' ').map((part) => part.trim());\n const searchMatches: Array<{\n match: FilterMatch;\n intersections: number;\n }> = [];\n\n // tracking matches of each query part\n for (const part of queryParts) {\n const matches = filterPois(escapeRegExp(part), pois || []);\n\n for (const match of matches) {\n const intersectionIndex = searchMatches.findIndex(\n (sItem) => sItem.match.item.id === match.item.id\n );\n\n if (intersectionIndex !== -1) {\n searchMatches[intersectionIndex].intersections += 1;\n } else {\n searchMatches.push({\n match,\n intersections: 1,\n });\n }\n }\n }\n\n // filter search matches by intersections so only matches with results for all search parts are shown\n return searchMatches\n .filter((m) => m.intersections >= queryParts.length)\n .map<FilterMatch>((m) => ({\n ...m.match,\n }));\n }, [filterQuery, pois]);\n\n const getFilter = useCallback(() => {\n return getUrlParams()[filterName];\n }, [filterName]);\n\n useEffect(() => {\n const urlFilter = getFilter();\n\n if (\n urlFilter !== undefined &&\n urlFilter !== null &&\n typeof urlFilter === 'string'\n ) {\n setFilterQuery(urlFilter);\n }\n }, [getFilter]);\n\n useEffect(() => {\n if (isMounted) return;\n\n // set inital data into URL\n if (filterQuery) {\n setUrlParam(filterName, filterQuery);\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterName, filterQuery, isMounted]);\n\n useUpdateEffect(() => {\n // set filters to URL params\n if (filterQuery) {\n setUrlParam(filterName, filterQuery);\n } else {\n deleteUrlParam(filterName);\n }\n }, [filterQuery]);\n\n return (\n <Section\n addSeperation\n anchorId={anchorId}\n bgColor={\n isInverted\n ? colors.sectionBg.dark\n : hasBg\n ? colors.sectionBg.medium\n : colors.sectionBg.light\n }\n bgMode={mapToBgMode(bgMode, true)}\n >\n <Wrapper addWhitespace>\n {enableFiltering && (\n <Filter\n value={filterQuery}\n initialValue={initialFilterQuery}\n placeholder={filterPlaceholder}\n onSubmit={setFilterQuery}\n submitIcon={filterSubmitIcon}\n clearIcon={filterClearIcon}\n isInverted={isInverted}\n />\n )}\n <Content>\n {poiMatches\n ?.sort((a, b) => a.priority - b.priority)\n ?.map((poi, i) => (\n <POICard\n key={i}\n {...poi.item}\n isInverted={isInverted}\n />\n ))}\n </Content>\n </Wrapper>\n </Section>\n );\n};\n\nexport const PointOfInterestOverviewComponent = PointOfInterestOverview;\nexport default withLibTheme(PointOfInterestOverview);\n","import React, { FC, useEffect, useMemo, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Section from 'components/base/Section';\nimport Wrapper from 'components/base/Wrapper';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport useLeafletMap, { LeafletMapMarker } from 'utils/useLeafletMap';\nimport { mq, withRange, getColors as color, spacings } from 'utils/styles';\nimport {\n generateNavbarIdent as genIdent,\n getFullNavbarHeights as getNavHeight,\n} from '../navigation/Navigation';\nimport { getSVGDataImg as getSVGData } from 'utils/dataURI';\nimport LocationPin from 'components/base/icons/LocationPin';\nimport Copy from 'components/typography/Copy';\nimport { isValidArray } from 'utils/arrays';\nimport POIFacts from 'components/blocks/POIFacts';\nimport InfoList, { Info } from 'components/blocks/InfoList';\nimport useGeolocation from 'utils/useGeolocation';\nimport CurrentLocation from 'components/base/icons/CurrentLocation';\nimport Cross from 'components/base/icons/Cross';\nimport MyLocation from 'components/base/icons/MyLocation';\n\nconst genHeightStyles = () => css`\n // Doing some crazy shit to calculate curent navbar height in CSS\n ${({ theme }) => {\n // navbar main only\n const mainIdent = genIdent({\n pageFlow: 'beforeContent',\n hasMain: true,\n });\n\n // navbar main and top\n const mainTopIdent = genIdent({\n pageFlow: 'beforeContent',\n hasMain: true,\n hasTop: true,\n });\n\n // navbar main and bottom\n const mainBottomIdent = genIdent({\n pageFlow: 'beforeContent',\n hasMain: true,\n hasBottom: true,\n });\n\n // full navbar with all bars\n const fullIdent = genIdent({\n pageFlow: 'beforeContent',\n hasTop: true,\n hasMain: true,\n hasBottom: true,\n });\n\n const navMainHeight = getNavHeight(theme, mainIdent).large;\n const navMainTopHeight = getNavHeight(theme, mainTopIdent).large;\n const navMainBottomHeight = getNavHeight(theme, mainBottomIdent).large;\n const navFullHeight = getNavHeight(theme, fullIdent).large;\n\n const mapToSelector = (idents: string[]) => {\n return idents.map((id) => `[data-navbar-ident*='${id}']`).join('');\n };\n\n const refHeight = '100vh';\n\n return css`\n ${Map} {\n height: ${refHeight};\n }\n\n // with main navbar element\n header${mapToSelector(mainIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(${refHeight} - ${navMainHeight[0]}px);\n }\n }\n\n // with main and top navbar elements\n header${mapToSelector(mainTopIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(${refHeight} - ${navMainTopHeight[0]}px);\n }\n }\n\n // with main and bottom navbar elements\n header${mapToSelector(mainBottomIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(${refHeight} - ${navMainBottomHeight[0]}px);\n }\n }\n\n // with all navbar elements\n header${mapToSelector(fullIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(${refHeight} - ${navFullHeight[0]}px);\n }\n }\n\n @media ${mq.semilarge} {\n // with main navbar element\n header${mapToSelector(mainIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(${refHeight} - ${navMainHeight[1]}px);\n }\n }\n\n // with main and top navbar elements\n header${mapToSelector(mainTopIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(${refHeight} - ${navMainTopHeight[1]}px);\n }\n }\n\n // with main and bottom navbar elements\n header${mapToSelector(mainBottomIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(\n ${refHeight} - ${navMainBottomHeight[1]}px\n );\n }\n }\n\n // with all navbar elements\n header${mapToSelector(fullIdent.split('-'))} ~ & {\n ${Map} {\n height: calc(${refHeight} - ${navFullHeight[1]}px);\n }\n }\n }\n `;\n }}\n`;\n\nconst PoiMapSection = styled(Section)<{ isLarge?: boolean }>`\n position: relative;\n ${({ isLarge }) => isLarge && genHeightStyles()}\n\n header + & {\n ${withRange([0], 'padding-top')}\n ${withRange([0], 'margin-top')}\n }\n`;\n\nconst MapContainer = styled.div`\n position: relative;\n`;\n\nconst Map = styled.div<{ isLarge?: boolean }>`\n min-height: 360px;\n height: 360px;\n max-height: 1300px;\n z-index: 0;\n\n @media ${mq.medium} {\n height: 600px;\n min-height: 600px;\n }\n`;\n\nconst RequestGeolocationBtn = styled.button`\n position: absolute;\n top: ${spacings.nudge * 2}px;\n left: ${spacings.nudge * 2}px;\n\n background-color: transparent;\n border: none;\n padding: ${spacings.nudge}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 ${({ theme }) => color(theme).primary.default};\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\nconst CardStage = styled.div`\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n pointer-events: all;\n background-color: rgba(255, 255, 255, 0.8);\n\n @media ${mq.medium} {\n position: absolute;\n background-color: transparent;\n padding: ${spacings.nudge * 2}px;\n padding-bottom: ${spacings.nudge * 3}px;\n\n pointer-events: none;\n }\n`;\n\nconst MapCardView = styled.div`\n max-height: 100%;\n width: 100%;\n padding: ${spacings.nudge * 2}px;\n overflow: auto;\n\n background: ${({ theme }) => color(theme).elementBg.light};\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: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.medium} {\n max-width: 400px;\n }\n`;\n\nconst MapCardHeader = styled.header`\n display: flex;\n align-items: center;\n`;\n\nconst CloseBtn = styled.button`\n display: inline-block;\n border: none;\n background-color: transparent;\n cursor: pointer;\n margin-left: auto;\n padding: ${spacings.nudge}px;\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 ${({ theme }) => color(theme).primary.default};\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\nconst MapCard: FC<{\n name?: string;\n facts?: string[];\n description?: string;\n infos?: Info[];\n\n action?: React.ReactNode;\n onClose?: () => void;\n customFact?: (props: { key: React.Key; name: string }) => React.ReactNode;\n customClose?: React.ReactNode;\n\n className?: string;\n}> = ({\n name,\n facts,\n description,\n infos,\n action,\n customFact,\n customClose,\n onClose,\n className,\n}) => {\n const { colors } = useLibTheme();\n\n return (\n <MapCardView className={className}>\n <MapCardHeader>\n {name && (\n <Copy type=\"copy-b\" size=\"big\">\n {name}\n </Copy>\n )}\n <CloseBtn onClick={onClose}>\n {customClose || <Cross iconColor={colors.text.default} />}\n </CloseBtn>\n </MapCardHeader>\n {isValidArray(facts, false) && (\n <POIFacts facts={facts} customFact={customFact} />\n )}\n {description && (\n <Copy type=\"copy\" size=\"small\" innerHTML={description} />\n )}\n {isValidArray(infos, false) && (\n <InfoList\n items={[\n {\n items: infos,\n },\n ]}\n />\n )}\n {action && action}\n </MapCardView>\n );\n};\n\nexport interface LocationIcon {\n url: string;\n size: [number, number];\n anchor: [number, number];\n\n sizeActive: [number, number];\n anchorActive: [number, number];\n}\n\nexport interface MapPOI {\n /** Unique ID */\n id: string;\n\n /** Latitude and Longitude of item position */\n position: [number, number];\n\n /** Marker icon settings */\n icon?: LocationIcon;\n\n /** POI name */\n name?: string;\n\n /** POI short description text */\n description?: string;\n\n /** Array of POI facts */\n facts?: string[];\n\n /** Array of additional POI informations */\n infos?: Info[];\n\n /** Function to inject custom action node */\n action?: React.ReactNode;\n}\n\nconst PointOfInterestMap: FC<{\n /** ID value for targeting section with anchor hashes */\n anchorId?: string;\n\n /** Size mode */\n size?: 'default' | 'large';\n\n /** Array of POI card settings */\n pois?: MapPOI[];\n\n /** Use geolocation for own position */\n showOwnPosition?: boolean;\n\n /** Map tile provider */\n provider?: string;\n\n /** Map attribution text (richtext) */\n attribution?: string;\n\n /** Initial center of the map */\n center?: [number, number];\n\n /** Initial map zoom */\n zoom?: number;\n\n /** Min map zoom */\n minZoom?: number;\n\n /** Max map zoom */\n maxZoom?: number;\n\n /** Zoom if map jumps to location */\n flyToZoom?: number;\n\n /** Initial location */\n initialPointOfInterest?: string;\n\n /** Show all markers on first load */\n allMarkersOnInit?: boolean;\n\n /** Restrict map to bounds of markers area */\n restrictToMarkersArea?: boolean;\n\n /** Map container padding for show all markers */\n fitBoundsPadding?: [number, number];\n\n /** Function to inject custom fact node into MapCard */\n customFact?: (props: { key: React.Key; name: string }) => React.ReactNode;\n\n /** Custom current position marker */\n currentPosMarker?: LocationIcon;\n\n /** Custom card close icon */\n customCardClose?: React.ReactNode;\n\n /** Custom icon for my location request button */\n customLocationRequest?: React.ReactNode;\n}> = ({\n anchorId,\n size,\n pois,\n initialPointOfInterest = '',\n provider,\n attribution,\n center = [51.505, -0.09],\n zoom = 5,\n fitBoundsPadding,\n allMarkersOnInit = false,\n restrictToMarkersArea = true,\n showOwnPosition,\n flyToZoom,\n customFact,\n currentPosMarker,\n customCardClose,\n customLocationRequest,\n}) => {\n const isLarge = size === 'large';\n const { colors } = useLibTheme();\n\n const [activePoiId, setActivePoiId] = useState<string>(\n initialPointOfInterest || ''\n );\n const [isDirty, setIsDirty] = useState<boolean>(false);\n const activePOI = useMemo(() => {\n return pois?.find((poi) => poi.id === activePoiId);\n }, [activePoiId, pois]);\n\n const {\n isSupported: isGeolocationSupported,\n location,\n reset: resetGeolocation,\n // error,\n } = useGeolocation(true, false);\n\n const mapMarkers = useMemo(() => {\n const defaultMarker: LocationIcon = {\n size: [28, 28],\n anchor: [14, 28],\n sizeActive: [70, 70],\n anchorActive: [35, 70],\n url: getSVGData(<LocationPin />),\n };\n\n // marker of own position\n const defaultPosMarker: LocationIcon = {\n size: [24, 24],\n anchor: [12, 12],\n sizeActive: [24, 24],\n anchorActive: [12, 12],\n url: getSVGData(<CurrentLocation iconColor=\"#5383EC\" />),\n };\n\n const markers: LeafletMapMarker[] =\n pois\n ?.filter((poi) => poi.id !== undefined)\n ?.map(({ id, position, icon }) => ({\n id,\n position,\n icon: icon || defaultMarker,\n isInteractive: true,\n })) || [];\n\n if (\n isGeolocationSupported &&\n location?.coords.latitude &&\n location?.coords.longitude\n ) {\n markers.push({\n id: 'my-current-position-123456789',\n position: [location.coords.latitude, location.coords.longitude],\n icon: currentPosMarker || defaultPosMarker,\n });\n }\n\n return markers;\n }, [\n currentPosMarker,\n isGeolocationSupported,\n location?.coords.latitude,\n location?.coords.longitude,\n pois,\n ]);\n\n const {\n isLoaded,\n setContainer: setMapContainer,\n flyToActive,\n showAllMarkers,\n flyToPosition,\n getCurrentZoom,\n } = useLeafletMap({\n url: provider,\n attribution,\n center,\n zoom,\n activeMarkerId: activePoiId,\n markers: mapMarkers,\n fitBoundsPadding,\n restrictToMarkersArea,\n showZoomControls: true,\n zoomControlPosition: 'bottomleft',\n onMarkerClick: (markerId) => {\n setActivePoiId((prev) => {\n if (prev === markerId) {\n return '';\n }\n return markerId;\n });\n },\n });\n\n useEffect(() => {\n if (isLoaded && !isDirty) {\n if (allMarkersOnInit) showAllMarkers();\n } else {\n const currentZoom = getCurrentZoom();\n let zoom = flyToZoom;\n if (flyToZoom !== undefined && currentZoom > flyToZoom) {\n zoom = currentZoom;\n }\n\n flyToActive(zoom);\n }\n }, [\n activePoiId,\n allMarkersOnInit,\n flyToActive,\n flyToZoom,\n getCurrentZoom,\n initialPointOfInterest,\n isDirty,\n isLoaded,\n showAllMarkers,\n ]);\n\n useEffect(() => {\n if (!isDirty && activePoiId !== initialPointOfInterest) {\n setIsDirty(true);\n }\n }, [activePoiId, initialPointOfInterest, isDirty]);\n\n const handleLocationRequest = async () => {\n if (location?.coords?.latitude && location?.coords?.longitude) {\n const currentZoom = getCurrentZoom();\n let zoom = flyToZoom;\n if (flyToZoom !== undefined && currentZoom > flyToZoom) {\n zoom = currentZoom;\n }\n\n flyToPosition(\n [location.coords.latitude, location.coords.longitude],\n zoom\n );\n } else {\n try {\n const position = await resetGeolocation();\n if (position) showAllMarkers();\n } catch (err) {\n // console.log(err);\n }\n }\n };\n\n return (\n <PoiMapSection\n anchorId={anchorId}\n bgColor=\"image\"\n bgMode=\"full\"\n isLarge={isLarge}\n >\n <Wrapper clampWidth={isLarge ? 'large' : 'normal'}>\n <MapContainer>\n <Map ref={setMapContainer} isLarge={size === 'large'} />\n {showOwnPosition && (\n <RequestGeolocationBtn onClick={handleLocationRequest}>\n {customLocationRequest || (\n <MyLocation iconColor={colors.text.default} />\n )}\n </RequestGeolocationBtn>\n )}\n {activePOI && activePOI.name && (\n <CardStage\n onClick={(ev) => {\n if (ev.target !== ev.currentTarget) return;\n setActivePoiId('');\n }}\n >\n <MapCard\n {...activePOI}\n onClose={() => setActivePoiId('')}\n customFact={customFact}\n customClose={customCardClose}\n />\n </CardStage>\n )}\n </MapContainer>\n </Wrapper>\n </PoiMapSection>\n );\n};\n\nexport const PointOfInterestMapComponent = PointOfInterestMap;\nexport default withLibTheme(PointOfInterestMap);\n"],"names":["StyledImage","styled","Image","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","spacer","Facts","POIFacts","templateObject_2","PoiTitle","Heading","templateObject_3","nudge","PoiText","Copy","templateObject_4","PointOfInterestDetail$1","withLibTheme","_a","anchorId","image","title","intro","text","facts","infos","bgMode","customFact","colors","useLibTheme","isInverted","hasBg","hasInfos","useMemo","isValidArray","filter","info","items","React","createElement","Section","addSeperation","bgColor","sectionBg","dark","medium","light","mapToBgMode","Wrapper","addWhitespace","small","coverSpace","allowEdgeRadius","Grid","Row","gutter","semilarge","Col","span","size","type","innerHTML","InfoList","Content","div","mq","large","Filter","FilterField","removeMatchIntersections","array","item","m","find","prioItem","id","filterPois","filterQuery","pois","prioList","poi","undefined","exactNameMatches","value","RegExp","test","name","poiExactNameFilter","push","apply","map","match","priority","nameMatches","preparedQuery","toLowerCase","replace","preparedName","poiSoftNameFilter","factMatches","regex","fact","preparedFact","poiFactFilter","infoMatches","preparedText","poiInfoFilter","descMatches","shortDescription","preparedDesc","poiDescriptionFilter","PointOfInterestOverview$1","enableFiltering","initialFilterQuery","_c","filterPlaceholder","filterSubmitIcon","filterClearIcon","_d","filterName","globals","sections","poiFilterName","_e","useState","setFilterQuery","isMounted","useMounted","poiMatches","queryParts","split","part","trim","searchMatches","queryParts_1","_i","length","intersectionIndex","findIndex","sItem","intersections","matches_1","escapeRegExp","__assign","getFilter","useCallback","getUrlParams","useEffect","urlFilter","setUrlParam","deleteUrlParam","useUpdateEffect","initialValue","placeholder","onSubmit","submitIcon","clearIcon","_b","sort","a","b","i","POICard","key","PoiMapSection","isLarge","css","theme","mainIdent","genIdent","pageFlow","hasMain","mainTopIdent","hasTop","mainBottomIdent","hasBottom","fullIdent","navMainHeight","getNavHeight","getFullNavbarHeights","navMainTopHeight","navMainBottomHeight","navFullHeight","mapToSelector","idents","concat","join","refHeight","Map","withRange","MapContainer","templateObject_5","RequestGeolocationBtn","button","templateObject_6","color","primary","default","CardStage","templateObject_7","MapCardView","templateObject_8","elementBg","MapCardHeader","header","templateObject_9","CloseBtn","MapCard","description","action","customClose","onClose","className","onClick","Cross","iconColor","PointOfInterestMap$1","initialPointOfInterest","provider","attribution","center","zoom","fitBoundsPadding","allMarkersOnInit","_f","restrictToMarkersArea","showOwnPosition","flyToZoom","currentPosMarker","customCardClose","customLocationRequest","_g","activePoiId","setActivePoiId","_h","isDirty","setIsDirty","activePOI","_j","useGeolocation","isGeolocationSupported","isSupported","location","resetGeolocation","mapMarkers","defaultMarker","anchor","sizeActive","anchorActive","url","getSVGData","getSVGDataImg","LocationPin","defaultPosMarker","CurrentLocation","markers","position","icon","isInteractive","coords","latitude","longitude","_k","useLeafletMap","activeMarkerId","showZoomControls","zoomControlPosition","onMarkerClick","markerId","prev","isLoaded","setMapContainer","setContainer","flyToActive","showAllMarkers","flyToPosition","getCurrentZoom","currentZoom","zoom_1","clampWidth","ref","__awaiter","zoom_2","sent","MyLocation","ev","target","currentTarget"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react"),t=require("react-schemaorg");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=o(e),n=function(e,t,o){return o.indexOf(e)===t};exports.generateFAQ=function(e){return d.default.createElement(t.JsonLd,{item:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map((function(e){return{"@type":"Question",name:e.label,acceptedAnswer:{"@type":"Answer",text:e.text}}}))}})},exports.generateJob=function(e){var o,l,s,r,a,i=e.jobTitle,u=e.jobDesc,c=e.organization,p=e.directApply,v=e.locations,y=e.employmentTypes,m=e.datePosted;return d.default.createElement(t.JsonLd,{item:{"@context":"https://schema.org","@type":"JobPosting",title:i,description:u,datePosted:null==m?void 0:m.toISOString(),employmentType:null==y?void 0:y.filter(n),hiringOrganization:{"@type":"Organization",name:null==c?void 0:c.name,url:(null==c?void 0:c.url)?encodeURIComponent(null==c?void 0:c.url):"",logo:null==c?void 0:c.logo,telephone:null==c?void 0:c.telephone,email:null==c?void 0:c.email,address:(null===(o=null==c?void 0:c.address)||void 0===o?void 0:o.streetAddress)?{"@type":"PostalAddress",streetAddress:null===(l=null==c?void 0:c.address)||void 0===l?void 0:l.streetAddress,addressLocality:null===(s=null==c?void 0:c.address)||void 0===s?void 0:s.addressLocality,postalCode:null===(r=null==c?void 0:c.address)||void 0===r?void 0:r.postalCode,addressCountry:null===(a=null==c?void 0:c.address)||void 0===a?void 0:a.addressCountry}:void 0},jobLocation:null==v?void 0:v.map((function(e){return{"@type":"Place",address:{"@type":"PostalAddress",addressLocality:e.addressLocality||e.name,streetAddress:e.streetAddress,addressRegion:e.addressRegion,postalCode:e.postalCode,addressCountry:e.addressCountry}}})),directApply:p}})},exports.generateLocalBusiness=function(e){return null==e?void 0:e.map((function(e,o){var n,l,s=e.position,r=e.address,a=e.contact,i=e.companyName,u=e.image;return i?d.default.createElement(t.JsonLd,{key:o,item:{"@context":"https://schema.org","@type":"LocalBusiness",name:i,geo:{"@type":"GeoCoordinates",name:"Coordinates",latitude:s[0],longitude:s[1]},address:{"@type":"PostalAddress",streetAddress:null==r?void 0:r.street,addressLocality:null==r?void 0:r.city,addressRegion:null==r?void 0:r.city,postalCode:null==r?void 0:r.postalCode,addressCountry:null==r?void 0:r.country},image:u||[],telephone:"".concat(null===(n=null==a?void 0:a.telephone)||void 0===n?void 0:n.label),email:"".concat(null===(l=null==a?void 0:a.email)||void 0===l?void 0:l.label)}}):""}))};
2
+ //# sourceMappingURL=structuredData-0b1278a9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredData-0b1278a9.js","sources":["../src/utils/filters.ts","../src/utils/structuredData.tsx"],"sourcesContent":["export const distinct = <T>(value: T, index: number, array: T[]) => {\n return array.indexOf(value) === index;\n};\n","import React from 'react';\nimport { JsonLd } from 'react-schemaorg';\nimport { MapLocation } from 'components/sections/Map';\nimport { FAQPage, JobPosting, LocalBusiness, Place } from 'schema-dts';\nimport { OrganizationData } from 'components/sections/jobs/JobArticle';\nimport { distinct } from './filters';\nimport { JobLocation } from 'components/blocks/JobCard';\n\nexport const generateLocalBusiness = (locations: MapLocation[]) => {\n return locations?.map(\n ({ position, address, contact, companyName, image }, i) => {\n if (!companyName) return '';\n return (\n <JsonLd<LocalBusiness>\n key={i}\n item={{\n '@context': 'https://schema.org',\n '@type': 'LocalBusiness',\n name: companyName,\n\n geo: {\n '@type': 'GeoCoordinates',\n name: 'Coordinates',\n latitude: position[0],\n longitude: position[1],\n },\n\n address: {\n '@type': 'PostalAddress',\n streetAddress: address?.street,\n addressLocality: address?.city,\n addressRegion: address?.city,\n postalCode: address?.postalCode,\n addressCountry: address?.country,\n },\n\n image: image || [],\n\n telephone: `${contact?.telephone?.label}`,\n\n email: `${contact?.email?.label}`,\n }}\n />\n );\n }\n );\n};\n\nexport const generateFAQ = (\n items: {\n label?: string;\n text?: string;\n aside?: string;\n hasColumns?: boolean;\n }[]\n) => {\n return (\n <JsonLd<FAQPage>\n item={{\n '@context': 'https://schema.org',\n '@type': 'FAQPage',\n mainEntity: items.map(({ label, text }) => {\n return {\n '@type': 'Question',\n name: label,\n acceptedAnswer: {\n '@type': 'Answer',\n text: text,\n },\n };\n }),\n }}\n />\n );\n};\n\nexport type StructuredEmploymentType =\n | 'FULL_TIME'\n | 'PART_TIME'\n | 'CONTRACTOR'\n | 'TEMPORARY'\n | 'INTERN'\n | 'VOLUNTEER'\n | 'PER_DIEM'\n | 'OTHER';\n\nexport const generateJob = ({\n jobTitle,\n jobDesc,\n organization,\n directApply,\n locations,\n employmentTypes,\n datePosted,\n}: {\n jobTitle: string;\n jobDesc?: string;\n organization?: OrganizationData;\n directApply?: boolean;\n locations?: JobLocation[];\n employmentTypes?: StructuredEmploymentType[];\n datePosted?: Date;\n}) => {\n return (\n <JsonLd<JobPosting>\n item={{\n '@context': 'https://schema.org',\n '@type': 'JobPosting',\n title: jobTitle,\n description: jobDesc,\n datePosted: datePosted?.toISOString(),\n employmentType: employmentTypes?.filter(distinct),\n hiringOrganization: {\n '@type': 'Organization',\n name: organization?.name,\n url: organization?.url\n ? encodeURIComponent(organization?.url)\n : '',\n logo: organization?.logo,\n telephone: organization?.telephone,\n email: organization?.email,\n address: organization?.address?.streetAddress\n ? {\n '@type': 'PostalAddress',\n streetAddress:\n organization?.address?.streetAddress,\n addressLocality:\n organization?.address?.addressLocality,\n postalCode: organization?.address?.postalCode,\n addressCountry:\n organization?.address?.addressCountry,\n }\n : undefined,\n },\n jobLocation: locations?.map<Place>((loc) => ({\n '@type': 'Place',\n address: {\n '@type': 'PostalAddress',\n addressLocality: loc.addressLocality || loc.name,\n streetAddress: loc.streetAddress,\n addressRegion: loc.addressRegion,\n postalCode: loc.postalCode,\n addressCountry: loc.addressCountry,\n },\n })),\n directApply: directApply,\n }}\n />\n );\n};\n"],"names":["distinct","value","index","array","indexOf","items","React","createElement","JsonLd","item","mainEntity","map","_a","name","label","acceptedAnswer","text","jobTitle","jobDesc","organization","directApply","locations","employmentTypes","datePosted","title","description","toISOString","employmentType","filter","hiringOrganization","url","encodeURIComponent","logo","telephone","email","address","_b","streetAddress","_c","addressLocality","_d","postalCode","_e","addressCountry","_f","undefined","jobLocation","loc","addressRegion","i","position","contact","companyName","image","key","geo","latitude","longitude","street","city","country","concat"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var a=require("./concat-f387d848.js"),r="undefined"!=typeof window&&"URLSearchParams"in window,e=function(){var a={};if(!r)return a;var e=Object.fromEntries(new URLSearchParams(window.location.search));for(var n in e){var o=e[n];"string"==typeof o&&(o=decodeURIComponent(o)),a[n]=o}return a},n=function(r){if(r){var e=r.toString(),n=e?a.concat([location.pathname,e+location.hash],"?"):location.pathname+location.hash;window.history.replaceState({},"",n)}};exports.deleteUrlParam=function(a){if(r){var e=new URLSearchParams(window.location.search);e.delete(a),n(e)}},exports.getUrlParams=e,exports.setUrlParam=function(a,o){if(r&&("string"==typeof o||"number"==typeof o)){var t=e();t[a]=o.toString();var i=new URLSearchParams(window.location.search);for(var c in t)i.set(c,encodeURIComponent(t[c]));n(i)}};
2
+ //# sourceMappingURL=urlParams-7525f638.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlParams-7525f638.js","sources":["../src/utils/urlParams.ts"],"sourcesContent":["import { concat } from './concat';\n\nconst isSupported =\n typeof window !== 'undefined' && 'URLSearchParams' in window;\n\nexport const getUrlParams = () => {\n const obj: Record<string, string> = {};\n if (!isSupported) return obj;\n\n const paramsObj = Object.fromEntries(\n new URLSearchParams(window.location.search)\n );\n\n for (const param in paramsObj) {\n let value = paramsObj[param];\n if (typeof value === 'string') {\n value = decodeURIComponent(value);\n }\n obj[param] = value;\n }\n\n return obj;\n};\n\nexport const setUrlParam = (key: string, value: string | number) => {\n if (\n !isSupported ||\n (typeof value !== 'string' && typeof value !== 'number')\n ) {\n return;\n }\n\n const params = getUrlParams();\n params[key] = value.toString();\n\n const currentParams = new URLSearchParams(window.location.search);\n for (const param in params) {\n currentParams.set(param, encodeURIComponent(params[param]));\n }\n\n updateUrl(currentParams);\n};\n\nexport const deleteUrlParam = (key: string) => {\n if (!isSupported) return;\n const currentParams = new URLSearchParams(window.location.search);\n currentParams.delete(key);\n\n updateUrl(currentParams);\n};\n\nconst updateUrl = (params: URLSearchParams) => {\n if (!params) return;\n\n const queries = params.toString();\n const url = queries\n ? concat([location.pathname, queries + location.hash], '?')\n : location.pathname + location.hash;\n\n window.history.replaceState({}, '', url);\n};\n"],"names":["isSupported","window","getUrlParams","obj","paramsObj","Object","fromEntries","URLSearchParams","location","search","param","value","decodeURIComponent","updateUrl","params","queries","toString","url","concat","pathname","hash","history","replaceState","key","currentParams","delete","set","encodeURIComponent"],"mappings":"mDAEMA,EACgB,oBAAXC,QAA0B,oBAAqBA,OAE7CC,EAAe,WAClBC,IAAAA,EAA8B,GACpC,IAAKH,EAAa,OAAOG,EAEzB,IAAMC,EAAYC,OAAOC,YACrB,IAAIC,gBAAgBN,OAAOO,SAASC,SAGxC,IAAK,IAAMC,KAASN,EAAW,CAC3B,IAAIO,EAAQP,EAAUM,GACD,iBAAVC,IACPA,EAAQC,mBAAmBD,IAE/BR,EAAIO,GAASC,EAGjB,OAAOR,GA8BLU,EAAY,SAACC,GACX,GAACA,EAAD,CAEJ,IAAMC,EAAUD,EAAOE,WACjBC,EAAMF,EACNG,EAAAA,OAAO,CAACV,SAASW,SAAUJ,EAAUP,SAASY,MAAO,KACrDZ,SAASW,SAAWX,SAASY,KAEnCnB,OAAOoB,QAAQC,aAAa,GAAI,GAAIL,4BAhBV,SAACM,GACvB,GAACvB,EAAD,CACEwB,IAAAA,EAAgB,IAAIjB,gBAAgBN,OAAOO,SAASC,QAC1De,EAAcC,OAAOF,GAErBV,EAAUW,gDAxBa,SAACD,EAAaZ,GACrC,GACKX,IACiB,iBAAVW,GAAuC,iBAAVA,GAFzC,CAOMG,IAAAA,EAASZ,IACfY,EAAOS,GAAOZ,EAAMK,WAEdQ,IAAAA,EAAgB,IAAIjB,gBAAgBN,OAAOO,SAASC,QAC1D,IAAK,IAAMC,KAASI,EAChBU,EAAcE,IAAIhB,EAAOiB,mBAAmBb,EAAOJ,KAGvDG,EAAUW"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("./ClockFilled-2483aa4a.js"),t=require("react"),n=require("./useMediaQuery-d4f81f88.js"),r=function(){var e=t.useState(!1),n=e[0],r=e[1];return t.useEffect((function(){void 0===document.fonts?r(void 0):function(){var e,t;null===(t=null===(e=null===document||void 0===document?void 0:document.fonts)||void 0===e?void 0:e.ready)||void 0===t||t.then((function(){r(!0)}))}()}),[]),n},i=function(e,n){void 0===e&&(e=0);var r=t.useState(null),i=r[0],u=r[1],o=t.useRef(-1),c=t.useRef({clientWidth:0,clientHeight:0,innerHeight:0,innerWidth:0}),l=function(){"undefined"!=typeof window&&"undefined"!=typeof document&&(c.current={clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight,innerHeight:window.innerHeight,innerWidth:window.innerWidth})};return t.useEffect((function(){if("undefined"!=typeof window){var t=function(){l(),-1===o.current&&(o.current=window.setTimeout((function(){null==n||n(c.current),u(c.current),o.current=-1}),e))};return l(),null==n||n(c.current),u(c.current),window.addEventListener("resize",t),function(){window.removeEventListener("resize",t)}}}),[n,e]),i};exports.useEqualSheetHeight=function(u){var o=e.__assign({small:1,medium:1,semilarge:2,large:3,xlarge:3},u.responsive),c=n.useMediaQuery(["small","medium","semilarge","large","xlarge"]),l=c?o[c]:o.small,f=t.useState([]),s=f[0],a=f[1],d=r(),h=t.useCallback((function(e,t,n){e.reduce((function(e,t,n,r){return n%l==0&&e.push(r.slice(n,n+l)),e}),[]).forEach((function(e,r){var i=e.filter((function(e){return null!==e})).slice().sort((function(e,t){return e&&t?e>t?-1:1:0}))[0];if(e.length>1&&i)for(var u=0;u<e.length;u++){var o=n[u+r*l].current.querySelector(t);null==o||o.setAttribute("style","height: ".concat(i,"px"))}}))}),[l]),g=i(void 0!==u.resizeThrottleTimeout?u.resizeThrottleTimeout:400);t.useEffect((function(){var t,n=(t=s,function(){for(var n=new Map,r=0;r<u.identifiers.length;r++)n.set(u.identifiers[r],[]);t.filter((function(e){return e.current})).forEach((function(t){var r=t.current;u.identifiers.forEach((function(t){var i=r.querySelector(t),u=n.get(t),o=null;i&&(i.removeAttribute("style"),o=i.getBoundingClientRect().height),u&&n.set(t,e.__spreadArray(e.__spreadArray([],u,!0),[o],!1))}))})),n.forEach((function(e,n){h(e,n,t)}))});n()}),[u.identifiers,g,h,s,d]);var v=t.useCallback((function(){a((function(e){return Array(u.listLength).fill(null).map((function(n,r){return e[r]||t.createRef()}))}))}),[u.listLength]);return t.useEffect((function(){a((function(e){return Array(u.listLength).fill(null).map((function(n,r){return e[r]||t.createRef()}))}))}),[u.listLength]),{sheetRefs:s,triggerCalculation:v}},exports.useFontsLoaded=r,exports.useResizeThrottle=i;
2
+ //# sourceMappingURL=useEqualSheetHeight-cfd4176e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEqualSheetHeight-cfd4176e.js","sources":["../src/utils/useFontsLoaded.ts","../src/utils/useResizeThrottle.ts","../src/utils/useEqualSheetHeight.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport const useFontsLoaded = () => {\n const [allFontsLoaded, setFontLoaded] = useState<boolean | undefined>(\n false\n );\n\n useEffect(() => {\n const waitForFonts = () => {\n (document as any)?.fonts?.ready?.then(() => {\n setFontLoaded(true);\n });\n };\n\n if ((document as any).fonts === undefined) setFontLoaded(undefined);\n else waitForFonts();\n }, []);\n\n return allFontsLoaded;\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface ResizeState {\n clientWidth: number;\n clientHeight: number;\n innerHeight: number;\n innerWidth: number;\n}\n\nconst useResizeThrottle = (\n timeout = 0,\n callback?: (state: ResizeState) => void\n) => {\n const [throttledState, setThrottledState] =\n useState<ResizeState | null>(null);\n\n const timeoutRef = useRef<number>(-1);\n const lastState = useRef<ResizeState>({\n clientWidth: 0,\n clientHeight: 0,\n innerHeight: 0,\n innerWidth: 0,\n });\n\n const updateResizeState = () => {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n\n lastState.current = {\n clientWidth: document.documentElement.clientWidth,\n clientHeight: document.documentElement.clientHeight,\n innerHeight: window.innerHeight,\n innerWidth: window.innerWidth,\n };\n };\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n updateResizeState();\n\n if (timeoutRef.current === -1) {\n timeoutRef.current = window.setTimeout(() => {\n callback?.(lastState.current);\n setThrottledState(lastState.current);\n timeoutRef.current = -1;\n }, timeout);\n }\n };\n\n updateResizeState();\n callback?.(lastState.current);\n setThrottledState(lastState.current);\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [callback, timeout]);\n\n return throttledState;\n};\n\nexport default useResizeThrottle;\n","import {\n useEffect,\n useState,\n MutableRefObject,\n createRef,\n useCallback,\n} from 'react';\nimport { useMediaQuery } from './useMediaQuery';\nimport { useFontsLoaded } from 'utils/useFontsLoaded';\nimport useResizeThrottle from './useResizeThrottle';\n\ninterface ItemsPerRow {\n small?: number;\n medium?: number;\n semilarge?: number;\n large?: number;\n xlarge?: number;\n}\n\ntype Mq = keyof ItemsPerRow;\n\n// ********************\n// useEqualSheetHeight\n// ********************\n\nexport const useEqualSheetHeight = <T extends HTMLElement>(props: {\n listLength: number;\n identifiers: string[];\n responsive?: ItemsPerRow;\n /** Throttle timeout for resize events. Default: 400ms */\n resizeThrottleTimeout?: number;\n}) => {\n const defaultResponsive = {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n ...props.responsive,\n };\n const mqs: Mq[] = ['small', 'medium', 'semilarge', 'large', 'xlarge'];\n const currentMq = useMediaQuery(mqs) as Mq | undefined;\n const itemsPerRow = currentMq\n ? defaultResponsive[currentMq]\n : defaultResponsive.small;\n\n const [sheetRefs, setSheetRefs] = useState<MutableRefObject<T>[]>([]);\n const fontsLoaded = useFontsLoaded();\n\n const setHeights = useCallback(\n (\n heights: (number | null)[],\n selector: string,\n refs: MutableRefObject<T>[]\n ) => {\n const makeRows = (\n result: Array<number | null>[],\n _: number,\n index: number,\n arr: Array<number | null>\n ) => {\n // make new row after 3 items\n if (index % itemsPerRow === 0) {\n result.push(\n arr.slice(index, index + itemsPerRow) as Array<number>\n );\n }\n return result;\n };\n\n // put item heights in 2-dimensional array to sort them in rows\n const heightsInRows = heights.reduce(makeRows, []);\n\n heightsInRows.forEach((rowHeights, y) => {\n const validHeights = rowHeights.filter(\n (height) => height !== null\n ) as number[];\n\n const highest = validHeights.slice().sort((vA, vB) => {\n if (vA && vB) {\n if (vA > vB) return -1;\n return 1;\n } else return 0;\n })[0];\n\n // set height of all items in row to the highest value\n if (rowHeights.length > 1 && highest) {\n for (let x = 0; x < rowHeights.length; x++) {\n const index = x + y * itemsPerRow;\n const el = refs[index].current.querySelector(selector);\n\n el?.setAttribute('style', `height: ${highest}px`);\n }\n }\n });\n },\n [itemsPerRow]\n );\n\n // Throttle viewport resize event for performance\n const resizeState = useResizeThrottle(\n props.resizeThrottleTimeout !== undefined\n ? props.resizeThrottleTimeout\n : 400\n );\n\n useEffect(() => {\n const resize = (refs: MutableRefObject<T>[]) => () => {\n const identifierSizes = new Map<string, Array<number | null>>();\n\n // create identifier map\n for (let i = 0; i < props.identifiers.length; i++) {\n identifierSizes.set(props.identifiers[i], []);\n }\n\n // set height values\n refs.filter((ref) => ref.current).forEach(({ current }) => {\n // get height for each element\n props.identifiers.forEach((id) => {\n const element = current.querySelector(id);\n const prevHeights = identifierSizes.get(id);\n let height: number | null = null;\n\n if (element) {\n element.removeAttribute('style');\n height = element.getBoundingClientRect().height;\n }\n\n if (prevHeights) {\n identifierSizes.set(id, [...prevHeights, height]);\n }\n });\n });\n\n // set heights for each identifier\n identifierSizes.forEach((value, key) => {\n setHeights(value, key, refs);\n });\n };\n\n const resizeHandler = resize(sheetRefs);\n resizeHandler();\n }, [props.identifiers, resizeState, setHeights, sheetRefs, fontsLoaded]);\n\n const triggerCalculation = useCallback(() => {\n setSheetRefs((prev) =>\n Array(props.listLength)\n .fill(null)\n .map((_, i) => prev[i] || createRef())\n );\n }, [props.listLength]);\n\n useEffect(() => {\n setSheetRefs((prev) =>\n Array(props.listLength)\n .fill(null)\n .map((_, i) => prev[i] || createRef())\n );\n }, [props.listLength]);\n\n return {\n sheetRefs,\n triggerCalculation,\n };\n};\n"],"names":["useFontsLoaded","_a","useState","allFontsLoaded","setFontLoaded","useEffect","undefined","document","fonts","_b","ready","then","waitForFonts","useResizeThrottle","timeout","callback","throttledState","setThrottledState","timeoutRef","useRef","lastState","clientWidth","clientHeight","innerHeight","innerWidth","updateResizeState","window","current","documentElement","handleResize","setTimeout","addEventListener","removeEventListener","props","defaultResponsive","__assign","small","medium","semilarge","large","xlarge","responsive","currentMq","useMediaQuery","itemsPerRow","sheetRefs","setSheetRefs","fontsLoaded","setHeights","useCallback","heights","selector","refs","reduce","result","_","index","arr","push","slice","forEach","rowHeights","y","validHeights","highest","filter","height","sort","vA","vB","length","x","el","querySelector","setAttribute","concat","resizeState","resizeThrottleTimeout","resizeHandler","identifierSizes","Map","i","identifiers","set","ref","id","element","prevHeights","get","removeAttribute","getBoundingClientRect","value","key","triggerCalculation","prev","Array","listLength","fill","map","createRef"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var o=require("react");exports.useGeolocation=function(t,n){void 0===t&&(t=!0),void 0===n&&(n=!0);var e=o.useState(),a=e[0],c=e[1],i=o.useState(),r=i[0],u=i[1],l=o.useState(),s=l[0],f=l[1],g=o.useState(),v=g[0],h=g[1],b=o.useRef();o.useEffect((function(){c("geolocation"in navigator)}),[]);var S=o.useCallback((function(){u(!1),b.current&&navigator.geolocation.clearWatch(b.current)}),[]);o.useEffect((function(){if(n&&"geolocation"in navigator){S(),navigator.geolocation.watchPosition(p,w,{enableHighAccuracy:t}),u(!0);var o=b.current;return function(){o&&(u(!1),navigator.geolocation.clearWatch(o))}}}),[n,S,t]);var d=o.useCallback((function(){return new Promise((function(o,n){S(),u(!1),navigator.geolocation.watchPosition((function(t){p(t),o(t)}),(function(o){w(o),n(o)}),{enableHighAccuracy:t}),u(!0)}))}),[S,t]),p=function(o){f(o)},w=function(o){u(!1),console.log(o),h(o)};return{isSupported:a,isEnabled:r,location:s,error:v,reset:d,cancel:S}};
2
+ //# sourceMappingURL=useGeolocation-d8946470.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGeolocation-d8946470.js","sources":["../src/utils/useGeolocation.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nconst useGeolocation = (enableHighAccuracy = true, autostart = true) => {\n const [isSupported, setIsSupported] = useState<boolean>();\n const [isEnabled, setIsEnabled] = useState<boolean>();\n const [location, setLocation] = useState<GeolocationPosition>();\n const [error, setError] = useState<GeolocationPositionError>();\n const watchRef = useRef<number | null>();\n\n useEffect(() => {\n setIsSupported('geolocation' in navigator);\n }, []);\n\n const cancel = useCallback(() => {\n setIsEnabled(false);\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current);\n }\n }, []);\n\n useEffect(() => {\n if (!autostart || !('geolocation' in navigator)) {\n return;\n }\n\n cancel();\n navigator.geolocation.watchPosition(handleSuccess, handleError, {\n enableHighAccuracy,\n });\n setIsEnabled(true);\n const watch = watchRef.current;\n\n return () => {\n if (watch) {\n setIsEnabled(false);\n navigator.geolocation.clearWatch(watch);\n }\n };\n }, [autostart, cancel, enableHighAccuracy]);\n\n const reset = useCallback(() => {\n return new Promise<GeolocationPosition>((resolve, reject) => {\n cancel();\n setIsEnabled(false);\n navigator.geolocation.watchPosition(\n (position) => {\n handleSuccess(position);\n resolve(position);\n },\n (err) => {\n handleError(err);\n reject(err);\n },\n {\n enableHighAccuracy,\n }\n );\n setIsEnabled(true);\n });\n }, [cancel, enableHighAccuracy]);\n\n const handleSuccess = (position: GeolocationPosition) => {\n setLocation(position);\n };\n\n const handleError = (error: GeolocationPositionError) => {\n setIsEnabled(false);\n console.log(error);\n\n setError(error);\n };\n\n return { isSupported, isEnabled, location, error, reset, cancel };\n};\n\nexport default useGeolocation;\n"],"names":["enableHighAccuracy","autostart","_a","useState","isSupported","setIsSupported","_b","isEnabled","setIsEnabled","_c","location","setLocation","_d","error","setError","watchRef","useRef","useEffect","navigator","cancel","useCallback","current","geolocation","clearWatch","watchPosition","handleSuccess","handleError","watch","reset","Promise","resolve","reject","position","err","console","log"],"mappings":"2DAEuB,SAACA,EAA2BC,QAA3B,IAAAD,IAAAA,GAAyB,QAAE,IAAAC,IAAAA,GAAgB,GACzDC,IAAAA,EAAgCC,EAAAA,WAA/BC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAC5BI,EAA4BH,EAAAA,WAA3BI,EAASD,EAAA,GAAEE,EAAYF,EAAA,GACxBG,EAA0BN,EAAAA,WAAzBO,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GACtBG,EAAoBT,EAAAA,WAAnBU,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GAChBG,EAAWC,EAAAA,SAEjBC,EAAAA,WAAU,WACNZ,EAAe,gBAAiBa,aACjC,IAEH,IAAMC,EAASC,EAAAA,aAAY,WACvBZ,GAAa,GACTO,EAASM,SACTH,UAAUI,YAAYC,WAAWR,EAASM,WAE/C,IAEHJ,EAAAA,WAAU,WACN,GAAKhB,GAAe,gBAAiBiB,UAArC,CAIAC,IACAD,UAAUI,YAAYE,cAAcC,EAAeC,EAAa,CAC5D1B,mBAAkBA,IAEtBQ,GAAa,GACb,IAAMmB,EAAQZ,EAASM,QAEvB,OAAO,WACCM,IACAnB,GAAa,GACbU,UAAUI,YAAYC,WAAWI,QAG1C,CAAC1B,EAAWkB,EAAQnB,IAEvB,IAAM4B,EAAQR,EAAAA,aAAY,WACtB,OAAO,IAAIS,SAA6B,SAACC,EAASC,GAC9CZ,IACAX,GAAa,GACbU,UAAUI,YAAYE,eAClB,SAACQ,GACGP,EAAcO,GACdF,EAAQE,MAEZ,SAACC,GACGP,EAAYO,GACZF,EAAOE,KAEX,CACIjC,mBAAkBA,IAG1BQ,GAAa,QAElB,CAACW,EAAQnB,IAENyB,EAAgB,SAACO,GACnBrB,EAAYqB,IAGVN,EAAc,SAACb,GACjBL,GAAa,GACb0B,QAAQC,IAAItB,GAEZC,EAASD,IAGN,MAAA,CAAET,YAAWA,EAAEG,UAASA,EAAEG,SAAQA,EAAEG,MAAKA,EAAEe,MAAKA,EAAET,OAAMA"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react"),r=require("./ClockFilled-2483aa4a.js"),u=function(r,u){var t=e.useRef(r),n=e.useRef();e.useEffect((function(){t.current=r}),[r]);var c=e.useCallback((function(){n.current=window.setTimeout((function(){var e;return null===(e=t.current)||void 0===e?void 0:e.call(t)}),u)}),[u]),a=e.useCallback((function(){n.current&&window.clearTimeout(n.current)}),[]);e.useEffect((function(){return c(),a}),[u,c,a]);var l=e.useCallback((function(){a(),c()}),[a,c]);return{clear:a,reset:l}},t=function(t,n,c){var a=u(t,n),l=a.clear,o=a.reset;return e.useEffect(o,r.__spreadArray(r.__spreadArray([],c,!0),[o],!1)),e.useEffect(l,[]),{clear:l,reset:o}};exports.useDebounce=t,exports.useLazyInput=function(r,u,n){void 0===n&&(n=600);var c=e.useState(u),a=c[0],l=c[1],o=t((function(){return null==r?void 0:r(a)}),n,[a]).clear,s=e.useCallback((function(e,u){void 0===u&&(u=!1),l(e),u&&(o(),null==r||r(e))}),[]),i=e.useCallback((function(){o(),null==r||r(a)}),[r,o,a]);return{update:s,value:a,forceUpdate:i}},exports.useTimeout=u;
2
+ //# sourceMappingURL=useLazyInput-f71c221b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLazyInput-f71c221b.js","sources":["../src/utils/useTimeout.ts","../src/utils/useDebounce.ts","../src/utils/useLazyInput.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nconst useTimeout = (callback: () => void, delay: number) => {\n const callbackRef = useRef(callback);\n const timeoutRef = useRef<number>();\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const set = useCallback(() => {\n timeoutRef.current = window.setTimeout(\n () => callbackRef.current?.(),\n delay\n );\n }, [delay]);\n\n const clear = useCallback(() => {\n timeoutRef.current && window.clearTimeout(timeoutRef.current);\n }, []);\n\n useEffect(() => {\n set();\n return clear;\n }, [delay, set, clear]);\n\n const reset = useCallback(() => {\n clear();\n set();\n }, [clear, set]);\n\n return { clear, reset };\n};\n\nexport default useTimeout;\n","import { DependencyList, useEffect } from 'react';\nimport useTimeout from './useTimeout';\n\nconst useDebounce = (\n callback: () => void,\n delay: number,\n deps: DependencyList\n) => {\n const { clear, reset } = useTimeout(callback, delay);\n\n useEffect(reset, [...deps, reset]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(clear, []);\n\n return {\n clear,\n reset,\n };\n};\n\nexport default useDebounce;\n","import { useCallback, useState } from 'react';\nimport useDebounce from './useDebounce';\n\nconst useLazyInput = (\n callback: (value: string) => void,\n initial: string,\n delay = 600\n) => {\n const [value, setValue] = useState<string>(initial);\n const { clear } = useDebounce(() => callback?.(value), delay, [value]);\n\n const update = useCallback((value: string, withoutDelay = false) => {\n setValue(value);\n if (withoutDelay) {\n clear();\n callback?.(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const forceUpdate = useCallback(() => {\n clear();\n callback?.(value);\n }, [callback, clear, value]);\n\n return {\n update,\n value,\n forceUpdate,\n };\n};\n\nexport default useLazyInput;\n"],"names":["useTimeout","callback","delay","callbackRef","useRef","timeoutRef","useEffect","current","set","useCallback","window","setTimeout","_a","call","clear","clearTimeout","reset","useDebounce","deps","__spreadArray","initial","useState","value","setValue","update","withoutDelay","forceUpdate"],"mappings":"2EAEMA,EAAa,SAACC,EAAsBC,GACtC,IAAMC,EAAcC,SAAOH,GACrBI,EAAaD,EAAAA,SAEnBE,EAAAA,WAAU,WACNH,EAAYI,QAAUN,IACvB,CAACA,IAEJ,IAAMO,EAAMC,EAAAA,aAAY,WACpBJ,EAAWE,QAAUG,OAAOC,YACxB,WAAM,IAAAC,EAAA,OAAuB,UAAvBT,EAAYI,eAAW,IAAAK,OAAA,EAAAA,EAAAC,KAAAV,KAC7BD,KAEL,CAACA,IAEEY,EAAQL,EAAAA,aAAY,WACtBJ,EAAWE,SAAWG,OAAOK,aAAaV,EAAWE,WACtD,IAEHD,EAAAA,WAAU,WAEN,OADAE,IACOM,IACR,CAACZ,EAAOM,EAAKM,IAEhB,IAAME,EAAQP,EAAAA,aAAY,WACtBK,IACAN,MACD,CAACM,EAAON,IAEJ,MAAA,CAAEM,MAAKA,EAAEE,MAAKA,IC5BnBC,EAAc,SAChBhB,EACAC,EACAgB,GAEM,IAAAN,EAAmBZ,EAAWC,EAAUC,GAAtCY,EAAKF,EAAAE,MAAEE,UAOR,OALPV,EAAAA,UAAUU,EAAKG,gBAAAA,EAAAA,cAAA,GAAMD,GAAM,GAAA,CAAAF,QAG3BV,YAAUQ,EAAO,IAEV,CACHA,MAAKA,EACLE,MAAKA,+CCdQ,SACjBf,EACAmB,EACAlB,QAAA,IAAAA,IAAAA,EAAW,KAEL,IAAAU,EAAoBS,EAAQA,SAASD,GAApCE,EAAKV,EAAA,GAAEW,EAAQX,EAAA,GACdE,EAAUG,GAAY,WAAM,OAAAhB,MAAAA,OAAQ,EAARA,EAAWqB,KAAQpB,EAAO,CAACoB,IAAOR,MAEhEU,EAASf,EAAAA,aAAY,SAACa,EAAeG,QAAA,IAAAA,IAAAA,GAAoB,GAC3DF,EAASD,GACLG,IACAX,IACAb,MAAAA,GAAAA,EAAWqB,MAGhB,IAEGI,EAAcjB,EAAAA,aAAY,WAC5BK,IACAb,MAAAA,GAAAA,EAAWqB,KACZ,CAACrB,EAAUa,EAAOQ,IAEd,MAAA,CACHE,OAAMA,EACNF,MAAKA,EACLI,YAAWA"}
@@ -0,0 +1,2 @@
1
+ "use strict";var o=require("./ClockFilled-2483aa4a.js"),e=require("react");function n(o){if(o&&o.__esModule)return o;var e=Object.create(null);return o&&Object.keys(o).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return o[n]}})}})),e.default=o,Object.freeze(e)}exports.useLeafletMap=function(r){var t=e.useState(null),l=t[0],i=t[1],a=e.useState(null),u=a[0],c=a[1],s=e.useState(null),d=s[0],f=s[1],v=e.useState(null),m=v[0],k=v[1],g=e.useRef(null),h=e.useState(!1),p=h[0],b=h[1],z=e.useRef(!1),y=e.useRef(null),M=e.useMemo((function(){return Object.keys(r).forEach((function(o){void 0===r[o]&&delete r[o]})),o.__assign({center:[0,0],zoom:2.5,touchZoom:!0,scrollWheelZoom:!1,showZoomControls:!0,zoomControlPosition:"topleft",onlyScrollOnFocus:!0,url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",attribution:'&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',markers:[],fitBoundsPadding:[20,20]},r)}),[r]);e.useEffect((function(){if(l){o.__awaiter(void 0,void 0,void 0,(function(){var e,r,t;return o.__generator(this,(function(o){switch(o.label){case 0:return u||!l||z.current?[2]:(z.current=!0,[4,Promise.resolve().then((function(){return n(require("leaflet"))}))]);case 1:return(e=o.sent())?(c(e),r=e.map(l,{center:M.center,zoom:M.zoom,touchZoom:M.touchZoom,scrollWheelZoom:M.scrollWheelZoom,zoomControl:!1,minZoom:M.minZoom,maxZoom:M.maxZoom}),M.showZoomControls&&e.control.zoom({position:M.zoomControlPosition}).addTo(r),r.once("focus",(function(){M.onlyScrollOnFocus&&r.scrollWheelZoom.enable()})),r.once("blur",(function(){M.onlyScrollOnFocus&&r.scrollWheelZoom.disable()})),r.on("click",(function(o){var e;null===(e=M.onClick)||void 0===e||e.call(M,o,r.getZoom())})),f(r),e.tileLayer(M.url,{attribution:M.attribution}).addTo(r),(t=new e.FeatureGroup).addTo(r),k(t),[2]):[2]}}))}))}}),[u,l,M,M.attribution,M.center,M.onlyScrollOnFocus,M.scrollWheelZoom,M.touchZoom,M.url,M.zoom]),e.useEffect((function(){var o;if(d&&m){m.clearLayers(),null===(o=M.markers)||void 0===o||o.forEach((function(o){var e,n,r=o.position,t=o.icon,l=o.id,i=o.isInteractive;if((null==t?void 0:t.url)&&(null==t?void 0:t.size)&&r){var a=l===M.activeMarkerId,c=u.icon({iconUrl:t.url,iconSize:a?t.sizeActive:t.size,iconAnchor:a?t.anchorActive:null==t?void 0:t.anchor}),s=u.marker(u.latLng(r[0],r[1]),{icon:c,riseOnHover:!0,interactive:i}).addTo(d);i&&s.on("click",(function(){var o;null===(o=M.onMarkerClick)||void 0===o||o.call(M,l)})),m.addLayer(s),u&&d&&m&&(p?M.activeMarkerId&&M.activeMarkerId!==(null==g?void 0:g.current)&&(g.current=M.activeMarkerId,null===(n=M.onActiveMarkerChanged)||void 0===n||n.call(M,{markerId:M.activeMarkerId})):(null===(e=M.onReady)||void 0===e||e.call(M),b(!0),M.activeMarkerId&&(g.current=M.activeMarkerId)))}}));var e=function(){var o,e,n;if(d&&M.restrictToMarkersArea){var r=null===(o=null==m?void 0:m.getBounds())||void 0===o?void 0:o.pad(.3);if(r&&r.isValid()){var t=r.getNorth(),l=r.getEast(),i=r.getSouth(),a=r.getWest(),u=d.getCenter(),c=null,s=null;(u.lat<i||u.lat>t)&&y.current&&(c=null===(e=y.current)||void 0===e?void 0:e.lat),(u.lng<a||u.lng>l)&&y.current&&(s=null===(n=y.current)||void 0===n?void 0:n.lng),null===s&&null===c||(null!==s&&(u.lng=s),null!==c&&(u.lat=c),d.panTo(u,{animate:!1})),y.current=u}}};if(M.restrictToMarkersArea)(null==m?void 0:m.getBounds()).isValid()&&d.on("drag",e);return function(){y.current=null,null==d||d.off("drag",e)}}}),[u,p,d,M,M.markers,m]);var Z=e.useCallback((function(){d&&m&&d.fitBounds(m.getBounds(),{padding:u.point(M.fitBoundsPadding)})}),[u,d,M.fitBoundsPadding,m]),C=e.useCallback((function(o){var e,n=o||M.zoom,r=null===(e=M.markers)||void 0===e?void 0:e.find((function(o){return o.id===M.activeMarkerId}));r&&(null==d||d.flyTo(r.position,n))}),[d,M.activeMarkerId,M.markers,M.zoom]),S=e.useCallback((function(o,e){var n=e||M.zoom;o?null==d||d.flyTo(o,n):C(n)}),[C,d,M.zoom]),O=e.useCallback((function(o){o&&(null==d||d.panTo(o))}),[d]),T=e.useCallback((function(){null==d||d.invalidateSize()}),[d]),I=e.useCallback((function(){return(null==d?void 0:d.getZoom())||M.zoom}),[d,M.zoom]);return{setContainer:i,flyToActive:C,flyToPosition:S,panToPosition:O,showAllMarkers:Z,recalculateMapSize:T,getCurrentZoom:I,isLoaded:p}};
2
+ //# sourceMappingURL=useLeafletMap-2e608b01.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLeafletMap-2e608b01.js","sources":["../src/utils/useLeafletMap.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n FeatureGroup,\n LatLng,\n LeafletMouseEvent,\n Map,\n Marker,\n MarkerOptions,\n} from 'leaflet';\n\nexport interface LeafletMapSettings {\n center: [number, number];\n zoom: number;\n minZoom?: number;\n maxZoom?: number;\n touchZoom: boolean;\n scrollWheelZoom: boolean;\n onlyScrollOnFocus: boolean;\n url: string;\n attribution: string;\n markers: Array<LeafletMapMarker>;\n activeMarkerId?: string;\n fitBoundsPadding: [number, number];\n restrictToMarkersArea?: boolean;\n showZoomControls?: boolean;\n zoomControlPosition?: 'bottomleft' | 'bottomright' | 'topleft' | 'topright';\n onMarkerClick?: (markerId: string) => void;\n onActiveMarkerChanged?: (props: { markerId: string }) => void;\n onReady?: () => void;\n onClick?: (ev: LeafletMouseEvent, currentZoom: number) => void;\n}\n\nexport interface LeafletMapMarker {\n id: string;\n position: [number, number];\n isInteractive?: boolean;\n icon?: {\n url: string;\n size: [number, number];\n anchor: [number, number];\n\n sizeActive: [number, number];\n anchorActive: [number, number];\n };\n popup?: {\n text: string;\n };\n}\n\nconst useLeafletMap = (settings: Partial<LeafletMapSettings>) => {\n const [container, setContainer] = useState<HTMLElement | null>(null);\n const [L, setLeaflet] = useState<any>(null);\n const [map, setMap] = useState<Map | null>(null);\n const [markersLayerGroup, setMarkersLayerGroup] =\n useState<FeatureGroup<any> | null>(null);\n const prevMarkerId = useRef<string | null>(null);\n const [isLoaded, setLoaded] = useState<boolean>(false);\n const isRenderedRef = useRef<boolean>(false);\n\n const lastValidCenter = useRef<LatLng | null>(null);\n\n const mapSettings: LeafletMapSettings = useMemo(() => {\n // removing undefined keys\n Object.keys(settings).forEach((key) => {\n if (settings[key] === undefined) {\n delete settings[key];\n }\n });\n\n return {\n center: [0, 0],\n zoom: 2.5,\n touchZoom: true,\n scrollWheelZoom: false,\n showZoomControls: true,\n zoomControlPosition: 'topleft',\n onlyScrollOnFocus: true,\n url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n attribution:\n '&copy; <a href=\"http://osm.org/copyright\">OpenStreetMap</a> contributors',\n markers: [],\n fitBoundsPadding: [20, 20], // 0 = TopLeft, 1 = BottomRight\n ...settings,\n };\n }, [settings]);\n\n useEffect(() => {\n if (!container) return;\n\n const init = async () => {\n if (L || !container || isRenderedRef.current) return;\n isRenderedRef.current = true;\n\n // init leaflet\n const leaflet = await import('leaflet');\n if (!leaflet) return;\n\n // set leaflet state\n setLeaflet(leaflet);\n\n // setup map\n const map = leaflet.map(container, {\n center: mapSettings.center,\n zoom: mapSettings.zoom,\n touchZoom: mapSettings.touchZoom,\n scrollWheelZoom: mapSettings.scrollWheelZoom,\n zoomControl: false,\n minZoom: mapSettings.minZoom,\n maxZoom: mapSettings.maxZoom,\n });\n\n if (mapSettings.showZoomControls) {\n leaflet.control\n .zoom({\n position: mapSettings.zoomControlPosition,\n })\n .addTo(map);\n }\n\n // activate map scrolling on focus\n map.once('focus', () => {\n if (mapSettings.onlyScrollOnFocus) {\n map.scrollWheelZoom.enable();\n }\n });\n\n // deactivate map scrolling on focus is lost\n map.once('blur', () => {\n if (mapSettings.onlyScrollOnFocus) {\n map.scrollWheelZoom.disable();\n }\n });\n\n map.on('click', (ev) => {\n mapSettings.onClick?.(ev as LeafletMouseEvent, map.getZoom());\n });\n\n // set map state\n setMap(map);\n\n // add map layer from map provider\n leaflet\n .tileLayer(mapSettings.url, {\n attribution: mapSettings.attribution,\n })\n .addTo(map);\n\n // setup layer for markers\n const group = new leaflet.FeatureGroup();\n group.addTo(map);\n\n setMarkersLayerGroup(group);\n };\n\n init();\n }, [\n L,\n container,\n mapSettings,\n mapSettings.attribution,\n mapSettings.center,\n mapSettings.onlyScrollOnFocus,\n mapSettings.scrollWheelZoom,\n mapSettings.touchZoom,\n mapSettings.url,\n mapSettings.zoom,\n ]);\n\n useEffect(() => {\n if (!map || !markersLayerGroup) return;\n\n markersLayerGroup.clearLayers();\n mapSettings.markers?.forEach(\n ({ position, icon, id, isInteractive }) => {\n if (!icon?.url || !icon?.size || !position) return;\n const isActive = id === mapSettings.activeMarkerId;\n\n const markerIcon = L.icon({\n iconUrl: icon.url,\n\n iconSize: isActive ? icon.sizeActive : icon.size, // size of the icon\n // shadowSize: [50, 64], // size of the shadow\n iconAnchor: isActive ? icon.anchorActive : icon?.anchor, // point of the icon which will correspond to marker's location\n // shadowAnchor: [4, 62], // the same for the shadow\n // popupAnchor: [0, -16], // point from which the popup should open relative to the iconAnchor\n });\n\n const marker: Marker = L.marker(\n L.latLng(position[0], position[1]),\n {\n icon: markerIcon,\n riseOnHover: true,\n interactive: isInteractive,\n } as MarkerOptions\n ).addTo(map);\n\n if (isInteractive) {\n marker.on('click', () => {\n mapSettings.onMarkerClick?.(id);\n });\n }\n\n // add marker to markers layer\n markersLayerGroup.addLayer(marker);\n\n if (L && map && markersLayerGroup) {\n if (!isLoaded) {\n // on first load\n mapSettings.onReady?.();\n setLoaded(true);\n if (mapSettings.activeMarkerId) {\n prevMarkerId.current = mapSettings.activeMarkerId;\n }\n } else {\n // check if active marker changed\n if (\n mapSettings.activeMarkerId &&\n mapSettings.activeMarkerId !== prevMarkerId?.current\n ) {\n prevMarkerId.current = mapSettings.activeMarkerId;\n\n mapSettings.onActiveMarkerChanged?.({\n markerId: mapSettings.activeMarkerId,\n });\n }\n }\n }\n }\n );\n\n const handleMapMove = () => {\n if (!map) return;\n if (!mapSettings.restrictToMarkersArea) return;\n\n const markersBounds = markersLayerGroup?.getBounds()?.pad(0.3);\n if (!markersBounds || !markersBounds.isValid()) return;\n\n const northEdge = markersBounds.getNorth();\n const eastEdge = markersBounds.getEast();\n const southEdge = markersBounds.getSouth();\n const westEdge = markersBounds.getWest();\n\n const center = map.getCenter();\n let newLat: number | null = null;\n let newLng: number | null = null;\n\n // on latitude overshoot\n if (\n (center.lat < southEdge || center.lat > northEdge) &&\n lastValidCenter.current\n ) {\n newLat = lastValidCenter.current?.lat;\n }\n\n // on longitude overshoot\n if (\n (center.lng < westEdge || center.lng > eastEdge) &&\n lastValidCenter.current\n ) {\n newLng = lastValidCenter.current?.lng;\n }\n\n if (newLng !== null || newLat !== null) {\n if (newLng !== null) center.lng = newLng;\n if (newLat !== null) center.lat = newLat;\n\n map.panTo(center, { animate: false });\n }\n\n lastValidCenter.current = center;\n };\n\n // if set restrict map movement to markers\n if (mapSettings.restrictToMarkersArea) {\n const markersBounds = markersLayerGroup?.getBounds();\n\n if (markersBounds.isValid()) {\n map.on('drag', handleMapMove);\n }\n }\n\n return () => {\n lastValidCenter.current = null;\n map?.off('drag', handleMapMove);\n };\n }, [L, isLoaded, map, mapSettings, mapSettings.markers, markersLayerGroup]);\n\n /**\n * Adjust zoom to show all markers\n */\n const showAllMarkers = useCallback(() => {\n if (map && markersLayerGroup) {\n map.fitBounds(markersLayerGroup.getBounds(), {\n padding: L.point(mapSettings.fitBoundsPadding),\n });\n }\n }, [L, map, mapSettings.fitBoundsPadding, markersLayerGroup]);\n\n /**\n * Pan and zoom to active marker position on map\n * @param zoom\n */\n const flyToActive = useCallback(\n (zoom?: number) => {\n const mapZoom = zoom || mapSettings.zoom;\n const marker = mapSettings.markers?.find(\n (m) => m.id === mapSettings.activeMarkerId\n );\n if (marker) map?.flyTo(marker.position, mapZoom);\n },\n [map, mapSettings.activeMarkerId, mapSettings.markers, mapSettings.zoom]\n );\n\n /**\n * Pan and zoom to marker position on map\n * @param position\n * @param zoom\n */\n const flyToPosition = useCallback(\n (position?: [number, number], zoom?: number) => {\n const mapZoom = zoom || mapSettings.zoom;\n\n if (position) map?.flyTo(position, mapZoom);\n else flyToActive(mapZoom);\n },\n [flyToActive, map, mapSettings.zoom]\n );\n\n /**\n * Pan to marker position on map\n * @param position\n */\n const panToPosition = useCallback(\n (position?: [number, number]) => {\n if (position) map?.panTo(position);\n },\n [map]\n );\n\n /** Recalculate map size */\n const recalculateMapSize = useCallback(() => {\n map?.invalidateSize();\n }, [map]);\n\n const getCurrentZoom = useCallback(() => {\n return map?.getZoom() || mapSettings.zoom;\n }, [map, mapSettings.zoom]);\n\n return {\n setContainer,\n flyToActive,\n flyToPosition,\n panToPosition,\n showAllMarkers,\n recalculateMapSize,\n getCurrentZoom,\n isLoaded,\n };\n};\n\nexport default useLeafletMap;\n"],"names":["settings","_a","useState","container","setContainer","_b","L","setLeaflet","_c","map","setMap","_d","markersLayerGroup","setMarkersLayerGroup","prevMarkerId","useRef","_e","isLoaded","setLoaded","isRenderedRef","lastValidCenter","mapSettings","useMemo","Object","keys","forEach","key","undefined","__assign","center","zoom","touchZoom","scrollWheelZoom","showZoomControls","zoomControlPosition","onlyScrollOnFocus","url","attribution","markers","fitBoundsPadding","useEffect","__awaiter","current","Promise","resolve","then","_interopNamespace","require","leaflet","sent","zoomControl","minZoom","maxZoom","control","position","addTo","once","enable","disable","on","ev","onClick","call","getZoom","tileLayer","group","FeatureGroup","clearLayers","icon","id","isInteractive","size","isActive","activeMarkerId","markerIcon","iconUrl","iconSize","sizeActive","iconAnchor","anchorActive","anchor","marker","latLng","riseOnHover","interactive","onMarkerClick","addLayer","onActiveMarkerChanged","markerId","onReady","handleMapMove","restrictToMarkersArea","markersBounds","getBounds","pad","isValid","northEdge","getNorth","eastEdge","getEast","southEdge","getSouth","westEdge","getWest","getCenter","newLat","newLng","lat","lng","panTo","animate","off","showAllMarkers","useCallback","fitBounds","padding","point","flyToActive","mapZoom","find","m","flyTo","flyToPosition","panToPosition","recalculateMapSize","invalidateSize","getCurrentZoom"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react");exports.useScrollTo=function(r){var t=e.useRef(-1),n=e.useRef(0),o=e.useState(void 0),c=o[0],u=o[1];return e.useEffect((function(){if(void 0!==c)if("scrollBehavior"in document.documentElement.style)window.scroll({top:c,left:0,behavior:"smooth"}),u(void 0);else{var e=function(o){-1===t.current&&(t.current=o||(new Date).getTime());var i,a=o-t.current,s=+(i=a/r,i*(2-i)).toFixed(2),l=0===c?n.current-n.current*s:n.current+c*s;window.scrollTo(0,l),c>0&&l>=n.current+c||c<0&&l<=n.current+c||0===c&&l<=0?(cancelAnimationFrame(t.current),t.current=-1,u(void 0)):window.requestAnimationFrame(e)};cancelAnimationFrame(t.current),t.current=-1,n.current=window.pageYOffset||document.documentElement.scrollTop,window.requestAnimationFrame(e)}}),[c,r]),u};
2
+ //# sourceMappingURL=useScrollTo-fdd665da.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollTo-fdd665da.js","sources":["../src/utils/useScrollTo.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport const useScrollTo = (fallbackScrollDuration: number) => {\n const startTime = useRef<number>(-1);\n const firstPos = useRef<number>(0);\n const [targetPos, setTargetPos] = useState<number | undefined>(undefined);\n\n const outQuad = (n: number) => {\n return n * (2 - n);\n };\n\n useEffect(() => {\n if (targetPos === undefined) return;\n if ('scrollBehavior' in document.documentElement.style) {\n window.scroll({\n top: targetPos,\n left: 0,\n behavior: 'smooth',\n });\n setTargetPos(undefined);\n } else {\n const animate = (timestamp: number) => {\n if (startTime.current === -1) {\n startTime.current = timestamp || new Date().getTime();\n }\n\n const elapsed = timestamp - startTime.current;\n const progress = elapsed / fallbackScrollDuration;\n const easeProgress = +outQuad(progress).toFixed(2);\n\n const newPos =\n targetPos === 0\n ? firstPos.current - firstPos.current * easeProgress\n : firstPos.current + targetPos * easeProgress;\n\n // scroll to new position\n window.scrollTo(0, newPos);\n\n if (\n (targetPos > 0 && newPos >= firstPos.current + targetPos) ||\n (targetPos < 0 && newPos <= firstPos.current + targetPos) ||\n (targetPos === 0 && newPos <= 0)\n ) {\n cancelAnimationFrame(startTime.current);\n startTime.current = -1;\n setTargetPos(undefined);\n } else {\n window.requestAnimationFrame(animate);\n }\n };\n\n cancelAnimationFrame(startTime.current);\n startTime.current = -1;\n firstPos.current =\n window.pageYOffset || document.documentElement.scrollTop;\n window.requestAnimationFrame(animate);\n }\n }, [targetPos, fallbackScrollDuration]);\n\n return setTargetPos;\n};\n"],"names":["fallbackScrollDuration","startTime","useRef","firstPos","_a","useState","undefined","targetPos","setTargetPos","useEffect","document","documentElement","style","window","scroll","top","left","behavior","animate_1","timestamp","current","Date","getTime","n","elapsed","easeProgress","toFixed","newPos","scrollTo","cancelAnimationFrame","requestAnimationFrame","pageYOffset","scrollTop"],"mappings":"wDAE2B,SAACA,GACxB,IAAMC,EAAYC,EAAAA,QAAgB,GAC5BC,EAAWD,SAAe,GAC1BE,EAA4BC,EAAQA,cAAqBC,GAAxDC,EAASH,EAAA,GAAEI,EAAYJ,EAAA,GAsD9B,OAhDAK,EAAAA,WAAU,WACFF,QAAcD,IAAdC,EACJ,GAAI,mBAAoBG,SAASC,gBAAgBC,MAC7CC,OAAOC,OAAO,CACVC,IAAKR,EACLS,KAAM,EACNC,SAAU,WAEdT,OAAaF,OACV,CACH,IAAMY,EAAU,SAACC,IACc,IAAvBlB,EAAUmB,UACVnB,EAAUmB,QAAUD,IAAa,IAAIE,MAAOC,WAGhD,IAnBKC,EAmBCC,EAAUL,EAAYlB,EAAUmB,QAEhCK,IArBDF,EAoBYC,EAAUxB,EAnB5BuB,GAAK,EAAIA,IAoBgCG,QAAQ,GAE1CC,EACY,IAAdpB,EACMJ,EAASiB,QAAUjB,EAASiB,QAAUK,EACtCtB,EAASiB,QAAUb,EAAYkB,EAGzCZ,OAAOe,SAAS,EAAGD,GAGdpB,EAAY,GAAKoB,GAAUxB,EAASiB,QAAUb,GAC9CA,EAAY,GAAKoB,GAAUxB,EAASiB,QAAUb,GAChC,IAAdA,GAAmBoB,GAAU,GAE9BE,qBAAqB5B,EAAUmB,SAC/BnB,EAAUmB,SAAW,EACrBZ,OAAaF,IAEbO,OAAOiB,sBAAsBZ,IAIrCW,qBAAqB5B,EAAUmB,SAC/BnB,EAAUmB,SAAW,EACrBjB,EAASiB,QACLP,OAAOkB,aAAerB,SAASC,gBAAgBqB,UACnDnB,OAAOiB,sBAAsBZ,MAElC,CAACX,EAAWP,IAERQ"}
@@ -1,7 +1,7 @@
1
- import { a as __makeTemplateObject } from './ClockFilled-8784ddac.js';
1
+ import { a as __makeTemplateObject } from './ClockFilled-6bae80dc.js';
2
2
  import React__default from 'react';
3
3
  import styled from 'styled-components';
4
- import { m as mq, s as spacings } from './styles-5f78e59d.js';
4
+ import { m as mq, s as spacings } from './styles-f6c54818.js';
5
5
 
6
6
  var View = styled.div.withConfig({
7
7
  displayName: "Actions__View",
@@ -54,4 +54,4 @@ var Actions = function (_a) {
54
54
  var templateObject_1, templateObject_2, templateObject_3;
55
55
 
56
56
  export { Actions as A };
57
- //# sourceMappingURL=Actions-73e13c48.js.map
57
+ //# sourceMappingURL=Actions-3f06c2e9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions-73e13c48.js","sources":["../src/components/blocks/Actions.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport { mq, spacings } from 'utils/styles';\n\nconst View = styled.div<{ isCovered?: boolean }>`\n display: block;\n\n @media ${mq.medium} {\n display: ${({ isCovered }) => (isCovered ? 'block' : 'inline-block')};\n }\n`;\n\nconst Content = styled.div<{\n isMirrored?: boolean;\n isCovered?: boolean;\n}>`\n display: flex;\n flex-wrap: wrap;\n flex-direction: ${({ isMirrored }) =>\n isMirrored ? 'column-reverse' : 'column'};\n\n margin-top: -${spacings.nudge * 2}px;\n margin-left: -${spacings.spacer}px;\n\n &&& > * {\n /* flex: 1 1 ${({ isCovered }) => (isCovered ? '100%' : '0px')}; */\n margin-top: ${spacings.nudge * 2}px;\n margin-left: ${spacings.spacer}px;\n\n /* min-width: ${({ isCovered }) => isCovered && '0px'}; */\n }\n\n @media ${mq.medium} {\n display: ${({ isCovered }) => (isCovered ? 'flex' : 'inline-flex')};\n flex-direction: ${({ isMirrored }) =>\n isMirrored ? 'row-reverse' : 'row'};\n align-items: stretch;\n width: auto;\n }\n`;\n\nconst TertiaryWrapper = styled.div`\n align-self: flex-start;\n\n @media ${mq.medium} {\n align-self: center;\n }\n`;\n\nexport type ActionMode = 'wrap' | 'cover';\n\nconst Actions: FC<{\n /** Behaviour of content wrapping. If set to cover the action container always tries to fill full width */\n mode?: ActionMode;\n /** Switch order of primary and secondary action */\n isMirrored?: boolean;\n /** React node of primary action */\n primary?: React.ReactNode;\n /** React node of secondary action */\n secondary?: React.ReactNode;\n /** React node of tertiary action */\n tertiary?: React.ReactNode;\n className?: string;\n}> = ({\n mode = 'wrap',\n isMirrored = false,\n primary,\n secondary,\n tertiary,\n className,\n}) => {\n return (\n <View isCovered={mode === 'cover'} className={className}>\n <Content isCovered={mode === 'cover'} isMirrored={isMirrored}>\n {primary && primary}\n {secondary && secondary}\n {tertiary && <TertiaryWrapper>{tertiary}</TertiaryWrapper>}\n </Content>\n </View>\n );\n};\n\nexport default Actions;\n"],"names":["View","styled","div","mq","medium","_a","isCovered","Content","templateObject_2","__makeTemplateObject","isMirrored","spacings","nudge","spacer","TertiaryWrapper","templateObject_3","Actions","_b","mode","_c","primary","secondary","tertiary","className","React","createElement"],"mappings":"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"}
1
+ {"version":3,"file":"Actions-3f06c2e9.js","sources":["../src/components/blocks/Actions.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport { mq, spacings } from 'utils/styles';\n\nconst View = styled.div<{ isCovered?: boolean }>`\n display: block;\n\n @media ${mq.medium} {\n display: ${({ isCovered }) => (isCovered ? 'block' : 'inline-block')};\n }\n`;\n\nconst Content = styled.div<{\n isMirrored?: boolean;\n isCovered?: boolean;\n}>`\n display: flex;\n flex-wrap: wrap;\n flex-direction: ${({ isMirrored }) =>\n isMirrored ? 'column-reverse' : 'column'};\n\n margin-top: -${spacings.nudge * 2}px;\n margin-left: -${spacings.spacer}px;\n\n &&& > * {\n /* flex: 1 1 ${({ isCovered }) => (isCovered ? '100%' : '0px')}; */\n margin-top: ${spacings.nudge * 2}px;\n margin-left: ${spacings.spacer}px;\n\n /* min-width: ${({ isCovered }) => isCovered && '0px'}; */\n }\n\n @media ${mq.medium} {\n display: ${({ isCovered }) => (isCovered ? 'flex' : 'inline-flex')};\n flex-direction: ${({ isMirrored }) =>\n isMirrored ? 'row-reverse' : 'row'};\n align-items: stretch;\n width: auto;\n }\n`;\n\nconst TertiaryWrapper = styled.div`\n align-self: flex-start;\n\n @media ${mq.medium} {\n align-self: center;\n }\n`;\n\nexport type ActionMode = 'wrap' | 'cover';\n\nconst Actions: FC<{\n /** Behaviour of content wrapping. If set to cover the action container always tries to fill full width */\n mode?: ActionMode;\n /** Switch order of primary and secondary action */\n isMirrored?: boolean;\n /** React node of primary action */\n primary?: React.ReactNode;\n /** React node of secondary action */\n secondary?: React.ReactNode;\n /** React node of tertiary action */\n tertiary?: React.ReactNode;\n className?: string;\n}> = ({\n mode = 'wrap',\n isMirrored = false,\n primary,\n secondary,\n tertiary,\n className,\n}) => {\n return (\n <View isCovered={mode === 'cover'} className={className}>\n <Content isCovered={mode === 'cover'} isMirrored={isMirrored}>\n {primary && primary}\n {secondary && secondary}\n {tertiary && <TertiaryWrapper>{tertiary}</TertiaryWrapper>}\n </Content>\n </View>\n );\n};\n\nexport default Actions;\n"],"names":["View","styled","div","mq","medium","_a","isCovered","Content","templateObject_2","__makeTemplateObject","isMirrored","spacings","nudge","spacer","TertiaryWrapper","templateObject_3","Actions","_b","mode","_c","primary","secondary","tertiary","className","React","createElement"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { a as __makeTemplateObject } from './ClockFilled-8784ddac.js';
1
+ import { a as __makeTemplateObject } from './ClockFilled-6bae80dc.js';
2
2
  import * as React from 'react';
3
3
  import styled from 'styled-components';
4
- import { L as Link } from './Link-ee8a48ed.js';
4
+ import { L as Link } from './Link-0a1e35d6.js';
5
5
 
6
6
  var bdotColor = '#1fc2f4';
7
7
  var Dot = styled(Link).withConfig({
@@ -21,4 +21,4 @@ var Bdot = function (_a) {
21
21
  var templateObject_1;
22
22
 
23
23
  export { Bdot as B };
24
- //# sourceMappingURL=Bdot-30b047cc.js.map
24
+ //# sourceMappingURL=Bdot-fae262fc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bdot-30b047cc.js","sources":["../src/components/blocks/Bdot.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport Link from 'components/typography/Link';\n\nconst bdotColor = '#1fc2f4';\n\nconst Dot = styled(Link)`\n width: 14px;\n height: 14px;\n\n display: inline-block;\n vertical-align: middle;\n border-radius: 50%;\n\n background: ${bdotColor};\n color: ${bdotColor};\n text-decoration: none;\n\n span {\n visibility: hidden;\n font-size: 0;\n color: transparent;\n }\n`;\n\nconst Bdot: React.FC<{ className?: string }> = ({ className }) => {\n return (\n <Dot\n ariaLabel=\"b.lateral - creative agency\"\n className={className}\n href=\"https://blateral.com\"\n isExternal\n >\n <span>b.lateral - creative agency</span>\n </Dot>\n );\n};\n\nexport default Bdot;\n"],"names":["bdotColor","Dot","styled","Link","templateObject_1","__makeTemplateObject","Bdot","_a","className","React","createElement","ariaLabel","href","isExternal"],"mappings":";;;;;AAIA,IAAMA,SAAS,GAAG,SAAlB,CAAA;AAEA,IAAMC,GAAG,GAAGC,MAAM,CAACC,IAAD,CAAT,CAAA,UAAA,CAAA;AAAA,EAAA,WAAA,EAAA,WAAA;AAAA,EAAA,WAAA,EAAA,aAAA;AAAA,CAAeC,CAAAA,CAAAA,gBAAA,KAAAA,gBAAA,GAAAC,oBAAA,CAAA,CAAA,+IAAA,EAAA,gBAAA,EAAA,uIAAA,CAAA,EAAA,CAAA,+IAAA,EAQG,gBARH,EASF,uIATE,CAAA,CAAA,CAAf,EAQSL,SART,EASIA,SATJ,CAAT,CAAA;;AAmBA,IAAMM,IAAI,GAAqC,UAACC,EAAD,EAAc;AAAX,EAAA,IAAAC,SAAS,GAAAD,EAAA,CAAAC,SAAT,CAAA;AAC9C,EAAA,OACIC,KAAC,CAAAC,aAAD,CAACT,GAAD,EACI;AAAAU,IAAAA,SAAS,EAAC,6BAAV;AACAH,IAAAA,SAAS,EAAEA,SADX;AAEAI,IAAAA,IAAI,EAAC,sBAFL;AAGAC,IAAAA,UAAU,EAAA,IAAA;AAHV,GADJ,EAMIJ,KAAwC,CAAAC,aAAxC,CAAwC,MAAxC,EAAwC,IAAxC,EAAwC,6BAAxC,CANJ,CADJ,CAAA;AAUH,EAXD;;;;;"}
1
+ {"version":3,"file":"Bdot-fae262fc.js","sources":["../src/components/blocks/Bdot.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport Link from 'components/typography/Link';\n\nconst bdotColor = '#1fc2f4';\n\nconst Dot = styled(Link)`\n width: 14px;\n height: 14px;\n\n display: inline-block;\n vertical-align: middle;\n border-radius: 50%;\n\n background: ${bdotColor};\n color: ${bdotColor};\n text-decoration: none;\n\n span {\n visibility: hidden;\n font-size: 0;\n color: transparent;\n }\n`;\n\nconst Bdot: React.FC<{ className?: string }> = ({ className }) => {\n return (\n <Dot\n ariaLabel=\"b.lateral - creative agency\"\n className={className}\n href=\"https://blateral.com\"\n isExternal\n >\n <span>b.lateral - creative agency</span>\n </Dot>\n );\n};\n\nexport default Bdot;\n"],"names":["bdotColor","Dot","styled","Link","templateObject_1","__makeTemplateObject","Bdot","_a","className","React","createElement","ariaLabel","href","isExternal"],"mappings":";;;;;AAIA,IAAMA,SAAS,GAAG,SAAlB,CAAA;AAEA,IAAMC,GAAG,GAAGC,MAAM,CAACC,IAAD,CAAT,CAAA,UAAA,CAAA;AAAA,EAAA,WAAA,EAAA,WAAA;AAAA,EAAA,WAAA,EAAA,aAAA;AAAA,CAAeC,CAAAA,CAAAA,gBAAA,KAAAA,gBAAA,GAAAC,oBAAA,CAAA,CAAA,+IAAA,EAAA,gBAAA,EAAA,uIAAA,CAAA,EAAA,CAAA,+IAAA,EAQG,gBARH,EASF,uIATE,CAAA,CAAA,CAAf,EAQSL,SART,EASIA,SATJ,CAAT,CAAA;;AAmBA,IAAMM,IAAI,GAAqC,UAACC,EAAD,EAAc;AAAX,EAAA,IAAAC,SAAS,GAAAD,EAAA,CAAAC,SAAT,CAAA;AAC9C,EAAA,OACIC,KAAC,CAAAC,aAAD,CAACT,GAAD,EACI;AAAAU,IAAAA,SAAS,EAAC,6BAAV;AACAH,IAAAA,SAAS,EAAEA,SADX;AAEAI,IAAAA,IAAI,EAAC,sBAFL;AAGAC,IAAAA,UAAU,EAAA,IAAA;AAHV,GADJ,EAMIJ,KAAwC,CAAAC,aAAxC,CAAwC,MAAxC,EAAwC,IAAxC,EAAwC,6BAAxC,CANJ,CADJ,CAAA;AAUH,EAXD;;;;;"}
@@ -1,8 +1,8 @@
1
- import { a as __makeTemplateObject, d as __rest, _ as __assign } from './ClockFilled-8784ddac.js';
1
+ import { a as __makeTemplateObject, d as __rest, _ as __assign } from './ClockFilled-6bae80dc.js';
2
2
  import React__default from 'react';
3
3
  import styled, { css } from 'styled-components';
4
4
  import { h as hexToRgba } from './hexRgbConverter-edb91624.js';
5
- import { s as spacings, a as getFonts, w as withRange, c as getGlobals, g as getColors, m as mq } from './styles-5f78e59d.js';
5
+ import { s as spacings, a as getFonts, w as withRange, c as getGlobals, g as getColors, m as mq } from './styles-f6c54818.js';
6
6
 
7
7
  var View = styled.a.withConfig({
8
8
  displayName: "Button__View",
@@ -112,4 +112,4 @@ var Button$1 = {
112
112
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
113
113
 
114
114
  export { Button$1 as B };
115
- //# sourceMappingURL=Button-678be396.js.map
115
+ //# sourceMappingURL=Button-ab1a4e79.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button-678be396.js","sources":["../src/components/buttons/Button.tsx"],"sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { hexToRgba } from 'utils/hexRgbConverter';\n\nimport {\n getColors as color,\n getFonts as font,\n getGlobals as global,\n mq,\n spacings,\n withRange,\n} from 'utils/styles';\n\nconst View = styled.a<{\n inverted?: boolean;\n disable?: boolean;\n size?: 'default' | 'small';\n}>`\n min-height: 3em;\n height: ${({ size }) => (size === 'default' ? '3.5em' : '3em')};\n min-width: ${({ size }) => (size === 'default' ? '200px' : '120px')};\n padding: 0.1em 1.2em;\n\n max-width: calc(100% - ${spacings.spacer}px);\n\n display: inline-flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-items: center;\n\n vertical-align: middle;\n\n font-family: ${({ theme }) => font(theme).copy.medium.family};\n ${({ theme }) => withRange(font(theme).copy.medium.size, 'font-size')}\n font-weight: ${({ theme }) => font(theme).copy.medium.weight};\n line-height: 1;\n letter-spacing: ${({ theme }) => font(theme).copy.medium.letterSpacing};\n text-decoration: none;\n\n outline: none;\n border: 1px solid transparent;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n user-select: none;\n cursor: pointer;\n\n pointer-events: ${({ disable }) => (disable ? 'none' : 'all')};\n\n background-color: ${({ theme, inverted, disable }) =>\n disable\n ? color(theme).elementBg.medium\n : inverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n color: ${({ theme, inverted, disable }) =>\n disable\n ? hexToRgba(color(theme).text.default, 0.4)\n : !inverted\n ? color(theme).text.inverted\n : color(theme).text.default};\n text-align: left;\n\n transition: all ease-in-out 0.2s;\n\n & > * {\n color: ${({ theme, inverted, disable }) =>\n disable\n ? hexToRgba(color(theme).text.default, 0.4)\n : !inverted\n ? color(theme).text.inverted\n : color(theme).text.default};\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n & > *[data-btn-desktop] + *[data-btn-mobile] {\n margin-left: 0;\n }\n & > *[data-btn-mobile] + *[data-btn-desktop] {\n margin-left: 0;\n }\n & > *[data-btn-desktop] {\n display: none;\n }\n & > *:not([data-btn-desktop]) + * {\n margin-left: 0;\n }\n\n @media (hover: hover) and (pointer: fine) {\n ${({ disable, inverted }) =>\n !disable &&\n css`\n &:hover {\n box-shadow: 0px 8px 16px\n ${inverted\n ? 'rgba(255, 255, 255, 0.25)'\n : 'rgba(0, 0, 0, 0.25)'};\n }\n `}\n }\n\n ${({ disable, inverted }) =>\n !disable &&\n css`\n &:focus {\n text-decoration: underline;\n box-shadow: 0px 8px 16px\n ${inverted\n ? 'rgba(255, 255, 255, 0.25)'\n : 'rgba(0, 0, 0, 0.25)'};\n }\n\n &:focus:not(:focus-visible) {\n text-decoration: none;\n outline: none;\n box-shadow: none;\n }\n\n &:active {\n box-shadow: 0px 2px 6px\n ${inverted\n ? 'rgba(255, 255, 255, 0.25)'\n : 'rgba(0, 0, 0, 0.3)'};\n }\n `}\n\n @media ${mq.semilarge} {\n & > *[data-btn-desktop='true'] {\n display: inherit;\n }\n & > *[data-btn-mobile='true'] {\n display: none;\n }\n & > *:not([data-btn-mobile='true']) + * {\n margin-left: 0;\n }\n }\n`;\n\ninterface Props {\n size?: 'default' | 'small';\n isInverted?: boolean;\n isDisabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport type BtnProps = Props & {\n as?: 'button';\n onClick?: (ev: React.SyntheticEvent<HTMLButtonElement>) => void;\n};\n\nexport type LinkProps = Props & {\n as?: 'a';\n href?: string;\n onClick?: (ev: React.SyntheticEvent<HTMLAnchorElement>) => void;\n isExternal?: boolean;\n};\n\nconst Button: React.FC<BtnProps | LinkProps> = React.forwardRef(\n (\n {\n as,\n size = 'default',\n isInverted,\n isDisabled,\n onClick,\n className,\n children,\n ...rest\n },\n ref\n ) => {\n if (as === 'button') {\n return (\n <View\n ref={ref}\n as={as as any}\n size={size}\n inverted={isInverted}\n disable={isDisabled}\n onClick={onClick}\n className={className}\n {...rest}\n >\n {children}\n </View>\n );\n } else {\n return (\n <View\n ref={ref}\n as={as as any}\n aria-disabled={isDisabled}\n size={size}\n href={(rest as LinkProps).href}\n target={\n (rest as LinkProps).isExternal ? '_blank' : undefined\n }\n rel={\n (rest as LinkProps).isExternal\n ? 'noopener noreferrer'\n : undefined\n }\n inverted={isInverted}\n disable={isDisabled}\n onClick={onClick}\n className={className}\n {...rest}\n >\n {children}\n </View>\n );\n }\n }\n);\n\nButton.displayName = 'Button';\n\nconst Icon = styled.div<{ iconColor?: string }>`\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n width: 35px;\n height: 35px;\n\n color: ${({ iconColor }) => iconColor || 'inherit'};\n\n transition: transform 0.2s ease-in-out;\n\n ${View}:hover > & {\n transform: translateX(3px);\n }\n`;\n\nconst Label = styled.span`\n display: inline-block;\n\n max-width: 100%;\n\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nexport default { View: Button, Label: Label, Icon: Icon };\n"],"names":["View","styled","a","templateObject_3","__makeTemplateObject","_a","size","spacings","spacer","theme","font","copy","medium","family","withRange","weight","letterSpacing","global","sections","edgeRadius","disable","inverted","color","elementBg","primary","default","hexToRgba","text","nudge","css","templateObject_2","mq","semilarge","Button","React","forwardRef","ref","as","_b","isInverted","isDisabled","onClick","className","children","rest","__rest","createElement","__assign","href","target","isExternal","undefined","rel","displayName","Icon","div","templateObject_4","iconColor","Label","span","templateObject_5"],"mappings":"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"}
1
+ {"version":3,"file":"Button-ab1a4e79.js","sources":["../src/components/buttons/Button.tsx"],"sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { hexToRgba } from 'utils/hexRgbConverter';\n\nimport {\n getColors as color,\n getFonts as font,\n getGlobals as global,\n mq,\n spacings,\n withRange,\n} from 'utils/styles';\n\nconst View = styled.a<{\n inverted?: boolean;\n disable?: boolean;\n size?: 'default' | 'small';\n}>`\n min-height: 3em;\n height: ${({ size }) => (size === 'default' ? '3.5em' : '3em')};\n min-width: ${({ size }) => (size === 'default' ? '200px' : '120px')};\n padding: 0.1em 1.2em;\n\n max-width: calc(100% - ${spacings.spacer}px);\n\n display: inline-flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n align-items: center;\n\n vertical-align: middle;\n\n font-family: ${({ theme }) => font(theme).copy.medium.family};\n ${({ theme }) => withRange(font(theme).copy.medium.size, 'font-size')}\n font-weight: ${({ theme }) => font(theme).copy.medium.weight};\n line-height: 1;\n letter-spacing: ${({ theme }) => font(theme).copy.medium.letterSpacing};\n text-decoration: none;\n\n outline: none;\n border: 1px solid transparent;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n user-select: none;\n cursor: pointer;\n\n pointer-events: ${({ disable }) => (disable ? 'none' : 'all')};\n\n background-color: ${({ theme, inverted, disable }) =>\n disable\n ? color(theme).elementBg.medium\n : inverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n color: ${({ theme, inverted, disable }) =>\n disable\n ? hexToRgba(color(theme).text.default, 0.4)\n : !inverted\n ? color(theme).text.inverted\n : color(theme).text.default};\n text-align: left;\n\n transition: all ease-in-out 0.2s;\n\n & > * {\n color: ${({ theme, inverted, disable }) =>\n disable\n ? hexToRgba(color(theme).text.default, 0.4)\n : !inverted\n ? color(theme).text.inverted\n : color(theme).text.default};\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n & > *[data-btn-desktop] + *[data-btn-mobile] {\n margin-left: 0;\n }\n & > *[data-btn-mobile] + *[data-btn-desktop] {\n margin-left: 0;\n }\n & > *[data-btn-desktop] {\n display: none;\n }\n & > *:not([data-btn-desktop]) + * {\n margin-left: 0;\n }\n\n @media (hover: hover) and (pointer: fine) {\n ${({ disable, inverted }) =>\n !disable &&\n css`\n &:hover {\n box-shadow: 0px 8px 16px\n ${inverted\n ? 'rgba(255, 255, 255, 0.25)'\n : 'rgba(0, 0, 0, 0.25)'};\n }\n `}\n }\n\n ${({ disable, inverted }) =>\n !disable &&\n css`\n &:focus {\n text-decoration: underline;\n box-shadow: 0px 8px 16px\n ${inverted\n ? 'rgba(255, 255, 255, 0.25)'\n : 'rgba(0, 0, 0, 0.25)'};\n }\n\n &:focus:not(:focus-visible) {\n text-decoration: none;\n outline: none;\n box-shadow: none;\n }\n\n &:active {\n box-shadow: 0px 2px 6px\n ${inverted\n ? 'rgba(255, 255, 255, 0.25)'\n : 'rgba(0, 0, 0, 0.3)'};\n }\n `}\n\n @media ${mq.semilarge} {\n & > *[data-btn-desktop='true'] {\n display: inherit;\n }\n & > *[data-btn-mobile='true'] {\n display: none;\n }\n & > *:not([data-btn-mobile='true']) + * {\n margin-left: 0;\n }\n }\n`;\n\ninterface Props {\n size?: 'default' | 'small';\n isInverted?: boolean;\n isDisabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport type BtnProps = Props & {\n as?: 'button';\n onClick?: (ev: React.SyntheticEvent<HTMLButtonElement>) => void;\n};\n\nexport type LinkProps = Props & {\n as?: 'a';\n href?: string;\n onClick?: (ev: React.SyntheticEvent<HTMLAnchorElement>) => void;\n isExternal?: boolean;\n};\n\nconst Button: React.FC<BtnProps | LinkProps> = React.forwardRef(\n (\n {\n as,\n size = 'default',\n isInverted,\n isDisabled,\n onClick,\n className,\n children,\n ...rest\n },\n ref\n ) => {\n if (as === 'button') {\n return (\n <View\n ref={ref}\n as={as as any}\n size={size}\n inverted={isInverted}\n disable={isDisabled}\n onClick={onClick}\n className={className}\n {...rest}\n >\n {children}\n </View>\n );\n } else {\n return (\n <View\n ref={ref}\n as={as as any}\n aria-disabled={isDisabled}\n size={size}\n href={(rest as LinkProps).href}\n target={\n (rest as LinkProps).isExternal ? '_blank' : undefined\n }\n rel={\n (rest as LinkProps).isExternal\n ? 'noopener noreferrer'\n : undefined\n }\n inverted={isInverted}\n disable={isDisabled}\n onClick={onClick}\n className={className}\n {...rest}\n >\n {children}\n </View>\n );\n }\n }\n);\n\nButton.displayName = 'Button';\n\nconst Icon = styled.div<{ iconColor?: string }>`\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n width: 35px;\n height: 35px;\n\n color: ${({ iconColor }) => iconColor || 'inherit'};\n\n transition: transform 0.2s ease-in-out;\n\n ${View}:hover > & {\n transform: translateX(3px);\n }\n`;\n\nconst Label = styled.span`\n display: inline-block;\n\n max-width: 100%;\n\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nexport default { View: Button, Label: Label, Icon: Icon };\n"],"names":["View","styled","a","templateObject_3","__makeTemplateObject","_a","size","spacings","spacer","theme","font","copy","medium","family","withRange","weight","letterSpacing","global","sections","edgeRadius","disable","inverted","color","elementBg","primary","default","hexToRgba","text","nudge","css","templateObject_2","mq","semilarge","Button","React","forwardRef","ref","as","_b","isInverted","isDisabled","onClick","className","children","rest","__rest","createElement","__assign","href","target","isExternal","undefined","rel","displayName","Icon","div","templateObject_4","iconColor","Label","span","templateObject_5"],"mappings":"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"}