UNPKG

@spartacus/tracking

Version:

Spartacus tracking and personalization library

106 lines (96 loc) 5.49 kB
(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