const enviroment = 'https://dev.';
//DATOS DE USUARIO
const email = vsm.session.email != "" ? vsm.session.email : "";
const idUser = vsm.session.id != "" ? vsm.session.id : "";
const userName = vsm.session.title != "" ? vsm.session.title : "";
const isSuscriber = site.session.isSuscriber() && site.session != undefined ? "Suscriptor" : "Usuario";
let dateTime = new Date();
dateTime = `${dateTime.getDate()}/${dateTime.getMonth()}/${dateTime.getFullYear()} - hora ${dateTime.getHours()}:${dateTime.getMinutes()}`
let isMatch = false
let url = ""
//SELECTORES y zonas Genericos
let globalZones = [
{ name: "Header", selector: '#page-header' },
{ name: "Footer", selector: '#page-footer' },
]
let globalListeners = [
'#page-header-session-box .sign-in-button',
`#page-header-middle .b-suscription`,
`.svg-icon.menu`,
`#page-header-session-box .session`,
`.session-options li:nth-child(2) a`,
`#main-menu ul li a`,
".piece.markets.standard ul li"
]
//
//SELECTORES y zonas Home
let homeListeners = [
`.section article.item`,
`.sectionfull article.item`,
`article.locked`,
`.columnists .items article.item`
]
let homeInteractions = {
name: "Home"
}
//
function ReadHomeBlocks(target) {
let main = document.querySelector('.main-container');
let block1 = main.childNodes[0].querySelectorAll('article.item');
let block2 = main.childNodes[2].querySelectorAll('article.item')
sendDataFromHomeBlocks("Click, Article from home (Bloque1)", target, block1)
sendDataFromHomeBlocks("Click, Article from home (Bloque2)", target, block2)
}
function sendDataFromHomeBlocks(nameEvent, target, container) {
for (let i = 0; i < container.length; i++) {
if (target === container[i]) {
SalesforceInteractions.sendEvent({
interaction: {
name: nameEvent,
},
user: {
identities: {
emailAddress: email
},
attributes: {
name: userName
}
}
});
break;
}
}
}
function GenerateContentZones(zones) {
let ContentZones = [];
if (zones.length > 0) {
for (let i = 0; i < zones.length; i++) {
let ContentZone = {
name: zones[i].name,
selector: zones[i].selector
}
ContentZones.push(ContentZone)
}
}
return ContentZones;
}
function GenerateListeners(pageType, elements) {
let listeners = [];
if (elements.length > 0) {
for (let i = 0; i < elements.length; i++) {
if (pageType == "Home" && (elements[i] == elements[0] || elements[i] == elements[1])) {
let myEventsBlock = SalesforceInteractions.listener("click", elements[i], (e) => {
ReadHomeBlocks(e.currentTarget.innerText)
})
listeners.push(myEventsBlock)
} else {
console.log("else:" + elements[i])
let myEvents = SalesforceInteractions.listener("click", `${elements[i]}`, (e) => {
SalesforceInteractions.sendEvent({
interaction: {
name: "Botón " + element[i] == `.session-options li:nth-child(2) a` ? "Desplegable Menu perfil" : SalesforceInteractions.cashDom(e.currentTarget).text(),
attributes: {
userIdCms: idUser,
name: userName,
lastName: userName,
isSuscriber: isSuscriber,
emailAddress: email,
continueUrl: url
},
},
});
})
listeners.push(myEvents)
}
}
}
return listeners;
}
function PageType(name, myUrl, interaction, myEvents) {
this.name = name;
this.interaction = interaction;
this.isMatch = () => {
let url = window.location.href;
if (url.includes('?') || url.includes('/')) {
url = url.slice(0, window.location.href.lastIndexOf('?'));
}
isMatch = (url === `${enviroment}${myUrl}` ? true : false);
return isMatch;
};
this.listeners = GenerateListeners("Home", myEvents);
}
const home = new PageType("Home", "cronista.com", homeInteractions, homeListeners);
function Pages() {
return [home]
}
SalesforceInteractions.init({
cookieDomain: "cronista.com",
}).then(() => {
const sitemapConfig = {
global: {
onActionEvent: (actionEvent) => {
url = window.location.href
if (email) {
actionEvent.user = actionEvent.user || {};
actionEvent.user.attributes = actionEvent.user.attributes || {};
actionEvent.user.identities = actionEvent.user.identities || {};
actionEvent.user.attributes.URL || {};
actionEvent.user.attributes.contentZones || {};
actionEvent.user.attributes.emailAddress = email;
actionEvent.user.attributes.isSuscription = isSuscriber;
actionEvent.user.attributes.name = userName;
actionEvent.user.attributes.lastName = userName;
actionEvent.user.attributes.date = dateTime
actionEvent.user.identities.userIdCms = idUser;
}
return actionEvent;
},
contentZones: GenerateContentZones(globalZones),
listeners: GenerateListeners("Global", globalListeners),
},
pageTypeDefault: {
name: "default",
interaction: {
name: "Default Page",
}
},
pageTypes: Pages()
};
SalesforceInteractions.initSitemap(sitemapConfig);
});