@spartacus/tracking
Version:
Spartacus tracking and personalization library
44 lines • 6.82 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@spartacus/core";
/**
* Default Google Tag Manager collector.
*/
export class GtmCollectorService {
constructor(winRef) {
this.winRef = winRef;
}
/**
* If the `TmsCollectorConfig.dataLayerProperty` is not specified, it uses the default `dataLayer`
*/
init(config, windowObject) {
var _a, _b;
const dataLayerProperty = (_a = config.dataLayerProperty) !== null && _a !== void 0 ? _a : 'dataLayer';
windowObject[dataLayerProperty] = (_b = windowObject[dataLayerProperty]) !== null && _b !== void 0 ? _b : [];
if (config.gtmId) {
(function (w, d, s, l, i) {
var _a;
w[l] = w[l] || [];
w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
const f = d.getElementsByTagName(s)[0];
const j = d.createElement(s);
const dl = l !== 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
(_a = f.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(j, f);
})(windowObject, this.winRef.document, 'script', dataLayerProperty, config.gtmId);
}
}
pushEvent(config, windowObject, event) {
var _a;
const dataLayerProperty = (_a = config.dataLayerProperty) !== null && _a !== void 0 ? _a : 'dataLayer';
windowObject[dataLayerProperty].push(event);
}
}
GtmCollectorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GtmCollectorService, deps: [{ token: i1.WindowRef }], target: i0.ɵɵFactoryTarget.Injectable });
GtmCollectorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GtmCollectorService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GtmCollectorService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1.WindowRef }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RtLWNvbGxlY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZmVhdHVyZS1saWJzL3RyYWNraW5nL3Rtcy9ndG0vc2VydmljZXMvZ3RtLWNvbGxlY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVMzQzs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFBc0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUFHLENBQUM7SUFDM0M7O09BRUc7SUFDSCxJQUFJLENBQUMsTUFBMEIsRUFBRSxZQUEwQjs7UUFDekQsTUFBTSxpQkFBaUIsR0FBRyxNQUFBLE1BQU0sQ0FBQyxpQkFBaUIsbUNBQUksV0FBVyxDQUFDO1FBQ2xFLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLE1BQUEsWUFBWSxDQUFDLGlCQUFpQixDQUFDLG1DQUFJLEVBQUUsQ0FBQztRQUV4RSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsQ0FBQyxVQUNDLENBQWUsRUFDZixDQUFXLEVBQ1gsQ0FBUyxFQUNULENBQVMsRUFDVCxDQUFTOztnQkFFVCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFzQixDQUFDO2dCQUNsRCxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNmLENBQUMsQ0FBQyxHQUFHLEdBQUcsNkNBQTZDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDL0QsTUFBQSxDQUFDLENBQUMsVUFBVSwwQ0FBRSxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUNBLFlBQVksRUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFDcEIsUUFBUSxFQUNSLGlCQUFpQixFQUNqQixNQUFNLENBQUMsS0FBSyxDQUNiLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxTQUFTLENBQ1AsTUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsS0FBYzs7UUFFZCxNQUFNLGlCQUFpQixHQUFHLE1BQUEsTUFBTSxDQUFDLGlCQUFpQixtQ0FBSSxXQUFXLENBQUM7UUFDbEUsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7O2dIQTFDVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUROLE1BQU07MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDeEV2ZW50LCBXaW5kb3dSZWYgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xuaW1wb3J0IHtcbiAgVG1zQ29sbGVjdG9yLFxuICBUbXNDb2xsZWN0b3JDb25maWcsXG4gIFdpbmRvd09iamVjdCxcbn0gZnJvbSAnQHNwYXJ0YWN1cy90cmFja2luZy90bXMvY29yZSc7XG5pbXBvcnQgeyBHdG1Db2xsZWN0b3JDb25maWcgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdC1ndG0uY29uZmlnJztcblxuLyoqXG4gKiBEZWZhdWx0IEdvb2dsZSBUYWcgTWFuYWdlciBjb2xsZWN0b3IuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgR3RtQ29sbGVjdG9yU2VydmljZSBpbXBsZW1lbnRzIFRtc0NvbGxlY3RvciB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB3aW5SZWY6IFdpbmRvd1JlZikge31cbiAgLyoqXG4gICAqIElmIHRoZSBgVG1zQ29sbGVjdG9yQ29uZmlnLmRhdGFMYXllclByb3BlcnR5YCBpcyBub3Qgc3BlY2lmaWVkLCBpdCB1c2VzIHRoZSBkZWZhdWx0IGBkYXRhTGF5ZXJgXG4gICAqL1xuICBpbml0KGNvbmZpZzogR3RtQ29sbGVjdG9yQ29uZmlnLCB3aW5kb3dPYmplY3Q6IFdpbmRvd09iamVjdCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGFMYXllclByb3BlcnR5ID0gY29uZmlnLmRhdGFMYXllclByb3BlcnR5ID8/ICdkYXRhTGF5ZXInO1xuICAgIHdpbmRvd09iamVjdFtkYXRhTGF5ZXJQcm9wZXJ0eV0gPSB3aW5kb3dPYmplY3RbZGF0YUxheWVyUHJvcGVydHldID8/IFtdO1xuXG4gICAgaWYgKGNvbmZpZy5ndG1JZCkge1xuICAgICAgKGZ1bmN0aW9uIChcbiAgICAgICAgdzogV2luZG93T2JqZWN0LFxuICAgICAgICBkOiBEb2N1bWVudCxcbiAgICAgICAgczogc3RyaW5nLFxuICAgICAgICBsOiBzdHJpbmcsXG4gICAgICAgIGk6IHN0cmluZ1xuICAgICAgKSB7XG4gICAgICAgIHdbbF0gPSB3W2xdIHx8IFtdO1xuICAgICAgICB3W2xdLnB1c2goeyAnZ3RtLnN0YXJ0JzogbmV3IERhdGUoKS5nZXRUaW1lKCksIGV2ZW50OiAnZ3RtLmpzJyB9KTtcbiAgICAgICAgY29uc3QgZiA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07XG4gICAgICAgIGNvbnN0IGogPSBkLmNyZWF0ZUVsZW1lbnQocykgYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGRsID0gbCAhPT0gJ2RhdGFMYXllcicgPyAnJmw9JyArIGwgOiAnJztcbiAgICAgICAgai5hc3luYyA9IHRydWU7XG4gICAgICAgIGouc3JjID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0bS5qcz9pZD0nICsgaSArIGRsO1xuICAgICAgICBmLnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShqLCBmKTtcbiAgICAgIH0pKFxuICAgICAgICB3aW5kb3dPYmplY3QsXG4gICAgICAgIHRoaXMud2luUmVmLmRvY3VtZW50LFxuICAgICAgICAnc2NyaXB0JyxcbiAgICAgICAgZGF0YUxheWVyUHJvcGVydHksXG4gICAgICAgIGNvbmZpZy5ndG1JZFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdXNoRXZlbnQ8VCBleHRlbmRzIEN4RXZlbnQ+KFxuICAgIGNvbmZpZzogVG1zQ29sbGVjdG9yQ29uZmlnLFxuICAgIHdpbmRvd09iamVjdDogV2luZG93T2JqZWN0LFxuICAgIGV2ZW50OiBUIHwgYW55XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGFMYXllclByb3BlcnR5ID0gY29uZmlnLmRhdGFMYXllclByb3BlcnR5ID8/ICdkYXRhTGF5ZXInO1xuICAgIHdpbmRvd09iamVjdFtkYXRhTGF5ZXJQcm9wZXJ0eV0ucHVzaChldmVudCk7XG4gIH1cbn1cbiJdfQ==