{"version":3,"file":"dist/generic-promo-banner-only.js","mappings":"CAAA,SAAWA,GAEP,KAAIA,EAAE,0BAA0BC,OAAS,GAAzC,CAGA,IAEIC,EAAeF,EAAE,sBAAsBG,cA8I3CH,GAAE,WACgBI,OAAOC,SAASC,KAAKC,oBAAoBC,QAAQ,UAAY,GA1I3ER,EAAES,KAAK,CACHC,KAAM,MACNC,IAAK,eACLC,QAAS,SAAUC,GAKfC,QAAUD,EACVE,EAA0CF,EAC7C,GAqIR,GAzJiD,CAwBlD,SAASG,IACL,IAAIC,EAA6BjB,EAAE,cAAckB,UAAUC,QAAO,CAACC,EAAMC,IAAkBrB,EAAEqB,GAAMC,SAAWF,GAAQ,GACtHpB,EAAE,2BAA2BsB,OAAOpB,EAAee,GACnDjB,EAAE,yBAAyBsB,OAAOpB,EAAee,GAED,GAA5CjB,EAAE,gCAAgCC,QAA6C,GAA9BD,EAAE,kBAAkBC,SACrED,EAAE,gCAAgCuB,IAAI,MAAQrB,EAAee,GAC7DjB,EAAE,kBAAkBuB,IAAI,MAAQrB,EAAee,IAE/CjB,EAAE,4BAA4BC,OAAS,GACvCuB,wBAAuB,GAI3B,MAAMC,EAAoB,IAAIC,YAAY,oBAAqB,CAC3DC,OAAQ,CACJzB,aAAcA,EACd0B,0BAA2BX,KAGnCY,SAASC,cAAcL,EAC1B,CAED,SAASV,EAA0CgB,GAE/C,IAAIC,EAAyBD,EAEzBC,EAAuB/B,QACvBD,EAAES,KAAK,CACHC,KAAM,OACNC,IAAK,mBACLsB,KAAM,CACFC,gBAAgB,IAAIC,MAAOC,oBAC3BJ,uBAAwBA,GAE5BpB,QAAS,SAAUyB,GAGfN,EAAoBO,SAAQC,IACxB,GAAKF,EAAaG,SAASD,EAAKE,IAAhC,CAEA,IAAIC,EAASH,EAAKI,OAAOC,QAAQ,sBAAuBL,EAAKE,IAGzDI,EAAWN,EAAKO,UAAYP,EAAKO,SAAS7C,OAAS,EAAIsC,EAAKO,SAAS3B,QAAO,CAACC,EAAMC,IAASD,EAAK2B,OAAO,KAAM1B,KAAS,GAG3HqB,EAASA,EAAOE,QAAQ,aAAcC,GAItC,IAAIG,EAAahD,EAAE0C,GAAQO,KAAK,oCAC5BC,EAAO,IACPF,EAAW/C,OAAS,IACpBiD,EAAOlD,EAAEgD,GAAYG,KAAK,SAAWnD,EAAEgD,GAAYf,KAAK,SAG5DiB,EAAOX,EAAKa,aAAmC,IAApBb,EAAKa,YAAoBb,EAAKa,YAAcF,EAGvER,EAASA,EAAOE,QAAQ,iBAAkBM,GA0D9D,SAAwBR,GACpB1C,EAAE,sBAAsBqD,OAAOX,GAC/B1B,GACH,CAvDmBsC,CAHAZ,EAA2B,GAAlBH,EAAKgB,UAAqBb,EAAOE,QAAQ5C,EAAE0C,GAAQO,KAAK,wBAAwB,GAAGO,UAAW,IAAMd,EAAOE,QAAQ,mBAAoB,gBAxBrG,CA2B3C,IAIJ5C,EAAE,+BAA+ByD,MAAMC,GACvC1D,EAAE,4BAA4ByD,MAAME,EACvC,GAGZ,CAGD,SAASC,EAAkBC,EAAIC,EAAOC,GAClC/D,EAAES,KAAK,CACHC,KAAM,OACNC,IAAK,eACLsB,KAAM,CACF4B,GAAIA,EACJC,MAAOA,GAEXlD,QAAS,WAEDmD,IACA1D,SAASC,KAAOyD,GAEpB/D,EAAE,cAAcgE,SAChBjD,EAA0CD,SAC1CE,GACH,GAER,CAED,SAAS0C,IACL,IAAIO,EAASjE,EAAEkE,MAMfN,EALsBK,EAAOE,QAAQ,kBACLhB,KAAK,gBACzB,aACUc,EAAOd,KAAK,aAGrC,CAED,SAASQ,IACL,IAAIM,EAASjE,EAAEkE,MAKfN,EAJsBK,EAAOE,QAAQ,kBACLhB,KAAK,gBACzB,UAGZc,EAAOE,QAAQ,cAAcC,MAChC,CA9IL,EA4JGC","sources":["webpack://vaneckweb/../Static/us/js/src/override/generic-promo-banner.js"],"sourcesContent":["(function ($) {\r\n    //return if the class added to hide the alert bar\r\n    if ($('body.hide-promo-banner').length > 0) return;\r\n\r\n\r\n    var debug = false;\r\n\r\n    var headerHeight = $(\"header.site-header\").outerHeight();\r\n\r\n    //debugger;\r\n\r\n    function showNotificationBanners() {\r\n        $.ajax({\r\n            type: 'GET',\r\n            url: '/banners/get',\r\n            success: function (items) {\r\n                if (debug) {\r\n                    console.log('Get notification banners:');\r\n                    console.log(items);\r\n                }\r\n                banners = items;\r\n                getNotificationBannersIdsToDisplayAndShow(items);\r\n            }\r\n        });\r\n    }\r\n\r\n    function adjustHeaderHeight() {\r\n        var AlertBArsCumilativeHeights = $(\".alert-bar\").toArray().reduce((prev, curr) => { return $(curr).height() + prev }, 0)\r\n        $(\"#root > .sticky-wrapper\").height(headerHeight + AlertBArsCumilativeHeights);\r\n        $(\"body > .bs4-nav:first\").height(headerHeight + AlertBArsCumilativeHeights);\r\n        //console.log(\"called\")\r\n        if ($(\".fund-page-secondary-nav-wrp\").length == 1 || $(\".secondary-nav\").length == 1) {\r\n            $(\".fund-page-secondary-nav-wrp\").css(\"top\", (headerHeight + AlertBArsCumilativeHeights));\r\n            $(\".secondary-nav\").css(\"top\", (headerHeight + AlertBArsCumilativeHeights));\r\n        }\r\n        if ($(\"body.page-class-insights\").length > 0) {\r\n            GenerateAnchoredBlocks(true);\r\n        }\r\n\r\n        //Dispatch an event on the Document level so everyone adjusting their heights (esp. React Secondary Navs) can adjust automatically.\r\n        const HeaderheightEvent = new CustomEvent(\"headerHeightEvent\", {\r\n            detail: {\r\n                headerHeight: headerHeight,\r\n                cumilativeAlertBarsHeight: AlertBArsCumilativeHeights\r\n            }\r\n        })\r\n        document.dispatchEvent(HeaderheightEvent);\r\n    }\r\n\r\n    function getNotificationBannersIdsToDisplayAndShow(notificationBanners) {\r\n\r\n        var bannerInfoForFiltering = notificationBanners;\r\n\r\n        if (bannerInfoForFiltering.length) {\r\n            $.ajax({\r\n                type: 'POST',\r\n                url: '/banners/display',\r\n                data: {\r\n                    timeZoneOffset: new Date().getTimezoneOffset(),\r\n                    bannerInfoForFiltering: bannerInfoForFiltering\r\n                },\r\n                success: function (idsToDisplay) {\r\n                    if (debug) { console.log('Display banners:' + idsToDisplay); }\r\n\r\n                    notificationBanners.forEach(item => {\r\n                        if (!idsToDisplay.includes(item.Id)) return;\r\n                        //get the ID of the webinar and inject accordingly.\r\n                        var markup = item.Markup.replace(\"{id-of-the-webinar}\", item.Id)\r\n\r\n                        //get the speakers and stringify them.\r\n                        var speakers = item.Speakers && item.Speakers.length > 0 ? item.Speakers.reduce((prev, curr) => prev.concat(\", \", curr)) : \"\";\r\n\r\n                        //replace the speakers\r\n                        markup = markup.replace(\"{Speakers}\", speakers)\r\n\r\n\r\n                        //The webinar link is returned as a button, so we need to do some processing to get the link off the button and inject it as the primary link.\r\n                        var linkbutton = $(markup).find('.particiapnt-info-content button');\r\n                        var link = \"#\";\r\n                        if (linkbutton.length > 0) {\r\n                            link = $(linkbutton).attr(\"href\") || $(linkbutton).data(\"href\")\r\n                        }\r\n                        //if the service responds with a link, then that takes precedance...\r\n                        link = item.WebinarLink && item.WebinarLink != \"\" ? item.WebinarLink : link;\r\n\r\n                        //add the link to the link placeholder...\r\n                        markup = markup.replace(\"{primary-link}\", link)\r\n\r\n                        //see if the webinar has started, if not remove the icon... ...using some jQuery jugglery...\r\n                        markup = item.IsStarted == false ? markup.replace($(markup).find(\".alert-bar__left svg\")[0].outerHTML, \"\") : markup.replace(\"Upcoming Webinar\", \"Live Webinar\");\r\n\r\n                        //render the banner\r\n                        rnBannerMarkup(markup);\r\n                    });\r\n\r\n                    //bind listeners\r\n                    $('.alert-bar .js-register-now').click(registerHandler);\r\n                    $('.alert-bar .js-no-thanks').click(noThanksHandler);\r\n                }\r\n            });\r\n        }\r\n    }\r\n\r\n\r\n    function updateBannerState(id, state, goToUrl) {\r\n        $.ajax({\r\n            type: 'POST',\r\n            url: '/banners/set',\r\n            data: {\r\n                id: id,\r\n                state: state\r\n            },\r\n            success: function () {\r\n\r\n                if (goToUrl) {\r\n                    location.href = goToUrl;\r\n                }\r\n                $('.alert-bar').remove();\r\n                getNotificationBannersIdsToDisplayAndShow(banners);\r\n                adjustHeaderHeight();\r\n            }\r\n        });\r\n    }\r\n\r\n    function registerHandler() {\r\n        var button = $(this),\r\n            bannerContainer = button.closest('[data-item-id]'),\r\n            webinarId = bannerContainer.attr('data-item-id'),\r\n            state = 'Registered',\r\n            registerPageUrl = button.attr('data-href');\r\n\r\n        updateBannerState(webinarId, state, registerPageUrl);\r\n    }\r\n\r\n    function noThanksHandler() {\r\n        var button = $(this),\r\n            bannerContainer = button.closest('[data-item-id]'),\r\n            webinarId = bannerContainer.attr('data-item-id'),\r\n            state = 'Closed';\r\n\r\n        updateBannerState(webinarId, state);\r\n        button.closest('.alert-bar').hide();\r\n    }\r\n\r\n    function rnBannerMarkup(markup) {\r\n        $('header.site-header').append(markup);\r\n        adjustHeaderHeight();\r\n    }\r\n\r\n    $(function () {\r\n        var isAdmin = window.location.href.toLocaleLowerCase().indexOf(\"admin\") > -1;\r\n\r\n        if (!isAdmin) {\r\n            showNotificationBanners();\r\n        }\r\n    });\r\n})(jQuery);\r\n"],"names":["$","length","headerHeight","outerHeight","window","location","href","toLocaleLowerCase","indexOf","ajax","type","url","success","items","banners","getNotificationBannersIdsToDisplayAndShow","adjustHeaderHeight","AlertBArsCumilativeHeights","toArray","reduce","prev","curr","height","css","GenerateAnchoredBlocks","HeaderheightEvent","CustomEvent","detail","cumilativeAlertBarsHeight","document","dispatchEvent","notificationBanners","bannerInfoForFiltering","data","timeZoneOffset","Date","getTimezoneOffset","idsToDisplay","forEach","item","includes","Id","markup","Markup","replace","speakers","Speakers","concat","linkbutton","find","link","attr","WebinarLink","append","rnBannerMarkup","IsStarted","outerHTML","click","registerHandler","noThanksHandler","updateBannerState","id","state","goToUrl","remove","button","this","closest","hide","jQuery"],"sourceRoot":""}