{"version":3,"file":"listing-cards-BiDPgdRA.js","sources":["../../../../src/scripts/utils.ts","../../../../src/scripts/components/react/Cards/AdventureCard.tsx","../../../../src/scripts/components/react/Cards/OfferCard.tsx","../../../../src/scripts/components/react/Cards/StayCard.tsx","../../../../src/scripts/modules/react/listings/listing-cards.tsx"],"sourcesContent":["const UrlFriendly = (str?: string) => {\n if (!str) {\n return '';\n }\n\n return str\n .toLowerCase()\n .replace(/ /g, '-')\n .replace(/[^\\w-]+/g, '');\n};\n\nconst UpdateHashAndOpenLink = (\n e: React.MouseEvent,\n hash: string,\n url: string\n) => {\n e.preventDefault();\n\n if (history.pushState) {\n history.pushState(null, '', `#${hash}`);\n } else {\n window.location.hash = hash;\n }\n\n window.open(url, '_self');\n};\n\nexport { UrlFriendly, UpdateHashAndOpenLink };\n","import React from 'react';\nimport { CardProps } from './types';\nimport { UpdateHashAndOpenLink, UrlFriendly } from '../../../utils';\n\nconst AdventureCard = ({\n card,\n viewDetailsLabel,\n bookingLabel,\n showDescription,\n callToBookLabel\n}: CardProps) => {\n const { img, heading, subheading, description, buttons } = card;\n const headingUrl = UrlFriendly(heading);\n\n return (\n
\n \n \n \n
\n
\n
\n {subheading}\n

{heading}

\n
\n {showDescription && (\n ${description}

` }}\n >
\n )}\n
\n
\n {buttons &&\n buttons.map((button, index) => {\n const isTelephone = 'telephoneNumber' in button && button.telephoneNumber;\n let buttonLabel: string | undefined = viewDetailsLabel;\n\n if (button.btn === 'primary') {\n buttonLabel = isTelephone\n ? `${callToBookLabel} ${button.telephoneNumber}`\n : bookingLabel;\n }\n\n const href = isTelephone\n ? `tel:${button.telephoneNumber}`\n : 'href' in button && button.href\n ? button.href\n : '#';\n\n return (\n UpdateHashAndOpenLink(event, headingUrl, href)}\n >\n {buttonLabel}\n \n );\n })}\n
\n \n
\n );\n};\n\nexport default AdventureCard;\n","import React from 'react';\nimport { CardProps } from './types';\nimport { UpdateHashAndOpenLink, UrlFriendly } from '../../../utils';\n\nconst OfferCard = ({\n card,\n viewDetailsLabel,\n bookingLabel,\n showDescription,\n callToBookLabel\n}: CardProps) => {\n const { img, heading, subheading, description, buttons } = card;\n const headingUrl = UrlFriendly(heading);\n\n return (\n
\n \n \n \n
\n
\n
\n {subheading}\n

{heading}

\n
\n {showDescription && (\n ${description}

` }}\n >
\n )}\n
\n
\n {buttons &&\n buttons.map((button, index) => {\n const isTelephone = 'telephoneNumber' in button && button.telephoneNumber;\n let buttonLabel: string | undefined = viewDetailsLabel;\n\n if (button.btn === 'primary') {\n buttonLabel = isTelephone\n ? `${callToBookLabel} ${button.telephoneNumber}`\n : bookingLabel;\n }\n\n const href = isTelephone\n ? `tel:${button.telephoneNumber}`\n : 'href' in button && button.href\n ? button.href\n : '#';\n\n return (\n UpdateHashAndOpenLink(event, headingUrl, href)}\n >\n {buttonLabel}\n \n );\n })}\n
\n \n
\n );\n};\n\nexport default OfferCard;\n","import React from 'react';\nimport { CardProps } from './types';\nimport { UpdateHashAndOpenLink, UrlFriendly } from '../../../utils';\n\nconst StayCard = ({\n card,\n viewDetailsLabel,\n bookingLabel,\n showDescription,\n callToBookLabel\n}: CardProps) => {\n const { img, heading, subheading, description, buttons, additionalParams } = card;\n const headingUrl = UrlFriendly(heading);\n\n return (\n
\n \n \n \n
\n
\n
\n {subheading}\n

{heading}

\n
\n {additionalParams &&\n additionalParams.map((param, index) => (\n \n {param.icon && (\n \n \n \n )}\n {param.value}\n \n ))}\n
\n
\n {showDescription && (\n ${description}

` }}\n >
\n )}\n
\n
\n {buttons &&\n buttons.map((button, index) => {\n const isTelephone = 'telephoneNumber' in button && button.telephoneNumber;\n let buttonLabel: string | undefined = viewDetailsLabel;\n\n if (button.btn === 'primary') {\n buttonLabel = isTelephone\n ? `${callToBookLabel} ${button.telephoneNumber}`\n : bookingLabel;\n }\n\n const href = isTelephone\n ? `tel:${button.telephoneNumber}`\n : 'href' in button && button.href\n ? button.href\n : '#';\n\n return (\n UpdateHashAndOpenLink(event, headingUrl, href)}\n >\n {buttonLabel}\n \n );\n })}\n
\n \n
\n );\n};\n\nexport default StayCard;\n","import React, { LegacyRef } from 'react';\nimport { CardItem } from '../../../components/react/Cards/types';\nimport { AdventureCard, OfferCard, StayCard } from '../../../components/react/Cards';\n\nconst CardsListing = ({\n items,\n cardVariantLower,\n lastElementRef,\n viewDetailsLabel,\n bookingLabel,\n showDescription,\n callToBookLabel\n}: {\n items: CardItem[];\n cardVariantLower: string;\n lastElementRef: LegacyRef;\n viewDetailsLabel: string;\n bookingLabel: string;\n showDescription?: boolean;\n callToBookLabel?: string;\n}) => {\n // TODO: add animation to cards when they are loaded (react transition group? or css animation?)\n\n return (\n \n {items &&\n items.map((card, index: number) => {\n if (cardVariantLower === 'adventure' || cardVariantLower === 'event') {\n return (\n
  • \n \n
  • \n );\n }\n\n if (cardVariantLower === 'stay') {\n return (\n 2 ? 'cards-grid__stay-item--large' : 'cards-grid__stay-item'}`}\n ref={index === items.length - 1 ? lastElementRef : null}\n >\n \n \n );\n }\n\n if (cardVariantLower === 'offer') {\n return (\n
  • \n \n
  • \n );\n }\n\n return null;\n })}\n \n );\n};\n\nexport default CardsListing;\n"],"names":["UrlFriendly","str","UpdateHashAndOpenLink","e","hash","url","AdventureCard","card","viewDetailsLabel","bookingLabel","showDescription","callToBookLabel","img","heading","subheading","description","buttons","headingUrl","React","button","index","isTelephone","buttonLabel","href","event","OfferCard","StayCard","additionalParams","param","CardsListing","items","cardVariantLower","lastElementRef"],"mappings":"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"}