141 lines
4.2 KiB
JavaScript
141 lines
4.2 KiB
JavaScript
wpj.storage = {
|
|
getValue: function(key) {
|
|
try {
|
|
return localStorage.getItem(key);
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
},
|
|
setValue: function(key, value) {
|
|
try {
|
|
return localStorage.setItem(key, value);
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
},
|
|
cookies: {
|
|
getItem: function(sKey) {
|
|
if (!sKey) {
|
|
return null;
|
|
}
|
|
return (
|
|
decodeURIComponent(
|
|
document.cookie.replace(
|
|
new RegExp(
|
|
'(?:(?:^|.*;)\\s*' +
|
|
encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, '\\$&') +
|
|
'\\s*\\=\\s*([^;]*).*$)|^.*$'
|
|
),
|
|
'$1'
|
|
)
|
|
) || null
|
|
);
|
|
},
|
|
setItem: function(sKey, sValue, vEnd, sPath, sDomain) {
|
|
if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {
|
|
return false;
|
|
}
|
|
var sExpires = '';
|
|
if (vEnd) {
|
|
switch (vEnd.constructor) {
|
|
case Number:
|
|
sExpires = vEnd === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : '; max-age=' + vEnd;
|
|
break;
|
|
case String:
|
|
sExpires = '; expires=' + vEnd;
|
|
break;
|
|
case Date:
|
|
sExpires = '; expires=' + vEnd.toUTCString();
|
|
break;
|
|
}
|
|
}
|
|
document.cookie =
|
|
encodeURIComponent(sKey) +
|
|
'=' +
|
|
encodeURIComponent(sValue) +
|
|
sExpires +
|
|
(sDomain ? '; domain=' + sDomain : '') +
|
|
'; path=' + (sPath ? sPath : '/') +
|
|
'; secure; samesite=lax';
|
|
return true;
|
|
},
|
|
removeItem: function(sKey, sPath, sDomain) {
|
|
if (!this.hasItem(sKey)) {
|
|
return false;
|
|
}
|
|
document.cookie =
|
|
encodeURIComponent(sKey) +
|
|
'=; expires=Thu, 01 Jan 1970 00:00:00 GMT' +
|
|
(sDomain ? '; domain=' + sDomain : '') +
|
|
(sPath ? '; path=' + sPath : '');
|
|
return true;
|
|
},
|
|
hasItem: function(sKey) {
|
|
if (!sKey) {
|
|
return false;
|
|
}
|
|
return new RegExp('(?:^|;\\s*)' + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=').test(
|
|
document.cookie
|
|
);
|
|
},
|
|
keys: function() {
|
|
var aKeys = document.cookie
|
|
.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, '')
|
|
.split(/\s*(?:\=[^;]*)?;\s*/);
|
|
for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) {
|
|
aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);
|
|
}
|
|
return aKeys;
|
|
}
|
|
},
|
|
consents: {
|
|
consents: {},
|
|
|
|
getConsent: function(consentName) {
|
|
if (!consentName) {
|
|
return null;
|
|
}
|
|
|
|
this.getConsents();
|
|
|
|
if (this.consents[consentName]) {
|
|
return this.consents[consentName]
|
|
}
|
|
|
|
return false;
|
|
},
|
|
|
|
getConsents: function() {
|
|
var consents = decodeURIComponent(
|
|
document.cookie.replace(
|
|
new RegExp(
|
|
'(?:(?:^|.*;)\\s*' +
|
|
encodeURIComponent('cookie-bar').replace(/[\-\.\+\*]/g, '\\$&') +
|
|
'\\s*\\=\\s*([^;]*).*$)|^.*$'
|
|
),
|
|
'$1'
|
|
)
|
|
).split(',');
|
|
|
|
if (!(consents instanceof Array)){
|
|
consents = [];
|
|
}
|
|
|
|
return this.consents = {
|
|
ad_storage: consents.includes('ad_storage') ? 'granted' : 'denied',
|
|
personalization_storage: consents.includes('personalization_and_functionality_storage') ? 'granted' : 'denied',
|
|
functionality_storage: 'granted',
|
|
analytics_storage: consents.includes('analytics_storage') ? 'granted' : 'denied',
|
|
}
|
|
},
|
|
|
|
isEnabled: function(consentName) {
|
|
if (!window.wpj.cookie_bar_send) {
|
|
return true;
|
|
}
|
|
|
|
return this.getConsent(consentName) === 'granted';
|
|
}
|
|
}
|
|
};
|