{"version":3,"file":"501df4c28207d87217e3866e381eae43d26324c4.js","mappings":"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","sources":["webpack://if-website/./src/helpers/userAgent.js","webpack://if-website/./src/components/ui/customScrollable/index.jsx","webpack://if-website/./src/components/ui/customScrollable/customScrollable.module.scss","webpack://if-website/./src/components/ui/headline/index.jsx","webpack://if-website/./src/components/ui/skeleton/index.jsx","webpack://if-website/./src/components/ui/skeleton/styles.module.scss","webpack://if-website/./src/components/ui/teaserItem/styles.module.scss","webpack://if-website/./src/components/ui/teaserItem/index.jsx","webpack://if-website/./src/helpers/badges.js","webpack://if-website/./node_modules/date-fns/esm/endOfMonth/index.js","webpack://if-website/./node_modules/date-fns/esm/startOfMonth/index.js","webpack://if-website/./node_modules/date-fns/esm/addMonths/index.js","webpack://if-website/./node_modules/date-fns/esm/endOfYear/index.js","webpack://if-website/./node_modules/date-fns/esm/startOfYear/index.js","webpack://if-website/./node_modules/date-fns/esm/addYears/index.js","webpack://if-website/./src/helpers/filters.js","webpack://if-website/./src/helpers/isSSRPageLink.js"],"sourcesContent":["export const checkVersion = () => {\n if (typeof window !== `undefined`) {\n var agent = window.navigator.userAgent,\n start = agent.indexOf('OS ');\n if (\n (agent.indexOf('iPhone') > -1 || agent.indexOf('iPad') > -1) &&\n start > -1\n ) {\n return window.Number(agent.substr(start + 3, 3).replace('_', '.'));\n }\n return 0;\n }\n};\n\nexport const isSafari =\n typeof window !== `undefined` &&\n /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);\n","import React, { useRef, useEffect, useState } from 'react';\nimport pt from 'prop-types';\nimport * as styles from './customScrollable.module.scss';\nimport { combine } from '/src/helpers/styles';\nimport { checkVersion, isSafari } from '../../../helpers/userAgent';\n\nconst CustomScrollable = ({\n children,\n vertical,\n onlySmall,\n className,\n ...props\n}) => {\n const containerRef = useRef();\n const trackRef = useRef();\n const thumbRef = useRef();\n\n // Safari iOS14 logic for scrollbars\n const [needsScrollbarTrack, setNeedsScrollbarTrack] = useState(false);\n const version = checkVersion();\n const hackNeeded = version >= 14 && isSafari;\n const onScroll = () => {\n if (hackNeeded) {\n const percentageScrolled =\n containerRef.current.scrollLeft /\n (containerRef.current.scrollWidth - containerRef.current.clientWidth);\n const thumbPosition =\n trackRef.current.clientWidth * percentageScrolled -\n thumbRef.current.clientWidth * percentageScrolled;\n thumbRef.current.style.transform = `translateX(${thumbPosition}px)`;\n }\n };\n\n useEffect(() => {\n if (containerRef.current) {\n if (\n containerRef.current.scrollWidth > containerRef.current.clientWidth &&\n hackNeeded\n ) {\n setNeedsScrollbarTrack(true);\n }\n }\n }, []);\n\n useEffect(() => {\n if (hackNeeded && thumbRef.current) {\n thumbRef.current.style.width =\n (containerRef.current.clientWidth / containerRef.current.scrollWidth) *\n 100 +\n '%';\n }\n });\n\n return (\n <>\n \n {children}\n \n {needsScrollbarTrack && (\n
\n
\n
\n )}\n \n );\n};\n\nCustomScrollable.propTypes = {\n children: pt.node.isRequired,\n vertical: pt.bool,\n onlySmall: pt.bool,\n className: pt.string,\n};\n\nCustomScrollable.defaultProps = {\n onlySmall: false,\n vertical: false,\n className: '',\n};\n\nexport default CustomScrollable;\n","// extracted by mini-css-extract-plugin\nexport var arrow = \"customScrollable-module--arrow--8da93\";\nexport var container = \"customScrollable-module--container--a92a0\";\nexport var hidden = \"customScrollable-module--hidden--41946\";\nexport var nextArrow = \"customScrollable-module--nextArrow--45775\";\nexport var onlyXS = \"customScrollable-module--onlyXS--0cd93\";\nexport var previousArrow = \"customScrollable-module--previousArrow--52410\";\nexport var scrollbarThumb = \"customScrollable-module--scrollbarThumb--f7cbd\";\nexport var scrollbarTrack = \"customScrollable-module--scrollbarTrack--61654\";\nexport var vertical = \"customScrollable-module--vertical--a0718\";","import React from 'react';\nimport pt from 'prop-types';\nimport RichText, { richTextPropTypes } from '../richText';\nimport Text from '../text';\n\nconst Headline = ({ text, level, type, variant, className, textClassName }) => {\n if (!text) return null;\n if (typeof text === 'string') {\n return (\n \n );\n }\n\n if (text.raw) {\n return (\n \n );\n }\n\n return null;\n};\n\nexport const headlinePropTypes = pt.oneOfType([\n pt.shape(richTextPropTypes),\n pt.string,\n]).isRequired;\n\nHeadline.propTypes = {\n text: headlinePropTypes,\n level: pt.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span']).isRequired,\n type: pt.string,\n variant: pt.string,\n className: pt.string,\n textClasName: pt.string,\n};\n\nHeadline.defaultProps = {\n text: null,\n variant: 'light',\n className: '',\n textClassName: '',\n type: 'h1',\n};\n\nexport default Headline;\n","import React from 'react';\nimport pt from 'prop-types';\nimport { combine } from '../../../helpers/styles';\nimport * as styles from './styles.module.scss';\n\nconst Skeleton = ({ className }) => (\n
\n
\n
\n);\n\nSkeleton.propTypes = {\n className: pt.string,\n};\n\nexport default Skeleton;\n","// extracted by mini-css-extract-plugin\nexport var parent = \"styles-module--parent--dd068\";\nexport var pulse = \"styles-module--pulse--1cbac\";","// extracted by mini-css-extract-plugin\nexport var additionalInfo = \"styles-module--additionalInfo--7459d\";\nexport var arrow = \"styles-module--arrow--d9243\";\nexport var badge = \"styles-module--badge--82840\";\nexport var empty = \"styles-module--empty--10c92\";\nexport var fallback = \"styles-module--fallback--110fa\";\nexport var fallbackSvg = \"styles-module--fallbackSvg--30763\";\nexport var imageBadge = \"styles-module--imageBadge--9bbd9\";\nexport var img = \"styles-module--img--19dec\";\nexport var imgIsLogo = \"styles-module--imgIsLogo--37e37\";\nexport var imgWrapper = \"styles-module--imgWrapper--423b6\";\nexport var inSlider = \"styles-module--inSlider--3efaa\";\nexport var isContainImage = \"styles-module--isContainImage--e710a\";\nexport var isSmall = \"styles-module--isSmall--973db\";\nexport var isSquare = \"styles-module--isSquare--7997b\";\nexport var itemWrapper = \"styles-module--itemWrapper--425ca\";\nexport var skeletonImg = \"styles-module--skeletonImg--27e02\";\nexport var skeletonText = \"styles-module--skeletonText--d4653\";\nexport var small = \"styles-module--small--f864b\";\nexport var textBadge = \"styles-module--textBadge--cf3b4\";\nexport var textWrapper = \"styles-module--textWrapper--5f188\";\nexport var title = \"styles-module--title--4ca8a\";","import React from 'react';\nimport pt from 'prop-types';\nimport Text from '/src/components/ui/text';\nimport Link, { linkProptypes } from '../link';\nimport Image, { imageProptypes } from '../image';\nimport AwardBadge from '../awardBadge';\nimport { combine } from '/src/helpers/styles';\nimport Icon from '../icon';\nimport Skeleton from '../skeleton';\nimport RichText, { richTextPropTypes } from '../richText';\nimport Headline from '../headline';\nimport FallbackIcon from './icon/if_fallback_profiles.svg';\nimport * as styles from './styles.module.scss';\nimport { isSSRPageLink, SSRPageLinks } from '../../../helpers/isSSRPageLink';\n\nconst TeaserItem = ({\n image,\n title,\n subline,\n text,\n info,\n link,\n isInSlider,\n imageBadge,\n awardBadge,\n className,\n imageClassName,\n isSkeleton,\n disableGatsbyImage,\n aspectRatio,\n isSmall,\n showArrow,\n arrowSize,\n textBadge,\n unstyledFallback,\n onLinkClick,\n}) => {\n const renderTeaserItem = () => (\n <>\n {!image?.image && !image?.url && !imageBadge && (\n \n {!unstyledFallback && }\n
\n )}\n {(image?.image || image?.url) && (\n \n )}\n {!image?.image && !image?.url && imageBadge && (\n \n )}\n
\n {title && (\n \n {title}\n \n )}\n {subline && (\n \n )}\n {text && (\n \n )}\n {info && (\n \n {info}\n \n )}\n
\n {awardBadge && }\n {(image?.image || image?.url) && imageBadge && (\n \n \n
\n )}\n {textBadge && (\n
\n \n {textBadge}\n \n
\n )}\n {showArrow && (\n \n )}\n \n );\n\n if (isSkeleton) {\n return (\n \n
\n \n
\n
\n \n
\n \n );\n }\n if (link) {\n return (\n \n {renderTeaserItem()}\n \n );\n }\n\n return (\n \n {renderTeaserItem()}\n \n );\n};\n\nTeaserItem.propTypes = {\n image: pt.shape(imageProptypes),\n title: pt.string,\n subline: pt.string,\n text: pt.shape(richTextPropTypes),\n info: pt.string,\n link: pt.shape(linkProptypes),\n awardBadge: pt.string,\n imageBadge: pt.string,\n isInSlider: pt.bool,\n className: pt.string,\n imageClassName: pt.string,\n showArrow: pt.bool,\n arrowSize: pt.string,\n textBadge: pt.string,\n isSkeleton: pt.bool,\n disableGatsbyImage: pt.bool,\n aspectRatio: pt.oneOf(['1/1', '16/12']),\n isSmall: pt.bool,\n unstyledFallback: pt.bool,\n onLinkClick: pt.func,\n};\n\nTeaserItem.defaultProps = {\n link: null,\n image: null,\n title: '',\n className: '',\n imageClassName: '',\n info: '',\n subline: '',\n text: null,\n awardBadge: '',\n imageBadge: '',\n isInSlider: false,\n showArrow: false,\n arrowSize: '2x',\n disableGatsbyImage: true,\n isSkeleton: false,\n aspectRatio: '16/12',\n isSmall: false,\n unstyledFallback: false,\n};\n\nexport default TeaserItem;\n","const isIfDesignAward = (el) => el.awardType === 2;\n\nexport const getIfDesignAwardBadge = (el) => {\n if(el.awardType === 1) {\n if(el.status === 37){\n return null\n }\n }\n if (el.goldAward) {\n return 'ifDesignAwardGold';\n } else if (isIfDesignAward(el)) {\n return 'ifDesignAward';\n }\n return null;\n};\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\n\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import {\n addMonths,\n addYears,\n endOfMonth,\n endOfYear,\n format,\n startOfMonth,\n startOfYear\n} from 'date-fns';\n\nconst FROM_NOW_ID = 999;\n\nexport const sortFiltersAlphabetically = (a, b) => a.name.localeCompare(b.name);\n\nexport const getYearFilters = (allTime = false, delayed, type) => {\n const year = new Date().getFullYear();\n const filters = [\n {\n id: 0,\n name: `${delayed ? 'Award' : 'Current'} year ${year}`,\n type,\n },\n {\n id: 1,\n name: `${delayed ? 'Award' : 'Current'} year ${year - 1}`,\n type,\n },\n { id: 2, name: 'Last 3 years', type },\n { id: 3, name: 'Last 5 years', type },\n ];\n if (!allTime) {\n return filters;\n }\n return filters.concat({ id: 4, name: 'All winners since 1954', type });\n};\n\nexport const getSIPYearFilters = (allTime = false) => {\n const year = new Date().getFullYear();\n const filters = [\n {\n id: 0,\n name: `Projects ${year}`,\n type: 'sip',\n },\n {\n id: 1,\n name: `Projects ${year - 1}`,\n type: 'sip',\n },\n { id: 2, name: 'Last 3 years', type: 'sip' },\n { id: 3, name: 'Last 5 years', type: 'sip' },\n ];\n if (!allTime) {\n return filters;\n }\n return filters.concat({ id: 4, name: 'All projects', type: 'sip' });\n};\n\n// Customer requires to advance to new year 20 days before\nconst yearForJuror = 2024;\n\nexport const getJurorYearFilters = () => [\n {\n id: 0,\n name: `Current year ${yearForJuror}`,\n type: 'juror',\n isJuror: true,\n },\n {\n id: 1,\n name: `Last year ${yearForJuror - 1}`,\n type: 'juror',\n isJuror: true,\n },\n { id: 2, name: 'All jurors since 1954', type: 'juror', isJuror: true },\n];\n\nexport const mappedJurorFilterDates = {\n 0: [yearForJuror],\n 1: [yearForJuror - 1],\n 2: Array.from(new Array(yearForJuror - 1953)).map(\n (_, index) => yearForJuror - index\n ),\n};\n\nexport const getMappedFilterDates = () => {\n const year = new Date().getFullYear();\n return {\n 0: [year],\n 1: [year - 1],\n 2: Array.from(new Array(3)).map((_, index) => year - index),\n 3: Array.from(new Array(5)).map((_, index) => year - index),\n 4: Array.from(new Array(year - 1953)).map((_, index) => year - index),\n };\n};\n\nconst formatFutureDateForAPI = (date) => format(date, 'yyyy-MM-dd');\n\nexport const getMappedFilterFutureDates = (key) => {\n const map = {\n 0: {\n fromDate: formatFutureDateForAPI(new Date()),\n toDate: formatFutureDateForAPI(endOfMonth(new Date())),\n },\n 1: {\n fromDate: formatFutureDateForAPI(startOfMonth(addMonths(new Date(), 1))),\n toDate: formatFutureDateForAPI(endOfMonth(addMonths(new Date(), 1))),\n },\n 2: {\n fromDate: formatFutureDateForAPI(startOfMonth(addMonths(new Date(), 1))),\n toDate: formatFutureDateForAPI(endOfMonth(addMonths(new Date(), 3))),\n },\n 3: {\n fromDate: formatFutureDateForAPI(new Date()),\n toDate: formatFutureDateForAPI(endOfYear(new Date())),\n },\n 4: {\n fromDate: formatFutureDateForAPI(startOfYear(addYears(new Date(), 1))),\n toDate: formatFutureDateForAPI(endOfYear(addYears(new Date(), 1))),\n },\n [FROM_NOW_ID]: {\n fromDate: formatFutureDateForAPI(new Date()),\n toDate: formatFutureDateForAPI(endOfYear(addYears(new Date(), 1))),\n },\n };\n\n return map[key || FROM_NOW_ID];\n};\n\nexport const getMonthFilters = (type) => {\n const filters = [\n {\n id: 0,\n name: `This month`,\n type,\n },\n {\n id: 1,\n name: `Next month`,\n type,\n },\n { id: 2, name: 'Next 3 months', type },\n { id: 3, name: 'This year', type },\n { id: 4, name: 'Next year', type },\n ];\n\n return filters;\n};\n\nexport const getActiveFilters = (filtersMap, queryFilters) => {\n if (!filtersMap || !queryFilters) {\n return {};\n }\n\n const activeFilters = Object.fromEntries(\n Object.entries(filtersMap).map(([key, filters]) => [\n getFilterKeyQueryParamKey(key),\n filters.filter((filter) => queryFilters[key]?.includes(filter.id)),\n ])\n );\n\n activeFilters.find = queryFilters['find'];\n activeFilters.profile = queryFilters['profile'];\n activeFilters.inspiration = queryFilters['inspiration'];\n activeFilters.sort = queryFilters['sort'];\n activeFilters.dynamicFilterId = queryFilters['dynamicFilterId'];\n\n return activeFilters;\n};\n\nconst filterKeyQueryParamKeyMap = {\n awards: 'awardId',\n profileTypes: 'profileTypeId',\n time: 'yearId',\n region: 'regionId',\n countries: 'countryId',\n country: 'countryId',\n fieldsOfWork: 'fieldOfWorkId',\n sectors: 'sectorId',\n disciplines: 'disciplineId',\n categories: 'categoryId',\n articleType: 'articleTypeId',\n readingTime: 'readingTimeId',\n pressType: 'pressTypeId',\n eventType: 'eventTypeId',\n};\n\nexport const queryParamKeyMicrocopyKeyMap = {\n awardId: 'awards',\n profileTypeId: 'profileTypes',\n yearId: 'time',\n regionId: 'region',\n countryId: 'country',\n fieldOfWorkId: 'fieldsOfWork',\n sectorId: 'sectors',\n disciplineId: 'discipline',\n categoryId: 'category',\n articleTypeId: 'articleType',\n readingTimeId: 'readingTime',\n pressTypeId: 'pressType',\n eventTypeId: 'eventType',\n};\n\nconst getFilterKeyQueryParamKey = (filterKey) => {\n return filterKeyQueryParamKeyMap[filterKey] || filterKey;\n};\n\n// builds new search params from current or provided search params, and previous filter state\nexport const buildSearchParams = ({\n filterKey,\n filter,\n isSingleValue = false,\n baseSearchParams = null,\n}) => {\n let searchParams = baseSearchParams || new URLSearchParams(location.search);\n\n const key = getFilterKeyQueryParamKey(filterKey);\n if (isSingleValue) {\n if (filter.checked) {\n searchParams.delete(key);\n } else {\n searchParams.set(key, filter.id);\n }\n } else {\n const pairs = Array.from(searchParams.entries());\n if (filter.checked) {\n searchParams = new URLSearchParams(\n pairs.filter(([pairKey, pairVal]) => {\n if (pairKey === key && pairVal === String(filter.id)) {\n return false;\n }\n return true;\n })\n );\n } else {\n searchParams.append(key, filter.id);\n }\n }\n\n searchParams.sort();\n\n return searchParams;\n};\n\nexport const buildSearchParamsFromActiveFiltersIdsMap = (filters) => {\n const searchParams = new URLSearchParams();\n\n for (let [filterKey, filterValue] of Object.entries(filters)) {\n if (filterValue !== undefined) {\n if (Array.isArray(filterValue)) {\n for (let el of filterValue) {\n searchParams.append(getFilterKeyQueryParamKey(filterKey), el);\n }\n } else {\n searchParams.set(getFilterKeyQueryParamKey(filterKey), filterValue);\n }\n }\n }\n\n searchParams.sort();\n\n return searchParams;\n};\n\n// remove from query params anything that is not active\nexport const cleanSearchParams = (filters) => {\n const activeFilterIdsMap = getActiveFilterIdsMap(filters);\n\n const params = buildSearchParamsFromActiveFiltersIdsMap(activeFilterIdsMap);\n\n if (history.pushState) {\n var newurl =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n `?${params.toString()}`;\n window.history.replaceState({ path: newurl }, '', newurl);\n }\n};\n\nconst getActiveFilterIdsMap = (filters) => {\n const entries = Object.entries(filters).map(([key, val]) => {\n if (Array.isArray(val)) {\n return [key, val.map((el) => el.id)];\n }\n return [key, val];\n });\n\n return Object.fromEntries(entries);\n};\n\nexport const getFiltersFromQueryParams = (\n defaultFilters,\n queryParams,\n mapping = {},\n customResolvers = {}\n) => {\n const isInteger = (str) => {\n if (typeof str !== 'string') {\n return false;\n }\n\n const num = Number(str);\n\n if (Number.isInteger(num)) {\n return true;\n }\n\n return false;\n };\n\n const filters = { ...defaultFilters };\n const keyValuePairs = queryParams.split('&');\n\n keyValuePairs.forEach((pair) => {\n const key = pair.split('=').shift();\n let val;\n if (key === 'profile') {\n val = pair.split('|id=').pop();\n } else {\n val = pair.split('=').pop();\n }\n const value = isInteger(val) ? Number(val) : val;\n const filterKey = mapping[key] || key.split('Id').shift();\n const valueToAdd = customResolvers[key]?.(value) || value;\n\n if (filters[filterKey] && Array.isArray(filters[filterKey])) {\n filters[filterKey] = filters[filterKey].concat(valueToAdd);\n } else {\n filters[filterKey] = valueToAdd;\n }\n });\n\n return filters;\n};\n\nexport const getOpenedFilters = (filters, defaults = []) => {\n const activeFilters = Object.entries(filters)\n .filter(([_, val]) => Array.isArray(val) && val.length)\n .map(([key, _]) => key);\n\n return [...defaults, ...activeFilters];\n};\n","export const isSSRPageLink = (urls, link) => {\n return urls.some((page) => {\n return (\n link?.linkToPage?.includes?.(page.url) ||\n link?.linkToDynamicPage === page.name\n );\n });\n};\n\nexport const SSRPageLinks = [\n { url: '/winner-ranking/project/', name: 'Project Detail' },\n { url: '/brands-creatives/company/', name: 'Company Detail' },\n { url: '/if-design-award-and-jury/jury/profile/', name: 'Jury Detail' },\n];\n"],"names":["isSafari","window","test","navigator","userAgent","CustomScrollable","children","vertical","onlySmall","className","props","containerRef","useRef","trackRef","thumbRef","needsScrollbarTrack","setNeedsScrollbarTrack","useState","hackNeeded","checkVersion","agent","start","indexOf","Number","substr","replace","useEffect","current","scrollWidth","clientWidth","style","width","React","_extends","combine","ref","onScroll","percentageScrolled","scrollLeft","thumbPosition","transform","propTypes","pt","defaultProps","Headline","text","level","type","variant","textClassName","Text","as","dangerouslySetInnerHTML","__html","raw","RichText","content","paragraphAs","paragraphType","paragraphVariant","headlinePropTypes","richTextPropTypes","isRequired","textClasName","Skeleton","img","imgWrapper","inSlider","isContainImage","isSquare","itemWrapper","textWrapper","FallbackIcon","fill","fillRule","d","xmlns","viewBox","TeaserItem","image","title","subline","info","link","isInSlider","imageBadge","awardBadge","imageClassName","isSkeleton","disableGatsbyImage","aspectRatio","isSmall","showArrow","arrowSize","textBadge","unstyledFallback","onLinkClick","renderTeaserItem","url","styles","Image","imgClassName","disableImageCaption","AwardBadge","name","Icon","size","Link","useGatsbyLink","isSSRPageLink","SSRPageLinks","onClick","imageProptypes","linkProptypes","getIfDesignAwardBadge","el","awardType","status","goldAward","isIfDesignAward","endOfMonth","dirtyDate","requiredArgs","arguments","date","toDate","month","getMonth","setFullYear","getFullYear","setHours","startOfMonth","setDate","addMonths","dirtyAmount","amount","toInteger","isNaN","Date","NaN","dayOfMonth","getDate","endOfDesiredMonth","getTime","setMonth","endOfYear","year","startOfYear","cleanDate","addYears","sortFiltersAlphabetically","a","b","localeCompare","getYearFilters","allTime","delayed","filters","id","concat","getSIPYearFilters","yearForJuror","getJurorYearFilters","isJuror","mappedJurorFilterDates","Array","from","map","_","index","getMappedFilterDates","formatFutureDateForAPI","format","getMappedFilterFutureDates","key","fromDate","getMonthFilters","getActiveFilters","filtersMap","queryFilters","activeFilters","Object","fromEntries","entries","getFilterKeyQueryParamKey","filter","_queryFilters$key","includes","find","profile","inspiration","sort","dynamicFilterId","filterKeyQueryParamKeyMap","awards","profileTypes","time","region","countries","country","fieldsOfWork","sectors","disciplines","categories","articleType","readingTime","pressType","eventType","queryParamKeyMicrocopyKeyMap","awardId","profileTypeId","yearId","regionId","countryId","fieldOfWorkId","sectorId","disciplineId","categoryId","articleTypeId","readingTimeId","pressTypeId","eventTypeId","filterKey","buildSearchParams","isSingleValue","baseSearchParams","searchParams","URLSearchParams","location","search","checked","delete","set","pairs","pairKey","pairVal","String","append","cleanSearchParams","params","filterValue","undefined","isArray","buildSearchParamsFromActiveFiltersIdsMap","getActiveFilterIdsMap","history","pushState","newurl","protocol","host","pathname","toString","replaceState","path","val","getFiltersFromQueryParams","defaultFilters","queryParams","mapping","customResolvers","split","forEach","pair","_customResolvers$key","shift","pop","value","str","num","isInteger","valueToAdd","call","getOpenedFilters","defaults","length","urls","some","page","_link$linkToPage","_link$linkToPage$incl","linkToPage","linkToDynamicPage"],"sourceRoot":""}