{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/stories/Components/Cards/DocumentCard/DocumentCard.tsx","webpack:///./src/stories/Components/Global/Typography/Heading.tsx","webpack:///./src/helpers/date.ts","webpack:///./src/img/icons/chevron.svg","webpack:///./src/stories/Widgets/Content/LatestNewsCarousel/LatestNewsCarousel.styles.ts","webpack:///./src/stories/Widgets/Content/LatestNewsCarousel/LatestNewsCarousel.widget.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","50","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","DocumentCard","React","forwardRef","props","ref","createElement","DocumentCardStyles","Card","href","document","url","draggable","isLatestNewsWidget","TagArea","noticeTag","NoticeTag","groundforceDivision","DivisionTag","class","Media","Image","src","imageUrl","width","height","sizes","until","Device","TabletLarge","DesktopLarge","layout","objectFit","alt","title","fullPaddingTop","Content","date","Date","as","dateTime","formatDateISO","formatDateShort","tag","Tag","Title","ParagraphContent","size","description","Icon","Chevron","displayName","Heading","children","semantic","visual","otherProps","formatStringDate","dateString","formatDate","toISOString","Intl","DateTimeFormat","undefined","day","month","year","format","formatDateLong","_path","_extends","assign","target","arguments","source","SvgChevron","xmlns","viewBox","fill","Container","styled","div","Inner","HeadingStyles","brand","primary","h2","H3Styles","Intro","from","Tablet","ItemList","PluginCss","Desktop","Item","MobileLarge","CtaWrapper","Controls","PrevButtonStyles","Button","NextButtonStyles","CarouselDot","button","attrs","type","grey","grey89","DotHolder","Base","withWidget","items","intro","cta","refFlicking","useRef","itemListRef","useState","activeIndex","setActiveIndex","showControls","setShowControls","controlsLength","setControlsLength","handleSetControlsLength","visiblePanelsLength","current","itemListStyles","getComputedStyle","featureSize","parseInt","getPropertyValue","itemSize","total","anyFeatured","index","featured","S","Grid","Default","Flicking","align","ALIGN","PREV","bound","onAfterResize","event","currentTarget","moveTo","visiblePanels","getVisiblePanels","onChanged","element","contains","activeElement","panel","focus","onWillChange","onMoveStart","stop","onReady","map","item","Array","disabled","onClick","preventDefault","actualIndex","direction","DIRECTION","NEXT","PrevButton","themeOption","prev","NextButton","next","LinkButton","branding","hydrate","HydrateOption","InView","instance","panels","filter","visibleRatio"],"mappings":"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","file":"LatestNewsCarousel-74873e59074c75926323.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t50: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/sitefiles/next-gen/dist/\";\n\n \tvar jsonpArray = this[\"nextGenJsonpFunction\"] = this[\"nextGenJsonpFunction\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([598,0,1,2,8,10,13,19]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { formatDateISO, formatDateShort } from '@helpers/date';\r\nimport { Device, until } from '@helpers/media';\r\nimport { ReactComponent as Chevron } from '@img/icons/chevron.svg';\r\nimport Image from '@stories/Components/Media/Image/Image';\r\nimport React from 'react';\r\nimport { DocumentCardStyles } from './DocumentCard.styles';\r\nconst DocumentCard = React.forwardRef((props, ref) => {\r\n return (React.createElement(DocumentCardStyles.Card, { ref: ref, href: props.document.url, draggable: false, isLatestNewsWidget: props.isLatestNewsWidget },\r\n React.createElement(DocumentCardStyles.TagArea, null,\r\n props.document.noticeTag ? (React.createElement(DocumentCardStyles.NoticeTag, null, props.document.noticeTag)) : null,\r\n props.document.groundforceDivision &&\r\n props.document.groundforceDivision.name.length > 0 && (React.createElement(DocumentCardStyles.DivisionTag, { \"data-tag-colour\": props.document.groundforceDivision.class }, props.document.groundforceDivision.name))),\r\n React.createElement(DocumentCardStyles.Media, { isLatestNewsWidget: props.isLatestNewsWidget },\r\n React.createElement(Image, { src: props.document.imageUrl, width: 387, height: 247, sizes: `${until(Device.TabletLarge)} 50vw, ${until(Device.DesktopLarge)} 33vw, 25vw`, layout: \"responsive\", objectFit: \"cover\", alt: props.document.title || '', draggable: false, fullPaddingTop: props.document.fullPaddingTop })),\r\n React.createElement(DocumentCardStyles.Content, null,\r\n props.document.date && (React.createElement(DocumentCardStyles.Date, { as: \"time\", dateTime: formatDateISO(props.document.date) }, formatDateShort(props.document.date))),\r\n props.document.tag && (React.createElement(DocumentCardStyles.Tag, null, props.document.tag)),\r\n React.createElement(DocumentCardStyles.Title, { isLatestNewsWidget: props.isLatestNewsWidget }, props.document.title),\r\n React.createElement(DocumentCardStyles.ParagraphContent, { size: \"small\", isLatestNewsWidget: props.isLatestNewsWidget }, props.document.description),\r\n React.createElement(DocumentCardStyles.Icon, null,\r\n React.createElement(Chevron, null)))));\r\n});\r\nDocumentCard.displayName = 'DocumentCard';\r\nexport default DocumentCard;\r\n","import React from 'react';\r\nimport s from './Heading.styles';\r\nconst Heading = ({ children, semantic = 'h1', visual, ...otherProps }) => {\r\n return (React.createElement(s.Heading, { as: semantic, visual: visual, ...otherProps }, children));\r\n};\r\nexport default Heading;\r\n","export function formatStringDate(dateString) {\r\n const date = new Date(dateString);\r\n return formatDate(date);\r\n}\r\nexport function formatDateISO(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return date.toISOString();\r\n}\r\nexport function formatDate(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n month: 'short',\r\n year: 'numeric',\r\n }).format(date);\r\n}\r\nexport function formatDateLong(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n }).format(date);\r\n}\r\nexport function formatDateShort(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return new Intl.DateTimeFormat(undefined, {\r\n day: 'numeric',\r\n month: '2-digit',\r\n year: '2-digit',\r\n }).format(date);\r\n}\r\n","var _path;\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgChevron(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20.679 12.461\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 99\",\n d: \"M19.618 11.4l-9.279-9.279L1.06 11.4\",\n fill: \"none\"\n })));\n}\n\nexport default __webpack_public_path__ + \"056c9f699b39d0845225c962dec7c133.svg\";\nexport { SvgChevron as ReactComponent };","import PluginCss from '!raw-loader!@egjs/react-flicking/dist/flicking.css';\r\nimport brand from '@helpers/brand';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport NextButtonStyles from '@stories/Components/Buttons/NextButton/NextButton.styles';\r\nimport PrevButtonStyles from '@stories/Components/Buttons/PrevButton/PrevButton.styles';\r\nimport { DocumentCardStyles } from '@stories/Components/Cards/DocumentCard/DocumentCard.styles';\r\nimport HeadingStyles from '@stories/Components/Global/Typography/Heading.styles';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n overflow: hidden;\r\n margin: 40px 0px;\r\n`;\r\nconst Inner = styled.div `\r\n grid-column: span 12;\r\n position: relative;\r\n z-index: 2;\r\n\r\n ${HeadingStyles.Heading} {\r\n grid-column: span 12;\r\n text-align: center;\r\n color: ${brand.primary.alt};\r\n margin-bottom: 34px;\r\n }\r\n`;\r\nconst Title = styled.h2 `\r\n ${HeadingStyles.H3Styles}\r\n`;\r\nconst Intro = styled.p `\r\n font-size: 16px;\r\n line-height: 26px;\r\n text-align: center;\r\n margin: 0 auto 30px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n max-width: 670px;\r\n margin: 0 auto 80px;\r\n }\r\n`;\r\nconst ItemList = styled.div `\r\n --itemGutter: 10px;\r\n --featureGutter: 0px;\r\n\r\n --itemWidth: 1;\r\n --itemSize: 1;\r\n --itemSpace: 0;\r\n\r\n --featureWidth: 100%;\r\n --featureSize: 1;\r\n\r\n ${PluginCss};\r\n\r\n display: flex;\r\n width: 100%;\r\n\r\n .flicking-viewport {\r\n // Stops the overflow cutting the box-shadow\r\n padding: 8px;\r\n margin-right: -8px;\r\n margin-left: -8px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --itemGutter: 30px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n --itemWidth: 2;\r\n --itemSpace: 1;\r\n --itemSize: 1;\r\n\r\n --featureWidth: 100%;\r\n --featureSize: 2;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --itemWidth: 3;\r\n --itemSpace: 2;\r\n --itemSize: 1;\r\n\r\n --featureWidth: 66%;\r\n --featureSize: 2;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n --itemWidth: 4;\r\n --itemSpace: 3;\r\n --itemSize: 1;\r\n\r\n --featureWidth: 50%;\r\n --featureGutter: 30px;\r\n --featureSize: 2;\r\n }\r\n`;\r\nconst Item = styled.div `\r\n display: block;\r\n margin-right: var(--itemGutter);\r\n /* flex: 1 0 calc(var(--itemWidth) - (var(--itemGutter) / 2)); */\r\n\r\n flex: 1 0 calc((100% - (var(--itemGutter) * var(--itemSpace))) / var(--itemWidth));\r\n\r\n &[data-featured='true'] {\r\n flex: 1 0 calc(var(--featureWidth) - (var(--featureGutter) / 2));\r\n }\r\n\r\n @media ${until(Device.MobileLarge)} {\r\n max-width: 100%:\r\n height: auto;\r\n }\r\n\r\n ${DocumentCardStyles.Card} {\r\n &[data-featured='true'] {\r\n height: 100%;\r\n }\r\n }\r\n`;\r\nconst CtaWrapper = styled.div `\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n margin: 22px 0 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n justify-content: center;\r\n margin: 64px 0 0;\r\n }\r\n`;\r\nconst Controls = styled.div `\r\n display: grid;\r\n grid-template-columns: 40px 40px 1fr 40px 40px;\r\n margin: 24px 0 0;\r\n gap: 12px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-template-columns: 48px 48px 1fr 48px 48px;\r\n margin: 40px 0 0;\r\n }\r\n\r\n ${PrevButtonStyles.Button} {\r\n grid-column: 4;\r\n }\r\n\r\n ${NextButtonStyles.Button} {\r\n grid-column: 5;\r\n }\r\n`;\r\nconst CarouselDot = styled.button.attrs({ type: 'button' }) `\r\n display: flex;\r\n flex: 1 0 auto;\r\n border: none;\r\n border-radius: 0;\r\n height: 5px;\r\n padding: 0;\r\n background-color: ${brand.grey.grey89};\r\n transform-origin: center bottom;\r\n transition: background-color 0.15s ease-out, transform 0.15s ease-out;\r\n max-width: 132px;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n transform: scaleY(2);\r\n background-color: ${brand.primary.alt};\r\n }\r\n\r\n &[disabled] {\r\n background-color: ${brand.primary.alt};\r\n }\r\n`;\r\nconst DotHolder = styled.div `\r\n display: flex;\r\n flex: 1 0 auto;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 6px;\r\n grid-column: 1 / span 3;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n &[data-hidden='1'] {\r\n display: none;\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n gap: 10px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 3;\r\n }\r\n`;\r\nconst Base = styled.div `\r\n grid-column: span 12;\r\n position: relative;\r\n z-index: 2;\r\n padding: 30px 0;\r\n text-align: center;\r\n`;\r\nexport default {\r\n Base,\r\n CarouselDot,\r\n Container,\r\n Controls,\r\n CtaWrapper,\r\n DotHolder,\r\n Inner,\r\n Intro,\r\n Item,\r\n ItemList,\r\n Title,\r\n};\r\n","import { HydrateOption } from '@core/enums';\r\nimport Flicking, { ALIGN, DIRECTION, } from '@egjs/react-flicking';\r\nimport { Grid } from '@helpers/grid';\r\nimport withWidget from '@hoc/withWidget';\r\nimport { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport NextButton from '@stories/Components/Buttons/NextButton/NextButton';\r\nimport PrevButton from '@stories/Components/Buttons/PrevButton/PrevButton';\r\nimport DocumentCard from '@stories/Components/Cards/DocumentCard/DocumentCard';\r\nimport Heading from '@stories/Components/Global/Typography/Heading';\r\nimport React, { useRef, useState } from 'react';\r\nimport S from './LatestNewsCarousel.styles';\r\nconst LatestNewsCarousel = ({ items = [], title, intro, cta, isLatestNewsWidget, }) => {\r\n const refFlicking = useRef(null);\r\n const itemListRef = useRef(null);\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const [showControls, setShowControls] = useState(false);\r\n const [controlsLength, setControlsLength] = useState(0);\r\n const handleSetControlsLength = (visiblePanelsLength) => {\r\n if (!itemListRef.current) {\r\n return;\r\n }\r\n const itemListStyles = getComputedStyle(itemListRef.current);\r\n const featureSize = parseInt(itemListStyles.getPropertyValue('--featureSize'), 10);\r\n const itemSize = parseInt(itemListStyles.getPropertyValue('--itemSize'), 10);\r\n let total = 0;\r\n let anyFeatured = false;\r\n for (let index = 0; index < items.length; index++) {\r\n const item = items[index];\r\n if (item.featured === true) {\r\n anyFeatured = true;\r\n total += featureSize;\r\n }\r\n else {\r\n total += itemSize;\r\n }\r\n }\r\n getComputedStyle(itemListRef.current);\r\n if (itemSize === 1 && featureSize === 1) {\r\n setControlsLength(total);\r\n return;\r\n }\r\n if (anyFeatured === false) {\r\n setControlsLength(total + 1 - visiblePanelsLength);\r\n return;\r\n }\r\n setControlsLength(total - 1 - visiblePanelsLength);\r\n };\r\n return (React.createElement(S.Container, null,\r\n React.createElement(Grid.Default, null,\r\n React.createElement(S.Inner, null,\r\n React.createElement(Heading, { visual: \"h5\", semantic: \"h2\" }, title),\r\n intro && React.createElement(S.Intro, null, intro),\r\n React.createElement(S.ItemList, { ref: itemListRef },\r\n React.createElement(Flicking, { ref: refFlicking, align: ALIGN.PREV, bound: true, onAfterResize: (event) => {\r\n // Move to first item after resizing to fix misalignment.\r\n event.currentTarget.moveTo(0);\r\n const visiblePanels = getVisiblePanels(event.currentTarget);\r\n handleSetControlsLength(visiblePanels.length);\r\n // Hide controls when all panels are visible.\r\n setShowControls(!(visiblePanels.length === items.length));\r\n }, onChanged: (event) => {\r\n // Auto-focus the new slide if the focus was already inside the carousel.\r\n if (event.currentTarget.element.contains(document.activeElement)) {\r\n event.panel.element.focus();\r\n }\r\n }, onWillChange: (event) => {\r\n if (event.index > items.length - 1) {\r\n setActiveIndex(event.index - items.length);\r\n }\r\n else {\r\n setActiveIndex(event.index);\r\n }\r\n }, onMoveStart: (event) => {\r\n const visiblePanels = getVisiblePanels(event.currentTarget);\r\n // Avoid swiping when all panels are visible.\r\n if (visiblePanels.length === items.length) {\r\n event.stop();\r\n }\r\n }, onReady: (event) => {\r\n const visiblePanels = getVisiblePanels(event.currentTarget);\r\n handleSetControlsLength(visiblePanels.length);\r\n // Hide controls when all panels are visible.\r\n setShowControls(!(visiblePanels.length === items.length));\r\n } }, items.map((item, i) => (React.createElement(S.Item, { key: i, \"data-featured\": item.featured },\r\n React.createElement(DocumentCard, { document: item, isLatestNewsWidget: isLatestNewsWidget })))))),\r\n showControls && controlsLength > 1 && (React.createElement(S.Controls, null,\r\n React.createElement(S.DotHolder, { \"data-hidden\": controlsLength > 5 ? '1' : '0' }, new Array(controlsLength).fill(null).map((item, index) => (React.createElement(S.CarouselDot, { key: index, disabled: activeIndex === index, onClick: (event) => {\r\n event.preventDefault();\r\n moveTo(index);\r\n } })))),\r\n React.createElement(PrevButton, { disabled: activeIndex === 0, themeOption: \"primaryAlt\", onClick: (event) => {\r\n event.preventDefault();\r\n refFlicking.current?.prev();\r\n } }),\r\n React.createElement(NextButton, { disabled: activeIndex === controlsLength - 1, themeOption: \"primaryAlt\", onClick: (event) => {\r\n event.preventDefault();\r\n refFlicking.current?.next();\r\n } })))),\r\n cta && (React.createElement(S.Base, null,\r\n React.createElement(LinkButton, { title: cta.title, target: cta.target, href: cta.url, branding: \"primaryAlt\" }))))));\r\n function moveTo(index) {\r\n const actualIndex = refFlicking.current?.index ?? 0;\r\n // Adjust index to account for cloned items.\r\n if (actualIndex > items.length - 1) {\r\n index += items.length;\r\n }\r\n const direction = index < actualIndex ? DIRECTION.PREV : DIRECTION.NEXT;\r\n refFlicking.current?.moveTo(index, undefined, direction);\r\n }\r\n};\r\nexport default withWidget(LatestNewsCarousel, 'LatestNewsCarousel', {\r\n hydrate: HydrateOption.InView,\r\n});\r\nfunction getVisiblePanels(instance) {\r\n return instance.panels.filter((panel) => panel.visibleRatio >= 0.9);\r\n}\r\n"],"sourceRoot":""}