{"version":3,"sources":["../node_modules/js-cookie/src/js.cookie.js","components/Corporate/Announcements/InPageAnnouncement/StyledInPageAnnouncement.ts","components/Corporate/Announcements/InPageAnnouncement/index.tsx","components/Corporate/Announcements/SiteWideAnnouncement/StyledSiteWideAnnouncement.ts","components/Corporate/Announcements/SiteWideAnnouncement/index.tsx","components/Corporate/Announcements/index.tsx"],"names":["factory","define","module","exports","OldCookies","window","Cookies","api","noConflict","extend","i","result","arguments","length","attributes","key","decode","s","replace","decodeURIComponent","init","converter","set","value","document","path","defaults","expires","Date","toUTCString","JSON","stringify","test","e","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","split","cookie","get","json","jar","cookies","parts","slice","join","charAt","name","read","parse","getJSON","remove","withConverter","announcementThemes","Primary","css","color","Warning","AnnouncementWrapper","styled","div","theme","spacing","p","alertStyle","mt","IconWrapper","svg","TextWrapper","ml","TitleWrapper","safeFocusRemoval","focusOutline","heading_s","Content","RichText","text_s","externalLinkStyle","Icons","Announcement","description","link","title","type","titleWrapperAttrs","as","href","target","tabIndex","role","field","editable","hasDescription","Trigger","button","TriggerIconWrapper","span","hideOnPrint","dismissable","id","useTranslation","t","useState","hidden","setHidden","announcementId","portal","getPortal","Portals","before","createPortal","aria-hidden","className","aria-label","aria-controls","aria-expanded","onClick","Announcements","fields","announcements","isInPage","some","a","announcementComponents","filter","map","InPageAnnouncement","SiteWideAnnouncement","Container","py","Row","config","gutters","Item","col","xs","Fragment"],"mappings":"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","file":"static/js/Announcements.7db3d7f5.chunk.js","sourcesContent":["/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","import styled, { css } from 'styled-components';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport { color, heading_s, text_s, svg, safeFocusRemoval, focusOutline } from '_utils/styles';\r\nimport { externalLinkStyle } from \"_components/Corporate/ContentRichText/StyledContentRichText\";\r\n\r\nconst announcementThemes = {\r\n Primary: css`\r\n background-color: ${color('all.blueTint15')};\r\n\r\n path {\r\n fill: ${color('all.blue')};\r\n }\r\n `,\r\n Warning: css`\r\n background-color: ${color('all.annandaleOrangeTint15')};\r\n\r\n path {\r\n fill: ${color('all.annandaleOrangeTint110')};\r\n }\r\n `,\r\n 'High alert': css`\r\n background-color: ${color('all.pottsPointRedTint15')};\r\n\r\n path {\r\n fill: ${color('all.pottsPointRedTint110')};\r\n }\r\n `\r\n};\r\n\r\nconst handleAnnouncementTheme = ({ alertStyle }) => announcementThemes[alertStyle];\r\n\r\nexport const AnnouncementWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, p: 3 })};\r\n color: ${color('element.black')};\r\n ${handleAnnouncementTheme}\r\n display: flex;\r\n align-items: flex-start;\r\n border-radius: 8px;\r\n & + & {\r\n ${({ theme }) => spacing({ theme, mt: 3 })};\r\n }\r\n\r\n @media print {\r\n ${({ theme }) => spacing({ theme, p: 0 })};\r\n }\r\n`;\r\n\r\nexport const IconWrapper = styled.div`\r\n ${svg(20, 20)}\r\n width: 20px;\r\n flex-shrink: 0;\r\n position: relative;\r\n top: 3px;\r\n`;\r\n\r\nexport const TextWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, ml: 2 })};\r\n`;\r\n\r\nexport const TitleWrapper = styled.div`\r\n color: inherit;\r\n display: inline-block;\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n\r\n h2 {\r\n ${heading_s}\r\n margin: 0;\r\n }\r\n`;\r\n\r\nexport const Content = styled(RichText)`\r\n ${text_s}\r\n margin: 0;\r\n ${({ theme }) => spacing({ theme, mt: 1 })};\r\n\r\n a {\r\n color: inherit;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n }\r\n .external-link {\r\n ${externalLinkStyle}\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { WarningCircle, InfoCircle, Warning } from '_utils/icons';\r\n\r\nimport {\r\n AnnouncementWrapper,\r\n TitleWrapper,\r\n Content,\r\n TextWrapper,\r\n IconWrapper\r\n} from './StyledInPageAnnouncement';\r\n\r\ntype AnnouncementProps = {\r\n description: any;\r\n id: any;\r\n link: any;\r\n title: any;\r\n type: any;\r\n};\r\n\r\nconst Icons = {\r\n Primary: ,\r\n Warning: ,\r\n 'High alert': \r\n};\r\n\r\nconst Announcement: React.FC = ({ description, link, title, type }) => {\r\n let titleWrapperAttrs = {\r\n as: 'div',\r\n href: null,\r\n target: null,\r\n tabIndex: null\r\n };\r\n\r\n if (link.value.href !== '') {\r\n titleWrapperAttrs.as = 'a';\r\n titleWrapperAttrs.href = link.value.href;\r\n titleWrapperAttrs.target = link.value.target;\r\n }\r\n\r\n return (\r\n \r\n {Icons[type.value || 'Primary']}\r\n \r\n \r\n

\r\n \r\n

\r\n
\r\n\r\n {description.value !== '' && }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Announcement;\r\n","import styled, { css } from 'styled-components';\r\nimport { RichText } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { spacing } from '_utils/props';\r\nimport {\r\n color,\r\n heading_s,\r\n text_s,\r\n svg,\r\n safeFocusRemoval,\r\n focusOutline,\r\n hideOnPrint\r\n} from '_utils/styles';\r\nimport { externalLinkStyle } from \"_components/Corporate/ContentRichText/StyledContentRichText\";\r\n\r\nconst announcementThemes = {\r\n Primary: css`\r\n background-color: ${color('background.tertiary')};\r\n `,\r\n Warning: css`\r\n background-color: ${color('all.annandaleOrangeTint110')};\r\n `,\r\n 'High alert': css`\r\n background-color: ${color('all.pottsPointRedTint110')};\r\n `\r\n};\r\n\r\nconst handleAnnouncementTheme = ({ alertStyle }) => announcementThemes[alertStyle];\r\n\r\nexport const AnnouncementWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, p: 3 })};\r\n color: ${color('element.white')};\r\n\r\n ${handleAnnouncementTheme}\r\n display: flex;\r\n align-items: ${({ hasDescription }) => (hasDescription ? 'flex-start' : 'center')};\r\n\r\n &:not(.announcement-hidden) + &:not(.announcement-hidden) {\r\n ${({ theme }) => spacing({ theme, mt: 3 })};\r\n }\r\n\r\n path {\r\n fill: ${color('element.white')};\r\n }\r\n @media print {\r\n path {\r\n fill: ${color('element.black')};\r\n }\r\n }\r\n`;\r\n\r\nexport const IconWrapper = styled.div`\r\n ${svg(20, 20)}\r\n width: 20px;\r\n flex-shrink: 0;\r\n position: relative;\r\n top: 3px;\r\n`;\r\n\r\nexport const TextWrapper = styled.div`\r\n ${({ theme }) => spacing({ theme, ml: 2 })};\r\n flex-grow: 1;\r\n`;\r\n\r\nexport const TitleWrapper = styled.div`\r\n color: inherit;\r\n display: inline-block;\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n\r\n h2 {\r\n ${heading_s}\r\n margin: 0;\r\n }\r\n`;\r\n\r\nexport const Content = styled(RichText)`\r\n ${text_s}\r\n margin: 0;\r\n ${({ theme }) => spacing({ theme, mt: 1 })};\r\n\r\n a {\r\n color: inherit;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n }\r\n .external-link {\r\n ${externalLinkStyle}\r\n }\r\n`;\r\n\r\nexport const Trigger = styled.button`\r\n border: 0;\r\n background: none;\r\n padding: 0;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n ${({ theme }) => spacing({ theme, ml: 1 })};\r\n position: relative;\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n`;\r\n\r\nexport const TriggerIconWrapper = styled.span`\r\n ${svg(12, 12)}\r\n width: 12px;\r\n flex-shrink: 0;\r\n ${hideOnPrint}\r\n`;\r\n","import React, { useState } from 'react';\r\n\r\nimport { createPortal } from 'react-dom';\r\nimport cookies from 'js-cookie';\r\n\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\n\r\nimport { WarningCircle, InfoCircle, Warning, Cross } from '_utils/icons';\r\nimport { getPortal, Portals } from '_utils/helpers';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport {\r\n AnnouncementWrapper,\r\n TitleWrapper,\r\n Content,\r\n TextWrapper,\r\n IconWrapper,\r\n Trigger,\r\n TriggerIconWrapper\r\n} from './StyledSiteWideAnnouncement';\r\n\r\ntype AnnouncementProps = {\r\n description: any;\r\n dismissable: any;\r\n id: any;\r\n link: any;\r\n title: any;\r\n type: any;\r\n};\r\n\r\nconst Icons = {\r\n Primary: ,\r\n Warning: ,\r\n 'High alert': \r\n};\r\n\r\nconst Announcement: React.FC = ({\r\n description,\r\n dismissable = { value: false },\r\n id,\r\n link,\r\n title,\r\n type\r\n}) => {\r\n const [t] = useTranslation();\r\n const [hidden, setHidden] = useState(false);\r\n const announcementId = `announcement-${id}`;\r\n\r\n let titleWrapperAttrs = {\r\n as: 'div',\r\n href: null,\r\n target: null,\r\n tabIndex: null\r\n };\r\n\r\n if (link.value.href !== '') {\r\n titleWrapperAttrs.as = 'a';\r\n titleWrapperAttrs.href = link.value.href;\r\n titleWrapperAttrs.target = link.value.target;\r\n titleWrapperAttrs.tabIndex = hidden ? -1 : null;\r\n }\r\n\r\n const handleTriggerClick = () => {\r\n setHidden(true);\r\n\r\n cookies.set(`${announcementId}-dismissed`, true, { expires: 30 });\r\n };\r\n\r\n const portal = getPortal(Portals.before);\r\n\r\n // Stops spacing going out of whack\r\n if (hidden || portal === null) {\r\n return null;\r\n }\r\n\r\n return createPortal(\r\n