{"version":3,"sources":["webpack:///./presentation/components/ribbons/pillars/Pillar.tsx","webpack:///./presentation/components/ribbons/pillars/Pillar.stylesheet.ts","webpack:///./presentation/components/ribbons/pillars/Pillars.tsx","webpack:///./presentation/components/ribbons/pillars/Pillars.stylesheet.ts","webpack:///./presentation/components/ribbons/pillars/index.ts","webpack:///./presentation/utils/ribbonPadding.ts","webpack:///../node_modules/@ux/text-button/dist/es/text-button.js","webpack:///./presentation/hocs/errorBoundary.tsx","webpack:///../node_modules/@ux/typography/dist/es/typography.js","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","webpack:///./domain/constants/alignment.ts","webpack:///./presentation/hocs/withLanguage.ts","webpack:///./crosscutting/ramda.ts","webpack:///./presentation/utils/urlLanguageParse.ts","webpack:///./presentation/utils/createImageAlt.ts","webpack:///./presentation/utils/responsiveColumns.ts","webpack:///../node_modules/@ux/illustrations/dist/es/illustrations.js","webpack:///../node_modules/ramda/es/zipWith.js"],"names":["enhance","pureEnhance","hocs","withLanguage","hooks","defaultProps","preserveDimension","withProps","ownerProps","hasIllustration","r","isNotNilOrEmpty","hasImageUrl","hasImage","hasTitle","hasBody","theme","colorway","alignment","isMinSm","spacing","curvature","useStyles","default","root","textAlign","marginBottom","gu2px","title","color","getTitleColor","imageContainer","display","justifyContent","position","width","padding","overflow","illustration","imageBuffer","paddingTop","imageInner","top","bottom","left","height","border","image","transform","body","getBodyColor","hasAnyText","modifier","Alignment","CENTER","Curvature","WEAK","borderRadius","STRONG","styles","hBaseline","imageUrl","currentLanguage","style","size","icon","loading","src","urlLanguageParse","alt","createImageAlt","depth","Shortcode","code","against","errorBoundary","visibilitySet","layout","columns","withBreakpointsHook","bootstrapResponsiveColumns","justify","Justify","FLEX_START","container","id","pillars","name","Ribbon","type","key","i","xs","sm","lg","Pillar","pillar","Pillars","isMinLg","flush","shrinkLeading","shrinkTrailing","getPaddingSize","shrinkSide","isFlush","leading","Flush","LEADING","trailing","TRAILING","paddingBottom","Size","Against","ContentType","_defineProperty","obj","value","Object","defineProperty","enumerable","configurable","writable","disabled","block","caps","MD","contentType","DEFAULT","_ref","_useStyles","hover","active","palette","typography","fill","LIGHT","secondary","NEUTRAL","DARK","tertiary","PRIMARY","primaryContrast","PRIMARY_FADED","HIGHLIGHT","highlightContrast","HIGHLIGHT_FADED","highlight","assign","A","fontFamily","content","lineHeight","backgroundColor","outline","cursor","textDecoration","transition","inner","opacity","borderBottomStyle","textTransform","SM","fontSize","LG","INHERIT","PHONE_NUMBER","borderBottomWidth","TextButton","_a","children","domProps","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","length","__rest","createElement","stylesheet","isMinMd","getBackgroundColor","ribbonPadding","cssSides","Side","X","WrappedComponent","ErrorBoundary","props","compose","withState","lifecycle","componentDidCatch","this","setHasErrored","mergeStyles","createHeading","component","headingSize","Number","concat","Y","fontWeight","Heading01","Heading02","Heading03","Heading04","Heading05","Heading06","stylesheet$1","_ref$theme","gu","marginTop","SubHeading01","SubHeading02","stylesheet$2","PreHeading01","PreHeading02","BodyCopy01","hooksA","pipe","mapProps","selector","useMemo","getRibbonAnalytics","analytics","useSelector","dispatch","useDispatch","actions","bindActionCreators","sendImpression","withHandlers","onImpression","ribbonName","ribbonType","hooksB","isFullyInViewport","stopWatcher","useEffect","mapPropsHoc","branch","Watch","deepLink","withRouter","componentDidMount","location","hash","scrollWhenReady","animationComplete","setTimeout","scroller","scrollTo","duration","delay","smooth","mapFit","fit","Fit","FULLSCREEN","minHeight","FILL","flex","flexBasis","AUTO","isFinite","targetRef","useRef","duoLayout","activeFit","findResponsiveItem","getBreakpoints","duoLayoutFlex","flexSize","percentage","duoRibbonWidth","flexDirection","ribbon","Colorway","PRIMARY_GRADIENT","backgroundImage","primary","primaryGradient","ref","withRibbonImpression","randomWidth","Math","floor","random","puree","lines","elements","RecursiveShortcode","rest","fontStyle","getUsfConfig","wlSelectors","getAppConfig","mapStateToProps","connect","attributes","externalRoutes","to","goto","analyticskey","TextButtonSize","escapeShortCodes","nl2br","string","split","map","reduce","prev","cur","text","newline","isFalse","formatText","ReactTooltip","lazy","eventToggle","CallToAction","label","fallback","tagName","useDefaultStyles","maxWidth","Glyph","Sup","List","OrderedList","ListItem","TickListItem","ProductPrice","PhoneNumber","element","genericShortcodeHandler","shortcodeName","Component","String","getAgainst","Element","nuller","Text","Italic","Bold","Alt","Link","Tooltip","glyph","PendingShortcode","BaseComponent","state","getCurrentLanguage","isNotEmpty","isNotNil","mapIndexed","rA","arr","fn","url","language","parsedLanguage","toUpperCase","join","replace","getImageName","str","match","formatName","responsiveColumns","defaultColumns","desiredColumns","a","b","createPaintbrushUrl$1","iconSet","Illustration","remote","importance","zipWith","rv","idx","len","min"],"mappings":"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","file":"pex-static/12/37.c0d9d412cf8ded6d3a6c.chunk.js","sourcesContent":["import React from 'react';\nimport {\n withProps,\n defaultProps,\n} from '@team-griffin/rehook';\nimport { Heading04, BodyCopy01 } from '@ux/typography';\nimport PaddingBox from '@ux/padding-box';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport Illustration from '@ux/illustrations';\nimport { gu2px, Theme } from '@ux/theme-utils';\nimport { isNotNilOrEmpty } from 'crosscutting/ramda';\nimport stylesheet, { Styles } from './Pillar.stylesheet';\nimport * as r from 'ramda';\nimport createImageAlt from 'presentation/utils/createImageAlt';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport { BreakpointProps } from '@ux/responsive';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Alignment } from 'core/ribbons/primitives';\nimport pureEnhance from '@ux/pure-enhance';\n\ninterface OuterProps {\n theme: Theme,\n hBaseline?: number,\n preserveDimension?: string,\n colorway: Colorway,\n body?: ShortcodeProps,\n title?: ShortcodeProps,\n illustration?: string,\n imageUrl?: string,\n alignment: Alignment,\n}\ninterface DefaultProps extends OuterProps {\n preserveDimension: string,\n}\nexport interface InnerProps extends DefaultProps, BreakpointProps {\n styles: Styles,\n hasIllustration: boolean,\n hasImageUrl: boolean,\n hasImage: boolean,\n hasTitle: boolean,\n hasBody: boolean,\n currentLanguage: string,\n}\n\nexport const PurePillar = ({\n styles,\n theme,\n hBaseline,\n illustration,\n imageUrl,\n title,\n body,\n colorway,\n hasImage,\n hasImageUrl,\n currentLanguage,\n hasIllustration,\n hasTitle,\n hasBody,\n}: InnerProps) => (\n \n \n
\n \n \n \n \n
\n
\n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport const enhance = pureEnhance(\n 'Pillar', {\n hocs: [\n withLanguage,\n ],\n hooks: [\n defaultProps({\n preserveDimension: 'width',\n }),\n withProps((ownerProps: DefaultProps) => ({\n hasIllustration: r.propSatisfies(\n isNotNilOrEmpty, 'illustration', ownerProps),\n hasImageUrl: r.propSatisfies(isNotNilOrEmpty, 'imageUrl', ownerProps),\n hasImage: r.either(\n r.propSatisfies(isNotNilOrEmpty, 'illustration'),\n r.propSatisfies(isNotNilOrEmpty, 'imageUrl'),\n )(ownerProps),\n hasTitle: r.propSatisfies(isNotNilOrEmpty, 'title', ownerProps),\n hasBody: r.propSatisfies(isNotNilOrEmpty, 'body', ownerProps),\n })),\n withProps(stylesheet),\n ],\n },\n);\n\nexport default enhance(PurePillar);\n","import { useStyles } from '@team-griffin/stylr';\nimport { modifier } from '@ux/style-utils';\nimport { gu2px, Curvature } from '@ux/theme-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport { getBodyColor, getTitleColor } from 'presentation/utils/colorway';\nimport { InnerProps } from './Pillar';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n title: CSSProperties,\n imageContainer: CSSProperties,\n illustration: CSSProperties,\n imageBuffer: CSSProperties,\n imageInner: CSSProperties,\n image: CSSProperties,\n body: CSSProperties,\n}\nexport default ({\n theme,\n colorway,\n alignment,\n isMinSm,\n preserveDimension,\n hasTitle,\n hasBody,\n}: InnerProps) => {\n const {\n spacing,\n } = theme;\n\n const {\n curvature,\n } = theme;\n\n return useStyles({\n default: {\n root: {\n textAlign: 'left',\n marginBottom: gu2px(1, spacing),\n },\n title: {\n color: getTitleColor(theme, colorway),\n },\n imageContainer: {\n display: 'flex',\n justifyContent: 'flex-start',\n position: 'relative',\n width: '100%',\n padding: 0,\n overflow: 'hidden',\n },\n // fixed 1:1 size is illustration is provided\n illustration: {\n width: gu2px(16, spacing),\n },\n // 16:9 if imageSrc is provided\n imageBuffer: {\n paddingTop: '56.25%',\n },\n imageInner: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: 0,\n overflow: 'hidden',\n display: 'flex',\n },\n image: {\n position: 'relative',\n top: '50%',\n transform: 'translateY(-50%)',\n width: '100%',\n height: 'auto',\n },\n body: {\n color: getBodyColor(theme, colorway),\n },\n },\n\n isMinSm: {\n root: {\n marginBottom: gu2px(2, spacing),\n },\n },\n\n hasAnyText: {\n imageContainer: {\n marginBottom: gu2px(3, spacing),\n },\n },\n\n [modifier('preserveDimension', 'height')]: {\n image: {\n height: '100%',\n width: 'auto',\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n root: {\n textAlign: 'center',\n },\n imageInner: {\n justifyContent: 'center',\n },\n imageContainer: {\n justifyContent: 'center',\n },\n },\n\n [modifier('curvature', Curvature.WEAK)]: {\n imageInner: {\n borderRadius: 3,\n },\n },\n\n [modifier('curvature', Curvature.STRONG)]: {\n imageInner: {\n borderRadius: 8,\n },\n },\n }, [\n { isMinSm },\n { curvature },\n { alignment },\n { preserveDimension },\n { hasAnyText: hasTitle || hasBody },\n ]);\n};\n","import React from 'react';\nimport {\n withProps,\n defaultProps,\n} from '@team-griffin/rehook';\nimport Ribbon from 'components/ribbons/Ribbon';\nimport Pillar from './Pillar';\nimport { Container, Row, Column, Justify } from '@ux/grid';\nimport { BreakpointProps, withBreakpointsHook } from '@ux/responsive';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport { Alignment } from 'domain/constants/alignment';\nimport { bootstrapResponsiveColumns } from '../../../utils/responsiveColumns';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport stylesheet, { Styles } from './Pillars.stylesheet';\nimport * as r from 'ramda';\nimport { RibbonProps } from 'domain/constants/ribbons';\nimport { ResponsiveSet } from 'core/ribbons/primitives';\nimport pureEnhance from '@ux/pure-enhance';\nimport { ShortcodeProps } from 'presentation/components/Shortcode';\n\ntype PillarProps = {\n illustration?: string,\n imageUrl?: string,\n title?: ShortcodeProps,\n body?:ShortcodeProps,\n preserveDimension?: string,\n};\ninterface OuterProps extends RibbonProps {\n pillars: PillarProps[],\n}\n\ninterface DefaultProps extends OuterProps {\n hBaseline: number,\n}\n\nexport interface InnerProps extends DefaultProps, BreakpointProps {\n styles: Styles,\n columns: ResponsiveSet,\n justify: Justify,\n}\n\ndeclare const i: number;\ndeclare const pillar: PillarProps;\n\nexport const PurePillars = ({\n id,\n columns,\n hBaseline,\n theme,\n layout,\n pillars,\n colorway,\n justify,\n loading,\n name,\n styles,\n}: InnerProps) => (\n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n);\n\nexport const enhance = pureEnhance(\n 'Pillars', {\n hocs: [\n errorBoundary,\n visibilitySet,\n ],\n hooks: [\n defaultProps({\n hBaseline: 3,\n layout: {\n columns: null,\n },\n }),\n withBreakpointsHook,\n withProps((ownerProps: DefaultProps) => ({\n columns: bootstrapResponsiveColumns([ 1, 2, 4 ], ownerProps.layout.columns),\n justify: r.ifElse(\n r.pathEq([ 'layout', 'alignment' ], Alignment.CENTER),\n r.always(Justify.CENTER),\n r.always(Justify.FLEX_START),\n )(ownerProps),\n })),\n withProps(stylesheet),\n ],\n },\n\n\n);\n\nexport default enhance(PurePillars);\n","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px } from '@ux/theme-utils';\nimport * as r from 'ramda';\nimport { InnerProps } from './Pillars';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n container: CSSProperties,\n}\n\nexport default ({\n theme,\n isMinSm,\n}: InnerProps) => {\n const {\n spacing,\n } = theme;\n\n return useStyles({\n default: {\n container: {\n marginBottom: r.negate(gu2px(1, spacing)),\n },\n },\n\n isMinSm: {\n container: {\n marginBottom: r.negate(gu2px(2, spacing)),\n },\n },\n }, [\n { isMinSm },\n ]);\n};","import Pillars from './Pillars';\n\nexport default Pillars;\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 {\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 { 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 { 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","export enum Alignment {\n STARTING = 'STARTING',\n CENTER = 'CENTER',\n}\n\nexport default null;\n","import {\n compose,\n} from 'recompose';\nimport { connect } from 'react-redux';\nimport { getCurrentLanguage } from 'domain/selectors/ribbons';\n\nexport default (BaseComponent: any) => {\n return compose(\n connect((state) => {\n return {\n currentLanguage: getCurrentLanguage(state),\n };\n }),\n )(BaseComponent);\n};\n","import * as rA from 'ramda-adjunct';\nimport * as r from 'ramda';\nimport {\n curry2,\n isNotNilOrEmpty,\n} from '@team-griffin/capra';\n\nconst {\n isNotEmpty,\n isNotNil,\n mapIndexed,\n} = rA;\n\nexport {\n curry2,\n isNotNilOrEmpty,\n isNotEmpty,\n isNotNil,\n mapIndexed,\n};\n\nexport const headOr = r.curryN(2, (fallback: any, arr: any[]) => r.pipe(\n r.defaultTo([]),\n r.head,\n r.defaultTo(fallback),\n)(arr));\n\nexport const getFirstKey = r.pipe(\n r.keys,\n r.head,\n) as (data: any)=>string;\n\nexport const getFirstValue = r.pipe(\n //@ts-ignore\n r.values,\n r.head,\n);\n\nexport const mapKeys = r.curryN(2, (fn: any, obj: any) => r.pipe(\n r.defaultTo({}),\n r.mapObjIndexed(\n r.converge(\n r.unapply(r.identity),\n [\n r.pipe(\n r.nthArg(1),\n fn,\n ),\n r.identity,\n ]\n ),\n ),\n r.values,\n r.fromPairs,\n)(obj));\n","export default (url: string, language: string) => {\n if (url && url.length && language) {\n let parsedLanguage;\n if (language.split('-').length === 2) {\n parsedLanguage = [\n language.split('-')[0],\n language.split('-')[1].toUpperCase(),\n ].join('-');\n } else {\n parsedLanguage = language;\n }\n return url.replace('{{language}}', parsedLanguage);\n }\n return url;\n};","/*\n createImageAlt({\n illustration: ?String,\n imageUrl: String,\n });\n\n Returns a relevant alt tag text from the URL path\n*/\n\nimport { isNotNilOrEmpty } from '@team-griffin/capra';\nimport * as r from 'ramda';\n\nconst hasImage = r.propSatisfies(isNotNilOrEmpty, 'imageUrl');\n\n/*\n getImageName\n From a URL like https://img1.wsimg.com/cdn/Image/All/Website/2/en-GB/ad586f1e-81a0-4a9d-a675-e266e25e965f/Christian_Jaroljmek.jpg\n return the text between the final slash and dot (Christian_Jaroljmek)\n\n If no regex match, return the string as is (this will capture illustrations)\n*/\nconst getImageName = (str: string) => {\n if (typeof str !== 'string') {\n return '';\n }\n\n const image = str.match(/\\/([^/]+?)\\.[a-zA-Z0-9]+$/);\n\n if (image && image[1]) {\n return image[1];\n }\n\n return str;\n};\n\n/*\n formatName\n Replace any underscores and hyphens with whitespace\n*/\nconst formatName = (str: string) => str.replace(/[-_]/g, ' ');\n\n// eslint-disable-next-line no-underscore-dangle\nexport const __test__ = {\n getImageName,\n formatName,\n};\n\nexport default r.ifElse(\n hasImage,\n r.pipe(\n r.prop('imageUrl'),\n getImageName,\n formatName,\n ),\n r.always(''),\n);","import * as r from 'ramda';\nimport { ResponsiveSet } from 'core/ribbons/primitives';\n\nconst responsiveColumns = (\n defaultColumns: ResponsiveSet,\n desiredColumns: ResponsiveSet\n) => r.pipe(\n r.defaultTo([ null, null, null ]),\n r.zipWith((a, b) => {\n if (b == null) {\n return a;\n }\n return b;\n }, defaultColumns),\n)(desiredColumns) as ResponsiveSet;\n\nexport const bootstrapResponsiveColumns = r.pipe(\n responsiveColumns,\n r.map(r.divide(12)),\n);\n\nexport default responsiveColumns;\n","import React from 'react';\nimport { defaultProps, withProps } from '@team-griffin/rehook';\nimport pureEnhance from '@ux/pure-enhance';\nimport { useStyles } from '@team-griffin/stylr';\nimport { percentage } from '@ux/style-utils';\nimport { gu2px } from '@ux/theme-utils';\nimport { when, isNil, pipe, always, ifElse, test, curryN, prop } from 'ramda';\nimport { stringify } from 'qs';\n\nvar size = function size(ownerProps) {\n return when(isNil, pipe(always(ownerProps.icon), ifElse(test(/^banner/), always(gu2px(8, ownerProps.theme.spacing)), always(gu2px(2, ownerProps.theme.spacing)))))(ownerProps.size);\n};\n\nvar stylesheet = (function (ownerProps) {\n return useStyles({\n default: {\n root: {\n maxWidth: percentage(100),\n height: size(ownerProps),\n width: size(ownerProps),\n position: 'relative',\n display: 'inline-block'\n },\n remote: {\n position: 'absolute',\n width: percentage(100),\n height: percentage(100),\n left: 0,\n top: 0\n }\n }\n }, []);\n});\n\nvar baseUrl = 'https://paintbrush.heg-cp.com';\n\nvar createPaintbrushUrl = function createPaintbrushUrl(icon, theme) {\n return \"\".concat(baseUrl, \"/illustrations/\").concat(icon, \".svg?\").concat(stringify({\n palette: prop('illustrations')(theme.palette),\n iconSet: theme.iconSet\n }));\n};\n\nvar createPaintbrushUrl$1 = curryN(2, createPaintbrushUrl);\n\nvar PureIllustration = function PureIllustration(_ref) {\n var styles = _ref.styles,\n icon = _ref.icon,\n theme = _ref.theme,\n alt = _ref.alt;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: styles.root\n }, /*#__PURE__*/React.createElement(\"img\", {\n src: createPaintbrushUrl$1(icon, theme),\n alt: alt,\n style: styles.remote // @ts-ignore\n ,\n importance: \"low\",\n loading: \"lazy\"\n }));\n};\n\nvar enhance = pureEnhance('Illustration', {\n hooks: [defaultProps({}), withProps(stylesheet)]\n});\nvar Illustration = enhance(PureIllustration); // eslint-disable-next-line no-underscore-dangle\n\nexport default Illustration;\nexport { Illustration, createPaintbrushUrl$1 as createPaintbrushUrl };\n","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\n_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zipWith;"],"sourceRoot":""}