Untitled
unknown
plain_text
2 years ago
9.8 kB
7
Indexable
(function() { try { /* main variables */ var debug = 0; var variation_name = ""; var $; /* all Pure helper functions */ function waitForElement(selector, trigger, delayInterval, delayTimeout) { var interval = setInterval(function() { if ( document && document.querySelector(selector) && document.querySelectorAll(selector).length > 0 ) { clearInterval(interval); trigger(); } }, delayInterval); setTimeout(function() { clearInterval(interval); }, delayTimeout); } function live(selector, event, callback, context) { /****Helper Functions****/ // helper for enabling IE 8 event bindings function addEvent(el, type, handler) { if (el.attachEvent) el.attachEvent("on" + type, handler); else el.addEventListener(type, handler); } // matches polyfill this.Element && (function(ElementPrototype) { ElementPrototype.matches = ElementPrototype.matches || ElementPrototype.matchesSelector || ElementPrototype.webkitMatchesSelector || ElementPrototype.msMatchesSelector || function(selector) { var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1; while (nodes[++i] && nodes[i] != node); return !!nodes[i]; }; })(Element.prototype); // live binding helper using matchesSelector function live(selector, event, callback, context) { addEvent(context || document, event, function(e) { var found, el = e.target || e.srcElement; while (el && el.matches && el !== context && !(found = el.matches(selector))) el = el.parentElement; if (found) callback.call(el, e); }); } live(selector, event, callback, context); } const egLabels = [ "small price", "new product", "best seller" ] const egTxt = [ "GET THE SCENT OF THE WORLD'S BEST-SMELLING SUNSCREEN, FOR YOUR CAR OR HOME OFFICE FOR $5", "GET THE WORLD'S BEST-SMELLING SUNSCREEN FOR $18", "GET THE POOL BOY SCENTED CANDLE FOR $34" ] let egInterval; let egTimeout; live(['button', 'span'], 'click', function() { if (this.innerText.toUpperCase().indexOf("BAG") != -1) { waitForElement('.keen-slider.cart__upsells > .keen-slider__slide', init, 50, 15000); } else if ((this.innerText.toUpperCase() == "ADD") || (this.innerText.toUpperCase() == "REMOVE") || this.parentElement.classList.contains("cart__item__quantity")) { clearInterval(egInterval); clearTimeout(egTimeout); let egItems = [...document.querySelectorAll(".keen-slider.cart__upsells > .keen-slider__slide")]; removeClasses(egItems); waitForElement(".keen-slider.cart__upsells > .keen-slider__slide", changeContent, 3000, 15000); } }); function changeContent() { let egItems = [...document.querySelectorAll(".keen-slider.cart__upsells > .keen-slider__slide")]; // removing active class and section specific class removeClasses(egItems); // inserting data updateContent(egItems); } /* Variation Init */ function init() { /* start your code here */ egItems = [...document.querySelectorAll(".keen-slider.cart__upsells > .keen-slider__slide")]; updateContent(egItems); } function removeClasses(egItems) { egItems.forEach(item => { if (item.classList.contains("eg-active")) { item.classList.remove("eg-active"); } if (item.classList.contains("eg-air-freshener")) { item.classList.remove("eg-air-freshener"); } if (item.classList.contains("eg-whip")) { item.classList.remove("eg-whip"); } if (item.classList.contains("eg-pool-boy")) { item.classList.remove("eg-pool-boy"); } if (item.querySelector(".eg-label")) { item.querySelector(".eg-label").remove(); } }); } function updateContent(egItems) { egItems.forEach(item => { let egTarget = item.querySelector(".cart__item .cart__item__content > .gara"); if (egTarget.querySelector("p").innerText.toUpperCase() == "GET THE SCENT OF THE WORLD'S BEST-SMELLING SUNSCREEN, FOR YOUR CAR OR HOME OFFICE FOR $5") { if (!egTarget.querySelector(".eg-label")) { item.classList.add("eg-active"); item.classList.add("eg-air-freshener"); egTarget.insertAdjacentHTML("afterbegin", `<span class="eg-label">${egLabels[0]}</span>`) } } else if (egTarget.querySelector("p").innerText.toUpperCase() == "GET THE WORLD'S BEST-SMELLING SUNSCREEN FOR $18") { if (!egTarget.querySelector(".eg-label")) { item.classList.add("eg-active"); item.classList.add("eg-whip"); egTarget.insertAdjacentHTML("afterbegin", `<span class="eg-label">${egLabels[1]}</span>`) } } else if (egTarget.querySelector("p").innerText.toUpperCase() == "GET THE POOL BOY SCENTED CANDLE FOR $34") { if (!egTarget.querySelector(".eg-label")) { item.classList.add("eg-active"); item.classList.add("eg-pool-boy"); egTarget.insertAdjacentHTML("afterbegin", `<span class="eg-label">${egLabels[2]}</span>`) } } }); } function listener() { /* These are the modifications: */ window.addEventListener("locationchange", function() { waitForElement('.keen-slider.cart__upsells > .keen-slider__slide', init, 50, 15000); }); history.pushState = ((f) => function pushState() { var ret = f.apply(this, arguments); window.dispatchEvent(new Event("pushstate")); window.dispatchEvent(new Event("locationchange")); return ret; })(history.pushState); history.replaceState = ((f) => function replaceState() { var ret = f.apply(this, arguments); window.dispatchEvent(new Event("replacestate")); window.dispatchEvent(new Event("locationchange")); return ret; })(history.replaceState); window.addEventListener("popstate", () => { window.dispatchEvent(new Event("locationchange")); }); } listener(); // mutation /* Initialize variation */ waitForElement('.keen-slider.cart__upsells > .keen-slider__slide', init, 50, 15000); } catch (e) { if (debug) console.log(e, "error in Test" + variation_name); } })(); <style> .keen-slider.cart__upsells { display: flex; flex-direction: column; overflow-y: visible !important; max-height: max-content !important; gap: 10px; } .keen-slider.cart__upsells > .keen-slider__slide { transform: none !important; height: 100px; } .keen-slider.cart__upsells > .keen-slider__slide .cart__item {border: 3px solid;height: 100px;} .keen-slider.cart__upsells > .keen-slider__slide .cart__item .cart__item__image { width: 80px; height: 100px !important; } .keen-slider.cart__upsells > .keen-slider__slide .cart__item .cart__item__content { height: 100px !important; padding: 0 10px; display: flex; flex-direction: column; justify-content: center; margin-top: -2px; } .keen-slider.cart__upsells > .keen-slider__slide .cart__item .cart__item__content > .gara { font-size: 14px !important; line-height: 1; margin-bottom: 0; letter-spacing: .3px; } .keen-slider.cart__upsells > .keen-slider__slide .cart__item .cart__item__quantity { width: 60px; height: 20px; margin-top: 8px; } .eg-label { font-weight: 500; border-radius: 20px; font-size: 9px; line-height: 1.2; padding: 5px 12px 2px; text-transform: uppercase; font-family: OptimaLTP; font-style: normal; display: inline-block; background-color: #e2ddd4; margin-block: 8px; display: none !important; } .keen-slider.cart__upsells + div { display: none; } /*hiding unnessesary slides*/ .keen-slider.cart__upsells > .keen-slider__slide { display: none; } .keen-slider.cart__upsells > .keen-slider__slide.eg-active{ display: block !important; } /*changing order of the slides*/ .eg-air-freshener { order: -2; } .eg-whip { order: -1; } </style>
Editor is loading...