{"version":3,"sources":["webpack:///./js/services/CloudinaryService.ts","webpack:///./js/react/shared/Image.tsx","webpack:///./js/react/shared/cards/CourseCard.tsx","webpack:///./js/react/shared/cards/EventCard.tsx","webpack:///./js/react/shared/cards/PressReleaseCard.tsx","webpack:///./js/react/shared/cards/ReportCard.tsx","webpack:///./js/react/shared/cards/WebinarCard.tsx","webpack:///./js/react/shared/cards/NewsletterCard.tsx","webpack:///./js/react/listing/Content.tsx","webpack:///./js/react/listing/Listing.tsx","webpack:///./js/react/listing/ListingRoot.tsx","webpack:///./js/react/checkbox/Checkbox.tsx","webpack:///./js/react/shared/cards/CaseStudyCard.tsx","webpack:///./js/react/shared/cards/SuccessStoryCard.tsx","webpack:///./js/react/shared/cards/BlogCard.tsx"],"names":["BASE_URI","createUrl","publicId","options","transforms","combineTransforms","crop","dpr","fetchFormat","gravity","quality","encodedId","encodeURIComponent","combineUrlSegments","constructor","this","url","memoize","strategy","strategies","variadic","length","removeExtension","toLowerCase","aspectRatio","background","defaultImageId","height","width","zoom","aspectRatioString","aspectRatioNumber","sanitizeBg","indexOf","substring","qualityString","qualityNumber","replace","substr","str","index","lastIndexOf","Image","alt","className","image","ratio","cdn","loading","otherProps","imageUrl1x","Cloudinary","imageUrl2x","imgRef","useObjectFit","React","createElement","Object","assign","ref","src","srcSet","CourseCard","title","content","price","pinText","href","EventCard","dates","PressReleaseCard","date","Intl","DateTimeFormat","undefined","year","month","day","format","Date","BlogCard","authorName","authorImage","openInNewTab","target","WebinarCard","time","NewsletterCard","newsletterGuid","siteId","newsletterConfig","apiResponse","setApiResponse","useState","email","setEmail","emailIsValid","setEmailIsValid","acceptedTerms","setAcceptedTerms","termsIsValid","setTermsIsValid","buttonText","newsletterHeading","newsletterIntro","subscriptionSuccess","termsText","termsErrorMessage","textBoxErrorMessage","textBoxPlaceholder","async","handleSubscribe","subscriptionInfo","SiteId","Newsletter","SubscriberEmail","subscriptionInfoJson","JSON","stringify","response","fetch","method","headers","Headers","Accept","body","ok","status","success","viewBox","xlinkHref","type","value","onChange","event","onKeyDown","keyCode","placeholder","id","name","checked","HTMLInputElement","htmlFor","dangerouslySetInnerHTML","__html","onClick","preventDefault","Content","items","renderCard","item","ItemComponent","pageType","ReportCard","CaseStudyCard","SuccessStory","key","Fragment","map","contactSubscribedToNewsletter","Listing","listNode","altFilter","selectedPage","onSelectPage","useQueryParam","withDefault","NumberParam","selectedFilters","onSelectFilters","ArrayParam","data","setData","selectedFilterJson","myRef","useRef","executeScroll","current","window","scrollTo","offsetTop","useEffect","query","page","topics","apiName","Error","getApiPathName","res","queryString","resData","json","getData","totalPages","Math","ceil","totalResults","Helmet","rel","location","pathname","filters","obj","keys","filterKey","filterObj","Checkbox","currentItems","Set","has","delete","add","renderFilter","ReactPaginate","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","marginPagesDisplayed","pageRangeDisplayed","onPageChange","selected","forcePage","hrefBuilder","pageIndex","activeClassName","initialPage","ListingRoot","useHabitat","QueryParamProvider","reachHistory","globalHistory","Router","default","option","includes","award","EOLocale","Text","SuccessStoryCard","clientName","specialCharacters","readTime","trim"],"mappings":"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","file":"document-list-0029245be7ac8af4262f.js","sourcesContent":["import memoize from 'fast-memoize';\r\nconst CLOUDINARY_CLOUD_NAME = 'xperience-io';\r\nconst BASE_URI = `https://res.cloudinary.com/${CLOUDINARY_CLOUD_NAME}/image/upload`;\r\n/** Provides access to Cloudinary functionality. */\r\nclass CloudinaryService {\r\n constructor() {\r\n this.url = memoize(createUrl, {\r\n strategy: memoize.strategies.variadic,\r\n });\r\n }\r\n}\r\n/** Create a Cloudinary URL. */\r\nfunction createUrl(publicId, options = {}) {\r\n if (!publicId) {\r\n return createUrl('kentico_logo_kmlajq', options);\r\n }\r\n const transforms = combineTransforms({\r\n crop: 'lfill',\r\n dpr: 1,\r\n fetchFormat: 'auto',\r\n gravity: 'auto',\r\n quality: 'auto',\r\n ...options,\r\n });\r\n // Encode public id value to fix issue with spaces breaking srcset.\r\n const encodedId = encodeURIComponent(publicId);\r\n return combineUrlSegments(encodedId, transforms, options.fetchFormat);\r\n}\r\nexport default new CloudinaryService();\r\n/** Combine segments of URL together to form full Cloudinary URL. */\r\nfunction combineUrlSegments(publicId, transforms, fetchFormat = '') {\r\n let url = BASE_URI;\r\n if (transforms && transforms.length) {\r\n url += `/${transforms}`;\r\n }\r\n url += `/${removeExtension(publicId.toLowerCase())}`;\r\n if (fetchFormat && fetchFormat !== 'auto') {\r\n url += `.${fetchFormat}`;\r\n }\r\n return url;\r\n}\r\n/** Create combined transform string. */\r\nfunction combineTransforms({ aspectRatio, background, crop, defaultImageId, dpr, fetchFormat, gravity, height, quality, width, zoom, }) {\r\n let transforms = '';\r\n // Apply sizing and cropping transforms.\r\n const aspectRatioString = aspectRatio;\r\n const aspectRatioNumber = aspectRatio;\r\n if (aspectRatioString && aspectRatioString.length) {\r\n transforms += `,ar_${aspectRatioString}`;\r\n }\r\n else if (aspectRatioNumber && aspectRatioNumber > 0) {\r\n transforms += `,ar_${aspectRatioNumber}`;\r\n }\r\n if (background && background.length) {\r\n const sanitizeBg = background.indexOf('#') === 0 ? background.substring(1) : background;\r\n transforms += `,b_rgb:${sanitizeBg}`;\r\n }\r\n if (crop && crop.length) {\r\n transforms += `,c_${crop}`;\r\n }\r\n if (dpr && dpr > 0) {\r\n transforms += `,dpr_${dpr}`;\r\n }\r\n if (gravity && gravity.length) {\r\n transforms += `,g_${gravity}`;\r\n }\r\n if (height && height > 0) {\r\n transforms += `,h_${height}`;\r\n }\r\n if (width && width > 0) {\r\n transforms += `,w_${width}`;\r\n }\r\n if (zoom) {\r\n transforms += `,z_${zoom}`;\r\n }\r\n // Add separator for chained transform.\r\n transforms += '/';\r\n // Add default image.\r\n if (defaultImageId && defaultImageId.length) {\r\n transforms += `,d_${defaultImageId}`;\r\n }\r\n // Add separator for chained transform.\r\n transforms += '/';\r\n // Apply quality and format transforms.\r\n if (fetchFormat && fetchFormat === 'auto') {\r\n transforms += ',f_auto';\r\n }\r\n const qualityString = quality;\r\n const qualityNumber = quality;\r\n if (qualityString && qualityString.length) {\r\n transforms += `,q_${qualityString}`;\r\n }\r\n else if (qualityNumber && qualityNumber > 0) {\r\n transforms += `,q_${qualityNumber}`;\r\n }\r\n // Clean up separators.\r\n transforms = transforms.replace(/\\/\\//g, '/');\r\n transforms = transforms.replace(/\\/,/g, '/');\r\n // Remove preceeding comma.\r\n transforms = transforms.indexOf(',') === 0 ? transforms.substr(1) : transforms;\r\n return transforms;\r\n}\r\n/** Remove extension from string. */\r\nfunction removeExtension(str) {\r\n const index = str.lastIndexOf('.');\r\n if (index >= 0) {\r\n return str.substring(0, index);\r\n }\r\n return str;\r\n}\r\n","import React from 'react';\r\nimport { useObjectFit } from '@netc/hooks';\r\nimport Cloudinary from '@services/CloudinaryService';\r\nconst Image = ({ alt, className = '', height = null, image, ratio = null, width, options = {}, cdn, loading = \"eager\", ...otherProps }) => {\r\n if (cdn) {\r\n const imageUrl1x = Cloudinary.url(image, {\r\n ...options,\r\n aspectRatio: ratio || 0,\r\n height: height || 0,\r\n width,\r\n });\r\n const imageUrl2x = Cloudinary.url(image, {\r\n ...options,\r\n aspectRatio: ratio || 0,\r\n dpr: 2,\r\n height: height || 0,\r\n width,\r\n });\r\n const imgRef = useObjectFit();\r\n return (React.createElement(\"img\", Object.assign({ ref: imgRef }, otherProps, { alt: alt, className: `${className} js-object-fit`, src: imageUrl1x, srcSet: `${imageUrl1x} 1x, ${imageUrl2x} 2x`, loading: loading })));\r\n }\r\n else {\r\n return (React.createElement(\"img\", Object.assign({}, otherProps, { alt: alt, className: `${className} js-object-fit`, src: `${image}?width=${width}` })));\r\n }\r\n};\r\nexport default Image;\r\n","import React from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst CourseCard = ({ title, image, url, content, price, pinText, }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card\", \"data-aos\": \"animated\" },\r\n React.createElement(\"div\", { className: \"card__inner\" },\r\n React.createElement(\"div\", { className: \"card__media\" },\r\n React.createElement(\"div\", { className: \"card__media-holder\" },\r\n React.createElement(Image, { image: image, alt: title, ratio: 1, width: 372, className: \"card__media-element\", cdn: true }))),\r\n React.createElement(\"div\", { className: \"card__content-external\" },\r\n React.createElement(\"div\", { className: \"tag tag--blue\" }, pinText),\r\n React.createElement(\"div\", { className: \"card__content-internal\" },\r\n React.createElement(\"h4\", { className: \"card__title\" }, title),\r\n React.createElement(\"div\", { className: \"card__intro\" }, content),\r\n React.createElement(\"p\", { className: \"card__blog-detail\" },\r\n React.createElement(\"span\", { className: \"card__price\" }, price))))))));\r\nexport default CourseCard;\r\n","import React from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst EventCard = ({ title, content, image, url, dates, pinText, }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card card--event \" },\r\n React.createElement(\"div\", { className: \"card__inner\" },\r\n React.createElement(\"div\", { className: \"card__media\" },\r\n React.createElement(\"div\", { className: \"card__media-holder\" },\r\n React.createElement(Image, { image: image, alt: title, width: 372, className: \"card__media-element\", cdn: true }))),\r\n React.createElement(\"div\", { className: \"card__content-external\" },\r\n React.createElement(\"div\", { className: \"tag tag--green\" }, pinText),\r\n React.createElement(\"div\", { className: \"card__content-internal\" },\r\n React.createElement(\"h4\", { className: \"card__title\" }, title),\r\n React.createElement(\"div\", { className: \"card__intro\" }, content),\r\n React.createElement(\"div\", { className: \"card__event-date-area\" },\r\n React.createElement(\"p\", { className: \"card__event-date\" }, dates))))))));\r\nexport default EventCard;\r\n","import React from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst PressReleaseCard = ({ title, content, image, url, date }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card card-uni\", \"data-aos\": \"animated\" },\r\n React.createElement(\"div\", { className: \"card-uni__media\" },\r\n React.createElement(\"div\", { className: \"card-uni__media-holder\" },\r\n React.createElement(Image, { image: image, alt: title, ratio: 1, width: 372, className: \"card-uni__media-element\", cdn: true }))),\r\n React.createElement(\"div\", { className: \"card-uni__content\" },\r\n React.createElement(\"h3\", { className: \"card-uni__title\" }, title),\r\n React.createElement(\"p\", { className: \"card-uni__intro\" }, content),\r\n React.createElement(\"div\", { className: \"card-uni__content-bottom\" },\r\n React.createElement(\"p\", { className: \"card-uni__date\" }, new Intl.DateTimeFormat(undefined, {\r\n year: 'numeric',\r\n month: 'short',\r\n day: '2-digit',\r\n }).format(new Date(date))))))));\r\nexport default PressReleaseCard;\r\n","import React from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst BlogCard = ({ title, image, url, authorName, authorImage, pinText, openInNewTab }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card card--reports card--small-ver\", target: openInNewTab ? '_blank' : '_self' },\r\n React.createElement(\"div\", { className: \"card__inner\" },\r\n React.createElement(\"div\", { className: \"card__media\" },\r\n React.createElement(\"div\", { className: \"card__media-holder\" },\r\n React.createElement(Image, { image: image, alt: title, ratio: 1, width: 372, className: \"card__media-element\", cdn: true }))),\r\n React.createElement(\"div\", { className: \"card__content-external\" },\r\n React.createElement(\"div\", { className: \"tag tag--black\" }, pinText),\r\n React.createElement(\"div\", { className: \"card__content-internal\" },\r\n authorImage !== '/' && (React.createElement(Image, { image: authorImage, alt: authorName, ratio: 1, width: 372, className: \"card__report-logo\", cdn: true })),\r\n React.createElement(\"h3\", { className: \"card__title\" }, title)))))));\r\nexport default BlogCard;\r\n","import React from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst WebinarCard = ({ title, image, url, content, day, time, month, dates, year, pinText, }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card card--webinar\", \"data-aos\": \"animated\" },\r\n React.createElement(\"div\", { className: \"card__inner\" },\r\n React.createElement(\"div\", { className: \"card__media\" },\r\n React.createElement(\"div\", { className: \"card__media-holder\" },\r\n React.createElement(Image, { image: image, alt: title, ratio: 1, width: 372, className: \"card__media-element\", cdn: true })),\r\n React.createElement(\"div\", { className: \"card__date-block\" },\r\n React.createElement(\"span\", { className: \"card__date-block-month\" }, month),\r\n React.createElement(\"span\", { className: \"card__date-block-day\" }, dates),\r\n React.createElement(\"span\", { className: \"card__date-block-year\" }, year))),\r\n React.createElement(\"div\", { className: \"card__content-external\" },\r\n React.createElement(\"div\", { className: \"tag tag--purple\" }, pinText),\r\n React.createElement(\"div\", { className: \"card__content-internal\" },\r\n React.createElement(\"h4\", { className: \"card__title\" }, title),\r\n React.createElement(\"div\", { className: \"card__intro\" }, content),\r\n React.createElement(\"p\", { className: \"card__blog-detail\" },\r\n React.createElement(\"span\", { className: \"card__webinar-date\" }, day),\r\n time)))))));\r\nexport default WebinarCard;\r\n","import React, { useState } from 'react';\r\nconst NewsletterCard = ({ newsletterGuid, siteId, newsletterConfig, }) => {\r\n const [apiResponse, setApiResponse] = useState(null);\r\n const [email, setEmail] = useState('');\r\n const [emailIsValid, setEmailIsValid] = useState(true);\r\n const [acceptedTerms, setAcceptedTerms] = useState(false);\r\n const [termsIsValid, setTermsIsValid] = useState(true);\r\n // Check we have valid configs\r\n if (!newsletterGuid || !newsletterConfig) {\r\n return null;\r\n }\r\n const { buttonText, newsletterHeading, newsletterIntro, subscriptionSuccess, termsText, termsErrorMessage, textBoxErrorMessage, textBoxPlaceholder, } = newsletterConfig;\r\n async function handleSubscribe() {\r\n if (email.length === 0) {\r\n setEmailIsValid(false);\r\n return;\r\n }\r\n else {\r\n setEmailIsValid(true);\r\n }\r\n if (!!termsText && !acceptedTerms) {\r\n setTermsIsValid(false);\r\n return;\r\n }\r\n else {\r\n setTermsIsValid(true);\r\n }\r\n const subscriptionInfo = {\r\n SiteId: siteId,\r\n Newsletter: newsletterGuid,\r\n SubscriberEmail: email,\r\n };\r\n const subscriptionInfoJson = JSON.stringify(subscriptionInfo);\r\n const response = await fetch(`/api/newsletter/signup/`, {\r\n method: 'post',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n }),\r\n body: subscriptionInfoJson,\r\n });\r\n const { ok, status } = response;\r\n if (status === 400) {\r\n setEmailIsValid(false);\r\n }\r\n setApiResponse({\r\n ok,\r\n status,\r\n });\r\n }\r\n // Check we have all the minimum props we need\r\n if (!newsletterHeading || !buttonText) {\r\n return null;\r\n }\r\n const success = apiResponse?.ok;\r\n return (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"div\", { className: \"cta cta--newsletter cta--blue cta--small\" },\r\n React.createElement(\"svg\", { className: \"icon-svg icon-ring\", viewBox: \"0 0 24 24\" },\r\n React.createElement(\"use\", { xlinkHref: \"/src/img/svg/icon-ring.svg#icon-ring\" })),\r\n React.createElement(\"div\", { className: \"cta__inner grid-container grid-container--half\" },\r\n React.createElement(\"div\", { className: \"cta__left grid-column\" },\r\n newsletterHeading && React.createElement(\"h3\", { className: \"cta__title\" }, newsletterHeading),\r\n !success && newsletterIntro && React.createElement(\"p\", { className: \"cta__intro\" }, newsletterIntro),\r\n success && subscriptionSuccess && React.createElement(\"p\", { className: \"cta__intro\" }, subscriptionSuccess)),\r\n React.createElement(\"div\", { className: \"cta__right grid-column\" }, !success && (React.createElement(\"div\", { className: \"cta__form-holder\" },\r\n React.createElement(\"div\", { className: \"cta__form-row\" },\r\n React.createElement(\"div\", { className: \"cta__form-inline\" },\r\n React.createElement(\"div\", { className: \"form-input-container cta__form-text-input\" },\r\n React.createElement(\"input\", { className: `form-input ${emailIsValid ? 'form-input--text' : 'form-input--error'}`, type: \"text\", value: email, onChange: (event) => {\r\n setEmail(event.target.value);\r\n }, onKeyDown: (event) => {\r\n event.keyCode === 13 ? handleSubscribe() : null;\r\n }, placeholder: textBoxPlaceholder ?? '' }),\r\n React.createElement(\"span\", { className: \"form-label form-label--error\" }, textBoxErrorMessage)),\r\n termsText && (React.createElement(\"div\", { className: \"form-input-container form-input-container--clickable\" },\r\n React.createElement(\"input\", { type: \"checkbox\", id: \"checkbox\", name: \"checkbox\", className: `form-clickable form-clickable--checkbox ${termsIsValid ? '' : 'form-clickable--error'}`, checked: acceptedTerms, onChange: (event) => {\r\n if (event.target instanceof HTMLInputElement) {\r\n setAcceptedTerms(event.target.checked);\r\n }\r\n } }),\r\n React.createElement(\"label\", { className: \"form-label form-clickable--error-white\", htmlFor: \"checkbox\", dangerouslySetInnerHTML: { __html: termsText } }),\r\n !termsIsValid && termsErrorMessage && (React.createElement(\"span\", { className: \"form-label form-label--error form-label--error-background\" }, termsErrorMessage)))),\r\n React.createElement(\"input\", { className: \"btn cta__form-input-btn\", type: \"submit\", value: buttonText, onClick: (event) => {\r\n event.preventDefault();\r\n handleSubscribe();\r\n }, onKeyDown: (event) => {\r\n event.preventDefault();\r\n event.keyCode === 13 ? handleSubscribe() : null;\r\n } }))),\r\n React.createElement(\"div\", { className: \"cta__form-row\" }))))))));\r\n};\r\nexport default NewsletterCard;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { Fragment } from 'react';\r\nimport BlogCard from '../shared/cards/BlogCard';\r\nimport CaseStudyCard from '../shared/cards/CaseStudyCard';\r\nimport CourseCard from '../shared/cards/CourseCard';\r\nimport EventCard from '../shared/cards/EventCard';\r\nimport PressReleaseCard from '../shared/cards/PressReleaseCard';\r\nimport ReportCard from '../shared/cards/ReportCard';\r\nimport SuccessStory from '../shared/cards/SuccessStoryCard';\r\nimport WebinarCard from '../shared/cards/WebinarCard';\r\nimport NewsletterCard from '../shared/cards/NewsletterCard';\r\nconst Content = ({ items, newsletterGuid, siteId, newsletterConfig }) => {\r\n function renderCard(item) {\r\n let ItemComponent;\r\n switch (item.pageType) {\r\n case 'xperience.event':\r\n ItemComponent = EventCard;\r\n break;\r\n case 'xperience.trainingcourse':\r\n ItemComponent = CourseCard;\r\n break;\r\n case 'xperience.webinar':\r\n ItemComponent = WebinarCard;\r\n break;\r\n case 'xperience.pressrelease':\r\n ItemComponent = PressReleaseCard;\r\n break;\r\n case 'xperience.report':\r\n ItemComponent = ReportCard;\r\n break;\r\n case 'xperience.casestudy':\r\n ItemComponent = CaseStudyCard;\r\n break;\r\n case 'xperience.successstory':\r\n ItemComponent = SuccessStory;\r\n break;\r\n case 'xperience.blogpost':\r\n default:\r\n ItemComponent = BlogCard;\r\n break;\r\n }\r\n return React.createElement(ItemComponent, Object.assign({}, item, { key: item.id }));\r\n }\r\n return (React.createElement(Fragment, null, items.map((item, index) => index === 4 && !newsletterConfig.contactSubscribedToNewsletter\r\n ? [\r\n React.createElement(NewsletterCard, Object.assign({}, item, { key: index, newsletterGuid: newsletterGuid, siteId: siteId, newsletterConfig: newsletterConfig })),\r\n renderCard(item),\r\n ]\r\n : renderCard(item))));\r\n};\r\nexport default Content;\r\n","import queryString from 'query-string';\r\nimport React, { Fragment, useState, useEffect, useRef, } from 'react';\r\nimport ReactPaginate from 'react-paginate';\r\nimport { NumberParam, useQueryParam, withDefault, ArrayParam } from 'use-query-params';\r\nimport { Helmet } from 'react-helmet';\r\nimport Checkbox from '../checkbox/Checkbox';\r\nimport Content from './Content';\r\nconst scrollToRef = (ref) => {\r\n if (ref.current != null) {\r\n window.scrollTo(0, ref.current.offsetTop - 200);\r\n }\r\n};\r\nconst Listing = ({ pageType, newsletterGuid, siteId, newsletterConfig, listNode, altFilter, }) => {\r\n const [selectedPage = 1, onSelectPage] = useQueryParam('page', withDefault(NumberParam, 1));\r\n const [selectedFilters, onSelectFilters] = useQueryParam('topics', withDefault(ArrayParam, []));\r\n const [data, setData] = useState(null);\r\n // Serialise for comparison check.\r\n const selectedFilterJson = JSON.stringify(selectedFilters);\r\n const myRef = useRef(null);\r\n const executeScroll = () => scrollToRef(myRef);\r\n useEffect(() => {\r\n getData();\r\n async function getData() {\r\n const query = {\r\n page: selectedPage,\r\n topics: selectedFilters && [...selectedFilters],\r\n listNode: listNode,\r\n altFilter,\r\n };\r\n const apiName = getApiPathName(pageType);\r\n const res = await fetch(`/api/${apiName}/load/?${queryString.stringify(query)}`);\r\n if (!res.ok) {\r\n return;\r\n }\r\n const resData = (await res.json());\r\n setData(resData);\r\n }\r\n }, [selectedFilterJson, selectedPage]);\r\n if (!data) {\r\n return null;\r\n }\r\n const totalPages = Math.ceil(data.totalResults / 9);\r\n return (React.createElement(Fragment, null,\r\n React.createElement(Helmet, null,\r\n selectedPage > 1 ? (React.createElement(\"link\", { rel: \"prev\", href: `${window.location.pathname}?page=${selectedPage - 1}` })) : null,\r\n selectedPage < totalPages ? (React.createElement(\"link\", { rel: \"next\", href: `${window.location.pathname}?page=${selectedPage + 1}` })) : null),\r\n React.createElement(\"div\", { className: \"grid-container grid-container--two-four\" },\r\n React.createElement(\"div\", { className: \"grid-column form-orange\" }, data.filters && renderFilters(data.filters)),\r\n React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"div\", { className: \"grid-container grid-container--half\", ref: myRef },\r\n React.createElement(Content, { items: data.items, newsletterGuid: newsletterGuid, siteId: siteId, newsletterConfig: newsletterConfig })))),\r\n totalPages > 1 && (React.createElement(\"section\", { className: \"pagination\" },\r\n React.createElement(ReactPaginate, { previousLabel: React.createElement(\"svg\", { className: \"icon-svg icon-chevron-down\" },\r\n React.createElement(\"use\", { xlinkHref: \"/src/img/svg/icon-chevron-down.svg#icon-chevron-down\" })), nextLabel: React.createElement(\"svg\", { className: \"icon-svg icon-chevron-down\" },\r\n React.createElement(\"use\", { xlinkHref: \"/src/img/svg/icon-chevron-down.svg#icon-chevron-down\" })), breakLabel: \"...\", breakClassName: \"pagination__dots\", pageCount: totalPages, marginPagesDisplayed: 2, pageRangeDisplayed: 5, onPageChange: (event) => {\r\n onSelectPage(event.selected + 1, 'pushIn');\r\n if (event.selected !== 0) {\r\n executeScroll();\r\n }\r\n }, forcePage: selectedPage - 1, hrefBuilder: (pageIndex) => `${window.location.pathname}?page=${pageIndex}`, activeClassName: \"pagination--active\", initialPage: selectedPage - 1 })))));\r\n function renderFilters(obj) {\r\n const keys = Object.keys(obj);\r\n return keys.map(filterKey => {\r\n const filterObj = data?.filters.topics;\r\n if (!filterObj) {\r\n return null;\r\n }\r\n return renderFilter(filterKey, filterObj);\r\n });\r\n }\r\n function renderFilter(filterKey, filterObj) {\r\n return (React.createElement(Fragment, null,\r\n React.createElement(\"h4\", null, filterObj.name),\r\n React.createElement(\"div\", { className: \"checkboxes\" },\r\n React.createElement(Checkbox, { data: filterObj.filters, name: filterKey, selectedFilters: selectedFilters, onChange: (event) => {\r\n if (event.target instanceof HTMLInputElement) {\r\n const currentItems = new Set(selectedFilters);\r\n if (currentItems.has(event.target.value)) {\r\n currentItems.delete(event.target.value);\r\n }\r\n else {\r\n currentItems.add(event.target.value);\r\n }\r\n onSelectFilters([...currentItems], 'pushIn');\r\n onSelectPage(1, 'pushIn');\r\n }\r\n } }))));\r\n }\r\n};\r\nexport default Listing;\r\n/** Get the API path name. */\r\nfunction getApiPathName(pageType) {\r\n switch (pageType) {\r\n case 'xperience.blogpost':\r\n return 'blog';\r\n case 'xperience.casestudy':\r\n return 'casestudy';\r\n case 'xperience.event':\r\n return 'event';\r\n case 'xperience.pressrelease':\r\n return 'pressrelease';\r\n case 'xperience.report':\r\n return 'report';\r\n case 'xperience.successstory':\r\n return 'successstory';\r\n case 'xperience.trainingcourse':\r\n return 'trainingcourse';\r\n case 'xperience.webinar':\r\n return 'webinar';\r\n default:\r\n throw new Error(`Unexpected page type: ${pageType}`);\r\n }\r\n}\r\n","import React from 'react';\r\nimport { globalHistory, Router } from '@reach/router';\r\nimport { QueryParamProvider } from 'use-query-params';\r\nimport Listing from './Listing';\r\nimport { useHabitat } from '@react/shared/HabitatContext';\r\nconst ListingRoot = () => {\r\n const { pageType, newsletterGuid, siteId, newsletterConfig, listNode, altFilter } = useHabitat();\r\n return (React.createElement(QueryParamProvider, { reachHistory: globalHistory },\r\n React.createElement(Router, null,\r\n React.createElement(Listing, { default: true, pageType: pageType, newsletterGuid: newsletterGuid, siteId: siteId, newsletterConfig: newsletterConfig, listNode: listNode, altFilter: altFilter }))));\r\n};\r\nexport default ListingRoot;\r\n","import React, { Fragment } from 'react';\r\nconst Checkbox = ({ data, name, selectedFilters, onChange }) => {\r\n return (React.createElement(Fragment, null, data.map(option => {\r\n const id = option.id ?? '';\r\n return (React.createElement(\"div\", { key: id, className: \"form-input-container form-input-container--clickable\" },\r\n React.createElement(\"input\", { id: id, className: \"form-clickable form-clickable--checkbox\", checked: selectedFilters.includes(id), name: name, type: \"checkbox\", value: id, onChange: onChange }),\r\n React.createElement(\"label\", { className: \"form-label\", htmlFor: id }, option.name)));\r\n })));\r\n};\r\nexport default Checkbox;\r\n","import { EOLocale } from 'eo-locale';\r\nimport React from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst CaseStudyCard = ({ title, image, url, content, authorName, award, }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card card-uni\", \"data-aos\": \"animated\" },\r\n React.createElement(\"div\", { className: \"card-uni__media\" },\r\n React.createElement(\"div\", { className: \"card-uni__media-holder\" },\r\n React.createElement(Image, { image: image, alt: title, ratio: 1, width: 372, className: \"card-uni__media-element\", cdn: true }))),\r\n React.createElement(\"div\", { className: \"card-uni__tag\" },\r\n React.createElement(\"div\", { className: \"tag tag--dark-blue\" },\r\n React.createElement(EOLocale.Text, { id: \"xperience.pintext.casestudy\" }))),\r\n React.createElement(\"div\", { className: \"card-uni__content\" },\r\n award && (React.createElement(\"div\", { className: \"card-uni__award\" },\r\n React.createElement(\"div\", { className: \"card-uni__icon-content\" },\r\n React.createElement(\"div\", { className: \"kentico-circle-icon kentico-circle-icon--white\" },\r\n React.createElement(\"div\", { className: \"icon-circle\" },\r\n React.createElement(\"svg\", { className: \"icon-svg\", viewBox: \"0 0 24 24\" },\r\n React.createElement(\"use\", { xlinkHref: \"/src/img/svg/icon-trophy-2.svg#icon-trophy-2\" })))),\r\n React.createElement(\"span\", { className: \"card-uni__icon-content-title\" }, award)))),\r\n React.createElement(\"h3\", { className: \"card-uni__title\" }, title),\r\n React.createElement(\"p\", { className: \"card-uni__intro\" }, content),\r\n authorName && (React.createElement(\"div\", { className: \"card-uni__content-bottom\" },\r\n React.createElement(\"div\", { className: \"card-uni__author\" },\r\n React.createElement(EOLocale.Text, { id: \"xperience.deliveredby\" }),\r\n \": \",\r\n authorName)))))));\r\nexport default CaseStudyCard;\r\n","import { EOLocale } from 'eo-locale';\r\nimport React from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst SuccessStoryCard = ({ title, image, url, clientName, pinText, }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card-uni\", \"data-aos\": \"animated\" },\r\n React.createElement(\"div\", { className: \"card-uni__inner\" },\r\n React.createElement(\"div\", { className: \"card-uni__media\" },\r\n React.createElement(\"div\", { className: \"card-uni__media-holder\" },\r\n React.createElement(Image, { className: \"card-uni__media-element\", alt: title, cdn: true, height: 384, image: image, options: { gravity: 'north' }, width: 512 }))),\r\n React.createElement(\"div\", { className: \"card-uni__tag\" },\r\n React.createElement(\"div\", { className: \"tag tag--blue\" },\r\n React.createElement(EOLocale.Text, { id: \"xperience.pintext.successstory\" }))),\r\n React.createElement(\"div\", { className: \"card-uni__middle-band\" },\r\n React.createElement(\"p\", { className: \"card-uni__middle-band-text\" }, pinText)),\r\n React.createElement(\"div\", { className: \"card-uni__content\" },\r\n React.createElement(\"h4\", { className: \"card-uni__title\" }, title),\r\n React.createElement(\"p\", { className: \"card-uni__intro\" }, clientName))))));\r\nexport default SuccessStoryCard;\r\n","import { EOLocale } from 'eo-locale';\r\nimport React, { Fragment } from 'react';\r\nimport Image from '@react/shared/Image';\r\nconst specialCharacters = ['!', '?', ':', ';'];\r\nconst BlogCard = ({ title, image, url, authorName, authorImage, date, readTime, pinText, }) => (React.createElement(\"div\", { className: \"grid-column\" },\r\n React.createElement(\"a\", { href: url, className: \"card card--blog\", \"data-aos\": \"animated\" },\r\n React.createElement(\"div\", { className: \"card__inner\" },\r\n React.createElement(\"div\", { className: \"card__media\" },\r\n React.createElement(\"div\", { className: \"card__media-holder\" },\r\n React.createElement(Image, { image: image, alt: title, width: 690, className: \"card__media-element\", cdn: true }))),\r\n React.createElement(\"div\", { className: \"card__content-external\" },\r\n React.createElement(\"div\", { className: \"tag tag--blue\" }, pinText),\r\n React.createElement(\"div\", { className: \"card__content-internal\" },\r\n React.createElement(\"h4\", { className: \"card__title \" + (specialCharacters.includes(title.substring(title.length - 1, title.length)) ? \"no-full-stop\" : \"\") }, title.trim().replace(/[.$]/, '')),\r\n React.createElement(\"div\", { className: \"card__author\" },\r\n authorImage && (React.createElement(\"div\", { className: \"card__author-img\" },\r\n React.createElement(Image, { image: authorImage, alt: authorName, ratio: 1, width: 32, className: \"card__author-element\", cdn: true, loading: \"lazy\" }))),\r\n authorName && React.createElement(\"span\", { className: \"card__author-name\" }, authorName)),\r\n React.createElement(\"p\", { className: \"card__blog-detail\" },\r\n new Intl.DateTimeFormat(undefined, {\r\n year: 'numeric',\r\n month: 'short',\r\n day: '2-digit',\r\n }).format(new Date(date)),\r\n readTime > 0 && (React.createElement(Fragment, null,\r\n React.createElement(\"span\", { className: \"bullet\" }, \"\\u2022\"),\r\n React.createElement(EOLocale.Text, { id: \"xperience.readtime\", readTime: readTime }))))))))));\r\nexport default BlogCard;\r\n"],"sourceRoot":""}