{"version":3,"sources":["webpack:///../node_modules/@uds/badge/dist/es/index.js","webpack:///src/presentation/components/common/Card/CardImage.stylesheet.ts","webpack:///./presentation/components/common/Card/CardImage.tsx","webpack:///src/presentation/components/common/Card/Card.stylesheet.ts","webpack:///./presentation/components/common/Card/Card.tsx","webpack:///./presentation/components/ribbons/ads/AdvertCard.tsx","webpack:///src/presentation/components/ribbons/ads/AdvertCard.stylesheet.ts","webpack:///./presentation/components/ribbons/ads/Ads.tsx"],"names":["Kind","colors","PRIMARY","HIGHLIGHT","WARNING","ALERT","NEUTRAL","MUTED","PureBadge$1","_ref","children","tag","kind","flush","classNames","badge","headingXxs","badgeWrapper","badgeTag","getClassNames","className","component","StyledContent","props","inner","fit","CardImage","ctaUrl","imageAspectRatio","illustration","imageUrl","theme","useTheme","currentLanguage","useCurrentLanguage","isExternalRoute","cardImageUrl","useIsExternalRoute","assetUrl","createImageUrl","ratioPercentage","imageAspectRatioPercentage","alt","createImageAlt","classnames","hasIllustration","innerWithBackground","cx","image","getClassnames","ref","useRef","isVisible","isIntersecting","setIntersecting","useState","useEffect","current","observer","IntersectionObserver","entry","threshold","observe","unobserve","useOnScreen","percentage","loading","src","href","displayName","StyledRoot","cta","hasImage","Boolean","Card","footer","ctas","ribbonId","colorway","last","behavior","type","Behavior","NAVIGATION","goto","getCtaUrl","showBorder","Colorways","PRIMARY_GRADIENT","DARK","includes","hasPanelBorder","content","hasMultipleCtas","panel","length","border","undefined","LIGHT","body","map","i","CallToAction","index","PureAdvert","imagesWithAspectRatios","precursor","title","hBaseline","breakpoints","useBreakpoints","category","hasBadge","hasPrecursor","isNilOrEmpty","activeImage","getActiveImageWithAspectRatios","url","Shortcode","against","Against","code","BadgeKind","depth","PureAds","id","name","ads","layout","Ribbon","Type","ADS","visibleItems","ad","AdvertCard","concat","String","visibilitySet","errorBoundary"],"mappings":"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","file":"pex-static/34/15.285259353f495e4f1400.chunk.js","sourcesContent":["import { classNames, Heading06 } from '@uds/typography';\nimport { cx } from 'linaria';\nimport './badge.stylesheet_1h9r18g.css';\nimport { jsxs, jsx } from 'react/jsx-runtime';\n\nlet Kind;\n(function (Kind) {\n Kind[\"PRIMARY\"] = \"PRIMARY\";\n Kind[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n Kind[\"WARNING\"] = \"WARNING\";\n Kind[\"ALERT\"] = \"ALERT\";\n Kind[\"NEUTRAL\"] = \"NEUTRAL\";\n Kind[\"MUTED\"] = \"MUTED\";\n})(Kind || (Kind = {}));\n\nconst badgeWrapper = \"b8lv12d\";\nconst flushed = \"f1jgljld\";\nconst badge = \"b1kjbh2x\";\nconst badgeTag = \"b1im6t4a\";\nconst colors = {\n PRIMARY: \"pi7709t\",\n HIGHLIGHT: \"h13te26t\",\n WARNING: \"wfo8huu\",\n ALERT: \"a1ts93wr\",\n NEUTRAL: \"nh9nguv\",\n MUTED: \"myd1t1i\"\n};\nconst getClassNames = _ref => {\n let {\n kind,\n flush\n } = _ref;\n return {\n badge: cx(badge, classNames.headingXxs, kind != null && colors[kind]),\n badgeWrapper: cx(badgeWrapper, flush && flushed),\n badgeTag\n };\n};\n\nconst PureBadge = _ref => {\n let {\n children,\n tag,\n kind = Kind.PRIMARY,\n flush = false\n } = _ref;\n const classNames = getClassNames({\n kind,\n flush\n });\n return /*#__PURE__*/jsxs(\"div\", {\n className: classNames.badgeWrapper,\n children: [/*#__PURE__*/jsx(\"div\", {\n className: classNames.badge,\n children: children\n }), tag != null && /*#__PURE__*/jsx(\"span\", {\n className: classNames.badgeTag,\n children: /*#__PURE__*/jsx(Heading06, {\n component: \"span\",\n children: tag\n })\n })]\n });\n};\nvar PureBadge$1 = PureBadge;\n\nexport { PureBadge$1 as Badge, Kind, PureBadge$1 as default };\n","import { css, cx } from 'linaria';\nimport { cssTheme } from '@uds/theme-utils';\nimport { styled } from 'linaria/react';\n\ninterface ContentProps {\n percentage?: string;\n}\nexport const StyledContent = styled.div`\n position: relative;\n height: 0;\n padding-top: ${(props) => props.percentage ?? 0};\n overflow: hidden;\n`;\n\nconst inner = {\n default: css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n\n * {\n //1 extra pixel to prevent possible background bleed\n width: calc(100% + 1px);\n height: calc(100% + 1px);\n }\n `,\n background: css`\n background-color: ${cssTheme.palette.grey09};\n `,\n};\n\n// 16:9 area, full height, crop sides if needed\nconst fit = {\n height: css`\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n height: 100%;\n width: auto;\n `,\n width: css`\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n height: auto;\n `,\n};\n\ninterface Props {\n hasIllustration: boolean;\n}\n\nexport const getClassnames = ({ hasIllustration }: Props) => {\n return {\n inner: inner.default,\n innerWithBackground: cx(inner.default, !hasIllustration && inner.background),\n image: cx(fit.height, hasIllustration && fit.width),\n };\n};\n","import { ReactRouterLink } from '@uds/react-router-adapter';\nimport { useTheme } from '@uds/theme-utils';\nimport createImageUrl from 'presentation/utils/createImageUrl';\nimport createImageAlt from 'presentation/utils/createImageAlt';\nimport { imageAspectRatioPercentage } from 'presentation/utils/imageAspectRatioPercentage';\nimport { useIsExternalRoute } from 'domain/selectors/common';\nimport { useCurrentLanguage } from 'domain/selectors/page';\nimport { ImageAspectRatio } from 'domain/constants/imageAspectRatio';\nimport { RefObject, useEffect, useRef, useState } from 'react';\n\nimport { getClassnames, StyledContent } from './CardImage.stylesheet';\n\nexport interface OuterProps {\n imageUrl: string | undefined;\n illustration: string | undefined;\n imageAspectRatio?: ImageAspectRatio;\n ctaUrl?: string;\n}\n// Hook\nconst useOnScreen = (ref: RefObject) => {\n const [isIntersecting, setIntersecting] = useState(false);\n useEffect(() => {\n const current = ref.current;\n const observer = new IntersectionObserver(\n ([entry]) => {\n // Update our state when observer callback fires\n setIntersecting(entry.isIntersecting);\n },\n {\n threshold: 0.9,\n },\n );\n if (current) {\n observer.observe(current);\n }\n return () => {\n // @ts-ignore ref not found.\n observer.unobserve(current);\n };\n }, [ref]);\n return isIntersecting;\n};\n\nconst CardImage = ({ ctaUrl, imageAspectRatio, illustration, imageUrl }: OuterProps) => {\n const { theme } = useTheme();\n const currentLanguage = useCurrentLanguage();\n const [isExternalRoute, cardImageUrl] = useIsExternalRoute(ctaUrl);\n const assetUrl = createImageUrl(\n {\n illustration,\n imageUrl,\n },\n theme,\n currentLanguage,\n );\n\n const ratioPercentage = imageAspectRatioPercentage(imageAspectRatio);\n const alt = createImageAlt({ imageUrl });\n\n const classnames = getClassnames({\n hasIllustration: illustration != null,\n });\n // when not fully visible, let grey background in, otherwise, remove gray background\n // to prevent bleed\n const ref = useRef(null);\n const isVisible = useOnScreen(ref);\n return (\n \n
\n {cardImageUrl == null ? (\n {alt}\n ) : (\n \n {alt}\n \n )}\n
\n
\n );\n};\n\nCardImage.displayName = 'CardImage';\nexport default CardImage;\n","import { css, cx } from 'linaria';\nimport { cssTheme } from '@uds/theme-utils';\nimport { styled } from 'linaria/react';\nimport { Colorways } from '@uds/colorway';\n\ninterface RootProps {\n last: boolean | undefined;\n}\n\nexport const StyledRoot = styled.div`\n &,\n > div {\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n overflow: hidden;\n margin-bottom: ${(props) => (props.last === true ? 0 : 'inherit')};\n`;\n\nconst content = css`\n background-color: transparent;\n\n &,\n > div {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n`;\n\nconst body = css`\n width: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n`;\n\nconst ctas = css`\n overflow: hidden;\n margin-top: ${cssTheme.gu2};\n`;\n\nconst cta = {\n default: css`\n margin-top: ${cssTheme.gu1};\n `,\n spaceCtas: css`\n ${cssTheme.breakpoints.sm} {\n margin-right: ${cssTheme.gu1};\n display: inline-block;\n }\n `,\n};\n\nconst greyBackground = css`\n background: ${cssTheme.palette.grey12};\n`;\n\nconst whiteBackground = css`\n background: #fff;\n`;\n\nconst transparentBackground = css`\n background: transparent;\n`;\n\ninterface Props {\n hasMultipleCtas: boolean;\n colorway: Colorways;\n}\n\nexport default ({ hasMultipleCtas, colorway }: Props) => {\n return {\n content: cx(content, colorway === Colorways.LIGHT ? greyBackground : whiteBackground),\n body,\n ctas,\n cta: cx(cta.default, hasMultipleCtas === true && cta.spaceCtas),\n panel: transparentBackground,\n };\n};\n","import { ReactNode } from 'react';\nimport PaddingBox from '@uds/padding-box';\nimport { Panel } from '@uds/panel';\nimport Colorway, { Colorways } from '@uds/colorway';\nimport CallToAction from 'components/common/CallToAction';\nimport { CTA } from 'core/ribbons/cta';\nimport { ImageAspectRatio } from 'domain/constants/imageAspectRatio';\nimport { Behavior } from 'domain/constants/callToAction';\n\nimport CardImage from './CardImage';\nimport getClassNames, { StyledRoot } from './Card.stylesheet';\n\ntype ImageType = {\n imageUrl: string | undefined;\n illustration: string | undefined;\n alt?: string;\n imageAspectRatio?: ImageAspectRatio;\n};\n\ninterface CardProps {\n ctas: Array | undefined;\n ribbonId: string;\n colorway: Colorways;\n image: ImageType;\n footer?: ReactNode;\n children: ReactNode;\n last?: boolean;\n}\n\nconst hasImage = (image: ImageType | null) => Boolean(image?.imageUrl || image?.illustration);\n\nconst getCtaUrl = (ctas: Array | undefined) => {\n const cta = ctas?.[0];\n if (cta?.behavior?.type === Behavior.NAVIGATION) {\n return cta?.behavior?.goto;\n }\n\n return null;\n};\n\nconst hasPanelBorder = (colorway: Colorways) => {\n return [Colorways.PRIMARY, Colorways.PRIMARY_GRADIENT, Colorways.DARK, Colorways.HIGHLIGHT].includes(colorway);\n};\n\nconst Card = ({ image, children, footer, ctas = [], ribbonId, colorway, last }: CardProps) => {\n const ctaUrl = getCtaUrl(ctas);\n const showBorder = !hasPanelBorder(colorway);\n\n const classNames = getClassNames({\n hasMultipleCtas: ctas.length > 1,\n colorway,\n });\n\n return (\n \n \n {hasImage(image) && }\n \n \n
{children}
\n
\n {footer}\n {ctas.length > 0 && (\n
\n {ctas.map((cta, i) => (\n
\n \n
\n ))}\n
\n )}\n
\n
\n \n
\n
\n );\n};\n\nCard.displayName = 'Card';\n\n// eslint-disable-next-line no-underscore-dangle\nexport const __test__ = {\n getCtaUrl,\n hasImage,\n};\n\nexport default Card;\n","import React from 'react';\nimport { BodyCopy, Heading04, Heading06 } from '@uds/typography';\nimport Badge, { Kind as BadgeKind } from '@uds/badge';\nimport { useBreakpoints } from '@ux/responsive';\nimport { CTA } from 'core/ribbons/cta';\nimport { ImagesWithAspectRatios } from 'core/ribbons/primitives';\nimport { Colorway, Colorway as Against } from '@uds/theme-utils';\nimport { ImageAspectRatio } from 'domain/constants/imageAspectRatio';\nimport { isNilOrEmpty } from 'presentation/utils/generalUtils';\nimport getActiveImageWithAspectRatios from 'presentation/utils/getActiveImageWithAspectRatios';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport Card from 'components/common/Card';\n\nimport getClassNames from './AdvertCard.stylesheet';\n\nexport interface AdvertCardProps {\n imageUrl?: string;\n illustration?: string;\n imageAspectRatio?: ImageAspectRatio;\n imagesWithAspectRatios?: ImagesWithAspectRatios;\n precursor: ShortcodeProps;\n badge: string;\n title: ShortcodeProps;\n body: ShortcodeProps;\n ctas: Array;\n}\n\ninterface OuterProps extends AdvertCardProps {\n key?: string;\n colorway: Colorway;\n hBaseline?: number;\n ribbonId: string;\n}\n\nconst PureAdvert = ({\n colorway,\n imageUrl,\n illustration,\n imageAspectRatio,\n imagesWithAspectRatios,\n precursor,\n badge,\n title,\n body,\n hBaseline = 1,\n ctas,\n ribbonId,\n}: OuterProps) => {\n const breakpoints = useBreakpoints();\n const classNames = getClassNames();\n const hasBadge = badge && badge.length > 0;\n const hasPrecursor = !isNilOrEmpty(precursor);\n const activeImage = getActiveImageWithAspectRatios(\n breakpoints,\n {\n imageUrl,\n imageAspectRatio,\n },\n imagesWithAspectRatios,\n );\n\n return (\n \n <>\n {hasPrecursor && (\n \n <>\n \n {hasBadge && {badge}}\n \n \n )}\n \n \n \n
\n \n \n \n
\n \n \n );\n};\n\nPureAdvert.displayName = 'Advert';\n\nexport default PureAdvert;\n","import { cssTheme } from '@uds/theme-utils';\nimport { css } from 'linaria';\n\nexport default () => {\n return {\n category: css`\n display: flex;\n align-items: center;\n color: ${cssTheme.palette.grey02};\n margin-bottom: ${cssTheme.gu1};\n `,\n title: css`\n color: ${cssTheme.palette.grey02};\n `,\n body: css`\n margin-top: ${cssTheme.gu2};\n flex-grow: 1;\n color: ${cssTheme.palette.grey04};\n `,\n };\n};\n","import React, { ComponentType } from 'react';\nimport Slider from '@uds/slider';\nimport { RibbonProps, Type } from 'domain/constants/ribbons';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport { Container } from '@uds/grid';\n\nimport AdvertCard, { AdvertCardProps } from './AdvertCard';\nimport Ribbon from '../Ribbon';\n\ninterface OuterProps extends RibbonProps {\n ads: Array;\n}\n\nexport const PureAds = ({ id, colorway, loading, name, hBaseline = 1, ads, layout }: OuterProps) => (\n \n \n \n {ads.map((ad, i) => (\n \n ))}\n \n \n \n);\n\nPureAds.displayName = 'Ads';\n\nexport default visibilitySet(errorBoundary(PureAds)) as ComponentType;\n"],"sourceRoot":""}