{"version":3,"file":"static/chunks/469.c39bd60e9d7eae05.js","mappings":"irBAaA,IAAMA,EAA8DC,KAAAA,EAC9DC,EAA8DD,KAAAA,EAE9DE,EAAQ,OAAC,CACXC,SAAAA,EAAW,IAAI,CACfC,UAAAA,EAAY,EAAK,CACjBC,SAAAA,EAAW,EAAE,CACbC,SAAAA,EAAW,IAAI,CACfC,WAAAA,EAAa,EAAI,CACjBC,KAAAA,EAAO,IAAI,CACXC,SAAAA,EAAW,IAAI,CACfC,YAAAA,EAAc,IAAI,CAClBC,QAAAA,EAAU,IAAI,CACdC,YAAAA,EAAc,IAAI,CAClBC,aAAAA,EAAe,CAAC,CAAC,CACjBC,WAAAA,EAAa,IAAI,CACjBC,mBAAAA,EAAqB,IAAI,CACzBC,SAAAA,EAAW,IAAI,CACfC,iBAAAA,EAAmB,EAAK,CACxBC,MAAAA,EAAQ,EAAE,CACVC,KAAAA,EAAO,EAAE,CACTC,KAAAA,EAAO,IAAI,CACXC,YAAAA,EAAc,EAAE,CAChBC,iBAAAA,EAAmB,EAAE,CACxB,CAAAC,EACS,CAAEC,YAAAA,CAAW,CAAEC,QAAAA,CAAO,CAAEC,WAAAA,CAAU,CAAEC,cAAAA,CAAa,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,UAAAA,EAAWC,EAAAA,CAAUA,EAE3EC,EAAWC,CAAAA,EAAAA,EAAAA,MAAAA,IACXC,EAAYD,CAAAA,EAAAA,EAAAA,MAAAA,IAEZ,CAACE,EAAQC,EAAU,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC/B,CAACC,EAAOC,EAAS,CAAGF,CAAAA,EAAAA,EAAAA,QAAAA,EAASd,GAC7BiB,EAAa7B,EAAWY,EAAYkB,MAAM,CAAGjB,EAAiBiB,MAAM,CAEpEC,EAAkB,CAACC,EAAKC,IAC1B,IAAGC,OAAS,CAACF,GACF,CAAC,EAELG,OAAOC,WAAW,CACrBD,OAAOE,OAAO,CAACL,GAAKM,GAAG,CAAC,OAAC,CAACC,EAAKC,EAAM,CAAA1B,QAAK,CACtC,CAAC,EAAEmB,EAAO,EAAEM,EAAI,CAAC,CACjBE,MAAMC,OAAO,CAACF,GAASA,EAAMG,IAAI,CAAC,KAAOH,EAC5C,IAMHI,EAAkB,IAAIhC,EAAY,CAAC0B,GAAG,CAAC,OAAC,CAAEO,IAAAA,CAAG,CAAE,CAAA/B,SAAK+B,IAEpDC,EAAyB,IAAIF,EAAgB,CAACN,GAAG,CAAC,GAAS,CAAC,CAAC,EAAEO,EAAIE,OAAO,CAAC,MAAO,IAAI,CAAC,EAEvFC,EAAa9C,EAAWuC,MAAMC,OAAO,CAACxC,GAAWA,EAAUA,EAAQ+C,KAAK,CAAC,KAAQ,EAAE,CACnFC,EAAiB/C,EAAesC,MAAMC,OAAO,CAACvC,GAAeA,EAAcA,EAAY8C,KAAK,CAAC,KAAQ,EAAE,CACvGE,EAAcC,CAAAA,EAAAA,EAAAA,EAAAA,EAAqBJ,GACnCK,EAAkBD,CAAAA,EAAAA,EAAAA,EAAAA,EAAqB,IAAIF,KAAmBJ,EAAuB,EACrFQ,EAAsBvB,EAAgB3B,EAAc,iBACpDmD,EAAwBxB,EAAgB3B,EAAc,sBAGtDoD,EAAavD,aAAAA,EACbwD,GAAUxD,UAAAA,EAEVyD,GAAsB,IACxB,IAAMC,EAAOC,GAAOC,eAAeF,KACnC,GAAGA,EAAM,CAEL,IAAMG,EAAOjB,IADGkB,IAAIJ,GACHK,QAAQ,CAErBpB,EAAgBqB,QAAQ,CAACN,IAAUf,EAAgBqB,QAAQ,CAACH,IAC5DI,UAAUC,IAAI,CAAC,CACXP,MAAO,oBACPQ,WAAYvE,GAAY,OACxBwE,kBAAmBP,EACnBQ,aAAcC,OAAOC,QAAQ,CAACR,QAAQ,EAGlD,CACJ,EAEMS,GAAmB,IACrB,IAAMd,EAAOC,GAAOC,eAAeF,KACnC,GAAGA,EAAM,CACL,IAAMd,EAAM,IAAIkB,IAAIJ,GACpBO,UAAUC,IAAI,CAAC,CACX,MAAS,oBACT,WAAc,SACd,kBAAqBtB,EAAImB,QAAQ,CACjC,aAAgBO,OAAOC,QAAQ,CAACR,QAAQ,EAEhD,CACJ,EAEMU,GAAa,GAGR,IAAIC,KADUC,EAAK7B,OAAO,CAAC,SAAU,IAAIA,OAAO,CAAC,MAAO,OAAOA,OAAO,CAAC,MAAO,QACvD8B,cAAc,CAAC,QAAS,CAClDC,IAAK,UACLC,MAAO,QACPC,KAAM,SACV,GAAGjC,OAAO,CAAC,IAAK,IAIdkC,GAAa,CAACC,EAAMpB,KACtB,IAAMqB,EAAUD,EAAKE,IAAI,CAACC,GAAQA,YAAAA,CAAI,CAAC,QAAQ,EAAkBA,GAAMxC,MAAMA,IAC7E,GAAGsC,EACC,OAAOA,EAEX,IAAMG,EAAUJ,EAAKE,IAAI,CAACC,GAAQA,YAAAA,CAAI,CAAC,QAAQ,GAAiBxC,IAChE,OAAOyC,EAAUA,EAAQvC,OAAO,CAAC,MAAO,IAAMe,EAAOA,CACzD,EAEMyB,GAAiB,GACZC,EAAYlD,GAAG,CAAC,IAEnB,IAAMmD,EAASvD,IAAAA,GAAK,CAACmD,EAAM,YAAa,CAAC,GACnCK,EAAOxD,IAAAA,GAAK,CAACuD,EAAQ,iBAAkB,QAGvC5C,EAAMoC,GAAWI,EAAKM,MAAM,CAAEN,EAAKxC,GAAG,EAEtC+C,EAAWP,GAAMQ,OAEjBC,EAAaF,EAAS3B,QAAQ,CAAC,iBAAmB2B,EAAS3B,QAAQ,CAAC,eACpE8B,EAAWL,WAAAA,GAAqBA,UAAAA,GAAoBxD,IAAAA,GAAK,CAACuD,EAAQ,iBAAkB,IACpFb,EAAO1C,IAAAA,GAAK,CAACuD,EAAQ,gBAAiBJ,EAAKW,OAAO,EAClDC,EAAS/D,IAAAA,GAAK,CAACuD,EAAQ,eAAgB,CAAC,GAC9C,MAAO,CACH,GAAGJ,CAAI,CACPxC,IAAKA,EACL6C,KAAMA,EACNjF,MAAO4E,EAAK5E,KAAK,CACjByF,QAASb,EAAKc,OAAO,CACrBvB,KAAMA,EACNwB,QAASV,IAAS7F,EAClBmF,KAAM9C,IAAAA,GAAK,CAACuD,EAAQ,aAAc,IAClCY,OAAQnE,IAAAA,GAAK,CAACuD,EAAQ,eAAgB,IACtCa,OAAQpE,IAAAA,GAAK,CAACuD,EAAQ,eAAgB,IACtCc,cAAe,EAAS7B,GAAWE,GAAQ,GAC3C4B,WAAYtE,IAAAA,GAAK,CAACuD,EAAQ,aAAc,IACxCjB,SAAUtC,IAAAA,GAAK,CAACuD,EAAQ,iBAAkB,IAC1CgB,MAAQvE,IAAAA,GAAK,CAACuD,EAAQ,QAASvD,IAAAA,GAAK,CAACuD,EAAQ,cAAe,KAC5DiB,QAASxE,IAAAA,GAAK,CAACuD,EAAQ,gBAAiB,IACxCkB,WAAYzE,IAAAA,GAAK,CAACuD,EAAQ,mBAAoB,IAC9CmB,WAAY1E,IAAAA,GAAK,CAACuD,EAAQ,mBAAoB,IAC9CoB,OAAQ3E,IAAAA,GAAK,CAACuD,EAAQ,eAAgB,IACtCqB,WAAY5E,IAAAA,GAAK,CAACuD,EAAQ,mBAAoB,IAC9CsB,OAAQ7E,IAAAA,GAAK,CAACuD,EAAQ,eAAgB,IACtCuB,SAAU9E,IAAAA,GAAK,CAACuD,EAAQ,iBAAkB,IAC1CwB,YAAa/E,IAAAA,GAAK,CAACuD,EAAQ,eAAgB,IAC3C,GAAIQ,GAAUA,EAAOiB,IAAI,EAAI,CACzBjB,OAAQ,CACJxF,MAAOwF,EAAOiB,IAAI,CAClB,GAAIjB,GAAQkB,OAAS,CACjBA,MAAO,CACHC,IAAKnB,EAAOkB,KAAK,CACjBE,IAAKpB,EAAOiB,IAAI,CAExB,CAAC,CAET,CAAC,CACD,GAAI,CAACpB,GAAcC,GAAY,CAAC,CAACH,GAAY,CACzCuB,MAAO,CACHC,IAAKxB,EACLyB,IAAKhC,GAAMiC,MACf,EACAC,UAAW,EACf,CAAC,CAET,GAwFJ,GArFAC,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KAEFtF,IAAAA,OAAS,CAACrB,IAAsBW,IAEhCI,EAAS,IAAID,KADO4D,GAAe1E,GACA,EACnCY,EAAU,IAElB,EAAG,EAAE,EAEL+F,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KA6BN,IAAMC,EAAU,CACZC,OAAQ,CACJ,GAAIpI,GAAmB,CAACqI,EAAGrI,CAAe,CAAC,CAC3C,GAAIE,GAAmB,CAACoI,KAAMpI,CAAe,CAAC,CAC9C,GAAIuB,GAAe,CAAC8G,kBAAmB9G,CAAW,CAAC,CACnD+G,WAAY,GACZ9H,SAAU6B,EACV3B,QAASiD,EACThD,YAAakD,EACb,GAAGC,CAAmB,CAE9B,EAEIzB,EAAa,GAAKZ,GAAcsD,QAAUA,OAAOwD,OAAO,GACrDjI,EACK0B,GACA+C,OAAOwD,OAAO,CAACC,OAAO,CAACP,EA5CH,IAE5B7F,EAAS,IAAID,KADO4D,GAAeL,EAAKM,WAAW,EAChB,EACnC/D,EAAU,GACd,GA0Cc+B,GACNyE,CAzCwB,KAC5B,GAAI5G,GAAYA,EAAS6G,OAAO,CAAE,CAE9B,IAAMC,EAAW9G,EAAS6G,OAAO,CAACE,gBAAgB,CAC9C,8BAEJ,GAAID,EAASrG,MAAM,CAAG,EAClB,IAAK,IAAIuG,EAAI,EAAGA,EAAIF,EAASrG,MAAM,CAAEuG,IAAK,CACtC,IAAMC,EAAUH,CAAQ,CAACE,EAAE,CAC3BC,EAAQC,gBAAgB,CAAC,QAAS,KAC9BD,EACKE,aAAa,CAAC,wBACdC,KAAK,EACd,GAGA9H,EADqB6H,aAAa,CAAC,KAC9BD,gBAAgB,CAAC,QAAS7E,GACnC,CAER,CACJ,KAwBJ,EAAG,CAAC5D,EAAYmB,EAAYY,EAAYL,EAAO,EAE/CgG,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACN,IAAMkB,EAAWlF,EAAa,YAAc,UACtCmF,EAAmBnF,EAAaE,GAAsBe,GAG5D,GAAG9C,EAAMG,MAAM,CAAG,GAAKP,GAAaA,EAAU2G,OAAO,CAAE,CACnD,IAAMU,EAAQrH,EAAU2G,OAAO,CAACE,gBAAgB,CAACM,EAC7CE,CAAAA,EAAM9G,MAAM,CAAG,GAAK,oBAAOoC,WAC3B0E,EAAMC,OAAO,CAAC,IACVlI,EAAK4H,gBAAgB,CAAC,QAASI,EACnC,EAER,CACA,MAAO,KACAhH,EAAMG,MAAM,CAAG,GAAKP,GAAaA,EAAU2G,OAAO,EAEjDU,EADwBV,OAAO,CAACE,gBAAgB,CAACM,GAC3CG,OAAO,CAAC,IACVlI,EAAKmI,mBAAmB,CAAC,QAASH,EACtC,EAER,CACJ,EAAG,CAAChH,EAAM,EAEP,CAACX,EACA,OAAO,KAGX,IAAM+H,GAAUC,IAAWC,IAAAA,IAAS,CAAE,CAClC,CAACA,GAAC,CAAC,CAAC,MAAM,EAAErJ,EAAS,CAAC,CAAC,CAAC,CAAEA,EAC1B,CAACqJ,GAAC,CAAC,CAAC,MAAM,EAAE/G,IAAAA,UAAY,CAACjC,GAAa,CAAC,CAAC,CAAC,CAAEA,CAC/C,GAEMiJ,GAAYzF,GAAU0F,EAAAA,CAAUA,CAAGC,EAAAA,CAAWA,CAEpD,MACI,GAAAC,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWT,aACZ,GAAAM,EAAAI,GAAA,EAACC,IAAMA,CACHC,GAAG,aACHvC,IAAK,CAAC,wBAAwB,EAAEpG,EAAQ,GAAG,CAAC,CAC5C4I,QAAS,KACL1I,EAAc,GAClB,IAEHpB,EACG,GAAAuJ,EAAAI,GAAA,EAACF,MAAAA,CAAIC,UAAWP,IAAAA,YAAiB,CAAEY,IAAKtI,WACpC,GAAA8H,EAAAI,GAAA,EAACP,GAAAA,CACGzI,MAAOA,EACPiF,KAAM7F,EACN8B,MAAOA,EACPiH,MAAOjH,EACPhB,KAAMA,EACND,KAAMA,EACNoJ,QAAS,OAIjB,GAAAT,EAAAI,GAAA,EAACF,MAAAA,CACGC,UAAU,iBACVK,IAAKxI,EACL0I,YAAWhK,EACXiK,gBAAehK,EACfiK,mBAAkBhK,EAClBiK,eAAc/G,EACdgH,mBAAkB9G,EAClB+G,kBAAiB/J,EACjBgK,0BAAyB/J,EACzBgK,gBAAe/J,EACfgK,yBAAwBxJ,EAAAA,GAAqBP,EAC7CgK,iBAAgBlL,EAChBmL,YAAWjL,EACXkL,sBAAoB,0BACpBC,yBAAuB,IACtB,GAAGpH,CAAqB,UAExB7D,MAKrB,CAEAD,CAAAA,EAAMmL,SAAS,CAAG,CACdlL,SAAUmL,IAAAA,SAAmB,CAAC,CAACA,IAAAA,IAAc,CAAEA,IAAAA,MAAgB,CAAC,EAChE7J,QAAS6J,IAAAA,MAAgB,CACzBlL,UAAWkL,IAAAA,IAAc,CACzBjL,SAAUiL,IAAAA,MAAgB,CAC1BhL,SAAUgL,IAAAA,MAAgB,CAC1B9K,KAAM8K,IAAAA,MAAgB,CACtB7K,SAAU6K,IAAAA,MAAgB,CAC1B5K,YAAa4K,IAAAA,MAAgB,CAC7B3K,QAAS2K,IAAAA,SAAmB,CAAC,CAACA,IAAAA,KAAe,CAAEA,IAAAA,MAAgB,CAAC,EAChE1K,YAAa0K,IAAAA,SAAmB,CAAC,CAACA,IAAAA,KAAe,CAAEA,IAAAA,MAAgB,CAAC,EACpEzK,aAAcyK,IAAAA,MAAgB,CAC9BxK,WAAYwK,IAAAA,MAAgB,CAC5BvK,mBAAoBuK,IAAAA,MAAgB,CACpCtK,SAAUsK,IAAAA,IAAc,CACxBrK,iBAAkBqK,IAAAA,IAAc,CAChCpK,MAAOoK,IAAAA,MAAgB,CACvBlK,KAAMkK,IAAAA,MAAgB,CACtBjK,YAAaiK,IAAAA,KAAe,CAC5BhK,iBAAkBgK,IAAAA,KAAe,EC1VrC,IAAAC,ED6VerL,EC3VR,IAAMsL,EAAgB,2BCH7BC,EAAAC,OAAA,EAAkB","sources":["webpack://_N_E/./components/RekAI/RekAI.js","webpack://_N_E/./components/RekAI/index.js","webpack://_N_E/./components/RekAI/RekAI.module.scss"],"sourcesContent":["/* global dataLayer */\nimport React, { useEffect, useRef, useContext, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Script from 'next/script';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { AppContext } from 'Layouts/App';\nimport { getRekAITreeFromUrls, getRekAIParams, transformToRekAILdjsonFilter } from '../../utils/rekai';\nimport ArticleList from 'Components/ArticleList';\nimport LinkModule from 'Components/LinkModule';\nimport s from './RekAI.module.scss';\n\n// For testing locally\nconst _rekaiProjectId = process.env.NEXT_PUBLIC_REKAI_PROJECT_ID || undefined;\nconst _rekaiSecretKey = process.env.NEXT_PUBLIC_REKAI_SECRET_KEY || undefined;\n\nconst RekAI = ({\n children = null,\n debugging = false,\n modifier = '',\n postType = null,\n loadWithJS = true,\n cols = null,\n nrofhits = null,\n renderstyle = null,\n subtree = null,\n excludetree = null,\n ldjsonFilter = {},\n headertext = null,\n headerheadinglevel = null,\n showdate = null,\n advancedMockData = false,\n title = '',\n text = '',\n link = null,\n customItems = [],\n dummyPredictions = [], // Only for Storybook\n}) => {\n const { isStorybook, rekaiId, rekaiReady, setRekaiReady } = useContext(AppContext);\n\n const rekaiRef = useRef();\n const customRef = useRef();\n\n const [isDone, setIsDone] = useState(false);\n const [items, setItems] = useState(customItems);\n const rekAiCount = nrofhits - customItems.length - dummyPredictions.length;\n\n const transformObject = (obj, prefix) => {\n if(_.isEmpty(obj)) {\n return {};\n }\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n `${prefix}${key}`,\n Array.isArray(value) ? value.join(\",\") : value,\n ])\n );\n };\n\n\n // All custom items should be excluded from RekAI and skipped in tracking\n const customItemsUrls = [...customItems].map(({ url }) => url);\n // Add \"!\" to each url so it matches exactly\n const excludeCustomItemsUrls = [...customItemsUrls].map((url) => `!${url.replace(/\\/$/, '')}`);\n\n const subtreeArr = subtree ? (Array.isArray(subtree) ? subtree : subtree.split(',')) : [];\n const excludetreeArr = excludetree ? (Array.isArray(excludetree) ? excludetree : excludetree.split(',')) : [];\n const subtreePath = getRekAITreeFromUrls(subtreeArr);\n const excludetreePath = getRekAITreeFromUrls([...excludetreeArr, ...excludeCustomItemsUrls]);\n const ldjsonFilterOptions = transformObject(ldjsonFilter, 'ldjsonfilter.');\n const ldjsonFilterDataAttrs = transformObject(ldjsonFilter, 'data-ldjsonfilter.');\n\n // Custom style is only for rendering our own components instead of RekAI markup\n const isAdvanced = renderstyle === 'advanced';\n const isPills = renderstyle === 'pills';\n\n const articleClickHandler = (event) => {\n const href = event?.currentTarget?.href;\n if(href) {\n const url = new URL(href);\n const path = url.pathname;\n // Skip RekAI tracking for custom items\n if(!customItemsUrls.includes(href) && !customItemsUrls.includes(path)) {\n dataLayer.push({\n event: 'rekai_predictions',\n rekai_type: postType || 'page',\n rekai_destination: path,\n rekai_origin: window.location.pathname,\n });\n }\n }\n };\n\n const pillClickHandler = (event) => {\n const href = event?.currentTarget?.href;\n if(href) {\n const url = new URL(href);\n dataLayer.push({\n 'event': 'rekai_predictions',\n 'rekai_type': 'button',\n 'rekai_destination': url.pathname,\n 'rekai_origin': window.location.pathname,\n });\n }\n };\n\n const formatDate = (date) => {\n // Remove weekday in the beginning and convert swedish months\n const enDateString = date.replace(/^\\w+, /, '').replace('okt', 'oct').replace('maj', 'may');\n return new Date(enDateString).toLocaleString('sv-SE', {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n }).replace('.', '');\n };\n\n // Get the full url for making it absolute\n const getFullUrl = (data, path) => {\n const pageUrl = data.find(item => item['@type'] !== 'WebSite' && item?.url)?.url;\n if(pageUrl) {\n return pageUrl;\n }\n const siteUrl = data.find(item => item['@type'] === 'WebSite')?.url;\n return siteUrl ? siteUrl.replace(/\\/$/, '') + path : path;\n };\n\n const mapPredictions = (predictions) => {\n return predictions.map((item) => {\n // TODO: Render diffferent component depending on item type\n const ldData = _.get(item, 'ldjson[0]', {});\n const type = _.get(ldData, 'additionalType', 'news');\n\n // Get the full url for making it absolute\n const url = getFullUrl(item.ldjson, item.url);\n\n const imageUrl = item?.imgurl;\n // Skip image if it is fallback or static\n const isFallback = imageUrl.includes('_next/static') || imageUrl.includes('og-fallback');\n const hasImage = type !== 'course' && type !== 'event' && _.get(ldData, 'customHasImage', true);\n const date = _.get(ldData, 'datePublished', item.pubdate);\n const author = _.get(ldData, 'customAuthor', {});\n return {\n ...item,\n url: url,\n type: type,\n title: item.title,\n excerpt: item.ingress,\n date: date,\n showTab: type !== postType,\n year: _.get(ldData, 'customYear', ''),\n status: _.get(ldData, 'customStatus', ''),\n office: _.get(ldData, 'customOffice', ''),\n formattedDate: !!date ? formatDate(date) : '',\n customDate: _.get(ldData, 'customDate', ''),\n location: _.get(ldData, 'customLocation', ''),\n label: _.get(ldData, 'genre', _.get(ldData, 'customLabel', '')),\n listTag: _.get(ldData, 'customListTag', ''),\n signupText: _.get(ldData, 'customSignupText', ''),\n isExternal: _.get(ldData, 'customIsExternal', ''),\n isFull: _.get(ldData, 'customIsFull', ''),\n isFewSeats: _.get(ldData, 'customIsFewSeats', ''),\n isOpen: _.get(ldData, 'customIsOpen', ''),\n isWinner: _.get(ldData, 'customIsWinner', ''),\n competition: _.get(ldData, 'customParent', ''),\n ...(author && author.name && {\n author: {\n title: author.name,\n ...(author?.image && {\n image: {\n src: author.image,\n alt: author.name,\n },\n }),\n },\n }),\n ...(!isFallback && hasImage && !!imageUrl && {\n image: {\n src: imageUrl,\n alt: item?.imgalt,\n },\n showImage: true,\n }),\n }\n });\n };\n\n useEffect(() => {\n // Only for storybook for testing map of predictions\n if(!_.isEmpty(dummyPredictions) && !isDone) {\n const predictions = mapPredictions(dummyPredictions);\n setItems([...items, ...predictions]);\n setIsDone(true);\n }\n }, []);\n\n useEffect(() => {\n const handleCustomPredictions = (data) => {\n const predictions = mapPredictions(data.predictions);\n setItems([...items, ...predictions]);\n setIsDone(true);\n };\n\n const predictionAdvancedReady = () => {\n if (rekaiRef && rekaiRef.current) {\n // Add click event to whole block for triggering a-tag\n const articles = rekaiRef.current.querySelectorAll(\n '.rekai-newsarticle-article'\n );\n if (articles.length > 0) {\n for (let i = 0; i < articles.length; i++) {\n const article = articles[i];\n article.addEventListener('click', () => {\n article\n .querySelector('.rekai-newsarticle-a')\n .click();\n });\n\n const link = article.querySelector('a');\n link.addEventListener('click', articleClickHandler);\n }\n }\n }\n };\n\n const options = {\n params: {\n ...(_rekaiProjectId && {p: _rekaiProjectId}),\n ...(_rekaiSecretKey && {srek: _rekaiSecretKey}),\n ...(isStorybook && {advanced_mockdata: isStorybook}),\n addcontent: true,\n nrofhits: rekAiCount,\n subtree: subtreePath,\n excludetree: excludetreePath,\n ...ldjsonFilterOptions,\n }\n };\n\n if (rekAiCount > 0 && rekaiReady && window && window.__rekai) {\n if(loadWithJS) {\n if(!isDone) {\n window.__rekai.predict(options, handleCustomPredictions);\n }\n } else if(isAdvanced) {\n predictionAdvancedReady();\n }\n }\n }, [loadWithJS, rekaiReady, rekAiCount, isDone]);\n\n useEffect(() => {\n const selector = isAdvanced ? 'article a' : 'ul li a';\n const itemClickHandler = isAdvanced ? articleClickHandler : pillClickHandler;\n\n // Handle click event on links when custom prediction is done\n if(items.length > 0 && customRef && customRef.current) {\n const links = customRef.current.querySelectorAll(selector);\n if (links.length > 0 && typeof dataLayer !== 'undefined') {\n links.forEach((link) => {\n link.addEventListener('click', itemClickHandler);\n });\n }\n }\n return () => {\n if(items.length > 0 && customRef && customRef.current) {\n const links = customRef.current.querySelectorAll(selector);\n links.forEach((link) => {\n link.removeEventListener('click', itemClickHandler);\n });\n }\n };\n }, [items]);\n\n if(!rekaiId) {\n return null;\n }\n\n const classes = classNames(s['Root'], {\n [s[`Root--${modifier}`]]: modifier,\n [s[`Root--${_.upperFirst(renderstyle)}`]]: renderstyle,\n });\n\n const Component = isPills ? LinkModule : ArticleList;\n\n return (\n
\n {\n setRekaiReady(true);\n }}\n />\n {loadWithJS ? (\n
\n \n
\n ) : (\n \n {children}\n
\n )}\n \n );\n};\n\nRekAI.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n rekaiId: PropTypes.string,\n debugging: PropTypes.bool,\n modifier: PropTypes.string,\n postType: PropTypes.string,\n cols: PropTypes.number,\n nrofhits: PropTypes.number,\n renderstyle: PropTypes.string,\n subtree: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n excludetree: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n ldjsonFilter: PropTypes.object,\n headertext: PropTypes.string,\n headerheadinglevel: PropTypes.number,\n showdate: PropTypes.bool,\n advancedMockData: PropTypes.bool,\n title: PropTypes.string,\n link: PropTypes.object,\n customItems: PropTypes.array,\n dummyPredictions: PropTypes.array,\n};\n\nexport default RekAI;\n","import RekAI from './RekAI';\n\nexport default RekAI;\n\nexport const componentName = 'RekAI';\n\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Root\":\"RekAI_Root__j5ML7\",\"CardNews\":\"RekAI_CardNews__WIyO7\",\"CardNews__Link\":\"RekAI_CardNews__Link__0Plgr\",\"CardNews__Image\":\"RekAI_CardNews__Image__e6nlg\",\"CardNews__Tab\":\"RekAI_CardNews__Tab__ZZlAJ\",\"CardNews__Content\":\"RekAI_CardNews__Content__yTNEa\",\"CardNews--NoImage\":\"RekAI_CardNews--NoImage__I_Ld8\",\"CardNews--IsLarge\":\"RekAI_CardNews--IsLarge__jSO_R\",\"CardNews--HasImage\":\"RekAI_CardNews--HasImage__OJbQ3\",\"CardNews__Label\":\"RekAI_CardNews__Label__d9wbo\",\"CardNews__Title\":\"RekAI_CardNews__Title__Ys8ZM\",\"CardNews__Text\":\"RekAI_CardNews__Text__QWFN9\",\"CardNews__Date\":\"RekAI_CardNews__Date__srPZB\",\"loader\":\"RekAI_loader__lUmYU\"};"],"names":["_rekaiProjectId","undefined","_rekaiSecretKey","RekAI","children","debugging","modifier","postType","loadWithJS","cols","nrofhits","renderstyle","subtree","excludetree","ldjsonFilter","headertext","headerheadinglevel","showdate","advancedMockData","title","text","link","customItems","dummyPredictions","param","isStorybook","rekaiId","rekaiReady","setRekaiReady","useContext","AppContext","rekaiRef","useRef","customRef","isDone","setIsDone","useState","items","setItems","rekAiCount","length","transformObject","obj","prefix","_","Object","fromEntries","entries","map","key","value","Array","isArray","join","customItemsUrls","url","excludeCustomItemsUrls","replace","subtreeArr","split","excludetreeArr","subtreePath","getRekAITreeFromUrls","excludetreePath","ldjsonFilterOptions","ldjsonFilterDataAttrs","isAdvanced","isPills","articleClickHandler","href","event","currentTarget","path","URL","pathname","includes","dataLayer","push","rekai_type","rekai_destination","rekai_origin","window","location","pillClickHandler","formatDate","Date","date","toLocaleString","day","month","year","getFullUrl","data","pageUrl","find","item","siteUrl","mapPredictions","predictions","ldData","type","ldjson","imageUrl","imgurl","isFallback","hasImage","pubdate","author","excerpt","ingress","showTab","status","office","formattedDate","customDate","label","listTag","signupText","isExternal","isFull","isFewSeats","isOpen","isWinner","competition","name","image","src","alt","imgalt","showImage","useEffect","options","params","p","srek","advanced_mockdata","addcontent","__rekai","predict","predictionAdvancedReady","current","articles","querySelectorAll","i","article","addEventListener","querySelector","click","selector","itemClickHandler","links","forEach","removeEventListener","classes","classNames","s","Component","LinkModule","ArticleList","jsx_runtime","jsxs","div","className","jsx","Script","id","onReady","ref","isRekAI","data-cols","data-nrofhits","data-renderstyle","data-subtree","data-excludetree","data-headertext","data-headerheadinglevel","data-showdate","data-advanced_mockdata","data-projectid","data-srek","data-titlefontclass","data-titleheadinglevel","propTypes","PropTypes","components_RekAI","componentName","module","exports"],"sourceRoot":""}