{"version":3,"file":"ngx-matomo-client-form-analytics.mjs","sources":["../../../projects/ngx-matomo-client/form-analytics/configuration.ts","../../../projects/ngx-matomo-client/form-analytics/directives/errors.ts","../../../projects/ngx-matomo-client/form-analytics/utils/coercion.ts","../../../projects/ngx-matomo-client/form-analytics/matomo-form-analytics.service.ts","../../../projects/ngx-matomo-client/form-analytics/directives/track-form.directive.ts","../../../projects/ngx-matomo-client/form-analytics/directives/track-form-field.directive.ts","../../../projects/ngx-matomo-client/form-analytics/directives/track-forms.directive.ts","../../../projects/ngx-matomo-client/form-analytics/matomo-form-analytics-initializer.service.ts","../../../projects/ngx-matomo-client/form-analytics/matomo-form-analytics.module.ts","../../../projects/ngx-matomo-client/form-analytics/providers.ts","../../../projects/ngx-matomo-client/form-analytics/public-api.ts","../../../projects/ngx-matomo-client/form-analytics/ngx-matomo-client-form-analytics.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport { ɵINTERNAL_MATOMO_CONFIGURATION as INTERNAL_MATOMO_CONFIGURATION } from 'ngx-matomo-client/core';\n\nexport interface MatomoFormAnalyticsConfiguration {\n  disabled?: boolean;\n  loadScript?: boolean | string;\n  autoScan?: boolean;\n  autoScanDelay?: number;\n}\n\nexport type InternalMatomoFormAnalyticsConfiguration = Required<MatomoFormAnalyticsConfiguration>;\n\nexport const MATOMO_FORM_ANALYTICS_CONFIGURATION =\n  new InjectionToken<MatomoFormAnalyticsConfiguration>('MATOMO_FORM_ANALYTICS_CONFIGURATION');\n\nexport const DEFAULT_FORM_ANALYTICS_CONFIGURATION: InternalMatomoFormAnalyticsConfiguration = {\n  disabled: false,\n  loadScript: false,\n  autoScan: true,\n  autoScanDelay: 0,\n};\n\nexport const INTERNAL_MATOMO_FORM_ANALYTICS_CONFIGURATION =\n  new InjectionToken<InternalMatomoFormAnalyticsConfiguration>(\n    'INTERNAL_MATOMO_FORM_ANALYTICS_CONFIGURATION',\n    {\n      factory() {\n        const matomoConfig = inject(INTERNAL_MATOMO_CONFIGURATION);\n        const userConfig = inject(MATOMO_FORM_ANALYTICS_CONFIGURATION, { optional: true }) || {};\n        const merged = {\n          ...DEFAULT_FORM_ANALYTICS_CONFIGURATION,\n          ...userConfig,\n        };\n\n        return {\n          ...merged,\n          disabled: merged.disabled || matomoConfig.disabled,\n        };\n      },\n    },\n  );\n","export function throwFormNotFoundError(selector: string): never {\n  throw new Error(`Directive ${selector} can only be used inside [matomoTrackForm]`);\n}\n","import { ElementRef } from '@angular/core';\n\nexport function coerceElement(elementOrRef: Element | ElementRef<Element>): Element;\nexport function coerceElement(\n  elementOrRef: Element | ElementRef<Element> | null | undefined,\n): Element | null | undefined;\nexport function coerceElement(\n  elementOrRef: Element | ElementRef<Element> | null | undefined,\n): Element | null | undefined {\n  return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n","import { ElementRef, inject, Injectable } from '@angular/core';\nimport { ɵInternalMatomoTracker as InternalMatomoTracker } from 'ngx-matomo-client/core';\nimport { coerceElement } from './utils/coercion';\n\nexport interface MatomoFormAnalyticsInstance {\n  isFormAnalyticsEnabled(): boolean;\n\n  disableFormAnalytics(): void;\n\n  setTrackingTimer(delayInMilliSeconds: number): void;\n}\n\n@Injectable()\nexport class MatomoFormAnalytics {\n  private readonly delegate: InternalMatomoTracker<MatomoFormAnalyticsInstance, 'FormAnalytics::'> =\n    inject(InternalMatomoTracker<MatomoFormAnalyticsInstance>);\n\n  disableFormAnalytics(): void {\n    this.delegate.push(['FormAnalytics::disableFormAnalytics']);\n  }\n\n  enableFormAnalytics(): void {\n    this.delegate.push(['FormAnalytics::enableFormAnalytics']);\n  }\n\n  enableDebugMode(): void {\n    this.delegate.push(['FormAnalytics::enableDebugMode']);\n  }\n\n  setTrackingTimer(delayInMilliSeconds: number): void {\n    this.delegate.push(['FormAnalytics::setTrackingTimer', delayInMilliSeconds]);\n  }\n\n  scanForForms(root?: Element | ElementRef): void {\n    this.delegate.push(['FormAnalytics::scanForForms', coerceElement(root)]);\n  }\n\n  trackForm(formElement: Element | ElementRef): void {\n    this.delegate.push(['FormAnalytics::trackForm', coerceElement(formElement)]);\n  }\n\n  trackFormSubmit(formElement: Element | ElementRef) {\n    this.delegate.push(['FormAnalytics::trackFormSubmit', coerceElement(formElement)]);\n  }\n\n  trackFormConversion(formElementOrName: Element | ElementRef | string, formId?: string): void {\n    this.delegate.push([\n      'FormAnalytics::trackFormConversion',\n      typeof formElementOrName === 'string' ? formElementOrName : coerceElement(formElementOrName),\n      formId,\n    ]);\n  }\n\n  isFormAnalyticsEnabled(): Promise<boolean> {\n    return this.delegate.get('FormAnalytics::isFormAnalyticsEnabled');\n  }\n}\n","import {\n  AfterViewInit,\n  booleanAttribute,\n  Directive,\n  ElementRef,\n  HostListener,\n  inject,\n  Input,\n} from '@angular/core';\nimport { MatomoFormAnalytics } from '../matomo-form-analytics.service';\n\n@Directive({\n  selector: '[matomoTrackForm]',\n  standalone: true,\n  exportAs: 'matomoTrackForm',\n})\nexport class TrackFormDirective implements AfterViewInit {\n  private readonly elementRef: ElementRef<Element> = inject(ElementRef);\n  private readonly tracker = inject(MatomoFormAnalytics);\n  private initialized = false;\n\n  /** If true, will track a conversion after form submit */\n  @Input({ transform: booleanAttribute }) trackConversionOnSubmit = false;\n\n  @Input({ transform: booleanAttribute }) set matomoIgnore(ignore: boolean) {\n    if (ignore) {\n      this.elementRef.nativeElement.setAttribute('data-matomo-ignore', '');\n    } else {\n      this.elementRef.nativeElement.removeAttribute('data-matomo-ignore');\n    }\n  }\n\n  @Input() set matomoTrackForm(name: string | null | undefined) {\n    if (name) {\n      this.elementRef.nativeElement.setAttribute('data-matomo-name', name);\n    } else {\n      this.elementRef.nativeElement.removeAttribute('data-matomo-name');\n    }\n\n    if (this.initialized) {\n      this.track();\n    }\n  }\n\n  constructor() {\n    this.elementRef.nativeElement.setAttribute('data-matomo-form', '');\n  }\n\n  ngAfterViewInit(): void {\n    this.track();\n    this.initialized = true;\n  }\n\n  track(): void {\n    this.tracker.trackForm(this.elementRef);\n  }\n\n  trackSubmit(): void {\n    this.tracker.trackFormSubmit(this.elementRef);\n  }\n\n  trackConversion(): void {\n    this.tracker.trackFormConversion(this.elementRef);\n  }\n\n  @HostListener('submit')\n  trackFormConversionOnSubmit(): void {\n    if (this.trackConversionOnSubmit) {\n      this.trackConversion();\n    }\n  }\n}\n","import {\n  AfterViewInit,\n  booleanAttribute,\n  Directive,\n  ElementRef,\n  inject,\n  Input,\n} from '@angular/core';\nimport { throwFormNotFoundError } from './errors';\nimport { TrackFormDirective } from './track-form.directive';\n\n@Directive({\n  selector: '[matomoTrackFormField]',\n  standalone: true,\n  exportAs: 'matomoTrackFormField',\n})\nexport class TrackFormFieldDirective implements AfterViewInit {\n  private readonly elementRef: ElementRef<Element> = inject(ElementRef);\n  private readonly form =\n    inject(TrackFormDirective, { optional: true }) ??\n    throwFormNotFoundError('[matomoTrackFormField]');\n\n  private initialized = false;\n\n  @Input({ transform: booleanAttribute }) set matomoIgnore(ignore: boolean) {\n    if (ignore) {\n      this.elementRef.nativeElement.setAttribute('data-matomo-ignore', '');\n    } else {\n      this.elementRef.nativeElement.removeAttribute('data-matomo-ignore');\n    }\n  }\n\n  @Input() set matomoTrackFormField(name: string | null | undefined) {\n    if (name) {\n      this.elementRef.nativeElement.setAttribute('data-matomo-name', name);\n    } else {\n      this.elementRef.nativeElement.removeAttribute('data-matomo-name');\n    }\n\n    if (this.initialized) {\n      this.track();\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.track();\n    this.initialized = true;\n  }\n\n  track(): void {\n    this.form.track();\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, inject } from '@angular/core';\nimport { MatomoFormAnalytics } from '../matomo-form-analytics.service';\n\n@Directive({\n  selector: '[matomoTrackForms]',\n  standalone: true,\n  exportAs: 'matomoTrackForms',\n})\nexport class TrackFormsDirective implements AfterViewInit {\n  private readonly elementRef: ElementRef<Element> = inject(ElementRef);\n  private readonly tracker = inject(MatomoFormAnalytics);\n\n  ngAfterViewInit(): void {\n    this.scan();\n  }\n\n  scan(): void {\n    this.tracker.scanForForms(this.elementRef);\n  }\n\n  trackSubmit(element: Element | ElementRef<Element>): void {\n    this.tracker.trackFormSubmit(element);\n  }\n\n  trackConversion(element: Element | ElementRef<Element>): void {\n    this.tracker.trackFormConversion(element);\n  }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport {\n  MatomoTracker,\n  ɵappendTrailingSlash as appendTrailingSlash,\n  ɵASYNC_INTERNAL_MATOMO_CONFIGURATION as ASYNC_INTERNAL_MATOMO_CONFIGURATION,\n  ɵgetTrackersConfiguration as getTrackersConfiguration,\n  ɵisAutoConfigurationMode as isAutoConfigurationMode,\n  ɵisExplicitTrackerConfiguration as isExplicitTrackerConfiguration,\n  ɵrunOnce as runOnce,\n  ɵScriptInjector as ScriptInjector,\n} from 'ngx-matomo-client/core';\nimport { debounceTime, identity, Subscription } from 'rxjs';\nimport { INTERNAL_MATOMO_FORM_ANALYTICS_CONFIGURATION } from './configuration';\nimport { MatomoFormAnalytics } from './matomo-form-analytics.service';\n\nconst DEFAULT_SCRIPT_SUFFIX = 'plugins/FormAnalytics/tracker.min.js';\n\n@Injectable()\nexport class MatomoFormAnalyticsInitializer implements OnDestroy {\n  private readonly config = inject(INTERNAL_MATOMO_FORM_ANALYTICS_CONFIGURATION);\n  private readonly coreConfig = inject(ASYNC_INTERNAL_MATOMO_CONFIGURATION);\n  private readonly scriptInjector = inject(ScriptInjector);\n  private readonly tracker = inject(MatomoTracker);\n  private readonly formAnalytics = inject(MatomoFormAnalytics);\n  private readonly platformId = inject(PLATFORM_ID);\n\n  private pageTrackedSubscription: Subscription | undefined;\n\n  ngOnDestroy(): void {\n    this.pageTrackedSubscription?.unsubscribe();\n  }\n\n  readonly initialize = runOnce(async () => {\n    // Do not set-up router if running on server\n    if (!isPlatformBrowser(this.platformId)) {\n      return;\n    }\n\n    if (this.config.disabled) {\n      this.formAnalytics.disableFormAnalytics();\n      return;\n    }\n\n    if (this.config.loadScript) {\n      const scriptUrl =\n        typeof this.config.loadScript === 'boolean'\n          ? await this.buildDefaultScriptUrl()\n          : this.config.loadScript;\n\n      this.scriptInjector.injectDOMScript(scriptUrl);\n    }\n\n    if (this.config.autoScan) {\n      const delayOp = this.config.autoScanDelay\n        ? debounceTime(this.config.autoScanDelay)\n        : identity;\n\n      this.pageTrackedSubscription = this.tracker.pageViewTracked\n        .pipe(delayOp)\n        .subscribe(() => this.formAnalytics.scanForForms());\n    }\n  });\n\n  private async buildDefaultScriptUrl(): Promise<string> {\n    const config = await this.coreConfig;\n\n    if (isAutoConfigurationMode(config) && isExplicitTrackerConfiguration(config)) {\n      const [mainTracker] = getTrackersConfiguration(config);\n\n      if (mainTracker) {\n        return appendTrailingSlash(mainTracker.trackerUrl) + DEFAULT_SCRIPT_SUFFIX;\n      }\n    }\n\n    throw new Error(\n      'Cannot resolve default matomo FormAnalytics plugin script url. ' +\n        'Please explicitly provide `loadScript` configuration property instead of `true`',\n    );\n  }\n}\n","import { ModuleWithProviders, NgModule, inject } from '@angular/core';\nimport {\n  MATOMO_FORM_ANALYTICS_CONFIGURATION,\n  MatomoFormAnalyticsConfiguration,\n} from './configuration';\nimport { TrackFormFieldDirective } from './directives/track-form-field.directive';\nimport { TrackFormDirective } from './directives/track-form.directive';\nimport { TrackFormsDirective } from './directives/track-forms.directive';\nimport { MatomoFormAnalyticsInitializer } from './matomo-form-analytics-initializer.service';\n\nexport const MATOMO_FORM_ANALYTICS_DIRECTIVES = [\n  TrackFormDirective,\n  TrackFormsDirective,\n  TrackFormFieldDirective,\n] as const;\n\n@NgModule({\n  imports: [...MATOMO_FORM_ANALYTICS_DIRECTIVES],\n  exports: [...MATOMO_FORM_ANALYTICS_DIRECTIVES],\n})\nexport class MatomoFormAnalyticsModule {\n  private readonly formAnalytics = inject(MatomoFormAnalyticsInitializer);\n\n  constructor() {\n    const parent = inject(MatomoFormAnalyticsModule, { optional: true, skipSelf: true });\n\n    if (!parent) {\n      // Do not initialize if it is already (by a parent module)\n      this.formAnalytics.initialize();\n    }\n  }\n\n  static forRoot(\n    config: MatomoFormAnalyticsConfiguration = {},\n  ): ModuleWithProviders<MatomoFormAnalyticsModule> {\n    return {\n      ngModule: MatomoFormAnalyticsModule,\n      providers: [{ provide: MATOMO_FORM_ANALYTICS_CONFIGURATION, useValue: config }],\n    };\n  }\n}\n","import { ENVIRONMENT_INITIALIZER, ErrorHandler, inject } from '@angular/core';\nimport {\n  MatomoFeature as MatomoFeature,\n  ɵcreateMatomoFeature as createMatomoFeature,\n} from 'ngx-matomo-client/core';\nimport {\n  MATOMO_FORM_ANALYTICS_CONFIGURATION,\n  MatomoFormAnalyticsConfiguration,\n} from './configuration';\nimport { MatomoFormAnalyticsInitializer } from './matomo-form-analytics-initializer.service';\nimport { MatomoFormAnalytics } from './matomo-form-analytics.service';\n\n/**\n * Additional Matomo router features kind\n */\nexport const enum FormAnalyticsMatomoFeatureKind {\n  FormAnalytics = 'FormAnalytics',\n}\n\n/** Enable automatic page views tracking */\nexport function withFormAnalytics(config?: MatomoFormAnalyticsConfiguration): MatomoFeature {\n  const providers = [\n    MatomoFormAnalytics,\n    MatomoFormAnalyticsInitializer,\n    {\n      provide: MATOMO_FORM_ANALYTICS_CONFIGURATION,\n      useValue: config,\n    },\n    {\n      provide: ENVIRONMENT_INITIALIZER,\n      multi: true,\n      useValue() {\n        const errorHandler = inject(ErrorHandler);\n\n        // Do NOT wait here for initialization, because app startup should NOT be blocked until deferred config is resolved\n        // However, correctly propagate errors to error handler\n        Promise.resolve(inject(MatomoFormAnalyticsInitializer).initialize()).catch(error =>\n          errorHandler.handleError(error),\n        );\n      },\n    },\n  ];\n\n  return createMatomoFeature(FormAnalyticsMatomoFeatureKind.FormAnalytics, providers);\n}\n","/*\n * Public API Surface of plugin form-analytics\n */\n\nexport {\n  MatomoFormAnalyticsModule,\n  MATOMO_FORM_ANALYTICS_DIRECTIVES,\n} from './matomo-form-analytics.module';\nexport { withFormAnalytics } from './providers';\nexport {\n  MatomoFormAnalyticsConfiguration,\n  MATOMO_FORM_ANALYTICS_CONFIGURATION,\n} from './configuration';\nexport { MatomoFormAnalytics, MatomoFormAnalyticsInstance } from './matomo-form-analytics.service';\nexport { TrackFormDirective } from './directives/track-form.directive';\nexport { TrackFormsDirective } from './directives/track-forms.directive';\nexport { TrackFormFieldDirective } from './directives/track-form-field.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["INTERNAL_MATOMO_CONFIGURATION","InternalMatomoTracker","ASYNC_INTERNAL_MATOMO_CONFIGURATION","ScriptInjector","runOnce","isAutoConfigurationMode","isExplicitTrackerConfiguration","getTrackersConfiguration","appendTrailingSlash","createMatomoFeature"],"mappings":"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"}