{"version":3,"file":"angulartics2-gtm.js","sources":["ng://angulartics2/gtm/gtm.ts","ng://angulartics2/gtm/angulartics2-gtm.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Angulartics2, GoogleTagManagerSettings } from 'angulartics2';\n\ndeclare var dataLayer: any;\n\nexport class GoogleTagManagerDefaults implements GoogleTagManagerSettings {\n userId = null;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoogleTagManager {\n\n constructor(\n protected angulartics2: Angulartics2,\n ) {\n // The dataLayer needs to be initialized\n if (typeof dataLayer !== 'undefined' && dataLayer) {\n dataLayer = (window as any).dataLayer = (window as any).dataLayer || [];\n }\n const defaults = new GoogleTagManagerDefaults();\n // Set the default settings for this module\n this.angulartics2.settings.gtm = { ...defaults, ...this.angulartics2.settings.gtm };\n this.angulartics2.setUsername\n .subscribe((x: string) => this.setUsername(x));\n }\n\n startTracking() {\n this.angulartics2.pageTrack\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x) => this.pageTrack(x.path));\n this.angulartics2.eventTrack\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x) => this.eventTrack(x.action, x.properties));\n this.angulartics2.exceptionTrack\n .pipe(this.angulartics2.filterDeveloperMode())\n .subscribe((x: any) => this.exceptionTrack(x));\n }\n\n pageTrack(path: string) {\n this.pushLayer({\n event: 'Page View',\n 'content-name': path,\n userId: this.angulartics2.settings.gtm.userId\n });\n }\n\n /**\n * Send Data Layer\n *\n * @layer data layer object\n */\n pushLayer(layer: any) {\n if (typeof dataLayer !== 'undefined' && dataLayer) {\n dataLayer.push(layer);\n }\n }\n\n /**\n * Send interactions to the dataLayer, i.e. for event tracking in Google Analytics\n *\n * @param action associated with the event\n */\n eventTrack(action: string, properties: any) {\n // TODO: make interface\n // @param {string} properties.category\n // @param {string} [properties.label]\n // @param {number} [properties.value]\n // @param {boolean} [properties.noninteraction]\n // Set a default GTM category\n properties = properties || {};\n\n this.pushLayer({\n event: properties.event || 'interaction',\n target: properties.category || 'Event',\n action,\n label: properties.label,\n value: properties.value,\n interactionType: properties.noninteraction,\n userId: this.angulartics2.settings.gtm.userId,\n ...properties.gtmCustom\n });\n }\n\n /**\n * Exception Track Event in GTM\n *\n */\n exceptionTrack(properties: any) {\n // TODO: make interface\n // @param {Object} properties\n // @param {string} properties.appId\n // @param {string} properties.appName\n // @param {string} properties.appVersion\n // @param {string} [properties.description]\n // @param {boolean} [properties.fatal]\n if (! properties || ! properties.appId || ! properties.appName || ! properties.appVersion) {\n console.error('Must be setted appId, appName and appVersion.');\n return;\n }\n\n if (properties.fatal === undefined) {\n console.log('No \"fatal\" provided, sending with fatal=true');\n properties.exFatal = true;\n }\n\n properties.exDescription = properties.event ? properties.event.stack : properties.description;\n\n this.eventTrack(`Exception thrown for ${properties.appName} <${properties.appId}@${properties.appVersion}>`, {\n category: 'Exception',\n label: properties.exDescription,\n });\n }\n\n /**\n * Set userId for use with Universal Analytics User ID feature\n *\n * @param userId used to identify user cross-device in Google Analytics\n */\n setUsername(userId: string) {\n this.angulartics2.settings.gtm.userId = userId;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './gtm';\n"],"names":[],"mappings":"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"}