@blateral/b.kit 2.8.1 → 2.8.3
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.
- package/cjs/{FilterBar-0781490f.js → FilterBar-0cb49472.js} +2 -2
- package/cjs/FilterBar-0cb49472.js.map +1 -0
- package/cjs/{FilterField-7efcacb7.js → FilterField-0ba59002.js} +2 -2
- package/cjs/FilterField-0ba59002.js.map +1 -0
- package/cjs/MultiselectDropdown-07d543dc.js +2 -0
- package/cjs/MultiselectDropdown-07d543dc.js.map +1 -0
- package/cjs/Pointer-0f69256f.js +2 -0
- package/cjs/Pointer-0f69256f.js.map +1 -0
- package/cjs/blocks.js +1 -1
- package/cjs/buttons.js +1 -1
- package/cjs/fields.js +1 -1
- package/cjs/sections.events.js +1 -1
- package/cjs/sections.jobs.js +1 -1
- package/cjs/sections.js +1 -1
- package/cjs/sections.news.js +1 -1
- package/cjs/sections.pois.js +1 -1
- package/cjs/sections.pois.js.map +1 -1
- package/esm/{FilterBar-2a2a09b7.js → FilterBar-821e43bc.js} +23 -23
- package/esm/FilterBar-821e43bc.js.map +1 -0
- package/esm/{FilterField-bec061bc.js → FilterField-60359bfc.js} +2 -2
- package/esm/FilterField-60359bfc.js.map +1 -0
- package/esm/{MultiselectDropdown-a97be6bc.js → MultiselectDropdown-91d0151c.js} +19 -14
- package/esm/MultiselectDropdown-91d0151c.js.map +1 -0
- package/esm/{Pointer-b4abee91.js → Pointer-3e965d7b.js} +2 -2
- package/esm/Pointer-3e965d7b.js.map +1 -0
- package/esm/blocks.js +4 -4
- package/esm/buttons.js +1 -1
- package/esm/fields.js +2 -2
- package/esm/sections.events.js +1 -1
- package/esm/sections.jobs.js +1 -1
- package/esm/sections.js +1 -1
- package/esm/sections.news.js +1 -1
- package/esm/sections.pois.js +8 -5
- package/esm/sections.pois.js.map +1 -1
- package/package.json +1 -1
- package/types/components/blocks/FilterBar.d.ts.map +1 -1
- package/types/components/fields/FilterField.d.ts.map +1 -1
- package/types/components/fields/MultiselectDropdown.d.ts.map +1 -1
- package/types/components/sections/pois/PointOfInterestOverview.d.ts.map +1 -1
- package/cjs/FilterBar-0781490f.js.map +0 -1
- package/cjs/FilterField-7efcacb7.js.map +0 -1
- package/cjs/MultiselectDropdown-a16ea1c9.js +0 -2
- package/cjs/MultiselectDropdown-a16ea1c9.js.map +0 -1
- package/cjs/Pointer-331140b6.js +0 -2
- package/cjs/Pointer-331140b6.js.map +0 -1
- package/esm/FilterBar-2a2a09b7.js.map +0 -1
- package/esm/FilterField-bec061bc.js.map +0 -1
- package/esm/MultiselectDropdown-a97be6bc.js.map +0 -1
- package/esm/Pointer-b4abee91.js.map +0 -1
package/esm/sections.pois.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.pois.js","sources":["../src/components/sections/pois/PointOfInterestDetail.tsx","../src/components/sections/pois/filters.ts","../src/components/sections/pois/partials/PoiFilterBar.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 { POICardProps } from 'components/blocks/POICard';\nimport { isValidArray } from 'hooks';\nimport { escapeRegExp } from 'utils/escape';\n\nexport type POIData = Pick<\n POICardProps,\n 'name' | 'facts' | 'infos' | 'shortDescription'\n> & { id: string };\n\nexport interface FilterMatch {\n item: POIData;\n priority: number;\n}\n\nconst poiExactNameFilter =\n <T extends POIData>(filterQuery: string) =>\n (value: T) => {\n const regex = new RegExp(filterQuery);\n return regex.test(value.name);\n };\n\nconst poiSoftNameFilter =\n <T extends POIData>(filterQuery: string) =>\n (value: T) => {\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) =>\n <T extends POIData>(value: T) => {\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) =>\n <T extends POIData>(value: T) => {\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) =>\n <T extends POIData>(value: T) => {\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 = <T extends POIData>(\n array: FilterMatch[],\n item?: T[]\n) => {\n if (!item) return [];\n return item?.filter(\n (m) => !array.find((prioItem) => prioItem.item.id === m.id)\n );\n};\n\nconst filterPois = <T extends POIData>(filterQuery: string, pois: T[]) => {\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\nexport const getFilterMatches = <T extends POIData>(\n filterQuery: string,\n categoryFilters: string[],\n items: T[]\n) => {\n const searchMatches: Map<string, FilterMatch> = new Map();\n\n if (!filterQuery && !categoryFilters.length) {\n for (const item of items) {\n searchMatches.set(item.id, {\n item,\n priority: 0,\n });\n }\n }\n\n for (const item of items) {\n if (item.facts?.some((fact) => categoryFilters.includes(fact))) {\n searchMatches.set(item.id, {\n item,\n priority: 1,\n });\n }\n }\n\n // tracking matches of each query part\n const matches = filterQuery\n ? filterPois(escapeRegExp(filterQuery), items || [])\n : [];\n\n for (const match of matches) {\n if (searchMatches.has(match.item.id)) continue;\n searchMatches.set(match.item.id, match);\n }\n\n return searchMatches;\n};\n","import Cross from 'components/base/icons/Cross';\nimport CrossBubble from 'components/base/icons/CrossBubble';\nimport Filter from 'components/base/icons/Filter';\nimport Magnifier from 'components/base/icons/Magnifier';\nimport FilterBar, { FilterBarProps } from 'components/blocks/FilterBar';\nimport React, { FC } from 'react';\n\nconst PoiFilterBar: FC<\n FilterBarProps & { isInverted?: boolean; className?: string }\n> = ({\n hasBorders,\n value,\n onChange,\n textFilter,\n categoryFilter,\n mobileSubmitLabel,\n closeIcon,\n toggleLabel,\n filterIcon,\n indicator,\n isInverted,\n className,\n}) => {\n return (\n <FilterBar\n isInverted={isInverted}\n hasBorders={hasBorders}\n value={value}\n onChange={onChange}\n textFilter={\n textFilter\n ? {\n placeholder: textFilter.placeholder || 'Search...',\n icon: textFilter.icon\n ? textFilter.icon\n : () => <Magnifier width={18} height={18} />,\n submitIcon: textFilter.submitIcon\n ? textFilter.submitIcon\n : () => null,\n clearIcon: textFilter.clearIcon\n ? textFilter.clearIcon\n : () => <CrossBubble />,\n }\n : undefined\n }\n categoryFilter={\n categoryFilter\n ? {\n label: categoryFilter.label || 'Categories',\n items: categoryFilter.items || [],\n resetLabel:\n categoryFilter.resetLabel || 'reset selection',\n }\n : undefined\n }\n mobileSubmitLabel={mobileSubmitLabel || 'Apply filters'}\n closeIcon={closeIcon ? closeIcon : () => <Cross />}\n toggleLabel={toggleLabel || 'Search & Filter'}\n filterIcon={filterIcon ? filterIcon : () => <Filter />}\n indicator={indicator}\n className={className}\n />\n );\n};\n\nexport default PoiFilterBar;\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 React, { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { mq, spacings, getColors as color } from 'utils/styles';\nimport { deleteUrlParam, setUrlParam } from 'utils/urlParams';\nimport { FilterState } from 'components/blocks/FilterBar';\nimport { getFilterMatches } from './filters';\nimport * as PoiPartials from 'components/sections/pois/partials';\n\nconst POISection = styled(Section)`\n overflow: visible;\n`;\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 PoiOverviewFilterBar = styled(PoiPartials.PoiFilterBar)`\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n\n &:not(:last-child) {\n margin-bottom: ${spacings.nudge * 5}px;\n }\n\n @media ${mq.medium} {\n border: none;\n }\n`;\n\ninterface CardProps extends POICardProps {\n id: string;\n infos?: Array<Info & { allowFiltering?: boolean }>;\n}\n\nexport type PointOfInterestOverviewItem = Omit<CardProps, 'isInverted'>;\n\nexport interface PoiOverviewFilters {\n toggleLabel?: string;\n mobileSubmitLabel?: string;\n categoryFilter?: {\n label?: string;\n resetLabel?: string;\n };\n textFilter?: {\n placeholder?: string;\n icon?: (isInverted?: boolean) => React.ReactNode;\n submitIcon?: (isInverted?: boolean) => React.ReactNode;\n clearIcon?: (isInverted?: boolean) => React.ReactNode;\n };\n closeIcon?: (isInverted?: boolean) => React.ReactNode;\n filterIcon?: (isInverted?: boolean) => React.ReactNode;\n indicator?: (props: {\n isOpen: boolean;\n isDisabled?: boolean;\n }) => React.ReactNode;\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 /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Initial POI filter states */\n initialPoiFilters?: FilterState;\n\n /** POI filter settings */\n poiFilters?: PoiOverviewFilters;\n customPoiFilters?: (props: {\n pois: PointOfInterestOverviewItem[];\n filters: FilterState;\n setFilters: React.Dispatch<React.SetStateAction<FilterState>>;\n settings?: PoiOverviewFilters;\n }) => React.ReactNode;\n}> = ({\n anchorId,\n bgMode,\n pois,\n initialPoiFilters,\n poiFilters,\n customPoiFilters,\n}) => {\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.poiFilterName;\n const factFiltername = globals.sections.poiFactFilterName;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [filters, setFilters] = useState<FilterState>(\n initialPoiFilters || {\n categoryFilter: [],\n textFilter: '',\n }\n );\n\n const categories = useMemo(() => {\n return pois?.reduce<string[]>((acc, poi) => {\n const newCategories = [...acc];\n\n for (const fact of poi.facts || []) {\n if (!newCategories.includes(fact)) {\n newCategories.push(fact);\n }\n }\n\n return newCategories;\n }, []);\n }, [pois]);\n\n const poiMatches = useMemo(() => {\n const matches =\n getFilterMatches<PointOfInterestOverviewItem>(\n filters?.textFilter || '',\n filters?.categoryFilter || [],\n pois || []\n ) || pois;\n\n return Array.from(matches).map((m) => m[1]);\n }, [filters?.textFilter, filters?.categoryFilter, pois]);\n\n useEffect(() => {\n if (filters.textFilter) {\n setUrlParam(filterName, filters.textFilter);\n } else {\n deleteUrlParam(filterName);\n }\n\n if (isValidArray(filters.categoryFilter, false)) {\n setUrlParam(factFiltername, filters.categoryFilter.join(','));\n } else {\n deleteUrlParam(factFiltername);\n }\n }, [\n filterName,\n factFiltername,\n filters.textFilter,\n filters.categoryFilter,\n ]);\n\n return (\n <POISection\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 {poiFilters ? (\n customPoiFilters ? (\n customPoiFilters?.({\n filters,\n setFilters,\n pois: pois || [],\n settings: poiFilters,\n })\n ) : (\n <PoiOverviewFilterBar\n hasBorders\n value={filters}\n onChange={setFilters}\n textFilter={poiFilters?.textFilter || undefined}\n categoryFilter={\n poiFilters?.categoryFilter\n ? {\n ...poiFilters.categoryFilter,\n items: categories?.map(\n (cat) =>\n ({\n value: cat,\n label: cat,\n } || [])\n ),\n }\n : undefined\n }\n mobileSubmitLabel={poiFilters?.mobileSubmitLabel}\n closeIcon={poiFilters?.closeIcon}\n toggleLabel={poiFilters?.toggleLabel}\n filterIcon={poiFilters?.filterIcon}\n indicator={poiFilters?.indicator}\n isInverted={isInverted}\n />\n )\n ) : null}\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 </POISection>\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 {\n mq,\n withRange,\n getColors as color,\n getGlobals as global,\n spacings,\n} 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';\nimport { FilterState } from 'components/blocks/FilterBar';\nimport { getFilterMatches } from './filters';\n\nimport * as PoiPartials from 'components/sections/pois/partials';\nimport { deleteUrlParam, setUrlParam } from 'hooks';\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 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: ${({ theme }) => global(theme).sections.edgeRadius};\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 Overlay = styled.div`\n position: absolute;\n top: ${spacings.nudge * 2}px;\n left: ${spacings.nudge * 2}px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ${spacings.nudge * 2}px;\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\nexport interface PoiMapFilters {\n toggleLabel?: string;\n mobileSubmitLabel?: string;\n categoryFilter?: {\n label?: string;\n resetLabel?: string;\n };\n textFilter?: {\n placeholder?: string;\n icon?: (isInverted?: boolean) => React.ReactNode;\n submitIcon?: (isInverted?: boolean) => React.ReactNode;\n clearIcon?: (isInverted?: boolean) => React.ReactNode;\n };\n closeIcon?: (isInverted?: boolean) => React.ReactNode;\n filterIcon?: (isInverted?: boolean) => React.ReactNode;\n indicator?: (props: {\n isOpen: boolean;\n isDisabled?: boolean;\n }) => 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 /** Initial POI filter states */\n initialPoiFilters?: FilterState;\n\n /** POI filter settings */\n poiFilters?: PoiMapFilters;\n customPoiFilters?: (props: {\n pois: MapPOI[];\n filters: FilterState;\n setFilters: React.Dispatch<React.SetStateAction<FilterState>>;\n settings?: PoiMapFilters;\n }) => 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 initialPoiFilters,\n poiFilters,\n customPoiFilters,\n}) => {\n const isLarge = size === 'large';\n const { colors, globals } = useLibTheme();\n\n const [activePoiId, setActivePoiId] = useState<string>(\n initialPointOfInterest || ''\n );\n const [isDirty, setIsDirty] = useState<boolean>(false);\n\n const [filters, setFilters] = useState<FilterState>(\n initialPoiFilters || {\n categoryFilter: [],\n textFilter: '',\n }\n );\n\n const categories = useMemo(() => {\n return pois?.reduce<string[]>((acc, poi) => {\n const newCategories = [...acc];\n\n for (const fact of poi.facts || []) {\n if (!newCategories.includes(fact)) {\n newCategories.push(fact);\n }\n }\n\n return newCategories;\n }, []);\n }, [pois]);\n\n const activePois = useMemo(() => {\n const matches =\n getFilterMatches<MapPOI>(\n filters?.textFilter || '',\n filters?.categoryFilter || [],\n pois || []\n ) || pois;\n\n return Array.from(matches).map((m) => m[1].item) as MapPOI[];\n }, [filters?.textFilter, filters?.categoryFilter, pois]);\n\n const activePOI = useMemo(() => {\n return activePois?.find((poi) => poi.id === activePoiId);\n }, [activePoiId, activePois]);\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 activePois\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 activePois,\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 const filterName = globals.sections.poiFilterName;\n const factFiltername = globals.sections.poiFactFilterName;\n\n useEffect(() => {\n if (filters.textFilter) {\n setUrlParam(filterName, filters.textFilter);\n } else {\n deleteUrlParam(filterName);\n }\n\n if (isValidArray(filters.categoryFilter, false)) {\n setUrlParam(factFiltername, filters.categoryFilter.join(','));\n } else {\n deleteUrlParam(factFiltername);\n }\n }, [\n filterName,\n factFiltername,\n filters.textFilter,\n filters.categoryFilter,\n ]);\n\n useEffect(() => {\n setActivePoiId('');\n setIsDirty(false);\n }, [filters]);\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 || poiFilters) && (\n <Overlay>\n {showOwnPosition && (\n <RequestGeolocationBtn\n onClick={handleLocationRequest}\n >\n {customLocationRequest || (\n <MyLocation\n iconColor={colors.text.default}\n />\n )}\n </RequestGeolocationBtn>\n )}\n {poiFilters ? (\n customPoiFilters ? (\n customPoiFilters({\n filters,\n setFilters,\n pois: pois || [],\n settings: poiFilters,\n })\n ) : (\n <PoiPartials.PoiFilterBar\n value={filters}\n onChange={setFilters}\n textFilter={\n poiFilters?.textFilter || undefined\n }\n categoryFilter={\n poiFilters?.categoryFilter\n ? {\n ...poiFilters.categoryFilter,\n items: categories?.map(\n (cat) =>\n ({\n value: cat,\n label: cat,\n } || [])\n ),\n }\n : undefined\n }\n mobileSubmitLabel={\n poiFilters?.mobileSubmitLabel\n }\n closeIcon={poiFilters?.closeIcon}\n toggleLabel={poiFilters?.toggleLabel}\n filterIcon={poiFilters?.filterIcon}\n indicator={poiFilters?.indicator}\n />\n )\n ) : null}\n </Overlay>\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","templateObject_1","__makeTemplateObject","spacings","spacer","Facts","POIFacts","templateObject_2","PoiTitle","Heading","templateObject_3","nudge","PoiText","Copy","templateObject_4","PointOfInterestDetail","_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","withLibTheme","poiExactNameFilter","filterQuery","value","regex","RegExp","test","name","poiSoftNameFilter","preparedQuery","toLowerCase","replace","preparedName","poiFactFilter","result","find","fact","preparedFact","poiInfoFilter","preparedText","poiDescriptionFilter","shortDescription","preparedDesc","removeMatchIntersections","array","item","m","prioItem","id","filterPois","pois","prioList","poi","undefined","exactNameMatches","push","apply","map","match","priority","nameMatches","factMatches","infoMatches","descMatches","getFilterMatches","categoryFilters","searchMatches","Map","length","items_1","_i","set","items_2","_b","some","includes","matches","escapeRegExp","matches_1","_c","has","PoiFilterBar","hasBorders","onChange","textFilter","categoryFilter","mobileSubmitLabel","closeIcon","toggleLabel","filterIcon","indicator","className","FilterBar","placeholder","icon","Magnifier","width","height","submitIcon","clearIcon","CrossBubble","label","resetLabel","Cross","Filter","POISection","Content","div","mq","large","PoiOverviewFilterBar","PoiPartials","theme","color","elementBg","PointOfInterestOverview","initialPoiFilters","poiFilters","customPoiFilters","globals","filterName","sections","poiFilterName","factFiltername","poiFactFilterName","_d","useState","filters","setFilters","categories","reduce","acc","newCategories","__spreadArray","poiMatches","Array","from","useEffect","setUrlParam","deleteUrlParam","join","settings","cat","sort","a","b","i","POICard","__assign","key","genHeightStyles","css","mainIdent","genIdent","pageFlow","hasMain","mainTopIdent","hasTop","mainBottomIdent","hasBottom","fullIdent","navMainHeight","getNavHeight","navMainTopHeight","navMainBottomHeight","navFullHeight","mapToSelector","idents","concat","refHeight","split","PoiMapSection","isLarge","withRange","MapContainer","templateObject_5","RequestGeolocationBtn","button","primary","default","CardStage","templateObject_7","MapCardView","global","edgeRadius","MapCardHeader","header","templateObject_9","CloseBtn","Overlay","templateObject_11","MapCard","description","action","customClose","onClose","onClick","iconColor","PointOfInterestMap","initialPointOfInterest","provider","attribution","center","zoom","fitBoundsPadding","_e","allMarkersOnInit","_f","restrictToMarkersArea","showOwnPosition","flyToZoom","currentPosMarker","customCardClose","customLocationRequest","_g","_h","activePoiId","setActivePoiId","_j","isDirty","setIsDirty","_k","activePois","activePOI","_l","useGeolocation","isGeolocationSupported","isSupported","location","resetGeolocation","mapMarkers","defaultMarker","anchor","sizeActive","anchorActive","url","getSVGData","LocationPin","defaultPosMarker","CurrentLocation","markers","position","isInteractive","coords","latitude","longitude","_m","useLeafletMap","activeMarkerId","showZoomControls","zoomControlPosition","onMarkerClick","markerId","prev","isLoaded","setMapContainer","setContainer","flyToActive","showAllMarkers","flyToPosition","getCurrentZoom","currentZoom","zoom_1","handleLocationRequest","__awaiter","zoom_2","sent","clampWidth","ref","MyLocation","ev","target","currentTarget"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sections.pois.js","sources":["../src/components/sections/pois/PointOfInterestDetail.tsx","../src/components/sections/pois/filters.ts","../src/components/sections/pois/partials/PoiFilterBar.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 { POICardProps } from 'components/blocks/POICard';\nimport { isValidArray } from 'hooks';\nimport { escapeRegExp } from 'utils/escape';\n\nexport type POIData = Pick<\n POICardProps,\n 'name' | 'facts' | 'infos' | 'shortDescription'\n> & { id: string };\n\nexport interface FilterMatch {\n item: POIData;\n priority: number;\n}\n\nconst poiExactNameFilter =\n <T extends POIData>(filterQuery: string) =>\n (value: T) => {\n const regex = new RegExp(filterQuery);\n return regex.test(value.name);\n };\n\nconst poiSoftNameFilter =\n <T extends POIData>(filterQuery: string) =>\n (value: T) => {\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) =>\n <T extends POIData>(value: T) => {\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) =>\n <T extends POIData>(value: T) => {\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) =>\n <T extends POIData>(value: T) => {\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 = <T extends POIData>(\n array: FilterMatch[],\n item?: T[]\n) => {\n if (!item) return [];\n return item?.filter(\n (m) => !array.find((prioItem) => prioItem.item.id === m.id)\n );\n};\n\nconst filterPois = <T extends POIData>(filterQuery: string, pois: T[]) => {\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\nexport const getFilterMatches = <T extends POIData>(\n filterQuery: string,\n categoryFilters: string[],\n items: T[]\n) => {\n const searchMatches: Map<string, FilterMatch> = new Map();\n\n if (!filterQuery && !categoryFilters.length) {\n for (const item of items) {\n searchMatches.set(item.id, {\n item,\n priority: 0,\n });\n }\n }\n\n for (const item of items) {\n if (item.facts?.some((fact) => categoryFilters.includes(fact))) {\n searchMatches.set(item.id, {\n item,\n priority: 1,\n });\n }\n }\n\n // tracking matches of each query part\n const matches = filterQuery\n ? filterPois(escapeRegExp(filterQuery), items || [])\n : [];\n\n for (const match of matches) {\n if (searchMatches.has(match.item.id)) continue;\n searchMatches.set(match.item.id, match);\n }\n\n return searchMatches;\n};\n","import Cross from 'components/base/icons/Cross';\nimport CrossBubble from 'components/base/icons/CrossBubble';\nimport Filter from 'components/base/icons/Filter';\nimport Magnifier from 'components/base/icons/Magnifier';\nimport FilterBar, { FilterBarProps } from 'components/blocks/FilterBar';\nimport React, { FC } from 'react';\n\nconst PoiFilterBar: FC<\n FilterBarProps & { isInverted?: boolean; className?: string }\n> = ({\n hasBorders,\n value,\n onChange,\n textFilter,\n categoryFilter,\n mobileSubmitLabel,\n closeIcon,\n toggleLabel,\n filterIcon,\n indicator,\n isInverted,\n className,\n}) => {\n return (\n <FilterBar\n isInverted={isInverted}\n hasBorders={hasBorders}\n value={value}\n onChange={onChange}\n textFilter={\n textFilter\n ? {\n placeholder: textFilter.placeholder || 'Search...',\n icon: textFilter.icon\n ? textFilter.icon\n : () => <Magnifier width={18} height={18} />,\n submitIcon: textFilter.submitIcon\n ? textFilter.submitIcon\n : () => null,\n clearIcon: textFilter.clearIcon\n ? textFilter.clearIcon\n : () => <CrossBubble />,\n }\n : undefined\n }\n categoryFilter={\n categoryFilter\n ? {\n label: categoryFilter.label || 'Categories',\n items: categoryFilter.items || [],\n resetLabel:\n categoryFilter.resetLabel || 'reset selection',\n }\n : undefined\n }\n mobileSubmitLabel={mobileSubmitLabel || 'Apply filters'}\n closeIcon={closeIcon ? closeIcon : () => <Cross />}\n toggleLabel={toggleLabel || 'Search & Filter'}\n filterIcon={filterIcon ? filterIcon : () => <Filter />}\n indicator={indicator}\n className={className}\n />\n );\n};\n\nexport default PoiFilterBar;\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 React, { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { useLibTheme, withLibTheme } from 'utils/LibThemeProvider';\nimport { mq, spacings, getColors as color } from 'utils/styles';\nimport { deleteUrlParam, setUrlParam } from 'utils/urlParams';\nimport { FilterState } from 'components/blocks/FilterBar';\nimport { getFilterMatches } from './filters';\nimport * as PoiPartials from 'components/sections/pois/partials';\n\nconst POISection = styled(Section)`\n overflow: visible;\n`;\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 PoiOverviewFilterBar = styled(PoiPartials.PoiFilterBar)`\n // margin to show prevent section overflow outline\n margin-top: 2px;\n border: solid 1px\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n border-radius: ${({ theme }) => theme.globals.sections.edgeRadius};\n\n &:not(:last-child) {\n margin-bottom: ${spacings.nudge * 5}px;\n }\n\n @media ${mq.medium} {\n border: none;\n }\n`;\n\ninterface CardProps extends POICardProps {\n id: string;\n infos?: Array<Info & { allowFiltering?: boolean }>;\n}\n\nexport type PointOfInterestOverviewItem = Omit<CardProps, 'isInverted'>;\n\nexport interface PoiOverviewFilters {\n toggleLabel?: string;\n mobileSubmitLabel?: string;\n categoryFilter?: {\n label?: string;\n resetLabel?: string;\n };\n textFilter?: {\n placeholder?: string;\n icon?: (isInverted?: boolean) => React.ReactNode;\n submitIcon?: (isInverted?: boolean) => React.ReactNode;\n clearIcon?: (isInverted?: boolean) => React.ReactNode;\n };\n closeIcon?: (isInverted?: boolean) => React.ReactNode;\n filterIcon?: (isInverted?: boolean) => React.ReactNode;\n indicator?: (props: {\n isOpen: boolean;\n isDisabled?: boolean;\n }) => React.ReactNode;\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 /** Section background */\n bgMode?: 'full' | 'inverted';\n\n /** Initial POI filter states */\n initialPoiFilters?: FilterState;\n\n /** POI filter settings */\n poiFilters?: PoiOverviewFilters;\n customPoiFilters?: (props: {\n pois: PointOfInterestOverviewItem[];\n filters: FilterState;\n setFilters: React.Dispatch<React.SetStateAction<FilterState>>;\n settings?: PoiOverviewFilters;\n }) => React.ReactNode;\n}> = ({\n anchorId,\n bgMode,\n pois,\n initialPoiFilters,\n poiFilters,\n customPoiFilters,\n}) => {\n const { colors, globals } = useLibTheme();\n const filterName = globals.sections.poiFilterName;\n const factFiltername = globals.sections.poiFactFilterName;\n\n const isInverted = bgMode === 'inverted';\n const hasBg = bgMode === 'full';\n\n const [filters, setFilters] = useState<FilterState>(\n initialPoiFilters || {\n categoryFilter: [],\n textFilter: '',\n }\n );\n\n const categories = useMemo(() => {\n return pois?.reduce<string[]>((acc, poi) => {\n const newCategories = [...acc];\n\n for (const fact of poi.facts || []) {\n if (!newCategories.includes(fact)) {\n newCategories.push(fact);\n }\n }\n\n return newCategories;\n }, []);\n }, [pois]);\n\n const poiMatches = useMemo(() => {\n const matches =\n getFilterMatches<PointOfInterestOverviewItem>(\n filters?.textFilter || '',\n filters?.categoryFilter || [],\n pois || []\n ) || pois;\n\n return Array.from(matches).map((m) => m[1]);\n }, [filters?.textFilter, filters?.categoryFilter, pois]);\n\n useEffect(() => {\n if (filters.textFilter) {\n setUrlParam(filterName, filters.textFilter);\n } else {\n deleteUrlParam(filterName);\n }\n\n if (isValidArray(filters.categoryFilter, false)) {\n setUrlParam(factFiltername, filters.categoryFilter.join(','));\n } else {\n deleteUrlParam(factFiltername);\n }\n }, [\n filterName,\n factFiltername,\n filters.textFilter,\n filters.categoryFilter,\n ]);\n\n return (\n <POISection\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 {poiFilters ? (\n customPoiFilters ? (\n customPoiFilters?.({\n filters,\n setFilters,\n pois: pois || [],\n settings: poiFilters,\n })\n ) : (\n <PoiOverviewFilterBar\n hasBorders\n value={filters}\n onChange={setFilters}\n textFilter={poiFilters?.textFilter || undefined}\n categoryFilter={\n poiFilters?.categoryFilter\n ? {\n ...poiFilters.categoryFilter,\n items: categories?.map(\n (cat) =>\n ({\n value: cat,\n label: cat,\n } || [])\n ),\n }\n : undefined\n }\n mobileSubmitLabel={poiFilters?.mobileSubmitLabel}\n closeIcon={poiFilters?.closeIcon}\n toggleLabel={poiFilters?.toggleLabel}\n filterIcon={poiFilters?.filterIcon}\n indicator={poiFilters?.indicator}\n isInverted={isInverted}\n />\n )\n ) : null}\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 </POISection>\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 {\n mq,\n withRange,\n getColors as color,\n getGlobals as global,\n spacings,\n} 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';\nimport { FilterState } from 'components/blocks/FilterBar';\nimport { getFilterMatches } from './filters';\n\nimport * as PoiPartials from 'components/sections/pois/partials';\nimport { deleteUrlParam, setUrlParam } from 'hooks';\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 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: ${({ theme }) => global(theme).sections.edgeRadius};\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 Overlay = styled.div`\n position: absolute;\n top: ${spacings.nudge * 2}px;\n left: ${spacings.nudge * 2}px;\n width: 100%;\n\n display: flex;\n align-items: center;\n\n & > * + * {\n margin-left: ${spacings.nudge * 2}px;\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\nexport interface PoiMapFilters {\n toggleLabel?: string;\n mobileSubmitLabel?: string;\n categoryFilter?: {\n label?: string;\n resetLabel?: string;\n };\n textFilter?: {\n placeholder?: string;\n icon?: (isInverted?: boolean) => React.ReactNode;\n submitIcon?: (isInverted?: boolean) => React.ReactNode;\n clearIcon?: (isInverted?: boolean) => React.ReactNode;\n };\n closeIcon?: (isInverted?: boolean) => React.ReactNode;\n filterIcon?: (isInverted?: boolean) => React.ReactNode;\n indicator?: (props: {\n isOpen: boolean;\n isDisabled?: boolean;\n }) => 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 /** Initial POI filter states */\n initialPoiFilters?: FilterState;\n\n /** POI filter settings */\n poiFilters?: PoiMapFilters;\n customPoiFilters?: (props: {\n pois: MapPOI[];\n filters: FilterState;\n setFilters: React.Dispatch<React.SetStateAction<FilterState>>;\n settings?: PoiMapFilters;\n }) => 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 initialPoiFilters,\n poiFilters,\n customPoiFilters,\n}) => {\n const isLarge = size === 'large';\n const { colors, globals } = useLibTheme();\n\n const [activePoiId, setActivePoiId] = useState<string>(\n initialPointOfInterest || ''\n );\n const [isDirty, setIsDirty] = useState<boolean>(false);\n\n const [filters, setFilters] = useState<FilterState>(\n initialPoiFilters || {\n categoryFilter: [],\n textFilter: '',\n }\n );\n\n const categories = useMemo(() => {\n return pois?.reduce<string[]>((acc, poi) => {\n const newCategories = [...acc];\n\n for (const fact of poi.facts || []) {\n if (!newCategories.includes(fact)) {\n newCategories.push(fact);\n }\n }\n\n return newCategories;\n }, []);\n }, [pois]);\n\n const activePois = useMemo(() => {\n const matches =\n getFilterMatches<MapPOI>(\n filters?.textFilter || '',\n filters?.categoryFilter || [],\n pois || []\n ) || pois;\n\n return Array.from(matches).map((m) => m[1].item) as MapPOI[];\n }, [filters?.textFilter, filters?.categoryFilter, pois]);\n\n const activePOI = useMemo(() => {\n return activePois?.find((poi) => poi.id === activePoiId);\n }, [activePoiId, activePois]);\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 activePois\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 activePois,\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 const filterName = globals.sections.poiFilterName;\n const factFiltername = globals.sections.poiFactFilterName;\n\n useEffect(() => {\n if (filters.textFilter) {\n setUrlParam(filterName, filters.textFilter);\n } else {\n deleteUrlParam(filterName);\n }\n\n if (isValidArray(filters.categoryFilter, false)) {\n setUrlParam(factFiltername, filters.categoryFilter.join(','));\n } else {\n deleteUrlParam(factFiltername);\n }\n }, [\n filterName,\n factFiltername,\n filters.textFilter,\n filters.categoryFilter,\n ]);\n\n useEffect(() => {\n setActivePoiId('');\n setIsDirty(false);\n }, [filters]);\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 || poiFilters) && (\n <Overlay>\n {showOwnPosition && (\n <RequestGeolocationBtn\n onClick={handleLocationRequest}\n >\n {customLocationRequest || (\n <MyLocation\n iconColor={colors.text.default}\n />\n )}\n </RequestGeolocationBtn>\n )}\n {poiFilters ? (\n customPoiFilters ? (\n customPoiFilters({\n filters,\n setFilters,\n pois: pois || [],\n settings: poiFilters,\n })\n ) : (\n <PoiPartials.PoiFilterBar\n value={filters}\n onChange={setFilters}\n textFilter={\n poiFilters?.textFilter || undefined\n }\n categoryFilter={\n poiFilters?.categoryFilter\n ? {\n ...poiFilters.categoryFilter,\n items: categories?.map(\n (cat) =>\n ({\n value: cat,\n label: cat,\n } || [])\n ),\n }\n : undefined\n }\n mobileSubmitLabel={\n poiFilters?.mobileSubmitLabel\n }\n closeIcon={poiFilters?.closeIcon}\n toggleLabel={poiFilters?.toggleLabel}\n filterIcon={poiFilters?.filterIcon}\n indicator={poiFilters?.indicator}\n />\n )\n ) : null}\n </Overlay>\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","templateObject_1","__makeTemplateObject","spacings","spacer","Facts","POIFacts","templateObject_2","PoiTitle","Heading","templateObject_3","nudge","PoiText","Copy","templateObject_4","PointOfInterestDetail","_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","withLibTheme","poiExactNameFilter","filterQuery","value","regex","RegExp","test","name","poiSoftNameFilter","preparedQuery","toLowerCase","replace","preparedName","poiFactFilter","result","find","fact","preparedFact","poiInfoFilter","preparedText","poiDescriptionFilter","shortDescription","preparedDesc","removeMatchIntersections","array","item","m","prioItem","id","filterPois","pois","prioList","poi","undefined","exactNameMatches","push","apply","map","match","priority","nameMatches","factMatches","infoMatches","descMatches","getFilterMatches","categoryFilters","searchMatches","Map","length","items_1","_i","set","items_2","_b","some","includes","matches","escapeRegExp","matches_1","_c","has","PoiFilterBar","hasBorders","onChange","textFilter","categoryFilter","mobileSubmitLabel","closeIcon","toggleLabel","filterIcon","indicator","className","FilterBar","placeholder","icon","Magnifier","width","height","submitIcon","clearIcon","CrossBubble","label","resetLabel","Cross","Filter","POISection","Content","div","mq","large","PoiOverviewFilterBar","PoiPartials","theme","color","elementBg","globals","sections","edgeRadius","PointOfInterestOverview","initialPoiFilters","poiFilters","customPoiFilters","filterName","poiFilterName","factFiltername","poiFactFilterName","_d","useState","filters","setFilters","categories","reduce","acc","newCategories","__spreadArray","poiMatches","Array","from","useEffect","setUrlParam","deleteUrlParam","join","settings","cat","sort","a","b","i","POICard","__assign","key","genHeightStyles","css","mainIdent","genIdent","pageFlow","hasMain","mainTopIdent","hasTop","mainBottomIdent","hasBottom","fullIdent","navMainHeight","getNavHeight","navMainTopHeight","navMainBottomHeight","navFullHeight","mapToSelector","idents","concat","refHeight","split","PoiMapSection","isLarge","withRange","MapContainer","templateObject_5","RequestGeolocationBtn","button","primary","default","CardStage","templateObject_7","MapCardView","global","MapCardHeader","header","templateObject_9","CloseBtn","Overlay","templateObject_11","MapCard","description","action","customClose","onClose","onClick","iconColor","PointOfInterestMap","initialPointOfInterest","provider","attribution","center","zoom","fitBoundsPadding","_e","allMarkersOnInit","_f","restrictToMarkersArea","showOwnPosition","flyToZoom","currentPosMarker","customCardClose","customLocationRequest","_g","_h","activePoiId","setActivePoiId","_j","isDirty","setIsDirty","_k","activePois","activePOI","_l","useGeolocation","isGeolocationSupported","isSupported","location","resetGeolocation","mapMarkers","defaultMarker","anchor","sizeActive","anchorActive","url","getSVGData","LocationPin","defaultPosMarker","CurrentLocation","markers","position","isInteractive","coords","latitude","longitude","_m","useLeafletMap","activeMarkerId","showZoomControls","zoomControlPosition","onMarkerClick","markerId","prev","isLoaded","setMapContainer","setContainer","flyToActive","showAllMarkers","flyToPosition","getCurrentZoom","currentZoom","zoom_1","handleLocationRequest","__awaiter","zoom_2","sent","clampWidth","ref","MyLocation","ev","target","currentTarget"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBar.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/FilterBar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EACV,EAAE,EAOL,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterBar.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/FilterBar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EACV,EAAE,EAOL,MAAM,OAAO,CAAC;AAsRf,MAAM,WAAW,cAAc;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC;YACV,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACN,CAAC;IACF,UAAU,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;QACjD,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;KACzD,CAAC;IACF,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACvD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;KACxB,KAAK,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAwL1D,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/FilterField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/FilterField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AA0I7C,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACvD,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CA2EA,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiselectDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/fields/MultiselectDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAe3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiselectDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/fields/MultiselectDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAe3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+OxC,UAAU,UAAU;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,wBAAwB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACjD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;KACxB,KAAK,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;;;;;;;;;;;;;;;;;;;AAsNF,wBAAyD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointOfInterestOverview.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/pois/PointOfInterestOverview.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,8BAAmC;AAClD,OAAgB,EAAE,YAAY,EAAE,6BAAkC;AAClE,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAE,WAAW,EAAE,+BAAoC;
|
|
1
|
+
{"version":3,"file":"PointOfInterestOverview.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/pois/PointOfInterestOverview.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,8BAAmC;AAClD,OAAgB,EAAE,YAAY,EAAE,6BAAkC;AAClE,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAE,WAAW,EAAE,+BAAoC;AAuC1D,UAAU,SAAU,SAAQ,YAAY;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,oBAAY,2BAA2B,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAExE,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;QACjD,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;QACvD,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;KACzD,CAAC;IACF,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACvD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;KACxB,KAAK,KAAK,CAAC,SAAS,CAAC;CACzB;AA4JD,eAAO,MAAM,gCAAgC;IAzJzC,wDAAwD;;IAGxD,iCAAiC;;IAGjC,yBAAyB;;IAGzB,gCAAgC;;IAGhC,0BAA0B;;gCAEC;QACvB,IAAI,EAAE,2BAA2B,EAAE,CAAC;QACpC,OAAO,EAAE,WAAW,CAAC;QACrB,UAAU,EAAE,MAAM,QAAQ,CAAC,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,EAAE,kBAAkB,CAAC;KACjC,KAAK,MAAM,SAAS;EAsI8C,CAAC;;IAzJpE,wDAAwD;;IAGxD,iCAAiC;;IAGjC,yBAAyB;;IAGzB,gCAAgC;;IAGhC,0BAA0B;;;;;;;;;;;AA8I9B,wBAAqD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBar-0781490f.js","sources":["../src/components/blocks/POIFacts.tsx","../src/components/blocks/POICard.tsx","../src/components/blocks/Portal.tsx","../node_modules/fast-deep-equal/react.js","../src/components/blocks/FilterBar.tsx"],"sourcesContent":["import Check from 'components/base/icons/Check';\nimport { copyStyle } from 'components/typography/Copy';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getColors as color, spacings } from 'utils/styles';\n\nconst View = styled.div`\n display: inline-flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n margin-top: -${spacings.nudge}px;\n margin-left: -${spacings.nudge * 2}px;\n\n &:not(:first-child) {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst FactsWrapper = styled.div`\n padding-top: ${spacings.nudge}px;\n padding-left: ${spacings.nudge * 2}px;\n`;\n\nconst Fact = styled.span<{ isInverted?: boolean }>`\n display: inline-flex;\n align-items: center;\n ${copyStyle('copy', 'medium')}\n color: ${({ theme, isInverted }) =>\n isInverted ? color(theme).text.copyInverted : color(theme).text.copy};\n\n & > * + * {\n margin-left: ${spacings.nudge * 0.5}px;\n }\n`;\n\nconst POIFacts: React.FC<{\n facts: string[];\n customFact?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n }) => React.ReactNode;\n isInverted?: boolean;\n}> = ({ facts, customFact, isInverted }) => {\n return (\n <View>\n {facts.map((fact, i) => (\n <FactsWrapper key={'tag_' + i}>\n {customFact ? (\n customFact({\n key: `headtag-${i}`,\n name: fact || '',\n isInverted: isInverted,\n })\n ) : (\n <Fact isInverted={isInverted}>\n <Check />\n <span>{fact}</span>\n </Fact>\n )}\n </FactsWrapper>\n ))}\n </View>\n );\n};\n\nexport default POIFacts;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport POIFacts from 'components/blocks/POIFacts';\nimport Copy from 'components/typography/Copy';\nimport { isValidArray } from 'utils/arrays';\nimport {\n getColors as color,\n getGlobals as global,\n mq,\n spacings,\n} from 'utils/styles';\nimport InfoList, { Info } from './InfoList';\n\nconst View = styled.div<{ isInverted?: boolean }>`\n border: 1px solid\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n padding: ${spacings.nudge * 2}px;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst Title = styled(Copy)`\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 Description = styled(Copy)`\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 4; /* number of lines to show */\n line-clamp: 4;\n -webkit-box-orient: vertical;\n`;\n\nconst Body = styled.div<{ isInverted?: boolean }>`\n display: flex;\n flex-direction: row;\n /* align-items: flex-start; */\n\n @media ${mq.semilarge} {\n margin-left: -${spacings.spacer}px;\n margin-right: -${spacings.spacer}px;\n\n & > * + * {\n border-left: 1px solid\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n }\n }\n`;\n\nconst Col = styled.div`\n flex: 1 0 100%;\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n\n @media ${mq.semilarge} {\n flex: 1 0 60%;\n padding: 0 ${spacings.spacer}px;\n }\n\n @media ${mq.large} {\n flex: 1 0 ${(2 / 3) * 100}%;\n }\n`;\n\nconst InfoCol = styled(Col)`\n display: none;\n margin-bottom: ${spacings.nudge * 2}px;\n\n @media ${mq.semilarge} {\n display: block;\n flex: 1 0 40%;\n }\n\n @media ${mq.large} {\n display: block;\n flex: 1 0 ${(1 / 3) * 100}%;\n }\n`;\n\nconst Action = styled.div``;\n\nexport type POILocation = {\n address: string;\n street: string;\n postalCode: string;\n city: string;\n coordinates?: { lat: number; long: number };\n mail: string;\n phone: string;\n web: string;\n};\n\nexport type POIContact = {\n name: string;\n position: string;\n street: string;\n postalCode: string;\n city: string;\n mail: string;\n phone: string;\n};\n\nexport interface POICardProps {\n /** Invert text and background for use on dark sections */\n isInverted?: boolean;\n\n /** POI name */\n name: string;\n\n /** Short POI description text (RichText) */\n shortDescription?: string;\n\n /** Array of additional POI informations */\n infos?: Info[];\n\n /** Array of POI facts */\n facts?: string[];\n\n /** Function to inject custom fact node */\n customFact?: (props: {\n key: React.Key;\n name: string;\n isInverted?: boolean;\n }) => React.ReactNode;\n\n /** Function to inject custom action node */\n action?: (isInverted?: boolean) => React.ReactNode;\n}\n\nconst POICard: React.FC<POICardProps> = ({\n isInverted,\n name,\n shortDescription,\n facts,\n infos,\n customFact,\n action,\n}) => {\n const hasFacts = isValidArray(facts, false);\n const hasInfos = isValidArray(infos, false);\n\n return (\n <View isInverted={isInverted}>\n {name && (\n <Title type=\"copy-b\" size=\"big\" isInverted={isInverted}>\n {name}\n </Title>\n )}\n {(hasFacts || shortDescription || hasInfos || action) && (\n <Body isInverted={isInverted}>\n <Col>\n {isValidArray(facts, false) && (\n <POIFacts\n facts={facts}\n isInverted={isInverted}\n customFact={customFact}\n />\n )}\n {shortDescription && (\n <Description\n isInverted={isInverted}\n innerHTML={shortDescription}\n />\n )}\n {action && <Action>{action(isInverted)}</Action>}\n </Col>\n {isValidArray(infos, false) && (\n <InfoCol>\n <InfoList\n isInverted={isInverted}\n items={[\n {\n items: infos,\n },\n ]}\n />\n </InfoCol>\n )}\n </Body>\n )}\n </View>\n );\n};\n\nexport default POICard;\n","import { FC, ReactNode, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nconst Portal: FC<{\n isVisible?: boolean;\n root?: HTMLElement;\n children?: ReactNode;\n}> = ({ isVisible, root, children }) => {\n const rootRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n rootRef.current = root || document.body;\n }, [root]);\n\n return isVisible && rootRef.current\n ? createPortal(children, rootRef.current)\n : null;\n};\nexport default Portal;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import * as Icons from 'components/base/icons/Icons';\nimport FilterField from 'components/fields/FilterField';\nimport MultiselectDropdown from 'components/fields/MultiselectDropdown';\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport { isValidArray } from 'hooks';\nimport React, {\n FC,\n Fragment,\n ReactNode,\n SyntheticEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport styled from 'styled-components';\nimport {\n mq,\n spacings,\n getColors as color,\n getGlobals as global,\n withRange,\n} from 'utils/styles';\nimport Portal from './Portal';\nimport Pointer from 'components/buttons/Pointer';\nimport equal from 'fast-deep-equal/react';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport { getFormFieldTextSize } from 'utils/formFieldText';\n\nconst FilterView = styled.div`\n display: inline-block;\n`;\n\nconst TextFilter = styled(FilterField)<{ hasBorders?: boolean }>`\n min-height: 45px;\n height: 45px;\n background: ${({ theme }) => color(theme).elementBg.light};\n border: ${({ hasBorders }) => (!hasBorders ? 'none' : undefined)};\n`;\n\nconst Select = styled(MultiselectDropdown)<{ hasBorders?: boolean }>`\n min-width: 220px;\n min-height: 45px;\n\n button,\n ul {\n border: ${({ hasBorders }) => (!hasBorders ? 'none' : undefined)};\n background: ${({ theme }) => color(theme).elementBg.light};\n }\n`;\n\nconst OverlayToggleView = styled.button<{ isInverted?: boolean }>`\n width: 250px;\n height: 45px;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n padding: ${spacings.nudge}px;\n background: ${({ theme }) => color(theme).elementBg.light};\n\n ${copyStyle('copy', 'small')}\n line-height: normal;\n /** Clamping min font size to 16px to prevent browser zooming */\n ${({ theme }) => withRange(getFormFieldTextSize(theme), 'font-size')}\n\n border: none;\n outline: none;\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n cursor: pointer;\n\n transition: all ease-in-out 0.2s;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n\n @media ${mq.medium} {\n display: none;\n }\n\n &:focus {\n text-decoration: underline;\n box-shadow: 0px 8px 16px\n ${({ isInverted }) =>\n isInverted\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\nconst Counter = styled(Copy)`\n position: relative;\n background: ${({ theme }) => color(theme).text.default};\n color: ${({ theme }) => color(theme).text.inverted};\n line-height: normal;\n\n max-height: 20px;\n max-width: 20px;\n\n height: 20px;\n width: 20px;\n\n border-radius: 50px;\n\n margin-left: ${spacings.nudge * 2}px;\n\n & > * {\n position: absolute;\n top: 50%;\n left: 50%;\n\n transform: translate(-50%, -50%);\n }\n`;\n\nconst Indicator = styled.span`\n display: flex;\n align-items: center;\n pointer-events: none;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst Icon = styled.div`\n display: flex;\n align-items: center;\n padding-left: ${spacings.nudge}px;\n color: inherit;\n\n transition: transform 0.2s ease-in-out;\n`;\n\nconst Label = styled.span`\n display: flex;\n align-items: center;\n user-select: none;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst OverlayToggle: FC<{\n isInverted?: boolean;\n label: string;\n onClick?: (ev: SyntheticEvent<HTMLButtonElement>) => void;\n icon?: (isInverted?: boolean) => ReactNode;\n indicator?: () => ReactNode;\n selected?: number;\n className?: string;\n}> = ({ isInverted, label, selected, onClick, icon, indicator, className }) => {\n const iconElement = icon?.(isInverted);\n const { colors } = useLibTheme();\n\n return (\n <OverlayToggleView\n isInverted={isInverted}\n onClick={onClick}\n className={className}\n >\n <Label>\n {iconElement && <Icon>{iconElement}</Icon>}\n <span>{label}</span>\n </Label>\n\n <Indicator>\n <Counter size=\"small\">\n <span>{selected || 0}</span>\n </Counter>\n {indicator?.()}\n {!indicator && (\n <Icons.AngleDown iconColor={colors.elementBg.dark} />\n )}\n </Indicator>\n </OverlayToggleView>\n );\n};\n\nconst DesktopFilters = styled.div`\n display: none;\n\n @media ${mq.medium} {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: flex-end;\n\n & > * {\n width: 220px;\n }\n\n & > * + * {\n margin-right: ${spacings.nudge}px;\n }\n }\n`;\n\nconst MobileBarStage = styled.div`\n position: fixed;\n bottom: 0;\n left: 0;\n top: 0;\n height: 100vh;\n width: 100vw;\n`;\n\nconst MobileBarBackdrop = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n background-color: ${({ theme }) => color(theme).elementBg.light};\n opacity: 0.8;\n z-index: 0;\n`;\n\nconst MobileBarContent = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n max-height: 90vh;\n z-index: 0;\n overflow-y: auto;\n\n padding: ${spacings.nudge * 2}px;\n background-color: ${({ theme }) => color(theme).elementBg.light};\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n`;\n\nconst FilterBarHead = styled(Copy)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n margin-bottom: ${spacings.nudge * 3}px;\n`;\n\nconst FilterBarCloseBtn = styled.button`\n flex: 0 0 auto;\n\n display: inline-block;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n\n cursor: pointer;\n`;\n\nconst MobileBarMain = styled.div`\n display: flex;\n flex-direction: column;\n\n & > * {\n width: 100%;\n }\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst MobileBarSubmitPointer = styled(Pointer.View)`\n width: auto;\n margin-right: auto;\n margin-top: ${spacings.nudge * 3}px;\n`;\n\nexport interface FilterBarProps {\n isInverted?: boolean;\n hasBorders?: boolean;\n value?: FilterState;\n onChange?: (filters: FilterState) => void;\n toggleLabel?: string;\n mobileSubmitLabel?: string;\n categoryFilter?: {\n label?: string;\n resetLabel?: string;\n items?: Array<{\n value: string;\n label: string;\n }>;\n };\n textFilter?: {\n placeholder?: string;\n icon?: (isInverted?: boolean) => React.ReactNode;\n submitIcon?: (isInverted?: boolean) => React.ReactNode;\n clearIcon?: (isInverted?: boolean) => React.ReactNode;\n };\n closeIcon?: (isInverted?: boolean) => React.ReactNode;\n filterIcon?: (isInverted?: boolean) => React.ReactNode;\n indicator?: (props: {\n isOpen: boolean;\n isDisabled?: boolean;\n }) => React.ReactNode;\n}\n\nexport interface FilterState {\n textFilter?: string;\n categoryFilter?: string[];\n}\n\nconst FilterBar: FC<FilterBarProps & { className?: string }> = ({\n isInverted,\n hasBorders,\n value,\n onChange,\n mobileSubmitLabel = 'Apply filters',\n toggleLabel,\n categoryFilter,\n textFilter,\n closeIcon,\n filterIcon,\n indicator,\n className,\n}) => {\n const [filters, setFilters] = useState<FilterState>(\n value || {\n textFilter: '',\n categoryFilter: [],\n }\n );\n const lastFilters = useRef<FilterState>(filters);\n\n const [isMobileBarOpen, setIsMobileBarOpen] = useState(false);\n const [mobileTextFilter, setMobileTextFilter] = useState(\n filters.textFilter || ''\n );\n const [mobileCategoryFilter, setMobileCategoryFilter] = useState(\n filters.categoryFilter || []\n );\n\n const handleMobileBarSubmit = () => {\n setIsMobileBarOpen(false);\n setFilters({\n textFilter: mobileTextFilter,\n categoryFilter: mobileCategoryFilter,\n });\n };\n\n const handleMobileBarClose = () => {\n setIsMobileBarOpen(false);\n setMobileCategoryFilter(filters.categoryFilter || []);\n setMobileTextFilter(filters.textFilter || '');\n };\n\n useEffect(() => {\n setMobileCategoryFilter(filters.categoryFilter || []);\n setMobileTextFilter(filters.textFilter || '');\n }, [filters]);\n\n useEffect(() => {\n if (!equal(filters, value)) {\n onChange?.(filters);\n }\n }, [filters, onChange, value]);\n\n useEffect(() => {\n if (value && !equal(value, lastFilters.current)) {\n setFilters(value);\n lastFilters.current = value;\n }\n }, [value]);\n\n const overallSelected =\n (filters?.categoryFilter?.length || 0) + (filters.textFilter ? 1 : 0);\n\n const closeIconElement = closeIcon?.(isInverted) || (\n <Icons.Cross width={32} height={32} />\n );\n\n return (\n <Fragment>\n <FilterView className={className}>\n <OverlayToggle\n label={toggleLabel || ''}\n selected={overallSelected}\n onClick={() => setIsMobileBarOpen((prev) => !prev)}\n icon={filterIcon}\n indicator={\n indicator\n ? () =>\n indicator({\n isOpen: false,\n isDisabled: false,\n })\n : undefined\n }\n />\n <DesktopFilters>\n {textFilter && (\n <TextFilter\n isInverted={isInverted}\n icon={textFilter.icon}\n submitIcon={textFilter.submitIcon}\n clearIcon={textFilter.clearIcon}\n placeholder={textFilter.placeholder}\n value={filters.textFilter}\n onSubmit={(value) => {\n setFilters((prev) => ({\n ...prev,\n textFilter: value,\n }));\n }}\n hasBorders={hasBorders}\n />\n )}\n {categoryFilter &&\n isValidArray(categoryFilter?.items, false) && (\n <Select\n isInverted={isInverted}\n items={categoryFilter.items}\n placeholder={categoryFilter.label}\n icon={filterIcon}\n indicator={indicator}\n resetLabel={categoryFilter.resetLabel}\n onChange={(value) =>\n setFilters((prev) => ({\n ...prev,\n categoryFilter: value,\n }))\n }\n selectedItems={filters.categoryFilter}\n hasBorders={hasBorders}\n />\n )}\n </DesktopFilters>\n </FilterView>\n <Portal isVisible={isMobileBarOpen}>\n <MobileBarStage>\n <MobileBarBackdrop onClick={handleMobileBarClose} />\n <MobileBarContent>\n <FilterBarHead>\n <Copy type=\"copy-b\" size=\"big\">\n {toggleLabel}\n </Copy>\n {closeIconElement && (\n <FilterBarCloseBtn\n onClick={handleMobileBarClose}\n >\n {closeIconElement}\n </FilterBarCloseBtn>\n )}\n </FilterBarHead>\n <MobileBarMain>\n {textFilter && (\n <FilterField\n icon={textFilter.icon}\n submitIcon={textFilter.submitIcon}\n clearIcon={textFilter.clearIcon}\n placeholder={textFilter.placeholder}\n value={mobileTextFilter}\n onSubmit={setMobileTextFilter}\n />\n )}\n {categoryFilter &&\n isValidArray(categoryFilter?.items, false) && (\n <MultiselectDropdown\n inlined\n items={categoryFilter.items}\n placeholder={categoryFilter.label}\n icon={filterIcon}\n indicator={indicator}\n resetLabel={categoryFilter.resetLabel}\n selectedItems={mobileCategoryFilter}\n onChange={setMobileCategoryFilter}\n />\n )}\n {mobileSubmitLabel && (\n <MobileBarSubmitPointer\n onClick={handleMobileBarSubmit}\n >\n <Pointer.Label>\n {mobileSubmitLabel}\n </Pointer.Label>\n <Pointer.Icon>\n <Icons.AngleRight />\n </Pointer.Icon>\n </MobileBarSubmitPointer>\n )}\n </MobileBarMain>\n </MobileBarContent>\n </MobileBarStage>\n </Portal>\n </Fragment>\n );\n};\n\nexport default FilterBar;\n"],"names":["View","styled","div","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","nudge","FactsWrapper","templateObject_2","Fact","span","templateObject_3","copyStyle","_a","theme","isInverted","color","text","copyInverted","copy","POIFacts","facts","customFact","React","createElement","map","fact","i","key","concat","name","Check","elementBg","light","dark","global","sections","edgeRadius","Title","Copy","Description","Body","templateObject_4","mq","semilarge","spacer","Col","templateObject_5","large","InfoCol","templateObject_6","Action","templateObject_7","Portal","isVisible","root","children","rootRef","useRef","useEffect","current","document","body","createPortal","react","equal","a","b","constructor","length","keys","Array","isArray","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","$$typeof","FilterView","TextFilter","FilterField","hasBorders","undefined","Select","MultiselectDropdown","OverlayToggleView","button","withRange","getFormFieldTextSize","medium","Counter","default","inverted","Indicator","Icon","Label","templateObject_8","OverlayToggle","label","selected","onClick","icon","indicator","className","iconElement","colors","useLibTheme","size","Icons","iconColor","DesktopFilters","templateObject_9","MobileBarStage","templateObject_10","MobileBarBackdrop","templateObject_11","MobileBarContent","templateObject_12","FilterBarHead","templateObject_13","FilterBarCloseBtn","templateObject_14","MobileBarMain","MobileBarSubmitPointer","Pointer","templateObject_16","value","onChange","_c","mobileSubmitLabel","toggleLabel","categoryFilter","textFilter","closeIcon","filterIcon","_d","useState","filters","setFilters","lastFilters","_e","isMobileBarOpen","setIsMobileBarOpen","_f","mobileTextFilter","setMobileTextFilter","_g","mobileCategoryFilter","setMobileCategoryFilter","handleMobileBarClose","overallSelected","_b","closeIconElement","width","height","Fragment","prev","isOpen","isDisabled","submitIcon","clearIcon","placeholder","onSubmit","__assign","isValidArray","items","resetLabel","selectedItems","type","inlined","AngleRight","shortDescription","infos","action","hasFacts","hasInfos","innerHTML","InfoList"],"mappings":"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"}
|