{"version":3,"sources":["webpack:///./presentation/components/ribbons/elaborate/QuestionHeader.tsx","webpack:///./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:///./presentation/components/ribbons/elaborate/Questions.tsx","webpack:///./presentation/components/ribbons/elaborate/Elaborate.tsx","webpack:///./presentation/components/ribbons/elaborate/Elaborate.stylesheet.ts","webpack:///./presentation/components/ribbons/elaborate/index.ts","webpack:///./presentation/utils/ribbonPadding.ts","webpack:///./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/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:///./presentation/hocs/visibilitySet.tsx"],"names":["enhance","pureEnhance","withProps","ownerProps","icon","r","active","withBreakpointsHook","colorway","isMinLg","isFirst","duration","theme","spacing","useStyles","default","root","width","percentage","display","flexDirection","fontFamily","fontSize","textAlign","backgroundColor","borderWidth","outline","cursor","cssSides","Side","A","Y","gu2px","transition","title","color","getTitleColor","flexGrow","flexBasis","marginLeft","glyph","paddingBottom","styles","hBaseline","question","onClick","style","depth","Shortcode","code","against","size","height","overflow","animateHeight","flex","answer","animateOpacity","easing","isZero","selected","id","withHandlers","onChange","palette","borderTopStyle","borderTopWidth","borderTopColor","opacify","grey06","getBodyColor","modifier","Colorway","PRIMARY","primaryContrast","HIGHLIGHT","highlightContrast","defaultProps","withState","lifecycle","componentDidMount","questions","setSelected","this","props","defaultOpen","Question","key","i","q","hasTitle","isNotNilOrEmpty","hasBody","getMdColWidth","hocs","errorBoundary","visibilitySet","hooks","mdColWidth","isMinSm","isMinMd","header","marginBottom","body","layout","loading","text","items","name","Ribbon","type","xs","md","component","Questions","Elaborate","flush","shrinkLeading","shrinkTrailing","getPaddingSize","shrinkSide","isFlush","leading","Flush","LEADING","trailing","TRAILING","paddingTop","stylesheet","getBackgroundColor","ribbonPadding","X","WrappedComponent","ErrorBoundary","compose","componentDidCatch","setHasErrored","hooksA","pipe","mapProps","selector","useMemo","getRibbonAnalytics","analytics","useSelector","dispatch","useDispatch","actions","bindActionCreators","sendImpression","onImpression","ribbonName","ribbonType","hooksB","isFullyInViewport","stopWatcher","useEffect","mapPropsHoc","branch","Watch","deepLink","withRouter","location","hash","scrollWhenReady","animationComplete","setTimeout","scroller","scrollTo","delay","smooth","mapFit","fit","Fit","FULLSCREEN","minHeight","FILL","AUTO","isFinite","targetRef","useRef","duoLayout","activeFit","findResponsiveItem","getBreakpoints","padding","duoLayoutFlex","flexSize","duoRibbonWidth","position","inner","ribbon","PRIMARY_GRADIENT","backgroundImage","primary","primaryGradient","children","ref","withRibbonImpression","randomWidth","Math","floor","random","puree","lines","elements","RecursiveShortcode","rest","tertiary","fontWeight","fontStyle","getUsfConfig","wlSelectors","getAppConfig","mapStateToProps","connect","contentType","attributes","externalRoutes","to","goto","analyticskey","TextButtonSize","INHERIT","escapeShortCodes","nl2br","string","split","map","reduce","prev","cur","newline","isFalse","formatText","ReactTooltip","lazy","eventToggle","CallToAction","label","fallback","tagName","useDefaultStyles","content","maxWidth","Glyph","Sup","List","OrderedList","ListItem","TickListItem","ProductPrice","PhoneNumber","element","genericShortcodeHandler","shortcodeName","Component","String","getAgainst","Element","nuller","Text","Italic","Bold","Alt","Link","Tooltip","PendingShortcode","BaseComponent"],"mappings":"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","file":"pex-static/12/26.a7005bd2fbcd0d36eacf.chunk.js","sourcesContent":["import React from 'react';\nimport {\n withProps,\n} from '@team-griffin/rehook';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport { Heading04 } from '@ux/typography';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport Glyph from '@ux/glyphs';\nimport stylesheet, { Styles } from './QuestionHeader.stylesheet';\nimport * as r from 'ramda';\nimport { Theme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport pureEnhance from '@ux/pure-enhance';\n\ninterface OuterProps {\n theme: Theme,\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}\nexport interface InnerProps extends OuterProps, BreakpointProps {\n styles: Styles,\n icon: string,\n}\nexport const PureHeader = ({\n styles,\n theme,\n hBaseline,\n icon,\n question,\n onClick,\n colorway,\n}: InnerProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport const enhance = pureEnhance(\n 'Header', [\n withProps((ownerProps: OuterProps) => ({\n icon: r.ifElse(\n r.equals(true),\n r.always('chevronUp'),\n r.always('chevronDown'),\n )(ownerProps.active),\n })),\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n);\n\nexport default enhance(PureHeader);\n","import { useStyles } from '@team-griffin/stylr';\nimport {\n percentage,\n} from '@ux/style-utils';\nimport { gu2px } from '@ux/theme-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { getTitleColor } from 'presentation/utils/colorway';\nimport { InnerProps } from './QuestionHeader';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n title: CSSProperties,\n icon: CSSProperties,\n glyph: CSSProperties,\n}\n\nexport default ({\n colorway,\n isMinLg,\n isFirst,\n active,\n duration,\n theme,\n theme: {\n spacing,\n },\n}: InnerProps) => {\n return useStyles({\n default: {\n root: {\n width: percentage(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: percentage(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 {\n withProps,\n} from '@team-griffin/rehook';\nimport { BodyCopy01 } from '@ux/typography';\nimport AnimateHeight from 'react-animate-height';\nimport stylesheet, { Styles } from './QuestionBody.stylesheet';\nimport * as r from 'ramda';\n\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport pureEnhance from '@ux/pure-enhance';\nimport { Theme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\n\ninterface OuterProps {\n theme: Theme,\n duration: number,\n colorway: Colorway,\n answer: ShortcodeProps,\n active?: boolean,\n}\ninterface InnerProps extends OuterProps {\n styles: Styles,\n height: string|number,\n}\nexport const PureBody = ({\n styles,\n theme,\n answer,\n height,\n colorway,\n duration,\n}: InnerProps) => (\n
\n \n \n \n \n \n
\n);\n\nexport const enhance = pureEnhance(\n 'Body', [\n withProps((ownerProps: OuterProps) => ({\n height: r.ifElse(\n r.equals(true),\n r.always('auto'),\n r.always(0),\n )(ownerProps.active),\n })),\n withProps(stylesheet),\n ],\n);\n\nexport default enhance(PureBody);\n","import { useStyles } from '@team-griffin/stylr';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n animateHeight: CSSProperties,\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 {\n withProps,\n withHandlers,\n} from '@team-griffin/rehook';\nimport pureEnhance from '@ux/pure-enhance';\nimport Header from './QuestionHeader';\nimport Body from './QuestionBody';\nimport stylesheet, { Styles } from './Question.stylesheet';\nimport * as r from 'ramda';\nimport { Theme } from '@ux/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { ShortcodeProps } from 'presentation/components/Shortcode';\n\nconst isZero = r.equals(0);\n\ninterface OuterProps {\n selected: number,\n id: number,\n theme: Theme,\n hBaseline: number,\n colorway: Colorway,\n question: ShortcodeProps,\n answer: ShortcodeProps,\n duration: number,\n onChange: (evt: any) => void,\n}\nexport interface InnerProps extends OuterProps {\n styles: Styles,\n onClick: (event: React.MouseEvent) => void,\n active: boolean,\n isFirst: boolean,\n}\nexport const PureQuestion = ({\n styles,\n theme,\n colorway,\n hBaseline,\n active,\n question,\n answer,\n isFirst,\n onClick,\n duration,\n}: InnerProps) => (\n
\n \n \n
\n);\n\nexport const enhance = pureEnhance(\n 'Question', [\n withProps((ownerProps: OuterProps) => ({\n active: r.equals(ownerProps.selected, ownerProps.id),\n isFirst: isZero(ownerProps.id),\n })),\n withHandlers({\n onClick: ({\n onChange,\n id,\n active,\n }: {\n active: boolean,\n id: number,\n onChange: (evt: any) => void,\n }) => () => {\n if (active) {\n return onChange(null);\n }\n onChange(id);\n },\n }),\n withProps(stylesheet),\n ],\n);\n\nexport default enhance(PureQuestion);\n","import { useStyles } from '@team-griffin/stylr';\nimport { modifier, opacify } from '@ux/style-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { getBodyColor } from 'presentation/utils/colorway';\nimport { gu2px } from '@ux/theme-utils';\nimport { InnerProps } from './Question';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n}\n\nexport default ({\n colorway,\n isFirst,\n active,\n duration,\n theme,\n theme: {\n palette,\n spacing,\n },\n}: InnerProps) => {\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, { CSSProperties } from 'react';\nimport {\n withState,\n lifecycle,\n defaultProps,\n withProps,\n} from '@team-griffin/rehook';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, Theme } from '@ux/theme-utils';\nimport Question from './Question';\nimport PaddingBox from '@ux/padding-box';\nimport * as r from 'ramda';\nimport { useStyles } from '@team-griffin/stylr';\nimport { Colorway } from 'domain/constants/colorway';\nimport pureEnhance from '@ux/pure-enhance';\nimport { QuestionProps } from './Elaborate';\n\n\ninterface OuterProps {\n theme: Theme,\n colorway: Colorway,\n hBaseline: number,\n duration?: number,\n questions: QuestionProps[],\n}\ninterface DefaultProps extends OuterProps {\n duration: number,\n}\ninterface InnerProps extends DefaultProps {\n styles: {\n questions: CSSProperties,\n },\n selected: number,\n setSelected: (evt: any) => void,\n}\nconst stylesheet = ({\n theme: {\n spacing,\n },\n}: InnerProps) => useStyles({\n default: {\n questions: {\n ...cssSides('margin', Side.Y, r.negate(gu2px(2, spacing))),\n },\n },\n});\n\ndeclare const q: QuestionProps;\ndeclare const i: number;\nexport const PureQuestions = ({\n theme,\n styles,\n colorway,\n hBaseline,\n questions,\n selected,\n setSelected,\n duration,\n}: InnerProps) => (\n \n
\n \n \n \n
\n
\n);\n\nexport const enhance = pureEnhance(\n 'Questions', [\n defaultProps({\n duration: 300,\n }),\n withState('selected', 'setSelected', null),\n lifecycle({\n componentDidMount() {\n const {\n questions,\n setSelected,\n } = this.props;\n\n const defaultOpen = r.findIndex(r.propEq('defaultOpen', true), questions);\n\n if (defaultOpen > -1) {\n setSelected(defaultOpen);\n }\n },\n }),\n withProps(stylesheet),\n ]\n);\n\nexport default enhance(PureQuestions);\n","import React from 'react';\nimport {\n withProps, defaultProps,\n} from '@team-griffin/rehook';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withBreakpointsHook, BreakpointProps } from '@ux/responsive';\nimport {\n Container,\n Row,\n Column,\n} from '@ux/grid';\nimport { Heading02, SubHeading01 } from '@ux/typography';\nimport { isNotNilOrEmpty } from '@team-griffin/capra';\nimport PaddingBox from '@ux/padding-box';\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 Questions from './Questions';\nimport stylesheet, { Styles } from './Elaborate.stylesheet';\nimport * as r from 'ramda';\nimport { RibbonProps } from 'domain/constants/ribbons';\n\nexport type QuestionProps = {\n question: ShortcodeProps,\n answer: ShortcodeProps,\n};\ninterface OuterProps extends RibbonProps {\n items: QuestionProps[],\n text: {\n title: ShortcodeProps,\n body: ShortcodeProps,\n }\n}\ninterface DefaultProps extends OuterProps {\n hBaseline: number,\n}\ninterface MiddleProps extends DefaultProps, BreakpointProps {}\n\nexport interface InnerProps extends MiddleProps {\n styles: Styles,\n hasTitle: boolean,\n hasBody: boolean,\n mdColWidth: number,\n}\n\nconst hasTitle = r.pathSatisfies(isNotNilOrEmpty, [ 'text', 'title' ]);\nconst hasBody = r.pathSatisfies(isNotNilOrEmpty, [ 'text', 'body' ]);\nexport const getMdColWidth = r.ifElse(\n r.anyPass([\n hasTitle,\n hasBody,\n ]),\n r.always(8),\n r.always(12),\n);\n\nexport const PureElaborate = ({\n id,\n styles,\n theme,\n layout,\n colorway,\n loading,\n hBaseline,\n text,\n items,\n name,\n hasTitle,\n hasBody,\n mdColWidth,\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\nexport const enhance = pureEnhance(\n 'Elaborate', {\n hocs: [\n errorBoundary,\n visibilitySet,\n ],\n hooks: [\n defaultProps({\n hBaseline: 1,\n }),\n withBreakpointsHook,\n withProps((ownerProps: MiddleProps) => ({\n hasTitle: hasTitle(ownerProps),\n hasBody: hasBody(ownerProps),\n mdColWidth: getMdColWidth(ownerProps),\n })),\n withProps(stylesheet),\n ],\n }\n);\n\nexport default enhance(PureElaborate);\n","import { useStyles } from '@team-griffin/stylr';\nimport { getTitleColor, getBodyColor } from 'presentation/utils/colorway';\nimport { gu2px } from '@ux/theme-utils';\nimport { InnerProps } from './Elaborate';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n header: CSSProperties,\n title: CSSProperties,\n body: CSSProperties,\n}\n\nexport default ({\n colorway,\n theme,\n theme: {\n spacing,\n },\n isMinSm,\n isMinMd,\n}: InnerProps) => {\n return useStyles({\n default: {\n header: {\n marginBottom: gu2px(1, spacing),\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: gu2px(2, spacing),\n },\n },\n\n isMinMd: {\n header: {\n marginBottom: 0,\n },\n },\n }, [\n { isMinSm },\n { isMinMd },\n ]);\n};\n","import Elaborate from './Elaborate';\n\nexport default Elaborate;\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, { CSSProperties } from 'react';\nimport {\n compose,\n lifecycle,\n withState,\n withProps,\n} 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 {\n getBackgroundColor,\n getTitleColor,\n} from 'presentation/utils/colorway';\nimport { gu2px, Theme } 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 } from '@ux/responsive';\ninterface OuterProps extends BreakpointProps {\n theme: Theme,\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 = ({\n theme,\n colorway,\n isMinSm,\n isMinMd,\n isMinLg,\n layout,\n flush,\n}: InnerProps) => {\n const {\n spacing,\n } = theme;\n\n return useStyles({\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 },\n { isMinSm },\n { 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 );\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","import { percentage } from '@ux/style-utils';\n\nexport 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: percentage(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 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","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"],"sourceRoot":""}