diff --git a/eu_cookie_compliance.libraries.yml b/eu_cookie_compliance.libraries.yml
index 57c9f85..001ddf5 100644
--- a/eu_cookie_compliance.libraries.yml
+++ b/eu_cookie_compliance.libraries.yml
@@ -1,7 +1,7 @@
eu_cookie_compliance:
version: VERSION
js:
- js/eu_cookie_compliance.js: { attributes: { defer: true } }
+ js/eu_cookie_compliance.js: { attributes: { defer: true, minified: true } }
dependencies:
- core/jquery
- core/drupal
diff --git a/js/eu_cookie_compliance.js b/js/eu_cookie_compliance.js
index 3f99389..219a21f 100644
--- a/js/eu_cookie_compliance.js
+++ b/js/eu_cookie_compliance.js
@@ -1,1594 +1,138 @@
-/**
- * @file
- * eu_cookie_compliance.js
- *
- * Defines the behavior of the eu cookie compliance banner.
- *
- * Statuses:
- * null: not yet agreed (or withdrawn), show popup
- * 0: Disagreed
- * 1: Agreed, show thank you banner
- * 2: Agreed
- */
+!function($,a,b,v){"use strict";var u,w=void 0===b.eu_cookie_compliance.cookie_value_disagreed||""===b.eu_cookie_compliance.cookie_value_disagreed?"0":b.eu_cookie_compliance.cookie_value_disagreed,x=void
+0===b.eu_cookie_compliance.cookie_value_agreed_show_thank_you||""===b.eu_cookie_compliance.cookie_value_agreed_show_thank_you?"1":b.eu_cookie_compliance.cookie_value_agreed_show_thank_you,y=void
+0===b.eu_cookie_compliance.cookie_value_agreed||""===b.eu_cookie_compliance.cookie_value_agreed?"2":b.eu_cookie_compliance.cookie_value_agreed;a.behaviors.euCookieCompliancePopup={attach:function(d){if(void
+0!==b.eu_cookie_compliance){if(void
+0!==$("body").once)$(b.eu_cookie_compliance.containing_element).once("eu-cookie-compliance").each(function(d){if(l=c.getCurrentStatus(),z=c.getAcceptedCategories(),b.eu_cookie_compliance.popup_eu_only_js){if(a.eu_cookie_compliance.showBanner()){var
+e=b.path.baseUrl+b.path.pathPrefix+"eu-cookie-compliance-check",f={};$.getJSON(e,f,function(d){if(d.in_eu)a.eu_cookie_compliance.execute();else
+if(a.eu_cookie_compliance.setStatus(y),b.eu_cookie_compliance.geoip_match=!1,A||"function"!=typeof euCookieComplianceLoadScripts||euCookieComplianceLoadScripts(),"categories"===b.eu_cookie_compliance.method){var
+c=b.eu_cookie_compliance.cookie_categories;a.eu_cookie_compliance.setAcceptedCategories(c),a.eu_cookie_compliance.loadCategoryScripts(c)}})}}else
+b.eu_cookie_compliance.hide_the_banner||a.eu_cookie_compliance.execute();$(d).addClass("eu-cookie-compliance-status-"+a.eu_cookie_compliance.getCurrentStatus())});else{let
+e=once("eu-cookie-compliance",b.eu_cookie_compliance.containing_element,d);e.forEach(function(d){if(l=c.getCurrentStatus(),z=c.getAcceptedCategories(),b.eu_cookie_compliance.popup_eu_only_js){if(a.eu_cookie_compliance.showBanner()){var
+e=b.path.baseUrl+b.path.pathPrefix+"eu-cookie-compliance-check",f={};$.getJSON(e,f,function(d){if(d.in_eu)a.eu_cookie_compliance.execute();else
+if(a.eu_cookie_compliance.setStatus(y),b.eu_cookie_compliance.geoip_match=!1,"categories"===b.eu_cookie_compliance.method){var
+c=b.eu_cookie_compliance.cookie_categories;a.eu_cookie_compliance.setAcceptedCategories(c),a.eu_cookie_compliance.loadCategoryScripts(c)}})}}else
+b.eu_cookie_compliance.hide_the_banner||a.eu_cookie_compliance.execute();$(d).addClass("eu-cookie-compliance-status-"+a.eu_cookie_compliance.getCurrentStatus())})}}}},a.eu_cookie_compliance=a.eu_cookie_compliance||function(){(a.eu_cookie_compliance.queue=a.eu_cookie_compliance.queue||[]).push(arguments)},a.eu_cookie_compliance.a=+new
+Date;var
+c=a.eu_cookie_compliance,z=[],l=null;c.updateSelectedCategories=function(a){z=a},c.updateCurrentStatus=function(a){l=a},a.eu_cookie_compliance.execute=function(){try{if(!b.eu_cookie_compliance.popup_enabled||!a.eu_cookie_compliance.cookiesEnabled()||!b.eu_cookie_compliance.modules_allow_popup||(l=a.eu_cookie_compliance.getCurrentStatus(),void
+0===a.eu_cookie_compliance.getVersion()&&a.eu_cookie_compliance.setVersion("unknown"),!0===b.eu_cookie_compliance.popup_eu_only&& !0!==b.eu_cookie_compliance.geoip_match))return;var
+c=a.eu_cookie_compliance.getVersion()!==b.eu_cookie_compliance.cookie_policy_version,e=void
+0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed":b.eu_cookie_compliance.cookie_name,d=!b.eu_cookie_compliance.open_by_default||null!==l&&!c||"null"===v.get(e)&&b.eu_cookie_compliance.settings_tab_enabled;l===w&&b.eu_cookie_compliance.settings_tab_enabled&&("opt_in"===b.eu_cookie_compliance.method||"categories"===b.eu_cookie_compliance.method)?(a.eu_cookie_compliance.createPopup(b.eu_cookie_compliance.popup_html_info,null!==l),$(".eu-cookie-withdraw-tab").click(a.eu_cookie_compliance.toggleWithdrawBanner),a.eu_cookie_compliance.attachAgreeEvents()):l===w&&"default"===b.eu_cookie_compliance.method||null===l||l!==w&&b.eu_cookie_compliance.withdraw_enabled&&b.eu_cookie_compliance.withdraw_button_on_info_popup||l!==w&&c?(b.eu_cookie_compliance.withdraw_enabled||!b.eu_cookie_compliance.disagree_do_not_show_popup||null===l)&&(window.matchMedia("(max-width:
+"+b.eu_cookie_compliance.mobile_breakpoint+"px)").matches&&b.eu_cookie_compliance.use_mobile_message?a.eu_cookie_compliance.createPopup(b.eu_cookie_compliance.mobile_popup_html_info,d):a.eu_cookie_compliance.createPopup(b.eu_cookie_compliance.popup_html_info,d),a.eu_cookie_compliance.initPopup(),a.eu_cookie_compliance.resizeListener()):l===x&&b.eu_cookie_compliance.popup_agreed_enabled?(a.eu_cookie_compliance.createPopup(b.eu_cookie_compliance.popup_html_agreed),a.eu_cookie_compliance.attachHideEvents()):l===y&&b.eu_cookie_compliance.withdraw_enabled&&(b.eu_cookie_compliance.withdraw_button_on_info_popup||(a.eu_cookie_compliance.createWithdrawBanner(b.eu_cookie_compliance.withdraw_markup),a.eu_cookie_compliance.initPopup(),a.eu_cookie_compliance.resizeListener()))}catch(f){}},a.eu_cookie_compliance.initPopup=function(){a.eu_cookie_compliance.attachAgreeEvents(),"categories"===b.eu_cookie_compliance.method&&(a.eu_cookie_compliance.setPreferenceCheckboxes(z),a.eu_cookie_compliance.attachSavePreferencesEvents()),b.eu_cookie_compliance.withdraw_enabled&&(a.eu_cookie_compliance.attachWithdrawEvents(),(l===x||l===y)&&$(".eu-cookie-withdraw-button").removeClass("visually-hidden"))},a.eu_cookie_compliance.positionTab=function(){if(b.eu_cookie_compliance.popup_position){let
+a=$(".eu-cookie-withdraw-tab").outerHeight();$("#sliding-popup").length&&(a+=$("#sliding-popup").outerHeight()),$(".eu-cookie-withdraw-wrapper").length?$(".eu-cookie-withdraw-tab").css("margin-top","0"):$(".eu-cookie-withdraw-tab").css("margin-top",a+"px")}},a.eu_cookie_compliance.createWithdrawBanner=function(f){var
+c=$("
").html(f),e=$(".eu-cookie-withdraw-banner",c);c.attr({id:"sliding-popup",role:"alertdialog","aria-describedby":"popup-text"}),c.addClass("eu-cookie-withdraw-wrapper"),c.trigger("eu_cookie_compliance_popup_close"),b.eu_cookie_compliance.popup_use_bare_css||b.eu_cookie_compliance.popup_use_olivero_css||e.height(b.eu_cookie_compliance.popup_height).width(b.eu_cookie_compliance.popup_width),c.hide();var
+d=0;b.eu_cookie_compliance.popup_position?(c.prependTo(b.eu_cookie_compliance.containing_element),d=parseInt(c.outerHeight()),c.show().addClass("sliding-popup-top").addClass("clearfix").css({top:a.eu_cookie_compliance.getBannerTopHiddenPosition(d)}),setTimeout((function(){var
+d=c.outerHeight();c.animate({top:a.eu_cookie_compliance.getBannerTopHiddenPosition(d)},b.eu_cookie_compliance.popup_delay,null),b.eu_cookie_compliance.fixed_top_position||$("body").animate({"margin-top":-d+"px"})}).bind(c),0)):(b.eu_cookie_compliance.better_support_for_screen_readers?c.prependTo(b.eu_cookie_compliance.containing_element):c.appendTo(b.eu_cookie_compliance.containing_element),d=c.outerHeight(),c.show().addClass("sliding-popup-bottom").css({bottom:-1*d}),setTimeout((function(){var
+a=c.outerHeight();c.animate({bottom:-1*a},b.eu_cookie_compliance.popup_delay,null)}).bind(c),0)),$("body").removeClass("eu-cookie-compliance-popup-open"),e.attr("aria-hidden",!0).find("a, button,
+input").attr("tabindex",-1)},a.eu_cookie_compliance.getBannerTopPosition=function(c){let a;return
+b.eu_cookie_compliance.fixed_top_position?(a=0,$(".toolbar-tray-horizontal.is-active").length&&(a+=parseInt($(".toolbar-tray-horizontal.is-active").css("height"))),$(".toolbar-bar").length&&!$("#gin-toolbar-bar").length&&(a+=parseInt($(".toolbar-bar").css("height"))),a+"px"):0},a.eu_cookie_compliance.getBannerTopHiddenPosition=function(c){let
+a=0;return
+b.eu_cookie_compliance.fixed_top_position?a=-c:($(".toolbar-tray-horizontal.is-active").length&&(a=-parseInt($(".toolbar-tray-horizontal.is-active").css("height"))),$(".toolbar-bar").length&&!$("#gin-toolbar-bar").length&&(a-=parseInt($(".toolbar-bar").css("height")))),a+"px"},a.eu_cookie_compliance.getBannerBottomHiddenPosition=function(){return-$("#sliding-popup").outerHeight()+"px"},a.eu_cookie_compliance.toggleWithdrawBanner=function(){var
+c=$("#sliding-popup"),d=parseInt(c.outerHeight()),e=c.find(".eu-cookie-compliance-banner, .eu-cookie-withdraw-banner").is(":visible");if(e){let
+f=parseInt(c.css("top")),g=parseInt($(b.eu_cookie_compliance.containing_element).css("padding-top")),h=parseInt($(b.eu_cookie_compliance.containing_element).css("margin-top"));e=b.eu_cookie_compliance.popup_position?b.eu_cookie_compliance.fixed_top_position?f!==
+-d:f!==
+-(g+h+d):0===parseInt(c.css("bottom"))}b.eu_cookie_compliance.popup_position?e?(b.eu_cookie_compliance.fixed_top_position||$("body").animate({"margin-top":-d+"px"},b.eu_cookie_compliance.popup_delay),c.animate({top:a.eu_cookie_compliance.getBannerTopHiddenPosition(d)},b.eu_cookie_compliance.popup_delay).trigger("eu_cookie_compliance_popup_close")):(b.eu_cookie_compliance.fixed_top_position||$("body").animate({"margin-top":"0px"},b.eu_cookie_compliance.popup_delay),c.find(".eu-cookie-compliance-banner").show(),c.animate({top:a.eu_cookie_compliance.getBannerTopPosition(d)},b.eu_cookie_compliance.popup_delay).trigger("eu_cookie_compliance_popup_open")):e?c.animate({bottom:-1*d},b.eu_cookie_compliance.popup_delay).trigger("eu_cookie_compliance_popup_close"):(c.find(".eu-cookie-compliance-banner").show(),c.animate({bottom:0},b.eu_cookie_compliance.popup_delay).trigger("eu_cookie_compliance_popup_open")),e?($("body").removeClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!0).find("a, button, input").attr("tabindex",-1)):($("body").addClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!1).find("a, button, input").attr("tabindex",0))},a.eu_cookie_compliance.resizeListener=function(){var d=$("#sliding-popup"),c=function(a,b){var c;return function(){var
+b=function(){clearTimeout(c),a()};clearTimeout(c),c=setTimeout(b,50)}}(function(){var
+c=d.outerHeight();b.eu_cookie_compliance.popup_position?(0>parseFloat(d.css("top"))&&($("body").hasClass("eu-cookie-compliance-popup-open")?(b.eu_cookie_compliance.fixed_top_position||$("body").css({"margin-top":"0px"}),d.css("top",a.eu_cookie_compliance.getBannerTopPosition(c))):(b.eu_cookie_compliance.fixed_top_position||$("body").css({"margin-top":-c+"px"}),d.css("top",a.eu_cookie_compliance.getBannerTopHiddenPosition(c)))),a.eu_cookie_compliance.positionTab()):0!==parseFloat(d.css("bottom"))&&d.css("bottom",-1*c),a.eu_cookie_compliance.positionTab()},50);setTimeout(function(){c()}),window.addEventListener("resize",c)},a.eu_cookie_compliance.createPopup=function(f,e){var
+c=$("").html(f);c.attr({id:"sliding-popup",role:"alertdialog","aria-describedby":"popup-text"}),b.eu_cookie_compliance.popup_use_bare_css||b.eu_cookie_compliance.popup_use_olivero_css||c.height(b.eu_cookie_compliance.popup_height).width(b.eu_cookie_compliance.popup_width),c.hide();var
+d=0;b.eu_cookie_compliance.popup_position?(c.prependTo(b.eu_cookie_compliance.containing_element),d=c.outerHeight(),c.addClass("sliding-popup-top
+clearfix").css({top:a.eu_cookie_compliance.getBannerTopHiddenPosition(d)}),!0!==e?(c.show(),c.animate({top:a.eu_cookie_compliance.getBannerTopPosition(d)},b.eu_cookie_compliance.popup_delay,null,function(){c.trigger("eu_cookie_compliance_popup_open"),a.eu_cookie_compliance.positionTab()})):(b.eu_cookie_compliance.fixed_top_position||$("body").css({"margin-top":-d+"px"}),setTimeout(function(){c.show(),a.eu_cookie_compliance.positionTab()},0))):(b.eu_cookie_compliance.better_support_for_screen_readers?c.prependTo(b.eu_cookie_compliance.containing_element):c.appendTo(b.eu_cookie_compliance.containing_element),d=c.outerHeight(),c.show().addClass("sliding-popup-bottom").css({bottom:-1*d}),!0!==e&&c.animate({bottom:0},b.eu_cookie_compliance.popup_delay,null,function(){c.trigger("eu_cookie_compliance_popup_open")})),!0!==e?($("body").addClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!1).find("a, button, input").attr("tabindex",0)):($("body").removeClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!0).find("a, button, input").attr("tabindex",-1))},a.eu_cookie_compliance.attachAgreeEvents=function(){var
+c=b.eu_cookie_compliance.popup_clicking_confirmation,d=b.eu_cookie_compliance.popup_scrolling_confirmation;if("categories"===b.eu_cookie_compliance.method&&b.eu_cookie_compliance.enable_save_preferences_button?$(".agree-button").click(a.eu_cookie_compliance.acceptAllAction):$(".agree-button").click(a.eu_cookie_compliance.acceptAction),$(".decline-button").click(a.eu_cookie_compliance.declineAction),$(".eu-cookie-compliance-close-button").click(a.eu_cookie_compliance.closeAction),$(".eu-cookie-compliance-reject-button").click(a.eu_cookie_compliance.rejectAllAction),c&&$("a,
+input[type=submit], button[type=submit]").not(".popup-content *").bind("click.euCookieCompliance",a.eu_cookie_compliance.acceptAction),d){var
+f=!1,e=function(){f?(a.eu_cookie_compliance.acceptAction(),$(window).off("scroll",e)):f=!0};$(window).bind("scroll",e)}$(".find-more-button").not(".find-more-button-processed").addClass("find-more-button-processed").click(a.eu_cookie_compliance.moreInfoAction)},a.eu_cookie_compliance.closeAction=function(){switch(b.eu_cookie_compliance.close_button_action){case"close_banner":a.eu_cookie_compliance.toggleWithdrawBanner();break;case"save_preferences":a.eu_cookie_compliance.savePreferencesAction();break;case"reject_all_cookies":a.eu_cookie_compliance.rejectAllAction();break;case"accept_all_cookies":a.eu_cookie_compliance.acceptAllAction()}},a.eu_cookie_compliance.attachSavePreferencesEvents=function(){$(".eu-cookie-compliance-save-preferences-button").click(a.eu_cookie_compliance.savePreferencesAction)},a.eu_cookie_compliance.attachHideEvents=function(){var
+c=b.eu_cookie_compliance.popup_hide_agreed,d=b.eu_cookie_compliance.popup_clicking_confirmation;$(".hide-popup-button").click(function(){a.eu_cookie_compliance.changeStatus(y)}),d&&$("a, input[type=submit],
+button[type=submit]").unbind("click.euCookieCompliance"),c&&$("a, input[type=submit],
+button[type=submit]").bind("click.euCookieComplianceHideAgreed",function(){a.eu_cookie_compliance.changeStatus(y)}),$(".find-more-button").not(".find-more-button-processed").addClass("find-more-button-processed").click(a.eu_cookie_compliance.moreInfoAction)},a.eu_cookie_compliance.attachWithdrawEvents=function(){$(".eu-cookie-withdraw-button").click(a.eu_cookie_compliance.withdrawAction),$(".eu-cookie-withdraw-tab").click(a.eu_cookie_compliance.toggleWithdrawBanner)},a.eu_cookie_compliance.acceptAction=function(){var
+e=b.eu_cookie_compliance.popup_agreed_enabled,c=x;if(e||(a.eu_cookie_compliance.setStatus(x),c=y),A||"function"!=typeof euCookieComplianceLoadScripts||euCookieComplianceLoadScripts(),void
+0!==u&&clearInterval(u),"categories"===b.eu_cookie_compliance.method){var d=$("#eu-cookie-compliance-categories input:checkbox:checked").map(function(){return
+$(this).val()}).get();a.eu_cookie_compliance.setAcceptedCategories(d),a.eu_cookie_compliance.loadCategoryScripts(d),d.length||(c=w)}a.eu_cookie_compliance.changeStatus(c),b.eu_cookie_compliance.withdraw_enabled&&b.eu_cookie_compliance.withdraw_button_on_info_popup&&(a.eu_cookie_compliance.attachWithdrawEvents(),(l===x||l===y)&&$(".eu-cookie-withdraw-button").removeClass("visually-hidden"))},a.eu_cookie_compliance.acceptAllAction=function(){var
+c=b.eu_cookie_compliance.cookie_categories;a.eu_cookie_compliance.setPreferenceCheckboxes(c),a.eu_cookie_compliance.acceptAction()},a.eu_cookie_compliance.rejectAllAction=function(){a.eu_cookie_compliance.setPreferenceCheckboxes([]),a.eu_cookie_compliance.acceptAction()},a.eu_cookie_compliance.savePreferencesAction=function(){var
+c=$("#eu-cookie-compliance-categories input:checkbox:checked").map(function(){return
+$(this).val()}).get(),e=b.eu_cookie_compliance.popup_agreed_enabled,d=x;e||(a.eu_cookie_compliance.setStatus(x),d=y),a.eu_cookie_compliance.setAcceptedCategories(c),a.eu_cookie_compliance.loadCategoryScripts(c),c.length||(d=w),a.eu_cookie_compliance.changeStatus(d)},a.eu_cookie_compliance.loadCategoryScripts=function(a){for(var
+b in a)!0!==B[a[b]]&&"function"==typeof
+euCookieComplianceLoadScripts&&(euCookieComplianceLoadScripts(a[b]),B[a[b]]=!0)},a.eu_cookie_compliance.declineAction=function(){parseInt(b.eu_cookie_compliance.set_cookie_session_zero_on_disagree)&&(b.eu_cookie_compliance.cookie_session=1),a.eu_cookie_compliance.setStatus(w);var
+c=$("#sliding-popup");if(c.hasClass("sliding-popup-top")){let
+d=c.outerHeight();b.eu_cookie_compliance.fixed_top_position||$("body").animate({"margin-top":-d+"px"},b.eu_cookie_compliance.popup_delay),b.eu_cookie_compliance.settings_tab_enabled?(c.animate({top:a.eu_cookie_compliance.getBannerTopHiddenPosition(d)},b.eu_cookie_compliance.popup_delay,null).trigger("eu_cookie_compliance_popup_close"),$(".eu-cookie-withdraw-tab").click(a.eu_cookie_compliance.toggleWithdrawBanner)):c.animate({top:a.eu_cookie_compliance.getBannerTopHiddenPosition(d)},b.eu_cookie_compliance.popup_delay,null,function(){c.hide()}).trigger("eu_cookie_compliance_popup_close")}else
+b.eu_cookie_compliance.settings_tab_enabled?(c.animate({bottom:-1*c.outerHeight()},b.eu_cookie_compliance.popup_delay,null).trigger("eu_cookie_compliance_popup_close"),$(".eu-cookie-withdraw-tab").click(a.eu_cookie_compliance.toggleWithdrawBanner)):c.animate({bottom:-1*c.outerHeight()},b.eu_cookie_compliance.popup_delay,null,function(){c.hide()}).trigger("eu_cookie_compliance_popup_close");$("body").removeClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!0).find("a, button,
+input").attr("tabindex",-1)},a.eu_cookie_compliance.withdrawAction=function(){parseInt(b.eu_cookie_compliance.set_cookie_session_zero_on_disagree)&&(b.eu_cookie_compliance.cookie_session=1),a.eu_cookie_compliance.setStatus(null),a.eu_cookie_compliance.setAcceptedCategories([]),location.reload()},a.eu_cookie_compliance.moreInfoAction=function(){b.eu_cookie_compliance.disagree_do_not_show_popup?(a.eu_cookie_compliance.setStatus(w),b.eu_cookie_compliance.withdraw_enabled&&b.eu_cookie_compliance.withdraw_button_on_info_popup?$("#sliding-popup
+.eu-cookie-compliance-banner").trigger("eu_cookie_compliance_popup_close").hide():$("#sliding-popup").trigger("eu_cookie_compliance_popup_close").remove(),$("body").removeClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!0).find("a, button,
+input").attr("tabindex",-1)):b.eu_cookie_compliance.popup_link_new_window?window.open(b.eu_cookie_compliance.popup_link):window.location.href=b.eu_cookie_compliance.popup_link},a.eu_cookie_compliance.getCookieStatus=function(){var
+c=void 0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed":b.eu_cookie_compliance.cookie_name,a=v.get(c);return(void
+0===a||"null"===a)&&(a=null),a},a.eu_cookie_compliance.getCurrentStatus=function(){var b=new D;c.handleEvent("preStatusLoad",b),l=a.eu_cookie_compliance.getCookieStatus();var d=new E;return
+c.handleEvent("postStatusLoad",d),l},a.eu_cookie_compliance.setPreferenceCheckboxes=function(b){for(var d
+in(b.length&&null!==a.eu_cookie_compliance.getCookieStatus()||a.eu_cookie_compliance.getCookieStatus()===w)&&$("#eu-cookie-compliance-categories input:checkbox").removeAttr("checked"),b){var
+c=document.getElementById("cookie-category-"+b[d]);null!==c&&(c.checked=!0)}},a.eu_cookie_compliance.getAcceptedCategories=function(){var e=new H;c.handleEvent("prePreferencesLoad",e);var f=void
+0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed-categories":b.eu_cookie_compliance.cookie_name+"-categories",a=v.get(f);for(var g in
+null!=a?(-1!==a.indexOf("%")&&(a=decodeURI(a).replaceAll(/%2C/g,",")),z=JSON.parse(a)):z=[],b.eu_cookie_compliance.cookie_categories_details){var
+d=b.eu_cookie_compliance.cookie_categories_details[g];"required"===d.checkbox_default_state&& -1===$.inArray(d.id,z)&&z.push(d.id)}var h=new I;return
+c.handleEvent("postPreferencesLoad",h),z},a.eu_cookie_compliance.changeStatus=function(f){var d,j=b.eu_cookie_compliance.reload_page,k=l;if(l!==parseInt(f)){if(b.eu_cookie_compliance.popup_position){let
+g=$("#sliding-popup").outerHeight();b.eu_cookie_compliance.fixed_top_position||$("body").animate({"margin-top":-g+"px"},b.eu_cookie_compliance.popup_delay),$(".sliding-popup-top").animate({top:a.eu_cookie_compliance.getBannerTopHiddenPosition(g)},b.eu_cookie_compliance.popup_delay,function(){f!==x||null!==k||j?k===x&&(b.eu_cookie_compliance.withdraw_enabled&&b.eu_cookie_compliance.withdraw_button_on_info_popup?($("#sliding-popup").hide(),window.matchMedia("(max-width:
+"+b.eu_cookie_compliance.mobile_breakpoint+"px)").matches&&b.eu_cookie_compliance.use_mobile_message?$(".sliding-popup-top").not(".eu-cookie-withdraw-wrapper").html(b.eu_cookie_compliance.mobile_popup_html_info):$(".sliding-popup-top").not(".eu-cookie-withdraw-wrapper").html(b.eu_cookie_compliance.popup_html_info),g=$("#sliding-popup").outerHeight(),b.eu_cookie_compliance.fixed_top_position||$("body").animate({"margin-top":-g+"px"},b.eu_cookie_compliance.popup_delay),$(".sliding-popup-top").css("top",a.eu_cookie_compliance.getBannerTopHiddenPosition(g)),$(".sliding-popup-top").not(".eu-cookie-withdraw-wrapper").trigger("eu_cookie_compliance_popup_close"),a.eu_cookie_compliance.initPopup(),a.eu_cookie_compliance.resizeListener(),$("#sliding-popup").show()):($(".sliding-popup-top").not(".eu-cookie-withdraw-wrapper").trigger("eu_cookie_compliance_popup_close").remove(),$("body").css({"margin-top":"0px"})),$("body").removeClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!0).find("a, button,
+input").attr("tabindex",-1)):(b.eu_cookie_compliance.fixed_top_position||$("body").animate({"margin-top":"0px"},b.eu_cookie_compliance.popup_delay),$(".sliding-popup-top").not(".eu-cookie-withdraw-wrapper").html(b.eu_cookie_compliance.popup_html_agreed).animate({top:a.eu_cookie_compliance.getBannerTopPosition(g)},b.eu_cookie_compliance.popup_delay),a.eu_cookie_compliance.attachHideEvents()),b.eu_cookie_compliance.withdraw_enabled&&!b.eu_cookie_compliance.withdraw_button_on_info_popup&&a.eu_cookie_compliance.showWithdrawBanner(f)})}else
+$(".sliding-popup-bottom").animate({bottom:-1*$("#sliding-popup").outerHeight()},b.eu_cookie_compliance.popup_delay,function(){f!==x||null!==k||j?k===x&&($("#sliding-popup").css("display","none"),b.eu_cookie_compliance.withdraw_enabled&&b.eu_cookie_compliance.withdraw_button_on_info_popup?(window.matchMedia("(max-width:
+"+b.eu_cookie_compliance.mobile_breakpoint+"px)").matches&&b.eu_cookie_compliance.use_mobile_message?$(".sliding-popup-bottom").not(".eu-cookie-withdraw-wrapper").html(b.eu_cookie_compliance.mobile_popup_html_info):$(".sliding-popup-bottom").not(".eu-cookie-withdraw-wrapper").html(b.eu_cookie_compliance.popup_html_info),$(".sliding-popup-bottom").css("bottom",a.eu_cookie_compliance.getBannerBottomHiddenPosition()),$(".sliding-popup-bottom").not(".eu-cookie-withdraw-wrapper").trigger("eu_cookie_compliance_popup_close"),a.eu_cookie_compliance.initPopup(),a.eu_cookie_compliance.resizeListener(),$("#sliding-popup").css("display","block")):$(".sliding-popup-bottom").not(".eu-cookie-withdraw-wrapper").trigger("eu_cookie_compliance_popup_close").remove(),$("body").removeClass("eu-cookie-compliance-popup-open"),$(".eu-cookie-compliance-banner,
+.eu-cookie-withdraw-banner").attr("aria-hidden",!0).find("a, button,
+input").attr("tabindex",-1)):($(".sliding-popup-bottom").not(".eu-cookie-withdraw-wrapper").html(b.eu_cookie_compliance.popup_html_agreed).animate({bottom:0},b.eu_cookie_compliance.popup_delay),a.eu_cookie_compliance.attachHideEvents()),b.eu_cookie_compliance.withdraw_enabled&&!b.eu_cookie_compliance.withdraw_button_on_info_popup&&a.eu_cookie_compliance.showWithdrawBanner(f)});if(b.eu_cookie_compliance.reload_page){if(0!==(d=b.eu_cookie_compliance.reload_routes_list).length){for(var
+h=b.path.currentPath,c=!1,e=0;!c&&e1){var
+i=e.length-1;e.lastIndexOf("/")===i&&(e=e.substring(0,i))}if(parseInt(b.eu_cookie_compliance.cookie_session))v.set(h,d,{path:e,domain:g,sameSite:"strict"});else{var
+m=parseInt(b.eu_cookie_compliance.cookie_lifetime);f.setDate(f.getDate()+m),v.set(h,d,{expires:f,path:e,domain:g,sameSite:"strict"})}var
+j="eu-cookie-compliance-status-"+l;if($("."+j).removeClass(j).addClass("eu-cookie-compliance-status-"+d),l=d,$(document).trigger("eu_cookie_compliance.changeStatus",[d]),a.eu_cookie_compliance.setVersion(),b.eu_cookie_compliance.store_consent&&(d===x&&b.eu_cookie_compliance.popup_agreed_enabled||d===y&&!b.eu_cookie_compliance.popup_agreed_enabled)){var
+n=b.path.baseUrl+b.path.pathPrefix+"eu-cookie-compliance/store_consent/banner";$.post(n,{},function(a){})}var o=new
+G;c.handleEvent("postStatusSave",o),d===w&&"opt_out"===b.eu_cookie_compliance.method&&(u=setInterval(a.eu_cookie_compliance.BlockCookies,5e3))},a.eu_cookie_compliance.setAcceptedCategories=function(d){var j=new
+J;c.handleEvent("prePreferencesSave",j);var e=new Date,f=b.eu_cookie_compliance.domain?b.eu_cookie_compliance.domain:"",a=b.eu_cookie_compliance.domain_all_sites?"/":b.path.baseUrl,g=void
+0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed-categories":b.eu_cookie_compliance.cookie_name+"-categories";if(a.length>1){var
+h=a.length-1;a.lastIndexOf("/")===h&&(a=a.substring(0,h))}var i=JSON.stringify(d);if(parseInt(b.eu_cookie_compliance.cookie_session))v.set(g,i,{path:a,domain:f,sameSite:"strict"});else{var
+k=parseInt(b.eu_cookie_compliance.cookie_lifetime);e.setDate(e.getDate()+k),v.set(g,i,{expires:e,path:a,domain:f,sameSite:"strict"})}z=d,$(document).trigger("eu_cookie_compliance.changePreferences",[d]);var l=new
+K;c.handleEvent("postPreferencesSave",l)},a.eu_cookie_compliance.hasAgreed=function(d){var c=l===x||l===y;return void
+0!==d&&c&&"categories"===b.eu_cookie_compliance.method&&(c=a.eu_cookie_compliance.hasAgreedWithCategory(d)),c},a.eu_cookie_compliance.hasAgreedWithCategory=function(a){return
+-1!==$.inArray(a,z)},a.eu_cookie_compliance.showBanner=function(){var a=!1;return
+l===w&&"default"===b.eu_cookie_compliance.method||null===l?b.eu_cookie_compliance.disagree_do_not_show_popup&&null!==l||(a=!0):l===x&&b.eu_cookie_compliance.popup_agreed_enabled?a=!0:l===y&&b.eu_cookie_compliance.withdraw_enabled&&(a=!0),a},a.eu_cookie_compliance.cookiesEnabled=function(){var
+a=navigator.cookieEnabled;return void
+0!==navigator.cookieEnabled||a||(v.set("testcookie","testcookie",{expires:100,sameSite:"strict"}),a=-1!==v.get("testcookie").indexOf("testcookie")),a},a.eu_cookie_compliance.cookieMatches=function(b,a){if(b===a)return!0;if(0>a.indexOf("*"))return!1;try{return
+new RegExp("^"+a.replace(/\./g,"\\.").replace(/\*/g,".+")+"$","g").test(b)}catch(c){return!1}},a.eu_cookie_compliance.isAllowed=function(e){if(0===e.indexOf("SESS")||0===e.indexOf("SSESS"))return!0;var
+c=b.eu_cookie_compliance.allowed_cookies.split(/\r\n|\n|\r/g);for(var d in c.push(void 0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed":b.eu_cookie_compliance.cookie_name),c.push(void
+0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed-categories":b.eu_cookie_compliance.cookie_name+"-categories"),c.push(void
+0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed-version":b.eu_cookie_compliance.cookie_name+"-version"),c)if("string"==typeof
+c[d]){if(a.eu_cookie_compliance.cookieMatches(e,c[d]))return!0;if("categories"===b.eu_cookie_compliance.method){var f=c[d].indexOf(":");if(-1!==f){var
+g=c[d].substr(0,f),h=c[d].substr(f+1);if(a.eu_cookie_compliance.cookieMatches(e,h)&&a.eu_cookie_compliance.hasAgreedWithCategory(g))return!0}}}return!1},a.eu_cookie_compliance.getVersion=function(){if(!a.eu_cookie_compliance.hasAgreed())return!1;var
+c=void 0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed-version":b.eu_cookie_compliance.cookie_name+"-version";return
+v.get(c)},a.eu_cookie_compliance.setVersion=function(e){if(!a.eu_cookie_compliance.hasAgreed())return!1;var d=new
+Date,f=b.eu_cookie_compliance.domain?b.eu_cookie_compliance.domain:"",c=b.eu_cookie_compliance.domain_all_sites?"/":b.path.baseUrl,g=void
+0===b.eu_cookie_compliance.cookie_name||""===b.eu_cookie_compliance.cookie_name?"cookie-agreed-version":b.eu_cookie_compliance.cookie_name+"-version";if(c.length>1){var h=c.length-1;c.lastIndexOf("/")===h&&(c=c.substring(0,h))}var
+i=void 0!==e?e:b.eu_cookie_compliance.cookie_policy_version;if(parseInt(b.eu_cookie_compliance.cookie_session))v.set(g,i,{path:c,domain:f,sameSite:"strict"});else{var
+j=parseInt(b.eu_cookie_compliance.cookie_lifetime);d.setDate(d.getDate()+j),v.set(g,i,{expires:d,path:c,domain:f,sameSite:"strict"})}};var A=!1,B={};$(function(){void
+0!==b.eu_cookie_compliance&&(a.eu_cookie_compliance.hasAgreed()||null===l&&"opt_in"!==b.eu_cookie_compliance.method&&"categories"!==b.eu_cookie_compliance.method)&&("function"==typeof
+euCookieComplianceLoadScripts&&euCookieComplianceLoadScripts(),A=!0,"categories"===b.eu_cookie_compliance.method&&a.eu_cookie_compliance.loadCategoryScripts(z))}),a.eu_cookie_compliance.BlockCookies=function(){var
+f=a.eu_cookie_compliance.getCookieStatus();if((f===x||f===y)&&"categories"!==b.eu_cookie_compliance.method&& void 0!==u){clearInterval(u);return}var h=v.get();for(var c in h){var
+d=window.location.hostname,e=!1,g=0;if(!a.eu_cookie_compliance.isAllowed(c)){for(;!e&&""!==d;)v.remove(c,{domain:"."+d,path:"/"}),(e=!v.get(c))||(v.remove(c,{domain:d,path:"/"}),e=!v.get(c)),d=-1===(g=d.indexOf("."))?"":d.substring(g+1);e||(document.cookie=c+"=;
+expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;")}}},void
+0===b.eu_cookie_compliance||!b.eu_cookie_compliance.automatic_cookies_removal||("opt_in"!==b.eu_cookie_compliance.method||null!==l&&a.eu_cookie_compliance.hasAgreed())&&("opt_out"!==b.eu_cookie_compliance.method||a.eu_cookie_compliance.hasAgreed()||null===l)&&"categories"!==b.eu_cookie_compliance.method||(u=setInterval(a.eu_cookie_compliance.BlockCookies,5e3));var
+m,d,C=function(g){var c=[];if(void 0!==a.eu_cookie_compliance&& void 0!==a.eu_cookie_compliance.queue&&a.eu_cookie_compliance.queue.length){for(var
+b=0;b').html(html);
- var $banner = $('.eu-cookie-withdraw-banner', $html);
- $html.attr({
- 'id': 'sliding-popup',
- 'role': 'alertdialog',
- 'aria-describedby': 'popup-text',
- });
- $html.addClass('eu-cookie-withdraw-wrapper');
-
- $html.trigger('eu_cookie_compliance_popup_close');
-
- if (!drupalSettings.eu_cookie_compliance.popup_use_bare_css && !drupalSettings.eu_cookie_compliance.popup_use_olivero_css) {
- $banner.height(drupalSettings.eu_cookie_compliance.popup_height)
- .width(drupalSettings.eu_cookie_compliance.popup_width);
- }
- $html.hide();
- var height = 0;
- if (drupalSettings.eu_cookie_compliance.popup_position) {
- $html.prependTo(drupalSettings.eu_cookie_compliance.containing_element);
- height = parseInt($html.outerHeight());
-
- $html.show()
- .addClass('sliding-popup-top')
- .addClass('clearfix')
- .css({ top: Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height)});
- // For some reason, the tab outerHeight is -10 if we don't use a timeout
- // function to reveal the tab.
- setTimeout(function () {
- var height = $html.outerHeight();
-
- $html.animate({ top: Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height) }, drupalSettings.eu_cookie_compliance.popup_delay, null);
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').animate({ 'margin-top': -height + 'px' });
- }
- }.bind($html), 0);
- }
- else {
- if (drupalSettings.eu_cookie_compliance.better_support_for_screen_readers) {
- $html.prependTo(drupalSettings.eu_cookie_compliance.containing_element);
- }
- else {
- $html.appendTo(drupalSettings.eu_cookie_compliance.containing_element);
- }
- height = $html.outerHeight();
- $html.show()
- .addClass('sliding-popup-bottom')
- .css({ bottom: -1 * height });
- // For some reason, the tab outerHeight is -10 if we don't use a timeout
- // function to reveal the tab.
- setTimeout(function () {
- var height = $html.outerHeight();
-
- $html.animate({ bottom: -1 * (height) }, drupalSettings.eu_cookie_compliance.popup_delay, null);
- }.bind($html), 0);
- }
- $('body').removeClass('eu-cookie-compliance-popup-open');
- $banner
- .attr('aria-hidden', true)
- .find('a, button, input')
- .attr('tabindex', -1);
- };
-
- Drupal.eu_cookie_compliance.getBannerTopPosition = function (height) {
- let bannerTopPosition;
- if (drupalSettings.eu_cookie_compliance.fixed_top_position) {
- bannerTopPosition = 0;
- }
- else {
- return 0;
- }
-
- if ($('.toolbar-tray-horizontal.is-active').length) {
- bannerTopPosition += parseInt($('.toolbar-tray-horizontal.is-active').css('height'));
- }
-
- if ($('.toolbar-bar').length && !$('#gin-toolbar-bar').length) {
- bannerTopPosition += parseInt($('.toolbar-bar').css('height'));
- }
-
- return bannerTopPosition + 'px';
- }
-
- Drupal.eu_cookie_compliance.getBannerTopHiddenPosition = function (height) {
- let bannerTopPosition = 0;
- if (drupalSettings.eu_cookie_compliance.fixed_top_position) {
- bannerTopPosition = -height;
- }
- else {
- if ($('.toolbar-tray-horizontal.is-active').length) {
- bannerTopPosition = -parseInt($('.toolbar-tray-horizontal.is-active').css('height'));
- }
-
- if ($('.toolbar-bar').length && !$('#gin-toolbar-bar').length) {
- bannerTopPosition -= parseInt($('.toolbar-bar').css('height'));
- }
- }
-
- return bannerTopPosition + 'px';
- }
-
- Drupal.eu_cookie_compliance.getBannerBottomHiddenPosition = function () {
- return -($('#sliding-popup').outerHeight()) + 'px';
- }
-
- Drupal.eu_cookie_compliance.toggleWithdrawBanner = function () {
- var $wrapper = $('#sliding-popup');
- var height = parseInt($wrapper.outerHeight());
- var bannerIsShowing = ($wrapper.find('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner').is(':visible'));
- if (bannerIsShowing) {
- let bannerTop = parseInt($wrapper.css('top'));
- let containerPadding = parseInt($(drupalSettings.eu_cookie_compliance.containing_element).css('padding-top'));
- let containerMargin = parseInt($(drupalSettings.eu_cookie_compliance.containing_element).css('margin-top'));
-
- if (drupalSettings.eu_cookie_compliance.popup_position) {
- if (drupalSettings.eu_cookie_compliance.fixed_top_position) {
- bannerIsShowing = !(bannerTop === -height);
- }
- else {
- bannerIsShowing = !(bannerTop === -(containerPadding + containerMargin + height));
- }
- }
- else {
- bannerIsShowing = (parseInt($wrapper.css('bottom')) === 0);
- }
- }
- if (drupalSettings.eu_cookie_compliance.popup_position) {
- if (bannerIsShowing) {
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').animate({ 'margin-top': -height + 'px' }, drupalSettings.eu_cookie_compliance.popup_delay);
- }
- $wrapper.animate({ top: Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height) }, drupalSettings.eu_cookie_compliance.popup_delay).trigger('eu_cookie_compliance_popup_close');
- }
- else {
- // If "Do not show cookie policy when the user clicks the Cookie policy button." is
- // selected, the inner banner may be hidden.
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').animate({ 'margin-top': '0px' }, drupalSettings.eu_cookie_compliance.popup_delay);
- }
- $wrapper.find('.eu-cookie-compliance-banner').show();
- $wrapper.animate({ top: Drupal.eu_cookie_compliance.getBannerTopPosition(height) }, drupalSettings.eu_cookie_compliance.popup_delay).trigger('eu_cookie_compliance_popup_open');
- }
- }
- else {
- if (bannerIsShowing) {
- $wrapper.animate({ 'bottom': -1 * (height) }, drupalSettings.eu_cookie_compliance.popup_delay).trigger('eu_cookie_compliance_popup_close');
- }
- else {
- // If "Do not show cookie policy when the user clicks the Cookie policy button." is
- // selected, the inner banner may be hidden.
- $wrapper.find('.eu-cookie-compliance-banner').show();
- $wrapper.animate({ 'bottom': 0 }, drupalSettings.eu_cookie_compliance.popup_delay).trigger('eu_cookie_compliance_popup_open');
- }
- }
- if (bannerIsShowing) {
- $('body').removeClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', true)
- .find('a, button, input')
- .attr('tabindex', -1);
- }
- else {
- $('body').addClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', false)
- .find('a, button, input')
- .attr('tabindex', 0);
- }
- };
-
- Drupal.eu_cookie_compliance.resizeListener = function () {
- var $wrapper = $('#sliding-popup');
-
- var debounce = function (func, wait) {
- var timeout;
-
- return function executedFunction() {
- var later = function () {
- clearTimeout(timeout);
- func();
- };
-
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- };
- };
-
- var checkIfPopupIsClosed = debounce(function () {
- var wrapperHeight = $wrapper.outerHeight();
- if (drupalSettings.eu_cookie_compliance.popup_position) {
- var wrapperTopProperty = parseFloat($wrapper.css('top'));
- if (wrapperTopProperty < 0) {
- if ($('body').hasClass('eu-cookie-compliance-popup-open')) {
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').css({ 'margin-top': '0px' });
- }
- $wrapper.css('top', Drupal.eu_cookie_compliance.getBannerTopPosition(wrapperHeight));
- }
- else {
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').css({ 'margin-top': -wrapperHeight + 'px' });
- }
- $wrapper.css('top', Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(wrapperHeight));
- }
- }
- Drupal.eu_cookie_compliance.positionTab();
- }
- else {
- var wrapperBottomProperty = parseFloat($wrapper.css('bottom'));
- if (wrapperBottomProperty !== 0) {
- $wrapper.css('bottom', wrapperHeight * -1);
- }
- }
- Drupal.eu_cookie_compliance.positionTab();
- }, 50);
-
- setTimeout(function () {
- checkIfPopupIsClosed();
- });
-
- window.addEventListener('resize', checkIfPopupIsClosed);
- };
-
- Drupal.eu_cookie_compliance.createPopup = function (html, closed) {
- // This fixes a problem with jQuery 1.9.
- var popup = $('').html(html);
- popup.attr({
- 'id': 'sliding-popup',
- 'role': 'alertdialog',
- 'aria-describedby': 'popup-text',
- });
- if (!drupalSettings.eu_cookie_compliance.popup_use_bare_css && !drupalSettings.eu_cookie_compliance.popup_use_olivero_css) {
- popup.height(drupalSettings.eu_cookie_compliance.popup_height)
- .width(drupalSettings.eu_cookie_compliance.popup_width);
- }
-
- popup.hide();
- var height = 0;
- if (drupalSettings.eu_cookie_compliance.popup_position) {
- popup.prependTo(drupalSettings.eu_cookie_compliance.containing_element);
- height = popup.outerHeight();
- popup.addClass('sliding-popup-top clearfix')
- .css({ top: Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height) });
-
- if (closed !== true) {
- popup.show();
- popup.animate({top: Drupal.eu_cookie_compliance.getBannerTopPosition(height)}, drupalSettings.eu_cookie_compliance.popup_delay, null, function () {
- popup.trigger('eu_cookie_compliance_popup_open');
- Drupal.eu_cookie_compliance.positionTab();
- });
- }
- else {
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').css({ 'margin-top': -height + 'px' });
- }
- setTimeout(function () {
- popup.show();
- Drupal.eu_cookie_compliance.positionTab();
- }, 0);
- }
- }
- else {
- if (drupalSettings.eu_cookie_compliance.better_support_for_screen_readers) {
- popup.prependTo(drupalSettings.eu_cookie_compliance.containing_element);
- }
- else {
- popup.appendTo(drupalSettings.eu_cookie_compliance.containing_element);
- }
-
- height = popup.outerHeight();
- popup.show()
- .addClass('sliding-popup-bottom')
- .css({bottom: -1 * height});
-
- if (closed !== true) {
- popup.animate({bottom: 0}, drupalSettings.eu_cookie_compliance.popup_delay, null, function () {
- popup.trigger('eu_cookie_compliance_popup_open');
- });
- }
- }
- if (closed !== true) {
- $('body').addClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', false)
- .find('a, button, input')
- .attr('tabindex', 0);
- }
- else {
- $('body').removeClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', true)
- .find('a, button, input')
- .attr('tabindex', -1);
- }
- };
-
- Drupal.eu_cookie_compliance.attachAgreeEvents = function () {
- var clickingConfirms = drupalSettings.eu_cookie_compliance.popup_clicking_confirmation;
- var scrollConfirms = drupalSettings.eu_cookie_compliance.popup_scrolling_confirmation;
-
- if (drupalSettings.eu_cookie_compliance.method === 'categories' && drupalSettings.eu_cookie_compliance.enable_save_preferences_button) {
- // The agree button becomes an agree to all categories button when the 'save preferences' button is present.
- $('.agree-button').click(Drupal.eu_cookie_compliance.acceptAllAction);
- }
- else {
- $('.agree-button').click(Drupal.eu_cookie_compliance.acceptAction);
- }
- $('.decline-button').click(Drupal.eu_cookie_compliance.declineAction);
- $('.eu-cookie-compliance-close-button').click(Drupal.eu_cookie_compliance.closeAction);
- $('.eu-cookie-compliance-reject-button').click(Drupal.eu_cookie_compliance.rejectAllAction);
-
- if (clickingConfirms) {
- $('a, input[type=submit], button[type=submit]').not('.popup-content *').bind('click.euCookieCompliance', Drupal.eu_cookie_compliance.acceptAction);
- }
-
- if (scrollConfirms) {
- var alreadyScrolled = false;
- var scrollHandler = function () {
- if (alreadyScrolled) {
- Drupal.eu_cookie_compliance.acceptAction();
- $(window).off('scroll', scrollHandler);
- }
- else {
- alreadyScrolled = true;
- }
- };
-
- $(window).bind('scroll', scrollHandler);
- }
-
- $('.find-more-button').not('.find-more-button-processed').addClass('find-more-button-processed').click(Drupal.eu_cookie_compliance.moreInfoAction);
- };
-
- Drupal.eu_cookie_compliance.closeAction = function () {
- switch (drupalSettings.eu_cookie_compliance.close_button_action) {
- case 'close_banner':
- Drupal.eu_cookie_compliance.toggleWithdrawBanner();
- break;
-
- case 'save_preferences':
- Drupal.eu_cookie_compliance.savePreferencesAction();
- break;
-
- case 'reject_all_cookies':
- Drupal.eu_cookie_compliance.rejectAllAction();
- break;
-
- case 'accept_all_cookies':
- Drupal.eu_cookie_compliance.acceptAllAction();
- break;
- }
- };
-
- Drupal.eu_cookie_compliance.attachSavePreferencesEvents = function () {
- $('.eu-cookie-compliance-save-preferences-button').click(Drupal.eu_cookie_compliance.savePreferencesAction);
- };
-
- Drupal.eu_cookie_compliance.attachHideEvents = function () {
- var popupHideAgreed = drupalSettings.eu_cookie_compliance.popup_hide_agreed;
- var clickingConfirms = drupalSettings.eu_cookie_compliance.popup_clicking_confirmation;
- $('.hide-popup-button').click(function () {
- Drupal.eu_cookie_compliance.changeStatus(cookieValueAgreed);
- }
- );
- if (clickingConfirms) {
- $('a, input[type=submit], button[type=submit]').unbind('click.euCookieCompliance');
- }
-
- if (popupHideAgreed) {
- $('a, input[type=submit], button[type=submit]').bind('click.euCookieComplianceHideAgreed', function () {
- Drupal.eu_cookie_compliance.changeStatus(cookieValueAgreed);
- });
- }
-
- $('.find-more-button').not('.find-more-button-processed').addClass('find-more-button-processed').click(Drupal.eu_cookie_compliance.moreInfoAction);
- };
-
- Drupal.eu_cookie_compliance.attachWithdrawEvents = function () {
- $('.eu-cookie-withdraw-button').click(Drupal.eu_cookie_compliance.withdrawAction);
- $('.eu-cookie-withdraw-tab').click(Drupal.eu_cookie_compliance.toggleWithdrawBanner);
- };
-
- Drupal.eu_cookie_compliance.acceptAction = function () {
- var agreedEnabled = drupalSettings.eu_cookie_compliance.popup_agreed_enabled;
- var nextStatus = cookieValueAgreedShowThankYou;
- if (!agreedEnabled) {
- Drupal.eu_cookie_compliance.setStatus(cookieValueAgreedShowThankYou);
- nextStatus = cookieValueAgreed;
- }
-
- if (!euCookieComplianceHasLoadedScripts && typeof euCookieComplianceLoadScripts === "function") {
- euCookieComplianceLoadScripts();
- }
-
- if (typeof euCookieComplianceBlockCookies !== 'undefined') {
- clearInterval(euCookieComplianceBlockCookies);
- }
-
- if (drupalSettings.eu_cookie_compliance.method === 'categories') {
- // Select Checked categories.
- var categories = $("#eu-cookie-compliance-categories input:checkbox:checked").map(function () {
- return $(this).val();
- }).get();
- Drupal.eu_cookie_compliance.setAcceptedCategories(categories);
- // Load scripts for all categories. If no categories selected, none
- // will be loaded.
- Drupal.eu_cookie_compliance.loadCategoryScripts(categories);
- if (!categories.length) {
- // No categories selected is the same as declining all cookies.
- nextStatus = cookieValueDisagreed;
- }
- }
-
- Drupal.eu_cookie_compliance.changeStatus(nextStatus);
-
- if (drupalSettings.eu_cookie_compliance.withdraw_enabled && drupalSettings.eu_cookie_compliance.withdraw_button_on_info_popup) {
- Drupal.eu_cookie_compliance.attachWithdrawEvents();
- if (_euccCurrentStatus === cookieValueAgreedShowThankYou || _euccCurrentStatus === cookieValueAgreed) {
- $('.eu-cookie-withdraw-button').removeClass('visually-hidden');
- }
- }
- };
-
- Drupal.eu_cookie_compliance.acceptAllAction = function () {
- var allCategories = drupalSettings.eu_cookie_compliance.cookie_categories;
- Drupal.eu_cookie_compliance.setPreferenceCheckboxes(allCategories);
- Drupal.eu_cookie_compliance.acceptAction();
- }
-
- Drupal.eu_cookie_compliance.rejectAllAction = function () {
- Drupal.eu_cookie_compliance.setPreferenceCheckboxes([]);
- Drupal.eu_cookie_compliance.acceptAction();
- }
-
- Drupal.eu_cookie_compliance.savePreferencesAction = function () {
- var categories = $("#eu-cookie-compliance-categories input:checkbox:checked").map(function () {
- return $(this).val();
- }).get();
- var agreedEnabled = drupalSettings.eu_cookie_compliance.popup_agreed_enabled;
- var nextStatus = cookieValueAgreedShowThankYou;
- if (!agreedEnabled) {
- Drupal.eu_cookie_compliance.setStatus(cookieValueAgreedShowThankYou);
- nextStatus = cookieValueAgreed;
- }
-
- Drupal.eu_cookie_compliance.setAcceptedCategories(categories);
- // Load scripts for all categories. If no categories selected, none
- // will be loaded.
- Drupal.eu_cookie_compliance.loadCategoryScripts(categories);
- if (!categories.length) {
- // No categories selected is the same as declining all cookies.
- nextStatus = cookieValueDisagreed;
- }
-
- Drupal.eu_cookie_compliance.changeStatus(nextStatus);
- };
-
- Drupal.eu_cookie_compliance.loadCategoryScripts = function (categories) {
- for (var cat in categories) {
- if (euCookieComplianceHasLoadedScriptsForCategory[categories[cat]] !== true && typeof euCookieComplianceLoadScripts === "function") {
- euCookieComplianceLoadScripts(categories[cat]);
- euCookieComplianceHasLoadedScriptsForCategory[categories[cat]] = true;
- }
- }
- }
-
- Drupal.eu_cookie_compliance.declineAction = function () {
- var set_cookie_session_zero_on_disagree = parseInt(drupalSettings.eu_cookie_compliance.set_cookie_session_zero_on_disagree);
- if (set_cookie_session_zero_on_disagree) {
- drupalSettings.eu_cookie_compliance.cookie_session = 1;
- }
- Drupal.eu_cookie_compliance.setStatus(cookieValueDisagreed);
- var popup = $('#sliding-popup');
- if (popup.hasClass('sliding-popup-top')) {
- let height = popup.outerHeight();
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').animate({ 'margin-top': -height + 'px' }, drupalSettings.eu_cookie_compliance.popup_delay);
- }
- if (drupalSettings.eu_cookie_compliance.settings_tab_enabled) {
- popup.animate({top: Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height)}, drupalSettings.eu_cookie_compliance.popup_delay, null).trigger('eu_cookie_compliance_popup_close');
- $('.eu-cookie-withdraw-tab').click(Drupal.eu_cookie_compliance.toggleWithdrawBanner);
- }
- else {
- popup.animate({top: Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height)}, drupalSettings.eu_cookie_compliance.popup_delay, null, function () {
- popup.hide();
- }).trigger('eu_cookie_compliance_popup_close');
- }
- }
- else {
- if (drupalSettings.eu_cookie_compliance.settings_tab_enabled) {
- popup.animate({ bottom: popup.outerHeight() * -1 }, drupalSettings.eu_cookie_compliance.popup_delay, null).trigger('eu_cookie_compliance_popup_close');
- $('.eu-cookie-withdraw-tab').click(Drupal.eu_cookie_compliance.toggleWithdrawBanner);
- }
- else {
- popup.animate({ bottom: popup.outerHeight() * -1 }, drupalSettings.eu_cookie_compliance.popup_delay, null, function () {
- popup.hide();
- }).trigger('eu_cookie_compliance_popup_close');
- }
- }
- $('body').removeClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', true)
- .find('a, button, input')
- .attr('tabindex', -1);
- };
-
- Drupal.eu_cookie_compliance.withdrawAction = function () {
- var set_cookie_session_zero_on_disagree = parseInt(drupalSettings.eu_cookie_compliance.set_cookie_session_zero_on_disagree);
- if (set_cookie_session_zero_on_disagree) {
- drupalSettings.eu_cookie_compliance.cookie_session = 1;
- }
- Drupal.eu_cookie_compliance.setStatus(null);
- Drupal.eu_cookie_compliance.setAcceptedCategories([]);
- location.reload();
- };
-
- Drupal.eu_cookie_compliance.moreInfoAction = function () {
- if (drupalSettings.eu_cookie_compliance.disagree_do_not_show_popup) {
- Drupal.eu_cookie_compliance.setStatus(cookieValueDisagreed);
- if (drupalSettings.eu_cookie_compliance.withdraw_enabled && drupalSettings.eu_cookie_compliance.withdraw_button_on_info_popup) {
- $('#sliding-popup .eu-cookie-compliance-banner').trigger('eu_cookie_compliance_popup_close').hide();
- }
- else {
- $('#sliding-popup').trigger('eu_cookie_compliance_popup_close').remove();
- }
- $('body').removeClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', true)
- .find('a, button, input')
- .attr('tabindex', -1);
- }
- else {
- if (drupalSettings.eu_cookie_compliance.popup_link_new_window) {
- window.open(drupalSettings.eu_cookie_compliance.popup_link);
- }
- else {
- window.location.href = drupalSettings.eu_cookie_compliance.popup_link;
- }
- }
- };
-
- Drupal.eu_cookie_compliance.getCookieStatus = function () {
- var cookieName = (typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed' : drupalSettings.eu_cookie_compliance.cookie_name;
- var currentStatus = cookies.get(cookieName);
- if (typeof currentStatus === 'undefined' || currentStatus === 'null') {
- currentStatus = null;
- }
- return currentStatus;
- }
-
- Drupal.eu_cookie_compliance.getCurrentStatus = function () {
- // Make a new observer & fire it to allow other scripts to hook in.
- var preStatusLoadObject = new PreStatusLoad();
- self.handleEvent('preStatusLoad', preStatusLoadObject);
-
- _euccCurrentStatus = Drupal.eu_cookie_compliance.getCookieStatus();
-
- // Make a new observer & fire it to allow other scripts to hook in.
- var postStatusLoadObject = new PostStatusLoad();
- self.handleEvent('postStatusLoad', postStatusLoadObject);
-
- return _euccCurrentStatus;
- };
-
- Drupal.eu_cookie_compliance.setPreferenceCheckboxes = function (categories) {
- if ((categories.length && Drupal.eu_cookie_compliance.getCookieStatus() !== null) || Drupal.eu_cookie_compliance.getCookieStatus() === cookieValueDisagreed) {
- // Unset all categories to prevent a problem where the checkboxes with a
- // default state set would always show up as checked.
- $("#eu-cookie-compliance-categories input:checkbox").removeAttr("checked");
- }
- // Check the appropriate checkboxes.
- for (var i in categories) {
- var categoryElement = document.getElementById('cookie-category-' + categories[i]);
- if (categoryElement !== null) {
- categoryElement.checked = true;
- }
- }
- }
-
- Drupal.eu_cookie_compliance.getAcceptedCategories = function () {
- // Make a new observer & fire it to allow other scripts to hook in.
- var prePreferencesLoadObject = new PrePreferencesLoad();
- self.handleEvent('prePreferencesLoad', prePreferencesLoadObject);
-
- var cookieName = (typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed-categories' : drupalSettings.eu_cookie_compliance.cookie_name + '-categories';
- var storedCategories = cookies.get(cookieName);
-
- if (storedCategories !== null && typeof storedCategories !== 'undefined') {
- // JS cookie introduced unescaped cookie values.
- if (storedCategories.indexOf('%') !== -1) {
- storedCategories = decodeURI(storedCategories).replaceAll(/%2C/g, ',');
- }
- _euccSelectedCategories = JSON.parse(storedCategories);
- }
- else {
- _euccSelectedCategories = [];
- }
-
- // Merge in required categories if not already present. Mimics old
- // logic where "fix first category" changed logic in
- // .hasAgreedWithCategory and this function.
- for (var _categoryName in drupalSettings.eu_cookie_compliance.cookie_categories_details) {
- var _category = drupalSettings.eu_cookie_compliance.cookie_categories_details[_categoryName];
- if (_category.checkbox_default_state === 'required' && $.inArray(_category.id, _euccSelectedCategories) === -1) {
- _euccSelectedCategories.push(_category.id);
- }
- }
-
- // Make a new observer & fire it to allow other scripts to hook in.
- var postPreferencesLoadObject = new PostPreferencesLoad();
- self.handleEvent('postPreferencesLoad', postPreferencesLoadObject);
-
- return _euccSelectedCategories;
- };
-
- Drupal.eu_cookie_compliance.changeStatus = function (value) {
- var reloadPage = drupalSettings.eu_cookie_compliance.reload_page;
- var previousState = _euccCurrentStatus;
- if (_euccCurrentStatus === parseInt(value)) {
- return;
- }
-
- if (drupalSettings.eu_cookie_compliance.popup_position) {
- let height = $('#sliding-popup').outerHeight();
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').animate({ 'margin-top': -height + 'px' }, drupalSettings.eu_cookie_compliance.popup_delay);
- }
- $('.sliding-popup-top').animate({ top: Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height) }, drupalSettings.eu_cookie_compliance.popup_delay, function () {
- if (value === cookieValueAgreedShowThankYou && previousState === null && !reloadPage) {
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').animate({ 'margin-top': '0px' }, drupalSettings.eu_cookie_compliance.popup_delay);
- }
- $('.sliding-popup-top').not('.eu-cookie-withdraw-wrapper').html(drupalSettings.eu_cookie_compliance.popup_html_agreed).animate({ top: Drupal.eu_cookie_compliance.getBannerTopPosition(height) }, drupalSettings.eu_cookie_compliance.popup_delay);
- Drupal.eu_cookie_compliance.attachHideEvents();
- }
- else if (previousState === cookieValueAgreedShowThankYou) {
- if (drupalSettings.eu_cookie_compliance.withdraw_enabled && drupalSettings.eu_cookie_compliance.withdraw_button_on_info_popup) {
- $('#sliding-popup').hide();
- // Restore popup content.
- if (window.matchMedia('(max-width: ' + drupalSettings.eu_cookie_compliance.mobile_breakpoint + 'px)').matches && drupalSettings.eu_cookie_compliance.use_mobile_message) {
- $('.sliding-popup-top').not('.eu-cookie-withdraw-wrapper').html(drupalSettings.eu_cookie_compliance.mobile_popup_html_info);
- }
- else {
- $('.sliding-popup-top').not('.eu-cookie-withdraw-wrapper').html(drupalSettings.eu_cookie_compliance.popup_html_info);
- }
- height = $('#sliding-popup').outerHeight();
- if (!drupalSettings.eu_cookie_compliance.fixed_top_position) {
- $('body').animate({ 'margin-top': -height + 'px' }, drupalSettings.eu_cookie_compliance.popup_delay);
- }
- $('.sliding-popup-top').css('top', Drupal.eu_cookie_compliance.getBannerTopHiddenPosition(height));
- $('.sliding-popup-top').not('.eu-cookie-withdraw-wrapper').trigger('eu_cookie_compliance_popup_close');
- Drupal.eu_cookie_compliance.initPopup();
- Drupal.eu_cookie_compliance.resizeListener();
- $('#sliding-popup').show();
- }
- else {
- $('.sliding-popup-top').not('.eu-cookie-withdraw-wrapper').trigger('eu_cookie_compliance_popup_close').remove();
- $('body').css({ 'margin-top': '0px' });
- }
- $('body').removeClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', true)
- .find('a, button, input')
- .attr('tabindex', -1);
- }
- if (drupalSettings.eu_cookie_compliance.withdraw_enabled && !drupalSettings.eu_cookie_compliance.withdraw_button_on_info_popup) {
- Drupal.eu_cookie_compliance.showWithdrawBanner(value);
- }
- });
- }
- else {
- $('.sliding-popup-bottom').animate({ bottom: $('#sliding-popup').outerHeight() * -1 }, drupalSettings.eu_cookie_compliance.popup_delay, function () {
- if (value === cookieValueAgreedShowThankYou && previousState === null && !reloadPage) {
- $('.sliding-popup-bottom').not('.eu-cookie-withdraw-wrapper').html(drupalSettings.eu_cookie_compliance.popup_html_agreed).animate({ bottom: 0 }, drupalSettings.eu_cookie_compliance.popup_delay);
- Drupal.eu_cookie_compliance.attachHideEvents();
- }
- else if (previousState === cookieValueAgreedShowThankYou) {
- $('#sliding-popup').css('display', 'none');
- if (drupalSettings.eu_cookie_compliance.withdraw_enabled && drupalSettings.eu_cookie_compliance.withdraw_button_on_info_popup) {
- // Restore popup content.
- if (window.matchMedia('(max-width: ' + drupalSettings.eu_cookie_compliance.mobile_breakpoint + 'px)').matches && drupalSettings.eu_cookie_compliance.use_mobile_message) {
- $('.sliding-popup-bottom').not('.eu-cookie-withdraw-wrapper').html(drupalSettings.eu_cookie_compliance.mobile_popup_html_info);
- }
- else {
- $('.sliding-popup-bottom').not('.eu-cookie-withdraw-wrapper').html(drupalSettings.eu_cookie_compliance.popup_html_info);
- }
- $('.sliding-popup-bottom').css('bottom', Drupal.eu_cookie_compliance.getBannerBottomHiddenPosition());
- $('.sliding-popup-bottom').not('.eu-cookie-withdraw-wrapper').trigger('eu_cookie_compliance_popup_close');
- Drupal.eu_cookie_compliance.initPopup();
- Drupal.eu_cookie_compliance.resizeListener();
- $('#sliding-popup').css('display', 'block');
- }
- else {
- $('.sliding-popup-bottom').not('.eu-cookie-withdraw-wrapper').trigger('eu_cookie_compliance_popup_close').remove();
- }
- $('body').removeClass('eu-cookie-compliance-popup-open');
- $('.eu-cookie-compliance-banner, .eu-cookie-withdraw-banner')
- .attr('aria-hidden', true)
- .find('a, button, input')
- .attr('tabindex', -1);
- }
- if (drupalSettings.eu_cookie_compliance.withdraw_enabled && !drupalSettings.eu_cookie_compliance.withdraw_button_on_info_popup) {
- Drupal.eu_cookie_compliance.showWithdrawBanner(value);
- }
- });
- }
-
- if (drupalSettings.eu_cookie_compliance.reload_page) {
- var reloadRoutesList;
- // Checks if there's any route on the settings.
- if ((reloadRoutesList = drupalSettings.eu_cookie_compliance.reload_routes_list).length !== 0) {
- var currentPath = drupalSettings.path.currentPath;
- var match = false;
-
- // If there are routes specified on the settings, it checks if any of
- // it matches with the current path.
- for (var n = 0; !match && n < reloadRoutesList.length; n++) {
- var regExp = new RegExp(reloadRoutesList[n], "g");
- match = currentPath.match(regExp) !== null;
- }
-
- /*
- * It will reload the page whether if the current path matches with one of the specified routes and the
- * reload_options setting is set to "Include", which indicates that all matches should reload; OR if
- * there's no match and the reload_options settings is set to "Exclude", which indicates that if the
- * current path doesn't match with one of the specified routes, it should be reloaded.
- */
- if ((match && !drupalSettings.eu_cookie_compliance.reload_options) || (!match && drupalSettings.eu_cookie_compliance.reload_options)) {
- location.reload();
- }
- }
- // If no routes specified, then the page will be always reloaded.
- else {
- location.reload();
- }
- }
-
- Drupal.eu_cookie_compliance.setStatus(value);
- };
-
- Drupal.eu_cookie_compliance.showWithdrawBanner = function (value) {
- if (value === cookieValueAgreed && drupalSettings.eu_cookie_compliance.withdraw_enabled) {
- if (!drupalSettings.eu_cookie_compliance.withdraw_button_on_info_popup) {
- Drupal.eu_cookie_compliance.createWithdrawBanner(drupalSettings.eu_cookie_compliance.withdraw_markup);
- Drupal.eu_cookie_compliance.resizeListener();
- }
- Drupal.eu_cookie_compliance.attachWithdrawEvents();
- if (drupalSettings.eu_cookie_compliance.popup_position) {
- Drupal.eu_cookie_compliance.positionTab();
- }
- }
- };
-
- Drupal.eu_cookie_compliance.setStatus = function (status) {
- // Make a new observer & fire it to allow other scripts to hook in.
- var preStatusSaveObject = new PreStatusSave();
- self.handleEvent('preStatusSave', preStatusSaveObject);
-
- var date = new Date();
- var domain = drupalSettings.eu_cookie_compliance.domain ? drupalSettings.eu_cookie_compliance.domain : '';
- var path = drupalSettings.eu_cookie_compliance.domain_all_sites ? '/' : drupalSettings.path.baseUrl;
- var cookieName = (typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed' : drupalSettings.eu_cookie_compliance.cookie_name;
- if (path.length > 1) {
- var pathEnd = path.length - 1;
- if (path.lastIndexOf('/') === pathEnd) {
- path = path.substring(0, pathEnd);
- }
- }
-
- var cookie_session = parseInt(drupalSettings.eu_cookie_compliance.cookie_session);
- if (cookie_session) {
- cookies.set(cookieName, status, { path: path, domain: domain, sameSite: 'strict' });
- }
- else {
- var lifetime = parseInt(drupalSettings.eu_cookie_compliance.cookie_lifetime);
- date.setDate(date.getDate() + lifetime);
- cookies.set(cookieName, status, { expires: date, path: path, domain: domain, sameSite: 'strict' });
- }
-
- var currentStatusClass = 'eu-cookie-compliance-status-' + _euccCurrentStatus;
- var nextStatusClass = 'eu-cookie-compliance-status-' + status;
- $('.' + currentStatusClass).removeClass(currentStatusClass).addClass(nextStatusClass)
-
- _euccCurrentStatus = status;
- $(document).trigger('eu_cookie_compliance.changeStatus', [status]);
- // Status set means something happened, update the version.
- Drupal.eu_cookie_compliance.setVersion();
-
- // Store consent if applicable.
- if (drupalSettings.eu_cookie_compliance.store_consent && ((status === cookieValueAgreedShowThankYou && drupalSettings.eu_cookie_compliance.popup_agreed_enabled) || (status === cookieValueAgreed && !drupalSettings.eu_cookie_compliance.popup_agreed_enabled))) {
- var url = drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + 'eu-cookie-compliance/store_consent/banner';
- $.post(url, {}, function (data) { });
- }
-
- // Make a new observer & fire it to allow other scripts to hook in.
- var postStatusSaveObject = new PostStatusSave();
- self.handleEvent('postStatusSave', postStatusSaveObject);
-
- if (status === cookieValueDisagreed && drupalSettings.eu_cookie_compliance.method === 'opt_out') {
- euCookieComplianceBlockCookies = setInterval(Drupal.eu_cookie_compliance.BlockCookies, 5000);
- }
- };
-
- Drupal.eu_cookie_compliance.setAcceptedCategories = function (categories) {
- // Make a new observer & fire it to allow other scripts to hook in.
- var prePreferencesSaveObject = new PrePreferencesSave();
- self.handleEvent('prePreferencesSave', prePreferencesSaveObject);
-
- var date = new Date();
- var domain = drupalSettings.eu_cookie_compliance.domain ? drupalSettings.eu_cookie_compliance.domain : '';
- var path = drupalSettings.eu_cookie_compliance.domain_all_sites ? '/' : drupalSettings.path.baseUrl;
- var cookieName = (typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed-categories' : drupalSettings.eu_cookie_compliance.cookie_name + '-categories';
- if (path.length > 1) {
- var pathEnd = path.length - 1;
- if (path.lastIndexOf('/') === pathEnd) {
- path = path.substring(0, pathEnd);
- }
- }
- var categoriesString = JSON.stringify(categories);
- var cookie_session = parseInt(drupalSettings.eu_cookie_compliance.cookie_session);
- if (cookie_session) {
- cookies.set(cookieName, categoriesString, { path: path, domain: domain, sameSite: 'strict' });
- }
- else {
- var lifetime = parseInt(drupalSettings.eu_cookie_compliance.cookie_lifetime);
- date.setDate(date.getDate() + lifetime);
- cookies.set(cookieName, categoriesString, { expires: date, path: path, domain: domain, sameSite: 'strict' });
- }
- _euccSelectedCategories = categories;
- $(document).trigger('eu_cookie_compliance.changePreferences', [categories]);
-
- // TODO: Store categories with consent if applicable?
- // Make a new observer & fire it to allow other scripts to hook in.
- var postPreferencesSaveObject = new PostPreferencesSave();
- self.handleEvent('postPreferencesSave', postPreferencesSaveObject);
- };
-
- Drupal.eu_cookie_compliance.hasAgreed = function (category) {
- var agreed = (_euccCurrentStatus === cookieValueAgreedShowThankYou || _euccCurrentStatus === cookieValueAgreed);
-
- if (category !== undefined && agreed && drupalSettings.eu_cookie_compliance.method === 'categories') {
- agreed = Drupal.eu_cookie_compliance.hasAgreedWithCategory(category);
- }
-
- return agreed;
- };
-
- Drupal.eu_cookie_compliance.hasAgreedWithCategory = function (category) {
- return $.inArray(category, _euccSelectedCategories) !== -1;
- };
-
- Drupal.eu_cookie_compliance.showBanner = function () {
- var showBanner = false;
- if ((_euccCurrentStatus === cookieValueDisagreed && drupalSettings.eu_cookie_compliance.method === 'default') || _euccCurrentStatus === null) {
- if (!drupalSettings.eu_cookie_compliance.disagree_do_not_show_popup || _euccCurrentStatus === null) {
- showBanner = true;
- }
- }
- else if (_euccCurrentStatus === cookieValueAgreedShowThankYou && drupalSettings.eu_cookie_compliance.popup_agreed_enabled) {
- showBanner = true;
- }
- else if (_euccCurrentStatus === cookieValueAgreed && drupalSettings.eu_cookie_compliance.withdraw_enabled) {
- showBanner = true;
- }
-
- return showBanner;
- };
-
- Drupal.eu_cookie_compliance.cookiesEnabled = function () {
- var cookieEnabled = (navigator.cookieEnabled);
- if (typeof navigator.cookieEnabled === 'undefined' && !cookieEnabled) {
- cookies.set('testcookie', 'testcookie', { expires: 100, sameSite: 'strict' });
- cookieEnabled = (cookies.get('testcookie').indexOf('testcookie') !== -1);
- }
-
- return (cookieEnabled);
- };
-
- Drupal.eu_cookie_compliance.cookieMatches = function (cookieName, pattern) {
- if (cookieName === pattern) {
- return true;
- }
- if (pattern.indexOf('*') < 0) {
- return false;
- }
- try {
- var regexp = new RegExp('^' + pattern.replace(/\./g, '\\.').replace(/\*/g, '.+') + '$', 'g');
- return regexp.test(cookieName);
- }
- catch (err) {
- return false;
- }
- };
-
- Drupal.eu_cookie_compliance.isAllowed = function (cookieName) {
- // Skip the PHP session cookie.
- if (cookieName.indexOf('SESS') === 0 || cookieName.indexOf('SSESS') === 0) {
- return true;
- }
- // Split the allowed cookies.
- var euCookieComplianceAllowlist = drupalSettings.eu_cookie_compliance.allowed_cookies.split(/\r\n|\n|\r/g);
-
- // Add the EU Cookie Compliance cookie.
- euCookieComplianceAllowlist.push((typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed' : drupalSettings.eu_cookie_compliance.cookie_name);
- euCookieComplianceAllowlist.push((typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed-categories' : drupalSettings.eu_cookie_compliance.cookie_name + '-categories');
- euCookieComplianceAllowlist.push((typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed-version' : drupalSettings.eu_cookie_compliance.cookie_name + '-version');
- // Check if the cookie is allowed.
- for (var item in euCookieComplianceAllowlist) {
- // Defensively check types for comparison.
- if (typeof euCookieComplianceAllowlist[item] === "string") {
- if (Drupal.eu_cookie_compliance.cookieMatches(cookieName, euCookieComplianceAllowlist[item])) {
- return true;
- }
- // Handle cookie names that are prefixed with a category.
- if (drupalSettings.eu_cookie_compliance.method === 'categories') {
- var separatorPos = euCookieComplianceAllowlist[item].indexOf(":");
- if (separatorPos !== -1) {
- var category = euCookieComplianceAllowlist[item].substr(0, separatorPos);
- var wlCookieName = euCookieComplianceAllowlist[item].substr(separatorPos + 1);
-
- if (Drupal.eu_cookie_compliance.cookieMatches(cookieName, wlCookieName) && Drupal.eu_cookie_compliance.hasAgreedWithCategory(category)) {
- return true;
- }
- }
- }
- }
- }
-
- return false;
- }
-
- Drupal.eu_cookie_compliance.getVersion = function () {
- // Only get cookie-agreed-version version cookie, if user agreed.
- if (!Drupal.eu_cookie_compliance.hasAgreed()) {
- return false;
- }
-
- var cookieName = (typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed-version' : drupalSettings.eu_cookie_compliance.cookie_name + '-version';
- return cookies.get(cookieName);
- };
-
- Drupal.eu_cookie_compliance.setVersion = function (force_this_version) {
- // Only set cookie-agreed-version version cookie, if user agreed.
- if (!Drupal.eu_cookie_compliance.hasAgreed()) {
- return false;
- }
-
- var date = new Date();
- var domain = drupalSettings.eu_cookie_compliance.domain ? drupalSettings.eu_cookie_compliance.domain : '';
- var path = drupalSettings.eu_cookie_compliance.domain_all_sites ? '/' : drupalSettings.path.baseUrl;
- var cookieName = (typeof drupalSettings.eu_cookie_compliance.cookie_name === 'undefined' || drupalSettings.eu_cookie_compliance.cookie_name === '') ? 'cookie-agreed-version' : drupalSettings.eu_cookie_compliance.cookie_name + '-version';
- if (path.length > 1) {
- var pathEnd = path.length - 1;
- if (path.lastIndexOf('/') === pathEnd) {
- path = path.substring(0, pathEnd);
- }
- }
-
- var eucc_version = (force_this_version !== undefined) ? force_this_version : drupalSettings.eu_cookie_compliance.cookie_policy_version;
- var cookie_session = parseInt(drupalSettings.eu_cookie_compliance.cookie_session);
- if (cookie_session) {
- cookies.set(cookieName, eucc_version, { path: path, domain: domain, sameSite: 'strict' });
- }
- else {
- var lifetime = parseInt(drupalSettings.eu_cookie_compliance.cookie_lifetime);
- date.setDate(date.getDate() + lifetime);
- cookies.set(cookieName, eucc_version, { expires: date, path: path, domain: domain, sameSite: 'strict' });
- }
- };
-
- // Load blocked scripts if the user has agreed to being tracked.
- var euCookieComplianceHasLoadedScripts = false;
- var euCookieComplianceHasLoadedScriptsForCategory = {};
- $(function () {
- if (typeof drupalSettings.eu_cookie_compliance !== 'undefined') {
- if (Drupal.eu_cookie_compliance.hasAgreed()
- || (_euccCurrentStatus === null && drupalSettings.eu_cookie_compliance.method !== 'opt_in' && drupalSettings.eu_cookie_compliance.method !== 'categories')
- ) {
- if (typeof euCookieComplianceLoadScripts === "function") {
- euCookieComplianceLoadScripts();
- }
- euCookieComplianceHasLoadedScripts = true;
-
- if (drupalSettings.eu_cookie_compliance.method === 'categories') {
- Drupal.eu_cookie_compliance.loadCategoryScripts(_euccSelectedCategories);
- }
- }
- }
- });
-
- Drupal.eu_cookie_compliance.BlockCookies = function () {
- var cookieStatus = Drupal.eu_cookie_compliance.getCookieStatus();
- if ((cookieStatus === cookieValueAgreedShowThankYou || cookieStatus === cookieValueAgreed)
- && drupalSettings.eu_cookie_compliance.method !== 'categories') {
- // Stop blocking the cookies if it's already been agreed to (e.g. in a different tab).
- if (typeof euCookieComplianceBlockCookies !== 'undefined') {
- clearInterval(euCookieComplianceBlockCookies);
- return;
- }
- }
- // Load all cookies from jQuery.
- var allCookies = cookies.get();
-
- // Check each cookie and try to remove it if it's not allowed.
- for (var i in allCookies) {
- var remove = true;
- var hostname = window.location.hostname;
- var cookieRemoved = false;
- var index = 0;
-
- remove = !Drupal.eu_cookie_compliance.isAllowed(i);
-
- // Remove the cookie if it's not allowed.
- if (remove) {
- while (!cookieRemoved && hostname !== '') {
- // Attempt to remove.
- cookies.remove(i, { domain: '.' + hostname, path: '/' });
- cookieRemoved = !cookies.get(i);
- if (!cookieRemoved) {
- cookies.remove(i, { domain: hostname, path: '/' });
- cookieRemoved = !cookies.get(i);
- }
-
- index = hostname.indexOf('.');
-
- // We can be on a sub-domain, so keep checking the main domain as well.
- hostname = (index === -1) ? '' : hostname.substring(index + 1);
- }
-
- // Some jQuery Cookie versions don't remove cookies well. Try again
- // using plain js.
- if (!cookieRemoved) {
- document.cookie = i + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;';
- }
- }
- }
- }
-
- // Block cookies when the user hasn't agreed.
- if ((typeof drupalSettings.eu_cookie_compliance !== 'undefined') &&
- drupalSettings.eu_cookie_compliance.automatic_cookies_removal &&
- (
- (drupalSettings.eu_cookie_compliance.method === 'opt_in' && (_euccCurrentStatus === null || !Drupal.eu_cookie_compliance.hasAgreed()))
- || (drupalSettings.eu_cookie_compliance.method === 'opt_out' && !Drupal.eu_cookie_compliance.hasAgreed() && _euccCurrentStatus !== null)
- || (drupalSettings.eu_cookie_compliance.method === 'categories')
- )) {
- euCookieComplianceBlockCookies = setInterval(Drupal.eu_cookie_compliance.BlockCookies, 5000);
- }
-
- /**
- * Filter the event listeners by event name and return the list of handlers.
- *
- * @param forEventName
- *
- * @returns {[]}
- */
- var filterQueue = function (forEventName) {
- var handlers = [];
- if (typeof Drupal.eu_cookie_compliance !== 'undefined' &&
- typeof Drupal.eu_cookie_compliance.queue !== 'undefined' &&
- Drupal.eu_cookie_compliance.queue.length) {
- // Loop over the list of arguments (objects) pushed into the queue.
- for (var i = 0; i < Drupal.eu_cookie_compliance.queue.length; i++) {
- if (Drupal.eu_cookie_compliance.queue[i].length) {
- var queueItem = Drupal.eu_cookie_compliance.queue[i];
- var eventName = queueItem[0];
- var eventHandler = queueItem[1];
- // If the first element is a string and the second is a function.
- if (typeof eventName === 'string' && typeof eventHandler === 'function') {
- // And the string matches the event name.
- if (eventName === forEventName) {
- // Return the functions so they can be executed.
- handlers.push(eventHandler);
- }
- }
- }
- }
- }
- return handlers;
- }
-
- /**
- * Handle event by finding and executing handlers pushed to the queue.
- */
- self.handleEvent = function (eventName, observer) {
- var handlers = filterQueue(eventName);
- for (var i = 0; i < handlers.length; i++) {
- if (typeof handlers[i] !== 'undefined') {
- observer.subscribe(handlers[i]);
- observer.fire({
- currentStatus: _euccCurrentStatus,
- currentCategories: _euccSelectedCategories
- });
- observer.unsubscribe(handlers[i]);
- }
- }
- };
-
- /**
- * Observer: triggered before status gets read from cookie.
- */
- var PreStatusLoad = (function () {
- // Constructor.
- var PreStatusLoad = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = PreStatusLoad.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return PreStatusLoad;
- })();
-
- /**
- * Observer: when status was read from cookie and stored in private variable.
- */
- var PostStatusLoad = (function () {
- // Constructor.
- var PostStatusLoad = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = PostStatusLoad.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return PostStatusLoad;
- })();
-
- /**
- * Observer: triggered before status gets saved into cookie.
- */
- var PreStatusSave = (function () {
- // Constructor.
- var PreStatusSave = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = PreStatusSave.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return PreStatusSave;
- })();
-
- /**
- * Observer: triggered after status was saved into cookie.
- */
- var PostStatusSave = (function () {
- // Constructor.
- var PostStatusSave = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = PostStatusSave.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return PostStatusSave;
- })();
-
- /**
- * Observer: triggered before categories are read from cookie.
- */
- var PrePreferencesLoad = (function () {
- // Constructor.
- var prePreferencesLoad = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = prePreferencesLoad.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return prePreferencesLoad;
- })();
-
- /**
- * Observer: triggered after categories were read from cookie.
- */
- var PostPreferencesLoad = (function () {
- // Constructor.
- var postPreferencesLoad = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = postPreferencesLoad.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return postPreferencesLoad;
- })();
-
- /**
- * Observer: triggered before categories are being saved to cookie.
- */
- var PrePreferencesSave = (function () {
- // Constructor.
- var prePreferencesSave = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = prePreferencesSave.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return prePreferencesSave;
- })();
-
- /**
- * Observer: triggered after categories were saved to cookie.
- */
- var PostPreferencesSave = (function () {
- // Constructor.
- var postPreferencesSave = function () {
- // Observers.
- this.handlers = [];
- };
- // Convenience var for the prototype.
- var prototype = postPreferencesSave.prototype;
- prototype.subscribe = function (fn) {
- this.handlers.push(fn);
- };
- prototype.unsubscribe = function (fn) {
- this.handlers = this.handlers.filter(
- function (item) {
- if (item !== fn) {
- return item;
- }
- }
- );
- };
- prototype.fire = function (o, thisObj) {
- var scope = thisObj || window;
- this.handlers.forEach(function (item) {
- item.call(scope, o);
- });
- };
- return postPreferencesSave;
- })();
-
-})(jQuery, Drupal, drupalSettings, window.Cookies);