UNPKG

digitalmarketplace-frontend

Version:

Digital Marketplace Frontend contains assets and components used in Digital Marketplace projects

61 lines (58 loc) 2.45 kB
import { setCookiePreferences, getCookiePreferences } from '../../scripts/cookies/manage.mjs'; class CookieBanner { static moduleName = 'dm-cookie-banner'; $module; $cookieBannerMainContent; $cookieBannerConfirmationContent; $cookieBannerConfirmationMessage; $hideLink; $acceptCookiesLink; $rejectCookiesLink; constructor($module) { this.$module = $module; this.$cookieBannerMainContent = this.$module.find('.dm-cookie-banner__button--main'); this.$cookieBannerConfirmationContent = this.$module.find('.dm-cookie-banner--selection-made'); this.$cookieBannerConfirmationMessage = this.$module.find('.dm-cookie-banner__confirmation-message'); this.$hideLink = this.$module.find('button[data-hide-cookie-banner]'); this.$acceptCookiesLink = this.$module.find('button[data-accept-cookies=true]'); this.$rejectCookiesLink = this.$module.find('button[data-accept-cookies=false]'); } init() { this.$hideLink.on('click', (event) => { this.hideCookieMessage(event); }); this.$acceptCookiesLink.on('click', () => { this.setCookieConsent(true); }); this.$rejectCookiesLink.on('click', () => { this.setCookieConsent(false); }); this.showCookieMessage(); } setCookieConsent(analyticsConsent) { setCookiePreferences(analyticsConsent); this.showConfirmationMessage(analyticsConsent); this.$cookieBannerConfirmationContent.trigger('focus'); } showCookieMessage() { // Show the cookie banner if policy cookie not set const cookiePreferences = getCookiePreferences(); if (this.$module && !cookiePreferences.settings_viewed) { this.$module.css('display', 'block'); } } hideCookieMessage(event) { this.$module.css('display', 'none'); if (event.target) { event.preventDefault(); } } showConfirmationMessage(analyticsConsent) { const messagePrefix = analyticsConsent ? 'You’ve accepted analytics cookies.' : 'You told us not to use analytics cookies.'; this.$cookieBannerMainContent.attr('hidden', 'hidden'); this.$cookieBannerConfirmationMessage.prepend(messagePrefix); this.$cookieBannerConfirmationContent.removeAttr('hidden'); } } export { CookieBanner }; //# sourceMappingURL=cookie-banner.mjs.map