{"version":3,"sources":["webpack:///../node_modules/@ux/type-size/dist/es/type-size.js","webpack:///../node_modules/@ux/px2em/dist/es/px2em.js","webpack:///../node_modules/@ux/px2em/dist/es/px2em.production.js","webpack:///../node_modules/px2em-sync/lib/index.js","webpack:///../node_modules/px2em-sync/lib/px2emSync.js","webpack:///../node_modules/react-scroll/modules/mixins/scroller.js","webpack:///../node_modules/react-scroll/modules/mixins/utils.js","webpack:///../node_modules/react-scroll/modules/mixins/scroll-link.js","webpack:///../node_modules/react-scroll/modules/mixins/scroll-spy.js","webpack:///../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","webpack:///../node_modules/react-scroll/modules/mixins/scroll-events.js","webpack:///../node_modules/ramda/es/cond.js","webpack:///../node_modules/ramda/es/T.js","webpack:///./presentation/hooks/withUrlComponent.ts","webpack:///../node_modules/react-scroll/modules/mixins/animate-scroll.js","webpack:///../node_modules/react-scroll/modules/mixins/scroll-hash.js","webpack:///../node_modules/react-scroll/modules/mixins/scroll-element.js","webpack:///../node_modules/ulid/dist/index.esm.js","webpack:///src/presentation/components/ribbons/billboard/CornerEmbellishments.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/CornerEmbellishments.tsx","webpack:///./presentation/components/ribbons/billboard/Body.tsx","webpack:///src/presentation/components/ribbons/billboard/Body.stylesheet.ts","webpack:///src/presentation/components/ribbons/billboard/Scroll.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Scroll.tsx","webpack:///../node_modules/ramda/es/pick.js","webpack:///./presentation/components/ribbons/billboard/styles.ts","webpack:///./presentation/components/ribbons/billboard/layouts/Generic.stylesheet.ts","webpack:///./presentation/utils/getBreakpoints.ts","webpack:///./presentation/components/ribbons/billboard/layouts/Generic.tsx","webpack:///./presentation/components/ribbons/billboard/layouts/Duo.tsx","webpack:///src/presentation/components/ribbons/billboard/layouts/Duo.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/constants.ts","webpack:///./presentation/components/ribbons/billboard/Tile.tsx","webpack:///src/presentation/components/ribbons/billboard/Tile.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Tiles.tsx","webpack:///src/presentation/components/ribbons/billboard/Tiles.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/layouts/WithTiles.tsx","webpack:///src/presentation/components/ribbons/billboard/layouts/WithTiles.stylesheet.ts","webpack:///./presentation/components/ribbons/billboard/Billboard.tsx","webpack:///./presentation/components/ribbons/billboard/index.ts","webpack:///../node_modules/react-scroll/modules/index.js","webpack:///../node_modules/react-scroll/modules/components/Link.js","webpack:///../node_modules/lodash.throttle/index.js","webpack:///../node_modules/react-scroll/modules/mixins/smooth.js","webpack:///../node_modules/react-scroll/modules/mixins/cancel-events.js","webpack:///../node_modules/react-scroll/modules/components/Button.js","webpack:///../node_modules/react-scroll/modules/components/Element.js","webpack:///../node_modules/react-scroll/modules/mixins/Helpers.js"],"names":["_SizeMap","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","SMALL","MEDIUM","LARGE","_SizeMap$1","_SizeMap$2","_SizeMap$3","_SizeMap$4","_LineHeightMap","_SizeMap$5","_SizeMap$6","_SizeMap$7","content","fontSize","lineHeight","footnote","smallprint","SizeMap$1","headingXxl","theme","size","typography","sizing","SizeMap$2","headingXl","SizeMap$3","LineHeightMap","headingL","height","SizeMap$4","LineHeightMap$1","headingM","SizeMap$5","LineHeightMap$2","headingS","SizeMap$6","LineHeightMap$3","headingXs","SizeMap$7","LineHeightMap$4","headingXxs","module","exports","px2em","m","format","base","_px2emSync2","__esModule","default","_interopRequireDefault","_extends","assign","target","i","arguments","length","source","prototype","hasOwnProperty","call","px","options","TypeError","_base$format$options","em","Math","round","_utils2","_animateScroll2","_scrollEvents2","__mapped","__activeLink","unmount","register","name","element","unregister","get","document","getElementById","getElementsByName","getElementsByClassName","setActiveLink","link","getActiveLink","scrollTo","to","props","this","containerId","absolute","container","containerElement","nodeType","horizontal","scrollOffset","offset","smooth","registered","window","scrollTop","animateTopScroll","console","warn","getElementOffsetInfoUntil","predicate","offsetTop","currentOffsetParent","offsetParent","updateHash","hash","historyUpdate","hashVal","indexOf","substring","hashToUpdate","curLoc","location","urlToPush","pathname","search","history","pushState","state","replaceState","getHash","replace","filterElementInContainer","contains","compareDocumentPosition","c","t","getBoundingClientRect","left","scrollX","pageXOffset","getComputedStyle","position","offsetLeft","top","scrollY","pageYOffset","isPositioned","_getElementOffsetInfo","e","Error","isDocument","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_react2","_scrollSpy2","_scroller2","_propTypes2","_scrollHash2","protoTypes","string","isRequired","object","activeClass","spy","bool","oneOfType","number","delay","isDynamic","onClick","func","duration","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","saveHashHistory","spyThrottle","Component","customScroller","scroller","Link","_React$PureComponent","instance","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","_initialiseProps","active","subClass","superClass","create","constructor","setPrototypeOf","_inherits","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addSpyHandler","spyHandler","setState","stateHandler","className","trim","prop","handleClick","createElement","PureComponent","_this2","event","stopPropagation","preventDefault","x","y","isInitialized","isInside","isOutside","elemLeftBound","elemRightBound","containerLeft","cords","width","offsetX","floor","elemTopBound","elemBottomBound","containerTop","_cords","offsetY","activeLink","_props$saveHashHistor","undefined","changeHash","_props$saveHashHistor2","_saveHashHistory","propTypes","defaultProps","_lodash2","_passiveEventListeners","scrollSpy","spyCallbacks","spySetState","scrollSpyContainers","throttle","eventHandler","throttleAmount","eventThrottler","scrollHandler","push","addPassiveEventListener","currentPositionX","supportPageOffset","isCSS1Compat","compatMode","documentElement","scrollLeft","body","currentPositionY","forEach","addStateHandler","handler","updateStates","s","splice","removeEventListener","update","eventName","listener","supportsPassiveOption","opts","addEventListener","passive","removePassiveEventListener","Events","scrollEvent","evtName","callback","remove","_curry1","pairs","arity","reduce","max","map","pair","_arity","idx","apply","withUrlComponent","withProps","r","isInternalUrl","url","NavLink","isHashUrl","href","_smooth2","_cancelEvents2","getAnimationType","defaultEasing","requestAnimationFrameHelper","requestAnimationFrame","webkitRequestAnimationFrame","currentWindowProperties","setTimeout","Date","getTime","makeData","currentPosition","startPosition","targetPosition","progress","cancel","start","delta","percent","delayTimeout","data","animateScroll","easing","timestamp","ceil","easedAnimate","bind","setContainer","clearTimeout","subscribe","functionWrapper","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","html","clientWidth","scrollContainerWidth","scrollHeight","offsetHeight","clientHeight","scrollContainerHeight","toPosition","scrollMore","scrollHash","mountFlag","initialized","containers","handleHashChange","initStateFromHash","isInit","Element","_React$Component","childBindings","domNode","registerElems","prevProps","parentBindings","id","createError","message","err","ENCODING","ENCODING_LEN","TIME_MAX","pow","randomChar","prng","rand","charAt","encodeTime","now","len","Number","isInteger","mod","str","encodeRandom","detectPrng","allowInsecure","root","browserCrypto","crypto","msCrypto","buffer","Uint8Array","getRandomValues","nodeCrypto","randomBytes","readUInt8","error","random","ulid","currPrng","seedTime","factory","cornerToPosition","gu2CornerSize","gu","gu2px","spacing","generateCornerImages","isMinMd","embellishments","cornerEmbellishments","cornerSize","filteredEmbellishments","embellishment","image","urlLanguageParse","currentLanguage","repeat","cornerArrayToCssProperty","cornerImages","joinedPropArray","PureCornerEmbellishments","styles","breakpoints","useBreakpoints","useTheme","useStyles","pointerEvents","bottom","right","longhand","useStylesheet","style","displayName","withLanguage","PureBody","hBaseline","text","additionalText","footerText","ctas","colorway","layout","ribbonId","isMinSm","precursor","title","hasBodyText","isNilOrEmpty","hasCta","hasPrecursor","hasTitle","hasFooterText","alignment","findResponsiveItem","Alignment","display","flexDirection","marginTop","overflow","color","getBodyColor","opacity","cssSides","Side","cta","marginBottom","modifier","textAlign","justifyContent","classNames","subtitle","getClassNames","depth","Shortcode","against","code","component","CallToAction","ButtonSize","LG","index","side","X","PureBillboardScroll","onScrollClick","cx","type","kind","Kind","TERTIARY","glyph","alt","_curry2","names","result","halfContainerWidth","space","getActiveAnchor","anchor","from","getActive","flexAnchors","Anchor","TOP","breakpointProps","getBreakpoints","activeAnchor","flex","flexBasis","PureBillboardGeneric","showScroll","background","hideGradient","justify","alignmentMobile","STARTING","alignmentTablet","CENTER","Justify","FLEX_START","Background","vblock","xs","md","lg","Body","Scroll","PureBillboardDuo","duoLayout","isMinXl","startDuoLayout","maxWidth","isDuoLayoutMd","marginLeft","isDuoLayoutLg","isDuoLayoutXl","marginRight","isMinLg","Layout","PureTile","action","rightTile","tilesSide","textDecoration","ribbonPadding","shrinkLeading","shrinkTrailing","leftTile","icon","getTitleColor","hover","animation","animationTimingFunction","animationDirection","animationFillMode","leftTileMedium","rightTileMedium","leftTileLarge","tilesStartLarge","TilesSide","START","box","wrapperText","wrapperIcon","linkAttribution","callToAction","withHover","tileAnimation","PureTiles","tiles","tile","Tile","PureBillboardTiles","webkitFlexBasis","row","breakpointsValues","lgStartTile","direction","END","Direction","ROW","ROW_REVERSE","gutters","hasTiles","Tiles","BillboardLayout","PureBillboard","loading","duo","fitSet","fit","Fit","FILL","FULLSCREEN","shouldShowScroll","bottomScrollName","setBottomScrollName","useState","Ribbon","Type","BILLBOARD","flush","CornerEmbellishments","errorBoundary","visibilitySet","Billboard","Helpers","ScrollElement","ScrollLink","Button","_Link2","_Button2","_Element2","_scrollLink2","_scrollElement2","_Helpers2","LinkElement","_ref","_temp","_len","args","Array","_key","concat","render","children","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","Function","objectToString","toString","nativeMax","nativeMin","min","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","toNumber","isObject","isObjectLike","isSymbol","other","valueOf","isBinary","test","slice","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","events","cancelEvent","ButtonElement","ElementWrapper","newProps","ref","el","React","defaultScroller","PropTypes","_React$Component2","_this3"],"mappings":"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","file":"pex-static/34/8.130474a11d4fa0d91659.chunk.js","sourcesContent":["import { useTheme, TypographySizing } from '@ux/theme-utils';\nimport px2em from '@ux/px2em';\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 _SizeMap;\nvar SizeMap = (_SizeMap = {}, _defineProperty(_SizeMap, TypographySizing.SMALL, 48), _defineProperty(_SizeMap, TypographySizing.MEDIUM, 55), _defineProperty(_SizeMap, TypographySizing.LARGE, 63), _SizeMap);\nvar display = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap[theme.typography.sizing] || 55;\n return {\n fontSize: px2em(size),\n lineHeight: '1.14'\n };\n});\n\n// content is the same on any size scale\nvar content = (function () {\n return {\n fontSize: px2em(16),\n lineHeight: '1.5'\n };\n});\n\n// footnote is the same on any size scale\nvar footnote = (function () {\n return {\n fontSize: px2em(14),\n lineHeight: '1.5'\n };\n});\n\n// smallprint is the same on any size scale\nvar smallprint = (function () {\n return {\n fontSize: px2em(12),\n lineHeight: '1.5'\n };\n});\n\nvar _SizeMap$1;\nvar SizeMap$1 = (_SizeMap$1 = {}, _defineProperty(_SizeMap$1, TypographySizing.SMALL, 32), _defineProperty(_SizeMap$1, TypographySizing.MEDIUM, 36), _defineProperty(_SizeMap$1, TypographySizing.LARGE, 42), _SizeMap$1);\nvar headingXxl = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap$1[theme.typography.sizing] || 36;\n return {\n fontSize: px2em(size),\n lineHeight: '1.2'\n };\n});\n\nvar _SizeMap$2;\nvar SizeMap$2 = (_SizeMap$2 = {}, _defineProperty(_SizeMap$2, TypographySizing.SMALL, 28), _defineProperty(_SizeMap$2, TypographySizing.MEDIUM, 32), _defineProperty(_SizeMap$2, TypographySizing.LARGE, 36), _SizeMap$2);\nvar headingXl = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap$2[theme.typography.sizing] || 32;\n return {\n fontSize: px2em(size),\n lineHeight: '1.2'\n };\n});\n\nvar _SizeMap$3;\nvar SizeMap$3 = (_SizeMap$3 = {}, _defineProperty(_SizeMap$3, TypographySizing.SMALL, 24), _defineProperty(_SizeMap$3, TypographySizing.MEDIUM, 28), _defineProperty(_SizeMap$3, TypographySizing.LARGE, 32), _SizeMap$3);\n\nvar LineHeightMap = _defineProperty({}, TypographySizing.SMALL, '1.25');\n\nvar headingL = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap$3[theme.typography.sizing] || 28;\n var height = LineHeightMap[theme.typography.sizing] || '1.2';\n return {\n fontSize: px2em(size),\n lineHeight: height\n };\n});\n\nvar _SizeMap$4, _LineHeightMap;\nvar SizeMap$4 = (_SizeMap$4 = {}, _defineProperty(_SizeMap$4, TypographySizing.SMALL, 21), _defineProperty(_SizeMap$4, TypographySizing.MEDIUM, 24), _defineProperty(_SizeMap$4, TypographySizing.LARGE, 28), _SizeMap$4);\nvar LineHeightMap$1 = (_LineHeightMap = {}, _defineProperty(_LineHeightMap, TypographySizing.SMALL, '1.3'), _defineProperty(_LineHeightMap, TypographySizing.MEDIUM, '1.25'), _defineProperty(_LineHeightMap, TypographySizing.LARGE, '1.2'), _LineHeightMap);\nvar headingM = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap$4[theme.typography.sizing] || 24;\n var height = LineHeightMap$1[theme.typography.sizing] || '1.25';\n return {\n fontSize: px2em(size),\n lineHeight: height\n };\n});\n\nvar _SizeMap$5;\nvar SizeMap$5 = (_SizeMap$5 = {}, _defineProperty(_SizeMap$5, TypographySizing.SMALL, 18), _defineProperty(_SizeMap$5, TypographySizing.MEDIUM, 21), _defineProperty(_SizeMap$5, TypographySizing.LARGE, 24), _SizeMap$5);\n\nvar LineHeightMap$2 = _defineProperty({}, TypographySizing.LARGE, '1.25');\n\nvar headingS = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap$5[theme.typography.sizing] || 21;\n var height = LineHeightMap$2[theme.typography.sizing] || '1.3';\n return {\n fontSize: px2em(size),\n lineHeight: height\n };\n});\n\nvar _SizeMap$6;\nvar SizeMap$6 = (_SizeMap$6 = {}, _defineProperty(_SizeMap$6, TypographySizing.SMALL, 16), _defineProperty(_SizeMap$6, TypographySizing.MEDIUM, 18), _defineProperty(_SizeMap$6, TypographySizing.LARGE, 21), _SizeMap$6);\n\nvar LineHeightMap$3 = _defineProperty({}, TypographySizing.SMALL, '1.5');\n\nvar headingXs = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap$6[theme.typography.sizing] || 18;\n var height = LineHeightMap$3[theme.typography.sizing] || '1.3';\n return {\n fontSize: px2em(size),\n lineHeight: height\n };\n});\n\nvar _SizeMap$7;\nvar SizeMap$7 = (_SizeMap$7 = {}, _defineProperty(_SizeMap$7, TypographySizing.SMALL, 14), _defineProperty(_SizeMap$7, TypographySizing.MEDIUM, 16), _defineProperty(_SizeMap$7, TypographySizing.LARGE, 18), _SizeMap$7);\n\nvar LineHeightMap$4 = _defineProperty({}, TypographySizing.LARGE, '1.3');\n\nvar headingXxs = (function () {\n var _useTheme = useTheme(),\n theme = _useTheme.theme;\n\n var size = SizeMap$7[theme.typography.sizing] || 16;\n var height = LineHeightMap$4[theme.typography.sizing] || '1.5';\n return {\n fontSize: px2em(size),\n lineHeight: height\n };\n});\n\nexport { content, display, footnote, headingL, headingM, headingS, headingXl, headingXs, headingXxl, headingXxs, smallprint };\n","// @flow\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./px2em.production.js');\n} else {\n module.exports = require('./px2em.development.js');\n}\n","import px2EmSync from\"px2em-sync\";var px2em=function(m){return px2EmSync(m,{format:\"rem\",base:16})};export default px2em;export{px2em};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _px2emSync = require('./px2emSync');\n\nvar _px2emSync2 = _interopRequireDefault(_px2emSync);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _px2emSync2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\n//@flow\n\nvar px2EmSync = function px2EmSync(px, options) {\n if (typeof px !== 'number') {\n throw new TypeError('`px` should be a number');\n }\n\n var _base$format$options = _extends({\n base: 16,\n format: null\n }, options),\n base = _base$format$options.base,\n format = _base$format$options.format;\n\n if (typeof base !== 'number' || base < 0) {\n throw new TypeError('`base` should be a number greater than zero');\n }\n\n var em = Math.round(px / base * 1000) / 1000;\n\n if (format == null) {\n return em;\n }\n\n return '' + em + format;\n};\n\nexports.default = px2EmSync;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\n_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\nexport default cond;","/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\nexport default T;","import * as r from 'ramda';\nimport { withProps } from '@team-griffin/rehook';\nimport { isInternalUrl, isHashUrl } from 'domain/url';\nimport { NavLink } from 'react-router-dom';\n\ninterface AnyProps {\n url?: string;\n action?: {\n url?: string;\n [key: string]: any;\n };\n [key: string]: any;\n}\n\nexport type UrlComponentType = typeof NavLink | 'a' | 'div';\nconst withUrlComponent = withProps((props: AnyProps) =>\n r.pipe(\n r.either(\n r.prop('url'),\n // @ts-ignore: error when upgrading to @ux/config\n r.path(['action', 'url']),\n ),\n r.cond([\n [\n r.isNil,\n () => ({\n Component: 'div',\n }),\n ],\n [\n isInternalUrl,\n (url) => ({\n Component: NavLink,\n to: url,\n }),\n ],\n [\n isHashUrl,\n (url) => ({\n Component: NavLink,\n to: url,\n }),\n ],\n [\n r.T,\n (url) => ({\n Component: 'a',\n href: url,\n }),\n ],\n ]),\n // @ts-ignore: error after upgrading eslint config. Please replace with relevant comment\n )(props),\n);\n\nexport default withUrlComponent;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","function createError(message) {\n var err = new Error(message);\n err.source = \"ulid\";\n return err;\n}\n// These values should NEVER change. If\n// they do, we're no longer making ulids!\nvar ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"; // Crockford's Base32\nvar ENCODING_LEN = ENCODING.length;\nvar TIME_MAX = Math.pow(2, 48) - 1;\nvar TIME_LEN = 10;\nvar RANDOM_LEN = 16;\nfunction replaceCharAt(str, index, char) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\nfunction incrementBase32(str) {\n var done = undefined;\n var index = str.length;\n var char = void 0;\n var charIndex = void 0;\n var maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = str[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw createError(\"incorrectly encoded string\");\n }\n if (charIndex === maxCharIndex) {\n str = replaceCharAt(str, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(str, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === \"string\") {\n return done;\n }\n throw createError(\"cannot increment this string\");\n}\nfunction randomChar(prng) {\n var rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\nfunction encodeTime(now, len) {\n if (isNaN(now)) {\n throw new Error(now + \" must be a number\");\n }\n if (now > TIME_MAX) {\n throw createError(\"cannot encode time greater than \" + TIME_MAX);\n }\n if (now < 0) {\n throw createError(\"time must be positive\");\n }\n if (Number.isInteger(now) === false) {\n throw createError(\"time must be an integer\");\n }\n var mod = void 0;\n var str = \"\";\n for (; len > 0; len--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\nfunction encodeRandom(len, prng) {\n var str = \"\";\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\nfunction decodeTime(id) {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw createError(\"malformed ulid\");\n }\n var time = id.substr(0, TIME_LEN).split(\"\").reverse().reduce(function (carry, char, index) {\n var encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw createError(\"invalid character found: \" + char);\n }\n return carry += encodingIndex * Math.pow(ENCODING_LEN, index);\n }, 0);\n if (time > TIME_MAX) {\n throw createError(\"malformed ulid, timestamp too large\");\n }\n return time;\n}\nfunction detectPrng() {\n var allowInsecure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var root = arguments[1];\n\n if (!root) {\n root = typeof window !== \"undefined\" ? window : null;\n }\n var browserCrypto = root && (root.crypto || root.msCrypto);\n if (browserCrypto) {\n return function () {\n var buffer = new Uint8Array(1);\n browserCrypto.getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n } else {\n try {\n var nodeCrypto = require(\"crypto\");\n return function () {\n return nodeCrypto.randomBytes(1).readUInt8() / 0xff;\n };\n } catch (e) {}\n }\n if (allowInsecure) {\n try {\n console.error(\"secure crypto unusable, falling back to insecure Math.random()!\");\n } catch (e) {}\n return function () {\n return Math.random();\n };\n }\n throw createError(\"secure crypto unusable, insecure Math.random not allowed\");\n}\nfunction factory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, currPrng);\n };\n}\nfunction monotonicFactory(currPrng) {\n if (!currPrng) {\n currPrng = detectPrng();\n }\n var lastTime = 0;\n var lastRandom = void 0;\n return function ulid(seedTime) {\n if (isNaN(seedTime)) {\n seedTime = Date.now();\n }\n if (seedTime <= lastTime) {\n var incrementedRandom = lastRandom = incrementBase32(lastRandom);\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seedTime;\n var newRandom = lastRandom = encodeRandom(RANDOM_LEN, currPrng);\n return encodeTime(seedTime, TIME_LEN) + newRandom;\n };\n}\nvar ulid = factory();\n\nexport { replaceCharAt, incrementBase32, randomChar, encodeTime, encodeRandom, decodeTime, detectPrng, factory, monotonicFactory, ulid };\n","import { useStyles } from '@team-griffin/stylr';\nimport longhand from '@team-griffin/css-longhand';\nimport { gu2px, Theme, useTheme } from '@uds/theme-utils';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport { useBreakpoints } from '@ux/responsive';\n\nimport { CornerEmbellishmentsType } from './CornerEmbellishments';\n\nconst cornerToPosition = (str: string) => {\n switch (str) {\n case 'topLeft':\n return '0 0';\n case 'topRight':\n return 'right 0';\n case 'bottomLeft':\n return '0 bottom';\n case 'bottomRight':\n return 'right bottom';\n default:\n return '';\n }\n};\n\n// @ts-ignore: error after upgrading to ux-configs\nconst gu2CornerSize = (gu: number, spacing?: number) => `${gu2px(gu, spacing)}px ${gu2px(gu, spacing)}px`;\n\nconst cornerSize = ({ theme, isMinSm, isMinMd }: { theme: Theme; isMinSm: boolean; isMinMd: boolean }) => {\n const { spacing } = theme;\n if (isMinMd) {\n return gu2CornerSize(6, spacing);\n }\n if (isMinSm) {\n return gu2CornerSize(5, spacing);\n }\n return gu2CornerSize(4, spacing);\n};\n\nconst generateCornerImages = ({\n cornerEmbellishments,\n currentLanguage,\n theme,\n isMinSm,\n isMinMd,\n}: {\n cornerEmbellishments: CornerEmbellishmentsType;\n currentLanguage: string;\n theme: Theme;\n isMinSm: boolean;\n isMinMd: boolean;\n}) => {\n const embellishments = cornerEmbellishments ?? {};\n const size = cornerSize({\n theme,\n isMinSm,\n isMinMd,\n });\n const filteredEmbellishments = [] as Array<{\n image: string;\n size: string;\n position: string;\n repeat: string;\n }>;\n Object.keys(embellishments).forEach((corner: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight') => {\n const embellishment = embellishments[corner];\n if (embellishment != null) {\n filteredEmbellishments.push({\n image: `url(${urlLanguageParse(embellishment, currentLanguage)})`,\n size,\n position: cornerToPosition(corner),\n repeat: 'no-repeat',\n });\n }\n });\n return filteredEmbellishments;\n};\n\nconst cornerArrayToCssProperty = (\n prop: 'image' | 'size' | 'position' | 'repeat',\n cornerImages: Array<{\n image: string;\n size: string;\n position: string;\n repeat: string;\n }>,\n) => {\n const joinedPropArray: Array = [];\n cornerImages.forEach((image) => {\n joinedPropArray.push(image[prop]);\n });\n return joinedPropArray.join(',');\n};\n\nexport default ({\n currentLanguage,\n cornerEmbellishments,\n}: {\n currentLanguage: string;\n cornerEmbellishments: CornerEmbellishmentsType;\n}) => {\n const breakpoints = useBreakpoints();\n const { theme } = useTheme();\n const cornerImages = generateCornerImages({\n currentLanguage,\n cornerEmbellishments,\n ...breakpoints,\n theme,\n });\n return useStyles(\n {\n default: {\n root: {\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n ...longhand('background', {\n size: cornerArrayToCssProperty('size', cornerImages),\n image: cornerArrayToCssProperty('image', cornerImages),\n position: cornerArrayToCssProperty('position', cornerImages),\n repeat: cornerArrayToCssProperty('repeat', cornerImages),\n }),\n },\n },\n },\n [],\n );\n};\n","import React, { ComponentType } from 'react';\nimport withLanguage from 'presentation/hocs/withLanguage';\n\nimport useStylesheet from './CornerEmbellishments.stylesheet';\n\nexport type CornerEmbellishmentsType = {\n topRight?: string;\n bottomRight?: string;\n bottomLeft?: string;\n topLeft?: string;\n};\ninterface OuterProps {\n cornerEmbellishments: CornerEmbellishmentsType;\n}\n\nexport interface InnerProps extends OuterProps {\n currentLanguage: string;\n}\nconst PureCornerEmbellishments = ({ currentLanguage, cornerEmbellishments }: InnerProps) => {\n const { styles } = useStylesheet({\n currentLanguage,\n cornerEmbellishments,\n });\n return
;\n};\n\nPureCornerEmbellishments.displayName = 'CornerEmbellishments';\n\nexport default withLanguage(PureCornerEmbellishments) as ComponentType;\n","import React, { Fragment, ReactNode } from 'react';\nimport { Heading01, Heading04, Heading05 } from '@uds/typography';\nimport PaddingBox, { Side } from '@uds/padding-box';\nimport CallToAction from 'components/common/CallToAction';\nimport { Size as ButtonSize } from '@uds/button';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from '@uds/theme-utils';\nimport { CTA } from 'core/ribbons/cta';\nimport { isNilOrEmpty } from 'presentation/utils/generalUtils';\n\nimport useStylesheet, { getClassNames } from './Body.stylesheet';\n\nexport interface OuterProps {\n hBaseline?: number;\n text: {\n precursor?: ShortcodeProps;\n title?: ShortcodeProps;\n body?: ShortcodeProps;\n };\n additionalText?: string | ReactNode;\n footerText?: string | ReactNode;\n ctas: Array;\n colorway: Colorway;\n layout: Layout;\n ribbonId: string;\n}\n\ndeclare const cta: CTA;\ndeclare const i: number;\n\nconst PureBody = ({\n hBaseline = 1,\n text,\n additionalText,\n footerText,\n ctas,\n colorway,\n layout,\n ribbonId,\n}: OuterProps) => {\n const { isMinSm } = useBreakpoints();\n const { body, precursor, title } = text;\n const hasBodyText = !isNilOrEmpty(body);\n const hasCta = !isNilOrEmpty(ctas);\n const hasPrecursor = !isNilOrEmpty(precursor);\n const hasTitle = !isNilOrEmpty(title);\n const hasFooterText = !isNilOrEmpty(footerText);\n const { styles } = useStylesheet({\n isMinSm,\n layout,\n colorway,\n });\n const classNames = getClassNames();\n return (\n \n \n
\n \n \n \n \n \n {hasTitle && (\n \n \n \n )}\n \n \n {hasTitle && (\n \n \n \n )}\n \n \n {hasBodyText && (\n \n \n \n )}\n {additionalText}\n {hasCta && (\n
\n \n \n \n \n \n
\n )}\n
\n
\n {hasFooterText && (\n \n
{footerText}
\n
\n )}\n
\n );\n};\n\nPureBody.displayName = 'BillboardBody';\n\nexport default PureBody;\n","import { useStyles } from '@team-griffin/stylr';\nimport { getBodyColor } from 'presentation/utils/colorway';\nimport { gu2px, useTheme, Colorway, cssTheme } from '@uds/theme-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { modifier } from '@ux/style-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport { smallprint } from '@ux/type-size';\nimport { Layout } from 'domain/constants/layout';\nimport { useBreakpoints } from '@ux/responsive';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { css } from 'linaria';\n\nexport const getClassNames = () => {\n return {\n precursor: css`\n margin-bottom: ${cssTheme.gu1};\n `,\n subtitle: css`\n margin-top: ${cssTheme.gu2};\n `,\n cta: css`\n margin-top: ${cssTheme.gu1};\n `,\n };\n};\nexport default ({ colorway, layout, isMinSm }: { colorway: Colorway; layout: Layout; isMinSm: Boolean }) => {\n const { theme } = useTheme();\n const { spacing } = theme;\n const alignment = findResponsiveItem(useBreakpoints(), [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n\n return useStyles(\n {\n default: {\n root: {\n position: 'relative',\n },\n ctas: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: gu2px(2, spacing),\n overflow: 'hidden',\n },\n footerText: {\n marginTop: gu2px(1, spacing),\n ...smallprint(),\n color: getBodyColor(theme, colorway),\n opacity: 0.9,\n },\n },\n\n isMinSm: {\n ctas: {\n flexDirection: 'row',\n ...cssSides('margin', Side.X, 0 - gu2px(0.5, spacing)),\n },\n cta: {\n marginBottom: 0,\n ...cssSides('margin', Side.X, gu2px(0.5, spacing)),\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n root: {\n textAlign: 'center',\n },\n footerText: {\n textAlign: 'center',\n },\n ctas: {\n justifyContent: 'center',\n },\n },\n },\n [{ isMinSm }, { alignment }],\n );\n};\n","import { Alignment } from 'domain/constants/alignment';\nimport { Layout } from 'domain/constants/layout';\nimport { css, cx } from 'linaria';\nimport { cssTheme } from '@uds/theme-utils';\n\nconst scroller = {\n default: css`\n padding-top: ${cssTheme.gu2};\n `,\n centerAligned: css`\n text-align: center;\n `,\n};\nexport default ({ layout: { alignment } }: { layout: Layout }) => {\n return {\n scroller: cx(scroller.default, alignment === Alignment.CENTER && scroller.centerAligned),\n };\n};\n","import React from 'react';\nimport PaddingBox from '@uds/padding-box';\nimport { Button, Kind } from '@uds/button';\nimport { Glyph } from '@uds/glyphs';\nimport Message from '@uds/message';\nimport { Layout } from 'domain/constants/layout';\n\nimport getClassNames from './Scroll.stylesheet';\n\ninterface OuterProps {\n onScrollClick: (evt: any) => any;\n layout: Layout;\n}\n\nexport const PureBillboardScroll = ({ onScrollClick, layout }: OuterProps) => {\n const classNames = getClassNames({ layout });\n return (\n \n }\n >\n \n \n \n );\n};\n\nPureBillboardScroll.displayName = 'BillboardScroll';\n\nexport default PureBillboardScroll;\n","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\n_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default pick;","import { gu2px } from '@uds/theme-utils';\nimport flexAnchors, { AnchorArray } from 'presentation/utils/flexAnchors';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { Anchor } from 'domain/constants/anchor';\nimport { BreakpointProps } from '@ux/responsive';\n\n/**\n * Two layouts: Tiles and Duo, require separate containers to site\n * next to each other, bleed to the far edge, but still maintain the\n * site width rules of a single container. This function returns half\n * the width of the container size\n */\nexport const halfContainerWidth = (width: number, spacing: number) => {\n const space = gu2px(1, spacing);\n // add the extra gu of spacing between the two items\n const withSpacing = width + space;\n // account for the additional padding at either side\n const divided = withSpacing / 2;\n // remove the accounted for spacing\n return divided - space;\n};\n\nexport const getActiveAnchor = (anchor: AnchorArray, breakpoints: BreakpointProps) => {\n const getActive = (from: AnchorArray) => findResponsiveItem(breakpoints, from);\n\n const activeAnchor = getActive(flexAnchors([Anchor.TOP, null, null], anchor));\n\n return activeAnchor;\n};\n\nexport default null;\n","import { useStyles } from '@team-griffin/stylr';\nimport getBreakpoints from 'presentation/utils/getBreakpoints';\nimport { Layout } from 'domain/constants/layout';\nimport { BreakpointProps } from '@ux/responsive';\n\nimport { getActiveAnchor } from '../styles';\n\nexport default (\n props: {\n layout: Layout;\n } & BreakpointProps,\n) => {\n const { layout } = props;\n const { anchor } = layout;\n const breakpointProps = getBreakpoints(props);\n // @ts-ignore: error after upgrading to ux-configs\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n return useStyles(\n {\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n },\n },\n },\n [{ activeAnchor }],\n );\n};\n","import * as r from 'ramda';\nimport { BreakpointProps } from '@uds/responsive';\n\ninterface anyProps extends BreakpointProps {\n [key: string]: any;\n}\nexport default (props: anyProps) => r.pick(['isMinSm', 'isMinMd', 'isMinLg', 'isMinXl'], props) as anyProps;\n","import React from 'react';\nimport { Container, Row, Column, Justify } from '@uds/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\nimport { Alignment } from 'domain/constants/alignment';\nimport { useBreakpoints } from '@ux/responsive';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\n\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport useStylesheet from './Generic.stylesheet';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean;\n background: BackgroundArray;\n onScrollClick: (evt: any) => any;\n hideGradient?: boolean;\n}\n\nexport const PureBillboardGeneric = ({\n layout,\n colorway,\n hBaseline,\n ctas,\n text,\n additionalText,\n footerText,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n hideGradient,\n}: OuterProps) => {\n const breakpoints = useBreakpoints();\n const { styles } = useStylesheet({\n layout,\n ...breakpoints,\n });\n const alignment = findResponsiveItem(breakpoints, [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n const justify = alignment === Alignment.CENTER ? Justify.CENTER : Justify.FLEX_START;\n return (\n <>\n \n
\n \n \n \n \n \n \n \n
\n {showScroll && (\n \n \n \n )}\n \n );\n};\n\nPureBillboardGeneric.displayName = 'BillboardGeneric';\n\nexport default PureBillboardGeneric;\n","import React from 'react';\nimport { Container } from '@uds/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\nimport { Colorway } from '@uds/theme-utils';\nimport { Layout } from 'domain/constants/layout';\n\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport useStylesheet from './Duo.stylesheet';\n\ninterface OuterProps extends BodyProps {\n layout: Layout;\n colorway: Colorway;\n hBaseline?: number;\n showScroll: boolean;\n duoLayout: boolean;\n background: BackgroundArray;\n onScrollClick: (evt: any) => any;\n hideGradient?: boolean;\n}\n\nexport const PureBillboardDuo = ({\n layout,\n colorway,\n hBaseline = 1,\n ctas,\n text,\n additionalText,\n footerText,\n onScrollClick,\n showScroll,\n ribbonId,\n background,\n duoLayout,\n hideGradient,\n}: OuterProps) => {\n const { styles } = useStylesheet({\n layout,\n duoLayout,\n });\n return (\n <>\n \n
\n
\n \n
\n
\n {showScroll && (\n \n
\n \n
\n
\n )}\n \n );\n};\n\nPureBillboardDuo.displayName = 'BillboardDuo';\n\nexport default PureBillboardDuo;\n","import { useStyles } from '@team-griffin/stylr';\nimport { breakpoints, useBreakpoints } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, useTheme } from '@uds/theme-utils';\nimport { Layout } from 'domain/constants/layout';\n\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\n\nexport default (props: { layout: Layout; duoLayout: boolean }) => {\n const { layout, duoLayout } = props;\n const breakpointProps = useBreakpoints();\n const { isMinSm, isMinMd, isMinLg, isMinXl } = breakpointProps;\n const { theme } = useTheme();\n const { anchor } = layout;\n\n const startDuoLayout = layout.startDuoLayout || false;\n // @ts-ignore: error after upgrading to ux-configs\n const activeAnchor = getActiveAnchor(anchor, breakpointProps);\n\n return useStyles(\n {\n default: {\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n },\n duoLayout: {\n ...cssSides('padding', Side.X, gu2px(1, theme.spacing)),\n ...cssSides('margin', Side.X, 'auto'),\n width: '100%',\n maxWidth: '100%',\n },\n },\n\n isMinSm: {\n duoLayout: {\n maxWidth: breakpoints.sm - gu2px(1, theme.spacing),\n },\n },\n\n isDuoLayoutMd: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.md, theme.spacing),\n marginLeft: 0,\n },\n },\n isDuoLayoutLg: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.lg, theme.spacing),\n },\n },\n isDuoLayoutXl: {\n duoLayout: {\n maxWidth: halfContainerWidth(breakpoints.xl, theme.spacing),\n },\n },\n startDuoLayout: {\n duoLayout: {\n marginRight: 0,\n marginLeft: 'auto',\n },\n },\n },\n [\n { activeAnchor },\n { isMinSm },\n { isDuoLayoutMd: duoLayout && isMinMd },\n { isDuoLayoutLg: duoLayout && isMinLg },\n { isDuoLayoutXl: duoLayout && isMinXl },\n { startDuoLayout },\n ],\n );\n};\n","export enum Side {\n START = 'START',\n END = 'END',\n}\n\nexport enum Layout {\n DUO = 'DUO',\n TILES = 'TILES',\n}\n\nexport default null;\n","import React from 'react';\nimport PaddingBox from '@uds/padding-box';\nimport Glyph from '@uds/glyphs';\nimport { Heading02, BodyCopy } from '@uds/typography';\nimport Shortcode, { ShortcodeProps } from 'components/Shortcode';\nimport { gu2px, useTheme, Colorway as Colorways } from '@uds/theme-utils';\nimport callToAction from 'presentation/hocs/callToAction';\nimport withUrlComponent from 'presentation/hooks/withUrlComponent';\nimport { withHover } from '@team-griffin/stylr';\nimport { Layout } from 'domain/constants/layout';\nimport Colorway from '@uds/colorway';\n\nimport useStylesheet, { getClassNames } from './Tile.stylesheet';\n\nexport interface TileProps {\n colorway: Colorways;\n type: string;\n text: {\n body?: ShortcodeProps;\n title?: ShortcodeProps;\n };\n action: {\n url: string;\n linkAttribution?: string;\n };\n leftTile: boolean;\n rightTile: boolean;\n hBaseline: number;\n layout: Layout;\n}\ninterface OuterProps extends TileProps {\n hover: boolean;\n}\n\nexport const PureTile = ({ colorway, text, hBaseline, action, ...props }: OuterProps) => {\n const { title, body } = text;\n const { theme } = useTheme();\n const { styles } = useStylesheet({\n colorway,\n ...props,\n });\n const { Component } = withUrlComponent({ action });\n const classNames = getClassNames();\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\nPureTile.displayName = 'Tile';\n\nexport default callToAction(withHover(PureTile));\n","import { useStyles } from '@team-griffin/stylr';\nimport { getTitleColor } from 'presentation/utils/colorway';\nimport { gu2px, useTheme, Colorway, cssTheme } from '@uds/theme-utils';\nimport { modifier } from '@ux/style-utils';\nimport { Alignment } from 'domain/constants/alignment';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { breakpoints, useBreakpoints } from '@ux/responsive';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { Layout } from 'domain/constants/layout';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { css } from 'linaria';\n\nimport { halfContainerWidth } from './styles';\nimport { Side as TilesSide } from './constants';\n\nexport const getClassNames = () => {\n return {\n title: css`\n padding-right: ${cssTheme.gu3};\n `,\n subtitle: css`\n margin-top: ${cssTheme.gu2};\n `,\n box: css`\n display: flex;\n `,\n wrapperText: css`\n flex: 1;\n flex-basis: auto;\n padding-right: ${cssTheme.gu2};\n `,\n wrapperIcon: css`\n min-width: ${cssTheme.gu3};\n position: relative;\n padding-top: calc(${cssTheme.gu1} / 2);\n `,\n };\n};\nexport default ({\n colorway,\n hover,\n layout,\n leftTile,\n rightTile,\n}: {\n colorway: Colorway;\n hover: boolean;\n layout: Layout;\n leftTile: boolean;\n rightTile: boolean;\n}) => {\n const { theme } = useTheme();\n const { isMinSm, isMinMd, isMinLg, isMinXl } = useBreakpoints();\n\n const alignment = findResponsiveItem(useBreakpoints(), [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n\n const { tilesSide } = layout;\n const { spacing } = theme;\n\n return useStyles(\n {\n default: {\n // @ts-ignore: error after upgrading to ux-configs\n root: {\n flex: 1,\n flexBasis: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: isMinLg ? 'center' : 'flex-start',\n textAlign: 'left',\n textDecoration: 'none',\n height: '100%',\n ...ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n layout: {\n shrinkLeading: isMinLg && rightTile,\n shrinkTrailing: isMinLg && leftTile,\n },\n }),\n },\n container: {\n ...cssSides('padding', Side.X, gu2px(1, spacing)),\n ...cssSides('margin', Side.X, 'auto'),\n position: 'relative',\n width: '100%',\n maxWidth: '100%',\n },\n icon: {\n color: getTitleColor(theme, colorway),\n opacity: 1,\n width: gu2px(3, spacing),\n position: 'absolute',\n right: 0,\n },\n },\n hover: {\n root: {\n textDecoration: 'none',\n },\n icon: {\n opacity: 1,\n marginRight: 0,\n animation: 'arrowAnimation 0.3s',\n animationTimingFunction: 'ease-in-out',\n animationDirection: 'normal',\n animationFillMode: 'forwards',\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n root: {\n textAlign: 'center',\n },\n },\n\n isMinSm: {\n container: {\n maxWidth: breakpoints.sm - gu2px(1, spacing),\n },\n },\n\n isMinMd: {\n container: {\n // theu're side by side so need an additional 1GU removing\n maxWidth: halfContainerWidth(breakpoints.md, spacing),\n },\n },\n\n isMinLg: {\n container: {\n maxWidth: halfContainerWidth(breakpoints.lg, spacing),\n },\n },\n isMinXl: {\n container: {\n maxWidth: halfContainerWidth(breakpoints.xl, spacing),\n },\n },\n leftTileMedium: {\n container: {\n marginRight: 0,\n },\n },\n rightTileMedium: {\n container: {\n marginLeft: 0,\n },\n },\n leftTileLarge: {\n container: {\n marginRight: 'auto',\n marginLeft: 0,\n },\n },\n\n tilesStartLarge: {\n container: {\n marginLeft: 'auto',\n marginRight: 0,\n },\n },\n },\n [\n { hover },\n { alignment },\n { isMinSm },\n { isMinMd },\n { isMinLg },\n { isMinXl },\n { leftTileMedium: leftTile && isMinMd },\n { rightTileMedium: rightTile && isMinMd },\n { leftTileLarge: leftTile && isMinLg },\n { tilesStartLarge: isMinLg && tilesSide === TilesSide.START },\n ],\n );\n};\n","import React from 'react';\nimport { gu2px, useTheme } from '@uds/theme-utils';\nimport { Layout } from 'domain/constants/layout';\nimport Colorway from '@uds/colorway';\n\nimport Tile, { TileProps } from './Tile';\nimport getClassNames from './Tiles.stylesheet';\n\ninterface OuterProps {\n tiles: Array;\n hBaseline: number;\n layout: Layout;\n}\n\nconst tileAnimation = (spacing: number) => `@keyframes arrowAnimation {\n from {\n right: ${gu2px(3, spacing)}px;\n opacity: 0.1;\n }\n to {\n right: ${gu2px(0, spacing)}px;\n opacity: 1;\n }\n}`;\n\ndeclare const i: number;\ndeclare const tile: TileProps;\n\nexport const PureTiles = ({ tiles, hBaseline, layout }: OuterProps) => {\n const { theme } = useTheme();\n const classNames = getClassNames();\n return (\n
\n \n \n \n \n \n \n
\n );\n};\n\nPureTiles.displayName = 'Tiles';\n\nexport default PureTiles;\n","import { cssTheme } from '@uds/theme-utils';\nimport { css } from 'linaria';\n\nexport default () => {\n return {\n tile: css`\n flex: 1;\n flex-basis: auto;\n position: relative;\n --webkit-flex-basis: 0;\n &&& ${cssTheme.breakpoints.md} {\n width: 50%;\n }\n &&& ${cssTheme.breakpoints.lg} {\n width: 100%;\n }\n `,\n root: css`\n ${cssTheme.breakpoints.md} {\n flex-direction: row;\n display: flex;\n }\n ${cssTheme.breakpoints.lg} {\n flex-direction: column;\n height: 100%;\n }\n `,\n };\n};\n","import React from 'react';\nimport { Container, Row, Column, Direction, Justify } from '@uds/grid';\nimport Background, { BackgroundArray } from 'components/common/Background';\n\nimport Body, { OuterProps as BodyProps } from '../Body';\nimport Scroll from '../Scroll';\nimport Tiles from '../Tiles';\nimport { Side as TilesSide } from '../constants';\nimport useStylesheet from './WithTiles.stylesheet';\nimport { TileProps } from '../Tile';\n\ninterface OuterProps extends BodyProps {\n showScroll: boolean;\n background: BackgroundArray;\n onScrollClick: (evt: any) => any;\n justify: Justify;\n hideGradient?: boolean;\n tiles: Array;\n}\n\nexport const PureBillboardTiles = ({\n layout,\n colorway,\n hBaseline = 0,\n ctas,\n text,\n additionalText,\n footerText,\n tiles,\n onScrollClick,\n justify,\n showScroll,\n ribbonId,\n background,\n hideGradient,\n}: OuterProps) => {\n const { styles } = useStylesheet({ layout });\n const direction = layout.tilesSide === TilesSide.END ? Direction.ROW : Direction.ROW_REVERSE;\n\n return (\n
\n
\n \n \n \n
\n \n \n {showScroll && }\n \n
\n
\n \n \n \n
\n
\n
\n );\n};\n\nPureBillboardTiles.displayName = 'BillboardTiles';\n\nexport default PureBillboardTiles;\n","import { useStyles } from '@team-griffin/stylr';\nimport { useBreakpoints, breakpoints as breakpointsValues } from '@ux/responsive';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, useTheme } from '@uds/theme-utils';\nimport ribbonPadding from 'presentation/utils/ribbonPadding';\nimport { Layout } from 'domain/constants/layout';\nimport { Alignment } from 'domain/constants/alignment';\nimport { modifier } from '@ux/style-utils';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\n\nimport { Side as TilesSide } from '../constants';\nimport { getActiveAnchor, halfContainerWidth } from '../styles';\n\nexport default ({ layout }: { layout: Layout }) => {\n const { theme } = useTheme();\n const { spacing } = theme;\n const breakpoints = useBreakpoints();\n const { isMinSm, isMinLg, isMinXl } = breakpoints;\n\n const alignment = findResponsiveItem(breakpoints, [\n layout?.alignmentMobile ?? Alignment.STARTING,\n layout?.alignmentTablet ?? Alignment.STARTING,\n layout?.alignment ?? Alignment.STARTING,\n ]);\n\n const { anchor, tilesSide } = layout;\n // @ts-ignore: error after upgrading to ux-configs\n const activeAnchor = getActiveAnchor(anchor, breakpoints);\n\n return useStyles(\n {\n default: {\n container: {\n ...cssSides('padding', Side.X, gu2px(1, spacing)),\n },\n // @ts-ignore: error after upgrading to ux-configs\n content: {\n flex: 1,\n flexBasis: 'auto',\n justifyContent: activeAnchor,\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n ...ribbonPadding({\n spacing,\n isMinSm,\n isMinLg,\n }),\n },\n body: {\n flex: 1,\n flexBasis: 'auto',\n },\n },\n\n isMinLg: {\n container: {\n display: 'flex',\n flex: 1,\n flexBasis: 'auto',\n // Safari is not filling 100% height of flex parent\n // in nested flex containers\n webkitFlexBasis: 0,\n width: '100%',\n maxWidth: '100%',\n },\n row: {\n width: '100%',\n },\n content: {\n marginLeft: 'auto',\n maxWidth: halfContainerWidth(breakpointsValues.lg, spacing),\n height: '100%',\n position: 'static',\n },\n },\n\n isMinXl: {\n content: {\n maxWidth: halfContainerWidth(breakpointsValues.xl, spacing),\n },\n },\n\n lgStartTile: {\n content: {\n marginLeft: 0,\n marginRight: 'auto',\n },\n },\n\n [modifier('alignment', Alignment.CENTER)]: {\n content: {\n textAlign: 'center',\n },\n },\n },\n [\n { isMinSm },\n { isMinLg },\n { isMinXl },\n { lgStartTile: tilesSide === TilesSide.START && isMinLg },\n { alignment },\n { activeAnchor },\n ],\n );\n};\n","import React, { ComponentClass, ReactNode, useState } from 'react';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport { Fit, RibbonProps, Type } from 'domain/constants/ribbons';\nimport { scroller, Element } from 'react-scroll';\nimport { ulid } from 'ulid';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport { useBreakpoints } from '@ux/responsive';\nimport { Layout } from 'domain/constants/layout';\nimport { Justify } from '@uds/grid';\nimport { Background } from 'components/common/Background';\n\nimport CornerEmbellishments, { CornerEmbellishmentsType } from './CornerEmbellishments';\nimport BillboardGeneric from './layouts/Generic';\nimport BillboardDuo from './layouts/Duo';\nimport BillboardTiles from './layouts/WithTiles';\nimport { OuterProps as BodyProps } from './Body';\nimport { TileProps } from './Tile';\nimport Ribbon from '../Ribbon';\n\nexport interface OuterProps extends BodyProps, RibbonProps {\n cornerEmbellishments: CornerEmbellishmentsType;\n tiles?: Array;\n additionalText?: ReactNode;\n footerText?: ReactNode;\n duo?: boolean;\n duoLayout?: boolean;\n name: string;\n loading: boolean;\n id: string;\n justify: Justify;\n background: [Background, Background, Background];\n hideGradient?: boolean;\n}\ninterface LayoutProps extends Omit {\n hasTiles: boolean;\n showScroll: boolean;\n onScrollClick: () => void;\n setBottomScrollName: (v: string) => void;\n}\n\nconst shouldShowScroll = (props: {\n layout: Layout;\n isMinSm: boolean;\n isMinMd: boolean;\n isMinLg: boolean;\n isMinXl: boolean;\n}) => {\n const { isMinSm, isMinMd, isMinLg, isMinXl, layout } = props;\n if (props.isMinSm) {\n const fitSet = layout.fit;\n const fit = findResponsiveItem(\n {\n isMinSm,\n isMinMd,\n isMinLg,\n isMinXl,\n },\n fitSet,\n );\n return fit === Fit.FILL || fit === Fit.FULLSCREEN;\n }\n return false;\n};\n\nconst BillboardLayout = ({ hasTiles, tiles = [], duoLayout, ...props }: LayoutProps) => {\n if (hasTiles) {\n return ;\n }\n if (duoLayout) {\n return ;\n }\n return ;\n};\n\nexport const PureBillboard = ({\n id,\n layout,\n loading,\n colorway,\n name,\n duoLayout,\n cornerEmbellishments,\n ctas = [],\n additionalText = null,\n footerText = null,\n duo = false,\n tiles,\n ...props\n}: OuterProps) => {\n const breakpoints = useBreakpoints();\n\n const showScroll = shouldShowScroll({\n layout,\n ...breakpoints,\n });\n\n const hasTiles = tiles?.length === 2 && duo === false;\n\n const [bottomScrollName, setBottomScrollName] = useState(() => {\n return ulid();\n });\n const scrollHandler =\n ({ bottomScrollName }: { bottomScrollName: string }) =>\n () => {\n scroller.scrollTo(bottomScrollName, {\n duration: 500,\n delay: 100,\n smooth: true,\n });\n };\n const onScrollClick = scrollHandler({ bottomScrollName });\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nPureBillboard.displayName = 'Billboard';\n\nexport default errorBoundary(visibilitySet(PureBillboard)) as ComponentClass;\n","import Billboard, { OuterProps } from './Billboard';\nimport { Side } from './constants';\n\nexport { Side, OuterProps as BillboardProps };\nexport default Billboard;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\n/* DEPRECATED */\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\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 React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;"],"sourceRoot":""}