@piwikpro/ngx-piwik-pro
Version:
Piwik PRO tracking library for Angular apps.
698 lines (667 loc) • 28.8 kB
JavaScript
import * as i0 from '@angular/core';
import { InjectionToken, APP_INITIALIZER, PLATFORM_ID, isDevMode, Injectable, APP_BOOTSTRAP_LISTENER, inject, Inject, NgModule } from '@angular/core';
import { DOCUMENT, isPlatformBrowser, CommonModule } from '@angular/common';
import PiwikPro, { Miscellaneous, DataLayer, PageViews, ContentTracking, CookieManagement, CustomDimensions, SiteSearch, CustomEvent, DownloadAndOutlink, eCommerce, GoalConversions, UserManagement, Heartbeat, CrossDomainTracking, ClientConfiguration } from '@piwikpro/tracking-base-library';
import * as i2 from '@angular/router';
import { Router, NavigationEnd } from '@angular/router';
import { filter, skipWhile } from 'rxjs/operators';
import * as i1 from '@angular/platform-browser';
import { Title } from '@angular/platform-browser';
var TRACK_EVENT;
(function (TRACK_EVENT) {
TRACK_EVENT["ADD_ECOMMERCE_ITEM"] = "addEcommerceItem";
TRACK_EVENT["REMOVE_ECOMMERCE_ITEM"] = "removeEcommerceItem";
TRACK_EVENT["CLEAR_ECOMMERCE_CART"] = "clearEcommerceCart";
TRACK_EVENT["SET_ECOMMERCE_VIEW"] = "setEcommerceView";
TRACK_EVENT["UPDATE_ECOMMERCE_CART"] = "trackEcommerceCartUpdate";
TRACK_EVENT["ORDER_ECOMMERCE"] = "trackEcommerceOrder";
})(TRACK_EVENT || (TRACK_EVENT = {}));
var CustomVariableScope;
(function (CustomVariableScope) {
CustomVariableScope["VISIT"] = "visit";
CustomVariableScope["PAGE"] = "page";
})(CustomVariableScope || (CustomVariableScope = {}));
/**
* Provide a Injection Token to global settings.
*/
const NGX_PIWIK_PRO_SETTINGS_TOKEN = new InjectionToken('ngx-piwik-pro-settings', {
factory: () => ({ containerId: '', containerURL: '' })
});
const VERSION = "2.4.0";
const NGX_PIWIK_PRO_INITIALIZER_PROVIDER = {
provide: APP_INITIALIZER,
multi: true,
useFactory: PiwikProInitializer,
deps: [
NGX_PIWIK_PRO_SETTINGS_TOKEN,
DOCUMENT,
PLATFORM_ID,
]
};
function PiwikProInitializer(settings, document, platformId) {
if (window) {
window._paq = window._paq || [];
Miscellaneous.setTrackingSourceProvider("angular", VERSION);
}
return async () => {
if (!isPlatformBrowser(platformId)) {
return;
}
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);
};
}
const NGX_PIWIK_PRO_ROUTING_SETTINGS_TOKEN = new InjectionToken('ngx-piwik-pro-routing-settings', {
factory: () => ({})
});
class PageViewsService {
trackPageView(...params) {
PageViews.trackPageView(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PageViewsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PageViewsService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PageViewsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
const NGX_PIWIK_PRO_ROUTER_INITIALIZER_PROVIDER = {
provide: APP_BOOTSTRAP_LISTENER,
multi: true,
useFactory: PiwikProRouterInitializer,
deps: [
NGX_PIWIK_PRO_ROUTING_SETTINGS_TOKEN,
Title,
PageViewsService,
]
};
function PiwikProRouterInitializer(settings, titleService, pageViewsService) {
return async (c) => {
const router = c.injector.get(Router);
const { include = [], exclude = [], skipFirstPageView } = settings ?? {};
const includeRules = normalizePathRules(include);
const excludeRules = normalizePathRules(exclude);
const subs = router
.events
.pipe(filter((event) => event instanceof NavigationEnd), skipWhile((_, index) => {
// Preventing double views on the first trigger (because PiwikPro Already send one ping on setup by default)
if (skipFirstPageView) {
return index === 0;
}
return false;
}), filter(event => includeRules.length > 0
? includeRules.some(rule => rule.test(event.urlAfterRedirects))
: true), filter(event => excludeRules.length > 0
? !excludeRules.some(rule => rule.test(event.urlAfterRedirects))
: true))
.subscribe(() => {
pageViewsService.trackPageView();
});
// Cleanup
c.onDestroy(() => subs.unsubscribe());
};
}
/** Converts all path rules from string to Regex instances */
function normalizePathRules(rules) {
return rules.map(rule => (rule instanceof RegExp)
? rule
: new RegExp(`^${rule.replace('*', '.*')}$`, 'i'));
}
const NGX_WINDOW = new InjectionToken("ngx-window", {
providedIn: "root",
factory: () => {
const { defaultView } = inject(DOCUMENT);
if (!defaultView) {
throw new Error("Window is not available");
}
return defaultView;
},
});
class PaqService {
constructor(titleService, routerService, _window) {
this.titleService = titleService;
this.routerService = routerService;
this._window = _window;
}
push(collection) {
if (!this._window._paq) {
throw new Error("_paq is not available");
}
this._window._paq.push(["setCustomUrl", this.routerService.url]);
this._window._paq.push(["setDocumentTitle", this.titleService.getTitle()]);
return this._window._paq.push(collection);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PaqService, deps: [{ token: i1.Title }, { token: i2.Router }, { token: NGX_WINDOW }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PaqService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PaqService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.Title }, { type: i2.Router }, { type: undefined, decorators: [{
type: Inject,
args: [NGX_WINDOW]
}] }] });
class ContentTrackingService {
trackAllContentImpressions(...params) {
ContentTracking.trackAllContentImpressions(...params);
}
trackVisibleContentImpressions(...params) {
ContentTracking.trackVisibleContentImpressions(...params);
}
trackContentImpressionsWithinNode(...params) {
ContentTracking.trackContentImpressionsWithinNode(...params);
}
trackContentImpression(...params) {
ContentTracking.trackContentImpression(...params);
}
logAllContentBlocksOnPage(...params) {
ContentTracking.logAllContentBlocksOnPage(...params);
}
trackContentInteractionNode(...params) {
ContentTracking.trackContentInteractionNode(...params);
}
trackContentInteraction(...params) {
ContentTracking.trackContentInteraction(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ContentTrackingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ContentTrackingService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ContentTrackingService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class CookieManagementService {
disableCookies(...params) {
CookieManagement.disableCookies(...params);
}
enableCookies(...params) {
CookieManagement.enableCookies(...params);
}
deleteCookies(...params) {
CookieManagement.deleteCookies(...params);
}
hasCookies(...params) {
return CookieManagement.hasCookies(...params);
}
setCookieNamePrefix(...params) {
CookieManagement.setCookieNamePrefix(...params);
}
setCookieDomain(...params) {
CookieManagement.setCookieDomain(...params);
}
setCookiePath(...params) {
CookieManagement.setCookiePath(...params);
}
setSecureCookie(...params) {
CookieManagement.setSecureCookie(...params);
}
setVisitorCookieTimeout(...params) {
CookieManagement.setVisitorCookieTimeout(...params);
}
setSessionCookieTimeout(...params) {
CookieManagement.setSessionCookieTimeout(...params);
}
setVisitorIdCookie(...params) {
CookieManagement.setVisitorIdCookie(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CookieManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CookieManagementService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CookieManagementService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class CustomDimensionsService {
getCustomDimensionValue(...params) {
return CustomDimensions.getCustomDimensionValue(...params);
}
setCustomDimensionValue(...params) {
CustomDimensions.setCustomDimensionValue(...params);
}
deleteCustomDimension(...params) {
CustomDimensions.deleteCustomDimension(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CustomDimensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CustomDimensionsService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CustomDimensionsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class SiteSearchService {
trackSiteSearch(...params) {
SiteSearch.trackSiteSearch(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SiteSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SiteSearchService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SiteSearchService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class CustomEventsService {
trackEvent(...params) {
CustomEvent.trackEvent(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CustomEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CustomEventsService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CustomEventsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class DownloadAndOutlinkService {
trackLink(...params) {
DownloadAndOutlink.trackLink(...params);
}
enableLinkTracking(...params) {
DownloadAndOutlink.enableLinkTracking(...params);
}
setLinkClasses(...params) {
DownloadAndOutlink.setLinkClasses(...params);
}
setDownloadClasses(...params) {
DownloadAndOutlink.setDownloadClasses(...params);
}
setDownloadExtensions(...params) {
DownloadAndOutlink.setDownloadExtensions(...params);
}
addDownloadExtensions(...params) {
DownloadAndOutlink.addDownloadExtensions(...params);
}
removeDownloadExtensions(...params) {
DownloadAndOutlink.removeDownloadExtensions(...params);
}
setLinkTrackingTimer(...params) {
DownloadAndOutlink.setLinkTrackingTimer(...params);
}
getLinkTrackingTimer(...params) {
return DownloadAndOutlink.getLinkTrackingTimer(...params);
}
setIgnoreClasses(...params) {
DownloadAndOutlink.setIgnoreClasses(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadAndOutlinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadAndOutlinkService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadAndOutlinkService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class ECommerceService {
constructor(paqService) {
this.paqService = paqService;
}
/**
* @deprecated Please use the ecommerceAddToCart instead.
*/
addEcommerceItem(productSKU, productName, productCategory, productPrice, productQuantity) {
this.paqService.push([
TRACK_EVENT.ADD_ECOMMERCE_ITEM,
productSKU,
productName,
productCategory,
productPrice,
productQuantity,
]);
}
ecommerceAddToCart(...params) {
eCommerce.ecommerceAddToCart(...params);
}
/**
* @deprecated Please use the ecommerceRemoveFromCart instead.
*/
removeEcommerceItem(productSKU) {
this.paqService.push([
TRACK_EVENT.REMOVE_ECOMMERCE_ITEM,
productSKU
]);
}
ecommerceRemoveFromCart(...params) {
eCommerce.ecommerceRemoveFromCart(...params);
}
/**
* @deprecated
*/
clearEcommerceCart() {
this.paqService.push([
TRACK_EVENT.CLEAR_ECOMMERCE_CART,
]);
}
/**
* @deprecated
*/
getEcommerceItems() {
return new Promise((resolve, reject) => {
try {
this.paqService.push([
function () {
resolve(this.getEcommerceItems());
},
]);
}
catch (e) {
if (e instanceof ReferenceError) {
reject(e);
}
}
});
}
/**
* @deprecated Please use the ecommerceOrder instead.
*/
trackEcommerceOrder(orderId, orderGrandTotal, orderSubTotal, orderTax, orderShipping, orderDiscount) {
this.paqService.push([
TRACK_EVENT.ORDER_ECOMMERCE,
orderId,
orderGrandTotal,
orderSubTotal,
orderTax,
orderShipping,
orderDiscount,
]);
}
ecommerceOrder(...params) {
eCommerce.ecommerceOrder(...params);
}
/**
* @deprecated Please use the ecommerceCartUpdate instead.
*/
trackEcommerceCartUpdate(cartAmount) {
this.paqService.push([
TRACK_EVENT.UPDATE_ECOMMERCE_CART,
cartAmount
]);
}
ecommerceCartUpdate(...params) {
eCommerce.ecommerceCartUpdate(...params);
}
/**
* @deprecated
*/
setEcommerceView(productSKU, productName, productCategory, productPrice) {
this.paqService.push([
TRACK_EVENT.SET_ECOMMERCE_VIEW,
productSKU,
productName,
productCategory,
productPrice
]);
}
ecommerceProductDetailView(...params) {
eCommerce.ecommerceProductDetailView(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ECommerceService, deps: [{ token: PaqService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ECommerceService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ECommerceService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: PaqService }] });
class GoalConversionsService {
trackGoal(...params) {
GoalConversions.trackGoal(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: GoalConversionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: GoalConversionsService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: GoalConversionsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class UserManagementService {
getUserId(...params) {
return UserManagement.getUserId(...params);
}
setUserId(...params) {
UserManagement.setUserId(...params);
}
resetUserId(...params) {
UserManagement.resetUserId(...params);
}
getVisitorId(...params) {
return UserManagement.getVisitorId(...params);
}
getVisitorInfo(...params) {
return UserManagement.getVisitorInfo(...params);
}
setUserIsAnonymous(...params) {
UserManagement.setUserIsAnonymous(...params);
}
deanonymizeUser() {
UserManagement.deanonymizeUser();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: UserManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: UserManagementService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: UserManagementService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
class DataLayerService {
push(...params) {
return DataLayer.push(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DataLayerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DataLayerService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DataLayerService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class HeartbeatService {
enableHeartBeatTimer(...params) {
Heartbeat.enableHeartBeatTimer(...params);
}
disableHeartBeatTimer(...params) {
Heartbeat.disableHeartBeatTimer(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: HeartbeatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: HeartbeatService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: HeartbeatService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
class CrossDomainTrackingService {
enableCrossDomainLinking(...params) {
CrossDomainTracking.enableCrossDomainLinking(...params);
}
disableCrossDomainLinking(...params) {
CrossDomainTracking.disableCrossDomainLinking(...params);
}
isCrossDomainLinkingEnabled() {
return CrossDomainTracking.isCrossDomainLinkingEnabled();
}
setCrossDomainLinkingTimeout(...params) {
return CrossDomainTracking.setCrossDomainLinkingTimeout(...params);
}
getCrossDomainLinkingUrlParameter() {
return CrossDomainTracking.getCrossDomainLinkingUrlParameter();
}
customCrossDomainLinkDecorator(...params) {
return CrossDomainTracking.customCrossDomainLinkDecorator(...params);
}
customCrossDomainLinkVisitorIdGetter(...params) {
return CrossDomainTracking.customCrossDomainLinkVisitorIdGetter(...params);
}
}
class ClientConfigurationService {
setDomains(...params) {
ClientConfiguration.setDomains(...params);
}
getDomains() {
return ClientConfiguration.getDomains();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ClientConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ClientConfigurationService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ClientConfigurationService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
class MiscellaneousService {
setTrackingSourceProvider(...params) {
Miscellaneous.setTrackingSourceProvider(...params);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MiscellaneousService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MiscellaneousService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MiscellaneousService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
/**
* Check if there is some global function called _paq on Window object, or create an empty function to doesn't brake codes...
*/
function getPaqFn(window) {
return (window)
? window['_paq'] = window['_paq'] || []
: null;
}
/**
* Provides an injection token to access Piwik Pro Paq
*/
const NGX_PAQ = new InjectionToken('ngx-paq', {
providedIn: 'root',
factory: () => getPaqFn(inject(NGX_WINDOW))
});
class NgxPiwikProModule {
constructor() { }
static forRoot(containerId, containerURL, nonceOrOptions) {
const options = typeof nonceOrOptions === 'string'
? {
nonce: nonceOrOptions,
}
: nonceOrOptions;
return {
ngModule: NgxPiwikProModule,
providers: [
{
provide: NGX_PIWIK_PRO_SETTINGS_TOKEN,
useValue: {
containerId,
containerURL,
...options,
},
},
NGX_PIWIK_PRO_INITIALIZER_PROVIDER,
],
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProModule }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProModule }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProModule, decorators: [{
type: NgModule,
args: [{
declarations: [],
imports: [],
exports: [],
}]
}], ctorParameters: () => [] });
class NgxPiwikProRouterModule {
static forRoot(settings) {
return {
ngModule: NgxPiwikProRouterModule,
providers: [
{
provide: NGX_PIWIK_PRO_ROUTING_SETTINGS_TOKEN,
useValue: settings ?? {
skipFirstPageView: true,
}
},
]
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProRouterModule, imports: [CommonModule,
NgxPiwikProModule] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProRouterModule, providers: [
NGX_PIWIK_PRO_ROUTER_INITIALIZER_PROVIDER,
], imports: [CommonModule,
NgxPiwikProModule] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgxPiwikProRouterModule, decorators: [{
type: NgModule,
args: [{
imports: [
CommonModule,
NgxPiwikProModule,
],
providers: [
NGX_PIWIK_PRO_ROUTER_INITIALIZER_PROVIDER,
],
declarations: []
}]
}] });
/*
* Public API Surface of ngx-piwik-pro
*/
/**
* Generated bundle index. Do not edit.
*/
export { ClientConfigurationService, ContentTrackingService, CookieManagementService, CrossDomainTrackingService, CustomDimensionsService, CustomEventsService, CustomVariableScope, DataLayerService, DownloadAndOutlinkService, ECommerceService, GoalConversionsService, HeartbeatService, MiscellaneousService, NGX_PAQ, NGX_PIWIK_PRO_INITIALIZER_PROVIDER, NGX_PIWIK_PRO_ROUTER_INITIALIZER_PROVIDER, NGX_PIWIK_PRO_ROUTING_SETTINGS_TOKEN, NGX_PIWIK_PRO_SETTINGS_TOKEN, NGX_WINDOW, NgxPiwikProModule, NgxPiwikProRouterModule, PageViewsService, PaqService, PiwikProInitializer, PiwikProRouterInitializer, SiteSearchService, TRACK_EVENT, UserManagementService, getPaqFn };
//# sourceMappingURL=piwikpro-ngx-piwik-pro.mjs.map