PageSourceSearch

https://www.toalhasatlantica.com.br/assets/plugins/gdpr/gdpr-cookie.js

js toalhasatlantica.com.br collected 2026-10-05 18:38:18 UTC 18,549 bytes, 428 lines download raw bytes

1/*!
2 * gdpr-cookie - A jQuery plugin to manage cookie settings in compliance with EU law
3    https://github.com/acoustep/gdpr-cookie
4 *
5 * Copyright (c) 2018 Martijn Saly
6 *
7 * Licensed under the MIT license:
8 *   http://www.opensource.org/licenses/mit-license.php
9 *
10 * Version: 0.2.0
11 *
12 */
13    ;(function(root, factory) {
14        if (typeof define === "function" && define.amd) {
15            // AMD
16            define([ "jquery" ], factory);
17        }
18        else if (typeof module === "object" && module.exports) {
19            // CommonJS
20            module.exports = function( root, jQuery ) {
21                if (jQuery === undefined) {
22                    if (typeof window !== "undefined") {
23                        jQuery = require("jquery");
24                    }
25                    else {
26                        jQuery = require("jquery")(root);
27                    }
28                }
29                factory(jQuery);
30                return jQuery;
31            };
32        }
33        else {
34            // Plain
35            factory(root.jQuery);
36        }
37    }(this, function($) {
38        "use strict";
39        
40        var settings, showing = false, display, isAdvanced = false, seenAdvanced = false;
41    
42        var setCookie = function(name, value, expires) {
43            var d = new Date();
44            d.setTime(d.getTime() + expires * 24 * 60 * 60 * 1000);
45            document.cookie = name + "=" + value + ";expires=" + d.toUTCString() + ";path=/";
46            return getCookie(name);
47        };
48    
49        var getCookie = function(name) {
50            var ca = decodeURIComponent(document.cookie).split(";");
51            name += "=";
52            for (var i = 0; i < ca.length; i++) {
53                var c = ca[i];
54                while (c.charAt(0) == " ") {
55                    c = c.substring(1);
56                }
57                if (c.indexOf(name) === 0) {
58                    return c.substring(name.length, c.length);
59                }
60            }
61        };
62        
63        var validateCookieName = function(name) {
64            // Cookie name may consist of \u0021-\u007e, excluding whitespace and characters , ; =
65            return name.replace(/[^\u0021-\u007e]|[,;=\s]/g, "");
66        };
67        
68        var getPreferences = function() {
69            var preferences = getCookie(settings.cookieName);
70            try {
71                preferences = JSON.parse(preferences);
72            }
73            catch(ex) {
74                return;
75            }
76    
77            if (!Array.isArray(preferences) || !preferences.length) {
78                return;
79            }
80            
81            var knownTypes = settings.cookieTypes.map(function(type) {
82                return type.value;
83            });
84            preferences = preferences.filter(function(pref) {
85                return knownTypes.indexOf(pref) >= 0;
86            });
87            
88            return preferences;
89        };
90        
91        $.gdprcookie = { };
92            
93        $.gdprcookie.init = function(options) {
94            
95            // Define defaults
96            var defaultSettings = {
97                cookieTypes: [
98                    {
99                        type: "Necessários",
100                        value: "essential",
101                        description: "Estes cookies são essenciais e necesários para que o site funcione corretamente.",
102                        checked: true,
103                    },
104                    {
105                        type: "Personalização",
106                        value: "preferences",
107                        description: "Estes cookies guardam suas opções de preferência.",
108                        checked: true,
109                    },
110                    {
111                        type: "Estatística",
112                        value: "analytics",
113                        description: "Cookies relacionados à metricas e estatísticas de utilização do site.",
114                        checked: true,
115                    },
116                    {
117                        type: "Publicidade",
118                        value: "marketing",
119                        description: "Cookies relacionados à exibição de conteúdo de marketing.",
120                        checked: true,
121                    }
122                ],
123                title: "Cookies & Privacidade",
124                subtitle: "Selecione os cookies que deseja consentir",
125                message: "Cookies enable you to use shopping carts and to personalize your experience on our sites, tell us which parts of our websites people have visited, help us measure the effectiveness of ads and web searches, and give us insights into user behaviour so we can improve our communications and products.",
126                submessage: "",
127                delay: 2000,
128                expires: 30,
129                cookieName: "cookieControlPrefs",
130                acceptReload: false,
131                acceptBeforeAdvanced: [ "essential" ],
132                acceptAfterAdvanced: [ "essential" ],
133                allowUnadvanced: false,
134                switchAdvanced: false,
135                acceptBtnLabel: "Aceitar cookies",
136                advancedBtnLabel: "Gerenciar",
137                acceptBtnLabelWhenClose: "",
138                customShowMessage: undefined,
139                customHideMessage: undefined,
140                customShowChecks: undefined,
141                customHideChecks: undefined
142            };
143    
144            // Set defaults
145            settings = $.extend(defaultSettings, window.GdprCookieSettings, options);
146            
147            // Coerce into a string because this is poured into innerHTML
148            settings.message = String(settings.message);
149            
150            // Coerce into a positive number because it is passed to setTimeout
151            settings.delay = Math.max(0, +settings.delay) || 0;
152            
153            // Coerce into a positive whole number between 0 and 730 (2-ish years), to ensure a well-formed cookie value
154            settings.expires = Math.round(Math.min(Math.max(0, +settings.expires), 730)) || 0; 
155            
156            // Coerce cookieTypes into an array containing plain objects
157            if (Array.isArray(settings.cookieTypes)) {
158                settings.cookieTypes = settings.cookieTypes.filter(function(cookieType) {
159                    return $.isPlainObject(cookieType);
160                });
161                if (!settings.cookieTypes.length) {
162                    settings.cookieTypes = defaultSettings.cookieTypes;
163                }
164            }
165            else {
166                settings.cookieTypes = defaultSettings.cookieTypes;
167            }
168            
169            // Coerce into a string and valid cookie name
170            settings.cookieName = validateCookieName(String(settings.cookieName || "")) || "cookieControlPrefs";
171            
172            // Coerce acceptBeforeAdvanced and acceptAfterAdvanced into arrays of str
172ings, that exist in settings.cookieTypes[].value
173            var coerce = (function() {
174                var values = settings.cookieTypes.map(function(cookieType) { return cookieType.value; }),
175                    exists = function(item) { return values.indexOf(item) >= 0; };
176                
177                return function(setting) {
178                    // Convert a single string into an array of 1
179                    setting = typeof setting === "string" ? [ setting ] : setting;
180    
181                    // If it's an array, make sure it only contains known cookie types
182                    return Array.isArray(setting) ? setting.map(String).filter(exists) : undefined;
183                };
184            }());
185            settings.acceptBeforeAdvanced = coerce(settings.acceptBeforeAdvanced);
186            settings.acceptAfterAdvanced = coerce(settings.acceptAfterAdvanced);
187            
188            $(function() { display(); });
189        };
190        
191        display = function(alwaysShow) {
192            if (showing) {
193                return;
194            }
195            
196            var body = $("body"),
197                myCookiePrefs = getPreferences();
198            
199            var elements = {
200                container: undefined,
201                introContainer: undefined,
202                types: undefined,
203                typesContainer: undefined,
204                buttons: { 
205                    accept: undefined, 
206                    advanced: undefined 
207                },
208                allChecks: [ ],
209                nonessentialChecks: [ ]
210            };
211                
212            var hide = function(canreload) {
213                if (elements.container) {
214                    if ($.isFunction(settings.customHideMessage)) {
215                        settings.customHideMessage.call(elements.container, elements.container);
216                        showing = false;
217                    }
218                    else {
219                        elements.container.fadeOut("fast", function() {
220                            $(this).remove();
221                            showing = false;
222                        });
223                    }
224                }
225                if (canreload && settings.acceptReload) {
226                    document.location.reload();
227                }
228            };
229            
230            if (!Array.isArray(myCookiePrefs) || !myCookiePrefs.length) {
231                myCookiePrefs = undefined;
232            }
233    
234            if (alwaysShow || !myCookiePrefs) {
235                elements.types = $("<ul/>").append(
236                    $.map(settings.cookieTypes, function(field, index) {
237                        if (!field.type || !field.value) {
238                            return;
239                        }
240                        var isEssential = field.value === "essential",
241                            isChecked;
242                        
243                        if (Array.isArray(myCookiePrefs)) {
244                            isChecked = myCookiePrefs.indexOf(field.value) >= 0;
245                        }
246                        else {
247                            isChecked = field.checked === true;
248                        }
249                        
250                        var input = $("<input/>", {
251                            type: "checkbox",
252                            id: "gdpr-cookietype-" + index,
253                            name: "gdpr[]",
254                            value: field.value,
255    
256                            // The essential cookies checkbox is checked and cannot be unchecked
257                            checked: isEssential || isChecked,
258                            disabled: isEssential
259                        });
260                        
261                        elements.allChecks.push(input.get(0));
262                        if (!isEssential) {
263                            elements.nonessentialChecks.push(input.get(0));
264                        }
265                        
266                        var label = $("<label/>", {
267                            "for": "gdpr-cookietype-" + index,
268                            text: field.type,
269                            title: field.description
270                        });
271    
272                        return $("<li/>").append([
273                            input.get(0),
274                            label.get(0)
275                        ]).get(0);
276                    })
277                );
278                elements.allChecks = $(elements.allChecks);
279                elements.nonessentialChecks = $(elements.nonessentialChecks);
280                
281                // When accept button is clicked drop cookie
282                var acceptClick = function() {
283                    var prefsFromCheckboxes = function() {
284                        return elements.allChecks
285                            .filter(function() { return this.checked || this.disabled; })
286                            .map(function() { return this.value; })
287                            .get();
288                    };
289                    var prefsOutsideAdvanced = function(where) {
290                        var setting = "accept" + where + "Advanced";
291                        return Array.isArray(settings[setting]) ? settings[setting] : prefsFromCheckboxes();
292                    };
293                    
294                    // Hide the cookie message
295                    hide(true);
296    
297                    // Save user cookie preferences (in a cookie!)
298                    var prefs = isAdvanced ? prefsFromCheckboxes() : prefsOutsideAdvanced(seenAdvanced ? "After" : "Before");
299                    setCookie(settings.cookieName, JSON.stringify(prefs), settings.expires);
300    
301                    // Trigger cookie accept event
302                    body.trigger("gdpr:accept");
303                };
304                
305                // Toggle advanced cookie options
306                var advancedClick = function() {
307                    var showAdvanced = function() {
308                        if (!settings.allowUnadvanced) {
309                            elements.buttons.advanced.prop("disabled", true);
310                        }
311    
312                        if ($.isFunction(settings.customShowChecks)) {
313                            settings.customShowChecks.call(elements.typesContainer, elements.typesContainer, elements.introContainer);
314                        }
315                        else {
316                            if (settings.switchAdvanced) {
317                                elements.introContainer.slideUp("fast");
318                            }
319                            elements.typesContainer.slideDown("fast");
320                        }
321    
322                        isAdvanced = seenAdvanced = true;
323                        if (settings.allowUnadvanced && settings.unadvancedBtnLabel && settings.advancedBtnLabel !== settings.unadvancedBtnLabel) {  
324                            elements.buttons.advanced.text(settings.unadvancedBtnLabel);
325                        }
326    
327                        // Trigger advanced show event
328                        body.trigger("gdpr:advanced");
329                    };
330                    var hideAdvanced = function() {
331                        if ($.isFunction(settings.customHideChecks)) {
332                            settings.customHideChecks.call(elements.typesContainer, elements.typesContainer, elements.introContainer);
333                        }
334                        else {
335                            if (settings.switchAdvanced) {
336                                elements.introContainer.slideDown("fast");
337                            }
338                            elements.typesContainer.slideUp("fast");
339                        }
340    
341                        isAdvanced = false;
342                        if (settings.allowUnadvanced && settings.unadvancedBtnLabel && settings.advancedBtnLabel !== settings.unadvancedBtnLabel) {  
343                            elements.buttons.advanced.text(settings.advancedBtnLabel);
344                        }
345                        
346                        // Trigger advanced show event
347                        body.trigger("gdpr:unadvanced");
348                    };
349                    
350                    if (isAdvanced) {
351                        if (settings.allowUnadvanced) {
352                            hideAdvanced();
353                        }
354                    }
355                    else {
356                        showAdvanced();
357                    }
358                };
359                
360                // Build cookie message to display later on
361                var cookieMessage = (elements.container = $("<div class='gdprcookie'>")).append([
362                    (elements.introContainer = $("<div class='gdprcookie-intro'>")).append([
363                        settings.title ? $("<h1/>", { text: settings.title }).get(0) : undefined,
364                        settings.message ? $("<p/>", { html: settings.message }).get(0) : undefined,
365                        settings.submessage ? $("<div/>", { html: settings.submessage }).get(0) : undefined
366                    ]).get(0),
367                    (elements.typesContainer = $("<div class='gdprcookie-types'>")).hide().append([
368                        settings.subtitle ? $("<h2/>", { text: settings.subtitle }).get(0) : undefined,
369                        elements.types.get(0)
370                    ]).get(0),
371                    $("<div class='gdprcookie-buttons'>").append([
372                        (elements.buttons.accept = $("<button/>", { type: "button", text: settings.acceptBtnLabel, click: acceptClick })).get(0),
373                        (elements.buttons.accept = $("<button/>", { type: "button", class: "acceptWhenCloseLGPD",text: settings.acceptBtnLabelWhenClose, click: acceptClick })).get(0),
374                        (elements.buttons.advanced = $("<button/>", { type: "button", text: settings.advancedBtnLabel, click: advancedClick })).get(0)
375                    ]).get(0)
376                ]);
377                
378                var show = function() {
379                    body.append(cookieMessage);
380                    showing = true;
381                    isAdvanced = seenAdvanced = false;
382                    if ($.isFunction(settings.customShowMessage)) {
383                        settings.customShowMessage.call(elements.container, elements.container);
384                    }
385                    else {
386                        elements.container.hide().fadeIn("slow");
387                    }
388                    
389                    // Trigger container show event
390                    body.trigger("gdpr:show");
391                };
392                
393                if (!settings.delay || alwaysShow) {
394                    show();
395                }
396                else {
397                    window.setTimeout(show, settings.delay);
398                }
399            }
400            else {
401                hide(false);
402            }
403        };
404        
405        $.gdprcookie.display = function() {
406            display(true);
407        };
408    
409        // Method to check if user cookie preference exists
410        $.gdprcookie.preference = function(value) {
411            var preferences = getPreferences();
412            
413            if (value === "essential") {
414                return true;
415            }
416            else if (!preferences) {
417                return false;
418            }
419            else if (value !== undefined) {
420                return preferences.indexOf(value) >= 0;
421            }
422            return preferences;
423        };
424        
425        // Protection against malicious scripts, e.g. monkey patching
426        $.gdprcookie = Object.freeze($.gdprcookie);
427    
428    }));

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.