PageSourceSearch

https://www.kreis-kleve.de/modules/contrib/cookies/js/cookies.lib.js?v=10.6.17

js kreis-kleve.de collected 2026-09-24 23:19:06 UTC 7,803 bytes, 166 lines download raw bytes

1/**
2 * @todo Remove code if IE11 not supported anymore.
3 * Polyfill for CustomEvent constructor. Required for IE9-11.
4 * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill
5 */
6
7(function () {
8  if (typeof window.CustomEvent === "function") return false;
9  function CustomEvent(event, params) {
10    params = params || { bubbles: false, cancelable: false, detail: null };
11    var evt = document.createEvent('CustomEvent');
12    evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
13    return evt;
14  }
15  window.CustomEvent = CustomEvent;
16})();
17
18(function (Drupal, $, drupalSettings) {
19  function ucfirst(string) {
20    return string.charAt(0).toUpperCase() + string.slice(1);
21  }
22
23  $.fn.extend({
24    cookiesOverlay: function (serviceId) {
25      return this.each(function () {
26        // Define default classes.
27        var classStr = 'cookies-fallback';
28        var baseStr = classStr + '--' + serviceId;
29        var classes = [classStr, baseStr];
30        // Define basic elements.
31        var $element = $(this);
32        var $elementWrapper = $element.parent();
33        if (!($element.parent().hasClass(baseStr + '--wrap'))) {
34          // Create and get the wrapper element. Caution, wrap returns the original set of elements:
35          $elementWrapper = $element.wrapAll("<div />").parent().addClass(baseStr + '--wrap');
36        }
37        if ($element.data('status') !== 'fallback') {
38          $element.data('status', 'fallback').addClass(classStr + '--element');
39          var $fallback = $('<div />
39').addClass(classes.join(' '));
40          $fallback.addClass(baseStr + '--overlay')
41          // Create text box.
42          var $textbox = $('<div />').addClass('cookies-fallback--text');
43          $textbox.text(drupalSettings.cookies.services[serviceId].placeholderMainText);
44
45          // Create Button to only accept current service (e.g. video only)
46          var $button = $('<button />').addClass(baseStr + '--btn ' + classStr + '--btn');
47          $button.text(drupalSettings.cookies.services[serviceId].placeholderAcceptText);
48
49          // Add link behaviors: Dispatch Event, Remove class disabled from wrapper, set element status active.
50          $button.on('click', function (event) {
51            event.preventDefault();
52            var services = {};
53            services[serviceId] = true;
54            document.dispatchEvent(new CustomEvent('cookiesjsrSetService', { detail: { services } }));
55          });
56
57          // Create link to accept all cookies for all services
58          var $acceptLink = $('<a href="#cookiesjsrAccept"/>').addClass(classStr + '--link');
59          $acceptLink.text(drupalSettings.cookies.cookiesTexts.placeholderAcceptAllText);
60          // Add link behaviors: Dispatch Event, Remove class disabled from wrapper, set element status active.
61          $acceptLink.on('click', function (event) {
62            event.preventDefault();
63            document.dispatchEvent(new CustomEvent('cookiesjsrSetService', { detail: { all: true } }));
64          });
65
66          // Remove fallback overlay when service becomes enabled.
67          document.addEventListener('cookiesjsrUserConsent', function (event) {
68            var service = (typeof event.detail.services === 'object') ? event.detail.services : {};
69            if (typeof service[serviceId] !== 'undefined' && service[serviceId]) {
70              var $wrapper = $element.parent('.' + baseStr + '--wrap');
71              $element.data('status', 'active');
72              // remove wrapper and overlay:
73              $wrapper.after($element);
74              $wrapper.remove();
75            }
76          })
77
78          // Build overlay.
79          $fallback.append($textbox);
80          $fallback.append($button);
81          $fallback.append($acceptLink);
82          // Put overlay to page.
83          $elementWrapper.append($fallback);
84        }
85        if (!$elementWrapper.is('.disabled')) {
86          var wrapperClasses = classes.map(function (c) { return c + '--wrap' });
87          wrapperClasses.push('disabled');
88          $elementWrapper.addClass(wrapperClasses.join(' '));
89        }
90      });
91    },
92    // @todo This is currently only used for "cookies_filter". As a
93    // cookies_filter does not have custom "placeholderMainText" nor a
94    // custom "placeholderAcceptText", this should be resolved in the future!
95    cookiesLegacyOverlay: function (serviceName) {
96      return this.each(function () {
97        // Define default classes.
98        var classStr = 'cookies-fallback';
99        var baseStr = classStr + '--' + serviceName;
100        var classes = [classStr, baseStr];
101        // Define basic elements.
102        var $element = $(this);
103        var $elementWrapper = $element.parent();
104        if (!($element.parent().hasClass(baseStr + '--wrap'))) {
105          // Create and get the wrapper element. Caution, wrap returns the original set of elements:
106          $elementWrapper = $element.wrapAll("<div />").parent().addClass(baseStr + '--wrap');
107        }
108        if ($element.data('status') !== 'fallback') {
109          $element.data('status', 'fallback').addClass(classStr + '--element');
110          var $fallback = $('<div />
110').addClass(classes.join(' '));
111          $fallback.addClass(baseStr + '--overlay')
112          // Create text box.
113          var $textbox = $('<div />').addClass('cookies-fallback--text');
114          $textbox.text(Drupal.t('This content is blocked because @service cookies have not been accepted.',
115            { '@service': ucfirst(serviceName) }));
116          // Create Button.
117          var $button = $('<button />').addClass(baseStr + '--btn ' + classStr + '--btn');
118          $button.text(drupalSettings.cookies.cookiesTexts.placeholderAcceptAllText);
119
120          // Add link behaviors: Dispatch Event, Remove class disabled from wrapper, set element status active.
121          $button.on('click', function (event) {
122            event.preventDefault();
123            document.dispatchEvent(new CustomEvent('cookiesjsrSetService', { detail: { all: true } }));
124          });
125
126          // Create link.
127          var $acceptLink = $('<a href="#cookiesjsrAccept"/>').addClass(classStr + '--link');
128          $acceptLink.text(Drupal.t('Only accept @service cookies', { '@service': ucfirst(serviceName) }));
129          // Add link behaviors: Dispatch Event, Remove class disabled from wrapper, set element status active.
130          $acceptLink.on('click', function (event) {
131            event.preventDefault();
132            var services = {};
133            services[serviceName] = true;
134            document.dispatchEvent(new CustomEvent('cookiesjsrSetService', { detail: { services } }));
135          });
136
137          // Remove fallback overlay when service becomes enabled.
138          document.addEventListener('cookiesjsrUserConsent', function (event) {
139            var service = (typeof event.detail.services === 'object') ? event.detail.services : {};
140            if (typeof service[serviceName] !== 'undefined' && service[serviceName]) {
141              var $wrapper = $element.parent('.' + baseStr + '--wrap');
142              $element.data('status', 'active');
143              // remove wrapper and overlay:
144              $wrapper.after($element);
145              $wrapper.remove();
146            }
147          })
148
149          // Build overlay.
150          $fallback.append($textbox);
151          $fallback.append($button);
152          $fallback.append($acceptLink);
153          // Put overlay to page.
154          $elementWrapper.append($fallback);
155        }
156        if (!$elementWrapper.is('.disabled')) {
157          var wrapperClasses = classes.map(function (c) { return c + '--wrap' });
158          wrapperClasses.push('disabled');
159          $elementWrapper.addClass(wrapperClasses.join(' '));
160        }
161      });
162    }
163  });
164}
165
166)(Drupal, jQuery, drupalSettings);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.