Skip to content

Commit

Permalink
Merge pull request #157 from DP6/correcoes-ga4-prettier
Browse files Browse the repository at this point in the history
Correções globais no processo de build e no código final
  • Loading branch information
carolmsl authored Nov 29, 2022
2 parents 1180b8d + f2eb5a5 commit b143d64
Show file tree
Hide file tree
Showing 21 changed files with 1,605 additions and 1,906 deletions.
3 changes: 2 additions & 1 deletion .prettierrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
],
"printWidth": 120,
"tabWidth": 2,
"singleQuote": true
"singleQuote": true,
"trailingComma": "none"
}
186 changes: 96 additions & 90 deletions build/gtm/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,16 @@
gtmCleanup: function (gtmId) {
collect.setDataLayer('ecommerce', undefined);
collect.setDataLayer('eventNoInteraction', undefined);

for (var i = 0; i < options.historyParams.length; i++) { //For GA4

// For GA4
for (var i = 0; i < options.historyParams.length; i++) {
collect.setDataLayer(options.historyParams[i], undefined);
}
}
};

var internal = {
sentPageview: false
sentPageview: false
};

var collect = {
Expand Down Expand Up @@ -80,7 +81,6 @@
}

function setCookie(name, value, opts) {

var cookie = name + '=' + window.escape(value);

if (opts.exdays) {
Expand All @@ -95,20 +95,18 @@
}

for (var optKey in opts) {
cookie += "; " + optKey;
cookie += '; ' + optKey;
var optValue = opts[optKey];
if (optValue !== true) {
cookie += "=" + optValue;
cookie += '=' + optValue;
}
}

return (document.cookie = cookie);
}

function cookie(name, value, opts) {
if (typeof value === 'undefined')
return getCookie(name);

if (typeof value === 'undefined') return getCookie(name);
return setCookie(name, value, opts);
}

Expand Down Expand Up @@ -140,9 +138,7 @@
}

handler = function(e) {
for (
var target = e.target; target && target !== this; target = target.parentNode
) {
for (var target = e.target; target && target !== this; target = target.parentNode) {
if (matches(target, selector)) {
var handler = safeFn(id, oldHandler, {
event: event,
Expand Down Expand Up @@ -225,8 +221,7 @@
var ret = [];
for (var index = 0; index < elms.length; index++) {
elm = elms[index];
if (elm instanceof HTMLElement === false)
throw 'internalMap: Esperado elemento HTML';
if (elm instanceof HTMLElement === false) throw 'internalMap: Esperado elemento HTML';
args = [elm].concat(exArgs);
ret.push(func.apply(null, args));
}
Expand Down Expand Up @@ -413,41 +408,45 @@
log('warn', err);
}
}

internal.ga4Queue = [];

function ga4Event(event_name, params, ecommerce, id) {
try {
if (internal.sentPageview === false && options.waitQueue) {
log('Info', 'The event (' + arguments + ') has been add to the queue');
return internal.ga4Queue.push(arguments);
}

var _params;
if (ecommerce) ecommerce = mapGa4Ecommerce(ecommerce, event_name);
else _params = mapGa4Ecommerce(params, event_name);

if (ecommerce) {
ecommerce = mapGa4Ecommerce(ecommerce, event_name);
} else {
_params = mapGa4Ecommerce(params, event_name);
}

var result = {
event: options.customNameGA4Event,
event_name: event_name,
_tag: id
};

if (options.gtmCleanup) {
options.historyParams = Object.keys(params || {}); //pensar se é util
options.historyParams = Object.keys(params || {});
result.eventCallback = options.gtmCleanup;
}

var data = _params ? _params : merge(params || {}, ecommerce || {});
var data = _params || merge(params || {}, ecommerce || {});
log('info', data);
window[options.dataLayerName].push(merge(result, data));
} catch (err) {
log('warn', err);
}
}

function mapGa4Ecommerce(ecommerce, event_name) {

if (!ecommerce) return undefined;
if (ecommerce.items) return ecommerce;

var mapEcommerce = {
promotions: function(promotions) {
var items = [];
Expand All @@ -462,106 +461,115 @@
return items;
},
impressions: function(ecommerce) {
var ec = mapEcommerce.items(ecommerce.impressions);
return ec;
return mapEcommerce.items(ecommerce.impressions);
},
items: function(products) {
var items = [];
for (var i = 0; i < products.length; i++) {
var item = {};
products[i].id && (item.item_id = products[i].id);
products[i].name && (item.item_name = products[i].name);
products[i].brand && (item.item_brand = products[i].brand);
products[i].price && (item.price = products[i].price);
products[i].variant && (item.item_variant = products[i].variant);
products[i].quantity && (item.quantity = products[i].quantity);
products[i].coupon && (item.coupon = products[i].coupon);
products[i].list && (item.item_list_name = products[i].list);
products[i].position && (item.index = products[i].position);
if (products[i].id) item.item_id = products[i].id;
if (products[i].name) item.item_name = products[i].name;
if (products[i].brand) item.item_brand = products[i].brand;
if (products[i].price) item.price = products[i].price;
if (products[i].variant) item.item_variant = products[i].variant;
if (products[i].quantity) item.quantity = products[i].quantity;
if (products[i].coupon) item.coupon = products[i].coupon;
if (products[i].list) item.item_list_name = products[i].list;
if (products[i].position) item.index = products[i].position;

var category = products[i].category ? products[i].category.split('/') : [];
for (var j = 0; j < category.length; j++) {
if (j === 0) item.item_category = category[j];
else item['item_category' + (j + 1)] = category[j];
item.item_category = category[0];

for (var j = 1; j < category.length; j++) {
item['item_category' + (j + 1)] = category[j];
}
items.push(item);
}
return items;
}
}
};

if (!ecommerce) return undefined;
if(ecommerce.hasOwnProperty('items')) return ecommerce;

var ec = { 'ecommerce' : { } };
ec.ecommerce.currency = ecommerce.currencyCode ? ecommerce.currencyCode : options.currencyCode;
var ec = {
ecommerce: {}
};
ec.ecommerce.currency = ecommerce.currencyCode || options.currencyCode;

if (ecommerce.hasOwnProperty('click')) {
if (ecommerce.click) {
ec.ecommerce.items = mapEcommerce.items(ecommerce.click.products);
if (ecommerce.click.hasOwnProperty('actionField'))
ecommerce.click.actionField.list && (ec.ecommerce.item_list_name = ecommerce.click.actionField.list)
if (ecommerce.click.actionField && ecommerce.click.actionField.list)
ec.ecommerce.item_list_name = ecommerce.click.actionField.list;
return ec;
}
if (ecommerce.hasOwnProperty('detail')) {

if (ecommerce.detail) {
ec.ecommerce.items = mapEcommerce.items(ecommerce.detail.products);
if (ecommerce.detail.hasOwnProperty('actionField'))
ecommerce.detail.actionField.list && (ec.ecommerce.item_list_name = ecommerce.detail.actionField.list)
if (ecommerce.detail.actionField && ecommerce.detail.actionField.list)
ec.ecommerce.item_list_name = ecommerce.detail.actionField.list;
return ec;
}
if (ecommerce.hasOwnProperty('add')) {

if (ecommerce.add) {
ec.ecommerce.items = mapEcommerce.items(ecommerce.add.products);
if (ecommerce.add.hasOwnProperty('actionField'))
ecommerce.add.actionField.list && (ec.ecommerce.item_list_name = ecommerce.add.actionField.list)
if (ecommerce.add.actionField && ecommerce.add.actionField.list)
ec.ecommerce.item_list_name = ecommerce.add.actionField.list;
return ec;
}
if (ecommerce.hasOwnProperty('remove')) {

if (ecommerce.remove) {
ec.ecommerce.items = mapEcommerce.items(ecommerce.remove.products);
if (ecommerce.remove.hasOwnProperty('actionField'))
ecommerce.remove.actionField.list && (ec.ecommerce.item_list_name = ecommerce.remove.actionField.list)

if (ecommerce.remove.actionField && ecommerce.remove.actionField.list)
ec.ecommerce.item_list_name = ecommerce.remove.actionField.list;
return ec;
}
if (ecommerce.hasOwnProperty('checkout')) {

if (ecommerce.checkout) {
ec.ecommerce.items = mapEcommerce.items(ecommerce.checkout.products);

if (event_name == 'add_shipping_info' && ecommerce.checkout.hasOwnProperty('actionField')) {
ecommerce.checkout.actionField.option && (ec.ecommerce.shipping_tier = ecommerce.checkout.actionField.option);
}
else if (event_name == 'add_payment_info' && ecommerce.checkout.hasOwnProperty('actionField')) {
ecommerce.checkout.actionField.option && (ec.ecommerce.payment_type = ecommerce.checkout.actionField.option);

if (ecommerce.checkout.actionField && ecommerce.checkout.actionField.option) {
if (event_name == 'add_shipping_info') {
ec.ecommerce.shipping_tier = ecommerce.checkout.actionField.option;
} else if (event_name == 'add_payment_info') {
ec.ecommerce.payment_type = ecommerce.checkout.actionField.option;
}
}
return ec;
}
if (ecommerce.hasOwnProperty('purchase')) {

if (ecommerce.purchase) {
ec.ecommerce.items = mapEcommerce.items(ecommerce.purchase.products);
if (ecommerce.purchase.hasOwnProperty('actionField')) {
ecommerce.purchase.actionField.id && (ec.ecommerce.transaction_id = ecommerce.purchase.actionField.id);
ecommerce.purchase.actionField.affiliation && (ec.ecommerce.affiliation = ecommerce.purchase.actionField.affiliation);
ecommerce.purchase.actionField.revenue && (ec.ecommerce.value = ecommerce.purchase.actionField.revenue);
ecommerce.purchase.actionField.tax && (ec.ecommerce.tax = ecommerce.purchase.actionField.tax);
ecommerce.purchase.actionField.shipping && (ec.ecommerce.shipping = ecommerce.purchase.actionField.shipping);
ecommerce.purchase.actionField.coupon && (ec.ecommerce.coupon = ecommerce.purchase.actionField.coupon);
if (ecommerce.purchase.actionField) {
if (ecommerce.purchase.actionField.id) ec.ecommerce.transaction_id = ecommerce.purchase.actionField.id;
if (ecommerce.purchase.actionField.affiliation)
ec.ecommerce.affiliation = ecommerce.purchase.actionField.affiliation;
if (ecommerce.purchase.actionField.revenue) ec.ecommerce.value = ecommerce.purchase.actionField.revenue;
if (ecommerce.purchase.actionField.tax) ec.ecommerce.tax = ecommerce.purchase.actionField.tax;
if (ecommerce.purchase.actionField.shipping) ec.ecommerce.shipping = ecommerce.purchase.actionField.shipping;
if (ecommerce.purchase.actionField.coupon) ec.ecommerce.coupon = ecommerce.purchase.actionField.coupon;
}
return ec;
}
if (ecommerce.hasOwnProperty('refund')) {

if (ecommerce.refund) {
ec.ecommerce.items = mapEcommerce.items(ecommerce.refund.products);
if (ecommerce.refund.hasOwnProperty('actionField'))
ecommerce.refund.actionField.id && (ec.ecommerce.transaction_id = ecommerce.refund.actionField.id);
if (ecommerce.refund.actionField && ecommerce.refund.actionField.id)
ec.ecommerce.transaction_id = ecommerce.refund.actionField.id;
return ec;
}
if (ecommerce.hasOwnProperty('impressions')) {

if (ecommerce.impressions) {
ec.ecommerce.items = mapEcommerce.impressions(ecommerce);
ecommerce.list && (ec.ecommerce.item_list_name = ecommerce.list);
if (ecommerce.list) ec.ecommerce.item_list_name = ecommerce.list;
return ec;
}
if (ecommerce.hasOwnProperty('promoView')) {
var _promotions = ecommerce.promoView.promotions ? ecommerce.promoView.promotions : [];
ec.ecommerce.items = mapEcommerce.promotions(_promotions)

if (ecommerce.promoView) {
ec.ecommerce.items = mapEcommerce.promotions(ecommerce.promoView.promotions || []);
return ec;
}
if (ecommerce.hasOwnProperty('promoClick')) {
var _promotions = ecommerce.promoClick.promotions ? ecommerce.promoClick.promotions : [];
ec.ecommerce.items = mapEcommerce.promotions(_promotions)

if (ecommerce.promoClick) {
ec.ecommerce.items = mapEcommerce.promotions(ecommerce.promoClick.promotions || []);
return ec;
}

Expand All @@ -570,7 +578,7 @@

function localCollectFactory(conf) {
var localCollect = {
ga4Event: function (event_name, params, ecommerce) {
ga4Event: function(event_name, params, ecommerce) {
return ga4Event(event_name, params, ecommerce, conf.id);
},
event: function(category, action, label, value, object) {
Expand Down Expand Up @@ -710,15 +718,13 @@

return opt.immediate === false ? safe : safe();
}

internal.timingQueue = [];

function timing(category, variable, value, label, object, id) {
try {
if (internal.sentPageview === false && options.waitQueue) {
log(
'Info',
'The timing event (' + arguments + ') has been add to the queue'
);
log('Info', 'The timing event (' + arguments + ') has been add to the queue');
return internal.timingQueue.push(arguments);
}

Expand Down Expand Up @@ -750,4 +756,4 @@

expose();

})();
})();
18 changes: 9 additions & 9 deletions core/modules/closest.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
function closest(elm, seletor) {
if ('closest' in elm) return elm.closest(seletor);
if (typeof jQuery === 'function') return jQuery(elm).closest(seletor)[0];
if ('closest' in elm) return elm.closest(seletor);
if (typeof jQuery === 'function') return jQuery(elm).closest(seletor)[0];

var parent = elm.parentNode;
var parent = elm.parentNode;

while (parent != document) {
if (matches(parent, seletor)) {
return parent;
}
parent = parent.parentNode;
while (parent != document) {
if (matches(parent, seletor)) {
return parent;
}
return undefined;
parent = parent.parentNode;
}
return undefined;
}

module.exports = closest;
Loading

0 comments on commit b143d64

Please sign in to comment.