https://www.thechilicool.com/wp-content/plugins/wp-gdpr-compliance/assets/js/front.js?ver=1571994227
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.