dataFactor.js

92 lines | 2.899 kB Blame History Raw Download
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 main = document.querySelector('.main-container');
let block = main.querySelectorAll('div.block');
let isMatch = false
let url = ""
//SELECTORES DE LA Genericos
const ulOptions = document.querySelector('.session-options');
const ItemsList = ulOptions.querySelectorAll('li');
const perfil = ItemsList[1].querySelector('a');

let listenersHome = [
    `.${block[0].className} h2.title`,
    `.${block[1].className} h2.title`,
    `.locked a`,
    `.columnists .items article.item`
]
let interactionHome = {
    name: "es mi nombre"
}

function GenerateContentZones(names, selectors) {
    let ContentZones = [];
    if (names.length === selectors.length) {
        let size = names.length
        for (let i = 0; i < size; i++) {
            let ContentZone = {
                name: names[i],
                selector: selectors[i]
            }
            ContentZones.push(ContentZone)
        }
    }
    return ContentZones;
}

function GenerateListeners(elements) {
    let listeners = [];
    if (elements.length > 0) {
        for (let i = 0; i < elements.length; i++) {
            let myEvents = SalesforceInteractions.listener("click", `${elements[i]}`, (e) => {
                SalesforceInteractions.sendEvent({
                    interaction: {
                        name: "Botón " + SalesforceInteractions.cashDom(e.target).text(),
                        attributes: {
                            userIdCms: idUser,
                            name: userName,
                            lastName: userName,
                            isSuscriber: isSuscriber,
                            emailAddress: email,
                            continueUrl: url
                        },
                    },
                });
            })
            listeners.push(myEvents)
        }
    }
    return listeners;
}

function PageType(name, myUrl, interaction, listeners) {
    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(listeners);
}
const home = new PageType("Home", "cronista.com", interactionHome, listenersHome);

function Pages() {
    return [home]
}

export { Pages }