@spartacus/tracking
Version:
Spartacus tracking and personalization library
106 lines (96 loc) • 5.49 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@spartacus/core')) :
typeof define === 'function' && define.amd ? define('@spartacus/tracking/tms/gtm', ['exports', '@angular/core', '@spartacus/core'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.spartacus = global.spartacus || {}, global.spartacus.tracking = global.spartacus.tracking || {}, global.spartacus.tracking.tms = global.spartacus.tracking.tms || {}, global.spartacus.tracking.tms.gtm = {}), global.ng.core, global.core));
}(this, (function (exports, i0, i1) { 'use strict';
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () {
return e[k];
}
});
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
/**
* Default Google Tag Manager collector.
*/
var GtmCollectorService = /** @class */ (function () {
function GtmCollectorService(winRef) {
this.winRef = winRef;
}
/**
* If the `TmsCollectorConfig.dataLayerProperty` is not specified, it uses the default `dataLayer`
*/
GtmCollectorService.prototype.init = function (config, windowObject) {
var _a, _b;
var 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' });
var f = d.getElementsByTagName(s)[0];
var j = d.createElement(s);
var 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);
}
};
GtmCollectorService.prototype.pushEvent = function (config, windowObject, event) {
var _a;
var dataLayerProperty = (_a = config.dataLayerProperty) !== null && _a !== void 0 ? _a : 'dataLayer';
windowObject[dataLayerProperty].push(event);
};
return GtmCollectorService;
}());
GtmCollectorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: GtmCollectorService, deps: [{ token: i1__namespace.WindowRef }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
GtmCollectorService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: GtmCollectorService, providedIn: 'root' });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: GtmCollectorService, decorators: [{
type: i0.Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1__namespace.WindowRef }]; } });
var defaultGoogleTagManagerConfig = {
tagManager: {
gtm: {
collector: GtmCollectorService,
},
},
};
var GtmModule = /** @class */ (function () {
function GtmModule() {
}
return GtmModule;
}());
GtmModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: GtmModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
GtmModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: GtmModule });
GtmModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: GtmModule, providers: [i1.provideDefaultConfig(defaultGoogleTagManagerConfig)] });
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0__namespace, type: GtmModule, decorators: [{
type: i0.NgModule,
args: [{
providers: [i1.provideDefaultConfig(defaultGoogleTagManagerConfig)],
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
exports.GtmCollectorService = GtmCollectorService;
exports.GtmModule = GtmModule;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=spartacus-tracking-tms-gtm.umd.js.map