ngx-google-analytics
Version:
A simple ng-9 wrapper to load Google Analytics dependency by angular way
21 lines • 3.05 kB
JavaScript
import { InjectionToken, inject } from '@angular/core';
import { NGX_WINDOW } from './ngx-window-token';
import { NGX_DATA_LAYER } from './ngx-data-layer-token';
/**
* Check if there is some global function called gtag on Window object, or create an empty function to doesn't brake codes...
*/
export function getGtagFn(window, dataLayer) {
return (window)
? window['gtag'] = window['gtag'] || function () {
dataLayer.push(arguments);
}
: null;
}
/**
* Provides an injection token to access Google Analytics Gtag Function
*/
export const NGX_GTAG_FN = new InjectionToken('ngx-gtag-fn', {
providedIn: 'root',
factory: () => getGtagFn(inject(NGX_WINDOW), inject(NGX_DATA_LAYER))
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWd0YWctdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ29vZ2xlLWFuYWx5dGljcy9zcmMvbGliL3Rva2Vucy9uZ3gtZ3RhZy10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3hEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFnQixFQUFFLFNBQW9CO0lBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQWdCLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBUyxhQUFhLEVBQUU7SUFDbkUsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0NBQ3JFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWF9XSU5ET1cgfSBmcm9tICcuL25neC13aW5kb3ctdG9rZW4nO1xuaW1wb3J0IHsgR3RhZ0ZuIH0gZnJvbSAnLi4vdHlwZXMvZ3RhZy50eXBlJztcbmltcG9ydCB7IERhdGFMYXllciB9IGZyb20gJy4uL3R5cGVzL2RhdGEtbGF5ZXIudHlwZSc7XG5pbXBvcnQgeyBOR1hfREFUQV9MQVlFUiB9IGZyb20gJy4vbmd4LWRhdGEtbGF5ZXItdG9rZW4nO1xuaW1wb3J0IHsgR2FXaW5kb3cgfSBmcm9tICcuL25neC1nb29nbGUtYW5hbHl0aWNzLXdpbmRvdyc7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlcmUgaXMgc29tZSBnbG9iYWwgZnVuY3Rpb24gY2FsbGVkIGd0YWcgb24gV2luZG93IG9iamVjdCwgb3IgY3JlYXRlIGFuIGVtcHR5IGZ1bmN0aW9uIHRvIGRvZXNuJ3QgYnJha2UgY29kZXMuLi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEd0YWdGbih3aW5kb3c6IEdhV2luZG93LCBkYXRhTGF5ZXI6IERhdGFMYXllcik6IEd0YWdGbiB7XG4gIHJldHVybiAod2luZG93KVxuICAgID8gd2luZG93WydndGFnJ10gPSB3aW5kb3dbJ2d0YWcnXSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRhdGFMYXllci5wdXNoKGFyZ3VtZW50cyBhcyBhbnkpO1xuICAgICAgfVxuICAgIDogbnVsbDtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhbiBpbmplY3Rpb24gdG9rZW4gdG8gYWNjZXNzIEdvb2dsZSBBbmFseXRpY3MgR3RhZyBGdW5jdGlvblxuICovXG5leHBvcnQgY29uc3QgTkdYX0dUQUdfRk4gPSBuZXcgSW5qZWN0aW9uVG9rZW48R3RhZ0ZuPignbmd4LWd0YWctZm4nLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gZ2V0R3RhZ0ZuKGluamVjdChOR1hfV0lORE9XKSwgaW5qZWN0KE5HWF9EQVRBX0xBWUVSKSlcbn0pO1xuIl19