UNPKG

@piwikpro/ngx-piwik-pro

Version:

Piwik PRO tracking library for Angular apps.

58 lines 7.9 kB
import { APP_INITIALIZER, PLATFORM_ID, isDevMode } from '@angular/core'; import { DOCUMENT, isPlatformBrowser } from '@angular/common'; import PiwikPro, { DataLayer, Miscellaneous } from '@piwikpro/tracking-base-library'; import { NGX_PIWIK_PRO_SETTINGS_TOKEN } from '../tokens/ngx-piwik-pro-settings.token'; import { VERSION } from "../../version"; export const NGX_PIWIK_PRO_INITIALIZER_PROVIDER = { provide: APP_INITIALIZER, multi: true, useFactory: PiwikProInitializer, deps: [ NGX_PIWIK_PRO_SETTINGS_TOKEN, DOCUMENT, PLATFORM_ID, ] }; export function PiwikProInitializer(settings, document, platformId) { return async () => { if (!isPlatformBrowser(platformId)) { return; } window._paq = window._paq || []; Miscellaneous.setTrackingSourceProvider("angular", VERSION); if (!settings.containerId) { if (!isDevMode()) { console.error('Empty tracking code for Piwik Pro. Make sure to provide one when initializing NgxPiwikProModule.'); } return; } if (!settings.containerURL) { if (!isDevMode()) { console.error('Empty tracking URL for Piwik Pro. Make sure to provide one when initializing NgxPiwikProModule.'); } return; } if (!document) { if (!isDevMode()) { console.error('Was not possible to access Document interface. Make sure this module is running on a Browser w/ access do Document interface.'); } } if (settings.dataLayerName) { DataLayer.setDataLayerName(settings.dataLayerName); } const s = document.createElement('script'); s.async = true; if (settings.nonce) { s.setAttribute("nonce", settings.nonce); } s.text = PiwikPro.getInitScript({ containerId: settings.containerId, containerUrl: settings.containerURL, nonceValue: settings.nonce, dataLayerName: settings.dataLayerName }); const head = document.getElementsByTagName('head')[0]; head.appendChild(s); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl3aWstcHJvLmluaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXBpd2lrLXByby9zcmMvbGliL2luaXRpYWxpemVycy9waXdpay1wcm8uaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBb0I7SUFDakUsT0FBTyxFQUFFLGVBQWU7SUFDeEIsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLElBQUksRUFBRTtRQUNKLDRCQUE0QjtRQUM1QixRQUFRO1FBQ1IsV0FBVztLQUNaO0NBQ0YsQ0FBQTtBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsUUFBMEIsRUFDMUIsUUFBa0IsRUFDbEIsVUFBa0I7SUFFbEIsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEMsYUFBYSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLGtHQUFrRyxDQUFDLENBQUM7WUFDcEgsQ0FBQztZQUVELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxpR0FBaUcsQ0FBQyxDQUFDO1lBQ25ILENBQUM7WUFFRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLCtIQUErSCxDQUFDLENBQUM7WUFDakosQ0FBQztRQUNILENBQUM7UUFFRCxJQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUMsQ0FBQztZQUN2QixTQUFTLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3RELENBQUM7UUFFRCxNQUFNLENBQUMsR0FBc0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsQ0FBQyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQzlCLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztZQUNqQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQzFCLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYTtTQUN0QyxDQUFDLENBQUE7UUFFRixNQUFNLElBQUksR0FBb0IsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgRmFjdG9yeVByb3ZpZGVyLCBQTEFURk9STV9JRCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IFBpd2lrUHJvLCB7IERhdGFMYXllciwgTWlzY2VsbGFuZW91cyB9IGZyb20gJ0BwaXdpa3Byby90cmFja2luZy1iYXNlLWxpYnJhcnknO1xuXG5pbXBvcnQgeyBOR1hfUElXSUtfUFJPX1NFVFRJTkdTX1RPS0VOIH0gZnJvbSAnLi4vdG9rZW5zL25neC1waXdpay1wcm8tc2V0dGluZ3MudG9rZW4nO1xuaW1wb3J0IHsgUGl3aWtQcm9TZXR0aW5ncyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGl3aWstcHJvLXNldHRpbmdzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSBcIi4uLy4uL3ZlcnNpb25cIlxuXG5leHBvcnQgY29uc3QgTkdYX1BJV0lLX1BST19JTklUSUFMSVpFUl9QUk9WSURFUjogRmFjdG9yeVByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VGYWN0b3J5OiBQaXdpa1Byb0luaXRpYWxpemVyLFxuICBkZXBzOiBbXG4gICAgTkdYX1BJV0lLX1BST19TRVRUSU5HU19UT0tFTixcbiAgICBET0NVTUVOVCxcbiAgICBQTEFURk9STV9JRCxcbiAgXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUGl3aWtQcm9Jbml0aWFsaXplcihcbiAgc2V0dGluZ3M6IFBpd2lrUHJvU2V0dGluZ3MsXG4gIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgcGxhdGZvcm1JZDogc3RyaW5nXG4pIHtcbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2luZG93Ll9wYXEgPSB3aW5kb3cuX3BhcSB8fCBbXTtcbiAgICBNaXNjZWxsYW5lb3VzLnNldFRyYWNraW5nU291cmNlUHJvdmlkZXIoXCJhbmd1bGFyXCIsIFZFUlNJT04pO1xuXG4gICAgaWYgKCFzZXR0aW5ncy5jb250YWluZXJJZCkge1xuICAgICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFbXB0eSB0cmFja2luZyBjb2RlIGZvciBQaXdpayBQcm8uIE1ha2Ugc3VyZSB0byBwcm92aWRlIG9uZSB3aGVuIGluaXRpYWxpemluZyBOZ3hQaXdpa1Byb01vZHVsZS4nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghc2V0dGluZ3MuY29udGFpbmVyVVJMKSB7XG4gICAgICBpZiAoIWlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0VtcHR5IHRyYWNraW5nIFVSTCBmb3IgUGl3aWsgUHJvLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBvbmUgd2hlbiBpbml0aWFsaXppbmcgTmd4UGl3aWtQcm9Nb2R1bGUuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWRvY3VtZW50KSB7XG4gICAgICBpZiAoIWlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dhcyBub3QgcG9zc2libGUgdG8gYWNjZXNzIERvY3VtZW50IGludGVyZmFjZS4gTWFrZSBzdXJlIHRoaXMgbW9kdWxlIGlzIHJ1bm5pbmcgb24gYSBCcm93c2VyIHcvIGFjY2VzcyBkbyBEb2N1bWVudCBpbnRlcmZhY2UuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYoc2V0dGluZ3MuZGF0YUxheWVyTmFtZSl7XG4gICAgICAgIERhdGFMYXllci5zZXREYXRhTGF5ZXJOYW1lKHNldHRpbmdzLmRhdGFMYXllck5hbWUpXG4gICAgfVxuXG4gICAgY29uc3QgczogSFRNTFNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzLmFzeW5jID0gdHJ1ZTtcbiAgICBpZiAoc2V0dGluZ3Mubm9uY2UpIHtcbiAgICAgIHMuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgc2V0dGluZ3Mubm9uY2UpO1xuICAgIH1cbiAgICBzLnRleHQgPSBQaXdpa1Byby5nZXRJbml0U2NyaXB0KHtcbiAgICAgIGNvbnRhaW5lcklkOiBzZXR0aW5ncy5jb250YWluZXJJZCxcbiAgICAgIGNvbnRhaW5lclVybDogc2V0dGluZ3MuY29udGFpbmVyVVJMLFxuICAgICAgbm9uY2VWYWx1ZTogc2V0dGluZ3Mubm9uY2UsXG4gICAgICBkYXRhTGF5ZXJOYW1lOiBzZXR0aW5ncy5kYXRhTGF5ZXJOYW1lXG4gICAgfSlcblxuICAgIGNvbnN0IGhlYWQ6IEhUTUxIZWFkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgaGVhZC5hcHBlbmRDaGlsZChzKTtcbiAgfVxufVxuIl19