@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/cjs/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","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","spacer","Facts","POIFacts","templateObject_2","PoiTitle","Heading","templateObject_3","nudge","PoiText","Copy","templateObject_4","PointOfInterestDetail$1","withLibTheme","_a","anchorId","image","title","intro","text","facts","infos","bgMode","customFact","colors","useLibTheme","isInverted","hasBg","hasInfos","useMemo","isValidArray","filter","info","items","React","createElement","Section","addSeperation","bgColor","sectionBg","dark","medium","light","mapToBgMode","Wrapper","addWhitespace","small","coverSpace","allowEdgeRadius","Grid","Row","gutter","semilarge","Col","span","size","type","innerHTML","InfoList","removeMatchIntersections","array","item","m","find","prioItem","id","filterPois","filterQuery","pois","prioList","poi","undefined","exactNameMatches","value","RegExp","test","name","poiExactNameFilter","push","apply","map","match","priority","nameMatches","preparedQuery","toLowerCase","replace","preparedName","poiSoftNameFilter","factMatches","regex","fact","preparedFact","poiFactFilter","infoMatches","preparedText","poiInfoFilter","descMatches","shortDescription","preparedDesc","poiDescriptionFilter","getFilterMatches","categoryFilters","searchMatches","Map","length","items_1","_i","set","items_2","_b","some","includes","matches_1","escapeRegExp","_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$1","initialPoiFilters","poiFilters","customPoiFilters","globals","filterName","sections","poiFilterName","factFiltername","poiFactFilterName","_d","useState","filters","setFilters","categories","reduce","acc","newCategories","__spreadArray","poiMatches","matches","Array","from","useEffect","setUrlParam","deleteUrlParam","join","settings","cat","sort","a","b","i","POICard","__assign","key","PoiMapSection","isLarge","css","mainIdent","genIdent","pageFlow","hasMain","mainTopIdent","hasTop","mainBottomIdent","hasBottom","fullIdent","navMainHeight","getNavHeight","getFullNavbarHeights","navMainTopHeight","navMainBottomHeight","navFullHeight","mapToSelector","idents","concat","refHeight","split","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$1","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","getSVGDataImg","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","clampWidth","ref","__awaiter","zoom_2","sent","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","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","spacings","spacer","Facts","POIFacts","templateObject_2","PoiTitle","Heading","templateObject_3","nudge","PoiText","Copy","templateObject_4","PointOfInterestDetail$1","withLibTheme","_a","anchorId","image","title","intro","text","facts","infos","bgMode","customFact","colors","useLibTheme","isInverted","hasBg","hasInfos","useMemo","isValidArray","filter","info","items","React","createElement","Section","addSeperation","bgColor","sectionBg","dark","medium","light","mapToBgMode","Wrapper","addWhitespace","small","coverSpace","allowEdgeRadius","Grid","Row","gutter","semilarge","Col","span","size","type","innerHTML","InfoList","removeMatchIntersections","array","item","m","find","prioItem","id","filterPois","filterQuery","pois","prioList","poi","undefined","exactNameMatches","value","RegExp","test","name","poiExactNameFilter","push","apply","map","match","priority","nameMatches","preparedQuery","toLowerCase","replace","preparedName","poiSoftNameFilter","factMatches","regex","fact","preparedFact","poiFactFilter","infoMatches","preparedText","poiInfoFilter","descMatches","shortDescription","preparedDesc","poiDescriptionFilter","getFilterMatches","categoryFilters","searchMatches","Map","length","items_1","_i","set","items_2","_b","some","includes","matches_1","escapeRegExp","_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$1","initialPoiFilters","poiFilters","customPoiFilters","filterName","poiFilterName","factFiltername","poiFactFilterName","_d","useState","filters","setFilters","categories","reduce","acc","newCategories","__spreadArray","poiMatches","matches","Array","from","useEffect","setUrlParam","deleteUrlParam","join","settings","cat","sort","a","b","i","POICard","__assign","key","PoiMapSection","isLarge","css","mainIdent","genIdent","pageFlow","hasMain","mainTopIdent","hasTop","mainBottomIdent","hasBottom","fullIdent","navMainHeight","getNavHeight","getFullNavbarHeights","navMainTopHeight","navMainBottomHeight","navFullHeight","mapToSelector","idents","concat","refHeight","split","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$1","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","getSVGDataImg","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","clampWidth","ref","__awaiter","zoom_2","sent","MyLocation","ev","target","currentTarget"],"mappings":"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"}
|
|
@@ -5,12 +5,12 @@ import { c as copyStyle, C as Copy } from './Copy-c6786949.js';
|
|
|
5
5
|
import { s as spacings, g as getColors, c as getGlobals, m as mq, w as withRange } from './styles-1f1841ef.js';
|
|
6
6
|
import { i as isValidArray } from './arrays-65b644ef.js';
|
|
7
7
|
import { I as InfoList } from './InfoList-b6980a42.js';
|
|
8
|
-
import { F as FilterField } from './FilterField-
|
|
9
|
-
import { M as MultiselectDropdown } from './MultiselectDropdown-
|
|
8
|
+
import { F as FilterField } from './FilterField-60359bfc.js';
|
|
9
|
+
import { M as MultiselectDropdown } from './MultiselectDropdown-91d0151c.js';
|
|
10
10
|
import './useScroll-881c7b04.js';
|
|
11
11
|
import 'react-dom/server';
|
|
12
12
|
import { createPortal } from 'react-dom';
|
|
13
|
-
import { P as Pointer } from './Pointer-
|
|
13
|
+
import { P as Pointer } from './Pointer-3e965d7b.js';
|
|
14
14
|
import { u as useLibTheme } from './LibThemeProvider-fb1d35ac.js';
|
|
15
15
|
import { g as getFormFieldTextSize } from './formFieldText-f4188e55.js';
|
|
16
16
|
|
|
@@ -256,9 +256,9 @@ var OverlayToggle = function (_a) {
|
|
|
256
256
|
isInverted: isInverted,
|
|
257
257
|
onClick: onClick,
|
|
258
258
|
className: className
|
|
259
|
-
}, React__default.createElement(Label, null, iconElement && React__default.createElement(Icon, null, iconElement), React__default.createElement("span", null, label)), React__default.createElement(Indicator, null, React__default.createElement(Counter, {
|
|
259
|
+
}, React__default.createElement(Label, null, iconElement && React__default.createElement(Icon, null, iconElement), React__default.createElement("span", null, label)), React__default.createElement(Indicator, null, selected ? React__default.createElement(Counter, {
|
|
260
260
|
size: "small"
|
|
261
|
-
}, React__default.createElement("span", null, selected || 0)), indicator === null || indicator === void 0 ? void 0 : indicator(), !indicator && React__default.createElement(AngleDown, {
|
|
261
|
+
}, React__default.createElement("span", null, selected || 0)) : null, indicator === null || indicator === void 0 ? void 0 : indicator(), !indicator && React__default.createElement(AngleDown, {
|
|
262
262
|
iconColor: colors.elementBg.dark
|
|
263
263
|
})));
|
|
264
264
|
};
|
|
@@ -266,7 +266,7 @@ var OverlayToggle = function (_a) {
|
|
|
266
266
|
var DesktopFilters = styled.div.withConfig({
|
|
267
267
|
displayName: "FilterBar__DesktopFilters",
|
|
268
268
|
componentId: "sc-xnsmbb-8"
|
|
269
|
-
})(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n display: none;\n\n @media ", " {\n display: flex;\n flex-direction: row
|
|
269
|
+
})(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n display: none;\n\n @media ", " {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n\n & > * {\n width: 220px;\n }\n\n & > * + * {\n margin-left: ", "px;\n }\n }\n"], ["\n display: none;\n\n @media ", " {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n\n & > * {\n width: 220px;\n }\n\n & > * + * {\n margin-left: ", "px;\n }\n }\n"])), mq.medium, spacings.nudge);
|
|
270
270
|
var MobileBarStage = styled.div.withConfig({
|
|
271
271
|
displayName: "FilterBar__MobileBarStage",
|
|
272
272
|
componentId: "sc-xnsmbb-9"
|
|
@@ -394,22 +394,7 @@ var FilterBar = function (_a) {
|
|
|
394
394
|
isDisabled: false
|
|
395
395
|
});
|
|
396
396
|
} : undefined
|
|
397
|
-
}), React__default.createElement(DesktopFilters, null,
|
|
398
|
-
isInverted: isInverted,
|
|
399
|
-
icon: textFilter.icon,
|
|
400
|
-
submitIcon: textFilter.submitIcon,
|
|
401
|
-
clearIcon: textFilter.clearIcon,
|
|
402
|
-
placeholder: textFilter.placeholder,
|
|
403
|
-
value: filters.textFilter,
|
|
404
|
-
onSubmit: function (value) {
|
|
405
|
-
setFilters(function (prev) {
|
|
406
|
-
return __assign(__assign({}, prev), {
|
|
407
|
-
textFilter: value
|
|
408
|
-
});
|
|
409
|
-
});
|
|
410
|
-
},
|
|
411
|
-
hasBorders: hasBorders
|
|
412
|
-
}), categoryFilter && isValidArray(categoryFilter === null || categoryFilter === void 0 ? void 0 : categoryFilter.items, false) && React__default.createElement(Select, {
|
|
397
|
+
}), React__default.createElement(DesktopFilters, null, categoryFilter && isValidArray(categoryFilter === null || categoryFilter === void 0 ? void 0 : categoryFilter.items, false) && React__default.createElement(Select, {
|
|
413
398
|
isInverted: isInverted,
|
|
414
399
|
items: categoryFilter.items,
|
|
415
400
|
placeholder: categoryFilter.label,
|
|
@@ -425,6 +410,21 @@ var FilterBar = function (_a) {
|
|
|
425
410
|
},
|
|
426
411
|
selectedItems: filters.categoryFilter,
|
|
427
412
|
hasBorders: hasBorders
|
|
413
|
+
}), textFilter && React__default.createElement(TextFilter, {
|
|
414
|
+
isInverted: isInverted,
|
|
415
|
+
icon: textFilter.icon,
|
|
416
|
+
submitIcon: textFilter.submitIcon,
|
|
417
|
+
clearIcon: textFilter.clearIcon,
|
|
418
|
+
placeholder: textFilter.placeholder,
|
|
419
|
+
value: filters.textFilter,
|
|
420
|
+
onSubmit: function (value) {
|
|
421
|
+
setFilters(function (prev) {
|
|
422
|
+
return __assign(__assign({}, prev), {
|
|
423
|
+
textFilter: value
|
|
424
|
+
});
|
|
425
|
+
});
|
|
426
|
+
},
|
|
427
|
+
hasBorders: hasBorders
|
|
428
428
|
}))), React__default.createElement(Portal, {
|
|
429
429
|
isVisible: isMobileBarOpen
|
|
430
430
|
}, React__default.createElement(MobileBarStage, null, React__default.createElement(MobileBarBackdrop, {
|
|
@@ -457,4 +457,4 @@ var FilterBar = function (_a) {
|
|
|
457
457
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16;
|
|
458
458
|
|
|
459
459
|
export { FilterBar as F, POIFacts as P, POICard as a };
|
|
460
|
-
//# sourceMappingURL=FilterBar-
|
|
460
|
+
//# sourceMappingURL=FilterBar-821e43bc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterBar-821e43bc.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 {selected ? (\n <Counter size=\"small\">\n <span>{selected || 0}</span>\n </Counter>\n ) : null}\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;\n align-items: center;\n justify-content: flex-end;\n\n & > * {\n width: 220px;\n }\n\n & > * + * {\n margin-left: ${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 {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 {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 </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","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","POICard","shortDescription","infos","action","hasFacts","isValidArray","hasInfos","type","size","innerHTML","InfoList","items","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","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","FilterBar","value","onChange","_c","mobileSubmitLabel","toggleLabel","categoryFilter","textFilter","closeIcon","filterIcon","_d","useState","filters","setFilters","lastFilters","_e","isMobileBarOpen","setIsMobileBarOpen","_f","mobileTextFilter","setMobileTextFilter","_g","mobileCategoryFilter","setMobileCategoryFilter","handleMobileBarSubmit","handleMobileBarClose","overallSelected","_b","closeIconElement","width","height","Fragment","prev","isOpen","isDisabled","placeholder","resetLabel","__assign","selectedItems","submitIcon","clearIcon","onSubmit","inlined"],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ var Icon = styled.div.withConfig({
|
|
|
39
39
|
var ClearBtn = styled.button.withConfig({
|
|
40
40
|
displayName: "FilterField__ClearBtn",
|
|
41
41
|
componentId: "sc-1reb7yx-3"
|
|
42
|
-
})(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n flex: 0 0 auto;\n\n display: flex;\n align-items: center;\n background: none;\n border: none;\n cursor: pointer;\n\n padding-right: ", "px;\n padding-left: ", "px;\n color: inherit;\n\n transition: transform 0.2s ease-in-out;\n\n &:focus {\n text-decoration: underline;\n transform: scale(1.012);\n\n outline: ", ";\n outline-offset: -4px;\n outline-style: dashed;\n }\n\n &:focus:not(:focus-visible) {\n text-decoration: none;\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n height: 20px;\n width: 20px;\n }\n"], ["\n flex: 0 0 auto;\n\n display: flex;\n align-items: center;\n background: none;\n border: none;\n cursor: pointer;\n\n padding-right: ", "px;\n padding-left: ", "px;\n color: inherit;\n\n transition: transform 0.2s ease-in-out;\n\n &:focus {\n text-decoration: underline;\n transform: scale(1.012);\n\n outline: ", ";\n outline-offset: -4px;\n outline-style: dashed;\n }\n\n &:focus:not(:focus-visible) {\n text-decoration: none;\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n height: 20px;\n width: 20px;\n }\n"])), spacings.nudge, spacings.nudge
|
|
42
|
+
})(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n flex: 0 0 auto;\n\n display: flex;\n align-items: center;\n background: none;\n border: none;\n cursor: pointer;\n\n padding-right: ", "px;\n padding-left: ", "px;\n margin-left: ", "px;\n color: inherit;\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.8;\n }\n }\n\n &:focus {\n text-decoration: underline;\n transform: scale(1.012);\n\n outline: ", ";\n outline-offset: -4px;\n outline-style: dashed;\n }\n\n &:focus:not(:focus-visible) {\n text-decoration: none;\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n height: 20px;\n width: 20px;\n }\n"], ["\n flex: 0 0 auto;\n\n display: flex;\n align-items: center;\n background: none;\n border: none;\n cursor: pointer;\n\n padding-right: ", "px;\n padding-left: ", "px;\n margin-left: ", "px;\n color: inherit;\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.8;\n }\n }\n\n &:focus {\n text-decoration: underline;\n transform: scale(1.012);\n\n outline: ", ";\n outline-offset: -4px;\n outline-style: dashed;\n }\n\n &:focus:not(:focus-visible) {\n text-decoration: none;\n outline: none;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n & > * {\n height: 20px;\n width: 20px;\n }\n"])), spacings.nudge, spacings.nudge, spacings.nudge, function (_a) {
|
|
43
43
|
var theme = _a.theme,
|
|
44
44
|
isInverted = _a.isInverted;
|
|
45
45
|
return "2px solid ".concat(isInverted ? getColors(theme).primary.inverted : getColors(theme).primary.default);
|
|
@@ -112,4 +112,4 @@ var FilterField = function (_a) {
|
|
|
112
112
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
113
113
|
|
|
114
114
|
export { FilterField as F };
|
|
115
|
-
//# sourceMappingURL=FilterField-
|
|
115
|
+
//# sourceMappingURL=FilterField-60359bfc.js.map
|