// JavaScript Document
////////////////////////////////////////
// HERING /////////////////////////////
// Last Check: 19-12-2025 10:00:00h //
/////////////////////////////////////
oppuz.attach({
...Object.fromEntries(new URLSearchParams(URL.parse(document.currentScript.src).hash.replace("#", '?'))),
deps: [
"navigation"
],
get _navigation() {
return this.$.getModule("navigation")
},
listenDataLayer(listener) {
const onDataLayer = listener.onDataLayer.bind(listener)
const debugLog = this.$.debug.bind(this.$) //
window.dataLayer = window.dataLayer || []
const oldPush = window.dataLayer.push;
window.dataLayer.push = (function (...args) {
for (const arg of args) {
try {
onDataLayer(arg)
} catch (e) {
// this.$.debug("error", e)
debugLog("error", e) //
}
}
oldPush.call(this, ...args);
})
for (const arg of new Array(...window.dataLayer)) {
try {
onDataLayer(arg)
} catch (e) {
this.$.debug("error", e)
}
}
},
// Fn Auxiliar USER_DATA
// Revised Fn Auxiliar USER_DATA - validateEmail(emv:String)
validateEmail(emv) {
this.$.debug("Oppp::validateEmail -> Started | raw: " + emv);
if (typeof emv !== "string") {
this.$.debug("Oppp::validateEmail -> Input is NOT string");
return "invalid";
}
emv = emv.trim();
if (!emv) {
this.$.debug("Oppp::validateEmail -> Empty string");
return "invalid";
}
const parts = emv.split('@');
const vld1 = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(emv);
const vld2 = parts.length === 2 && !emv.includes('..');
const vld3 = emv.charAt(0) !== '.' && parts[0] !== '.';
if (vld1 && vld2 && vld3) {
this.$.debug("Oppp::validateEmail -> OK: " + emv);
return emv;
}
this.$.debug("Oppp::validateEmail -> INVALID: " + emv);
return "invalid";
},
// Revised Auxiliar fn : getUserData(email:ElmHTML, firstName:ElmHTML, lastName:ElmHTML)
getUserData(fld1, fld2, fld3) {
this.$.debug("Oppp::getUserData -> Started");
// --- 1) Validar campo de email -----------------------------
if (!fld1 || typeof fld1.value !== "string") {
this.$.debug("Oppp::getUserData -> fld1 inválido ou sem .value");
return undefined;
}
const emailRaw = fld1.value.trim();
const validEmail = this.validateEmail(emailRaw);
if (validEmail === "invalid") {
this.$.debug("Oppp::getUserData -> Email inválido, abortando");
return undefined;
}
// --- 2) Montar Nome (opcional) -----------------------------
let fn = "", ln = "";
if (fld2 && typeof fld2.value === "string") fn = fld2.value.trim();
if (fld3 && typeof fld3.value === "string") ln = fld3.value.trim();
const name = [fn, ln].filter(Boolean).join(" ");
// --- 3) Retorno Final --------------------------------------
const userData = name ?
{ email: validEmail, name: name } :
{ email: validEmail };
this.$.debug("Oppp::getUserData -> OK:", userData);
return userData;
},
// Fn Auxiliar
loginCode() {
this.$.debug("Oppp::loginCode is On --> Started");
const self = this;
// evita registrar o delegado mais de uma vez
if (this._loginCodeDelegated) {
this.$.debug("Oppp::loginCode -> delegado já registrado, saindo");
return;
}
this._loginCodeDelegated = true;
// delegação global: funciona mesmo que o botão seja recriado várias vezes
document.addEventListener('click', function (e) {
const bt = e.target.closest('div.vtex-login-2-x-sendButton > button');
if (!bt) return; // clique não foi no botão ENVIAR
let em = document.querySelector('input.vtex-styleguide-9-x-input');
let fn = undefined;
let ln = undefined;
let fm = em ? em.closest('form') : null;
self.$.debug("Oppp::loginCode -> CLICK delegado no botão de código");
// Se quiser segurar o submit pra garantir captura de dados antes:
// e.preventDefault();
try {
// aqui entra sua coleta de dados real
self.oppuzUserData3(em, bt, fn, ln);
self.$.debug("Oppp::loginCode is On --> bt CLICK (delegated)");
} catch (err) {
console.error("Oppp::loginCode -> erro em oppuzUserData3:", err);
}
// Se usou preventDefault e quiser submeter depois:
// if (fm) fm.submit();
});
setTimeout(() => {
const bts = document.querySelector('div.vtex-login-2-x-emailPasswordOptionBtn');
if (bts) {
bts.addEventListener('click', () => { this.loginPassword(); });
this.$.debug("Oppp::loginPassword was set");
}
}, 3000);
},
// 'vtex-login-2-x-button' 'vtex-login-2-x-accessCodeOptionBtn'
// 'vtex-login-2-x-button' 'vtex-login-2-x-emailPasswordOptionBtn'
// Fn Auxiliar
loginPassword() {
this.$.debug("Oppp::loginPassword is On-> Started");
const bind = () => {
let em = document.querySelector('input.vtex-styleguide-9-x-input');
let bt = document.querySelector('div.vtex-login-2-x-sendButton > button.vtex-button');
let fn = undefined;
let ln = undefined;
let fm = em ? em.closest('form') : null;
if (!em || !bt) {
return false; // ainda não carregou
}
this.oppuzUserData(em, bt, fn, ln); //(email, button, firstName, lastName);
return true;
};
// tenta imediatamente
if (bind()) return;
// MutationObserver de fallback
const observer = new MutationObserver(() => {
if (bind()) {
observer.disconnect();
this.$.debug("Oppp::loginPassword -> bound via MutationObserver");
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
},
// Fn Auxiliar
loginMainBar() {
this.$.debug("Oppp::USER_DATA > Btn Login MainBar");
// tentativa imediata (código original)
let ic = document.querySelector('use[href*="#Login"]');
let ica = ic ? ic.closest('a') : null;
if (ica) {
ica.addEventListener('click', () => { this.openVtexModal(); });
return; // se já encontrou, para aqui
}
// fallback com MutationObserver (mínima alteração)
const observer = new MutationObserver(() => {
ic = document.querySelector('use[href*="#Login"]');
ica = ic ? ic.closest('a') : null;
if (ica) {
ica.addEventListener('click', () => { this.openVtexModal(); });
observer.disconnect();
this.$.debug("Oppp::USER_DATA > Btn Login MainBar bound via observer");
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
},
// Fn Auxiliar
loginNewsletter() {
// Btn Newsletter
this.$.debug("Oppp::USER_DATA > Btn Login Newsletter");
let fm = document.querySelector('form[hx-target="#newsletter"]');
let em = fm.querySelector('div div input[name="email"]');
let bt = fm.querySelector('div div button');
let fn = fm.querySelector('div div input[name="name"]');
let ln = undefined;
this.oppuzUserData(em,bt,fn,ln);
//oppuzUserData(email, button, firstName, lastName)
},
// Fn Auxiliar
getProductImageUrl(evento){
this.$.debug("Oppp::getProductImageUrl is On --> ");
const url = window.location.href;
var g = url.split('-');
var i = g[g.length-2].replace(/[^0-9]/g, '');
var j = g[g.length-1].replace(/[^0-9]/g, '');
var h = i + "_" + j;
const prdId = h;
const imgRgx = new RegExp(`${prdId}_(\\d+)`);
const imgSet = new Set(); // Set evita repetições
document.querySelectorAll('img').forEach(img => {
const src = img.getAttribute('src');
if (src && imgRgx.test(src)) {
imgSet.add(src); // Set só guarda valores únicos
}
});
const imgsPrd = Array.from(imgSet);
imgsPrd.sort((a, b) => {
const numA = parseInt(a.match(imgRgx)[1]);
const numB = parseInt(b.match(imgRgx)[1]);
return numA - numB;
});
const img1 = imgsPrd[0];
this.$.debug("Oppp::ImageUrl-> " + img1);
return img1;
},
// Fn Auxiliar
getCategoryFromEvent(evento){
var ev = evento; // evento do DL passado por parâmetro na fn()
var ec = ev.ecommerce;
var ct = ec.product[0].category[0].replaceAll('/','')
var act = [];
act.push(ct);
return act;
},
// Fn Auxiliar
getCategoryFromUrl(urlp) {
var ce = urlp;
var or = window.location.origin;
var pn = ce.replace(or, '');
var ap = [];
if(pn[0] =="/"){ap = pn.slice(1).split("/")}
return ap;
},
// Fn Auxiliar
getCategoryFromItemView(evento){
var ev = evento; // evento do DL passado por parâmetro na fn()
var ec = ev.ecommerce;
var it = ec.items[0]
var cn = it.item_category2;
var pc = it.item_category;
var ce = window.location.href;
var ap = []; ap[0] = pc; ap[1] = cn;
return ap;
},
// Fn Auxiliar
getCategoryFromBreadcrumb(evento){
const bcrumbs = Array.from(document.querySelectorAll('ul')).find(ul => {
const lnks = ul.querySelectorAll('li a');
const txcont = Array.from(lnks, a => a.textContent.trim().toLowerCase());
return ul.offsetParent !== null && txcont.includes("home") && lnks.length >= 2;
})?.querySelectorAll('li a');
var bcrumbstx = bcrumbs ? Array.from(bcrumbs, a => a.textContent.trim()) : [];
bcrumbstx.shift();
bcrumbstx = bcrumbstx.map(txt => txt.replace(/\s*\([^)]*\)/g, '').trim());
return bcrumbstx;
},
// Fn Auxiliar
buildCategoryTree(app){
var ap = app; var ac = ""; var an = "";
var obj = {}; var cat = [];
for (var i = 0; i < ap.length; i++) {
ac += "/" + ap[i];
an += (an ? " " : "") + ap[i];
obj = {id: ac, name:an}
cat.push(obj);
}
return cat;
},
getSkuPdp(){
var evt = dataLayer.filter( (item) => {
return item.region=== 'PDP';
}).pop(); // Pega o ultimo item
var skuObj = evt.skuStocks
var aSku = Object.keys(skuObj).filter(key => skuObj[key] > 0)
return aSku;
},
getEvent(eventName){
var evt = dataLayer.filter( (item) => {
return item.event === eventName;
}).pop(); // Pega o último item
return evt;
},
// Encontra o
correto que contém os tamanhos (labels size-XXXX)
getSizeUl() {
this.$.debug("Oppp::getSizeUl is On");
// cache interno
if (this._sizeUlFound) {
return this._sizeUlFound;
}
// tenta achar diretamente um label dentro de algum
let lbl = document.querySelector('ul.flex label[for^="size-"]');
if (lbl) {
const ul = lbl.closest('ul.flex');
this._sizeUlFound = ul; // salva
return ul;
}
// inicia Observer só uma vez
if (!this._sizeUlObserverStarted) {
this._sizeUlObserverStarted = true;
const observer = new MutationObserver(() => {
let lblObs = document.querySelector('ul.flex label[for^="size-"]');
if (lblObs) {
const ul = lblObs.closest('ul.flex');
this._sizeUlFound = ul;
observer.disconnect();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
return null;
},
// Retorna [{ sku: "xxxxx", size: "PP", available: true/false }, ...]
getbtnSku() {
this.$.debug("Oppp::getbtnSku is On");
const ul = this.getSizeUl();
if (!ul) return [];
var skuLista = [];
// percorre os - sem querySelectorAll
let li = ul.firstElementChild;
while (li) {
if (li.tagName === 'LI') {
const label = li.querySelector('label[for^="size-"]');
if (label) {
const fr = label.getAttribute('for');
if (fr) {
const sku = fr.split('-')[1];
const size = label.textContent.trim();
const span = li.querySelector('span');
let available = true;
if (span) {
const txt = span.textContent.toLowerCase();
if (txt.includes('avise')) {
available = false;
}
}
skuLista.push({
sku: sku,
size: size,
available: available
});
}
}
}
li = li.nextElementSibling;
}
return skuLista;
},
getbtnSku2() {
this.$.debug("Oppp::getbtnSku is On");
const ul = this.getSizeUl();
if (!ul) return []; // enquanto não carregou nada
const lis = ul.querySelectorAll('li');
var skuLista = [];
for (var i = 0; i < lis.length; i++) {
const li = lis[i];
const label = li.querySelector('label[for^="size-"]');
if (!label) continue;
const fr = label.getAttribute('for');
if (!fr) continue;
const sku = fr.split('-')[1];
const size = label.textContent.trim();
const span = li.querySelector('span');
let available = true;
if (span) {
const txt = span.textContent.toLowerCase();
if (txt.includes('avise')) {
available = false;
}
}
skuLista.push({
sku: sku,
size: size,
available: available
});
}
return skuLista;
},
////////////////////////
//// Main Functions ////
/////////////////////////////////////////////////////////////////////////////
// Oppuz: oppuzUserData
oppuzUserData(pem, pbt, pfn, pln) {
let em, bt, na, fn, ln, us;
em=pem; bt=pbt; fn=pfn; ln=pln;
(fn && ln) ? na = fn + ' ' + ln : na=undefined; us=undefined;
// bt.addEventListener('click', this.oppuzAnyFunction.bind(this));
this.$.debug("Oppp::oppuzUserData-> addListener: " + pbt.type);
//getEventListeners(document.querySelector('form.vtex-profile-form__profile-container__wrapper > button'));
if (!bt._listenerAttached) {
bt.addEventListener('click', (e)=>{
us = this.getUserData(em,fn,ln);
this.$.debug("Oppp::userData--> ClickBtn");
if(us != undefined){
oppuz.track({ event: 'oppuz:user_data', user: us});
}
});
bt._listenerAttached = true; // marca que já adicionou
}
},
// Oppuz: oppuzUserData2
oppuzUserData2(pem, pbt, pfn, pln) {
// Para campos que não que não é possível pegar o value: listener input
this.$.debug("Oppp::oppuzUserData2-> addListener " + pbt.type);
let em, bt, na, fn, ln, us, ema;
em=pem; bt=pbt; fn=pfn; ln=pln; ema='';
(fn && ln) ? na = fn + ' ' + ln : na=undefined; us=undefined;
// bt.addEventListener('click', this.oppuzAnyFunction.bind(this));
if (!em._listenerAttached) {
em.addEventListener('input', (e) => {
ema = e.target.value;
this.$.debug("Oppp::oppuzUserData2-> ema: " + ema);
});
em._listenerAttached = true; // marca que já adicionou
}
if (!bt._listenerAttached) {
bt.addEventListener('click', (e)=>{
em.value = ema;
us = this.getUserData(em,fn,ln);
//this.$.debug("Oppp::userData--> ClickBtn: ");
if(us != undefined){
oppuz.track({ event: 'oppuz:user_data', user: us});
}
});
bt._listenerAttached = true; // indica que adicionou o listener
}
},
// Oppuz: oppuzUserData3: (email_str, firstName_str, lastName_str )
oppuzUserData3(ema, fna, lna) {
// Nesta vr não tem Listener
this.$.debug("Oppp::oppuzUserData3 -> ");
oppuz.track({event: 'oppuz:user_data', user: this.getUserData(ema, fna, lna)});
},
// Oppuz: Category View
oppuzViewCategory(evento) {
this.$.debug("Oppp::oppuzViewCategory is On --> teste Started");
oppuz.track({
event: 'oppuz:view_category',
category_tree: this.buildCategoryTree(this.getCategoryFromUrl(window.location.href))
});
},
// Oppuz: oppuzView
oppuzViewCategory2(evento) {
this.$.debug("Oppp::CategoryView is On --> Started");
var vwc = evento;
var ec = vwc.ecommerce;
var cn = ec.category_name;
var ce = ec.category_url;
var or = window.location.origin;
var pn = ce.replace(or,'');
//var pn = "/produtos/vestido/longo/seda/";
var ap = pn.split("/").filter(p => !!p);
var ac = ""; var an = ""; var obj = {}; var cat = [];
for (var i = 0; i < ap.length; i++) {
ac += "/" + ap[i];
an += (an ? " " : "") + ap[i];
obj = {id: ac, name:an}
cat.push(obj);
}
oppuz.track({event: 'oppuz:view_category',category_tree: cat});
this.$.debug("Oppp::CategoryView is On --> Sent");
},
// Oppuz: ProductSizeView
oppuzViewProductSize(evento) {
const pp = evento;
const pv = this.getEvent('productView');
const p = pv.ecommerce.product[0];
this.$.debug("Oppp::oppuzViewProductSize is On --> " + p.productId + ": " + pp.itemId);
//const lng = this.getbtnSku().length;
oppuz.track({
event: 'oppuz:view_product',
product:
{
id: p.productId,
brand: p.brand,
skus: [{
sku: pp.itemId,
name: p.name,
available: pp.available,
img: p.imageUrl,
price: Number(p.price),
url: location.origin + "/" + p.detailUrl,
category: this.buildCategoryTree(this.getCategoryFromEvent(pv)),
parent_category: null,
list_price: Number(p.price),
installments: 1,
installment_value: Number(p.price),
description: null
}]
}
})
},
// Oppuz: ProductView
oppuzViewProduct(evento) {
this.$.debug("Oppp::ProductView is On --> Startedd ");
const p = evento.ecommerce.product[0];
//const lng = this.getbtnSku().length;
oppuz.track({
event: 'oppuz:view_product',
product:
{
id: p.productId,
brand: p.brand,
skus: [{
sku: p.skuId, //55678,
name: p.name,
available: (p.stock>0)?true:false, //true,
img: p.imageUrl,
price: Number(p.price),
url: location.origin + "/" + p.detailUrl,
category: this.buildCategoryTree(this.getCategoryFromEvent(evento)),
parent_category: null,
list_price: Number(p.price),
installments: 1,
installment_value: Number(p.price),
description: null
}]
}
})
/*
for(var x = 0; x0)?true:false, //true,
img: p.imageUrl,
price: Number(p.price),
url: detailUrl,
category: this.buildCategoryTree(this.getCategoryFromEvent(evento)),
parent_category: null,
list_price: Number(p.price),
installments: 1,
installment_value: Number(p.price),
description: null
}]
}
})
}
*/
},
// Funcao Principal
oppuzViewPromotion(evento) {
this.$.debug("Oppp::oppuzViewPromotion is On --> Started");
},
// Funcao Principal
oppuzAddToCart(evento) {
this.$.debug("Oppp::oppuzAddToCart is On --> Started");
var e = evento.ecommerce.items[0];
oppuz.track({
event: 'oppuz:add_to_cart',
items: [{sku:e.skuId, quantity:e.quantity, price:Number(e.price), seller:null}]
});
},
// Funcao Principal
oppuzViewCart(evento) {
this.$.debug("Oppp::oppuzViewCart is On --> Started");
var e = evento.ecommerce.items; var o = {}; var a = [];
for(i=0; i0)?true:false, price:Number(e[i].price), seller:null};
a.push(o);
}
oppuz.track({event: 'oppuz:view_cart', items:a});
},
// Funcao Principal
oppuzRemoveFromCart(evento) {
this.$.debug("Oppp::oppuzRemoveFromCart is On --> Started");
var e = evento.ecommerce.items[0];
oppuz.track({
event: 'oppuz:remove_from_cart',
items: [{sku:e.skuId, quantity:(e.quantity>0)?true:false, price:Number(e.price), seller:null}]
});
},
// Funcao Principal
oppuzOrderPlaced(evento){
var ord = evento;
var prd = ord.transactionProducts;
var tid = ord.transactionId;
var ema = ord.visitorContactInfo[0];
var fna = undefined; //ord.visitorContactInfo[1];
var lna = undefined; //ord.visitorContactInfo[2];
var plng = prd.length;
var aprds = [];
for (var x=0; x Started");
oppuz.track({event: 'oppuz:order_placed', items: aprds, order_id: tid});
setTimeout(() => {
this.oppuzUserData3(ema, fna, lna);
}, 300);
},
// Funcao Principal
oppuzPurchase(evento) {
var ord = evento.ecommerce;
var prd = ord.items;
var tid = ord.transaction_id
var plng = prd.length;
var aprds = [];
for (var x = 0; x < plng; x++){
aprds.push({
sku: prd[x].item_variant,
quantity: prd[x].quantity,
price: Number(prd[x].price),
seller_id: prd[x].item_brand
});
}
this.$.debug("Oppp::oppuzPurchase is On --> Started");
oppuz.track({event: 'oppuz:order_placed', items: aprds, order_id: tid});
},
// Funcao Principal
openVtexModal() {
this.$.debug("Oppp::openVtexModal is On-> Started");
const self = this;
function bindButtons() {
const bte = document.getElementById('loginWithAccessKeyBtn');
const btp = document.getElementById('loginWithUserAndPasswordBtn');
if (bte) {
bte.addEventListener('click', () => self.loginCode());
}
if (btp) {
btp.addEventListener('click', () => self.loginPassword());
}
// só consideramos "completo" se ao menos 1 botão existir
return (bte || btp);
}
// tenta imediatamente
if (bindButtons()) return;
// MutationObserver simples
const observer = new MutationObserver(() => {
if (bindButtons()) {
observer.disconnect();
self.$.debug("Oppp::openVtexModal > Buttons bound via Observer");
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
},
// Acionado quando tem um evento no datalayer
onDataLayer(item) {
this.$.debug("LAYERRR", item)
switch (item.event) {
case "categoryView":
this.oppuzViewCategory(item)
break;
case "productView":
this.oppuzViewProduct(item)
break;
case "selectedSize":
this.oppuzViewProductSize(item)
break;
case "addToCart":
this.oppuzAddToCart(item)
break;
case "viewCart":
this.oppuzViewCart(item)
break;
case "removeFromCart":
this.oppuzRemoveFromCart(item)
break;
case "orderPlaced":
this.oppuzOrderPlaced(item)
break;
case "purchase_ga":
this.oppuzPurchase(item)
break;
}
},
// Acionado quando tem mudanca de pagina
onNavigation(location, oldLocation) {
this.$.debug("NAVV",location)
// No Começo da Navegação
setTimeout(() => {
}, 300);
// Pagina Principal
if (location.pathname === "/") {
this.$.debug("Oppp:: MAIN_PAGE Hering");
}
// página Profile
if (location.pathname === "/api/io/login" || location.pathname === "/login") {
this.$.debug("Oppp::LocationLoginUserdata is On -> Observer Started");
const observer = new MutationObserver(() => {
const bte = document.querySelector('div.vtex-login-2-x-accessCodeOptionBtn button');
const btp = document.querySelector('div.vtex-login-2-x-sendButton');
const em = document.querySelector('div.vtex-login-2-x-inputContainerEmail div input');
if (bte || btp) {
if (bte) {
bte.addEventListener('click', () => { this.loginCode(); });
this.$.debug("Oppp::loginCode was set");
}
if (btp) {
this.$.debug("Oppp::loginPassword was set");
this.loginPassword();
// this.oppuzUserData(em, bt, fn, ln); //(email, button, firstName, lastName);
}
observer.disconnect();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
// Pagina e-mail pré-checkout
if (location.hash === "#/email") {
this.$.debug("Oppp::USER_DATA > #/email");
setTimeout(() => {
let em = document.getElementById('client-pre-email');
let bt = document.getElementById('btn-client-pre-email');
let fn = undefined;
let ln = undefined;
let fm = em.closest('form');
this.oppuzUserData(em,bt,fn,ln);
//oppuzUserData(email, button, firstName, lastName)
}, 500);
}
// Página Profile
if (location.hash === "#/profile") {
this.$.debug("Oppp::USER_DATA > #/profile");
setTimeout(() => {
let em = document.getElementById('client-email');
let bt = document.getElementById('go-to-shipping');
let fn = document.getElementById('client-first-name');
let ln = document.getElementById('client-last-name');
let fm = em.closest('form');
this.oppuzUserData(em,bt,fn,ln);
//oppuzUserData(email, button, firstName, lastName)
}, 500);
}
// Página profile/edit
if (location.hash === "#/profile/edit") {
this.$.debug("Oppp::USER_DATA > #/profile/edit");
setTimeout(() => {
let fm = document.querySelector('form.vtex-profile-form__profile-container__wrapper');
let em = document.querySelector('form.vtex-profile-form__profile-container__wrapper > div > div.vtex-profile-form__email > label > div > input');
let bt = document.querySelector('form.vtex-profile-form__profile-container__wrapper > button');
let fn = document.querySelector('form.vtex-profile-form__profile-container__wrapper > div > div.vtex-profile-form__firstName > label > div > input');
let ln = document.querySelector('form.vtex-profile-form__profile-container__wrapper > div > div.vtex-profile-form__lastName > label > div > input');
this.$.debug("Oppp::USER_DATA > #/profile/edit getButton: " + bt.type);
this.oppuzUserData(em,bt,fn,ln);
}, 500);
}
if (location.hash === "#/payment" ) {
window.addEventListener("load", (e)=>{
//document.addEventListener("DOMContentLoaded", (e)=>{
//setTimeout(() => {
this.$.debug("Oppp::USER_DATA > #/payment -> Started");
let em = document.getElementById('client-email');
let bt = document.querySelector('div#button-payment-custom button');
let fn = null;
let ln = null;
let fm = em.closest('form');
this.oppuzUserData(em,bt,fn,ln);
this.$.debug("Oppp::USER_DATA > #/payment -> Ended");
//}, 200);
});
}
if (location.hash === "#/shipping") { //document.addEventListener("DOMContentLoaded", (e)=>{
window.addEventListener("load", (e)=>{
//document.addEventListener("DOMContentLoaded", (e)=>{
this.$.debug("Oppp::USER_DATA > #/shipping -> Started");
let em = document.querySelector('input#client-email');
let bt = document.querySelector('button#btn-go-to-payment');
let fn = undefined;
let ln = undefined;
let fm = em.closest('form');
let ed = document.querySelector('a > i.icon-edit');
this.$.debug("Oppp::USER_DATA > #/shipping fld Ended :-> " + em.value);
this.oppuzUserData(em,bt,fn,ln);
if (ed) {ed.addEventListener('click', () => {this.openVtexModal(); }); }
});
}
if (location.search.startsWith("?p")) {
// pagina de produto vtex
}
if (oldLocation && oldLocation.pathname != "/cat" && location.pathname === "cat") {
//pagina de produto vtex
}
},
// Acionado na inicializacao do enterprise
module() {
this.$.debug("Hello from enterprise module!!!")
this.listenDataLayer(this)
this._navigation.listen(this)
this.onNavigation(this._navigation.current)
// Outras coisas para iniciar
setInterval(() => {
}, 1000)
}
})