{"version":3,"sources":["../node_modules/flickity-as-nav-for/as-nav-for.js","utils/helpers/detectElementResize/index.js","components/Corporate/Gallery/StyledGallery.ts","components/Corporate/Gallery/StyledModalGallery.ts","components/Corporate/Gallery/ModalGallery.tsx","utils/icons/Expandable.tsx","components/Corporate/Gallery/index.tsx"],"names":["window","define","Flickity","utils","createMethods","push","proto","prototype","_createAsNavFor","this","on","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","options","asNavFor","_this","setTimeout","setNavCompanion","elem","getQueryElement","companion","data","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","isInstant","a","b","t","selectedCell","selectedCells","firstIndex","cells","indexOf","lastIndex","length","selectIndex","Math","floor","cellAlign","selectCell","removeNavSelectedElements","slice","navSelectedElements","map","cell","element","changeNavSelectedClass","method","forEach","navElem","classList","event","pointer","cellElement","cellIndex","off","attachEvent","document","stylesCreated","requestFrame","raf","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","cancelFrame","cancel","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","id","resetTriggers","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","style","width","offsetWidth","height","offsetHeight","scrollListener","e","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","call","animation","keyframeprefix","animationstartevent","domPrefixes","split","startEvents","elm","createElement","undefined","animationName","i","toLowerCase","animationKeyframes","animationStyle","addResizeListener","getComputedStyle","position","css","head","getElementsByTagName","type","styleSheet","cssText","appendChild","createTextNode","createStyles","className","innerHTML","addEventListener","removeResizeListener","detachEvent","splice","removeEventListener","removeChild","PreviewContainer","styled","figure","aspect","mq","theme","colors","background","secondary","spacing","mt","ImageContainer","p","heading_s","div","Image","SCImage","ExpandButton","button","buttonReset","safeFocusRemoval","focusOutline","ExpandableIndicator","ExpandableWrapper","span","svg","ShowMore","ShowMoreCount","heading_xl","white","ImageListContainer","ImageListBlock","ImageListGridY","ImageCell","CaptionCell","CaptionWrap","ExpEdImage","Container","bgColor","modal","container","ThumbsContainer","nav","Thumbs","ThumbContainer","focused","Slides","Carousel","ThumbImage","Slide","SlideImage","PrevNextPosition","motion","ease","PrevNextButton","buttonSize","buttons","default","buttonColors","primary","ArrowWrapper","iconColorOnPrint","CaptionContainer","figcaption","SlideCount","Title","Text","Caption","StyledContentRichText","Credit","isIE11","require","MSInputMethodContext","documentMode","getRandomId","random","toString","substr","noop","ModalGallery","items","gallery","filter","item","Boolean","value","src","caption","credit","title","useState","thumbsId","slidesId","flickity","setFlickity","thumbsFlickity","setThumbsFlickity","thumbsExtendLeft","setThumbsExtendLeft","thumbsExtendRight","setThumbsExtendRight","containerWidth","setContainerWidth","prevEnabled","setPrevEnabled","nextEnabled","setNextEnabled","slideIndex","setSlideIndex","useTranslation","containerRef","useRef","prevFlickity","usePrevious","scrollListenerRef","scroll","thumbOptions","contain","draggable","pageDots","prevNextButtons","static","accessibility","useEffect","current","resizeListener","resize","selectListener","ref","aria-label","flickityRef","index","key","onClick","select","once","getCellElements","focus","err","field","imagePlaceholderSrc","alt","convertSrcJss","previous","disabled","ScreenReader","ariaHidden","setGallerySize","disableImagesLoaded","tabIndex","createSrcSet","role","aria-hidden","tag","next","withSvg","d","EditorNotice","compose","withEditModeNotice","getValidGalleryItems","withEditMode","withModalContext","withBannerCurve","backgroundColor","BackgroundColors","Grey","renderNothing","fields","datasource","renderCurve","params","hasSomeImages","showCurvedBorder","editMode","setModal","expanded","setExpanded","galleryImages","previewImages","imageClassModifier","showMoreCount","editorNotice","noticeEnabled","noticeMessage","ContentRichText","editable","aria-haspopup","aria-expanded","content","onClose","Expandable"],"mappings":"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","file":"static/js/Gallery.b831dedb.chunk.js","sourcesContent":["/*!\n * Flickity asNavFor v2.0.1\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'fizzy-ui-utils/utils'\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( Flickity, utils ) {\n\n'use strict';\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n this.on( 'activate', this.activateAsNavFor );\n this.on( 'deactivate', this.deactivateAsNavFor );\n this.on( 'destroy', this.destroyAsNavFor );\n\n var asNavForOption = this.options.asNavFor;\n if ( !asNavForOption ) {\n return;\n }\n // HACK do async, give time for other flickity to be initalized\n var _this = this;\n setTimeout( function initNavCompanion() {\n _this.setNavCompanion( asNavForOption );\n });\n};\n\nproto.setNavCompanion = function( elem ) {\n elem = utils.getQueryElement( elem );\n var companion = Flickity.data( elem );\n // stop if no companion or companion is self\n if ( !companion || companion == this ) {\n return;\n }\n\n this.navCompanion = companion;\n // companion select\n var _this = this;\n this.onNavCompanionSelect = function() {\n _this.navCompanionSelect();\n };\n companion.on( 'select', this.onNavCompanionSelect );\n // click\n this.on( 'staticClick', this.onNavStaticClick );\n\n this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n if ( !this.navCompanion ) {\n return;\n }\n // select slide that matches first cell of slide\n var selectedCell = this.navCompanion.selectedCells[0];\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n var lastIndex = firstIndex + this.navCompanion.selectedCells.length - 1;\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n this.navCompanion.cellAlign ) );\n this.selectCell( selectIndex, false, isInstant );\n // set nav selected class\n this.removeNavSelectedElements();\n // stop if companion has more cells than this one\n if ( selectIndex >= this.cells.length ) {\n return;\n }\n\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n this.navSelectedElements = selectedCells.map( function( cell ) {\n return cell.element;\n });\n this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n this.navSelectedElements.forEach( function( navElem ) {\n navElem.classList[ method ]('is-nav-selected');\n });\n};\n\nproto.activateAsNavFor = function() {\n this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n if ( !this.navSelectedElements ) {\n return;\n }\n this.changeNavSelectedClass('remove');\n delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n if ( typeof cellIndex == 'number' ) {\n this.navCompanion.selectCell( cellIndex );\n }\n};\n\nproto.deactivateAsNavFor = function() {\n this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n if ( !this.navCompanion ) {\n return;\n }\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\n this.off( 'staticClick', this.onNavStaticClick );\n delete this.navCompanion;\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n}));\n","/**\r\n * Detect Element Resize\r\n *\r\n * https://github.com/sdecima/javascript-detect-element-resize\r\n * Sebastian Decima\r\n *\r\n * version: 0.5.3\r\n **/\r\n\r\n// modified by DMcK to remove if(!attachEvent) clause as per\r\n// https://github.com/sdecima/javascript-detect-element-resize/issues/54\r\n\r\n(function() {\r\n var attachEvent = document.attachEvent,\r\n stylesCreated = false;\r\n\r\n // if (!attachEvent) {\r\n var requestFrame = (function() {\r\n var raf =\r\n window.requestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n function(fn) {\r\n return window.setTimeout(fn, 20);\r\n };\r\n return function(fn) {\r\n return raf(fn);\r\n };\r\n })();\r\n\r\n var cancelFrame = (function() {\r\n var cancel =\r\n window.cancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.clearTimeout;\r\n return function(id) {\r\n return cancel(id);\r\n };\r\n })();\r\n\r\n function resetTriggers(element) {\r\n var triggers = element.__resizeTriggers__,\r\n expand = triggers.firstElementChild,\r\n contract = triggers.lastElementChild,\r\n expandChild = expand.firstElementChild;\r\n contract.scrollLeft = contract.scrollWidth;\r\n contract.scrollTop = contract.scrollHeight;\r\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\r\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\r\n expand.scrollLeft = expand.scrollWidth;\r\n expand.scrollTop = expand.scrollHeight;\r\n }\r\n\r\n function checkTriggers(element) {\r\n return (\r\n element.offsetWidth !== element.__resizeLast__.width ||\r\n element.offsetHeight !== element.__resizeLast__.height\r\n );\r\n }\r\n\r\n function scrollListener(e) {\r\n var element = this;\r\n resetTriggers(this);\r\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\r\n this.__resizeRAF__ = requestFrame(function() {\r\n if (checkTriggers(element)) {\r\n element.__resizeLast__.width = element.offsetWidth;\r\n element.__resizeLast__.height = element.offsetHeight;\r\n element.__resizeListeners__.forEach(function(fn) {\r\n fn.call(element, e);\r\n });\r\n }\r\n });\r\n }\r\n\r\n /* Detect CSS Animations support to detect element display/re-attach */\r\n var animation = false,\r\n keyframeprefix = '',\r\n animationstartevent = 'animationstart',\r\n domPrefixes = 'Webkit Moz O ms'.split(' '),\r\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\r\n pfx = '';\r\n\r\n var elm = document.createElement('fakeelement');\r\n if (elm.style.animationName !== undefined) {\r\n animation = true;\r\n }\r\n\r\n if (animation === false) {\r\n for (var i = 0; i < domPrefixes.length; i++) {\r\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\r\n pfx = domPrefixes[i];\r\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\r\n animationstartevent = startEvents[i];\r\n animation = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n var animationName = 'resizeanim';\r\n var animationKeyframes =\r\n '@' +\r\n keyframeprefix +\r\n 'keyframes ' +\r\n animationName +\r\n ' { from { opacity: 0; } to { opacity: 0; } } ';\r\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\r\n // }\r\n\r\n function createStyles() {\r\n if (!stylesCreated) {\r\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\r\n var css =\r\n (animationKeyframes ? animationKeyframes : '') +\r\n '.resize-triggers { ' +\r\n (animationStyle ? animationStyle : '') +\r\n 'visibility: hidden; opacity: 0; } ' +\r\n '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\r\n head = document.head || document.getElementsByTagName('head')[0],\r\n style = document.createElement('style');\r\n\r\n style.type = 'text/css';\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = css;\r\n } else {\r\n style.appendChild(document.createTextNode(css));\r\n }\r\n\r\n head.appendChild(style);\r\n stylesCreated = true;\r\n }\r\n }\r\n\r\n window.addResizeListener = function(element, fn) {\r\n if (attachEvent) element.attachEvent('onresize', fn);\r\n else {\r\n if (!element.__resizeTriggers__) {\r\n if (getComputedStyle(element).position === 'static') element.style.position = 'relative';\r\n createStyles();\r\n element.__resizeLast__ = {};\r\n element.__resizeListeners__ = [];\r\n (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\r\n element.__resizeTriggers__.innerHTML =\r\n '
';\r\n element.appendChild(element.__resizeTriggers__);\r\n resetTriggers(element);\r\n element.addEventListener('scroll', scrollListener, true);\r\n\r\n /* Listen for a css animation to detect element display/re-attach */\r\n animationstartevent &&\r\n element.__resizeTriggers__.addEventListener(animationstartevent, function(e) {\r\n if (e.animationName === animationName) resetTriggers(element);\r\n });\r\n }\r\n element.__resizeListeners__.push(fn);\r\n }\r\n };\r\n\r\n window.removeResizeListener = function(element, fn) {\r\n if (attachEvent) element.detachEvent('onresize', fn);\r\n else {\r\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\r\n if (!element.__resizeListeners__.length) {\r\n element.removeEventListener('scroll', scrollListener);\r\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\r\n }\r\n }\r\n };\r\n})();\r\n","import styled from 'styled-components';\r\nimport {\r\n aspect,\r\n svg,\r\n mq,\r\n buttonReset,\r\n focusOutline,\r\n safeFocusRemoval,\r\n heading_xl,\r\n heading_s\r\n} from '_utils/styles';\r\nimport { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport { spacing } from '_utils/props';\r\n\r\nexport const PreviewContainer = styled.figure`\r\n margin: 0;\r\n\r\n ${aspect(16, 9)}\r\n\r\n &.triple {\r\n ${aspect(17, 16)}\r\n }\r\n\r\n ${mq('lg')} {\r\n ${aspect(21, 9)}\r\n\r\n &.triple {\r\n ${aspect(21, 9)}\r\n }\r\n }\r\n\r\n background-color: ${({ theme }) => theme.colors.background.secondary};\r\n position: relative;\r\n & + & {\r\n ${({ theme }) => spacing({ theme, mt: 2 })}\r\n }\r\n`;\r\n\r\nexport const EditorTitle = styled.p`\r\n ${heading_s}\r\n margin-top: 32px;\r\n`;\r\n\r\nexport const ImageContainer = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n\r\n &.double {\r\n width: calc(50% - 1px);\r\n\r\n &:nth-of-type(2) {\r\n left: auto;\r\n right: 0;\r\n }\r\n }\r\n\r\n &.triple {\r\n &:nth-of-type(1) {\r\n height: calc(60% - 1px);\r\n }\r\n &:nth-of-type(2) {\r\n width: calc(50% - 1px);\r\n height: calc(40% - 1px);\r\n top: auto;\r\n bottom: 0;\r\n }\r\n &:nth-of-type(3) {\r\n width: calc(50% - 1px);\r\n height: calc(40% - 1px);\r\n left: auto;\r\n right: 0;\r\n top: auto;\r\n bottom: 0;\r\n }\r\n\r\n ${mq('lg')} {\r\n &:nth-of-type(1) {\r\n width: calc(68% - 1px);\r\n height: 100%;\r\n }\r\n &:nth-of-type(2) {\r\n width: calc(32% - 1px);\r\n height: calc(50% - 1px);\r\n left: auto;\r\n right: 0;\r\n top: 0;\r\n bottom: auto;\r\n }\r\n &:nth-of-type(3) {\r\n width: calc(32% - 1px);\r\n height: calc(50% - 1px);\r\n left: auto;\r\n right: 0;\r\n top: auto;\r\n bottom: 0;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const Image = styled(SCImage)`\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n object-fit: cover;\r\n object-position: 50% 50%;\r\n font-family: 'object-fit: cover; object-position: 50% 50%;';\r\n`;\r\n\r\nexport const ExpandButton = styled.button`\r\n ${buttonReset}\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n }\r\n\r\n &:focus {\r\n outline-offset: -2px;\r\n }\r\n`;\r\n\r\nexport const ExpandableIndicator = styled.div`\r\n position: absolute;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 9999px;\r\n background: rgba(4, 28, 44, 0.5);\r\n right: 8px;\r\n top: 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nexport const ExpandableWrapper = styled.span`\r\n ${svg(16, 16)}\r\n width: 13px;\r\n flex: none;\r\n path {\r\n fill: white;\r\n }\r\n\r\n @media (hover: hover) {\r\n transition: transform 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);\r\n ${ExpandButton}:hover & {\r\n transform: scale(1.3);\r\n }\r\n }\r\n`;\r\n\r\nexport const ShowMore = styled.div`\r\n background-image: linear-gradient(0deg, rgba(4, 28, 44, 0.5), rgba(4, 28, 44, 0.5));\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nexport const ShowMoreCount = styled.span`\r\n ${() => heading_xl()}\r\n color: ${({ theme }) => theme.colors.element.white}; \r\n`;\r\n\r\nexport const ImageListContainer = styled.div`\r\n position: relative;\r\n height: 70vh;\r\n width: 100%;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n flex-direction: row;\r\n overflow-x: scroll;\r\n`;\r\nexport const ImageListBlock = styled.div`\r\n min-width: 100%;\r\n width: 100%;\r\n margin-right: 20px;\r\n`;\r\n\r\nexport const ImageListGridY = styled.div`\r\n display: flex;\r\n height: 100%;\r\n flex-flow: column nowrap;\r\n`;\r\n\r\nexport const ImageCell = styled.div`\r\n height: 66.66667%;\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: none;\r\n min-height: 0;\r\n min-width: 0;\r\n`;\r\n\r\nexport const CaptionCell = styled.div`\r\n overflow-y: auto;\r\n padding: 1em;\r\n\r\n height: 33.33333%;\r\n flex: 0 0 auto;\r\n width: auto;\r\n max-width: none;\r\n min-height: 0;\r\n min-width: 0;\r\n p {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n`;\r\nexport const CaptionWrap = styled.div`\r\n width: 60%;\r\n margin: 0 auto;\r\n`;\r\n\r\nexport const ExpEdImage = styled(SCImage)`\r\n object-fit: contain;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n","import styled from 'styled-components';\r\nimport { Image as SCImage } from '@sitecore-jss/sitecore-jss-react';\r\nimport { Text } from '@sitecore-jss/sitecore-jss-react';\r\nimport StyledContentRichText from '_components/Corporate/ContentRichText/StyledContentRichText';\r\n\r\nimport {\r\n aspect,\r\n svg,\r\n mq,\r\n heading_s,\r\n buttonReset,\r\n buttonColors,\r\n buttonSize,\r\n focusOutline,\r\n safeFocusRemoval,\r\n iconColorOnPrint\r\n} from '_utils/styles';\r\n\r\nimport Flickity from 'react-flickity-component';\r\n\r\nexport const Container = styled.div`\r\n height: 100%;\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst bgColor = ({ theme }) => theme.colors.modal.container.background;\r\n\r\nexport const ThumbsContainer = styled.nav`\r\n flex: none;\r\n`;\r\n\r\nexport const Thumbs = styled(Flickity)`\r\n display: flex;\r\n\r\n &:focus {\r\n ${focusOutline}\r\n ${safeFocusRemoval}\r\n }\r\n\r\n flex: none;\r\n width: 100%;\r\n height: 48px;\r\n justify-content: center;\r\n position: relative;\r\n\r\n ${mq('md')} {\r\n height: 80px;\r\n }\r\n\r\n .flickity-viewport {\r\n width: 100%;\r\n }\r\n\r\n &:after,\r\n &:before {\r\n opacity: 0;\r\n transition: opacity 0.2s linear;\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n width: 24px;\r\n height: 100%;\r\n z-index: 1;\r\n }\r\n\r\n &:before {\r\n left: 0;\r\n background-image: linear-gradient(270deg, rgba(4, 28, 44, 0) 0%, ${bgColor} 95%);\r\n }\r\n\r\n &:after {\r\n right: 0;\r\n background-image: linear-gradient(90deg, rgba(4, 28, 44, 0) 0%, ${bgColor} 95%);\r\n }\r\n\r\n &.fade-left {\r\n &:before {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n &.fade-right {\r\n &:after {\r\n opacity: 1;\r\n }\r\n }\r\n`;\r\n\r\nexport const ThumbContainer = styled.button`\r\n ${buttonReset}\r\n\r\n flex: none;\r\n width: 48px;\r\n height: 48px;\r\n margin-left: 8px;\r\n\r\n ${mq('md')} {\r\n width: 80px;\r\n height: 80px;\r\n }\r\n\r\n background: white;\r\n\r\n &.is-selected {\r\n border: 3px solid ${({ theme }) => theme.colors.element.secondary};\r\n\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(45, 184, 75, 0.25);\r\n z-index: 1;\r\n }\r\n }\r\n\r\n body:not(.safe-focus-removal) &:focus {\r\n outline: 0;\r\n border: 3px solid ${({ theme }) => theme.colors.element.focused};\r\n }\r\n`;\r\n\r\nexport const Slides = styled.div`\r\n width: 100%;\r\n margin-top: 16px;\r\n position: relative;\r\n\r\n ${mq('md')} {\r\n margin-top: 32px;\r\n }\r\n`;\r\n\r\nexport const Carousel = styled(Flickity)`\r\n .flickity-viewport {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const ThumbImage = styled(SCImage)`\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n object-fit: cover;\r\n object-position: 50% 50%;\r\n font-family: 'object-fit: cover; object-position: 50% 50%;';\r\n`;\r\n\r\nexport const Slide = styled.div`\r\n width: 100%;\r\n margin: 0 16px 0 0;\r\n &:focus {\r\n ${safeFocusRemoval}\r\n ${focusOutline}\r\n outline-offset: -2px !important;\r\n }\r\n`;\r\n\r\nexport const ImageContainer = styled.figure`\r\n width: 100%;\r\n ${aspect(4, 3)}\r\n /* max-height: 480px; */\r\n flex: none;\r\n margin: 0;\r\n`;\r\n\r\nexport const SlideImage = styled(SCImage)`\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n object-fit: contain;\r\n font-family: 'object-fit: contain;';\r\n`;\r\n\r\nexport const PrevNextPosition = styled.div`\r\n position: absolute;\r\n margin-top: 37.75%; /* half of 75% which is image height (aspect) */\r\n z-index: 1;\r\n overflow: visible;\r\n top: 0;\r\n transition: transform 0.4s ${({ theme }) => theme.motion.ease};\r\n\r\n &.prev {\r\n left: 0;\r\n transform: translate(-50%, -50%);\r\n\r\n ${mq('xl')} {\r\n transform: translate(-150%, -50%);\r\n }\r\n }\r\n\r\n &.next {\r\n right: 0;\r\n transform: translate(50%, -50%);\r\n\r\n ${mq('xl')} {\r\n transform: translate(150%, -50%);\r\n }\r\n }\r\n`;\r\n\r\nexport const PrevNextButton = styled.button`\r\n ${buttonReset}\r\n ${({ theme }) => buttonSize(theme.buttons.default)}\r\n ${({ theme }) => buttonColors(theme.colors.button.primary)}\r\n ${safeFocusRemoval}\r\n width: 32px;\r\n height: 32px;\r\n\r\n ${mq('md')} {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n opacity: 1;\r\n transition: opacity 0.3s linear;\r\n \r\n &:disabled {\r\n opacity: 0;\r\n pointer-events: none;\r\n cursor: auto;\r\n }\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nexport const ArrowWrapper = styled.span`\r\n flex: none;\r\n ${svg(7, 12)}\r\n width: 8px;\r\n path {\r\n fill: ${({ theme }) => theme.colors.element.white};\r\n ${iconColorOnPrint}\r\n }\r\n\r\n .prev & {\r\n transform: rotate(180deg);\r\n }\r\n`;\r\n\r\nexport const CaptionContainer = styled.figcaption`\r\n flex: 1 1 auto;\r\n display: flex;\r\n flex-direction: column;\r\n color: ${({ theme }) => theme.colors.element.white};\r\n margin-top: 16px;\r\n opacity: 1;\r\n\r\n a:visited {\r\n color: inherit !important;\r\n }\r\n\r\n transition: opacity 0.3s linear;\r\n\r\n ${Slide}:not(.is-selected) & {\r\n opacity: 0;\r\n visibility: hidden;\r\n }\r\n\r\n ${mq('md')} {\r\n flex-direction: row;\r\n }\r\n`;\r\n\r\nexport const SlideCount = styled.span`\r\n padding-bottom: 8px;\r\n white-space: nowrap;\r\n\r\n ${mq('md')} {\r\n padding-right: 32px;\r\n }\r\n`;\r\n\r\nexport const Title = styled(Text)`\r\n ${heading_s}\r\n`;\r\n\r\nexport const Caption = styled(StyledContentRichText)`\r\n ${Title} + & {\r\n margin-top: 1em;\r\n }\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n`;\r\n\r\nexport const Credit = styled(Text)`\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n`;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport { imagePlaceholderSrc } from '_utils/styles';\r\nimport { SimpleArrow } from '_utils/icons';\r\nimport { convertSrcJss, createSrcSet } from '_utils/media';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport {\r\n Container,\r\n ThumbsContainer,\r\n Thumbs,\r\n ThumbContainer,\r\n ThumbImage,\r\n Slides,\r\n Carousel,\r\n Slide,\r\n ImageContainer,\r\n SlideImage,\r\n CaptionContainer,\r\n SlideCount,\r\n Caption,\r\n PrevNextPosition,\r\n PrevNextButton,\r\n Title,\r\n Credit,\r\n ArrowWrapper\r\n} from './StyledModalGallery';\r\nimport { usePrevious } from '_utils/hooks';\r\nimport ScreenReader from '_utils/components/Corporate/ScreenReader';\r\n\r\nlet isIE11 = false;\r\n\r\nif (typeof window !== 'undefined') {\r\n require('flickity-as-nav-for');\r\n require('_utils/helpers/detectElementResize');\r\n isIE11 = !!window.MSInputMethodContext && !!(document as any).documentMode;\r\n}\r\n\r\nconst getRandomId = () =>\r\n Math.random()\r\n .toString()\r\n .substr(2);\r\n\r\nconst noop = () => {};\r\n\r\nconst ModalGallery = ({ gallery }) => {\r\n // filter by items that have data\r\n let items = gallery\r\n .filter(({ item }) => Boolean(item?.data?.value?.src))\r\n .map(({ item, caption, credit, title }) => ({\r\n item: item.data.value,\r\n caption: caption?.data,\r\n credit: credit?.data,\r\n title: title?.data\r\n }));\r\n const [thumbsId] = useState(`gallery-thumbs-${getRandomId()}`);\r\n const [slidesId] = useState(`gallery-slides-${getRandomId()}`);\r\n const [flickity, setFlickity] = useState(null);\r\n const [thumbsFlickity, setThumbsFlickity] = useState(null);\r\n const [thumbsExtendLeft, setThumbsExtendLeft] = useState(false);\r\n const [thumbsExtendRight, setThumbsExtendRight] = useState(false);\r\n const [containerWidth, setContainerWidth] = useState(0);\r\n const [prevEnabled, setPrevEnabled] = useState(false);\r\n const [nextEnabled, setNextEnabled] = useState(false);\r\n const [slideIndex, setSlideIndex] = useState(0);\r\n const [t] = useTranslation();\r\n\r\n const containerRef = useRef();\r\n\r\n const prevFlickity = usePrevious(flickity);\r\n\r\n const scrollListenerRef = useRef((scroll) => {\r\n if (scroll > 0.01) {\r\n setThumbsExtendLeft(true);\r\n } else {\r\n setThumbsExtendLeft(false);\r\n }\r\n\r\n if (scroll < 0.99) {\r\n setThumbsExtendRight(true);\r\n } else {\r\n setThumbsExtendRight(false);\r\n }\r\n });\r\n\r\n // note 'static' that prevents breaking SSR\r\n const thumbOptions = {\r\n cellAlign: 'left',\r\n contain: true,\r\n draggable: true,\r\n pageDots: false,\r\n prevNextButtons: false,\r\n asNavFor: `.${slidesId}`,\r\n static: true,\r\n accessibility: false\r\n };\r\n\r\n const mainOptions = {\r\n contain: true,\r\n draggable: true,\r\n pageDots: false,\r\n prevNextButtons: false,\r\n setGallerySize: true,\r\n static: true,\r\n accessibility: false\r\n };\r\n\r\n // scroll listener on thumbs to add gradient fade\r\n useEffect(() => {\r\n const scrollListener = scrollListenerRef.current;\r\n\r\n if (thumbsFlickity) {\r\n thumbsFlickity.off('scroll', scrollListener);\r\n thumbsFlickity.on('scroll', scrollListener);\r\n }\r\n\r\n return () => {\r\n if (thumbsFlickity) {\r\n thumbsFlickity.off('scroll', scrollListener);\r\n }\r\n };\r\n }, [thumbsFlickity]);\r\n\r\n // because the modal container has scrolling auto, the container size can jump\r\n // during initialisation, causing flickity to calculate slide position/size\r\n // incorrectly.\r\n // Here we wait for initialisation of flickity and add a listener to container\r\n // size changes to force update\r\n useEffect(() => {\r\n const container: HTMLElement = containerRef.current;\r\n\r\n const addResizeListener =\r\n typeof window !== undefined && window['addResizeListener']\r\n ? window['addResizeListener']\r\n : noop;\r\n\r\n const removeResizeListener =\r\n typeof window !== undefined && window['removeResizeListener']\r\n ? window['removeResizeListener']\r\n : noop;\r\n\r\n if (!prevFlickity && flickity) {\r\n const resizeListener = () => {\r\n if (flickity && container.offsetWidth !== containerWidth) {\r\n setTimeout(() => {\r\n flickity.resize();\r\n }, 0);\r\n setContainerWidth(container.offsetWidth);\r\n }\r\n };\r\n\r\n addResizeListener(container, resizeListener);\r\n\r\n return () => {\r\n removeResizeListener(container, resizeListener);\r\n };\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [flickity, items]);\r\n\r\n // listen to flickity select to update current slide index\r\n useEffect(() => {\r\n const selectListener = (i) => {\r\n setPrevEnabled(items && i > 0);\r\n setNextEnabled(items && i < items.length - 1);\r\n setSlideIndex(i);\r\n };\r\n\r\n if (!prevFlickity && flickity) {\r\n flickity.on('select', selectListener);\r\n\r\n return () => {\r\n flickity.off('select', selectListener);\r\n };\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [flickity]);\r\n\r\n if (!items.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n\r\n
\r\n
\r\n