{"version":3,"sources":["webpack:///./presentation/components/ribbons/tiers/DesktopTier.tsx","webpack:///./presentation/components/ribbons/tiers/DesktopTier.stylesheet.ts","webpack:///./presentation/components/ribbons/tiers/Desktop.tsx","webpack:///./presentation/components/ribbons/tiers/Desktop.stylesheet.ts","webpack:///../node_modules/@ux/text-button/dist/es/text-button.js","webpack:///./presentation/components/Shortcode/PendingShortcode.tsx","webpack:///./presentation/components/Shortcode/Alt.tsx","webpack:///./presentation/components/Shortcode/Bold.tsx","webpack:///./presentation/components/Shortcode/Italic.tsx","webpack:///./presentation/components/Shortcode/Link.tsx","webpack:///./presentation/components/Shortcode/Text.tsx","webpack:///./presentation/components/Shortcode/Tooltip.tsx","webpack:///./presentation/components/Shortcode/Shortcode.tsx","webpack:///./presentation/components/Shortcode/index.ts","webpack:///./domain/constants/alignment.ts","webpack:///./presentation/hocs/withLanguage.ts","webpack:///./crosscutting/ramda.ts","webpack:///./presentation/utils/urlLanguageParse.ts","webpack:///./presentation/utils/createImageAlt.ts","webpack:///../node_modules/@ux/badge/dist/es/badge.js","webpack:///./domain/constants/callToAction.ts","webpack:///./presentation/hocs/callToAction.js","webpack:///./presentation/utils/rgba.js"],"names":["enhance","pureEnhance","hocs","withLanguage","withHover","callToAction","hooks","withProps","ownerProps","hasGlyph","isNotNilOrEmpty","glyph","hasImage","imageUrl","hasBadge","badge","badgeKind","r","Colorway","DARK","HIGHLIGHT","BadgeKind","PRIMARY","theme","colorway","selected","hover","spacing","typography","contrastColor","getContrastColor","useStyles","default","root","display","alignItems","height","percentage","position","textAlign","fontFamily","content","color","getTitleColor","width","borderWidth","outline","cursor","paddingTop","gu2px","paddingBottom","cssSides","Side","X","longhand","style","backgroundColor","transition","textDecoration","text","overflow","textOverflow","whiteSpace","icon","justifyContent","marginRight","image","minWidth","objectFit","objectPosition","marginLeft","borderBottomColor","rgba","styles","label","behavior","handleClick","currentLanguage","externalRoutes","onClick","to","goto","data-selector","size","loading","src","urlLanguageParse","alt","createImageAlt","Boolean","Shortcode","against","code","flush","kind","PureDesktopTiers","id","ribbonId","links","tiers","className","link","key","i","layout","alignment","palette","opacify","grey06","overflowX","overflowY","marginBottom","modifier","Alignment","STARTING","CENTER","highlightContrast","primaryContrast","PRIMARY_GRADIENT","Size","Against","ContentType","_defineProperty","obj","value","Object","defineProperty","enumerable","configurable","writable","disabled","block","caps","MD","contentType","DEFAULT","_ref","_useStyles","active","fill","LIGHT","secondary","NEUTRAL","tertiary","PRIMARY_FADED","HIGHLIGHT_FADED","highlight","assign","A","lineHeight","inner","opacity","borderBottomStyle","textTransform","SM","fontSize","LG","INHERIT","PHONE_NUMBER","borderBottomWidth","TextButton","_a","children","domProps","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","length","__rest","createElement","randomWidth","Math","floor","random","puree","lines","elements","RecursiveShortcode","rest","primary","fontWeight","fontStyle","getUsfConfig","wlSelectors","getAppConfig","mapStateToProps","connect","attributes","analyticskey","TextButtonSize","escapeShortCodes","nl2br","string","split","map","reduce","prev","cur","newline","isFalse","formatText","ReactTooltip","lazy","withBreakpointsHook","isMinLg","eventToggle","padding","CallToAction","fallback","tagName","useDefaultStyles","maxWidth","Glyph","Sup","List","OrderedList","ListItem","TickListItem","ProductPrice","PhoneNumber","element","genericShortcodeHandler","shortcodeName","Component","props","String","getAgainst","Element","nuller","Text","Italic","Bold","Alt","Link","Tooltip","PendingShortcode","BaseComponent","compose","state","getCurrentLanguage","isNotEmpty","isNotNil","mapIndexed","rA","arr","fn","url","language","parsedLanguage","toUpperCase","join","replace","getImageName","str","match","formatName","Kind","isAgainstPrimary","isAgainstPrimaryGradient","isAgainstHighlight","isAgainstNeutral","Badge","_reactCSS","_ref$theme","curvature","SECONDARY","grey04","grey10","SUCCESS","green01","WARNING","yellow01","ERROR","red01","WEAK","borderRadius","STRONG","component","Behavior","formatPricingTier","tier","paymentInterval","term","defaultProps","buttonId","index","getExternalRoutes","ribbon","getRibbon","ribbonType","ribbonName","product","ribbonList","createRibbonName","addingStatus","getAddingStatus","dispatch","bindActionCreators","addToBasket","applyVoucher","setVisibility","openReduxModal","signals","open","productClicked","promotionClicked","productAddToBasket","stateProps","dispatchProps","ownProps","actions","window","useWindow","withHandlers","handleAnalytics","ctaType","type","list","productId","promotion","handleAddToBasketClick","postAction","pricingTier","productData","skuId","defaultSkuId","name","price","selectors","getPrice","includeTax","category","categoryName","handleNavigateClick","handleApplyVoucherClick","voucherCode","handleConfigureClick","query","URLSearchParams","append","q","toString","location","href","handleSetVisibilityClick","visibilitySet","handlePlayVideoClick","videoId","provider","route","params","ADD_TO_BASKET","APPLY_VOUCHER","CONFIGURE","SET_VISIBILITY","PLAY_VIDEO","NAVIGATION","analytics","linkAttribution","c","a","alpha"],"mappings":"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","file":"pex-static/12/65.2d6fdb4413f0dcb0acb7.chunk.js","sourcesContent":["import React, { ComponentType } from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport Glyph from '@ux/glyphs';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport Badge, { Kind as BadgeKind } from '@ux/badge';\nimport callToAction from 'presentation/hocs/callToAction';\nimport { DynamicLink } from '@ux/dynamic-link';\nimport { Colorway } from 'domain/constants/colorway';\nimport { isNotNilOrEmpty } from 'crosscutting/ramda';\nimport stylesheet, { Styles } from './DesktopTier.stylesheet';\nimport * as r from 'ramda';\nimport createImageAlt from 'presentation/utils/createImageAlt';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport { withHover } from '@team-griffin/stylr';\nimport { Theme } from '@ux/theme-utils';\nimport pureEnhance from '@ux/pure-enhance';\n\ninterface OuterProps {\n ribbonId?: string,\n theme: Theme,\n colorway: Colorway,\n imageUrl?: string,\n badge?: ShortcodeProps,\n glyph?: string,\n selected?: boolean,\n behavior?: {\n goto: string,\n },\n label?: ShortcodeProps,\n externalRoutes: string[],\n}\n\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n currentLanguage: string,\n hasGlyph: boolean,\n hasImage: boolean,\n hasBadge: boolean,\n badgeKind: BadgeKind,\n handleClick?: (evt?: any) => void,\n DynamicLink: ComponentType | string,\n hover: boolean,\n}\n\nexport const PureDesktopTier = ({\n theme,\n colorway,\n styles,\n glyph,\n imageUrl,\n label,\n behavior,\n badge,\n hasBadge,\n hasGlyph,\n hasImage,\n badgeKind,\n handleClick,\n currentLanguage,\n externalRoutes,\n}: InnerProps) => (\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n);\n\nexport const enhance = pureEnhance(\n 'DesktopTier', {\n hocs: [\n withLanguage,\n withHover,\n callToAction,\n ],\n hooks: [\n withProps((ownerProps: OuterProps) => ({\n hasGlyph: isNotNilOrEmpty(ownerProps.glyph),\n hasImage: isNotNilOrEmpty(ownerProps.imageUrl),\n hasBadge: isNotNilOrEmpty(ownerProps.badge),\n badgeKind: r.ifElse(\n r.pipe(\n r.prop('colorway'),\n r.contains(r.__, [\n Colorway.DARK,\n Colorway.HIGHLIGHT,\n ]),\n ),\n r.always(BadgeKind.PRIMARY),\n r.always(BadgeKind.HIGHLIGHT),\n )(ownerProps),\n })),\n withProps(stylesheet),\n ],\n },\n);\n\nexport default enhance(PureDesktopTier);\n","import { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { gu2px } from '@ux/theme-utils';\nimport { content } from '@ux/type-size';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport longhand from '@team-griffin/css-longhand';\nimport { getContrastColor, getTitleColor } from 'presentation/utils/colorway';\nimport rgba from 'presentation/utils/rgba';\nimport { InnerProps } from './DesktopTier';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n badge:CSSProperties,\n image: CSSProperties,\n imageCropper: CSSProperties,\n icon: CSSProperties,\n text: CSSProperties,\n}\nexport default ({\n theme,\n colorway,\n selected,\n hover,\n}: InnerProps) => {\n const {\n spacing,\n typography,\n } = theme;\n\n const contrastColor = getContrastColor(theme, colorway);\n\n return useStyles({\n default: {\n root: {\n display: 'flex',\n alignItems: 'center',\n height: percentage(100),\n position: 'relative',\n textAlign: 'center',\n fontFamily: typography.display,\n ...content(typography),\n color: getTitleColor(theme, colorway),\n width: percentage(100),\n borderWidth: 0,\n outline: 0,\n cursor: 'pointer',\n paddingTop: gu2px(2, spacing),\n paddingBottom: gu2px(2, spacing),\n ...cssSides('padding', Side.X, 0),\n ...longhand('borderBottom', {\n width: 4,\n style: 'solid',\n color: 'transparent',\n }),\n backgroundColor: 'transparent',\n transition: 'border-bottom-color 0.3s ease-in-out',\n textDecoration: 'none',\n },\n text: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n icon: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: gu2px(3, spacing),\n height: gu2px(3, spacing),\n color: contrastColor,\n marginRight: gu2px(1, spacing),\n },\n image: {\n width: gu2px(3, spacing),\n height: gu2px(3, spacing),\n minWidth: gu2px(3, spacing),\n objectFit: 'cover',\n objectPosition: 'center',\n },\n badge: {\n marginLeft: gu2px(1, spacing),\n },\n },\n\n selected: {\n root: {\n borderBottomColor: contrastColor,\n },\n },\n\n hover: {\n root: {\n borderBottomColor: rgba(getContrastColor(theme, colorway), 0.9),\n },\n },\n }, [\n { hover },\n { colorway },\n { selected },\n ]);\n};\n","import React from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport Tier from './DesktopTier';\nimport { Container } from '@ux/grid';\nimport stylesheet, { Styles } from './Desktop.stylesheet';\nimport * as r from 'ramda';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Theme } from '@ux/theme-utils';\nimport { Link } from './Tiers';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\nimport Helmet from 'react-helmet';\n\n\ninterface OuterProps {\n theme: Theme,\n id: string,\n links: Link[],\n colorway: Colorway,\n selected: number,\n layout: Layout,\n externalRoutes: string[],\n}\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n}\n\ndeclare const i: number;\ndeclare const link: Link;\n\nexport const PureDesktopTiers = ({\n id: ribbonId,\n theme,\n styles,\n links,\n colorway,\n selected,\n externalRoutes,\n}: InnerProps) => (\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n \n);\n\nexport const enhance = pureEnhance(\n 'DesktopTiers', [\n withProps(stylesheet),\n ],\n);\n\nexport default enhance(PureDesktopTiers);\n","import { useStyles } from '@team-griffin/stylr';\nimport { modifier, opacify } from '@ux/style-utils';\nimport longhand from '@team-griffin/css-longhand';\nimport { Colorway } from 'domain/constants/colorway';\nimport { gu2px } from '@ux/theme-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { Alignment } from 'domain/constants/alignment';\nimport { InnerProps } from './Desktop';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n tiers: CSSProperties,\n link: CSSProperties,\n}\n\nexport default ({\n theme,\n colorway,\n layout: {\n alignment,\n },\n}: InnerProps) => {\n const {\n spacing,\n palette,\n } = theme;\n\n return useStyles({\n default: {\n root: {\n },\n tiers: {\n display: 'flex',\n ...longhand('borderBottom', {\n width: 2,\n style: 'solid',\n color: opacify(palette.grey06, 0.2),\n }),\n overflowX: 'scroll',\n overflowY: 'hidden',\n },\n link: {\n ...cssSides('padding', Side.X, gu2px(3, spacing)),\n marginRight: gu2px(1, spacing),\n marginBottom: -2, // offset the 4px border so its over the top\n },\n },\n\n [modifier('alignment', Alignment.STARTING)]: {\n tiers: {\n justifyContent: 'flex-start',\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n tiers: {\n justifyContent: 'center',\n },\n },\n\n [modifier('colorway', Colorway.HIGHLIGHT)]: {\n tiers: {\n borderBottomColor: opacify(palette.highlightContrast, 0.2),\n },\n },\n\n [modifier('colorway', Colorway.PRIMARY)]: {\n tiers: {\n borderBottomColor: opacify(palette.primaryContrast, 0.2),\n },\n },\n\n [modifier('colorway', Colorway.PRIMARY_GRADIENT)]: {\n tiers: {\n borderBottomColor: opacify(palette.primaryContrast, 0.2),\n },\n },\n }, [\n { alignment },\n { colorway },\n ]);\n};\n","import React from 'react';\nimport { defaultProps, withProps, mapProps } from '@team-griffin/rehook';\nimport pureEnhance from '@ux/pure-enhance';\nimport { DynamicLink } from '@ux/dynamic-link';\nimport { useStyles, withInteraction } from '@team-griffin/stylr';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport longhand from '@team-griffin/css-longhand';\nimport px2em from '@ux/px2em';\nimport { content } from '@ux/type-size';\nimport { percentage, modifier } from '@ux/style-utils';\nimport { cond, equals, always, T, omit } from 'ramda';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\n\nvar Size;\n\n(function (Size) {\n Size[\"SM\"] = \"SM\";\n Size[\"MD\"] = \"MD\";\n Size[\"LG\"] = \"LG\";\n Size[\"INHERIT\"] = \"INHERIT\";\n})(Size || (Size = {}));\n\nvar Against;\n\n(function (Against) {\n Against[\"LIGHT\"] = \"LIGHT\";\n Against[\"NEUTRAL\"] = \"NEUTRAL\";\n Against[\"DARK\"] = \"DARK\";\n Against[\"PRIMARY\"] = \"PRIMARY\";\n Against[\"PRIMARY_FADED\"] = \"PRIMARY_FADED\";\n Against[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n Against[\"HIGHLIGHT_FADED\"] = \"HIGHLIGHT_FADED\";\n})(Against || (Against = {}));\n\nvar ContentType;\n\n(function (ContentType) {\n ContentType[\"DEFAULT\"] = \"DEFAULT\";\n ContentType[\"PHONE_NUMBER\"] = \"PHONE_NUMBER\";\n})(ContentType || (ContentType = {}));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar stylesheet = function stylesheet(_ref) {\n var _useStyles;\n\n var theme = _ref.theme,\n against = _ref.against,\n block = _ref.block,\n disabled = _ref.disabled,\n size = _ref.size,\n caps = _ref.caps,\n contentType = _ref.contentType,\n hover = _ref.hover,\n active = _ref.active;\n var palette = theme.palette,\n typography = theme.typography;\n var fill = cond([[equals(Against.LIGHT), always(palette.secondary)], [equals(Against.NEUTRAL), always(palette.secondary)], [equals(Against.DARK), always(palette.tertiary)], [equals(Against.PRIMARY), always(palette.primaryContrast)], [equals(Against.PRIMARY_FADED), always(palette.secondary)], [equals(Against.HIGHLIGHT), always(palette.highlightContrast)], [equals(Against.HIGHLIGHT_FADED), always(palette.highlight)], [T, always(palette.secondary)]])(against);\n return useStyles((_useStyles = {\n default: {\n root: Object.assign({}, content(theme.typography), longhand('border', {\n color: 'transparent',\n style: 'solid',\n width: 0\n }), cssSides('margin', Side.A, 0), cssSides('padding', Side.A, 0), {\n fontFamily: typography.content,\n lineHeight: 1.1,\n paddingBottom: 1,\n color: fill,\n textAlign: 'left',\n backgroundColor: 'transparent',\n outline: 0,\n cursor: equals(disabled, true) ? 'not-allowed' : 'pointer',\n textDecoration: 'none',\n transition: 'opacity 0.2s ease-in-out, border 0.1s ease-in-out'\n }),\n\n /*\r\n we apply the border on the inner text span as we need to ensure\r\n that if the text wraps over 2 lines, both lines have a dotted border.\r\n If there is any padding on this inner element it breaks the underline\r\n when in a css column.\r\n */\n inner: Object.assign({}, longhand('borderBottom', {\n style: 'dotted',\n color: fill,\n width: 1\n }))\n },\n hover: {\n root: {\n opacity: 0.75\n },\n inner: {\n borderBottomStyle: 'solid',\n opacity: 0.75\n }\n },\n active: {\n inner: {\n borderBottomStyle: 'solid',\n opacity: 0.75\n }\n },\n caps: {\n root: {\n textTransform: 'uppercase'\n }\n },\n block: {\n root: {\n display: 'block',\n width: percentage(100)\n }\n }\n }, _defineProperty(_useStyles, modifier('size', Size.SM), {\n root: {\n fontSize: px2em(12)\n }\n }), _defineProperty(_useStyles, modifier('size', Size.MD), {\n root: {\n fontSize: px2em(14)\n }\n }), _defineProperty(_useStyles, modifier('size', Size.LG), {\n root: {\n fontSize: px2em(16)\n }\n }), _defineProperty(_useStyles, modifier('size', Size.INHERIT), {\n root: {\n fontSize: 'inherit',\n lineHeight: 'inherit'\n }\n }), _defineProperty(_useStyles, modifier('contentType', ContentType.PHONE_NUMBER), {\n inner: {\n borderBottomWidth: 0\n }\n }), _defineProperty(_useStyles, \"disabled\", {\n root: {\n opacity: 0.3\n }\n }), _useStyles), [{\n hover: hover\n }, {\n active: active\n }, {\n caps: caps\n }, {\n block: block\n }, {\n disabled: disabled\n }, {\n size: size\n }, {\n contentType: contentType\n }, {\n against: against\n }]);\n};\n\nvar PureTextButton = function PureTextButton(_a) {\n var styles = _a.styles,\n children = _a.children,\n domProps = __rest(_a, [\"styles\", \"children\"]);\n\n return React.createElement(DynamicLink, Object.assign({\n style: styles.root\n }, domProps), React.createElement(\"span\", {\n style: styles.inner\n }, children));\n};\nvar enhance = pureEnhance('TextButton', {\n hooks: [defaultProps({\n disabled: false,\n block: false,\n caps: false,\n size: Size.MD,\n contentType: ContentType.DEFAULT\n }), withProps(stylesheet), mapProps(omit(['theme', 'against', 'hover', 'active', 'focus', 'hocus', 'caps', 'block', 'size', 'contentType']))]\n});\nvar TextButton = withInteraction(enhance(PureTextButton)); // eslint-disable-next-line no-underscore-dangle\n\nexport default TextButton;\nexport { Against, ContentType, Size };\n","import React from 'react';\nimport { puree, GetInnerProps } from '@ux/pure-enhance';\nimport Shimmer from '@ux/shimmer';\nimport { ShortcodeProps } from './';\nimport { Colorway } from '@ux/theme-utils';\n\nexport interface OuterProps {\n against?: Colorway,\n code: ShortcodeProps,\n}\n\n// random % width for shimmer betwen 50% and 95%\nconst randomWidth = () => Math.floor((Math.random() * (95 - 50)) + 50);\n\nconst enhance = puree('PendingShortcode')();\n\ntype InnerProps = GetInnerProps;\n\nconst PurePendingShortcode = ({\n code,\n against,\n}: InnerProps) => (\n \n \n \n);\n\nexport default enhance(PurePendingShortcode);\n","import React from 'react';\nimport * as r from 'ramda';\nimport pureEnhance from '@ux/pure-enhance';\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nexport default pureEnhance(\n 'Alt',\n)(({\n RecursiveShortcode,\n elements,\n theme,\n against,\n ...rest\n}) => (\n \n \n \n));\n","import React from 'react';\nimport { RecursiveShortcodeProps } from './Shortcode';\nimport pureEnhance from '@ux/pure-enhance';\n\nexport default pureEnhance(\n 'Bold',\n)(({ elements, RecursiveShortcode, ...rest }) => (\n \n \n \n));\n","import React from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nexport default pureEnhance(\n 'Bold',\n)(({ elements, RecursiveShortcode, ...rest }) => (\n \n \n \n));","import React from 'react';\nimport { withProps } from '@team-griffin/rehook';\nimport TextButton, {\n Size as TextButtonSize,\n} from '@ux/text-button';\nimport { connect } from '@ux/fabric';\nimport { selectors as wlSelectors } from '@ux/whitelabel';\nimport pureEnhance from '@ux/pure-enhance';\nimport * as r from 'ramda';\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nconst getUsfConfig = wlSelectors.getAppConfig('usf');\n\nconst mapStateToProps = r.pipe(\n getUsfConfig,\n r.pathOr([], [ 'externalRoutes' ]),\n r.objOf('externalRoutes'),\n);\n\nexport default pureEnhance(\n 'Link', [\n //@ts-ignore (apparently incompatible states)\n withProps(connect(mapStateToProps)),\n ])(({\n RecursiveShortcode,\n elements,\n contentType,\n attributes,\n theme,\n against,\n externalRoutes,\n ...rest\n}) => (\n \n \n \n));\n","import React, { Fragment } from 'react';\nimport { isFalse } from '@team-griffin/capra';\nimport * as r from 'ramda';\nimport pureEnhance from '@ux/pure-enhance';\n\nconst escapeShortCodes = r.pipe(\n r.replace('[!', '['),\n r.replace('!/]', '/]'),\n r.replace('[/!', '[/'),\n);\n\nconst nl2br = (string: string) => string.split('\\n')\n .map(r.identity)\n //@ts-ignore typescript cant figure typing out\n // eslint-disable-next-line react/no-array-index-key\n .reduce((prev, cur, i) => [ prev, (
), cur ]);\n\nconst formatText = (text: string, newline: boolean|Element) => r.pipe(\n escapeShortCodes,\n // unless newline is false, run through nl2br\n r.unless(\n r.always(isFalse(newline)),\n nl2br,\n ),\n)(text);\n\ninterface Props {\n text: string,\n nl2br: Element,\n}\nexport default pureEnhance(\n 'Text',\n)(({ text, nl2br }) => (\n \n {formatText(text, nl2br)}\n \n));\n","import React, { lazy, Suspense } from 'react';\nimport { withProps } from '@team-griffin/rehook';\nimport TextButton, { Size as TextButtonSize } from '@ux/text-button';\nimport { withBreakpointsHook } from '@ux/responsive';\nimport { gu2px } from '@ux/theme-utils';\nimport pureEnhance from '@ux/pure-enhance';\nimport { RecursiveShortcodeProps } from './Shortcode';\n\n/*\n React-Tooltip is a heavy dependency therefore we asynchronously load it in\n and gracefully decorate the functionality in once it has loaded\n*/\nconst ReactTooltip = lazy(() => import(\n /* webpackChunkName: \"react-tooltip-lite\" */\n 'react-tooltip-lite'\n));\n\nexport default pureEnhance(\n 'TooltipShortcode', [\n withBreakpointsHook,\n withProps(({\n theme,\n isMinLg,\n }: RecursiveShortcodeProps) => {\n return {\n eventToggle: isMinLg ? void 0 : 'onClick',\n padding: `${gu2px(2, theme.spacing)}px`, // requires String; gross\n };\n }),\n ],\n)(({\n RecursiveShortcode,\n theme,\n against,\n padding,\n eventToggle,\n attributes,\n elements,\n}) => {\n const CallToAction = (\n \n {attributes.label}\n \n );\n\n return (\n \n {/*@ts-ignore children doesnt exist */}\n \n \n \n )}\n >\n {CallToAction}\n \n \n );\n});\n","import React, { Fragment, Suspense, lazy, ReactNode } from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport PendingShortcode from './PendingShortcode';\nimport { getAgainst } from 'presentation/utils/colorway';\nimport { nuller } from '@team-griffin/capra';\nimport { Theme } from '@ux/theme-utils';\nimport { Layout } from 'domain/constants/layout';\nimport { Styles } from './stylesheets';\nimport { BreakpointProps } from '@ux/responsive';\nimport { ShortcodeProps } from '.';\nimport * as r from 'ramda';\nimport { Against } from '@ux/button';\n\n/*\n These shortcodes should not be lazy loaded in as they are already in the\n main bundle and it causes a unnecessary shimmer which makes the page feel\n less responsive\n*/\nimport Alt from './Alt';\nimport Bold from './Bold';\nimport Italic from './Italic';\nimport Link from './Link';\nimport Text from './Text';\nimport Tooltip from './Tooltip';\n\nconst Glyph = lazy(() => import(\n /* webpackChunkName: \"shortcode-glyph\" */\n './Glyph'\n));\n\nconst Sup = lazy(() => import(\n /* webpackChunkName: \"shortcode-sup\" */\n './Sup'\n));\n\nconst List = lazy(() => import(\n /* webpackChunkName: \"shortcode-list\" */\n './List'\n));\n\nconst OrderedList = lazy(() => import(\n /* webpackChunkName: \"shortcode-ordered-list\" */\n './OrderedList'\n));\n\nconst ListItem = lazy(() => import(\n /* webpackChunkName: \"shortcode-list-item\" */\n './ListItem'\n));\n\nconst TickListItem = lazy(() => import(\n /* webpackChunkName: \"shortcode-tick-list-item\" */\n './TickListItem'\n));\n\nconst ProductPrice = lazy(() => import(\n /* webpackChunkName: \"shortcode-product-price\" */\n './ProductPrice'\n));\n\nconst PhoneNumber = lazy(() => import(\n /* webpackChunkName: \"shortcode-phone-number\" */\n './PhoneNumber'\n));\n\ndeclare const i: number;\ndeclare const element: ShortcodeProps;\n\nexport interface RecursiveShortcodeProps extends BreakpointProps{\n elements: ShortcodeProps[],\n layout?: Layout,\n RecursiveShortcode: React.LazyExoticComponent,\n theme?: Theme,\n against?: Against,\n styles?: Styles,\n attributes?: {\n use?: string,\n number?: number,\n analyticskey?: string,\n goto?: string,\n label?: ReactNode,\n prices?: string,\n inctax?: string,\n }\n nl2br?: boolean,\n rest: {\n [key: string]: any,\n }\n [key: string]: any,\n}\nconst RecursiveShortcode = ({ elements, ...rest }: RecursiveShortcodeProps) => (\n \n \n \n \n \n);\n\nexport interface ShortcodeOuterProps {\n theme?: Theme,\n against?: Against,\n RecursiveShortcode: React.LazyExoticComponent,\n code: RecursiveShortcodeProps,\n}\n\nfunction genericShortcodeHandler(\n shortcodeName: string,\n Component: React.LazyExoticComponent | React.ComponentType,\n) {\n return [\n r.both(\n r.propEq('type', 'element'),\n r.propEq('name', shortcodeName),\n ),\n (props: ShortcodeOuterProps) => (\n \n ),\n ];\n}\n\nconst Shortcode = ({ code, ...rest }: ShortcodeOuterProps) => {\n const props = r.pipe(\n r.ifElse(\n () => r.is(String, code),\n r.assoc('code', code),\n r.mergeDeepLeft(code),\n ),\n r.over(\n r.lensProp('against'),\n (colorway) => getAgainst(colorway),\n ),\n r.assoc('RecursiveShortcode', RecursiveShortcode),\n r.over(\n r.lensProp('attributes'),\n r.defaultTo({}),\n ),\n )(rest);\n\n // @ts-ignore\n const Element = r.cond([\n [\n r.isNil,\n nuller,\n ],\n [\n r.propIs(String, 'code'),\n () => (\n //@ts-ignore\n \n ),\n ],\n [\n r.propEq('type', 'text'),\n () => (\n \n ),\n ],\n genericShortcodeHandler('i', Italic),\n genericShortcodeHandler('b', Bold),\n genericShortcodeHandler('alt', Alt),\n genericShortcodeHandler('sup', Sup),\n genericShortcodeHandler('glyph', Glyph),\n genericShortcodeHandler('tel', PhoneNumber),\n genericShortcodeHandler('link', Link),\n genericShortcodeHandler('productprice', ProductPrice),\n genericShortcodeHandler('tooltip', Tooltip),\n [\n r.both(\n r.propEq('type', 'element'),\n r.propEq('name', 'list'),\n ),\n () => r.ifElse(\n r.propEq('style', 'number'),\n () => (\n \n ),\n () => (\n \n ),\n )(props.attributes),\n ],\n [\n r.both(\n r.propEq('type', 'element'),\n r.propEq('name', 'li'),\n ),\n () => r.ifElse(\n r.propEq('style', 'glyph'),\n () => (\n \n ),\n () => (\n \n ),\n )(props.attributes),\n ],\n //@ts-ignore\n genericShortcodeHandler('root', RecursiveShortcode),\n [\n r.T,\n nuller,\n ],\n ]);\n\n return (\n \n );\n};\n\nconst ShortcodeWrapper = (props: ShortcodeOuterProps) => (\n \n )}\n >\n \n \n);\n\nconst enhance = pureEnhance('Shortcode');\n\nexport default enhance(ShortcodeWrapper);\n","import Shortcode, { RecursiveShortcodeProps } from './Shortcode';\n\n//TODO: help.. please.\nexport type ShortcodeProps = RecursiveShortcodeProps;\n\n\nexport default Shortcode;\n","export enum Alignment {\n STARTING = 'STARTING',\n CENTER = 'CENTER',\n}\n\nexport default null;\n","import {\n compose,\n} from 'recompose';\nimport { connect } from 'react-redux';\nimport { getCurrentLanguage } from 'domain/selectors/ribbons';\n\nexport default (BaseComponent: any) => {\n return compose(\n connect((state) => {\n return {\n currentLanguage: getCurrentLanguage(state),\n };\n }),\n )(BaseComponent);\n};\n","import * as rA from 'ramda-adjunct';\nimport * as r from 'ramda';\nimport {\n curry2,\n isNotNilOrEmpty,\n} from '@team-griffin/capra';\n\nconst {\n isNotEmpty,\n isNotNil,\n mapIndexed,\n} = rA;\n\nexport {\n curry2,\n isNotNilOrEmpty,\n isNotEmpty,\n isNotNil,\n mapIndexed,\n};\n\nexport const headOr = r.curryN(2, (fallback: any, arr: any[]) => r.pipe(\n r.defaultTo([]),\n r.head,\n r.defaultTo(fallback),\n)(arr));\n\nexport const getFirstKey = r.pipe(\n r.keys,\n r.head,\n) as (data: any)=>string;\n\nexport const getFirstValue = r.pipe(\n //@ts-ignore\n r.values,\n r.head,\n);\n\nexport const mapKeys = r.curryN(2, (fn: any, obj: any) => r.pipe(\n r.defaultTo({}),\n r.mapObjIndexed(\n r.converge(\n r.unapply(r.identity),\n [\n r.pipe(\n r.nthArg(1),\n fn,\n ),\n r.identity,\n ]\n ),\n ),\n r.values,\n r.fromPairs,\n)(obj));\n","export default (url: string, language: string) => {\n if (url && url.length && language) {\n let parsedLanguage;\n if (language.split('-').length === 2) {\n parsedLanguage = [\n language.split('-')[0],\n language.split('-')[1].toUpperCase(),\n ].join('-');\n } else {\n parsedLanguage = language;\n }\n return url.replace('{{language}}', parsedLanguage);\n }\n return url;\n};","/*\n createImageAlt({\n illustration: ?String,\n imageUrl: String,\n });\n\n Returns a relevant alt tag text from the URL path\n*/\n\nimport { isNotNilOrEmpty } from '@team-griffin/capra';\nimport * as r from 'ramda';\n\nconst hasImage = r.propSatisfies(isNotNilOrEmpty, 'imageUrl');\n\n/*\n getImageName\n From a URL like https://img1.wsimg.com/cdn/Image/All/Website/2/en-GB/ad586f1e-81a0-4a9d-a675-e266e25e965f/Christian_Jaroljmek.jpg\n return the text between the final slash and dot (Christian_Jaroljmek)\n\n If no regex match, return the string as is (this will capture illustrations)\n*/\nconst getImageName = (str: string) => {\n if (typeof str !== 'string') {\n return '';\n }\n\n const image = str.match(/\\/([^/]+?)\\.[a-zA-Z0-9]+$/);\n\n if (image && image[1]) {\n return image[1];\n }\n\n return str;\n};\n\n/*\n formatName\n Replace any underscores and hyphens with whitespace\n*/\nconst formatName = (str: string) => str.replace(/[-_]/g, ' ');\n\n// eslint-disable-next-line no-underscore-dangle\nexport const __test__ = {\n getImageName,\n formatName,\n};\n\nexport default r.ifElse(\n hasImage,\n r.pipe(\n r.prop('imageUrl'),\n getImageName,\n formatName,\n ),\n r.always(''),\n);","import React from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { defaultProps } from '@team-griffin/rehook';\nimport { Content } from '@ux/typeface';\nimport { modifier, withStylesHook } from '@ux/style-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, Curvature } from '@ux/theme-utils';\nimport { footnote } from '@ux/type-size';\nimport reactCSS from 'reactcss';\nimport { equals, cond, always, T } from 'ramda';\n\nvar Kind;\n\n(function (Kind) {\n Kind[\"PRIMARY\"] = \"PRIMARY\";\n Kind[\"SECONDARY\"] = \"SECONDARY\";\n Kind[\"SUCCESS\"] = \"SUCCESS\";\n Kind[\"WARNING\"] = \"WARNING\";\n Kind[\"ERROR\"] = \"ERROR\";\n Kind[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n})(Kind || (Kind = {}));\n\nvar Against;\n\n(function (Against) {\n Against[\"PRIMARY\"] = \"PRIMARY\";\n Against[\"PRIMARY_GRADIENT\"] = \"PRIMARY_GRADIENT\";\n Against[\"LIGHT\"] = \"LIGHT\";\n Against[\"NEUTRAL\"] = \"NEUTRAL\";\n Against[\"DARK\"] = \"DARK\";\n Against[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n})(Against || (Against = {}));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar isAgainstPrimary = equals(Against.PRIMARY);\nvar isAgainstPrimaryGradient = equals(Against.PRIMARY_GRADIENT);\nvar isAgainstHighlight = equals(Against.HIGHLIGHT);\nvar isAgainstNeutral = equals(Against.NEUTRAL);\nvar stylesheet = (function (_ref) {\n var _reactCSS;\n\n var _ref$theme = _ref.theme,\n palette = _ref$theme.palette,\n spacing = _ref$theme.spacing,\n typography = _ref$theme.typography,\n curvature = _ref$theme.curvature,\n kind = _ref.kind,\n against = _ref.against,\n flush = _ref.flush;\n return reactCSS((_reactCSS = {\n default: {\n root: Object.assign({\n display: 'inline-block'\n }, cssSides('padding', Side.A, gu2px(0.75, spacing)), cssSides('margin', Side.X, gu2px(1, spacing)), footnote(typography), {\n lineHeight: 1,\n whiteSpace: 'nowrap'\n })\n },\n flush: {\n root: Object.assign({}, cssSides('margin', Side.X, 0))\n }\n }, _defineProperty(_reactCSS, modifier('kind', Kind.PRIMARY), {\n root: {\n backgroundColor: cond([[isAgainstPrimary, always(palette.primaryContrast)], [isAgainstPrimaryGradient, always(palette.primaryContrast)], [T, always(palette.primary)]])(against),\n color: cond([[isAgainstPrimary, always(palette.primary)], [isAgainstPrimaryGradient, always(palette.primary)], [T, always(palette.primaryContrast)]])(against)\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.SECONDARY), {\n root: {\n backgroundColor: cond([[isAgainstNeutral, always(palette.grey04)], [T, always(palette.grey10)]])(against),\n color: cond([[isAgainstNeutral, always(palette.grey10)], [T, always(palette.grey04)]])(against)\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.SUCCESS), {\n root: {\n backgroundColor: palette.green01,\n color: '#fff'\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.WARNING), {\n root: {\n backgroundColor: palette.yellow01,\n color: palette.grey04\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.ERROR), {\n root: {\n backgroundColor: palette.red01,\n color: '#fff'\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.HIGHLIGHT), {\n root: {\n backgroundColor: cond([[isAgainstHighlight, always(palette.highlightContrast)], [T, always(palette.highlight)]])(against),\n color: cond([[isAgainstHighlight, always(palette.highlight)], [T, always(palette.highlightContrast)]])(against)\n }\n }), _defineProperty(_reactCSS, modifier('curvature', String(Curvature.WEAK)), {\n root: {\n borderRadius: 4\n }\n }), _defineProperty(_reactCSS, modifier('curvature', String(Curvature.STRONG)), {\n root: Object.assign({\n borderRadius: 100\n }, cssSides('padding', Side.X, gu2px(1.5, spacing)))\n }), _reactCSS), [{\n kind: kind\n }, {\n flush: flush\n }, {\n curvature: curvature\n }]);\n});\n\nvar PureBadge = function PureBadge(_ref) {\n var theme = _ref.theme,\n styles = _ref.styles,\n children = _ref.children;\n return React.createElement(Content, {\n theme: theme,\n component: \"span\",\n style: styles.root\n }, children);\n};\n\nvar enhance = pureEnhance('Badge', [defaultProps({\n kind: Kind.PRIMARY,\n against: Against.LIGHT,\n flush: false\n}), withStylesHook(stylesheet)]);\nvar Badge = enhance(PureBadge); // eslint-disable-next-line no-underscore-dangle\n\nexport default Badge;\nexport { Against, Kind };\n","export enum Behavior {\n NAVIGATION = 'navigation',\n ADD_TO_BASKET = 'addToBasket',\n APPLY_VOUCHER = 'APPLY_VOUCHER',\n CONFIGURE = 'configure',\n SET_VISIBILITY = 'changeActiveVisibilitySet',\n PLAY_VIDEO = 'playVideo',\n}\n\nexport default null;\n","import {\n compose,\n defaultProps,\n withProps,\n withHandlers,\n} from 'recompose';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { useWindow } from '@ux/hooks';\nimport * as r from 'ramda';\nimport { addToBasket, applyVoucher } from 'application/signals/basket';\nimport { setVisibility } from 'application/signals/ribbons';\nimport {\n productClicked,\n promotionClicked,\n productAddToBasket,\n} from 'application/signals/cta';\nimport { getAddingStatus } from 'domain/selectors/basket';\nimport { getExternalRoutes } from 'domain/selectors/common';\nimport { createRibbonName } from 'domain/transformers/ribbons';\nimport { getRibbon } from 'domain/selectors/ribbons';\nimport { Behavior } from 'domain/constants/callToAction';\nimport { signals } from '@team-griffin/redux-modal-router';\nimport { isNotNilOrEmpty } from '@team-griffin/capra';\nimport { selectors } from '@ux/product';\n\nconst formatPricingTier = (tier) => {\n if (tier == null) {\n return;\n }\n if (tier.paymentInterval == null || tier.term == null) {\n return;\n }\n return `${tier.paymentInterval}:${tier.term}`;\n};\n\nconst mapStateToProps = (state, props) => {\n const buttonId = `${props.ribbonId}-cta-${props.index}`;\n const externalRoutes = getExternalRoutes(state);\n const ribbon = getRibbon(props.ribbonId)(state);\n const ribbonType = r.prop('type', ribbon);\n const ribbonName = r.path([ 'props', 'name' ], ribbon);\n const product = r.path([ 'product' ], props);\n\n const ribbonList = createRibbonName(ribbonType, ribbonName);\n return {\n externalRoutes,\n addingStatus: getAddingStatus(buttonId)(state),\n buttonId,\n ribbonList,\n product,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => bindActionCreators({\n addToBasket,\n applyVoucher,\n setVisibility,\n openReduxModal: signals.open,\n productClicked,\n promotionClicked,\n productAddToBasket,\n}, dispatch);\n\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n return {\n ...stateProps,\n ...ownProps,\n actions: {\n ...dispatchProps,\n ...ownProps.actions,\n },\n };\n};\n\nexport default compose(\n defaultProps({\n behavior: {},\n }),\n connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n ),\n withProps(() => ({\n window: useWindow(),\n })),\n withHandlers({\n handleAnalytics: (props) => () => {\n const ctaType = r.path([ 'behavior', 'type' ], props);\n const type = r.path([ 'behavior', 'analytics', 'type' ], props);\n const list = r.prop('ribbonList', props);\n const product = r.prop('product', props);\n\n if (type === 'PRODUCT') {\n const productId = r.path([ 'behavior', 'analytics', 'productId' ], props);\n props.actions.productClicked({\n productId,\n list,\n });\n } else if (type === 'PROMOTION') {\n const promotion = r.path([ 'behavior', 'analytics', 'promotion' ], props);\n props.actions.promotionClicked({ promotion });\n } else if (ctaType === 'addToBasket') {\n props.actions.productAddToBasket({\n list,\n product,\n });\n }\n },\n }),\n withHandlers({\n handleAddToBasketClick: (props) => () => {\n const {\n buttonId,\n product,\n actions: {\n addToBasket,\n },\n behavior: {\n productId,\n postAction,\n pricingTier,\n },\n handleAnalytics,\n } = props;\n const productData = {\n skuId: product ? product.defaultSkuId : null,\n name: product ? product.name : null,\n price: product ? selectors.getPrice({ product, includeTax: false }) : null,\n category: product ? product.categoryName : null,\n };\n addToBasket(\n buttonId,\n productId,\n postAction,\n formatPricingTier(pricingTier),\n 1, //quantity\n productData,\n );\n\n handleAnalytics();\n },\n handleNavigateClick: ({ handleAnalytics }) => () => {\n handleAnalytics();\n },\n handleApplyVoucherClick: ({\n buttonId,\n actions: {\n applyVoucher,\n },\n behavior: {\n voucherCode,\n postAction,\n },\n }) => () => {\n applyVoucher(buttonId, voucherCode, postAction);\n },\n handleConfigureClick: ({\n window,\n behavior: {\n productId,\n pricingTier,\n },\n }) => {\n return () => {\n const tier = formatPricingTier(pricingTier);\n const query = new URLSearchParams();\n query.append('productId', productId);\n if (tier) {\n query.append('pricingTier', tier);\n }\n const q = query.toString();\n window.location.href = `/configure?${q}`;\n };\n },\n handleSetVisibilityClick: ({\n actions: {\n setVisibility,\n },\n behavior,\n }) => () => {\n setVisibility(behavior.visibilitySet);\n },\n handlePlayVideoClick: ({\n actions: {\n openReduxModal,\n },\n behavior: {\n videoId,\n provider,\n },\n }) => () => {\n openReduxModal({\n route: 'PLAY_VIDEO',\n params: {\n videoId,\n provider,\n },\n });\n },\n }),\n withProps((ownerProps) => ({\n handleClick: r.cond([\n [\n r.propEq('type', Behavior.ADD_TO_BASKET),\n r.always(ownerProps.handleAddToBasketClick),\n ],\n [\n r.propEq('type', Behavior.APPLY_VOUCHER),\n r.always(ownerProps.handleApplyVoucherClick),\n ],\n [\n r.propEq('type', Behavior.CONFIGURE),\n r.always(ownerProps.handleConfigureClick),\n ],\n [\n r.propEq('type', Behavior.SET_VISIBILITY),\n r.always(ownerProps.handleSetVisibilityClick),\n ],\n [\n r.propEq('type', Behavior.PLAY_VIDEO),\n r.always(ownerProps.handlePlayVideoClick),\n ],\n [\n r.propEq('type', Behavior.NAVIGATION),\n r.always(ownerProps.handleNavigateClick),\n ],\n [\n r.T,\n // noop\n r.always(r.always(null)),\n ],\n ])(ownerProps.behavior),\n // add an analytics prefixed `id` to the cta if required\n id: r.ifElse(\n r.pathSatisfies(isNotNilOrEmpty, [ 'analytics', 'linkAttribution' ]),\n ({ analytics }) => `usf-cta-${analytics.linkAttribution}`,\n r.always(ownerProps.id),\n )(ownerProps.behavior),\n })),\n);\n","import color from 'color';\n\nexport default (c, a) =>\n color(c)\n .alpha(a)\n .string();\n"],"sourceRoot":""}