318 lines
14 KiB
TypeScript
318 lines
14 KiB
TypeScript
import Script from "next/script"
|
|
|
|
export default function VWOScript() {
|
|
return (
|
|
<>
|
|
{/* <!-- Start VWO Async SmartCode --> */}
|
|
<link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" />
|
|
<Script type="text/javascript" id="vwoCode">
|
|
{`
|
|
//DO NOT make any changes to smart code except for entering your account id
|
|
window._vwo_code ||
|
|
(function () {
|
|
var account_id = 373511,
|
|
version = 2.0,
|
|
settings_tolerance = 2000,
|
|
hide_element = "body",
|
|
hide_element_style =
|
|
"opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important",
|
|
/* DO NOT EDIT BELOW THIS LINE */
|
|
f = false,
|
|
w = window,
|
|
d = document,
|
|
v = d.querySelector("#vwoCode"),
|
|
cK = "_vwo_" + account_id + "_settings",
|
|
cc = {};
|
|
try {
|
|
var c = JSON.parse(
|
|
localStorage.getItem("_vwo_" + account_id + "_config")
|
|
);
|
|
cc = c && typeof c === "object" ? c : {};
|
|
} catch (e) {}
|
|
var stT = cc.stT === "session" ? w.sessionStorage : w.localStorage;
|
|
code = {
|
|
use_existing_jquery: function () {
|
|
return typeof use_existing_jquery !== "undefined"
|
|
? use_existing_jquery
|
|
: undefined;
|
|
},
|
|
library_tolerance: function () {
|
|
return typeof library_tolerance !== "undefined"
|
|
? library_tolerance
|
|
: undefined;
|
|
},
|
|
settings_tolerance: function () {
|
|
return cc.sT || settings_tolerance;
|
|
},
|
|
hide_element_style: function () {
|
|
return "{" + (cc.hES || hide_element_style) + "}";
|
|
},
|
|
hide_element: function () {
|
|
return typeof cc.hE === "string" ? cc.hE : hide_element;
|
|
},
|
|
getVersion: function () {
|
|
return version;
|
|
},
|
|
finish: function () {
|
|
if (!f) {
|
|
f = true;
|
|
var a = d.getElementById("_vis_opt_path_hides");
|
|
if (a) a.parentNode.removeChild(a);
|
|
}
|
|
},
|
|
finished: function () {
|
|
return f;
|
|
},
|
|
load: function (a) {
|
|
var s = this.getSettings(),
|
|
b = d.createElement("script"),
|
|
t = this;
|
|
if (s) {
|
|
b.textContent = s;
|
|
d.getElementsByTagName("head")[0].appendChild(b);
|
|
if (!w.VWO || VWO.caE) {
|
|
stT.removeItem(cK);
|
|
t.load(a);
|
|
}
|
|
} else {
|
|
b.fetchPriority = "high";
|
|
b.src = a;
|
|
b.type = "text/javascript";
|
|
b.onerror = function () {
|
|
window._vwo_code.finish();
|
|
};
|
|
d.getElementsByTagName("head")[0].appendChild(b);
|
|
}
|
|
},
|
|
getSettings: function () {
|
|
try {
|
|
var i = stT.getItem(cK);
|
|
if (!i) {
|
|
return;
|
|
}
|
|
i = JSON.parse(i);
|
|
if (Date.now() > i.e) {
|
|
stT.removeItem(cK);
|
|
return;
|
|
}
|
|
return i.s;
|
|
} catch (e) {
|
|
return;
|
|
}
|
|
},
|
|
|
|
init: function () {
|
|
if (d.URL.indexOf("__vwo_disable__") > -1) return;
|
|
var sT = this.settings_tolerance();
|
|
w._vwo_settings_timer = setTimeout(function () {
|
|
window._vwo_code.finish();
|
|
stT.removeItem(cK);
|
|
window._vwo_code.removeLoaderAndOverlay();
|
|
}, sT);
|
|
var filterConfig = this.filterConfig;
|
|
if (!filterConfig || filterConfig.filterTime === "balanced") {
|
|
var cS = d.currentScript,
|
|
a = d.createElement("style"),
|
|
hE = this.hide_element(),
|
|
b =
|
|
cS && !cS.async && hE
|
|
? hE + "{" + this.hide_element_style() + "}"
|
|
: "",
|
|
h = d.getElementsByTagName("head")[0];
|
|
a.setAttribute("id", "_vis_opt_path_hides");
|
|
v && a.setAttribute("nonce", v.nonce);
|
|
a.setAttribute("type", "text/css");
|
|
if (a.styleSheet) a.styleSheet.cssText = b;
|
|
else a.appendChild(d.createTextNode(b));
|
|
h.appendChild(a);
|
|
}
|
|
if (filterConfig && filterConfig.filterTime === "early") {
|
|
this.removeLoaderAndOverlay();
|
|
}
|
|
this.load(
|
|
"https://dev.visualwebsiteoptimizer.com/j.php?a=" +
|
|
account_id +
|
|
"&u=" +
|
|
encodeURIComponent(d.URL) +
|
|
"&vn=" +
|
|
version
|
|
);
|
|
},
|
|
setFilterConfigAndApplyFilter: function (config) {
|
|
if (!config) {
|
|
// No config will lead to early return and no addition of smart code
|
|
return;
|
|
}
|
|
var state = this.isNonLiveMode(account_id) || config.isConsentGiven();
|
|
if (state === "1") {
|
|
// if cookie consent was already given and the cookies were already accepted, execute out normal flow
|
|
hide_element = "body";
|
|
w._vwo_settings_timer = window._vwo_code.init();
|
|
return;
|
|
} else if (state === "2") {
|
|
return;
|
|
}
|
|
|
|
if (!config.filterTolerance) {
|
|
// Execute removal logic immediately when filterTolerance is 0 or empty
|
|
return;
|
|
}
|
|
|
|
function clearIntervals(timerIds) {
|
|
for (var i = 0; i < timerIds.length; i++) {
|
|
clearInterval(timerIds[i]);
|
|
}
|
|
}
|
|
this.filterConfig = config;
|
|
var popupTimer = setInterval(function () {
|
|
if (window._vwo_code.applyFilters(config)) {
|
|
clearInterval(popupTimer);
|
|
}
|
|
}, 100);
|
|
var timer = setInterval(function () {
|
|
var state = config.isConsentGiven();
|
|
var shouldClearAllIntervals;
|
|
if (state === "1") {
|
|
window._vwo_code.showLoader();
|
|
w._vwo_settings_timer = window._vwo_code.init();
|
|
shouldClearAllIntervals = true;
|
|
} else if (state === "2") {
|
|
window._vwo_code.filterConfig = undefined;
|
|
window._vwo_code.removeLoaderAndOverlay();
|
|
shouldClearAllIntervals = true;
|
|
}
|
|
if (shouldClearAllIntervals) {
|
|
clearIntervals([timer, popupTimer]);
|
|
clearInterval(filterToleranceTimer);
|
|
}
|
|
}, 100);
|
|
var filterToleranceTimer;
|
|
|
|
// RECOMMENDED: When using Best Approach
|
|
filterToleranceTimer = setTimeout(function () {
|
|
window._vwo_code.removeLoaderAndOverlay();
|
|
clearIntervals([timer, popupTimer]);
|
|
}, config.filterTolerance);
|
|
},
|
|
showLoader: function () {
|
|
var vwoOverlay = d.getElementsByClassName("vwo-overlay")[0];
|
|
if (!vwoOverlay) return;
|
|
var vwoContentLoader = d.createElement("div");
|
|
vwoContentLoader.classList.add("vwo-content-loader");
|
|
vwoOverlay.parentNode.insertBefore(
|
|
vwoContentLoader,
|
|
vwoOverlay.nextSibling
|
|
);
|
|
},
|
|
applyFilters: function (config) {
|
|
var popup = d.querySelector(config.popupSelector);
|
|
var popupZIndex;
|
|
if (!popup && d.getElementById("_vis_opt_overlay")) {
|
|
return;
|
|
}
|
|
var maxZIndex = 2147483647;
|
|
if (popup) {
|
|
var popupStyle = w.getComputedStyle(popup);
|
|
popupZIndex = popupStyle.getPropertyValue("z-index");
|
|
if (!popupZIndex || popupZIndex === "auto") {
|
|
popupZIndex = maxZIndex;
|
|
}
|
|
popup.style.zIndex = popupZIndex;
|
|
}
|
|
popupZIndex = popupZIndex || maxZIndex;
|
|
// You can change the styling to suit your requirements
|
|
// This is the default CSS filters VWO provides
|
|
// NOTE: do not change any class names IMPORTANT ...
|
|
var vwoFilter =
|
|
"position: fixed; top: 0; left: 0; right: 0; bottom: 0; height: 100%; width: 100%; -webkit-filter: blur(5px); filter: blur(5px); backdrop-filter: saturate(180%) blur(3px); -webkit-backdrop-filter: saturate(180%) blur(3px); z-index:" +
|
|
(popupZIndex - 1) +
|
|
";",
|
|
vwoLoaderCss =
|
|
" .vwo-content-loader{ border: 16px solid #f3f3f3; border-top: 16px solid #3498db; border-radius: 50%; width: 90px; height: 90px; position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); animation: vwo-spin 2s linear infinite; z-index:" +
|
|
(popupZIndex - 1) +
|
|
"; }" +
|
|
"@keyframes vwo-spin { 0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg); } 100% { -webkit-transform: translate(-50%, -50%) rotate(360deg); transform: translate(-50%, -50%) rotate(360deg); } }";
|
|
/**
|
|
* This below written code should not be tweaked
|
|
* */
|
|
var overlayStyleTag = d.getElementById("_vis_opt_overlay"),
|
|
overlayCSS = ".vwo-overlay{" + vwoFilter + "}" + vwoLoaderCss;
|
|
if (overlayStyleTag) {
|
|
if (overlayStyleTag.styleSheet) {
|
|
overlayStyleTag.styleSheet.cssText = overlayCSS;
|
|
} else {
|
|
var _vwo_textNode = d.createTextNode(overlayCSS);
|
|
overlayStyleTag.appendChild(_vwo_textNode);
|
|
overlayStyleTag.removeChild(overlayStyleTag.childNodes[0]);
|
|
}
|
|
} else {
|
|
var a = d.createElement("style"),
|
|
h = d.getElementsByTagName("head")[0],
|
|
body = d.getElementsByTagName("body")[0];
|
|
var vwoOverlay = d.createElement("div");
|
|
vwoOverlay.classList.add("vwo-overlay");
|
|
body.prepend(vwoOverlay);
|
|
// CAUTION Do not remove this id from your style tag. It is required by VWO
|
|
a.setAttribute("id", "_vis_opt_overlay");
|
|
a.setAttribute("type", "text/css");
|
|
if (a.styleSheet) a.styleSheet.cssText = overlayCSS;
|
|
else a.appendChild(d.createTextNode(overlayCSS));
|
|
h.appendChild(a);
|
|
}
|
|
return !!popup;
|
|
},
|
|
removeLoaderAndOverlay: function () {
|
|
var overlay = d.getElementsByClassName("vwo-overlay");
|
|
var loader = d.getElementsByClassName("vwo-content-loader");
|
|
var overlayStyleTag = d.getElementById("_vis_opt_overlay");
|
|
overlay &&
|
|
(overlay = overlay[0]) &&
|
|
overlay.parentElement.removeChild(overlay);
|
|
loader &&
|
|
(loader = loader[0]) &&
|
|
loader.parentElement.removeChild(loader);
|
|
overlayStyleTag &&
|
|
overlayStyleTag.parentElement.removeChild(overlayStyleTag);
|
|
},
|
|
isNonLiveMode: function (accountId) {
|
|
var wName = w.name;
|
|
if (!wName) {
|
|
return;
|
|
}
|
|
return (
|
|
(wName.indexOf("_vis_editor") > -1 ||
|
|
wName.indexOf("_vis_preview_" + accountId) > -1 ||
|
|
wName.indexOf("_vis_heatmap_" + accountId) > -1) &&
|
|
"1"
|
|
);
|
|
},
|
|
};
|
|
w._vwo_code = code;
|
|
})();
|
|
window._vwo_code.setFilterConfigAndApplyFilter({
|
|
popupSelector: "#CybotCookiebotDialog",
|
|
filterTime: "best",
|
|
isConsentGiven: function () {
|
|
/** your custom Code */
|
|
if (document.cookie.indexOf("CookieConsent") != -1) {
|
|
var ccValue = decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent("CookieConsent").replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
|
|
let consentValue = "2";
|
|
if (ccValue) {
|
|
ccValue = ccValue.substring(ccValue.indexOf(",statistics")+12);
|
|
ccValue = ccValue.substring(0, ccValue.indexOf(","));
|
|
consentValue = ccValue === "true" ? "1" : "2";
|
|
}
|
|
return consentValue;
|
|
} else {
|
|
return "3";
|
|
}
|
|
},
|
|
filterTolerance: 400,
|
|
});
|
|
`}
|
|
</Script>
|
|
{/* <!-- End VWO Async SmartCode --> */}
|
|
</>
|
|
)
|
|
}
|