{"version":3,"file":"trilok3003-angular-jaivik-src-lib-googleTagManager.mjs","sources":["../../../projects/jaivik/src/lib/googleTagManager/google-tag-manager-config.ts","../../../projects/jaivik/src/lib/googleTagManager/google-tag-manager.service.ts","../../../projects/jaivik/src/lib/googleTagManager/google-tag-manager-routing.service.ts","../../../projects/jaivik/src/lib/googleTagManager/google-tag-manager.module.ts","../../../projects/jaivik/src/lib/googleTagManager/google-tag-manager-v2.service.ts","../../../projects/jaivik/src/lib/googleTagManager/trilok3003-angular-jaivik-src-lib-googleTagManager.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\n\nexport interface GoogleTagManagerConfig {\n    id: string | null;\n    enableScreenTracking?: boolean;\n}\nexport const DefaultGoogleTagManagerConfig: GoogleTagManagerConfig = {id : null, enableScreenTracking: false}\n\n\nexport const GoogleTagManagerConfigToken = new InjectionToken<GoogleTagManagerConfig>('google-tag-manager-config');\n","import {Inject, Injectable} from \"@angular/core\";\nimport {GoogleTagManagerConfig, GoogleTagManagerConfigToken} from \"./google-tag-manager-config\";\n\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class GoogleTagManagerService {\n    private readonly config: GoogleTagManagerConfig | null;\n    private isLoaded = false;\n    private browserGlobals = {\n        windowRef(): any {\n            return window;\n        },\n        documentRef(): any {\n            return document;\n        },\n    };\n\n    constructor(@Inject(GoogleTagManagerConfigToken) public googleTagManagerConfig: GoogleTagManagerConfig) {\n        this.config = this.googleTagManagerConfig;\n        this.checkConfigGtmId();\n    }\n\n    checkConfigGtmId() {\n        if (!this.config.id) {\n            // throw new Error('Google tag manager ID not provided.');\n            console.warn('Google tag manager ID not provided.');\n        }\n        if (this.config.id) {\n            if (!this.isLoaded) {\n                this.configGtmToDom()\n            }\n        }\n    }\n\n    public configGtmToDom(): Promise<boolean> {\n        return new Promise((resolve, reject) => {\n            if (this.isLoaded) {\n                return resolve(this.isLoaded);\n            } else if (!this.config.id) {\n                return resolve(false);\n            }\n            this.pushOnDataLayer({\n                'gtm.start': new Date().getTime(),\n                event: 'gtm.js',\n            });\n            const gtmScript = document.createElement('script');\n            gtmScript.id = 'gtmScript';\n            gtmScript.async = true;\n            gtmScript.src = `https://www.googletagmanager.com/gtm.js?id=${this.config.id}`\n            gtmScript.addEventListener('load', () => {\n                return resolve((this.isLoaded = true));\n            });\n            gtmScript.addEventListener('error', () => {\n                return reject(false);\n            });\n            document.head.insertBefore(gtmScript, document.head.firstChild);\n        })\n    }\n\n\n    public getDataLayer(): any[] {\n        const window = this.browserGlobals.windowRef();\n        window.dataLayer = window.dataLayer || [];\n        return window.dataLayer;\n    }\n\n    public pushTag(item: object) {\n        this.pushOnDataLayer(item);\n    }\n\n    private pushOnDataLayer(obj: object): void {\n        const dataLayer = this.getDataLayer();\n        dataLayer.push(obj);\n    }\n}\n\n","import {Injectable} from \"@angular/core\";\nimport {NavigationEnd, Router} from \"@angular/router\";\nimport {GoogleTagManagerService} from \"./google-tag-manager.service\";\nimport {filter} from \"rxjs\";\n\n@Injectable()\n\nexport class GoogleTagManagerRoutingService {\n    constructor(private router: Router, private googleTagManagerService: GoogleTagManagerService) {\n        this.routingScreenTracking()\n    }\n\n    // Page events\n    routingScreenTracking() {\n        const navEndEvent$ = this.router.events.pipe(\n            filter(e => e instanceof NavigationEnd)\n        );\n        navEndEvent$.subscribe((e: NavigationEnd | any) => {\n            const gtmTag = {\n                event: 'page',\n                pageName: e.url // e.urlAfterRedirects\n            };\n            this.googleTagManagerService.pushTag(gtmTag)\n        });\n    }\n}\n","import {ModuleWithProviders, NgModule, Optional} from \"@angular/core\";\nimport {GoogleTagManagerConfig, GoogleTagManagerConfigToken} from \"./google-tag-manager-config\";\nimport {GoogleTagManagerRoutingService} from \"./google-tag-manager-routing.service\";\n\n@NgModule()\nexport class GoogleTagManagerModule {\n    constructor(@Optional() _googleTagManagerRoutingService: GoogleTagManagerRoutingService) {\n    }\n    public static forRoot(config: GoogleTagManagerConfig): ModuleWithProviders<GoogleTagManagerModule> {\n        const providers = [];\n        if (config.enableScreenTracking) {\n            providers.push(GoogleTagManagerRoutingService)\n        }\n        return {\n            ngModule: GoogleTagManagerModule,\n            providers: [\n                {provide: GoogleTagManagerConfigToken, useValue: config},\n                ...providers\n            ],\n        };\n    }\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {GoogleTagManagerConfig, GoogleTagManagerConfigToken} from \"./google-tag-manager-config\";\n\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class GoogleTagManagerV2ServiceService {\n    private readonly config: GoogleTagManagerConfig | null;\n\n    constructor(@Inject(GoogleTagManagerConfigToken) public googleTagManagerConfig: GoogleTagManagerConfig) {\n        this.config = this.googleTagManagerConfig;\n        this.checkConfigGtmId();\n    }\n\n    checkConfigGtmId() {\n        if (!this.config.id) {\n            throw new Error('Google tag manager ID not provided.');\n        }\n        if (this.config.id) {\n            this.configure()\n        }\n    }\n\n    private configure() {\n        const script = document.createElement('script');\n        script.async = true;\n        script.src = 'https://www.googletagmanager.com/gtm.js?id=' + this.config.id;\n        document.head.insertBefore(script, document.head.firstChild);\n        // document.head.prepend(script);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.GoogleTagManagerService","i1.GoogleTagManagerRoutingService"],"mappings":"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"}