{"version":3,"file":"trilok3003-angular-jaivik-src-lib-globalSiteTag.mjs","sources":["../../../projects/jaivik/src/lib/globalSiteTag/global-site-tag-config.ts","../../../projects/jaivik/src/lib/globalSiteTag/global-site-tag.service.ts","../../../projects/jaivik/src/lib/globalSiteTag/global-site-tag-routing.service.ts","../../../projects/jaivik/src/lib/globalSiteTag/global-site-tag.module.ts","../../../projects/jaivik/src/lib/globalSiteTag/trilok3003-angular-jaivik-src-lib-globalSiteTag.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\n\nexport interface GlobalSiteTagConfig {\n    id: string | null;\n    enableScreenTracking?: boolean\n}\n\nexport const GlobalSiteTagConfigToken = new InjectionToken<GlobalSiteTagConfig>('global-site-tag-config');\n","import {Inject, Injectable} from \"@angular/core\";\nimport {GlobalSiteTagConfig, GlobalSiteTagConfigToken} from \"./global-site-tag-config\";\n\n// declare var gtag;\n\n@Injectable({\n    providedIn: 'root'\n})\n\n\nexport class GlobalSiteTagService {\n    private readonly config: GlobalSiteTagConfig | null;\n\n    constructor(@Inject(GlobalSiteTagConfigToken) public globalSiteTagConfig: GlobalSiteTagConfig) {\n        this.config = this.globalSiteTagConfig;\n        this.checkConfigGtId().then(() => {\n            this.gtag('js', new Date());\n        });\n    }\n\n    get dataLayer() {\n        return this.getWindow().dataLayer || [];\n    }\n\n    async checkConfigGtId() {\n        if (!this.config.id) {\n            throw new Error('Global Site tag  ID not provided.');\n        }\n        if (this.config.id) {\n            await this.configure()\n        }\n    }\n\n    pushTag(obj: object) {\n        this.gtag('config', this.config.id, obj);\n    }\n\n    getWindow(): any {\n        return window;\n    }\n\n    gtag(...args) {\n        this.dataLayer.push(arguments);\n        //     (<any>window).dataLayer.push(arguments)\n    }\n\n    private async configure() {\n        const script = document.createElement('script');\n        script.async = true;\n        script.src = 'https://www.googletagmanager.com/gtag/js?id=' + this.config.id;\n        document.head.prepend(script);\n    }\n}\n\n/**\n *     <!-- Google tag  -->\n *     <script>\n *         window.dataLayer = window.dataLayer || [];\n *         function gtag(){dataLayer.push(arguments);}\n *         gtag('js', new Date());\n *     </script>\n */\n","import {Injectable} from \"@angular/core\";\nimport {NavigationEnd, Router} from \"@angular/router\";\nimport {GlobalSiteTagService} from \"./global-site-tag.service\";\nimport {filter} from \"rxjs\";\n\n@Injectable()\n\nexport class GlobalSiteTagRoutingService {\n    constructor(private router: Router, private globalSiteTagService: GlobalSiteTagService) {\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.globalSiteTagService.pushTag(gtmTag)\n\n            // this.globalSiteTagService.setTag('config', {'page_path': e.urlAfterRedirects})\n        });\n    }\n}\n","import {ModuleWithProviders, NgModule, Optional} from \"@angular/core\";\nimport {GlobalSiteTagConfig, GlobalSiteTagConfigToken} from \"./global-site-tag-config\";\nimport {GlobalSiteTagRoutingService} from \"./global-site-tag-routing.service\";\n\n\n@NgModule()\n\nexport class GlobalSiteTagModule {\n    constructor(@Optional() _globalSiteTagRoutingService: GlobalSiteTagRoutingService) {\n    }\n\n    public static forRoot(config: GlobalSiteTagConfig): ModuleWithProviders<GlobalSiteTagModule> {\n        const providers = [];\n        if (config.enableScreenTracking) {\n            providers.push(GlobalSiteTagRoutingService)\n        }\n        return {\n            ngModule: GlobalSiteTagModule,\n            providers: [\n                {provide: GlobalSiteTagConfigToken, useValue: config},\n                ...providers\n            ]\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.GlobalSiteTagService","i1.GlobalSiteTagRoutingService"],"mappings":"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"}