{"version":3,"sources":["webpack:///./presentation/components/ribbons/elaborate/QuestionHeader.tsx","webpack:///src/presentation/components/ribbons/elaborate/QuestionHeader.stylesheet.ts","webpack:///./presentation/components/ribbons/elaborate/QuestionBody.tsx","webpack:///./presentation/components/ribbons/elaborate/QuestionBody.stylesheet.ts","webpack:///./presentation/components/ribbons/elaborate/Question.tsx","webpack:///./presentation/components/ribbons/elaborate/Question.stylesheet.ts","webpack:///src/presentation/components/ribbons/elaborate/Questions.tsx","webpack:///./presentation/components/ribbons/elaborate/Elaborate.tsx","webpack:///src/presentation/components/ribbons/elaborate/Elaborate.stylesheet.ts","webpack:///./presentation/utils/ribbonPadding.ts","webpack:///../node_modules/@ux/text-button/dist/es/text-button.js","webpack:///src/presentation/hocs/errorBoundary.tsx","webpack:///./presentation/hocs/withRibbonImpression.ts","webpack:///./presentation/utils/ribbonWidth.ts","webpack:///./presentation/hocs/deepLink.tsx","webpack:///./presentation/components/ribbons/Ribbon/Ribbon.tsx","webpack:///./presentation/components/ribbons/Ribbon/ConnectedRibbon.ts","webpack:///./presentation/components/ribbons/Ribbon/index.ts","webpack:///./presentation/utils/getBreakpoints.ts","webpack:///../node_modules/@ux/typography/dist/es/typography.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:///src/presentation/components/Shortcode/Tooltip.tsx","webpack:///./presentation/components/Shortcode/Shortcode.tsx","webpack:///./presentation/components/Shortcode/index.ts","webpack:///./presentation/hocs/visibilitySet.tsx","webpack:///../node_modules/react-animate-height/lib/AnimateHeight.js"],"names":["PureHeader","hBaseline","question","onClick","colorway","isFirst","active","duration","styles","theme","useTheme","spacing","isMinLg","useBreakpoints","useStyles","default","root","width","display","flexDirection","fontFamily","fontSize","textAlign","backgroundColor","borderWidth","outline","cursor","cssSides","Side","gu2px","transition","title","color","getTitleColor","flexGrow","flexBasis","icon","marginLeft","glyph","paddingBottom","useStylesheet","style","depth","Shortcode","code","against","size","displayName","PureBody","answer","overflow","animateHeight","flex","height","animateOpacity","easing","PureQuestion","id","selected","onChange","palette","borderTopStyle","borderTopWidth","borderTopColor","opacify","grey06","getBodyColor","modifier","Colorway","PRIMARY","primaryContrast","HIGHLIGHT","highlightContrast","PureQuestions","questions","cssTheme","gu2","useState","useEffect","defaultOpen","setSelected","q","i","key","concat","String","getHasTitle","text","isNilOrEmpty","getHasBody","body","PureElaborate","layout","loading","items","name","isMinMd","header","marginBottom","gu1","isMinSm","hasTitle","hasBody","mdColWidth","getMdColWidth","Ribbon","type","xs","md","component","Questions","errorBoundary","visibilitySet","flush","r","shrinkLeading","shrinkTrailing","getPaddingSize","shrinkSide","isFlush","leading","Flush","LEADING","trailing","TRAILING","paddingTop","Size","Against","ContentType","_defineProperty","obj","value","Object","defineProperty","enumerable","configurable","writable","enhance","hooks","disabled","block","caps","MD","contentType","DEFAULT","_ref","_useStyles","hover","typography","fill","LIGHT","secondary","NEUTRAL","DARK","tertiary","PRIMARY_FADED","HIGHLIGHT_FADED","highlight","assign","A","content","lineHeight","textDecoration","inner","opacity","borderBottomStyle","textTransform","SM","LG","INHERIT","PHONE_NUMBER","borderBottomWidth","TextButton","_a","children","domProps","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","length","__rest","createElement","stylesheet","getBackgroundColor","ribbonPadding","ErrorBoundary","compose","withState","lifecycle","componentDidCatch","this","withProps","hooksA","pipe","mapProps","props","selector","useMemo","getRibbonAnalytics","analytics","useSelector","dispatch","useDispatch","actions","bindActionCreators","sendImpression","withHandlers","onImpression","ribbonName","ribbonType","hooksB","isFullyInViewport","stopWatcher","pureEnhance","hocs","mapPropsHoc","branch","Watch","deepLink","withRouter","componentDidMount","location","hash","scrollWhenReady","animationComplete","setTimeout","scroller","scrollTo","delay","smooth","WrappedComponent","mapFit","fit","Fit","FULLSCREEN","minHeight","FILL","AUTO","isFinite","targetRef","useRef","withBreakpointsHook","duoLayout","activeFit","findResponsiveItem","getBreakpoints","padding","duoLayoutFlex","duoRibbonWidth","position","percentage","ribbon","PRIMARY_GRADIENT","backgroundImage","primary","primaryGradient","ref","withRibbonImpression","mergeStyles","createHeading","headingSize","Number","Y","fontWeight","Heading01","Heading02","Heading03","Heading04","Heading05","Heading06","stylesheet$1","_ref$theme","gu","marginTop","SubHeading01","SubHeading02","stylesheet$2","PreHeading01","PreHeading02","BodyCopy01","randomWidth","Math","floor","random","PendingShortcode","lines","elements","getColor","Alt","RecursiveShortcode","rest","Bold","fontStyle","Link","attributes","externalRoutes","useAppConfig","to","goto","analyticskey","TextButtonSize","rel","target","newTab","formatText","newline","formattedText","split","join","escapeShortCodes","string","reduce","prev","cur","nl2br","Text","ReactTooltip","lazy","TooltipShortcode","eventToggle","CallToAction","fallback","tagName","useDefaultStyles","maxWidth","Glyph","Sup","List","OrderedList","ListItem","TickListItem","ProductPrice","PhoneNumber","map","element","JSON","stringify","getAgainst","Element","Italic","Tooltip","ShortcodeWrapper","BaseComponent","exports","_typeof","Symbol","iterator","constructor","_extends","arguments","source","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","_classnames2","__esModule","ANIMATION_STATE_CLASSES","animating","animatingUp","animatingDown","animatingToHeightZero","animatingToHeightAuto","animatingToHeightSpecific","static","staticHeightZero","staticHeightAuto","staticHeightSpecific","PROPS_TO_OMIT","omit","_len","keys","Array","_key","res","objectKeys","cancelAnimationFrames","requestAnimationFrameIDs","forEach","cancelAnimationFrame","isNumber","n","isNaN","parseFloat","isPercentage","search","substr","runCallback","callback","params","AnimateHeight","_React$Component","instance","TypeError","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","animationFrameIDs","animationStateClasses","getStaticStateClasses","state","shouldUseTransitions","subClass","superClass","create","setPrototypeOf","_inherits","contentElement","hideContent","prevProps","prevState","_this2","_props","onAnimationEnd","onAnimationStart","_cx","showContent","contentHeight","offsetHeight","totalDuration","newHeight","timeoutState","isCurrentHeightAuto","timeoutAnimationStateClasses","setState","clearTimeout","timeoutID","animationClassesTimeoutID","requestAnimationFrame","startAnimationHelper","_cx2","_cx3","_this3","_props2","applyInlineTransitions","className","contentClassName","_state","componentStyle","WebkitTransition","contentStyle","componentClasses","apply","undefined","el","Component","propTypes","bool","object","any","isRequired","number","propName","componentName","func","defaultProps"],"mappings":"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","file":"pex-static/40/28.7d78540ab53edafd947b.chunk.js","sourcesContent":["import React from 'react';\nimport { Heading04 } from '@ux/typography';\nimport Glyph from '@ux/glyphs';\nimport { useTheme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\n\nimport useStylesheet from './QuestionHeader.stylesheet';\n\ninterface OuterProps {\n hBaseline: number,\n question: ShortcodeProps,\n onClick: (event: React.MouseEvent) => void,\n colorway: Colorway,\n active?: boolean,\n duration: number,\n isFirst?: boolean,\n}\n\nexport const PureHeader = ({\n hBaseline,\n question,\n onClick,\n colorway,\n isFirst,\n active,\n duration,\n}: OuterProps) => {\n const { styles } = useStylesheet({\n colorway,\n isFirst,\n active,\n duration,\n });\n const { theme } = useTheme();\n const icon = active ? 'chevronUp' : 'chevronDown';\n\n return (\n \n \n \n \n \n \n \n \n );\n};\nPureHeader.displayName = 'Header';\n\nexport default PureHeader;\n","import { useStyles } from '@team-griffin/stylr';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Colorway } from 'domain/constants/colorway';\nimport { getTitleColor } from 'presentation/utils/colorway';\n\nexport default ({\n colorway,\n isFirst,\n active,\n duration,\n}: {\n colorway: Colorway,\n isFirst: boolean,\n active: boolean,\n duration: number,\n}) => {\n const { theme } = useTheme();\n const { spacing } = theme;\n const { isMinLg } = useBreakpoints();\n\n return useStyles({\n default: {\n root: {\n width: '100%',\n display: 'flex',\n flexDirection: 'row',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n textAlign: 'left',\n backgroundColor: 'transparent',\n borderWidth: 0,\n outline: 0,\n cursor: 'pointer',\n ...cssSides('padding', Side.A, 0),\n ...cssSides('padding', Side.Y, gu2px(2, spacing)),\n transition: `padding-bottom ${duration}ms ease-in-out`,\n },\n title: {\n color: getTitleColor(theme, colorway),\n flexGrow: 1,\n flexBasis: '100%',\n },\n icon: {\n marginLeft: gu2px(1, spacing),\n width: gu2px(3, spacing),\n },\n glyph: {\n color: getTitleColor(theme, colorway),\n width: gu2px(3, spacing),\n },\n },\n\n active: {\n root: {\n paddingBottom: 0,\n },\n },\n\n isMinLg: {\n root: {\n ...cssSides('padding', Side.Y, gu2px(3, spacing)),\n },\n },\n }, [\n { isMinLg },\n { isFirst },\n { active },\n ]);\n};\n","import React from 'react';\nimport AnimateHeight from 'react-animate-height';\nimport { BodyCopy01 } from '@ux/typography';\nimport { useTheme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\n\nimport useStylesheet from './QuestionBody.stylesheet';\n\ninterface OuterProps {\n duration: number,\n colorway: Colorway,\n answer: ShortcodeProps,\n active?: boolean,\n}\n\nexport const PureBody = ({\n answer,\n colorway,\n duration,\n active,\n}: OuterProps) => {\n const { theme } = useTheme();\n const { styles } = useStylesheet();\n const height = active ? 'auto' : 0;\n\n return (\n
\n \n \n \n \n \n
\n );\n};\n\nPureBody.displayName = 'Body';\n\nexport default PureBody;\n","import { useStyles } from '@team-griffin/stylr';\n\nexport default () => {\n return useStyles({\n default: {\n root: {\n overflow: 'hidden',\n },\n animateHeight: {\n flex: 1,\n flexBasis: 'auto',\n },\n },\n });\n};\n","import React from 'react';\nimport { Colorway } from 'domain/constants/colorway';\nimport { ShortcodeProps } from 'presentation/components/Shortcode';\n\nimport Header from './QuestionHeader';\nimport Body from './QuestionBody';\nimport useStylesheet from './Question.stylesheet';\n\ninterface OuterProps {\n selected: number,\n id: number,\n hBaseline: number,\n colorway: Colorway,\n question: ShortcodeProps,\n answer: ShortcodeProps,\n duration: number,\n onChange: (evt: any) => void,\n}\n\nexport const PureQuestion = ({\n id,\n colorway,\n hBaseline,\n selected,\n question,\n answer,\n duration,\n onChange,\n}: OuterProps) => {\n const isFirst = id === 0;\n const active = selected === id;\n const { styles } = useStylesheet({\n colorway,\n isFirst,\n active,\n duration,\n });\n const onClick = () => active ? onChange(null) : onChange(id);\n\n return (\n
\n \n \n
\n );\n};\n\nPureQuestion.displayName = 'Question';\n\nexport default PureQuestion;\n","import { useStyles } from '@team-griffin/stylr';\nimport { modifier, opacify } from '@ux/style-utils';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { getBodyColor } from 'presentation/utils/colorway';\n\nexport default ({\n colorway,\n isFirst,\n active,\n duration,\n}: {\n colorway: Colorway,\n isFirst: boolean,\n active: boolean,\n duration: number,\n}) => {\n const { theme } = useTheme();\n const { palette, spacing } = theme;\n\n return useStyles({\n default: {\n root: {\n borderTopStyle: 'solid',\n borderTopWidth: 2,\n borderTopColor: opacify(palette.grey06, 0.2),\n display: 'flex',\n flexDirection: 'column',\n color: getBodyColor(theme, colorway),\n transition: `padding-bottom ${duration}ms ease-in-out`,\n },\n },\n isFirst: {\n root: {\n borderTopWidth: 0,\n },\n },\n active: {\n root: {\n paddingBottom: gu2px(2, spacing),\n },\n },\n [modifier('colorway', Colorway.PRIMARY)]: {\n root: {\n borderTopColor: opacify(palette.primaryContrast, 0.2),\n },\n },\n [modifier('colorway', Colorway.HIGHLIGHT)]: {\n root: {\n borderTopColor: opacify(palette.highlightContrast, 0.2),\n },\n },\n }, [\n { colorway },\n { isFirst },\n { active },\n ]);\n};\n","import React, { useState, useEffect } from 'react';\nimport { useStyles } from '@team-griffin/stylr';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { cssTheme } from '@ux/theme-utils';\nimport PaddingBox from '@ux/padding-box';\nimport { Colorway } from 'domain/constants/colorway';\n\nimport { QuestionProps } from './Elaborate';\nimport Question from './Question';\n\ninterface OuterProps {\n colorway: Colorway,\n hBaseline: number,\n duration?: number,\n questions: QuestionProps[],\n}\n\nconst useStylesheet = () => useStyles({\n default: {\n questions: {\n ...cssSides('margin', Side.Y, `calc(${cssTheme.gu2} * -1)`),\n },\n },\n});\n\nexport const PureQuestions = ({\n colorway,\n hBaseline,\n questions,\n duration = 300,\n}: OuterProps) => {\n const { styles } = useStylesheet();\n const [ selected, setSelected ] = useState(null);\n\n useEffect(() => {\n const defaultOpen = questions.findIndex((question) => question.defaultOpen === true);\n\n if (defaultOpen > -1) {\n setSelected(defaultOpen);\n }\n }, [ questions, setSelected ]);\n\n return (\n \n
\n {questions.map((q, i) => (\n \n ))}\n
\n
\n );\n};\n\nPureQuestions.displayName = 'Questions';\n\nexport default PureQuestions;\n","import React, { ComponentType } from 'react';\nimport { Container, Row, Column } from '@ux/grid';\nimport { Heading02, SubHeading01 } from '@ux/typography';\nimport PaddingBox from '@ux/padding-box';\nimport { useTheme } from '@ux/theme-utils';\nimport { RibbonProps } from 'domain/constants/ribbons';\nimport Ribbon from 'components/ribbons/Ribbon';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport { isNilOrEmpty } from 'presentation/utils/generalUtils';\n\nimport Questions from './Questions';\nimport useStylesheet from './Elaborate.stylesheet';\n\nexport type QuestionProps = {\n question: ShortcodeProps,\n answer: ShortcodeProps,\n defaultOpen?: boolean,\n};\n\ntype TextProps = {\n title: ShortcodeProps,\n body: ShortcodeProps,\n};\n\ninterface OuterProps extends RibbonProps {\n items: QuestionProps[],\n text: TextProps,\n}\n\nconst getHasTitle = (text: TextProps) => !isNilOrEmpty(text?.title);\nconst getHasBody = (text: TextProps) => !isNilOrEmpty(text?.body);\n\nexport const getMdColWidth = ({ text }: Partial) => {\n const hasTitle = getHasTitle(text);\n const hasBody = getHasBody(text);\n\n if (hasTitle || hasBody) {\n return 8;\n }\n\n return 12;\n};\n\nexport const PureElaborate = ({\n id,\n layout,\n colorway,\n loading,\n hBaseline = 1,\n text,\n items,\n name,\n}: OuterProps) => {\n const { styles } = useStylesheet({ colorway });\n const { theme } = useTheme();\n const hasTitle = getHasTitle(text);\n const hasBody = getHasBody(text);\n const mdColWidth = getMdColWidth({ text });\n\n return (\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\nPureElaborate.displayName = 'Elaborate';\n\nexport default errorBoundary(visibilitySet(PureElaborate)) as ComponentType;\n","import { useStyles } from '@team-griffin/stylr';\nimport { useTheme, cssTheme } from '@ux/theme-utils';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Colorway } from 'domain/constants/colorway';\nimport { getTitleColor, getBodyColor } from 'presentation/utils/colorway';\n\nexport default ({ colorway }: { colorway: Colorway }) => {\n const { theme } = useTheme();\n const { isMinSm, isMinMd } = useBreakpoints();\n\n return useStyles({\n default: {\n header: {\n marginBottom: cssTheme.gu1,\n },\n title: {\n color: getTitleColor(theme, colorway),\n },\n body: {\n color: getBodyColor(theme, colorway),\n },\n },\n\n isMinSm: {\n header: {\n marginBottom: cssTheme.gu2,\n },\n },\n\n isMinMd: {\n header: {\n marginBottom: 0,\n },\n },\n }, [\n { isMinSm },\n { isMinMd },\n ]);\n};\n","import { Flush } from 'domain/constants/ribbons';\nimport { gu2px } from '@ux/theme-utils';\nimport * as r from 'ramda';\nimport { Layout } from 'domain/constants/layout';\n\nexport default ({\n spacing,\n isMinSm,\n isMinLg,\n layout,\n flush,\n}: {\n spacing: number,\n isMinSm: boolean,\n isMinLg: boolean,\n layout?: Layout,\n flush?: Flush|boolean,\n}) => {\n\n if (r.equals(flush, true)) {\n // Component will handle all padding, used on full bleed image ribbons\n return {};\n }\n\n const {\n //@ts-ignore\n shrinkLeading,\n //@ts-ignore\n shrinkTrailing,\n } = r.defaultTo({}, layout);\n\n /*\n shrinkSide:\n shrink[Leading/Trailing] prop is true then return a reduced padding\n depending on screen size\n isFlush:\n leading or trailing edge has been designated as flush, no padding\n */\n const getPaddingSize = (shrinkSide: string, isFlush: boolean) => {\n\n if (isFlush) {\n return 0;\n }\n\n return r.cond([\n [ r.propEq(shrinkSide, true), () => r.ifElse(\n r.equals(true),\n r.always(1),\n r.always(0.5),\n )(isMinSm) ],\n [ r.propEq('isMinLg', true), r.always(6) ],\n [ r.propEq('isMinSm', true), r.always(5) ],\n [ r.T, r.always(4) ],\n ])({\n isMinLg,\n isMinSm,\n shrinkLeading,\n shrinkTrailing,\n });\n };\n\n const leading = getPaddingSize('shrinkLeading', flush === Flush.LEADING);\n const trailing = getPaddingSize('shrinkTrailing', flush === Flush.TRAILING);\n\n return {\n paddingTop: gu2px(leading, spacing),\n paddingBottom: gu2px(trailing, spacing),\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, { CSSProperties } from 'react';\nimport { compose, lifecycle, withState, withProps } from 'recompose';\nimport Message from '@ux/message';\nimport { Container } from '@ux/grid';\nimport * as r from 'ramda';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { getBackgroundColor, getTitleColor } from 'presentation/utils/colorway';\nimport { gu2px, useTheme } from '@ux/theme-utils';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { useStyles } from '@team-griffin/stylr';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\nimport { Flush } from 'domain/constants/ribbons';\nimport { BreakpointProps, useBreakpoints } from '@ux/responsive';\n\ninterface OuterProps extends BreakpointProps {\n colorway: Colorway;\n layout: Layout;\n flush?: Flush | boolean;\n}\n\ninterface InnerProps extends OuterProps {\n styles: {\n root: CSSProperties;\n };\n hasErrored: boolean;\n}\nconst stylesheet = ({ colorway, layout, flush }: InnerProps) => {\n const { theme } = useTheme();\n const { isMinSm, isMinMd, isMinLg } = useBreakpoints();\n const { spacing } = theme;\n\n return useStyles(\n {\n default: {\n root: {\n backgroundColor: getBackgroundColor(theme, colorway),\n color: getTitleColor(theme, colorway),\n ...ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n layout,\n flush,\n }),\n ...cssSides('Side', Side.X, gu2px(3, spacing)),\n textAlign: 'center',\n },\n },\n isMinSm: {\n root: {\n ...cssSides('Side', Side.X, gu2px(4, spacing)),\n },\n },\n },\n [{ colorway }, { isMinSm }, { isMinMd }],\n );\n};\n\nexport default (WrappedComponent: any) => {\n const ErrorBoundary = r.ifElse(\n r.propEq('hasErrored', true),\n ({ styles }) => (\n
\n \n \n \n
\n ),\n (props: InnerProps) => ,\n );\n\n return compose(\n withState('hasErrored', 'setHasErrored', false),\n lifecycle({\n componentDidCatch: function() {\n //@ts-ignore\n this.props.setHasErrored(true);\n },\n }),\n withProps(stylesheet),\n )(ErrorBoundary);\n};\n","import { useMemo, useEffect } from 'react';\nimport { branch, mapProps as mapPropsHoc } from 'recompose';\nimport pureEnhance from '@ux/pure-enhance';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { pipe, withProps, mapProps, withHandlers } from '@team-griffin/rehook';\nimport { Watch } from 'scrollmonitor-react';\nimport * as r from 'ramda';\nimport { sendImpression } from 'application/signals/ribbons';\nimport { getRibbonAnalytics } from 'domain/selectors/ribbons';\nimport { Type } from 'domain/constants/ribbons';\n\nconst hooksA = pipe(\n mapProps((props: any) => {\n const { id } = props;\n const selector = useMemo(() => getRibbonAnalytics(id), [ id ]);\n const analytics = useSelector(selector);\n const dispatch = useDispatch();\n const actions = bindActionCreators({ sendImpression }, dispatch);\n\n return r.mergeDeepLeft(props, {\n analytics,\n actions,\n });\n }),\n withHandlers({\n onImpression: ({\n name,\n type,\n analytics,\n actions: {\n sendImpression,\n },\n }: {\n name: string,\n type: Type,\n analytics: any,\n actions: {\n sendImpression: Function,\n }\n }) => () => sendImpression({\n ...analytics,\n ribbonName: name,\n ribbonType: type,\n }),\n }),\n);\n\nconst hooksB = pipe(\n withProps(({\n isFullyInViewport,\n stopWatcher,\n onImpression,\n analytics,\n }: {\n isFullyInViewport: boolean,\n stopWatcher: () => void,\n onImpression: (a: any) => void,\n analytics: any,\n }) => {\n useEffect(() => {\n if (isFullyInViewport) {\n stopWatcher();\n onImpression(analytics);\n }\n }, [ isFullyInViewport ]);\n }),\n);\n\nexport default pureEnhance('RibbonImpression', {\n hocs: [\n mapPropsHoc(hooksA),\n branch(\n r.propSatisfies(r.complement(r.isNil), 'analytics'),\n Watch,\n ),\n mapPropsHoc(hooksB),\n ],\n});\n","export const duoRibbonWidth = ({\n isMinMd,\n duoLayout,\n}: {\n isMinMd: boolean,\n duoLayout?: boolean,\n}) => {\n if (!isMinMd || duoLayout == null) {\n return {};\n }\n\n const flexSize = (isMinMd && duoLayout) ? 50 : 100;\n return {\n flex: `${flexSize}%`,\n };\n};\n\nexport default null;","import React, { Fragment } from 'react';\nimport {\n compose,\n lifecycle,\n} from 'recompose';\nimport { withRouter } from 'react-router';\nimport { Element, scroller } from 'react-scroll';\n\nconst deepLink = compose(\n withRouter,\n lifecycle({\n componentDidMount: function() {\n //Adding some ts-ignores here so it doesn't throw not recognizing\n //this.props\n\n //@ts-ignore\n if (this.props.location.hash === `#${this.props.name}`) {\n const scrollWhenReady = () => {\n // we can't scroll to eagerly or we'll end up in the wrong place\n //@ts-ignore\n if (this.props.loading || !this.props.animationComplete) {\n return setTimeout(scrollWhenReady, 100);\n }\n //@ts-ignore\n scroller.scrollTo(this.props.name, {\n duration: 500,\n delay: 100,\n smooth: true,\n });\n };\n setTimeout(scrollWhenReady, 100);\n }\n },\n }),\n (WrappedComponent: any) => {\n return (props: any) => (\n \n \n \n \n );\n },\n);\n\nexport default deepLink;\n","import React, { useRef, useLayoutEffect, CSSProperties, ReactNode, Ref } from 'react';\nimport { withProps } from '@team-griffin/rehook';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { duoRibbonWidth } from 'presentation/utils/ribbonWidth';\nimport { percentage, modifier } from '@ux/style-utils';\nimport deepLink from 'presentation/hocs/deepLink';\nimport { getBackgroundColor } from 'presentation/utils/colorway';\nimport { useStyles } from '@team-griffin/stylr';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Fit, Flush, RibbonProps } from 'domain/constants/ribbons';\nimport * as r from 'ramda';\n\nexport {\n Flush,\n};\n\ninterface OuterProps extends RibbonProps {\n children?: ReactNode,\n}\ninterface WithHandlerProps extends OuterProps {\n setAnimationComplete: Function,\n setRibbonHeight: Function,\n setHeight: Function,\n onAnimationEnd: (props: {\n newHeight: number;\n }) => void,\n}\n\ninterface InnerProps extends WithHandlerProps, BreakpointProps {\n rendered: boolean,\n targetRef: Ref,\n duration: number,\n styles: {\n root: CSSProperties,\n inner: CSSProperties,\n ribbon: CSSProperties,\n }\n}\n\nconst mapFit = (fit: Fit) => r.cond([\n [ r.equals(Fit.FULLSCREEN), r.always({\n minHeight: '100vh',\n }) ],\n [ r.equals(Fit.FILL), r.always({\n flex: 1,\n flexBasis: 'auto',\n }) ],\n [ r.equals(Fit.AUTO), r.always({\n height: 'auto',\n }) ],\n [ isFinite, r.always({\n minHeight: fit,\n }) ],\n [ r.T, r.always({\n height: 'auto',\n }) ],\n])(fit);\n\nconst stylesheet = ({\n theme,\n colorway,\n loading,\n layout,\n flush,\n ...props\n}: InnerProps) => {\n const {\n palette,\n spacing,\n } = theme;\n const {\n //@ts-ignore\n fit,\n } = r.defaultTo({}, layout);\n\n const {\n isMinSm,\n isMinMd,\n isMinLg,\n duoLayout,\n } = props;\n\n const activeFit = findResponsiveItem(\n getBreakpoints(props),\n fit,\n );\n\n const padding = ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n layout,\n flush,\n });\n\n const duoLayoutFlex = duoRibbonWidth({\n isMinMd,\n duoLayout,\n });\n\n return useStyles({\n default: {\n root: {\n backgroundColor: getBackgroundColor(theme, colorway),\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n width: percentage(100),\n ...mapFit(activeFit),\n ...padding,\n ...duoLayoutFlex,\n },\n inner: {\n flex: 1,\n flexBasis: 'auto',\n display: 'flex',\n height: 'auto',\n },\n ribbon: {\n display: 'flex',\n flexDirection: 'column',\n width: percentage(100),\n },\n },\n\n [modifier('colorway', Colorway.PRIMARY_GRADIENT)]: {\n root: {\n backgroundImage: `linear-gradient(to right, ${palette.primary}, ${palette.primaryGradient})`,\n },\n },\n }, [\n { loading },\n { colorway },\n { isMinSm },\n { isMinMd },\n { isMinLg },\n ]);\n};\n\nexport const PureRibbon = ({\n styles,\n targetRef,\n children,\n}: InnerProps) => (\n
\n
\n \n {children}\n
\n \n
\n);\n\nexport const enhance = pureEnhance('Ribbon', {\n hocs: [\n deepLink,\n ],\n hooks: [\n withProps(() => {\n const targetRef = useRef({});\n\n if (process.env.NODE_ENV !== 'production') {\n useLayoutEffect(() => {\n // when backstop runs on ribbons, this lets us filter out a lot of false\n // positives and a lot of race condition fails by only initialising\n // the snapshot once loading has finished + a delay to wait for fonts etc to load\n // eslint-disable-next-line\n setTimeout(() => {\n // eslint-disable-next-line\n console.log('BACKSTOP_RIBBON_READY');\n }, 3000);\n }, [ targetRef.current ]);\n }\n\n return {\n targetRef,\n };\n }),\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n});\n\nexport default enhance(PureRibbon);\n","import pureEnhance from '@ux/pure-enhance';\nimport withRibbonImpression from 'presentation/hocs/withRibbonImpression';\n\nimport Ribbon from './Ribbon';\n\nconst enhance = pureEnhance('ConnectedRibbon', {\n hocs: [ withRibbonImpression ],\n});\n\nexport default enhance(Ribbon);\n","import Ribbon from './ConnectedRibbon';\nimport { Flush } from './Ribbon';\n\nexport { Flush };\n\nexport default Ribbon;\n","import * as r from 'ramda';\nimport { BreakpointProps } from '@ux/responsive';\n\ninterface anyProps extends BreakpointProps {\n [key: string]: any,\n}\nexport default (props: anyProps) => r.pick([\n 'isMinSm',\n 'isMinMd',\n 'isMinLg',\n 'isMinXl',\n], props) as anyProps;\n","import { headingXl, headingXxl, display, headingL, headingM, headingS, headingXs, headingXxs, content } from '@ux/type-size';\nimport reactCSS from 'reactcss';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { createElement } from 'react';\nimport { defaultProps, mapProps } from '@team-griffin/rehook';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withStylesHook } from '@ux/style-utils';\nimport { withBreakpoints } from '@ux/responsive';\nimport { pipe, converge, assoc, mergeDeepRight, path, propOr, identity, dissoc, is, defaultTo } from 'ramda';\nimport { gu2px } from '@ux/theme-utils';\n\nvar mergeStyles = pipe(converge(assoc('style'), [converge(mergeDeepRight, [path(['styles', 'root']), propOr({}, 'style')]), identity]), dissoc('styles'));\n\nvar createHeading = function createHeading(name, component, headingSize, stylesheet) {\n return pureEnhance(name, {\n hocs: [withBreakpoints],\n hooks: [defaultProps({\n component: component\n }), withStylesHook(function (props) {\n return stylesheet(Object.assign({}, props, {\n headingSize: headingSize\n }));\n }), mapProps(pipe(mergeStyles, function (props) {\n // if a `depth` prop is provided, make the `` element\n if (is(Number, props.depth)) {\n return assoc('component', \"h\".concat(props.depth), props);\n }\n\n return props;\n }))]\n })(function (_ref) {\n var style = _ref.style,\n children = _ref.children,\n component = _ref.component;\n return createElement(component, {\n style: style\n }, children);\n });\n};\n\nvar stylesheet = function stylesheet(_ref) {\n var typography = _ref.theme.typography,\n isMinSm = _ref.isMinSm,\n isMinLg = _ref.isMinLg,\n headingSize = _ref.headingSize;\n return reactCSS({\n default: {\n root: Object.assign({}, headingSize[0](typography), cssSides('margin', Side.Y, 0), {\n fontWeight: 'normal',\n fontFamily: typography.display\n })\n },\n isMinSm: {\n root: Object.assign({}, headingSize[1](typography))\n },\n isMinLg: {\n root: Object.assign({}, headingSize[2](typography))\n }\n }, [{\n isMinSm: isMinSm\n }, {\n isMinLg: isMinLg\n }]);\n};\n/* eslint-disable max-len */\n\n\nvar Heading01 = createHeading('Heading01', 'h1', [headingXl, headingXxl, display], stylesheet);\nvar Heading02 = createHeading('Heading02', 'h1', [headingL, headingXl, headingXxl], stylesheet);\nvar Heading03 = createHeading('Heading03', 'h1', [headingM, headingL, headingXl], stylesheet);\nvar Heading04 = createHeading('Heading04', 'h1', [headingS, headingM, headingL], stylesheet);\nvar Heading05 = createHeading('Heading05', 'h1', [headingXs, headingS, headingM], stylesheet);\nvar Heading06 = createHeading('Heading06', 'h1', [headingXxs, headingXs, headingS], stylesheet);\n\nvar stylesheet$1 = function stylesheet(_ref) {\n var _ref$theme = _ref.theme,\n typography = _ref$theme.typography,\n spacing = _ref$theme.spacing,\n gu = _ref.gu,\n isMinSm = _ref.isMinSm,\n isMinLg = _ref.isMinLg,\n headingSize = _ref.headingSize;\n return reactCSS({\n default: {\n root: Object.assign({}, headingSize[0](typography), {\n marginTop: gu2px(defaultTo(2, gu), spacing),\n marginBottom: 0,\n fontWeight: 'normal',\n fontFamily: typography.display\n })\n },\n isMinSm: {\n root: Object.assign({}, headingSize[1](typography))\n },\n isMinLg: {\n root: Object.assign({}, headingSize[2](typography))\n }\n }, [{\n isMinSm: isMinSm\n }, {\n isMinLg: isMinLg\n }]);\n};\n/* eslint-disable max-len */\n\n\nvar SubHeading01 = createHeading('SubHeading01', 'h2', [headingXs, headingS, headingM], stylesheet$1);\nvar SubHeading02 = createHeading('SubHeading02', 'h3', [headingXxs, headingXxs, headingXs], function (props) {\n return stylesheet$1(mergeDeepRight(props, {\n gu: 1\n }));\n});\n\nvar stylesheet$2 = function stylesheet(_ref) {\n var _ref$theme = _ref.theme,\n typography = _ref$theme.typography,\n spacing = _ref$theme.spacing,\n isMinSm = _ref.isMinSm,\n isMinLg = _ref.isMinLg,\n headingSize = _ref.headingSize;\n return reactCSS({\n default: {\n root: Object.assign({}, headingSize[0](typography), {\n marginTop: 0,\n marginBottom: gu2px(1, spacing),\n fontWeight: 'normal',\n fontFamily: typography.display\n })\n },\n isMinSm: {\n root: Object.assign({}, headingSize[1](typography))\n },\n isMinLg: {\n root: Object.assign({}, headingSize[2](typography))\n }\n }, [{\n isMinSm: isMinSm\n }, {\n isMinLg: isMinLg\n }]);\n};\n/* eslint-disable max-len */\n\n\nvar PreHeading01 = createHeading('PreHeading01', 'div', [headingXxs, headingXs, headingS], stylesheet$2);\nvar PreHeading02 = createHeading('PreHeading02', 'div', [headingXxs, headingXxs, headingXs], stylesheet$2);\n\nvar stylesheet$3 = function stylesheet(_ref) {\n var _ref$theme = _ref.theme,\n typography = _ref$theme.typography,\n spacing = _ref$theme.spacing,\n isMinSm = _ref.isMinSm,\n isMinLg = _ref.isMinLg,\n headingSize = _ref.headingSize;\n return reactCSS({\n default: {\n root: Object.assign({}, headingSize[0](typography), {\n marginTop: gu2px(1, spacing),\n marginBottom: 0,\n fontWeight: 'normal',\n fontFamily: typography.content\n })\n },\n isMinSm: {\n root: Object.assign({}, headingSize[1](typography))\n },\n isMinLg: {\n root: Object.assign({}, headingSize[2](typography))\n }\n }, [{\n isMinSm: isMinSm\n }, {\n isMinLg: isMinLg\n }]);\n};\n/* eslint-disable max-len */\n\n\nvar BodyCopy01 = createHeading('BodyCopy01', 'p', [content, content, content], stylesheet$3);\n\nvar index = null;\n\nexport default index;\nexport { BodyCopy01, Heading01, Heading02, Heading03, Heading04, Heading05, Heading06, PreHeading01, PreHeading02, SubHeading01, SubHeading02 };\n","import React from 'react';\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 PendingShortcode = ({\n code,\n against,\n}: OuterProps) => (\n \n \n \n);\n\nPendingShortcode.displayName = 'PendingShortcode';\n\nexport default PendingShortcode;\n","import React from 'react';\nimport { RecursiveShortcodeProps } from './Shortcode';\nimport { Against } from 'domain/constants/colorway';\nimport { Theme, useTheme } from '@ux/theme-utils';\n\nconst getColor = (theme: Theme, against: Against) => {\n switch (against) {\n case Against.LIGHT: return theme.palette.primary;\n case Against.NEUTRAL: return theme.palette.primary;\n case Against.DARK: return theme.palette.tertiary;\n default: return 'inherit';\n }\n};\nconst Alt = ({\n RecursiveShortcode,\n elements,\n against,\n ...rest\n}: RecursiveShortcodeProps) => {\n const {\n theme,\n } = useTheme();\n return (\n \n \n \n );\n};\n\nAlt.displayName = 'Alt';\n\nexport default Alt;","import React from 'react';\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nconst Bold = ({ elements, RecursiveShortcode, ...rest }: RecursiveShortcodeProps) => (\n \n \n \n);\n\nBold.displayName = 'Bold';\n\nexport default Bold;","import React from 'react';\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nconst Bold = ({ elements, RecursiveShortcode, ...rest }: RecursiveShortcodeProps) => (\n \n \n \n);\n\nBold.displayName = 'Bold';\n\nexport default Bold;","import React from 'react';\nimport TextButton, {\n Size as TextButtonSize,\n} from '@ux/text-button';\nimport { RecursiveShortcodeProps } from './Shortcode';\nimport { useTheme } from '@ux/theme-utils';\nimport { useAppConfig } from '@ux/whitelabel';\n\nconst Link = ({\n RecursiveShortcode,\n elements,\n contentType,\n attributes,\n against,\n ...rest\n}: RecursiveShortcodeProps) => {\n const {\n theme,\n } = useTheme();\n const externalRoutes = useAppConfig('usf')?.externalRoutes ?? [];\n return (\n \n \n \n );\n};\n\nLink.displayName = 'Link';\n\nexport default Link;","import React, { Fragment } from 'react';\n\nconst escapeShortCodes = (text: string) => {\n if (typeof text !== 'string') {\n return null;\n }\n const replaceA = (text ?? '').split('[!').join('[');\n const replaceB = replaceA.split('!/]').join('/]');\n const replaceC = replaceB.split('[/!').join('[/');\n return replaceC;\n //using split/join because for some reason replaceAll fails for backstop\n //tests but not for backstop storybook?\n //if anyone can tell me why, I'd appreciate it.\n // return (text ?? '').replaceAll('[!', '[').replaceAll('!/]', '/]')\n // .replaceAll('[/!', '[/');\n};\n\nconst nl2br = (string: string) => (string ?? '').split('\\n')\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) => {\n\n const formattedText = escapeShortCodes(text);\n if (newline === false) {\n return formattedText;\n }\n return nl2br(formattedText);\n};\n\ninterface OuterProps {\n text: string,\n nl2br?: Element,\n}\nconst Text = ({ text, nl2br }: OuterProps) => (\n \n {formatText(text, nl2br)}\n \n);\n\nText.displayName = 'Text';\n\nexport default Text;","import React, { lazy, Suspense } from 'react';\nimport TextButton, { Size as TextButtonSize } from '@ux/text-button';\nimport { RecursiveShortcodeProps } from './Shortcode';\nimport { useTheme, cssTheme } from '@ux/theme-utils';\nimport { useBreakpoints } from '@ux/responsive';\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\nconst TooltipShortcode = ({\n RecursiveShortcode,\n against,\n attributes,\n elements,\n}: RecursiveShortcodeProps) => {\n const {\n isMinLg,\n } = useBreakpoints();\n const {\n theme,\n } = useTheme();\n const eventToggle = isMinLg ? void 0 : 'onClick';\n const padding = cssTheme.gu2;\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\nTooltipShortcode.displayName = 'TooltipShortcode';\n\nexport default TooltipShortcode;\n","import React, { Suspense, lazy, ReactNode } from 'react';\nimport PendingShortcode from './PendingShortcode';\nimport { getAgainst } from 'presentation/utils/colorway';\nimport { Layout } from 'domain/constants/layout';\nimport { ShortcodeProps } from '.';\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';\nimport { Against } from 'domain/constants/colorway';\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 ShortcodeAttributesProps {\n use?: number,\n number?: number,\n RecursiveShortcode: (props: RecursiveShortcodeProps) => JSX.Element,\n analyticskey?: string,\n goto?: string,\n label?: ReactNode,\n prices?: Array<{\n gross: number,\n net: number,\n raw: number,\n tax: number,\n }>,\n inctax?: string,\n style?: string,\n rel?: string,\n newTab?: string,\n}\nexport interface RecursiveShortcodeProps {\n elements?: ShortcodeProps[],\n RecursiveShortcode?: (props: RecursiveShortcodeProps) => JSX.Element,\n type?: string,\n name?: string,\n layout?: Layout,\n against?: Against,\n attributes?: ShortcodeAttributesProps,\n nl2br?: boolean,\n rest?: {\n [key: string]: any,\n }\n [key: string]: any,\n}\n\nconst RecursiveShortcode = ({ elements, ...rest }: RecursiveShortcodeProps) => (\n <>\n {elements.map((element) => (\n \n ))}\n \n);\n\nexport interface ShortcodeOuterProps {\n against?: Against,\n code: RecursiveShortcodeProps,\n type?: string,\n name?: string,\n}\n\nconst Shortcode = ({ code, ...rest }: RecursiveShortcodeProps) => {\n let props = {\n ...rest,\n } as RecursiveShortcodeProps;\n if (typeof code === 'string') {\n props.code = code;\n } else {\n props = {\n ...props,\n ...code,\n };\n }\n\n props.against = getAgainst(props.against);\n props.RecursiveShortcode = RecursiveShortcode;\n props.attributes = props?.attributes ?? {} as ShortcodeAttributesProps;\n const Element = (props: any) => {\n const {\n code,\n type,\n name,\n } = props;\n if (typeof props.code === 'string') {\n return (\n \n );\n }\n if (props.type === 'text') {\n return (\n \n );\n }\n if (type === 'element') {\n switch (name) {\n case 'list':\n if (props?.attributes?.style === 'number') {\n return (\n \n );\n }\n return (\n \n );\n case 'li':\n if (props?.attributes?.style === 'glyph') {\n return (\n \n );\n }\n return (\n \n );\n case 'i':\n return (\n \n );\n case 'b':\n return (\n \n );\n case 'alt':\n return (\n \n );\n case 'sup':\n return (\n \n );\n case 'glyph':\n return (\n \n );\n case 'tel':\n return (\n \n );\n case 'link':\n return (\n \n );\n case 'productprice':\n return (\n \n );\n case 'tooltip':\n return (\n \n );\n case 'root':\n return (\n \n );\n default: return null;\n }\n }\n return null;\n };\n\n return (\n \n );\n};\n\nconst ShortcodeWrapper = (props: RecursiveShortcodeProps) => (\n \n )}\n >\n \n \n);\n\nShortcodeWrapper.displayName = 'Shortcode';\n\nexport default ShortcodeWrapper;\n","import Shortcode, { RecursiveShortcodeProps } from './Shortcode';\n\n//TODO: help.. please.\nexport type ShortcodeProps = RecursiveShortcodeProps;\n\nexport default Shortcode;\n","import React from 'react';\nimport * as r from 'ramda';\n\nexport default (BaseComponent: any) => r.ifElse(\n r.prop('visible'),\n (props) => ,\n (props) => (\n
\n \n
\n ),\n);\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ANIMATION_STATE_CLASSES = {\n animating: 'rah-animating',\n animatingUp: 'rah-animating--up',\n animatingDown: 'rah-animating--down',\n animatingToHeightZero: 'rah-animating--to-height-zero',\n animatingToHeightAuto: 'rah-animating--to-height-auto',\n animatingToHeightSpecific: 'rah-animating--to-height-specific',\n static: 'rah-static',\n staticHeightZero: 'rah-static--height-zero',\n staticHeightAuto: 'rah-static--height-auto',\n staticHeightSpecific: 'rah-static--height-specific'\n};\n\nvar PROPS_TO_OMIT = ['animateOpacity', 'animationStateClasses', 'applyInlineTransitions', 'children', 'contentClassName', 'delay', 'duration', 'easing', 'height', 'onAnimationEnd', 'onAnimationStart'];\n\nfunction omit(obj) {\n for (var _len = arguments.length, keys = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n\n if (!keys.length) {\n return obj;\n }\n\n var res = {};\n var objectKeys = Object.keys(obj);\n\n for (var i = 0; i < objectKeys.length; i++) {\n var key = objectKeys[i];\n\n if (keys.indexOf(key) === -1) {\n res[key] = obj[key];\n }\n }\n\n return res;\n}\n\n// Start animation helper using nested requestAnimationFrames\nfunction startAnimationHelper(callback) {\n var requestAnimationFrameIDs = [];\n\n requestAnimationFrameIDs[0] = requestAnimationFrame(function () {\n requestAnimationFrameIDs[1] = requestAnimationFrame(function () {\n callback();\n });\n });\n\n return requestAnimationFrameIDs;\n}\n\nfunction cancelAnimationFrames(requestAnimationFrameIDs) {\n requestAnimationFrameIDs.forEach(function (id) {\n return cancelAnimationFrame(id);\n });\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction isPercentage(height) {\n // Percentage height\n return typeof height === 'string' && height.search('%') === height.length - 1 && isNumber(height.substr(0, height.length - 1));\n}\n\nfunction runCallback(callback, params) {\n if (callback && typeof callback === 'function') {\n callback(params);\n }\n}\n\nvar AnimateHeight = function (_React$Component) {\n _inherits(AnimateHeight, _React$Component);\n\n function AnimateHeight(props) {\n _classCallCheck(this, AnimateHeight);\n\n var _this = _possibleConstructorReturn(this, (AnimateHeight.__proto__ || Object.getPrototypeOf(AnimateHeight)).call(this, props));\n\n _this.animationFrameIDs = [];\n\n var height = 'auto';\n var overflow = 'visible';\n\n if (isNumber(props.height)) {\n // If value is string \"0\" make sure we convert it to number 0\n height = props.height < 0 || props.height === '0' ? 0 : props.height;\n overflow = 'hidden';\n } else if (isPercentage(props.height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n height = props.height === '0%' ? 0 : props.height;\n overflow = 'hidden';\n }\n\n _this.animationStateClasses = _extends({}, ANIMATION_STATE_CLASSES, props.animationStateClasses);\n\n var animationStateClasses = _this.getStaticStateClasses(height);\n\n _this.state = {\n animationStateClasses: animationStateClasses,\n height: height,\n overflow: overflow,\n shouldUseTransitions: false\n };\n return _this;\n }\n\n _createClass(AnimateHeight, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var height = this.state.height;\n\n // Hide content if height is 0 (to prevent tabbing into it)\n // Check for contentElement is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n\n if (this.contentElement && this.contentElement.style) {\n this.hideContent(height);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _props = this.props,\n delay = _props.delay,\n duration = _props.duration,\n height = _props.height,\n onAnimationEnd = _props.onAnimationEnd,\n onAnimationStart = _props.onAnimationStart;\n\n // Check if 'height' prop has changed\n\n if (this.contentElement && height !== prevProps.height) {\n var _cx;\n\n // Remove display: none from the content div\n // if it was hidden to prevent tabbing into it\n this.showContent(prevState.height);\n\n // Cache content height\n this.contentElement.style.overflow = 'hidden';\n var contentHeight = this.contentElement.offsetHeight;\n this.contentElement.style.overflow = '';\n\n // set total animation time\n var totalDuration = duration + delay;\n\n var newHeight = null;\n var timeoutState = {\n height: null, // it will be always set to either 'auto' or specific number\n overflow: 'hidden'\n };\n var isCurrentHeightAuto = prevState.height === 'auto';\n\n if (isNumber(height)) {\n // If value is string \"0\" make sure we convert it to number 0\n newHeight = height < 0 || height === '0' ? 0 : height;\n timeoutState.height = newHeight;\n } else if (isPercentage(height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n newHeight = height === '0%' ? 0 : height;\n timeoutState.height = newHeight;\n } else {\n // If not, animate to content height\n // and then reset to auto\n newHeight = contentHeight; // TODO solve contentHeight = 0\n timeoutState.height = 'auto';\n timeoutState.overflow = null;\n }\n\n if (isCurrentHeightAuto) {\n // This is the height to be animated to\n timeoutState.height = newHeight;\n\n // If previous height was 'auto'\n // set starting height explicitly to be able to use transition\n newHeight = contentHeight;\n }\n\n // Animation classes\n var animationStateClasses = (0, _classnames2.default)((_cx = {}, _defineProperty(_cx, this.animationStateClasses.animating, true), _defineProperty(_cx, this.animationStateClasses.animatingUp, prevProps.height === 'auto' || height < prevProps.height), _defineProperty(_cx, this.animationStateClasses.animatingDown, height === 'auto' || height > prevProps.height), _defineProperty(_cx, this.animationStateClasses.animatingToHeightZero, timeoutState.height === 0), _defineProperty(_cx, this.animationStateClasses.animatingToHeightAuto, timeoutState.height === 'auto'), _defineProperty(_cx, this.animationStateClasses.animatingToHeightSpecific, timeoutState.height > 0), _cx));\n\n // Animation classes to be put after animation is complete\n var timeoutAnimationStateClasses = this.getStaticStateClasses(timeoutState.height);\n\n // Set starting height and animating classes\n // We are safe to call set state as it will not trigger infinite loop\n // because of the \"height !== prevProps.height\" check\n this.setState({ // eslint-disable-line react/no-did-update-set-state\n animationStateClasses: animationStateClasses,\n height: newHeight,\n overflow: 'hidden',\n // When animating from 'auto' we first need to set fixed height\n // that change should be animated\n shouldUseTransitions: !isCurrentHeightAuto\n });\n\n // Clear timeouts\n clearTimeout(this.timeoutID);\n clearTimeout(this.animationClassesTimeoutID);\n\n if (isCurrentHeightAuto) {\n // When animating from 'auto' we use a short timeout to start animation\n // after setting fixed height above\n timeoutState.shouldUseTransitions = true;\n\n cancelAnimationFrames(this.animationFrameIDs);\n this.animationFrameIDs = startAnimationHelper(function () {\n _this2.setState(timeoutState);\n\n // ANIMATION STARTS, run a callback if it exists\n runCallback(onAnimationStart, { newHeight: timeoutState.height });\n });\n\n // Set static classes and remove transitions when animation ends\n this.animationClassesTimeoutID = setTimeout(function () {\n _this2.setState({\n animationStateClasses: timeoutAnimationStateClasses,\n shouldUseTransitions: false\n });\n\n // ANIMATION ENDS\n // Hide content if height is 0 (to prevent tabbing into it)\n _this2.hideContent(timeoutState.height);\n // Run a callback if it exists\n runCallback(onAnimationEnd, { newHeight: timeoutState.height });\n }, totalDuration);\n } else {\n // ANIMATION STARTS, run a callback if it exists\n runCallback(onAnimationStart, { newHeight: newHeight });\n\n // Set end height, classes and remove transitions when animation is complete\n this.timeoutID = setTimeout(function () {\n timeoutState.animationStateClasses = timeoutAnimationStateClasses;\n timeoutState.shouldUseTransitions = false;\n\n _this2.setState(timeoutState);\n\n // ANIMATION ENDS\n // If height is auto, don't hide the content\n // (case when element is empty, therefore height is 0)\n if (height !== 'auto') {\n // Hide content if height is 0 (to prevent tabbing into it)\n _this2.hideContent(newHeight); // TODO solve newHeight = 0\n }\n // Run a callback if it exists\n runCallback(onAnimationEnd, { newHeight: newHeight });\n }, totalDuration);\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n cancelAnimationFrames(this.animationFrameIDs);\n\n clearTimeout(this.timeoutID);\n clearTimeout(this.animationClassesTimeoutID);\n\n this.timeoutID = null;\n this.animationClassesTimeoutID = null;\n this.animationStateClasses = null;\n }\n }, {\n key: 'showContent',\n value: function showContent(height) {\n if (height === 0) {\n this.contentElement.style.display = '';\n }\n }\n }, {\n key: 'hideContent',\n value: function hideContent(newHeight) {\n if (newHeight === 0) {\n this.contentElement.style.display = 'none';\n }\n }\n }, {\n key: 'getStaticStateClasses',\n value: function getStaticStateClasses(height) {\n var _cx2;\n\n return (0, _classnames2.default)((_cx2 = {}, _defineProperty(_cx2, this.animationStateClasses.static, true), _defineProperty(_cx2, this.animationStateClasses.staticHeightZero, height === 0), _defineProperty(_cx2, this.animationStateClasses.staticHeightSpecific, height > 0), _defineProperty(_cx2, this.animationStateClasses.staticHeightAuto, height === 'auto'), _cx2));\n }\n }, {\n key: 'render',\n value: function render() {\n var _cx3,\n _this3 = this;\n\n var _props2 = this.props,\n animateOpacity = _props2.animateOpacity,\n applyInlineTransitions = _props2.applyInlineTransitions,\n children = _props2.children,\n className = _props2.className,\n contentClassName = _props2.contentClassName,\n duration = _props2.duration,\n easing = _props2.easing,\n delay = _props2.delay,\n style = _props2.style;\n var _state = this.state,\n height = _state.height,\n overflow = _state.overflow,\n animationStateClasses = _state.animationStateClasses,\n shouldUseTransitions = _state.shouldUseTransitions;\n\n\n var componentStyle = _extends({}, style, {\n height: height,\n overflow: overflow || style.overflow\n });\n\n if (shouldUseTransitions && applyInlineTransitions) {\n componentStyle.transition = 'height ' + duration + 'ms ' + easing + ' ' + delay + 'ms';\n\n // Include transition passed through styles\n if (style.transition) {\n componentStyle.transition = style.transition + ', ' + componentStyle.transition;\n }\n\n // Add webkit vendor prefix still used by opera, blackberry...\n componentStyle.WebkitTransition = componentStyle.transition;\n }\n\n var contentStyle = {};\n\n if (animateOpacity) {\n contentStyle.transition = 'opacity ' + duration + 'ms ' + easing + ' ' + delay + 'ms';\n // Add webkit vendor prefix still used by opera, blackberry...\n contentStyle.WebkitTransition = contentStyle.transition;\n\n if (height === 0) {\n contentStyle.opacity = 0;\n }\n }\n\n var componentClasses = (0, _classnames2.default)((_cx3 = {}, _defineProperty(_cx3, animationStateClasses, true), _defineProperty(_cx3, className, className), _cx3));\n\n return _react2.default.createElement(\n 'div',\n _extends({}, omit.apply(undefined, [this.props].concat(PROPS_TO_OMIT)), {\n 'aria-hidden': height === 0,\n className: componentClasses,\n style: componentStyle\n }),\n _react2.default.createElement(\n 'div',\n {\n className: contentClassName,\n style: contentStyle,\n ref: function ref(el) {\n return _this3.contentElement = el;\n }\n },\n children\n )\n );\n }\n }]);\n\n return AnimateHeight;\n}(_react2.default.Component);\n\nvar heightPropType = function heightPropType(props, propName, componentName) {\n var value = props[propName];\n\n if (typeof value === 'number' && value >= 0 || isPercentage(value) || value === 'auto') {\n return null;\n }\n\n return new TypeError('value \"' + value + '\" of type \"' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '\" is invalid type for ' + propName + ' in ' + componentName + '. ' + 'It needs to be a positive number, string \"auto\" or percentage string (e.g. \"15%\").');\n};\n\nAnimateHeight.propTypes = {\n animateOpacity: _propTypes2.default.bool,\n animationStateClasses: _propTypes2.default.object,\n applyInlineTransitions: _propTypes2.default.bool,\n children: _propTypes2.default.any.isRequired,\n className: _propTypes2.default.string,\n contentClassName: _propTypes2.default.string,\n duration: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n easing: _propTypes2.default.string,\n height: heightPropType,\n onAnimationEnd: _propTypes2.default.func,\n onAnimationStart: _propTypes2.default.func,\n style: _propTypes2.default.object\n};\n\nAnimateHeight.defaultProps = {\n animateOpacity: false,\n animationStateClasses: ANIMATION_STATE_CLASSES,\n applyInlineTransitions: true,\n duration: 250,\n delay: 0,\n easing: 'ease',\n style: {}\n};\n\nexports.default = AnimateHeight;"],"sourceRoot":""}