backpack-ui
Version:
Lonely Planet's Components
50 lines (45 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var prepareDataLayer = function prepareDataLayer() {
/**
* Makes sure data layer array is set at "window.lp.analytics".
* Will use any preexisting parts thereof instead of wiping them out.
*/
var path = ["lp", "analytics", "dataLayer"];
path.reduce(function (acc, key, i) {
var isLastIteration = i === path.length - 1;
return acc[key] || (acc[key] = isLastIteration ? [] : {});
}, window);
};
var dataLayerPush = exports.dataLayerPush = function dataLayerPush(event) {
if (typeof window === "undefined") return;
prepareDataLayer();
var _arr = [window.lp.analytics.dataLayer, window.dataLayer];
for (var _i = 0; _i < _arr.length; _i++) {
var dl = _arr[_i];
/**
* in rizzo-based codebases, lp.analytics.dataLayer is an object;
* push to window.dataLayer (if possible) instead.
*/
if (Array.isArray(dl)) {
dl.push(event);
break;
}
}
};
var createPromotionClickEvent = exports.createPromotionClickEvent = function createPromotionClickEvent(promotion) {
return {
/**
* Brought over from `lp-analytics`' `src/events/eventCreators.ts` to save
* bundle space.
*/
event: "promotion-click",
ecommerce: {
promoClick: {
promotions: [promotion]
}
}
};
};