{"version":3,"file":"845.bundle.js","mappings":"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","sources":["webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/trackConversion.tsx","webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/RecommendationsCommonBlocks.tsx","webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/RecommendationsCarouselBlock.tsx","webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/RecommendationsBlockInner.tsx","webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/RecommendationsFundBlock.tsx","webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/RecommendationsTrendingBlockInner.tsx","webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/RecommendationsBlock.tsx","webpack://vaneckreact/./ReactUS/Components/RecommendationsBlock/useRecommendationsBlock.tsx","webpack://vaneckreact/./ReactUS/core/customHooks/useAutoScollUp.tsx","webpack://vaneckreact/./ReactUS/services/fetchDataService.tsx"],"sourcesContent":["import { MediaPreview } from \"../../interfaces/MediaPreview\";\r\n\r\ndeclare global {\r\n interface Window {\r\n _iaq: any[];\r\n }\r\n}\r\n\r\nconst trackConversion = function (item: MediaPreview, conversionGoal: string | null | undefined) {\r\n if (!conversionGoal || !item.IsRecommendation) {\r\n return;\r\n }\r\n \r\n window._iaq.push(['goal', conversionGoal]);\r\n window._iaq.push(['track', 'convert']);\r\n}\r\n\r\nexport default trackConversion;","import { MediaPreview } from \"../../interfaces/MediaPreview\";\r\nimport trackConversion from \"./trackConversion\";\r\nimport parse from \"html-react-parser\";\r\n\r\nexport function Recommendation({ recommendation, isHorizontal, isCarousel, hideImage, hidePublishDate, hideReadTime, removeExtraSpacing, disableCapabilityLinks, conversionGoal }: { recommendation: MediaPreview, isHorizontal: boolean, isCarousel: boolean, hideImage?: boolean, hidePublishDate?: boolean, hideReadTime?: boolean, removeExtraSpacing?: boolean, disableCapabilityLinks?: boolean, conversionGoal?: string | null | undefined }) {\r\n\r\n const itemDesktopMargins = removeExtraSpacing ? \"mb-lg-0\" : \"mb-lg-4\";\r\n\r\n return (\r\n <>\r\n {!isCarousel ?\r\n <div className={`mb-4 ${itemDesktopMargins} ${isHorizontal ? \"col-lg-4 col-md-6\":\"col-12\"}`}>\r\n <div data-ve-gtm={`container-${recommendation.Type}-item`} className=\"grid-card border-bottom\">\r\n {recommendation.PostSmallImage && (isHorizontal || !hideImage) && <RelatedMediaImage recommendation={recommendation} conversionGoal={conversionGoal} />}\r\n <RelatedMediaBody recommendation={recommendation} isHorizontal={isHorizontal} isCarousel={false} hideImage={hideImage} hidePublishDate={hidePublishDate} hideReadTime={hideReadTime} disableCapabilityLinks={disableCapabilityLinks} conversionGoal={conversionGoal} />\r\n </div>\r\n </div>\r\n :\r\n <div className=\"more-from-category__item\">\r\n <div data-ve-gtm={`container-${recommendation.Type}-item`} className=\"grid-card \">\r\n {recommendation.PostSmallImage && isHorizontal && <RelatedMediaImage recommendation={recommendation} conversionGoal={conversionGoal} />}\r\n <RelatedMediaBody recommendation={recommendation} isHorizontal={isHorizontal} isCarousel={true} hidePublishDate={hidePublishDate} hideReadTime={hideReadTime} disableCapabilityLinks={disableCapabilityLinks} conversionGoal={conversionGoal} />\r\n </div>\r\n </div>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nexport function RelatedMediaImage({ recommendation, conversionGoal }: { recommendation: MediaPreview, conversionGoal?: string | null | undefined }) {\r\n return (\r\n <div className=\"position-relative\">\r\n <a data-ve-gtm=\"item-image\" className=\"grid-card__image-link\" href={recommendation.MediaLink} tabIndex={0} onClick={() => trackConversion(recommendation, conversionGoal)}>\r\n <div className=\"grid-card__image-container mb-3\">\r\n <div className=\"image grid-card__image\" style={{ backgroundImage: `url(${recommendation.PostSmallImage})`, paddingBottom: \"56.25%\" }}>\r\n <img alt={`${recommendation.Title}`} className=\"image__img\" src={recommendation.PostSmallImage} />\r\n </div>\r\n </div>\r\n <ImageIcon mediaType={recommendation.TypeName} />\r\n </a>\r\n </div>\r\n )\r\n}\r\nexport function RelatedMediaBody({ recommendation, isHorizontal, isCarousel, hideImage = false, hidePublishDate = false, hideReadTime = false, disableCapabilityLinks = false, conversionGoal }: { recommendation: MediaPreview, isHorizontal: boolean, isCarousel: boolean, hideImage?: boolean, hidePublishDate?: boolean, hideReadTime?: boolean, disableCapabilityLinks?: boolean, conversionGoal?: string | null | undefined }) {\r\n let authorGtmAttributeValue = recommendation.TypeName != \"Webinar\" ? \"item-author\" : \"item-presenter\";\r\n const imageToBeShown = (recommendation.PostSmallImage != null) && !hideImage;\r\n return (\r\n <>\r\n <div className=\"grid-card__eyebrow\" data-ve-gtm=\"item-category\">\r\n {disableCapabilityLinks\r\n ? <span className=\"grid-card__eyebrow-link\">\r\n <span className=\"text-util-md\">{recommendation.Category}</span>\r\n </span>\r\n : <a className=\"grid-card__eyebrow-link\" href={recommendation.CategoryUrl}>\r\n <span className=\"text-util-md\">{recommendation.Category}</span>\r\n </a>\r\n }\r\n </div>\r\n <div className=\"grid-card__header\">\r\n <a data-ve-gtm=\"item-title\" className=\"grid-card__title-link\" target={recommendation.OpenInNewTab ? \"_blank\" : \"_self\"} href={recommendation.MediaLink} onClick={() => trackConversion(recommendation, conversionGoal)}>\r\n <h3 className=\"mb-0\">{recommendation.Title}</h3>\r\n </a>\r\n </div>\r\n {isHorizontal ? (\r\n <>\r\n {recommendation.Badge !== null ?? (\r\n <span className=\"grid-card__badge badge mb-2\">\r\n {recommendation.Badge} CE Credit\r\n </span>\r\n )}\r\n {recommendation.Authors && recommendation.Authors.length > 0 ? (\r\n <>\r\n {recommendation.Authors[0].Url !== null || recommendation.Authors[0].Url !== \"\" ? (\r\n <a data-ve-gtm={authorGtmAttributeValue} className=\"grid-card__label-link\" href={recommendation.Authors[0].Url} tabIndex={0}>\r\n <span className=\"grid-card__label-title text-util-md\">\r\n {recommendation.Authors[0].Name}\r\n </span>\r\n <span className=\"grid-card__label-title text-util-md\">\r\n {recommendation.Authors[0].Title}\r\n </span>\r\n </a>\r\n ) : (\r\n <div className=\"mb-3\" data-ve-gtm={authorGtmAttributeValue}>\r\n <span className=\"grid-card__label-title text-util-md\">\r\n {recommendation.Authors[0].Name}\r\n </span>\r\n <span className=\"grid-card__label-title text-util-md\">\r\n {recommendation.Authors[0].Title}\r\n </span>\r\n </div>\r\n )}\r\n </>\r\n ):<></>}\r\n </>\r\n ) : (\r\n <></>\r\n )}\r\n {!hidePublishDate && !imageToBeShown\r\n ? <p data-ve-gtm=\"item-date\" className={`grid-card__date text-util-md ${isHorizontal && recommendation.FormattedTime && !isCarousel ? \"mb-2\" : \"mb-4\"}`}>\r\n {recommendation.FormattedPublishDate}\r\n </p>\r\n : <></>\r\n }\r\n {!hideReadTime && !imageToBeShown && isHorizontal && !isCarousel && recommendation.FormattedTime\r\n ? <p data-ve-gtm=\"item-date\" className=\"grid-card__time text-util-md mb-4\">{recommendation.FormattedTime}</p>\r\n : <></>\r\n }\r\n {recommendation.PostSmallImage == null && !hideImage && recommendation.Description //No image and image not intentially hidden (i.e. Right Rail)\r\n ? <div data-ve-gtm=\"item-abstract\" className=\"grid-card__body\"> {parse(recommendation.Description)} </div>\r\n : <></>\r\n }\r\n </>\r\n );\r\n}\r\n\r\nexport function ImageIcon({ mediaType, template }: { mediaType: string, template?: string }) {\r\n switch (mediaType) {\r\n case \"Video\":\r\n return (<div className={template=== \"horizontal-fund-block\" ? \"billboard-block__image-icon fund-rec-image-icon\":\"grid-card__image-icon\"}>\r\n <svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"play-circle\" className=\"svg-inline--fa fa-play-circle fa-w-16 fa-3x icon\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\" d=\"M 10.1525,7.6262504 C 9.4088471,7.6408774 8.7143741,8.2420884 8.715,9.0612499 V 14.9375 c -8.432e-4,1.092215 1.2338231,1.796302 2.17375,1.24 l 4.96875,-2.93875 c 0.923476,-0.546327 0.923476,-1.932423 0,-2.47875 L 10.88875,7.8212497 C 10.653768,7.6821749 10.400384,7.6213758 10.1525,7.6262504 Z M 9.9100002,8.6299998 C 10.048592,8.5509094 10.229738,8.5467295 10.4,8.6475003 l 4.96875,2.9387497 c 0.333052,0.197033 0.333052,0.629217 0,0.82625 L 10.4,15.351252 C 10.059477,15.552794 9.6746977,15.3332 9.675,14.937503 V 9.0612525 C 9.6748489,8.863405 9.7714074,8.7090934 9.9100002,8.6300024 Z M 12,0 C 5.37776,0 0,5.37776 0,12 0,18.62224 5.37776,24 12,24 18.62224,24 24,18.62224 24,12 24,5.37776 18.62224,0 12,0 Z m 0,0.96 C 18.10352,0.96 23.04,5.89648 23.04,12 23.04,18.10352 18.10352,23.04 12,23.04 5.89648,23.04 0.96,18.10352 0.96,12 0.96,5.89648 5.89648,0.96 12,0.96 Z\">\r\n </path>\r\n </svg>\r\n </div>);\r\n case \"Webinar\":\r\n return (<div className={template === \"horizontal-fund-block\" ? \"billboard-block__image-icon fund-rec-image-icon\" : \"grid-card__image-icon\"}>\r\n <svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"webinar-circle\" className=\"svg-inline--fa fa-webinar-circle fa-w-16 fa-3x icon\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 23.5 23.5\">\r\n <path fill=\"currentColor\" d=\"M 11.880859 8.2578125 C 11.256132 8.2578125 10.63151 8.4858186 10.146484 8.9414062 C 9.1367798 9.8898282 9.2013852 11.471527 10.113281 12.439453 A 0.750075 0.750075 0 0 0 10.113281 12.441406 C 11.063911 13.447441 12.645862 13.383194 13.615234 12.472656 C 14.46304 11.675082 14.430594 10.452026 13.851562 9.4902344 A 0.75 0.75 0 0 0 13.632812 8.9609375 C 13.631707 8.9598316 13.631967 8.9581355 13.630859 8.9570312 A 0.75 0.75 0 0 0 13.623047 8.9511719 A 0.75 0.75 0 0 0 13.619141 8.9472656 A 0.75 0.75 0 0 0 13.615234 8.9414062 C 13.614103 8.9403431 13.612461 8.9405138 13.611328 8.9394531 A 0.75 0.75 0 0 0 13.099609 8.7382812 C 12.709078 8.5133028 12.31987 8.2578125 11.880859 8.2578125 z M 11.880859 9.7421875 C 12.127102 9.7421875 12.371169 9.8430472 12.576172 10.03125 C 12.976671 10.440145 12.970506 11.01896 12.587891 11.378906 C 12.173263 11.768369 11.558449 11.784122 11.205078 11.410156 C 10.816293 10.996107 10.798014 10.386326 11.171875 10.035156 C 11.378849 9.8407439 11.630587 9.7421875 11.880859 9.7421875 z M 10.900391 13.972656 C 9.3932093 13.972656 8.2597656 15.372808 8.2597656 17 L 9.7402344 17 C 9.7402344 16.029192 10.333572 15.455078 10.900391 15.455078 L 13.099609 15.455078 C 13.703906 15.455078 14.259766 16.079104 14.259766 17 L 15.740234 17 C 15.740234 15.428896 14.655313 13.972656 13.099609 13.972656 L 10.900391 13.972656 z M 6.1992188 6.5 C 5.4755755 6.5 4.9277344 7.1349285 4.9277344 7.8496094 L 4.9277344 16.150391 C 4.9277344 16.865071 5.4755755 17.5 6.1992188 17.5 L 17.654297 17.5 C 17.654945 17.5 17.655602 17.500001 17.65625 17.5 C 18.378933 17.498864 18.927734 16.86514 18.927734 16.150391 L 18.927734 7.8496094 C 18.927734 7.1342193 18.37794 6.5 17.654297 6.5 L 6.1992188 6.5 z M 6.1992188 7.5 L 17.654297 7.5 C 17.784654 7.5 17.927734 7.6249994 17.927734 7.8496094 L 17.927734 16.150391 C 17.927734 16.375001 17.784654 16.5 17.654297 16.5 L 6.1992188 16.5 C 6.068862 16.5 5.9277344 16.37571 5.9277344 16.150391 L 5.9277344 7.8496094 C 5.9277344 7.6242902 6.068862 7.5 6.1992188 7.5 z M 8 18.5 L 8 19.5 L 16 19.5 L 16 18.5 L 8 18.5 z M 12,0.25 C 5.5195377,0.25 0.25,5.5195377 0.25,12 0.25,18.480462 5.5195377,23.75 12,23.75 18.480462,23.75 23.75,18.480462 23.75,12 23.75,5.5195377 18.480462,0.25 12,0.25 Z m 0,1.5 C 17.669802,1.75 22.25,6.3301978 22.25,12 22.25,17.669802 17.669802,22.25 12,22.25 6.3301978,22.25 1.75,17.669802 1.75,12 1.75,6.3301978 6.3301978,1.75 12,1.75 Z\">\r\n </path>\r\n </svg>\r\n </div>);\r\n case \"Blog\":\r\n return (<div className={template === \"horizontal-fund-block\" ? \"billboard-block__image-icon fund-rec-image-icon\" : \"grid-card__image-icon\"}>\r\n <svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"blog\" className=\"svg-inline--fa fa-blog fa-w-16 fa-3x icon\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\">\r\n <path fill=\"currentColor\" d=\"m 17.112303,7.9225352 -3.721739,4.1483138 -0.118625,1.133376 1.045882,-0.170256 3.70764,-4.1325758 z M 18.863762,7.4547443 18.376858,6.9901735 c -0.0817,-0.078021 -0.185238,-0.1261868 -0.271378,-0.1238269 -0.03333,-0.00163 -0.06589,0.010082 -0.09014,0.032414 l -0.599307,0.6181672 0.941184,0.9337764 0.612789,-0.6322986 c 0.06242,-0.064287 0.03017,-0.2334938 -0.106246,-0.3636613 z M 6.8352423,7.2114327 a 0.52816901,0.52816901 0 0 0 -0.5281691,0.528169 0.52816901,0.52816901 0 0 0 0.5281691,0.528169 h 7.7781137 a 0.52816901,0.52816901 0 0 0 0.528169,-0.528169 0.52816901,0.52816901 0 0 0 -0.528169,-0.528169 z m 0,3.5211263 a 0.52816901,0.52816901 0 0 0 -0.5281691,0.528169 0.52816901,0.52816901 0 0 0 0.5281691,0.528169 h 4.9612127 a 0.52816901,0.52816901 0 0 0 0.528169,-0.528169 0.52816901,0.52816901 0 0 0 -0.528169,-0.528169 z m 0,3.521127 a 0.52816901,0.52816901 0 0 0 -0.5281691,0.528169 0.52816901,0.52816901 0 0 0 0.5281691,0.528169 H 18.471466 a 0.52816901,0.52816901 0 0 0 0.528169,-0.528169 0.52816901,0.52816901 0 0 0 -0.528169,-0.528169 z m 0,3.521127 a 0.52816901,0.52816901 0 0 0 -0.5281691,0.528169 0.52816901,0.52816901 0 0 0 0.5281691,0.528169 H 18.471466 a 0.52816901,0.52816901 0 0 0 0.528169,-0.528169 0.52816901,0.52816901 0 0 0 -0.528169,-0.528169 z M 12.5,0 C 5.602697,0 0,5.602697 0,12.5 0,19.397303 5.602697,25 12.5,25 19.397303,25 25,19.397303 25,12.5 25,5.602697 19.397303,0 12.5,0 Z m 0,1.056338 c 6.326416,0 11.443662,5.117246 11.443662,11.443662 0,6.326416 -5.117246,11.443662 -11.443662,11.443662 C 6.173584,23.943662 1.056338,18.826416 1.056338,12.5 1.056338,6.173584 6.173584,1.056338 12.5,1.056338 Z\">\r\n </path>\r\n </svg>\r\n </div>);\r\n case \"Podcast\":\r\n return (<div className={template === \"horizontal-fund-block\" ? \"billboard-block__image-icon fund-rec-image-icon\" : \"grid-card__image-icon\"}>\r\n <svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"microphone-circle\" className=\"svg-inline--fa fa-microphone-circle fa-w-16 fa-3x icon\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\" d=\"m 6.595052,9.807292 a 0.5,0.5 0 0 0 -0.5,0.5 v 1.800781 c 0,3.078211 2.394846,5.53622 5.404948,5.803386 v 1.804687 H 8.2343747 a 0.5,0.5 0 0 0 -0.5,0.5 0.5,0.5 0 0 0 0.5,0.5 H 11.990885 12 15.765625 a 0.5,0.5 0 0 0 0.5,-0.5 0.5,0.5 0 0 0 -0.5,-0.5 H 12.5 v -1.804687 c 3.010102,-0.267166 5.404948,-2.725175 5.404948,-5.803386 v -1.800781 a 0.5,0.5 0 0 0 -0.5,-0.5 0.5,0.5 0 0 0 -0.5,0.5 v 1.800781 c 0,2.715063 -2.189885,4.904948 -4.904948,4.904948 -2.7150633,0 -4.904948,-2.189885 -4.904948,-4.904948 v -1.800781 a 0.5,0.5 0 0 0 -0.5,-0.5 z M 12,0 C 5.3785053,0 0,5.3785053 0,12 0,18.621495 5.3785053,24 12,24 18.621495,24 24,18.621495 24,12 24,5.3785053 18.621495,0 12,0 Z m 0,1 C 18.081055,1 23,5.9189453 23,12 23,18.081055 18.081055,23 12,23 5.9189453,23 1,18.081055 1,12 1,5.9189453 5.9189453,1 12,1 Z m 0.0063,13.331333 v 0 c -1.270255,0 -2.300001,-1.104364 -2.300001,-2.466666 V 6.9313327 c 0,-1.3623014 1.029746,-2.466666 2.300001,-2.466666 v 0 c 1.270253,0 2.299999,1.1043646 2.299999,2.466666 v 4.9333343 c 0,1.362302 -1.029746,2.466666 -2.299999,2.466666 z\">\r\n </path>\r\n </svg>\r\n </div>);\r\n default:\r\n return (<></>)\r\n }\r\n}","import { MediaPreview } from '../../interfaces/MediaPreview';\r\nimport React, { useState } from 'react';\r\nimport Slider, { Settings } from 'react-slick';\r\nimport { Recommendation } from './RecommendationsCommonBlocks';\r\n\r\nconst RecommendationsCarouselBlock = ({ Recommendations, isHorizontal, hidePublishDate, hideReadTime, disableCapabilityLinks, conversionGoal }: { Recommendations: MediaPreview[], isHorizontal: boolean, hidePublishDate?: boolean, hideReadTime?: boolean, disableCapabilityLinks?: boolean, conversionGoal?: string | null | undefined }) => {\r\n const slider = React.useRef<any>(null);\r\n const [slideIndex, setSlideIndex] = useState(1)\r\n const [slideRangeIndex, setSlideRangeIndex] = useState<number | undefined>(1)\r\n const [hidePagination, setHidePagination] = useState(false)\r\n const totalCards = Recommendations && Recommendations.length\r\n\r\n const handleReinit = (slidesToShow: number) =>{\r\n if(slidesToShow >= totalCards ){\r\n setHidePagination(true)\r\n return\r\n }\r\n setHidePagination(false)\r\n const currentSlide = slider.current.innerSlider.state.currentSlide\r\n setSlideRangeIndex(currentSlide + slidesToShow)\r\n setSlideIndex(currentSlide+1)\r\n }\r\n\r\n const settings: Settings = {\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n infinite: false,\r\n arrows: true,\r\n onInit:()=>setSlideRangeIndex(settings.slidesToShow),\r\n onReInit: ()=> handleReinit(3),\r\n responsive: [\r\n {\r\n breakpoint: 991,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2,\r\n initialSlide: 2,\r\n onReInit: ()=> handleReinit(2)\r\n },\r\n },\r\n {\r\n breakpoint: 640,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n onReInit: ()=> handleReinit(1)\r\n }\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n <div className='more-from-category__main--desktop more-from-category pb-lg-0 pb-5 d-block d-lg-none d-md-block'>\r\n <Slider ref={slider} {...settings}>\r\n {Recommendations && Recommendations.map((item: MediaPreview, key: number) => {\r\n return (\r\n <Recommendation recommendation={item} key={key} isHorizontal={isHorizontal} isCarousel={true} hidePublishDate={hidePublishDate} hideReadTime={hideReadTime} disableCapabilityLinks={disableCapabilityLinks} conversionGoal={conversionGoal} />\r\n );\r\n })}\r\n </Slider>\r\n <div className=\"d-flex more-from-category__placement\">\r\n <div className=\"more-from-category__main--desktop-count flex-center\">\r\n <b>{slideIndex}{slideRangeIndex !== slideIndex? \" - \" + slideRangeIndex: \"\"}</b>{\" \"}of <span>{totalCards}</span>\r\n </div>\r\n <div className=\"more-from-category__control-container\">\r\n <button\r\n className={`more-from-category__control more-from-category__control--prev ${\r\n slideIndex === 1 ? \" slick-disabled\" : \"\"\r\n }`}\r\n type=\"button\"\r\n aria-label=\"Scroll left\"\r\n aria-disabled=\"true\"\r\n onClick={() => slider?.current?.slickPrev()}\r\n >\r\n {LeftArrowButtonSvg}\r\n </button>\r\n <button\r\n className={`more-from-category__control more-from-category__control--next ${\r\n slideRangeIndex === totalCards ? \" slick-disabled\" : \"\"\r\n }`}\r\n type=\"button\"\r\n aria-label=\"Scroll right\"\r\n aria-disabled=\"false\"\r\n data-ve-gtm=\"arrow-more\"\r\n onClick={() => slider?.current?.slickNext()}\r\n >\r\n {RightArrowButtonSvg}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default RecommendationsCarouselBlock;\r\n\r\n\r\nconst LeftArrowButtonSvg = (\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-prefix=\"far\"\r\n data-icon=\"chevron-left\"\r\n className=\"svg-inline--fa fa-chevron-left fa-w-16 fa-lg icon\"\r\n role=\"img\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 18 18\"\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.13 2.26a.75.75 0 00-.22-.54.75.75 0 00-1.07 0L5.1 8.47a.75.75 0 000 1.06l6.75 6.75a.75.75 0 001.07 0 .75.75 0 000-1.06L6.69 9l6.22-6.22a.75.75 0 00.21-.52z\"\r\n ></path>\r\n </svg>\r\n );\r\n \r\n export const RightArrowButtonSvg = (\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-prefix=\"far\"\r\n data-icon=\"chevron-right\"\r\n className=\"svg-inline--fa fa-chevron-right fa-w-16 fa-lg icon\"\r\n role=\"img\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 18 18\"\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.87 15.74a.75.75 0 00.22.54.75.75 0 001.07 0l6.75-6.75a.75.75 0 000-1.06L6.16 1.72a.75.75 0 00-1.07 0 .75.75 0 000 1.06L11.31 9 5.1 15.22a.75.75 0 00-.22.52z\"\r\n ></path>\r\n </svg>\r\n );","import { MediaPreview, RecommendationsBlockViewModel } from \"../../interfaces/MediaPreview\";\r\nimport RecommendationsCarouselBlock from \"./RecommendationsCarouselBlock\";\r\nimport { Recommendation } from \"./RecommendationsCommonBlocks\";\r\n\r\nexport function RecommendationsBlockInner(props: RecommendationsBlockViewModel) {\r\n const { Recommendations, Template, Title, CssClass, ContainerCssClass, ConversionGoal } = props;\r\n const isHorizontal = Template == \"horizontal-layout\" || Template == \"horizontal-carousel-layout\" ? true: false;\r\n const isCarousel = Template == \"horizontal-carousel-layout\" ? true: false;\r\n const hideRecommendedImage = ContainerCssClass && ContainerCssClass.includes(\"hide-image\") ? true : false;\r\n const hideReadTime = ContainerCssClass && ContainerCssClass.includes(\"hide-read\") ? true : false;\r\n const hidePublishDate = ContainerCssClass && ContainerCssClass.includes(\"hide-publish\") ? true : false;\r\n const isAustralia = ContainerCssClass && ContainerCssClass.includes(\"australian-recommendations\")? true: false;\r\n const removeExtraSpacing = ContainerCssClass && ContainerCssClass.includes(\"remove-extra-spacing\")? true: false;\r\n\r\n const paddingClass = removeExtraSpacing ? \"\" : \"py-3\";\r\n\r\n return (\r\n <div className={`${isHorizontal ? \"horizontal-insights\" : \"vertical-insights\"} ${paddingClass} ${ContainerCssClass}`} data-ve-gtm=\"collection\">\r\n <div className={`section-header d-flex align-items-baseline justify-content-between ${CssClass}`}>\r\n {isHorizontal && !isAustralia && !isCarousel? \r\n <h4 data-ve-gtm=\"collection-title\" className=\"text-util-md text-util-md-title\">{Title}</h4>\r\n :<h2 data-ve-gtm=\"collection-title\" className=\"text-util-md\">{Title}</h2>\r\n }\r\n </div>\r\n {!isCarousel ? \r\n <div className=\"row\">\r\n {Recommendations.map((recommendation, index) => (\r\n <Recommendation recommendation={recommendation} key={index} isHorizontal={isHorizontal} isCarousel={false} hideImage={hideRecommendedImage} hidePublishDate={hidePublishDate} hideReadTime={hideReadTime} removeExtraSpacing={removeExtraSpacing} disableCapabilityLinks={isAustralia} conversionGoal={ConversionGoal} />\r\n ))}\r\n </div>\r\n :\r\n <div className=\"recommendations-carousel-block\">\r\n <RecommendationsCarouselBlock Recommendations={Recommendations} isHorizontal={isHorizontal} hidePublishDate={hidePublishDate} hideReadTime={hideReadTime} disableCapabilityLinks={isAustralia} conversionGoal={ConversionGoal} />\r\n </div>\r\n }\r\n </div>\r\n );\r\n}","import { MediaPreview, RecommendationsBlockViewModel } from \"../../interfaces/MediaPreview\";\r\nimport trackConversion from \"./trackConversion\";\r\nimport { ImageIcon } from \"./RecommendationsCommonBlocks\";\r\nimport React from 'react';\r\nimport Slider, { Settings } from 'react-slick';\r\n\r\nexport function RecommendationsFundBlock(props: RecommendationsBlockViewModel) {\r\n const { Recommendations, Template, Image, SecondaryImage, ImageOverlay,Title, ConversionGoal } = props;\r\n const noOfRecommendations = Recommendations && Recommendations.length;\r\n \r\n const removeBorderFromLastItem = () => {\r\n const lastNodeList = document.querySelectorAll('.slick-slide.slick-active');\r\n \r\n lastNodeList.forEach(lastNode => {\r\n const list = lastNode.querySelector('.billboard-block__link-content')\r\n if (list) {\r\n list.classList.remove('billboard-fund-border');\r\n }\r\n })\r\n\r\n if (lastNodeList.length > 0) {\r\n const lastChild = lastNodeList[lastNodeList.length - 1] as HTMLElement;\r\n const lastElement = lastChild.querySelector('.billboard-block__link-content') as HTMLElement;\r\n if (lastElement) {\r\n lastElement.classList.add('billboard-fund-border');\r\n }\r\n }\r\n };\r\n\r\n const settings: Settings = {\r\n slidesToShow: Math.min(3, noOfRecommendations),\r\n slidesToScroll: Math.min(3, noOfRecommendations),\r\n infinite: false,\r\n arrows: false,\r\n dots: true,\r\n responsive: [\r\n {\r\n breakpoint: 575,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n initialSlide: 1,\r\n }\r\n },\r\n {\r\n breakpoint: 991,\r\n settings: {\r\n slidesToShow: Math.min(2, noOfRecommendations),\r\n slidesToScroll: Math.min(2, noOfRecommendations),\r\n initialSlide: 2,\r\n afterChange: () => removeBorderFromLastItem(),\r\n onReInit: () => removeBorderFromLastItem(),\r\n onInit: () => removeBorderFromLastItem()\r\n },\r\n },\r\n {\r\n breakpoint: 4500,\r\n settings: {\r\n slidesToShow: Math.min(3, noOfRecommendations),\r\n slidesToScroll: Math.min(3, noOfRecommendations),\r\n initialSlide: 3,\r\n afterChange: () => removeBorderFromLastItem(),\r\n onReInit: () => removeBorderFromLastItem(),\r\n onInit: () => removeBorderFromLastItem()\r\n },\r\n }\r\n ]\r\n };\r\n\r\n return (\r\n <div className=\"\">\r\n <h4 data-ve-gtm=\"collection-title\" className=\"text-util-md-title container\">{Title}</h4>\r\n <div className=\"billboard-block billboard-fund\">\r\n <h4 className=\"sr-only\">{Title}</h4>\r\n \r\n {/* <div className=\"billboard-block__bg d-md-block d-none\" style={{ 'backgroundImage': `url(${\"/globalassets/home/us/common/billboard-desktop.jpg\"})` }}></div>*/}\r\n <div className=\"billboard-block__bg d-md-block d-none\" style={{ 'backgroundImage': `url(${Image})` }}></div>\r\n <div className=\"billboard-block__bg d-md-none d-block\" style={{ 'backgroundImage': `url(${SecondaryImage})` }}></div>\r\n <div className=\"billboard-block__bg--overlay d-md-block d-none\" style={{ 'backgroundImage': `url(${ImageOverlay})` }}></div>\r\n <div className=\"billboard-block__bg--overlay d-lg-none d-block\" style={{ 'backgroundImage': `url(${ImageOverlay})`, 'backgroundPosition': 'right' }}></div>\r\n <div className=\"billboard-block__container container px-0\">\r\n <div>\r\n <Slider {...settings}>\r\n {Recommendations && Recommendations.map((item: MediaPreview, key: number) => {\r\n return (\r\n <div className={`billboard-block__col`}>\r\n <div className=\"billboard-block__card\">\r\n <a className=\"billboard-block__card-link billboard-spacing w-100\" href={item.MediaLink} onClick={() => trackConversion(item, ConversionGoal)}>\r\n <div className=\"billboard-block__link-content \">\r\n <a className=\"billboard-block__mainTitle w-100\" href={item.MediaLink}>\r\n <h3 className=\"billboard-block__title mb-0\">{item?.Title}</h3>\r\n </a>\r\n\r\n {item?.Badge ? (\r\n <span className=\"grid-card__badge badge mb-2\">\r\n {item?.Badge} CE Credit\r\n </span>\r\n ) : <></>}\r\n <strong className=\"billboard-block__cta-link\"> {item?.TypeName === \"Blog\" ? \"READ BLOG\" : item?.TypeName === \"Video\" ? \"WATCH VIDEO\" : item?.TypeName === \"Webinar\" ? \"WATCH WEBINAR\" : item.TypeName} </strong>\r\n\r\n <ImageIcon mediaType={item?.TypeName} template={Template} />\r\n </div>\r\n </a>\r\n </div>\r\n </div> \r\n )\r\n })}\r\n </Slider>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}","import { RecommendationsBlockViewModel, MediaPreview, CapabilityKVP } from '../../interfaces/MediaPreview';\r\nimport trackConversion from './trackConversion';\r\nimport React from 'react';\r\nimport parse from \"html-react-parser\";\r\n\r\nconst RecommendationsTrendingBlockInner = (props: RecommendationsBlockViewModel) => {\r\n const { Recommendations, Template, Title, CssClass, ContainerCssClass, Capabilities, ConversionGoal } = props;\r\n const isAustralia = ContainerCssClass && ContainerCssClass.includes(\"australian-recommendations\")? true: false;\r\n return (\r\n <div className={`${ContainerCssClass} trending-content-wrapper`}>\r\n <RenderHeaderSection title={Title} isAustralia={isAustralia} Capabilities={Capabilities && Capabilities}/>\r\n <RenderTrendingCards recommendations={Recommendations} conversionGoal={ConversionGoal} isAustralia={isAustralia}/>\r\n </div>\r\n );\r\n};\r\n\r\nexport default RecommendationsTrendingBlockInner;\r\n\r\nfunction RenderHeaderSection ({title, Capabilities, isAustralia}:{title:string, isAustralia: boolean, Capabilities?: CapabilityKVP[] |null}) {\r\n return (\r\n <section className=\"no-print\">\r\n <div className=\"links-hero\">\r\n <nav aria-label=\"Other topics of interest\" className=\"links-hero__insights-right d-lg-flex justify-content-lg-between d-none d-md-block flex-column\" data-ve-gtm=\"insights-nav\">\r\n <div className=\"section-header d-flex align-items-baseline justify-content-between\">\r\n <h4 data-ve-gtm=\"collection-title\" className=\"text-util-md text-util-md-title\">\r\n {title}\r\n </h4>\r\n </div>\r\n {Capabilities && Capabilities.length > 0 && \r\n <ul className=\"links-hero__insights-list list-inline\">\r\n {!isAustralia && <li className=\"links-hero__links-title\">\r\n <span className=\"links-hero__links__action\">Topics:</span>\r\n </li>}\r\n {Capabilities.map((item:CapabilityKVP, index: number) =>(\r\n <li className=\"links-hero__links\" key={index}>\r\n <a className=\"links-hero__links__action\" href={`${item.Value}`}>\r\n {item.Key}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n }\r\n <div className=\"grid-card__divider\"></div>\r\n </nav>\r\n <div\r\n className=\"links-hero__dropdown-list d-md-none\"\r\n data-ve-gtm=\"insights-nav\"\r\n >\r\n <div className=\"section-header d-flex align-items-baseline justify-content-between\">\r\n <h4 data-ve-gtm=\"collection-title\" className=\"text-util-md text-util-md-title\">\r\n {title}\r\n </h4>\r\n </div>\r\n <div className=\"dropdown links-hero__dropdown-list d-md-none\">\r\n <button\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n className=\"dropdown__button text-util-sm dropdown__button-condensed\"\r\n data-toggle=\"dropdown\"\r\n id=\"bundle-links\"\r\n type=\"button\"\r\n >\r\n <span className=\"dropdown__label\">Topics</span>\r\n <svg\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-prefix=\"far\"\r\n data-icon=\"chevron-down\"\r\n className=\"svg-inline--fa fa-chevron-down fa-w-16 fa-lg dropdown__icon dropdown__icon-condensed\"\r\n role=\"img\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 18 18\"\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M2.26 4.88a.75.75 0 00-.54.21.75.75 0 000 1.07l6.75 6.75a.75.75 0 001.06 0l6.75-6.75a.75.75 0 000-1.07.75.75 0 00-1.06 0L9 11.31 2.78 5.1a.75.75 0 00-.52-.21z\"\r\n ></path>\r\n </svg>\r\n </button>\r\n <div\r\n className=\"dropdown-menu dropdown__menu text-util-sm\"\r\n role=\"menu\"\r\n >\r\n {Capabilities && Capabilities.map((item:CapabilityKVP, index:number)=>(\r\n <a key={index} className=\"dropdown-item dropdown__item text-util-sm\" href={`${item.Value}`} role=\"menuitem\">\r\n {item.Key}\r\n </a>\r\n ))}\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n\r\nfunction RenderTrendingCards ({recommendations, conversionGoal, isAustralia}: {recommendations: MediaPreview[], conversionGoal: string | null | undefined, isAustralia: boolean}) {\r\n return (\r\n <div className=\"featured-block__grid-card featured-block__editors\">\r\n <div className=\"row\">\r\n {recommendations && recommendations.map((item: MediaPreview, index: number)=>(\r\n <div className=\"col-lg-6 col-md-12 mt-2\" key={index}>\r\n <div className=\"row trending-content-wrp mt-3 align-items-start\">\r\n <div className=\"col-md-6\">\r\n <div className=\"position-relative grid-card__image-link\">\r\n <div className=\"grid-card__image-container no-print\">\r\n <div className=\"image grid-card__image\" style={{backgroundImage:`url(${item.Image})`,paddingBottom:\"56.25%\"}}>\r\n <img alt={item.Title} className=\"image__img\" src={item.Image}/>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"grid-card col-md-6 h-100\" data-ve-gtm=\"container-blog-post-item\">\r\n <div className=\"grid-card__eyebrow\" data-ve-gtm=\"item-category\">\r\n {isAustralia\r\n ? <span className=\"grid-card__eyebrow-link\" data-ve-gtm=\"item-category\">\r\n <span className=\"text-util-md\">{item.Category}</span>\r\n </span>\r\n : <a className=\"grid-card__eyebrow-link\" data-ve-gtm=\"item-category\" href={item.CategoryUrl}>\r\n <span className=\"text-util-md\">{item.Category}</span>\r\n </a>\r\n }\r\n </div>\r\n <div className=\"grid-card__header\">\r\n <a className=\"grid-card__title-link\" data-ve-gtm=\"item-title\" href={item.MediaLink} onClick={() => trackConversion(item, conversionGoal)}>\r\n <h3 className=\"mb-0\">{item.Title}</h3>\r\n </a>\r\n </div>\r\n {isAustralia\r\n ?<div className=\"mb-0 grid-card__body flex-fill\"><p>{parse(item.Description)}</p></div>\r\n :<p className=\"text-util-md mb-0 grid-card__date-time flex-fill\"> {item.FormattedPublishDate}</p>}\r\n <div className=\"grid-card__divider mb-md-3 mt-3\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}","import \"./RecommendationsBlock.scss\";\r\nimport useAutoScrollUp from \"../../core/customHooks/useAutoScollUp\";\r\nimport { useState,useEffect } from \"react\";\r\nimport { useRecommendatonsBlock } from \"./useRecommendationsBlock\";\r\nimport { RecommendationsBlockInner } from \"./RecommendationsBlockInner\";\r\nimport { RecommendationsFundBlock } from \"./RecommendationsFundBlock\";\r\nimport RecommendationsTrendingBlockInner from \"./RecommendationsTrendingBlockInner\";\r\n\r\nexport interface PersonUsBlockInterface extends ComponentInterface { }\r\n\r\nconst PersonUsBlock = (props: PersonUsBlockInterface) => {\r\n const element = props.rootElement;\r\n const blockID = element.dataset.blockid as unknown as number;\r\n const pageID = element.dataset.pageid as unknown as number;\r\n\r\n const [markup, setMarkup] = useState(\r\n <div className=\"component-loading\">Loading Data...</div>\r\n );\r\n\r\n useAutoScrollUp(element);\r\n if (isNaN(blockID)) return <p>Error: BlockID not found.</p>;\r\n\r\n const [blockData] = useRecommendatonsBlock({\r\n blockID: blockID,\r\n pageID: pageID,\r\n setMarkup: setMarkup,\r\n });\r\n\r\n useEffect(() => {\r\n if (element.parentElement?.classList.contains('container')) {\r\n element.parentElement?.classList.add(\"col-12\");\r\n element.parentElement?.classList.add(\"px-0\");\r\n } \r\n }, [])\r\n\r\n return (\r\n <div>\r\n {markup}\r\n {blockData && blockData.Recommendations && blockData.Recommendations.length > 0 && <>\r\n {\r\n blockData.Template !== \"trending-block-layout\" ? blockData.Template === \"horizontal-fund-block\" ? \r\n <RecommendationsFundBlock\r\n Recommendations={blockData.Recommendations}\r\n Title={blockData.Title}\r\n CssClass={blockData.CssClass}\r\n ContainerCssClass={blockData.ContainerCssClass}\r\n Template={blockData.Template} \r\n Image={blockData.Image} \r\n SecondaryImage={blockData.SecondaryImage}\r\n ImageOverlay={blockData.ImageOverlay}\r\n ConversionGoal={blockData.ConversionGoal}\r\n />:\r\n <RecommendationsBlockInner\r\n Recommendations={blockData.Recommendations}\r\n Title={blockData.Title}\r\n CssClass={blockData.CssClass}\r\n ContainerCssClass={blockData.ContainerCssClass}\r\n Template={blockData.Template} \r\n ConversionGoal={blockData.ConversionGoal}\r\n />:\r\n <RecommendationsTrendingBlockInner \r\n Recommendations={blockData.Recommendations}\r\n Title={blockData.Title}\r\n CssClass={blockData.CssClass}\r\n ContainerCssClass={blockData.ContainerCssClass}\r\n Template={blockData.Template} \r\n Capabilities={blockData.Capabilities}\r\n ConversionGoal={blockData.ConversionGoal}\r\n />}\r\n </>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default PersonUsBlock;","import { fetchBlockData } from \"../../services/fetchDataService\";\nimport { RecommendationsBlockViewModel } from \"../../interfaces/MediaPreview\";\nimport { useEffect, useLayoutEffect, useState } from \"react\";\n\nexport interface RecommendationsUsBlockResponse {\n data: RecommendationsBlockViewModel,\n blockid: number\n}\n\ninterface UseRecommentationUsBlockProps {\n blockID: Number;\n pageID: Number;\n setMarkup: Function;\n}\n\nexport function useRecommendatonsBlock(props: UseRecommentationUsBlockProps) {\n const { blockID, pageID, setMarkup } = props;\n const [blockData, setBlockData] = useState<RecommendationsBlockViewModel|null>(null);\n const url = document.location.href;\n let microsite = (document.querySelector(\"#hdnCurrentMicrositeId\") as HTMLInputElement)?.value;\n // AU workaround\n if (!microsite) {\n microsite = (document.querySelector(\"#hdnSelectedCountry\") as HTMLInputElement)?.value.toLowerCase();\r\n }\n let key = \"\";\n switch (microsite) {\n case \"global\":\r\n key = \"ve-PageVisitCount-corp\";\r\n break;\r\n case \"ucits\":\r\n key = \"ve-PageVisitCount-eu\";\r\n break;\r\n case \"au\":\r\n key = \"ve-PageVisitCount-au\";\r\n break;\r\n default:\r\n key = \"ve-PageVisitCount\";\r\n break;\r\n }\n\n const visits = localStorage.getItem(key);\n const isFirstVisit = visits ? parseInt(visits) < 2 : true;\n const categoryId = (document.querySelector(\"[data-categoryid]\") as HTMLElement)?.dataset.categoryid;\n const ivcookie = getCookie(\"iv\") ?? \"\";\n\n useEffect(() => {\n (async () => {\n let additionalParams = \"\";\n if (categoryId) {\n additionalParams += \"&categoryId=\" + categoryId;\r\n }\n if (isFirstVisit) {\n additionalParams += \"&isFirstVisit=\" + isFirstVisit;\r\n }\n const response: RecommendationsUsBlockResponse = await fetchBlockData({\n url: `/main/recommendationsblock/getcontent/?blockid=${blockID}&pageid=${pageID}&iv=${ivcookie}¤tPageUrl=${url}${additionalParams}`,\n isJson: true,\n setMarkup: setMarkup,\n });\n console.log(\"%c *** RECOMMENDATIONS BLOCK ***\", \"background: #f28bff; color: #fff\");\n console.log(\"Recommendations loaded, response:\", response);\n setBlockData(response.data);\n setMarkup(false);\n })();\n }, [])\n\n useLayoutEffect(() => {\n document.dispatchEvent(new CustomEvent(\"reEvaluateSidebar\"));\n });\n\n return [blockData]\n}\n\nfunction getCookie(name: string) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) return parts.pop()?.split(';').shift();\n}","import { useState, useEffect, useLayoutEffect } from \"react\";\r\n\r\n/**\r\n * When a component is rendered above the viewport, it results in the current scroll position being offset by the height difference.\r\n * This custom hook will adjust for the height of the component before every paint.\r\n * @param {HTMLElement} element\r\n */\r\nfunction useAutoScrollUp(element: HTMLElement) {\r\n const [height, setHeight] = useState(0);\r\n\r\n useEffect(() => {\r\n element && setHeight(element.getBoundingClientRect()?.height);\r\n }, [element]);\r\n\r\n useLayoutEffect(() => {\r\n if (!element || !height) return;\r\n const elemBoundingRect = element.getBoundingClientRect();\r\n const newHeight = elemBoundingRect.height;\r\n const heightIncrease = newHeight - height;\r\n\r\n //compensate scrolling only if elem above viewport (scrolling up)\r\n if (elemBoundingRect.top < 50) {\r\n window.scrollBy(0, heightIncrease);\r\n }\r\n\r\n setHeight((height) => height + heightIncrease);\r\n });\r\n}\r\n\r\nexport default useAutoScrollUp;","import React from \"react\";\r\n\r\nexport interface FetchBlockDataInterface {\r\n url: string,\r\n isJson?: Boolean,\r\n setMarkup?: Function | null\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n reactlang: string | null | undefined;\r\n reactctr: string | null | undefined;\r\n isapiepieditmode: string | null | undefined;\r\n isapilatestversionpreview: string | null | undefined;\r\n epiprojectid: string | null | undefined;\r\n }\r\n}\r\n\r\nwindow.reactlang = document.getElementsByTagName(\"ve-language\")[0]?.innerHTML;\r\nwindow.reactctr = document.getElementsByTagName(\"ve-country\")[0]?.innerHTML;\r\nwindow.isapiepieditmode = document.getElementsByTagName(\"ve-is-epi-edit-mode\")[0]?.innerHTML;\r\nwindow.isapilatestversionpreview = document.getElementsByTagName(\"ve-is-latest-version-preview\")[0]?.innerHTML;\r\nwindow.epiprojectid = document.getElementsByTagName(\"ve-epi-project-id\")[0]?.innerHTML;\r\n\r\n/**\r\n * Fetches data for a given API endpoint. Expects any get parameters to be encoded in the url.\r\n * If JSON is expected, returns the JSON object. If not returns the result object.\r\n * @param {FetchBlockDataInterface} options\r\n * @returns {any|Response}\r\n */\r\nexport async function fetchBlockData({ url, isJson = true, setMarkup = null }: FetchBlockDataInterface): Promise<any | Response> {\r\n\r\n try {\r\n let additionalParams = window.isapiepieditmode || window.isapilatestversionpreview\r\n ? `&epieditmode=${window.isapiepieditmode}&latest=${window.isapilatestversionpreview}`\r\n : '';\r\n if(window.epiprojectid){\r\n additionalParams += `&epiprojects=${window.epiprojectid}`;\r\n }\r\n const request = await fetch(`${url}${url.indexOf('?') !== -1 ? '&' : '?'}reactlang=${window.reactlang}&reactctr=${window.reactctr}${additionalParams}`);\r\n const response: Response|any = isJson ? await request.json() : request;\r\n \r\n return response;\r\n } catch (err) {\r\n console.log(`Error while fetching block data! URL: ${url}`);\r\n\r\n typeof (setMarkup) === \"function\" && setMarkup(\r\n <div className=\"component-load-failed\">An error occured when loading data.</div>\r\n );\r\n\r\n throw new Error(err as string);\r\n }\r\n}"],"names":["item","conversionGoal","IsRecommendation","window","_iaq","push","Recommendation","recommendation","isHorizontal","isCarousel","hideImage","hidePublishDate","hideReadTime","removeExtraSpacing","disableCapabilityLinks","itemDesktopMargins","className","Type","PostSmallImage","RelatedMediaImage","RelatedMediaBody","href","MediaLink","tabIndex","onClick","style","backgroundImage","paddingBottom","alt","Title","src","ImageIcon","mediaType","TypeName","authorGtmAttributeValue","imageToBeShown","Category","CategoryUrl","target","OpenInNewTab","Badge","Authors","length","Url","Name","FormattedTime","FormattedPublishDate","Description","template","focusable","role","xmlns","viewBox","fill","d","Recommendations","slider","slideIndex","setSlideIndex","useState","slideRangeIndex","setSlideRangeIndex","hidePagination","setHidePagination","totalCards","handleReinit","slidesToShow","currentSlide","current","innerSlider","state","settings","slidesToScroll","infinite","arrows","onInit","onReInit","responsive","breakpoint","initialSlide","ref","map","key","type","slickPrev","LeftArrowButtonSvg","slickNext","RightArrowButtonSvg","RecommendationsBlockInner","props","Template","CssClass","ContainerCssClass","ConversionGoal","hideRecommendedImage","includes","isAustralia","paddingClass","index","RecommendationsFundBlock","Image","SecondaryImage","ImageOverlay","noOfRecommendations","removeBorderFromLastItem","lastNodeList","document","querySelectorAll","forEach","lastNode","list","querySelector","classList","remove","lastElement","add","Math","min","dots","afterChange","Capabilities","RenderHeaderSection","title","RenderTrendingCards","recommendations","Value","Key","id","element","rootElement","blockID","dataset","blockid","pageID","pageid","markup","setMarkup","isNaN","blockData","setBlockData","url","location","microsite","value","toLowerCase","visits","localStorage","getItem","isFirstVisit","parseInt","categoryId","categoryid","ivcookie","name","parts","cookie","split","pop","shift","getCookie","useEffect","additionalParams","response","isJson","console","log","data","useLayoutEffect","dispatchEvent","CustomEvent","useRecommendatonsBlock","parentElement","contains","height","setHeight","getBoundingClientRect","elemBoundingRect","heightIncrease","top","scrollBy","async","fetchBlockData","isapiepieditmode","isapilatestversionpreview","epiprojectid","request","fetch","indexOf","reactlang","reactctr","json","err","Error","getElementsByTagName","innerHTML"],"sourceRoot":""}