{"version":3,"file":"angulartics2.mjs","sources":["../../src/lib/angulartics2-config.ts","../../src/lib/angulartics2-token.ts","../../src/lib/routerless.ts","../../src/lib/angulartics2-core.ts","../../src/lib/angular-router.ts","../../src/lib/angulartics2On.ts","../../src/lib/angulartics2.module.ts","../../src/lib/routerless.module.ts","../../src/lib/providers/adobeanalytics/adobeanalytics.ts","../../src/lib/providers/appinsights/appinsights.ts","../../src/lib/providers/baidu/baidu.ts","../../src/lib/providers/facebook/facebook.ts","../../src/lib/providers/ga/ga.ts","../../src/lib/providers/ga-enhanced-ecom/ga-enhanced-ecom.ts","../../src/lib/providers/gtm/gtm.ts","../../src/lib/providers/gst/gst.ts","../../src/lib/providers/hubspot/hubspot.ts","../../src/lib/providers/kissmetrics/kissmetrics.ts","../../src/lib/providers/launch/launch.ts","../../src/lib/providers/mixpanel/mixpanel.ts","../../src/lib/providers/posthog/posthog.ts","../../src/lib/providers/pyze/pyze.ts","../../src/lib/providers/matomo/matomo.ts","../../src/lib/providers/segment/segment.ts","../../src/lib/providers/intercom/intercom.ts","../../src/lib/providers/woopra/woopra.ts","../../src/lib/providers/clicky/clicky.ts","../../src/lib/providers/amplitude/amplitude.ts","../../src/lib/providers/splunk/splunk.ts","../../src/lib/providers/ibm-digital-analytics/ibm-digital-analytics.ts","../../src/lib/providers/gosquared/gosquared.ts","../../src/lib/angulartics2.ts"],"sourcesContent":["export interface GoogleAnalyticsSettings {\n  /** array of additional account names (only works for analyticsjs) */\n  additionalAccountNames: string[];\n  userId: any;\n  /** see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#transport */\n  transport: string;\n  anonymizeIp: boolean;\n}\n\nexport interface AppInsightsSettings {\n  userId: string;\n}\n\nexport interface GoogleTagManagerSettings {\n  userId: any;\n}\n\nexport interface GoogleGlobalSiteTagSettings {\n  trackingIds: any;\n  userId?: any;\n  anonymizeIp?: boolean;\n  customMap?: { [key: string]: string };\n}\n\nexport interface PageTrackingSettings {\n  autoTrackVirtualPages: boolean;\n  basePath: string;\n  excludedRoutes: (string | RegExp)[];\n  /** drop ids from url `/sections/123/pages/456` -> `/sections/pages` */\n  clearIds: boolean;\n  /** drop contents of url after hash marker `/callback#authcode=1234` -> `/callback` */\n  clearHash: boolean;\n  /** drop query params from url `/sections/123/pages?param=456&param2=789` -> `/sections/123/pages` */\n  clearQueryParams: boolean;\n  /** used with clearIds, define the matcher to clear url parts */\n  idsRegExp: RegExp;\n}\n\nexport interface Angulartics2Settings {\n  pageTracking: Partial<PageTrackingSettings>;\n  /** Disable page tracking */\n  developerMode: boolean;\n  ga: Partial<GoogleAnalyticsSettings>;\n  appInsights: Partial<AppInsightsSettings>;\n  gtm: Partial<GoogleTagManagerSettings>;\n  gst: Partial<GoogleGlobalSiteTagSettings>;\n}\n\nexport class DefaultConfig implements Angulartics2Settings {\n  pageTracking = {\n    autoTrackVirtualPages: true,\n    basePath: '',\n    excludedRoutes: [],\n    clearIds: false,\n    clearHash: false,\n    clearQueryParams: false,\n    idsRegExp:\n      /^\\d+$|^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n  };\n  developerMode = false;\n  ga = {};\n  appInsights = {};\n  gtm = {};\n  gst = {};\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { Angulartics2Settings } from './angulartics2-config';\n\nexport interface Angulartics2Token {\n  settings: Partial<Angulartics2Settings>;\n}\n\nexport const ANGULARTICS2_TOKEN = new InjectionToken<Angulartics2Token>(\n  'ANGULARTICS2'\n);\n","import { BehaviorSubject, Observable } from 'rxjs';\n\nimport { Angulartics2Settings } from './angulartics2-config';\n\nexport interface TrackNavigationEnd {\n  url: string;\n}\n\nexport class RouterlessTracking {\n  trackLocation(settings: Angulartics2Settings): Observable<TrackNavigationEnd> {\n    return new BehaviorSubject<TrackNavigationEnd>({ url: '/' });\n  }\n\n  prepareExternalUrl(url: string): string {\n    return url;\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { MonoTypeOperatorFunction, ReplaySubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { Angulartics2Settings, DefaultConfig } from './angulartics2-config';\nimport { EventTrack, PageTrack, UserTimings } from './angulartics2-interfaces';\nimport { Angulartics2Token, ANGULARTICS2_TOKEN } from './angulartics2-token';\nimport { RouterlessTracking, TrackNavigationEnd } from './routerless';\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2 {\n  settings: Angulartics2Settings;\n\n  pageTrack = new ReplaySubject<Partial<PageTrack>>(10);\n  eventTrack = new ReplaySubject<Partial<EventTrack>>(10);\n  exceptionTrack = new ReplaySubject<any>(10);\n  setAlias = new ReplaySubject<string>(10);\n  setUsername = new ReplaySubject<{ userId: string | number } | string>(10);\n  setUserProperties = new ReplaySubject<any>(10);\n  setUserPropertiesOnce = new ReplaySubject<any>(10);\n  setSuperProperties = new ReplaySubject<any>(10);\n  setSuperPropertiesOnce = new ReplaySubject<any>(10);\n  userTimings = new ReplaySubject<UserTimings>(10);\n\n  constructor(\n    private tracker: RouterlessTracking,\n    @Inject(ANGULARTICS2_TOKEN) setup: Angulartics2Token,\n  ) {\n    const defaultConfig = new DefaultConfig();\n    this.settings = { ...defaultConfig, ...setup.settings };\n    this.settings.pageTracking = {\n      ...defaultConfig.pageTracking,\n      ...setup.settings.pageTracking,\n    };\n    this.tracker\n      .trackLocation(this.settings)\n      .subscribe((event: TrackNavigationEnd) => this.trackUrlChange(event.url));\n  }\n\n  /** filters all events when developer mode is true */\n  filterDeveloperMode<T>(): MonoTypeOperatorFunction<T> {\n    return filter((value, index) => !this.settings.developerMode);\n  }\n\n  protected trackUrlChange(url: string) {\n    if (this.settings.pageTracking.autoTrackVirtualPages && !this.matchesExcludedRoute(url)) {\n      const clearedUrl = this.clearUrl(url);\n      let path: string;\n      if (this.settings.pageTracking.basePath.length) {\n        path = this.settings.pageTracking.basePath + clearedUrl;\n      } else {\n        path = this.tracker.prepareExternalUrl(clearedUrl);\n      }\n      this.pageTrack.next({ path });\n    }\n  }\n\n  /**\n   * Use string literals or regular expressions to exclude routes\n   * from automatic pageview tracking.\n   *\n   * @param url location\n   */\n  protected matchesExcludedRoute(url: string): boolean {\n    for (const excludedRoute of this.settings.pageTracking.excludedRoutes) {\n      const matchesRegex = excludedRoute instanceof RegExp && excludedRoute.test(url);\n      if (matchesRegex || url.indexOf(excludedRoute as string) !== -1) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Removes id's from tracked route.\n   *  EX: `/project/12981/feature` becomes `/project/feature`\n   *\n   * @param url current page path\n   */\n  protected clearUrl(url: string): string {\n    if (\n      this.settings.pageTracking.clearIds ||\n      this.settings.pageTracking.clearQueryParams ||\n      this.settings.pageTracking.clearHash\n    ) {\n      return url\n        .split('/')\n        .map(part => (this.settings.pageTracking.clearQueryParams ? part.split('?')[0] : part))\n        .map(part => (this.settings.pageTracking.clearHash ? part.split('#')[0] : part))\n        .filter(\n          part =>\n            !this.settings.pageTracking.clearIds ||\n            !part.match(this.settings.pageTracking.idsRegExp),\n        )\n        .join('/');\n    }\n    return url;\n  }\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { delay, filter, map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n\nimport { RouterlessTracking, TrackNavigationEnd } from './routerless';\n\n/**\n * Track Route changes for applications using Angular's\n * default router\n *\n * @link https://angular.io/api/router/Router\n */\n@Injectable({ providedIn: 'root' })\nexport class AngularRouterTracking implements RouterlessTracking {\n  constructor(private router: Router, private location: Location) {}\n\n  trackLocation(settings): Observable<TrackNavigationEnd> {\n    return this.router.events.pipe(\n      filter(e => e instanceof NavigationEnd),\n      filter(() => !settings.developerMode),\n      map((e: NavigationEnd) => {\n        return { url: e.urlAfterRedirects };\n      }),\n      delay(0),\n    );\n  }\n\n  prepareExternalUrl(url: string): string {\n    return this.location.prepareExternalUrl(url);\n  }\n}\n","import { AfterContentInit, Directive, ElementRef, Input, NgModule, Renderer2 } from '@angular/core';\nimport { Angulartics2 } from './angulartics2-core';\n\n@Directive({ selector: '[angulartics2On]' })\nexport class Angulartics2On implements AfterContentInit {\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('angulartics2On') angulartics2On: string;\n  @Input() angularticsAction: string;\n  @Input() angularticsCategory: string;\n  @Input() angularticsLabel: string;\n  @Input() angularticsValue: string;\n  @Input() angularticsProperties: any = {};\n\n  constructor(\n    private elRef: ElementRef,\n    private angulartics2: Angulartics2,\n    private renderer: Renderer2,\n  ) {}\n\n  ngAfterContentInit() {\n    this.renderer.listen(this.elRef.nativeElement, this.angulartics2On || 'click', (event: Event) =>\n      this.eventTrack(event),\n    );\n  }\n\n  eventTrack(event: Event) {\n    const action = this.angularticsAction; // || this.inferEventName();\n    const properties: any = {\n      ...this.angularticsProperties,\n      eventType: event.type,\n    };\n\n    if (this.angularticsCategory) {\n      properties.category = this.angularticsCategory;\n    }\n    if (this.angularticsLabel) {\n      properties.label = this.angularticsLabel;\n    }\n    if (this.angularticsValue) {\n      properties.value = this.angularticsValue;\n    }\n\n    this.angulartics2.eventTrack.next({\n      action,\n      properties,\n    });\n  }\n\n  /*private isCommand() {\n    return ['a:', 'button:', 'button:button', 'button:submit', 'input:button', 'input:submit'].indexOf(\n      getDOM().tagName(this.el).toLowerCase() + ':' + (getDOM().type(this.el) || '')) >= 0;\n  }\n\n  private inferEventName() {\n    if (this.isCommand()) return getDOM().getText(this.el) || getDOM().getValue(this.el);\n    return getDOM().getProperty(this.el, 'id') || getDOM().getProperty(this.el, 'name') || getDOM().tagName(this.el);\n  }*/\n}\n\n@NgModule({\n  declarations: [Angulartics2On],\n  exports: [Angulartics2On],\n})\nexport class Angulartics2OnModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { AngularRouterTracking } from './angular-router';\nimport { Angulartics2Settings } from './angulartics2-config';\nimport { Angulartics2 } from './angulartics2-core';\nimport { ANGULARTICS2_TOKEN } from './angulartics2-token';\nimport { Angulartics2On, Angulartics2OnModule } from './angulartics2On';\nimport { RouterlessTracking } from './routerless';\n\n@NgModule({\n  imports: [Angulartics2OnModule],\n  exports: [Angulartics2On],\n})\nexport class Angulartics2Module {\n  static forRoot(\n    settings: Partial<Angulartics2Settings> = {},\n  ): ModuleWithProviders<Angulartics2Module> {\n    return {\n      ngModule: Angulartics2Module,\n      providers: [\n        { provide: ANGULARTICS2_TOKEN, useValue: { settings } },\n        { provide: RouterlessTracking, useClass: AngularRouterTracking },\n        Angulartics2,\n      ],\n    };\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport {ANGULARTICS2_TOKEN} from './angulartics2-token';\nimport {Angulartics2Settings} from './angulartics2-config';\nimport {Angulartics2OnModule} from './angulartics2On';\nimport {Angulartics2} from './angulartics2-core';\nimport {RouterlessTracking} from './routerless';\n\n@NgModule({\n  imports: [Angulartics2OnModule],\n})\nexport class Angulartics2RouterlessModule {\n  static forRoot(\n    settings: Partial<Angulartics2Settings> = {}\n  ): ModuleWithProviders<Angulartics2RouterlessModule> {\n    return {\n      ngModule: Angulartics2RouterlessModule,\n      providers: [\n        { provide: ANGULARTICS2_TOKEN, useValue: { settings } },\n        RouterlessTracking,\n        Angulartics2,\n      ],\n    };\n  }\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare const s: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2AdobeAnalytics {\n  constructor(private angulartics2: Angulartics2, private location: Location) {\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    if (typeof s !== 'undefined' && s) {\n      s.clearVars();\n      s.t({ pageName: path });\n    }\n  }\n\n  /**\n   * Track Event in Adobe Analytics\n   *\n   * @param action associated with the event\n   * @param properties action detials\n   *\n   * @link https://marketing.adobe.com/resources/help/en_US/sc/implement/js_implementation.html\n   */\n  eventTrack(action: string, properties: any) {\n    // TODO: make interface\n    // @property {string} properties.category\n    // @property {string} properties.label\n    // @property {number} properties.value\n    // @property {boolean} properties.noninteraction\n    if (!properties) {\n      properties = properties || {};\n    }\n\n    if (typeof s !== 'undefined' && s) {\n      if (typeof properties === 'object') {\n        this.setUserProperties(properties);\n      }\n      if (action) {\n        // if linkName property is passed, use that; otherwise, the action is the linkName\n        const linkName = properties['linkName'] ? properties['linkName'] : action;\n        // note that 'this' should refer the link element, but we can't get that in this function. example:\n        // <a href=\"http://anothersite.com\" onclick=\"s.tl(this,'e','AnotherSite',null)\">\n        // if disableDelay property is passed, use that to turn off/on the 500ms delay; otherwise, it uses this\n        const disableDelay = !!properties['disableDelay'] ? true : this;\n        // if action property is passed, use that; otherwise, the action remains unchanged\n        if (properties['action']) {\n          action = properties['action'];\n        }\n        this.setPageName();\n\n        if (action.toUpperCase() === 'DOWNLOAD') {\n          s.tl(disableDelay, 'd', linkName);\n        } else if (action.toUpperCase() === 'EXIT') {\n          s.tl(disableDelay, 'e', linkName);\n        } else {\n          s.tl(disableDelay, 'o', linkName);\n        }\n      }\n    }\n  }\n\n  private setPageName() {\n    const path = this.location.path(true);\n    const hashNdx = path.indexOf('#');\n    if (hashNdx > 0 && hashNdx < path.length) {\n      s.pageName = path.substring(hashNdx + 1);\n    } else {\n      s.pageName = path;\n    }\n  }\n\n  setUserProperties(properties: any) {\n    if (typeof s !== 'undefined' && s) {\n      if (typeof properties === 'object') {\n        for (const key in properties) {\n          if (properties.hasOwnProperty(key)) {\n            s[key] = properties[key];\n          }\n        }\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport {\n  NavigationEnd,\n  NavigationError,\n  NavigationStart,\n  Router,\n} from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\nimport { AppInsightsSettings } from '../../angulartics2-config';\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare const appInsights: Microsoft.ApplicationInsights.IAppInsights;\n\nexport class AppInsightsDefaults implements AppInsightsSettings {\n  userId = null;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2AppInsights {\n  loadStartTime: number = null;\n  loadTime: number = null;\n\n  metrics: { [name: string]: number } = null;\n  dimensions: { [name: string]: string } = null;\n  measurements: { [name: string]: number } = null;\n\n  constructor(\n    private angulartics2: Angulartics2,\n    private title: Title,\n    private router: Router\n  ) {\n    if (typeof appInsights === 'undefined') {\n      console.warn('appInsights not found');\n    }\n\n    const defaults = new AppInsightsDefaults();\n    // Set the default settings for this module\n    this.angulartics2.settings.appInsights = {\n      ...defaults,\n      ...this.angulartics2.settings.appInsights,\n    };\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe((x) =>\n      this.setUserProperties(x)\n    );\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x) => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x) => this.eventTrack(x.action, x.properties));\n    this.angulartics2.exceptionTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x) => this.exceptionTrack(x));\n    this.router.events\n      .pipe(\n        this.angulartics2.filterDeveloperMode(),\n        filter((event) => event instanceof NavigationStart)\n      )\n      .subscribe((event) => this.startTimer());\n\n    this.router.events\n      .pipe(\n        filter(\n          (event) =>\n            event instanceof NavigationError || event instanceof NavigationEnd\n        )\n      )\n      .subscribe((error) => this.stopTimer());\n  }\n\n  startTimer() {\n    this.loadStartTime = Date.now();\n    this.loadTime = null;\n  }\n\n  stopTimer() {\n    this.loadTime = Date.now() - this.loadStartTime;\n    this.loadStartTime = null;\n  }\n\n  /**\n   * Page Track in Baidu Analytics\n   *\n   * @param path - Location 'path'\n   *\n   * @link https://github.com/Microsoft/ApplicationInsights-JS/blob/master/API-reference.md#trackpageview\n   */\n  pageTrack(path: string) {\n    appInsights.trackPageView(\n      this.title.getTitle(),\n      path,\n      this.dimensions,\n      this.metrics,\n      this.loadTime\n    );\n  }\n\n  /**\n   * Log a user action or other occurrence.\n   *\n   * @param name Name to identify this event in the portal.\n   * @param properties Additional data used to filter events and metrics in the portal. Defaults to empty.\n   *\n   * @link https://github.com/Microsoft/ApplicationInsights-JS/blob/master/API-reference.md#trackevent\n   */\n  eventTrack(name: string, properties: { [name: string]: string }) {\n    appInsights.trackEvent(name, properties, this.measurements);\n  }\n\n  /**\n   * Exception Track Event in GA\n   *\n   * @param properties - Comprised of the mandatory fields 'appId' (string), 'appName' (string) and 'appVersion' (string) and\n   * optional fields 'fatal' (boolean) and 'description' (string), error\n   *\n   * @link https://github.com/Microsoft/ApplicationInsights-JS/blob/master/API-reference.md#trackexception\n   */\n  exceptionTrack(properties: any) {\n    const description =\n      properties.event || properties.description || properties;\n\n    appInsights.trackException(description);\n  }\n\n  /**\n   * @link https://github.com/Microsoft/ApplicationInsights-JS/blob/master/API-reference.md#setauthenticatedusercontext\n   */\n  setUsername(userId: string) {\n    this.angulartics2.settings.appInsights.userId = userId;\n    appInsights.setAuthenticatedUserContext(userId);\n  }\n\n  setUserProperties(\n    properties: Partial<{ userId: string; accountId: string }>\n  ) {\n    if (properties.userId) {\n      this.angulartics2.settings.appInsights.userId = properties.userId;\n    }\n    if (properties.accountId) {\n      appInsights.setAuthenticatedUserContext(\n        this.angulartics2.settings.appInsights.userId,\n        properties.accountId\n      );\n    } else {\n      appInsights.setAuthenticatedUserContext(\n        this.angulartics2.settings.appInsights.userId\n      );\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\n\ndeclare var _hmt: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2BaiduAnalytics {\n  constructor(private angulartics2: Angulartics2) {\n    if (typeof _hmt === 'undefined') {\n      _hmt = [];\n    } else {\n      _hmt.push(['_setAutoPageview', false]);\n    }\n    this.angulartics2.setUsername\n      .subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties\n      .subscribe((x) => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x) => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x) => this.eventTrack(x.action, x.properties));\n  }\n\n  /**\n   * Page Track in Baidu Analytics\n   *\n   * @param path Required url 'path'\n   *\n   * @link http://tongji.baidu.com/open/api/more?p=ref_trackPageview\n   */\n  pageTrack(path: string) {\n    if (typeof _hmt !== 'undefined' && _hmt) {\n      _hmt.push(['_trackPageview', path]);\n    }\n  }\n\n  /**\n   * Track Event in Baidu Analytics\n   *\n   * @param action Name associated with the event\n   * @param properties Comprised of:\n   *  - 'category' (string)\n   *  - 'opt_label' (string)\n   *  - 'opt_value' (string)\n   *\n   * @link http://tongji.baidu.com/open/api/more?p=ref_trackEvent\n   */\n  eventTrack(action: string, properties: any) {\n    // baidu analytics requires category\n    if (!properties || !properties.category) {\n      properties = properties || {};\n      properties.category = 'Event';\n      properties.opt_label = 'default';\n      properties.opt_value = 'default';\n    }\n\n    if (typeof _hmt !== 'undefined' && _hmt) {\n      _hmt.push([\n        '_trackEvent',\n        properties.category,\n        action,\n        properties.opt_label,\n        properties.opt_value,\n      ]);\n    }\n  }\n\n  setUsername(userId: string) {\n    // set default custom variables name to 'identity' and 'value'\n    _hmt.push(['_setCustomVar', 1, 'identity', userId]);\n  }\n\n  setUserProperties(properties: any) {\n    _hmt.push(['_setCustomVar', 2, 'user', JSON.stringify(properties)]);\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare const fbq: facebook.Pixel.Event;\n\nconst facebookEventList = [\n  'ViewContent',\n  'Search',\n  'AddToCart',\n  'AddToWishlist',\n  'InitiateCheckout',\n  'AddPaymentInfo',\n  'Purchase',\n  'Lead',\n  'CompleteRegistration',\n];\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Facebook {\n  constructor(private angulartics2: Angulartics2) { }\n\n  startTracking(): void {\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  /**\n   * Send interactions to the Pixel, i.e. for event tracking in Pixel\n   *\n   * @param action action associated with the event\n   */\n  eventTrack(action: string, properties: any = {}) {\n    if (typeof fbq === 'undefined') {\n      return;\n    }\n    if (facebookEventList.indexOf(action) === -1) {\n      return fbq('trackCustom', action, properties);\n    }\n    return fbq('track', action, properties);\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\nimport { GoogleAnalyticsSettings } from '../../angulartics2-config';\nimport { UserTimings } from '../../angulartics2-interfaces';\n\ndeclare var _gaq: GoogleAnalyticsCode;\ndeclare var ga: UniversalAnalytics.ga;\ndeclare var location: any;\n\nexport class GoogleAnalyticsDefaults implements GoogleAnalyticsSettings {\n  additionalAccountNames = [];\n  userId = null;\n  transport = '';\n  anonymizeIp = false;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoogleAnalytics {\n  dimensionsAndMetrics = [];\n  settings: Partial<GoogleAnalyticsSettings>;\n\n  constructor(private angulartics2: Angulartics2) {\n    const defaults = new GoogleAnalyticsDefaults();\n    // Set the default settings for this module\n    this.angulartics2.settings.ga = {\n      ...defaults,\n      ...this.angulartics2.settings.ga,\n    };\n    this.settings = this.angulartics2.settings.ga;\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n    this.angulartics2.exceptionTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.exceptionTrack(x));\n    this.angulartics2.userTimings\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.userTimings(x));\n  }\n\n  pageTrack(path: string) {\n    if (typeof _gaq !== 'undefined' && _gaq) {\n      _gaq.push(['_trackPageview', path]);\n      for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n        _gaq.push([accountName + '._trackPageview', path]);\n      }\n    }\n    if (typeof ga !== 'undefined' && ga) {\n      if (this.angulartics2.settings.ga.userId) {\n        ga('set', '&uid', this.angulartics2.settings.ga.userId);\n        for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n          ga(accountName + '.set', '&uid', this.angulartics2.settings.ga.userId);\n        }\n      }\n      if (this.angulartics2.settings.ga.anonymizeIp) {\n        ga('set', 'anonymizeIp', true);\n        for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n          ga(accountName + '.set', 'anonymizeIp', true);\n        }\n      }\n      ga('send', 'pageview', path);\n      for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n        ga(accountName + '.send', 'pageview', path);\n      }\n    }\n  }\n\n  /**\n   * Track Event in GA\n   *\n   * @param action Associated with the event\n   * @param properties Comprised of:\n   *  - category (string) and optional\n   *  - label (string)\n   *  - value (integer)\n   *  - noninteraction (boolean)\n   *\n   * @link https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide#SettingUpEventTracking\n   * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events\n   */\n  eventTrack(action: string, properties: any) {\n    // Google Analytics requires an Event Category\n    if (!properties || !properties.category) {\n      properties = properties || {};\n      properties.category = 'Event';\n    }\n    // GA requires that eventValue be an integer, see:\n    // https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#eventValue\n    // https://github.com/luisfarzati/angulartics/issues/81\n    if (properties.value) {\n      const parsed = parseInt(properties.value, 10);\n      properties.value = isNaN(parsed) ? 0 : parsed;\n    }\n\n    if (typeof ga !== 'undefined') {\n      const eventOptions = {\n        eventCategory: properties.category,\n        eventAction: action,\n        eventLabel: properties.label,\n        eventValue: properties.value,\n        nonInteraction: properties.noninteraction,\n        page: properties.page || location.hash.substring(1) || location.pathname,\n        userId: this.angulartics2.settings.ga.userId,\n        hitCallback: properties.hitCallback,\n        ...(this.angulartics2.settings.ga.transport && {\n          transport: this.angulartics2.settings.ga.transport,\n        }),\n      };\n\n      // add custom dimensions and metrics\n      this.setDimensionsAndMetrics(properties);\n\n      ga('send', 'event', eventOptions);\n\n      for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n        ga(accountName + '.send', 'event', eventOptions);\n      }\n    } else if (typeof _gaq !== 'undefined') {\n      _gaq.push([\n        '_trackEvent',\n        properties.category,\n        action,\n        properties.label,\n        properties.value,\n        properties.noninteraction,\n      ]);\n    }\n  }\n\n  /**\n   * Exception Track Event in GA\n   *\n   * @param properties Comprised of the optional fields:\n   *  - fatal (string)\n   *  - description (string)\n   *\n   * @https://developers.google.com/analytics/devguides/collection/analyticsjs/exceptions\n   *\n   * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/events\n   */\n  exceptionTrack(properties: any) {\n    if (properties.fatal === undefined) {\n      console.log('No \"fatal\" provided, sending with fatal=true');\n      properties.fatal = true;\n    }\n\n    properties.exDescription = properties.description;\n\n    const eventOptions = {\n      exFatal: properties.fatal,\n      exDescription: properties.description,\n    };\n\n    ga('send', 'exception', eventOptions);\n    for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n      ga(accountName + '.send', 'exception', eventOptions);\n    }\n  }\n\n  /**\n   * User Timings Event in GA\n   *\n   * @param properties Comprised of the mandatory fields:\n   *  - timingCategory (string)\n   *  - timingVar (string)\n   *  - timingValue (number)\n   * Properties can also have the optional fields:\n   *  - timingLabel (string)\n   *\n   * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/user-timings\n   */\n  userTimings(properties: UserTimings) {\n    if (\n      !properties ||\n      !properties.timingCategory ||\n      !properties.timingVar ||\n      !properties.timingValue\n    ) {\n      console.error(\n        'Properties timingCategory, timingVar, and timingValue are required to be set.',\n      );\n      return;\n    }\n\n    if (typeof ga !== 'undefined') {\n      ga('send', 'timing', properties);\n      for (const accountName of this.angulartics2.settings.ga.additionalAccountNames) {\n        ga(accountName + '.send', 'timing', properties);\n      }\n    }\n  }\n\n  setUsername(userId: string) {\n    this.angulartics2.settings.ga.userId = userId;\n    if (typeof ga === 'undefined') {\n      return;\n    }\n    ga('set', 'userId', userId);\n  }\n\n  setUserProperties(properties: any) {\n    this.setDimensionsAndMetrics(properties);\n  }\n\n  private setDimensionsAndMetrics(properties: any) {\n    if (typeof ga === 'undefined') {\n      return;\n    }\n    // clean previously used dimensions and metrics that will not be overriden\n    this.dimensionsAndMetrics.forEach(elem => {\n      if (!properties.hasOwnProperty(elem)) {\n        ga('set', elem, undefined);\n\n        this.angulartics2.settings.ga.additionalAccountNames.forEach((accountName: string) => {\n          ga(`${accountName}.set`, elem, undefined);\n        });\n      }\n    });\n    this.dimensionsAndMetrics = [];\n\n    // add custom dimensions and metrics\n    Object.keys(properties).forEach(key => {\n      if (key.lastIndexOf('dimension', 0) === 0 || key.lastIndexOf('metric', 0) === 0) {\n        ga('set', key, properties[key]);\n\n        this.angulartics2.settings.ga.additionalAccountNames.forEach((accountName: string) => {\n          ga(`${accountName}.set`, key, properties[key]);\n        });\n        this.dimensionsAndMetrics.push(key);\n      }\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  GaEnhancedEcomAction,\n  GaEnhancedEcomActionFieldObject,\n  GaEnhancedEcomImpressionFieldObject,\n  GaEnhancedEcomProductFieldObject,\n} from './ga-enhanced-ecom-options';\n\ndeclare var ga: UniversalAnalytics.ga;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoogleAnalyticsEnhancedEcommerce {\n  /**\n   * Add impression in GA enhanced ecommerce tracking\n   * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#measuring-activities\n   */\n  ecAddImpression(properties: Partial<GaEnhancedEcomImpressionFieldObject>) {\n    ga('ec:addImpression', properties);\n  }\n\n  /**\n   * Add product in GA enhanced ecommerce tracking\n   * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce\n   */\n  ecAddProduct(product: Partial<GaEnhancedEcomProductFieldObject>) {\n    ga('ec:addProduct', product);\n  }\n\n  /**\n   * Set action in GA enhanced ecommerce tracking\n   * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce\n   */\n  ecSetAction(\n    action: GaEnhancedEcomAction,\n    properties: Partial<GaEnhancedEcomActionFieldObject>\n  ) {\n    ga('ec:setAction', action, properties);\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\nimport { GoogleTagManagerSettings } from '../../angulartics2-config';\n\ndeclare var dataLayer: any;\n\nexport class GoogleTagManagerDefaults implements GoogleTagManagerSettings {\n  userId = null;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoogleTagManager {\n  constructor(protected angulartics2: Angulartics2) {\n    // The dataLayer needs to be initialized\n    if (typeof dataLayer !== 'undefined' && dataLayer) {\n      dataLayer = (window as any).dataLayer = (window as any).dataLayer || [];\n    }\n    const defaults = new GoogleTagManagerDefaults();\n    // Set the default settings for this module\n    this.angulartics2.settings.gtm = { ...defaults, ...this.angulartics2.settings.gtm };\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n  }\n\n  startTracking() {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n    this.angulartics2.exceptionTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x: any) => this.exceptionTrack(x));\n  }\n\n  pageTrack(path: string) {\n    this.pushLayer({\n      event: 'Page View',\n      'content-name': path,\n      userId: this.angulartics2.settings.gtm.userId,\n    });\n  }\n\n  /**\n   * Send Data Layer\n   *\n   * @layer data layer object\n   */\n  pushLayer(layer: any) {\n    if (typeof dataLayer !== 'undefined' && dataLayer) {\n      dataLayer.push(layer);\n    }\n  }\n\n  /**\n   * Send interactions to the dataLayer, i.e. for event tracking in Google Analytics\n   *\n   * @param action associated with the event\n   */\n  eventTrack(action: string, properties: any) {\n    // TODO: make interface\n    //  @param {string} properties.category\n    //  @param {string} [properties.label]\n    //  @param {number} [properties.value]\n    //  @param {boolean} [properties.noninteraction]\n    // Set a default GTM category\n    properties = properties || {};\n\n    this.pushLayer({\n      event: properties.event || 'interaction',\n      target: properties.category || 'Event',\n      action,\n      label: properties.label,\n      value: properties.value,\n      interactionType: properties.noninteraction,\n      userId: this.angulartics2.settings.gtm.userId,\n      ...properties.gtmCustom,\n    });\n  }\n\n  /**\n   * Exception Track Event in GTM\n   *\n   */\n  exceptionTrack(properties: any) {\n    // TODO: make interface\n    //  @param {Object} properties\n    //  @param {string} properties.appId\n    //  @param {string} properties.appName\n    //  @param {string} properties.appVersion\n    //  @param {string} [properties.description]\n    //  @param {boolean} [properties.fatal]\n    if (!properties || !properties.appId || !properties.appName || !properties.appVersion) {\n      console.error('Must be setted appId, appName and appVersion.');\n      return;\n    }\n\n    if (properties.fatal === undefined) {\n      console.log('No \"fatal\" provided, sending with fatal=true');\n      properties.exFatal = true;\n    }\n\n    properties.exDescription = properties.event ? properties.event.stack : properties.description;\n\n    this.eventTrack(\n      `Exception thrown for ${properties.appName} <${properties.appId}@${properties.appVersion}>`,\n      {\n        category: 'Exception',\n        label: properties.exDescription,\n      },\n    );\n  }\n\n  /**\n   * Set userId for use with Universal Analytics User ID feature\n   *\n   * @param userId used to identify user cross-device in Google Analytics\n   */\n  setUsername(userId: string) {\n    this.angulartics2.settings.gtm.userId = userId;\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { UserTimings } from '../../angulartics2-interfaces';\nimport { GoogleGlobalSiteTagSettings } from '../../angulartics2-config';\nimport { Angulartics2 } from '../../angulartics2-core';\nimport { EventGst, UserTimingsGst } from './gst-interfaces';\n\ndeclare var gtag: any;\ndeclare var ga: any;\n\nexport class GoogleGlobalSiteTagDefaults implements GoogleGlobalSiteTagSettings {\n  trackingIds: string[] = [];\n\n  constructor() {\n    if (typeof ga !== 'undefined' && ga) {\n      // See: https://developers.google.com/analytics/devguides/collection/analyticsjs/ga-object-methods-reference\n      ga(() => {\n        ga.getAll().forEach((tracker: any) => {\n          const id = tracker.get('trackingId');\n          // If set both in forRoot and HTML page, we want to avoid duplicates\n          if (id !== undefined && this.trackingIds.indexOf(id) === -1) {\n            this.trackingIds.push(id);\n          }\n        });\n      });\n    }\n  }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoogleGlobalSiteTag {\n  private dimensionsAndMetrics: { [key: string]: any } = {};\n\n  constructor(protected angulartics2: Angulartics2) {\n    const defaults = new GoogleGlobalSiteTagDefaults();\n    // Set the default settings for this module\n    this.angulartics2.settings.gst = { ...defaults, ...this.angulartics2.settings.gst };\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n    this.angulartics2.exceptionTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x: any) => this.exceptionTrack(x));\n    this.angulartics2.userTimings\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.userTimings(this.convertTimings(x)));\n    this.angulartics2.setUsername\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x: any) => this.setUserProperties(x));\n  }\n\n  /**\n   * Manually track page view, see:\n   *\n   * https://developers.google.com/analytics/devguides/collection/gtagjs/single-page-applications#tracking_virtual_pageviews\n   *\n   * @param path relative url\n   */\n  pageTrack(path: string) {\n    if (typeof gtag !== 'undefined' && gtag) {\n      const params: any = {\n        page_path: path,\n        page_location: window.location.protocol + '//' + window.location.host + path,\n        ...this.dimensionsAndMetrics,\n      };\n\n      // Custom map must be reset with all config to stay valid.\n\n      if (this.angulartics2.settings.gst.customMap) {\n        params.custom_map = this.angulartics2.settings.gst.customMap;\n      }\n      if (this.angulartics2.settings.gst.userId) {\n        params.user_id = this.angulartics2.settings.gst.userId;\n      }\n      if (this.angulartics2.settings.gst.anonymizeIp) {\n        params.anonymize_ip = this.angulartics2.settings.gst.anonymizeIp;\n      }\n\n      for (const id of this.angulartics2.settings.gst.trackingIds) {\n        gtag('config', id, params);\n      }\n    }\n  }\n\n  /**\n   * Send interactions to gtag, i.e. for event tracking in Google Analytics. See:\n   *\n   * https://developers.google.com/analytics/devguides/collection/gtagjs/events\n   *\n   * @param action associated with the event\n   */\n  eventTrack(action: string, properties: Partial<EventGst> = {}) {\n    this.eventTrackInternal(action, {\n      event_category: properties.category || 'interaction',\n      event_label: properties.label,\n      value: properties.value,\n      non_interaction: properties.noninteraction,\n      ...properties.gstCustom,\n    });\n  }\n\n  /**\n   * Exception Track Event in GST. See:\n   *\n   * https://developers.google.com/analytics/devguides/collection/gtagjs/exceptions\n   *\n   */\n  exceptionTrack(properties: any) {\n    // TODO: make interface\n    //  @param {Object} properties\n    //  @param {string} [properties.description]\n    //  @param {boolean} [properties.fatal]\n    if (properties.fatal === undefined) {\n      console.log('No \"fatal\" provided, sending with fatal=true');\n      properties.fatal = true;\n    }\n\n    properties.exDescription = properties.event ? properties.event.stack : properties.description;\n\n    this.eventTrack('exception', {\n      gstCustom: {\n        description: properties.exDescription,\n        fatal: properties.fatal,\n        ...properties.gstCustom,\n      },\n    });\n  }\n\n  /**\n   * User Timings Event in GST.\n   *\n   * @param properties Comprised of the mandatory fields:\n   *  - name (string)\n   *  - value (number - integer)\n   * Properties can also have the optional fields:\n   *  - category (string)\n   *  - label (string)\n   *\n   * @link https://developers.google.com/analytics/devguides/collection/gtagjs/user-timings\n   */\n  userTimings(properties: UserTimingsGst) {\n    if (!properties) {\n      console.error('User timings - \"properties\" parameter is required to be set.');\n      return;\n    }\n\n    this.eventTrackInternal('timing_complete', {\n      name: properties.name,\n      value: properties.value,\n      event_category: properties.category,\n      event_label: properties.label,\n    });\n  }\n\n  private convertTimings(properties: UserTimings): UserTimingsGst {\n    return {\n      name: properties.timingVar,\n      value: properties.timingValue,\n      category: properties.timingCategory,\n      label: properties.timingLabel,\n    };\n  }\n\n  setUsername(userId: string | { userId: string | number }) {\n    this.angulartics2.settings.gst.userId = userId;\n    if (typeof gtag !== 'undefined' && gtag) {\n      gtag('set', { user_id: typeof userId === 'string' || !userId ? userId : userId.userId });\n    }\n  }\n\n  setUserProperties(properties: any) {\n    this.setDimensionsAndMetrics(properties);\n  }\n\n  private setDimensionsAndMetrics(properties: { [key: string]: any }) {\n    // We want the dimensions and metrics to accumulate, so we merge with previous value\n    this.dimensionsAndMetrics = {\n      ...this.dimensionsAndMetrics,\n      ...properties,\n    };\n\n    // Remove properties that are null or undefined\n    Object.keys(this.dimensionsAndMetrics).forEach(key => {\n      const val = this.dimensionsAndMetrics[key];\n      if (val === undefined || val === null) {\n        delete this.dimensionsAndMetrics[key];\n      }\n    });\n\n    if (typeof gtag !== 'undefined' && gtag) {\n      gtag('set', this.dimensionsAndMetrics);\n    }\n  }\n\n  private eventTrackInternal(action: string, properties: any = {}) {\n    this.cleanProperties(properties);\n    if (typeof gtag !== 'undefined' && gtag) {\n      gtag('event', action, properties);\n    }\n  }\n\n  private cleanProperties(properties: { [key: string]: any }): void {\n    // GA requires that eventValue be an non-negative integer, see:\n    // https://developers.google.com/analytics/devguides/collection/gtagjs/events\n    if (properties.value) {\n      const parsed = parseInt(properties.value, 10);\n      properties.value = isNaN(parsed) ? 0 : parsed;\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var _hsq: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Hubspot {\n  constructor(private angulartics2: Angulartics2) {\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    if (typeof _hsq !== 'undefined') {\n      _hsq.push(['setPath', path]);\n      _hsq.push(['trackPageView']);\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    if (typeof _hsq !== 'undefined') {\n      _hsq.push(['trackEvent', properties]);\n    }\n  }\n\n  setUserProperties(properties: any) {\n    if (typeof _hsq !== 'undefined') {\n      _hsq.push(['identify', properties]);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var _kmq: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Kissmetrics {\n  constructor(private angulartics2: Angulartics2) {\n    if (typeof _kmq === 'undefined') {\n      _kmq = [];\n    }\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    _kmq.push(['record', 'Pageview', { Page: path }]);\n  }\n\n  eventTrack(action: string, properties: any) {\n    _kmq.push(['record', action, properties]);\n  }\n\n  setUsername(userId: string) {\n    _kmq.push(['identify', userId]);\n  }\n\n  setUserProperties(properties: any) {\n    _kmq.push(['set', properties]);\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare const _satellite: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2LaunchByAdobe {\n  payload: any = {};\n\n  constructor(protected angulartics2: Angulartics2) {\n    if ('undefined' === typeof _satellite) {\n      console.warn('Launch not found!');\n    }\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n  }\n\n  setUsername(userId: string | boolean) {\n    if ('undefined' !== typeof userId && userId) {\n      this.payload.userId = userId;\n    }\n  }\n\n  setUserProperties(properties: any) {\n    if ('undefined' !== typeof properties && properties) {\n      this.payload.properties = properties;\n    }\n  }\n\n  startTracking() {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    this.payload = this.payload || {};\n    this.payload.path = path;\n\n    if ('undefined' !== typeof _satellite && _satellite) {\n      _satellite.track('pageTrack', this.payload);\n    }\n  }\n\n  /**\n   * @param action associated with the event\n   * @param properties associated with the event\n   */\n  eventTrack(action: string, properties: any) {\n    properties = properties || {};\n\n    // add properties to payload\n    this.payload.action = action;\n    this.payload.eventProperties = properties;\n\n    if ('undefined' !== typeof _satellite && _satellite) {\n      _satellite.track('eventTrack', this.payload);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var mixpanel: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Mixpanel {\n  constructor(private angulartics2: Angulartics2) {\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n    this.angulartics2.setUserPropertiesOnce.subscribe(x => this.setUserPropertiesOnce(x));\n    this.angulartics2.setSuperProperties.subscribe(x => this.setSuperProperties(x));\n    this.angulartics2.setSuperPropertiesOnce.subscribe(x => this.setSuperPropertiesOnce(x));\n    this.angulartics2.setAlias.subscribe(x => this.setAlias(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    try {\n      mixpanel.track('Page Viewed', { page: path });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    try {\n      mixpanel.track(action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUsername(userId: string) {\n    try {\n      mixpanel.identify(userId);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserProperties(properties: any) {\n    try {\n      mixpanel.people.set(properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserPropertiesOnce(properties: any) {\n    try {\n      mixpanel.people.set_once(properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setSuperProperties(properties: any) {\n    try {\n      mixpanel.register(properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setSuperPropertiesOnce(properties: any) {\n    try {\n      mixpanel.register_once(properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setAlias(alias: any) {\n    try {\n      mixpanel.alias(alias);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare let posthog: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Posthog {\n  private readonly angulartics2 = inject(Angulartics2);\n\n  constructor() {\n    this.angulartics2.setUsername.subscribe(x => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n    this.angulartics2.setUserPropertiesOnce.subscribe(x => this.setUserPropertiesOnce(x));\n    this.angulartics2.setSuperProperties.subscribe(x => this.setSuperProperties(x));\n    this.angulartics2.setSuperPropertiesOnce.subscribe(x => this.setSuperPropertiesOnce(x));\n    this.angulartics2.setAlias.subscribe(x => this.setAlias(x));\n  }\n\n  startTracking(): void {\n    this.startPageTracking();\n    this.startEventTracking();\n  }\n\n  startPageTracking(): void {\n    this.angulartics2.pageTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe(x => {\n      this.pageTrack(x.path);\n    });\n  }\n\n  startEventTracking(): void {\n    this.angulartics2.eventTrack.pipe(this.angulartics2.filterDeveloperMode()).subscribe(x => {\n      this.eventTrack(x.action, x.properties);\n    });\n  }\n\n  pageTrack(path: string | undefined): void {\n    try {\n      posthog.capture('Page Viewed', { page: path });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties?: any): void {\n    try {\n      posthog.capture(action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUsername(userId: string | { userId: string | number }): void {\n    try {\n      posthog.identify(userId);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserProperties(properties: any | undefined): void {\n    try {\n      posthog.identify(properties[\"distinct_id\"], properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserPropertiesOnce(properties: any | undefined): void {\n    try {\n      posthog.capture('Set User Properties Once', {\n        $set_once: properties\n      });\n    }\n    catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setSuperProperties(properties: any | undefined): void {\n    try {\n      posthog.capture('Set Super Properties', { $set: properties });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setSuperPropertiesOnce(properties: any | undefined): void {\n    try {\n      posthog.capture('Set Super Properties Once', { $set_once: properties });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setAlias(alias: string): void {\n    try {\n      posthog.alias(alias);\n    }\n    catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setGroup(groupType: string, groupKey: string, properties: any) {\n    try {\n      posthog.group(groupType, groupKey, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var Pyze: any;\ndeclare var PyzeEvents: any;\ndeclare var PyzeIdentity: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Pyze {\n  constructor(private angulartics2: Angulartics2) {\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUserProfile(x));\n    this.angulartics2.setUserProperties.subscribe(x => this.updateUserProfile(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    try {\n      Pyze.postPageView('Page Viewed', { page: path });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    try {\n      PyzeEvents.postCustomEventWithAttributes(action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserProfile(userId: string) {\n    try {\n      PyzeIdentity.setUserProfile(userId);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  updateUserProfile(properties: any) {\n    try {\n      PyzeIdentity.updateUserProfile({},properties)\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var _paq: any;\n\nexport type EventTrackAction =\n  | 'setEcommerceView'\n  | 'addEcommerceItem'\n  | 'trackEcommerceCartUpdate'\n  | 'trackEcommerceOrder'\n  | 'trackLink'\n  | 'trackGoal'\n  | 'trackSiteSearch'\n  | string;\n\nexport type ScopeMatomo = 'visit' | 'page';\n\nexport interface DimensionsMatomoProperties {\n  dimension1?: string;\n  dimension2?: string;\n  dimension3?: string;\n  dimension4?: string;\n  dimension5?: string;\n  dimension6?: string;\n  dimension7?: string;\n  dimension8?: string;\n  dimension9?: string;\n  dimension10?: string;\n  dimension11?: string;\n  dimension12?: string;\n  dimension13?: string;\n  dimension14?: string;\n  dimension15?: string;\n}\nexport interface SetEcommerceViewMatomoProperties {\n  /** @class SetEcommerceViewMatomoProperties */\n  productSKU: string;\n  /** @class SetEcommerceViewMatomoProperties */\n  productName: string;\n  /** @class SetEcommerceViewMatomoProperties */\n  categoryName: string;\n  /** @class SetEcommerceViewMatomoProperties */\n  price: string;\n}\n\nexport interface AddEcommerceItemProperties {\n  /** @class AddEcommerceItemProperties */\n  productSKU: string;\n  /** @class AddEcommerceItemProperties */\n  productName: string;\n  /** @class AddEcommerceItemProperties */\n  productCategory: string;\n  /** @class AddEcommerceItemProperties */\n  price: string;\n  /** @class AddEcommerceItemProperties */\n  quantity: string;\n}\n\nexport interface TrackEcommerceCartUpdateMatomoProperties {\n  /** @class TrackEcommerceCartUpdateMatomoProperties */\n  grandTotal: string;\n}\n\nexport interface TrackEcommerceOrderMatomoProperties {\n  /** @class TrackEcommerceOrderMatomoProperties */\n  orderId: string;\n  /** @class TrackEcommerceOrderMatomoProperties */\n  grandTotal: string;\n  /** @class TrackEcommerceOrderMatomoProperties */\n  subTotal: string;\n  /** @class TrackEcommerceOrderMatomoProperties */\n  tax: string;\n  /** @class TrackEcommerceOrderMatomoProperties */\n  shipping: string;\n  /** @class TrackEcommerceOrderMatomoProperties */\n  discount: string;\n}\n\nexport interface TrackLinkMatomoProperties {\n  /** @class TrackLinkMatomoProperties */\n  url: string;\n  /** @class TrackLinkMatomoProperties */\n  linkType: string;\n}\n\nexport interface TrackGoalMatomoProperties {\n  /** @class TrackGoalMatomoProperties */\n  goalId: string;\n  /** @class TrackGoalMatomoProperties */\n  value: string;\n}\n\nexport interface TrackSiteSearchMatomoProperties {\n  /** @class TrackSiteSearchMatomoProperties */\n  keyword: string;\n  /** @class TrackSiteSearchMatomoProperties */\n  category: string;\n  /** @class TrackSiteSearchMatomoProperties */\n  searchCount: string;\n}\n\nexport interface TrackEventMatomoProperties {\n  /** @class TrackEventMatomoProperties */\n  category: string;\n  /** @class TrackEventMatomoProperties */\n  name?: string;\n  /** @class TrackEventMatomoProperties */\n  label?: string;\n  /** @class TrackEventMatomoProperties */\n  value?: number | string;\n}\n\nexport interface SetCustomVariableMatomoProperties {\n  /** @class SetCustomVariableMatomoProperties */\n  index: number;\n  /** @class SetCustomVariableMatomoProperties */\n  name: string;\n  /** @class SetCustomVariableMatomoProperties */\n  value: string;\n  /** @class SetCustomVariableMatomoProperties */\n  scope: ScopeMatomo;\n}\n\nexport interface DeleteCustomVariableMatomoProperties {\n  /** @class DeleteCustomVariableMatomoProperties */\n  index: number;\n  /** @class DeleteCustomVariableMatomoProperties */\n  scope: ScopeMatomo;\n}\n\nexport type EventTrackactionProperties =\n  | SetEcommerceViewMatomoProperties\n  | AddEcommerceItemProperties\n  | TrackEcommerceCartUpdateMatomoProperties\n  | TrackEcommerceOrderMatomoProperties\n  | TrackLinkMatomoProperties\n  | TrackGoalMatomoProperties\n  | TrackSiteSearchMatomoProperties\n  | TrackEventMatomoProperties;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Matomo {\n  constructor(private angulartics2: Angulartics2) {\n    if (typeof _paq === 'undefined') {\n      console.warn('Matomo not found');\n    }\n    this.angulartics2.setUsername.subscribe((x: string) => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe((x: any) =>\n      this.setUserProperties(x),\n    );\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string, title?: string) {\n    try {\n      if (!window.location.origin) {\n        (window.location as any).origin =\n          window.location.protocol +\n          '//' +\n          window.location.hostname +\n          (window.location.port ? ':' + window.location.port : '');\n      }\n      _paq.push(['setDocumentTitle', title || window.document.title]);\n      _paq.push(['setCustomUrl', window.location.origin + path]);\n      _paq.push(['trackPageView']);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  resetUser() {\n    try {\n      _paq.push(['appendToTrackingUrl', 'new_visit=1']); // (1) forces a new visit\n      _paq.push(['deleteCookies']); // (2) deletes existing tracking cookies to start the new visit\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: 'setEcommerceView', properties: SetEcommerceViewMatomoProperties): void;\n  eventTrack(action: 'addEcommerceItem', properties: AddEcommerceItemProperties): void;\n  eventTrack(\n    action: 'trackEcommerceCartUpdate',\n    properties: TrackEcommerceCartUpdateMatomoProperties,\n  ): void;\n  eventTrack(action: 'trackEcommerceOrder', properties: TrackEcommerceOrderMatomoProperties): void;\n  eventTrack(action: 'trackLink', properties: TrackLinkMatomoProperties): void;\n  eventTrack(action: 'trackGoal', properties: TrackGoalMatomoProperties): void;\n  eventTrack(action: 'trackSiteSearch', properties: TrackSiteSearchMatomoProperties): void;\n  eventTrack(action: string, properties: TrackEventMatomoProperties): void;\n\n  /**\n   * Track a basic event in Matomo, or send an ecommerce event.\n   *\n   * @param action A string corresponding to the type of event that needs to be tracked.\n   * @param properties The properties that need to be logged with the event.\n   */\n  eventTrack(action: EventTrackAction, properties?: EventTrackactionProperties) {\n    let params = [];\n    switch (action) {\n      /**\n       * @description Sets the current page view as a product or category page view. When you call\n       * setEcommerceView it must be followed by a call to trackPageView to record the product or\n       * category page view.\n       *\n       * @link https://matomo.org/docs/ecommerce-analytics/#tracking-product-page-views-category-page-views-optional\n       * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce\n       *\n       * @property productSKU (required) SKU: Product unique identifier\n       * @property productName (optional) Product name\n       * @property categoryName (optional) Product category, or array of up to 5 categories\n       * @property price (optional) Product Price as displayed on the page\n       */\n      case 'setEcommerceView':\n        params = [\n          'setEcommerceView',\n          (properties as SetEcommerceViewMatomoProperties).productSKU,\n          (properties as SetEcommerceViewMatomoProperties).productName,\n          (properties as SetEcommerceViewMatomoProperties).categoryName,\n          (properties as SetEcommerceViewMatomoProperties).price,\n        ];\n        break;\n\n      /**\n       * @description Adds a product into the ecommerce order. Must be called for each product in\n       * the order.\n       *\n       * @link https://matomo.org/docs/ecommerce-analytics/#tracking-ecommerce-orders-items-purchased-required\n       * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce\n       *\n       * @property productSKU (required) SKU: Product unique identifier\n       * @property productName (optional) Product name\n       * @property categoryName (optional) Product category, or array of up to 5 categories\n       * @property price (recommended) Product price\n       * @property quantity (optional, default to 1) Product quantity\n       */\n      case 'addEcommerceItem':\n        params = [\n          'addEcommerceItem',\n          (properties as AddEcommerceItemProperties).productSKU,\n          (properties as AddEcommerceItemProperties).productName,\n          (properties as AddEcommerceItemProperties).productCategory,\n          (properties as AddEcommerceItemProperties).price,\n          (properties as AddEcommerceItemProperties).quantity,\n        ];\n        break;\n\n      /**\n       * @description Tracks a shopping cart. Call this javascript function every time a user is\n       * adding, updating or deleting a product from the cart.\n       *\n       * @link https://matomo.org/docs/ecommerce-analytics/#tracking-add-to-cart-items-added-to-the-cart-optional\n       * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce\n       *\n       * @property grandTotal (required) Cart amount\n       */\n      case 'trackEcommerceCartUpdate':\n        params = [\n          'trackEcommerceCartUpdate',\n          (properties as TrackEcommerceCartUpdateMatomoProperties).grandTotal,\n        ];\n        break;\n\n      /**\n       * @description Tracks an Ecommerce order, including any ecommerce item previously added to\n       * the order. orderId and grandTotal (ie. revenue) are required parameters.\n       *\n       * @link https://matomo.org/docs/ecommerce-analytics/#tracking-ecommerce-orders-items-purchased-required\n       * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce\n       *\n       * @property orderId (required) Unique Order ID\n       * @property grandTotal (required) Order Revenue grand total (includes tax, shipping, and subtracted discount)\n       * @property subTotal (optional) Order sub total (excludes shipping)\n       * @property tax (optional) Tax amount\n       * @property shipping (optional) Shipping amount\n       * @property discount (optional) Discount offered (set to false for unspecified parameter)\n       */\n      case 'trackEcommerceOrder':\n        params = [\n          'trackEcommerceOrder',\n          (properties as TrackEcommerceOrderMatomoProperties).orderId,\n          (properties as TrackEcommerceOrderMatomoProperties).grandTotal,\n          (properties as TrackEcommerceOrderMatomoProperties).subTotal,\n          (properties as TrackEcommerceOrderMatomoProperties).tax,\n          (properties as TrackEcommerceOrderMatomoProperties).shipping,\n          (properties as TrackEcommerceOrderMatomoProperties).discount,\n        ];\n        break;\n\n      /**\n       * @description To manually trigger an outlink\n       *\n       * @link https://matomo.org/docs/tracking-goals-web-analytics/\n       * @link https://developer.matomo.org/guides/tracking-javascript-guide#tracking-a-click-as-an-outlink-via-css-or-javascript\n       *\n       * @property url (required) link url\n       * @property linkType (optional) type of link\n       */\n      case 'trackLink':\n        params = [\n          'trackLink',\n          (properties as TrackLinkMatomoProperties).url,\n          (properties as TrackLinkMatomoProperties).linkType,\n        ];\n        break;\n\n      /**\n       * @description Tracks an Ecommerce goal\n       *\n       * @link https://matomo.org/docs/tracking-goals-web-analytics/\n       * @link https://developer.matomo.org/guides/tracking-javascript-guide#manually-trigger-goal-conversions\n       *\n       * @property goalId (required) Unique Goal ID\n       * @property value (optional) passed to goal tracking\n       */\n      case 'trackGoal':\n        params = [\n          'trackGoal',\n          (properties as TrackGoalMatomoProperties).goalId,\n          (properties as TrackGoalMatomoProperties).value,\n        ];\n        break;\n\n      /**\n       * @description Tracks a site search\n       *\n       * @link https://matomo.org/docs/site-search/\n       * @link https://developer.matomo.org/guides/tracking-javascript-guide#internal-search-tracking\n       *\n       * @property keyword (required) Keyword searched for\n       * @property category (optional) Search category\n       * @property searchCount (optional) Number of results\n       */\n      case 'trackSiteSearch':\n        params = [\n          'trackSiteSearch',\n          (properties as TrackSiteSearchMatomoProperties).keyword,\n          (properties as TrackSiteSearchMatomoProperties).category,\n          (properties as TrackSiteSearchMatomoProperties).searchCount,\n        ];\n        break;\n\n      /**\n       * @description Logs an event with an event category (Videos, Music, Games...), an event\n       * action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...), and an optional\n       * event name and optional numeric value.\n       *\n       * @link https://matomo.org/docs/event-tracking/\n       * @link https://developer.matomo.org/api-reference/tracking-javascript#using-the-tracker-object\n       *\n       * @property category\n       * @property action\n       * @property name (optional, recommended)\n       * @property value (optional)\n       */\n      default:\n        // PAQ requires that eventValue be an integer, see: http://matomo.org/docs/event-tracking\n        if ((properties as TrackEventMatomoProperties).value) {\n          const parsed = parseInt((properties as TrackEventMatomoProperties).value as any, 10);\n          (properties as TrackEventMatomoProperties).value = isNaN(parsed) ? 0 : parsed;\n        }\n\n        params = [\n          'trackEvent',\n          (properties as TrackEventMatomoProperties).category,\n          action,\n          (properties as TrackEventMatomoProperties).name ||\n            (properties as TrackEventMatomoProperties).label, // Changed in favour of Matomo documentation. Added fallback so it's backwards compatible.\n          (properties as TrackEventMatomoProperties).value,\n        ];\n    }\n    try {\n      _paq.push(params);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUsername(userId: string | boolean) {\n    try {\n      _paq.push(['setUserId', userId]);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  /**\n   * Sets custom dimensions if at least one property has the key \"dimension<n>\",\n   * e.g. dimension10. If there are custom dimensions, any other property is ignored.\n   *\n   * If there are no custom dimensions in the given properties object, the properties\n   * object is saved as a custom variable.\n   *\n   * If in doubt, prefer custom dimensions.\n   * @link https://matomo.org/docs/custom-variables/\n   */\n  setUserProperties(properties: SetCustomVariableMatomoProperties | DimensionsMatomoProperties) {\n    const dimensions = this.setCustomDimensions(properties);\n    try {\n      if (dimensions.length === 0) {\n        _paq.push([\n          'setCustomVariable',\n          (properties as SetCustomVariableMatomoProperties).index,\n          (properties as SetCustomVariableMatomoProperties).name,\n          (properties as SetCustomVariableMatomoProperties).value,\n          (properties as SetCustomVariableMatomoProperties).scope,\n        ]);\n      }\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  /**\n   * If you created a custom variable and then decide to remove this variable from\n   * a visit or page view, you can use deleteCustomVariable.\n   *\n   * @link https://developer.matomo.org/guides/tracking-javascript-guide#deleting-a-custom-variable\n   */\n  deletedUserProperties(properties: DeleteCustomVariableMatomoProperties) {\n    try {\n      _paq.push(['deleteCustomVariable', properties.index, properties.scope]);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  private setCustomDimensions(properties: SetCustomVariableMatomoProperties | DimensionsMatomoProperties): string[] {\n    const dimensionRegex: RegExp = /dimension[1-9]\\d*/;\n    const dimensions = Object.keys(properties).filter(key => dimensionRegex.exec(key));\n    dimensions.forEach(dimension => {\n      const number = Number(dimension.substr(9));\n      _paq.push(['setCustomDimension', number, properties[dimension]]);\n    });\n    return dimensions;\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var analytics: SegmentAnalytics.AnalyticsJS;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Segment {\n  constructor(private angulartics2: Angulartics2) {\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n    this.angulartics2.setUserPropertiesOnce.subscribe(x => this.setUserProperties(x));\n    this.angulartics2.setAlias.subscribe(x => this.setAlias(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  /**\n   * https://segment.com/docs/libraries/analytics.js/#page\n   *\n   * analytics.page([category], [name], [properties], [options], [callback]);\n   */\n  pageTrack(path: string) {\n    // TODO : Support optional parameters where the parameter order and type changes their meaning\n    try {\n      analytics.page(path);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  /**\n   * https://segment.com/docs/libraries/analytics.js/#track\n   *\n   * analytics.track(event, [properties], [options], [callback]);\n   */\n  eventTrack(action: string, properties: any) {\n    try {\n      analytics.track(action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  /**\n   * https://segment.com/docs/libraries/analytics.js/#identify\n   *\n   * analytics.identify([userId], [traits], [options], [callback]);\n   */\n  setUserProperties(properties: any) {\n    try {\n      if (properties.userId) {\n        analytics.identify(properties.userId, properties);\n      } else {\n        analytics.identify(properties);\n      }\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  /**\n   * https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#reset--logout\n   *\n   * analytics.reset();\n   */\n  unsetUserProperties() {\n    analytics.reset();\n  }\n\n  /**\n   * https://segment.com/docs/libraries/analytics.js/#alias\n   *\n   * analytics.alias(userId, previousId, options, callback);\n   */\n  setAlias(alias: any) {\n    try {\n      analytics.alias(alias);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var Intercom: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Intercom {\n  constructor(private angulartics2: Angulartics2) {\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n    this.angulartics2.setUserPropertiesOnce.subscribe(x => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    try {\n      this.eventTrack('Pageview', {\n        url: path,\n      });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    try {\n      Intercom('trackEvent', action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserProperties(properties: any) {\n    try {\n      if (properties.userId && !properties.user_id) {\n        properties.user_id = properties.userId;\n      }\n\n      Intercom('boot', properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var woopra: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Woopra {\n  constructor(private angulartics2: Angulartics2) {\n    if (typeof woopra === 'undefined') {\n      console.warn('Woopra not found');\n    }\n\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    try {\n      woopra.track('pv', {\n        url: path,\n      });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    try {\n      woopra.track(action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserProperties(properties: any) {\n    try {\n      if (properties.email) {\n        woopra.identify(properties);\n      }\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport { Angulartics2 } from '../../angulartics2-core';\nimport { ClickyProperties } from './clicky.interfaces';\n\ndeclare var clicky: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Clicky {\n  constructor(private angulartics2: Angulartics2, private titleService: Title) {\n    if (typeof clicky === 'undefined') {\n      console.warn('Angulartics 2 Clicky Plugin: clicky global not found');\n    }\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventOrGoalTrack(x.action, x.properties));\n  }\n\n  /**\n   * Track Page in Clicky\n   *\n   * @param path location\n   *\n   * @link https://clicky.com/help/custom/manual#log\n   */\n  pageTrack(path: string) {\n    const title: string = this.titleService.getTitle();\n    clicky.log(path, title, 'pageview');\n  }\n\n  /**\n   * Track Event Or Goal in Clicky\n   *\n   * @param action Action name\n   * @param properties Definition of 'properties.goal' determines goal vs event tracking\n   *\n   * @link https://clicky.com/help/custom/manual#log\n   * @link https://clicky.com/help/custom/manual#goal\n   */\n  eventOrGoalTrack(action: string, properties: Partial<ClickyProperties>) {\n    if (typeof properties.goal === 'undefined') {\n      const title: string = properties.title || null;\n      const type: string = properties.type != null ? this.validateType(properties.type) : null;\n      clicky.log(action, title, type);\n    } else {\n      const goalId: string = properties.goal;\n      const revenue: number = properties.revenue;\n      clicky.goal(goalId, revenue, !!properties.noQueue);\n    }\n  }\n\n  private validateType(type: string): string {\n    const EventType = ['pageview', 'click', 'download', 'outbound'];\n    return EventType.indexOf(type) > -1 ? type : 'pageview';\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var amplitude: {\n  getInstance: () => {\n    logEvent(action: string, properties: any);\n    setUserId(userId: string);\n    setUserProperties(properties: any);\n  };\n};\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Amplitude {\n  constructor(private angulartics2: Angulartics2) {\n    this.angulartics2.setUsername.subscribe((x: any) => this.setUsername(x));\n    this.angulartics2.setUserProperties.subscribe((x: any) => this.setUserProperties(x));\n    this.angulartics2.setUserPropertiesOnce.subscribe((x: any) => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x: any) => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe((x: any) => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    try {\n      this.eventTrack('Pageview', {\n        url: path,\n      });\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    try {\n      amplitude.getInstance().logEvent(action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUsername(userId: string) {\n    try {\n      amplitude.getInstance().setUserId(userId);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserProperties(properties: any) {\n    try {\n      amplitude.getInstance().setUserProperties(properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var sp: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2Splunk {\n  constructor(private angulartics2: Angulartics2) {\n    if (typeof sp === 'undefined') {\n      console.warn('Splunk not found');\n    }\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    try {\n      sp.pageview(path);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    try {\n      sp.track(action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\r\nimport { Angulartics2 } from '../../angulartics2-core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class Angulartics2IBMDigitalAnalytics {\r\n  constructor(private angulartics2: Angulartics2) {\r\n    if (typeof window['cmCreatePageviewTag'] !== 'function') {\r\n      console.warn('Angulartics 2 IBM Digital Analytics Plugin: eluminate.js is not loaded');\r\n    }\r\n  }\r\n\r\n  startTracking(): void {\r\n    this.angulartics2.pageTrack\r\n      .pipe(this.angulartics2.filterDeveloperMode())\r\n      .subscribe(x => this.pageTrack(x.path));\r\n    this.angulartics2.eventTrack\r\n      .pipe(this.angulartics2.filterDeveloperMode())\r\n      .subscribe(x => this.eventTrack(x.action, x.properties));\r\n  }\r\n\r\n  /**\r\n   * Track Page in IBM Digital Analytics\r\n   *\r\n   * @param path location\r\n   *\r\n   * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_pageviewtag.html\r\n   */\r\n  pageTrack(path: string) {\r\n    const cmCreatePageviewTag = window['cmCreatePageviewTag'];\r\n    cmCreatePageviewTag(path, null, null, null);\r\n  }\r\n\r\n  /**\r\n   * Track an event in IBM Digital Analytics\r\n   *\r\n   * @param action A string corresponding to the type of event that needs to be tracked.\r\n   * @param properties The properties that need to be logged with the event.\r\n   */\r\n  eventTrack(action: string, properties: any = {}) {\r\n    const cmDisplayShops = window['cmDisplayShops'];\r\n    switch (action) {\r\n      /**\r\n       * @description The Product View tag captures information about vdigitalDataiews of product detail pages.\r\n       *  The Product View tag should be called on the lowest level detail page for products, which is typically\r\n       *  the Product Details page. You can view example Product View tags below.\r\n       *\r\n       * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_prodviewtag.html\r\n       */\r\n      case 'cmCreateProductviewTag':\r\n        const cmCreateProductviewTag = window['cmCreateProductviewTag'];\r\n        cmCreateProductviewTag(\r\n          properties.productId,\r\n          properties.productName,\r\n          properties.categoryId,\r\n          properties.attrbute,\r\n          properties.virtualCategory,\r\n        );\r\n\r\n        break;\r\n\r\n      /**\r\n       * @description The Shop Action 5 tag captures data about selected products and which products are present in a shopping cart,\r\n       *  if any, when the cart is viewed.\r\n       *\r\n       * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_shopact5tag.html\r\n       */\r\n      case 'cmCreateShopAction5Tag':\r\n        const cmCreateShopAction5Tag = window['cmCreateShopAction5Tag'];\r\n        cmCreateShopAction5Tag(\r\n          properties.productId,\r\n          properties.productName,\r\n          properties.quantity,\r\n          properties.unitPrice,\r\n          properties.categoryId,\r\n          properties.attrbute,\r\n          properties.extraFields,\r\n          properties.virtualCategory,\r\n        );\r\n\r\n        cmDisplayShops();\r\n\r\n        break;\r\n\r\n      /**\r\n       * @description The Shop Action 9 tag captures data about what products were purchased by a customer.\r\n       *  Like the Shop Action 5 tag, one tag should be sent for each product line item purchased. These tags should be sent\r\n       *  on the receipt or other completion page confirming a successful order.\r\n       *\r\n       * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_shopact9tag.html\r\n       */\r\n      case 'cmCreateShopAction9Tag':\r\n        const cmCreateShopAction9Tag = window['cmCreateShopAction9Tag'];\r\n        cmCreateShopAction9Tag(\r\n          properties.productId,\r\n          properties.productName,\r\n          properties.quantity,\r\n          properties.unitPrice,\r\n          properties.registrationId,\r\n          properties.orderId,\r\n          properties.orderSubtotal,\r\n          properties.categoryId,\r\n          properties.attrbute,\r\n          properties.extraFields,\r\n        );\r\n\r\n        cmDisplayShops();\r\n\r\n        break;\r\n\r\n      /**\r\n       * @description The Order tag captures order header information such as Registration ID, order ID, order subtotal,\r\n       *  and shipping and handling. The Order tag should be sent on the receipt page confirming order completion.\r\n       *\r\n       * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_ordertag.html\r\n       */\r\n      case 'cmCreateOrderTag':\r\n        const cmCreateOrderTag = window['cmCreateOrderTag'];\r\n        cmCreateOrderTag(\r\n          properties.orderId,\r\n          properties.orderSubtotal,\r\n          properties.orderShipping,\r\n          properties.registrationId,\r\n          properties.registrantCity,\r\n          properties.registrantState,\r\n          properties.registrantPostalCode,\r\n          properties.attrbute,\r\n          properties.extraFields,\r\n        );\r\n\r\n        break;\r\n\r\n      /**\r\n       * @description The Registration tag creates a Lifetime Visitor Experience Profile (LIVE Profile) by associating a single\r\n       *  common Registration ID with the IBM® Digital Analytics permanent cookie set in every browser visiting the tagged site.\r\n       *\r\n       * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_registrationtag.html\r\n       */\r\n      case 'cmCreateRegistrationTag':\r\n        const cmCreateRegistrationTag = window['cmCreateRegistrationTag'];\r\n        cmCreateRegistrationTag(\r\n          properties.registrationId,\r\n          properties.registrantEmail,\r\n          properties.registrantCity,\r\n          properties.registrantState,\r\n          properties.registrantPostalCode,\r\n          properties.registrantCountry,\r\n          properties.attrbute,\r\n        );\r\n\r\n        break;\r\n\r\n      /**\r\n       * @description The Element tag is used to track intra-page content in IBM® Digital Analytics. Data collected by\r\n       *  the Element tag is used to populate values in the Element Categories and Top Viewed Elements reports.\r\n       *\r\n       * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_elementtag.html\r\n       */\r\n      case 'cmCreateElementTag':\r\n        const cmCreateElementTag = window['cmCreateElementTag'];\r\n        cmCreateElementTag(properties.elementId, properties.elementCategory, properties.attrbute);\r\n\r\n        break;\r\n\r\n      /**\r\n       * @description The Conversion Event tag is employed for tracking of general non-commerce conversion events.\r\n       * The Conversion Event tag is used to populate values in the Conversion Events Reports and to create Key Segments.\r\n       * This tag and the reports it populates enable analysis of a wide variety of site activities.\r\n       *\r\n       * @link https://www.ibm.com/support/knowledgecenter/SSPG9M/Implementation/impl_conversioneventtag.html\r\n       */\r\n      case 'cmCreateConversionEventTag':\r\n        const cmCreateConversionEventTag = window['cmCreateConversionEventTag'];\r\n        cmCreateConversionEventTag(\r\n          properties.eventId,\r\n          properties.actionType,\r\n          properties.eventCategoryId,\r\n          properties.points,\r\n          properties.attrbute,\r\n          properties.extraFields,\r\n        );\r\n\r\n        break;\r\n\r\n      default:\r\n        console.warn('Unsupported Event Action');\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\n\nimport { Angulartics2 } from '../../angulartics2-core';\n\ndeclare var _gs: any;\n\n@Injectable({ providedIn: 'root' })\nexport class Angulartics2GoSquared {\n  constructor(private angulartics2: Angulartics2) {\n    this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));\n    this.angulartics2.setUserPropertiesOnce.subscribe(x => this.setUserProperties(x));\n  }\n\n  startTracking(): void {\n    this.angulartics2.pageTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.pageTrack(x.path));\n    this.angulartics2.eventTrack\n      .pipe(this.angulartics2.filterDeveloperMode())\n      .subscribe(x => this.eventTrack(x.action, x.properties));\n  }\n\n  pageTrack(path: string) {\n    try {\n      _gs('track', path);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  eventTrack(action: string, properties: any) {\n    try {\n      _gs('event', action, properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n\n  setUserProperties(properties: any) {\n    try {\n      _gs('identify', properties);\n    } catch (e) {\n      if (!(e instanceof ReferenceError)) {\n        throw e;\n      }\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.Angulartics2","i2","i3"],"mappings":"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"}