PageSourceSearch

https://www.thechilicool.com/wp-content/plugins/wp-gdpr-compliance/assets/js/front.js?ver=1571994227

js thechilicool.com collected 2026-10-02 10:31:11 UTC 16,818 bytes, 389 lines download raw bytes

1(function (window, document, undefined) {
2    'use strict';
3
4    if (typeof wpgdprcData === 'undefined') {
5        return;
6    }
7
8    /**
9     * @param name
10     * @returns {*}
11     * @private
12     */
13    var _readCookie = function (name) {
14            if (name) {
15                for (var e = encodeURIComponent(name) + '=', o = document.cookie.split(';'), r = 0; r < o.length; r++) {
16                    for (var n = o[r]; ' ' === n.charAt(0);) {
17                        n = n.substring(1, n.length);
18                    }
19                    if (n.indexOf(e) === 0) {
20                        return decodeURIComponent(n.substring(e.length, n.length));
21                    }
22                }
23            }
24            return null;
25        },
26        /**
27         * @param name
28         * @param data
29         * @param days
30         * @private
31         */
32        _saveCookie = function (name, data, days) {
33            var date = new Date();
34            data = (data) ? data : '';
35            days = (days) ? days : 365;
36            date.setTime(date.getTime() + 24 * days * 60 * 60 * 1e3);
37            document.cookie = name + '=' + encodeURIComponent(data) + '; expires=' + date.toGMTString() + '; path=' + path;
38        },
39        /**
40         * @param data
41         * @returns {string}
42         * @private
43         */
44        _objectToParametersString = function (data) {
45            return Object.keys(data).map(function (key) {
46                var value = data[key];
47                if (typeof value === 'object') {
48                    value = JSON.stringify(value);
49                }
50                return key + '=' + value;
51            }).join('&');
52        },
53        /**
54         * @param $checkboxes
55         * @returns {Array}
56         * @private
57         */
58        _getValuesByCheckedBoxes = function ($checkboxes) {
59            var output = [];
60            if ($checkboxes.length) {
61                $checkboxes.forEach(function (e) {
62                    var value = parseInt(e.value);
63                    if (e.checked && value > 0) {
64                        output.push(value);
65                    }
66                });
67            }
68            return output;
69        },
70        ajaxLoading = false,
71        ajaxURL = wpgdprcData.ajaxURL,
72        ajaxSecurity = wpgdprcData.ajaxSecurity,
73        isMultisite = wpgdprcData.isMultisite,
74        blogId = wpgdprcData.blogId,
75        path = wpgdprcData.path,
76        consents = (typeof wpgdprcData.consents !== 'undefined') ? wpgdprcData.consents : [],
77        consentCookieName,
78        consentCookie,
79        /**
80         * @param data
81         * @param values
82         * @param $form
83         * @param delay
84         * @private
85         */
86        _doAjax = function (data, values, $form, delay) {
87            var $feedback = $form.querySelector('.wpgdprc-message'),
88                value = values.slice(0, 1);
89            if (value.length > 0) {
90                var $row = $form.querySelector('tr[data-id="' + value[0] + '"]');
91                $row.classList.remove('wpgdprc-status--error');
92                $row.classList.add('wpgdprc-status--processing');
93                $feedback.setAttribute('style', 'display: none;');
94                $feedback.classList.remove('wpgdprc-message--error');
95                $feedback.innerHTML = '';
96                setTimeout(function () {
97                    var request = new XMLHttpRequest();
98                    data.data.value = value[0];
99                    request.open('POST', ajaxURL);
100                    request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
101                    request.send(_objectToParametersString(data));
102                    request.addEventListener('load', function () {
103                        if (request.response) {
104                            var response = JSON.parse(request.response);
105                            $row.classList.remove('wpgdprc-status--processing');
106                            if (response.error) {
107                                $row.classList.add('wpgdprc-status--error');
108                                $feedback.innerHTML = response.error;
109                                $feedback.classList.add('wpgdprc-message--error');
110                                $feedback.removeAttribute('style');
111                            } else {
112                                values.splice(0, 1);
113                                $row.querySelector('input[type="checkbox"]').remove();
114                                $row.classList.add('wpgdprc-status--removed');
115                                _doAjax(data, values, $form, 500);
116                            }
117                        }
118                    });
119                }, (delay || 0));
120            }
121        },
122        initConsentBar = function () {
123            if (consentCookie !== null) {
124                return;
125            }
126            var $consentBar = document.querySelector('.wpgdprc-consent-bar');
127            if ($consentBar === null) {
128                return;
129            }
130
131            $consentBar.style.display = 'block';
132
133            var $button = $consentBar.querySelector('.wpgdprc-consent-bar__button');
134            if ($button !== null) {
135                $button.addEventListener('click', function (e) {
136                    e.preventDefault();
137                    _saveCookie(consentCookieName, 'accept');
138                    window.location.reload(true);
139                });
140            }
141        },
142        initConsentModal = function () {
143            var $consentModal = document.querySelector('#wpgdprc-consent-modal');
144            if ($consentModal === null) {
145                return;
146            }
147            if (typeof MicroModal === 'undefined') {
148                return;
149            }
150
151            MicroModal.init({
152                disableScroll: true,
153                disableFocus: true,
154                onClose: function ($consentModal) {
155                    var $descriptions = $consentModal.querySelectorAll('.wpgdprc-consent-modal__description'),
156                        $buttons = $consentModal.querySelectorAll('.wpgdprc-consent-modal__navigation > a'),
157                        $checkboxes = $consentModal.querySelectorAll('input[type="checkbox"]');
158
159                    if ($descriptions.length > 0) {
160                        for (var i = 0; i < $descriptions.length; i++) {
161                            $descriptions[i].style.display = ((i === 0) ? 'block' : 'none');
162                        }
163                    }
164                    if ($buttons.length > 0) {
165                        for (var i = 0; i < $buttons.length; i++) {
166                            $buttons[i].classList.remove('wpgdprc-button--active');
167                        }
168                    }
169                    if ($checkboxes.length > 0) {
170                        for (var i = 0; i < $checkboxes.length; i++) {
171                            $checkboxes[i].checked = false;
172                        }
173                    }
174                }
175            });
176
177            var $settingsLink = document.querySelector('.wpgdprc-consents-settings-link');
178            if ($settingsLink !== null) {
179                $settingsLink.addEventListener('click', function (e) {
180                    e.preventDefault();
181                    MicroModal.show('wpgdprc-consent-modal');
182                });
183            }
184
185            var $buttons = $consentModal.querySelectorAll('.wpgdprc-consent-modal__navigation > a');
186            if ($buttons.length > 0) {
187                var $descriptions = $consentModal.querySelectorAll('.wpgdprc-consent-modal__description');
188                for (var i = 0; i < $buttons.length; i++) {
189                    $buttons[i].addEventListener('click', function (e) {
190                        e.preventDefault();
191                        var $target = $consentModal.querySelector('.wpgdprc-consent-modal__description[data-target="' + this.dataset.target + '"]');
192                        if ($target !== null) {
193                            for (var i = 0; i < $buttons.length; i++) {
194                                $buttons[i].classList.remove('wpgdprc-button--active');
195                            }
196                            this.classList.add('wpgdprc-button--active');
197                            for (var i = 0; i < $descriptions.length; i++) {
198                                $descriptions[i].style.display = 'none';
199                            }
200                            $target.style.display = 'block';
201                        }
202                    });
203                }
204            }
205
206            var $buttonSave = $consentModal.querySelector('.wpgdprc-button--secondary');
207            if ($buttonSave !== null) {
208                $buttonSave.addEventListener('click', function (e) {
209                    e.preventDefault();
210                    var $checkboxes = $consentModal.querySelectorAll('input[type="checkbox"]'),
211                        checked = [];
212
213                    if ($checkboxes.length > 0) {
214                        for (var i = 0; i < $checkboxes.length; i++) {
215                            var $checkbox = $checkboxes[i],
216                                value = $checkbox.value;
217                            if ($checkbox.checked === true && !isNaN(value)) {
218                                checked.push(parseInt(value));
219                            }
220                        }
221                        if (checked.length > 0) {
222                            _saveCookie(consentCookieName, checked);
223                        } else {
224                            _saveCookie(consentCookieName, 'decline');
225                        }
226                    }
227
228                    window.location.reload(true);
229                });
230            }
231        },
232        initLoadConsents = function () {
233            if (typeof postscribe === 'undefined') {
234                return;
235            }
236
237            /**
238             * @param placement
239             * @returns {HTMLHeadElement | Element | string | HTMLElement}
240             * @private
241             */
242            var _getTargetByPlacement = function (placement) {
243                    var output;
244                    switch (placement) {
245                        case 'head' :
246                            output = document.head;
247                            break;
248                        case 'body' :
249                            output = document.querySelector('#wpgdprc-consent-body');
250                            if (output === null) {
251                                var bodyElement = document.createElement('div');
252                                bodyElement.id = 'wpgdprc-consent-body';
253                                document.body.prepend(bodyElement);
254                                output = '#' + bodyElement.id;
255                            }
256                            break;
257                        case 'footer' :
258                            output = document.body;
259                            break;
260                    }
261                    return output;
262                },
263                /**
264                 * @param consent
265                 */
266                loadConsent = function (consent) {
267                    var target = _getTargetByPlacement(consent.placement);
268                    if (target !== null) {
269                        postscribe(target, consent.content);
270                    }
271                };
272
273            // Load consents by cookie
274            var ids = (consentCookie !== null && consentCookie !== 'accept') ? consentCookie.split(',') : [];
275            for (var i = 0; i < consents.length; i++) {
276                if (consents.hasOwnProperty(i)) {
277                    var consent = consents[i];
278                    if (ids.indexOf(consent.id) >= 0 || consent.required || consentCookie === 'accept') {
279                        loadConsent(consent);
280                    }
281                }
282            }
283        },
284        initFormAccessRequest = function () {
285            var $formAccessRequest = document.querySelector('.wpgdprc-form--access-request');
286            if ($formAccessRequest === null) {
287                return;
288            }
289
290            var $feedback = $formAccessRequest.querySelector('.wpgdprc-message'),
291                $emailAddress = $formAccessRequest.querySelector('#wpgdprc-form__email'),
292                $consent = $formAccessRequest.querySelector('#wpgdprc-form__consent');
293
294            $formAccessRequest.addEventListener('submit', function (e) {
295                e.preventDefault();
296                if (!ajaxLoading) {
297                    ajaxLoading = true;
298                    $feedback.style.display = 'none';
299                    $feedback.classList.remove('wpgdprc-message--success', 'wpgdprc-message--error');
300                    $feedback.innerHTML = '';
301
302                    var data = {
303                            action: 'wpgdprc_process_action',
304                            security: ajaxSecurity,
305                            data: {
306                                type: 'access_request',
307                                email: $emailAddress.value,
308                                consent: $consent.checked
309                            }
310                        },
311                        request = new XMLHttpRequest();
312
313                    data = _objectToParametersString(data);
314                    request.open('POST', ajaxURL, true);
315                    request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
316                    request.send(data);
317                    request.addEventListener('load', function () {
318                        if (request.response) {
319                            var response = JSON.parse(request.response);
320                            if (response.message) {
321                                $formAccessRequest.reset();
322                                $emailAddress.blur();
323                                $feedback.innerHTML = response.message;
324                                $feedback.classList.add('wpgdprc-message--success');
325                                $feedback.removeAttribute('style');
326                            }
327                            if (response.error) {
328                                $emailAddress.focus();
329                                $feedback.innerHTML = response.error;
330                                $feedback.classList.add('wpgdprc-message--error');
331                                $feedback.removeAttribute('style');
332                            }
333                        }
334                        ajaxLoading = false;
335                    });
336                }
337            });
338        },
339        initFormDeleteRequest = function () {
340            var $formDeleteRequest = document.querySelectorAll('.wpgdprc-form--delete-request');
341            if ($formDeleteRequest.length < 1) {
342                return;
343            }
344
345            $formDeleteRequest.forEach(function ($form) {
346                var $selectAll = $form.querySelector('.wpgdprc-select-all');
347
348                $form.addEventListener('submit', function (e) {
349                    e.preventDefault();
350                    var $this = e.target,
351                        $checkboxes = $this.querySelectorAll('.wpgdprc-checkbox'),
352                        data = {
353                            action: 'wpgdprc_process_action',
354                            security: ajaxSecurity,
355                            data: {
356                                type: 'delete_request',
357                                token: wpgdprcData.token,
358                                settings: JSON.parse($this.dataset.wpgdprc)
359                            }
360                        };
361                    $selectAll.checked = false;
362                    _doAjax(data, _getValuesByCheckedBoxes($checkboxes), $this);
363                });
364
365                if ($selectAll !== null) {
366                    $selectAll.addEventListener('change', function (e) {
367                        var $this = e.target,
368                            checked = $this.checked,
369                            $checkboxes = $form.querySelectorAll('.wpgdprc-checkbox');
370                        $checkboxes.forEach(function (e) {
371                            e.checked = checked;
372                        });
373                    });
374                }
375            });
376        };
377
378    document.addEventListener('DOMContentLoaded', function () {
379        if (typeof consents === 'object' && consents.length > 0) {
380            consentCookieName = ((isMultisite) ? blogId + '-wpgdprc-consent-' : 'wpgdprc-consent-') + wpgdprcData.consentVersion;
381            consentCookie = _readCookie(consentCookieName);
382            initConsentBar();
383            initConsentModal();
384            initLoadConsents();
385        }
386        initFormAccessRequest();
387        initFormDeleteRequest();
388    });
389})(window, document);

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.