{"version":3,"file":"ngx-pendo.mjs","sources":["../../../projects/ngx-pendo/src/lib/ngx-pendo.tokens.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.service.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo-id.directive.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo-section.directive.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.injectors.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.module.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.provide.ts","../../../projects/ngx-pendo/src/public-api.ts","../../../projects/ngx-pendo/src/ngx-pendo.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { InjectionToken, inject } from '@angular/core';\nimport { PendoWindow } from './ngx-pendo.types';\nimport { IPendo, IPendoSettings } from './ngx-pendo.interfaces';\n\nexport const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken<IPendoSettings>('ngx-pendo-settings', {\n  providedIn: 'root',\n  factory: () => ({ pendoApiKey: '' })\n});\n\nexport const NGX_PENDO_WINDOW = new InjectionToken<PendoWindow>('ngx-pendo-window', {\n  providedIn: 'root',\n  factory: () => {\n    const { defaultView } = inject(DOCUMENT);\n\n    if (!defaultView) {\n      throw new Error('Window is not available');\n    }\n\n    return defaultView;\n  }\n});\n\nexport const NGX_PENDO_CONTEXT = new InjectionToken<IPendo>('ngx-pendo-context', {\n  providedIn: 'root',\n  factory: () => inject(NGX_PENDO_WINDOW).pendo!\n});\n","import { Injectable, Inject } from '@angular/core';\nimport { NGX_PENDO_CONTEXT, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { IAccount, IPendo, IPendoOptions, IPendoSettings, IVisitor } from './ngx-pendo.interfaces';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxPendoService {\n  private pendoIdFormatter?: (pendoId: string) => string;\n\n  /**\n   * Constructor\n   *\n   * @param settings IPendoSettings\n   * @param pendo IPendo\n   */\n  constructor(\n    @Inject(NGX_PENDO_SETTINGS_TOKEN) settings: IPendoSettings,\n    @Inject(NGX_PENDO_CONTEXT) private pendo: IPendo\n  ) {\n    this.pendoIdFormatter = settings.pendoIdFormatter;\n  }\n\n  /**\n   * Completely re-initialize the Agent with new options\n   *\n   * @param optionsOrVisitor IPendoOptions | IVisitor\n   * @param account IAccount\n   */\n  initialize(options: IPendoOptions): void;\n  initialize(visitor: IVisitor, account?: IAccount): void;\n  initialize(optionsOrVisitor: IPendoOptions | IVisitor, account?: IAccount): void {\n    if ('id' in optionsOrVisitor) {\n      this.pendo?.initialize({ visitor: optionsOrVisitor, account });\n    } else {\n      this.pendo?.initialize(optionsOrVisitor);\n    }\n  }\n\n  /**\n   * Send an identify event and a meta event.\n   *\n   * @param visitor IVisitor | string\n   * @param account IAccount | string\n   */\n  identify(visitor: string, account?: string): void;\n  identify(visitor: IVisitor, account?: IAccount): void;\n  identify(visitor: IVisitor | string, account?: IAccount | string): void {\n    if (typeof visitor === 'string' && (!account || typeof account === 'string')) {\n      this.pendo?.identify(visitor, account);\n    } else {\n      this.pendo?.identify({ visitor: <IVisitor>visitor, account: <IAccount>account });\n    }\n  }\n\n  /**\n   * Updates metadata object for the Pendo agent.\n   *\n   * @param options IPendoOptions\n   */\n  updateOptions(options: IPendoOptions): void {\n    this.pendo?.updateOptions(options);\n  }\n\n  /**\n   * Format Pendo\n   *\n   * @param ids string[]\n   */\n  formatPendoId(...ids: string[]): string {\n    return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter!(id)) : ids).join('.');\n  }\n\n  /**\n   * Shuts down the agent and cleans up all timers and listeners.\n   */\n  teardown(): void {\n    this.pendo?.teardown();\n  }\n\n  /**\n   * Checks if a given visitor id string is anonymous.\n   * If no argument is given, calls with pendo.getVisitorId() to check current visitor status.\n   */\n  isAnonymousVisitor(visitorId?: string): boolean {\n    return this.pendo?.isAnonymousVisitor(visitorId);\n  }\n\n  /**\n   * Removes current visitor id and account id.\n   * Triggers an identify event and reloads with a new anonymous visitor.\n   */\n  clearSession(): void {\n    this.pendo?.clearSession();\n  }\n\n  /**\n   * Loads Pendo Debugger and extends the global pendo object with additional functionality for debugging purposes.\n   */\n  enableDebugging(): void {\n    this.pendo?.enableDebugging();\n  }\n\n  /**\n   * Removes Pendo Debugger extension.\n   */\n  disableDebugging(): void {\n    this.pendo?.disableDebugging();\n  }\n}\n","import { Directive, input, computed, signal } from '@angular/core';\nimport { IPendoDirective } from './ngx-pendo.interfaces';\nimport { NgxPendoService } from './ngx-pendo.service';\nimport { NgxPendoSectionDirective } from './ngx-pendo-section.directive';\n\n@Directive({\n  selector: '[ngx-pendo-id]',\n  standalone: true,\n  host: {\n    '[attr.data-pendo-id]': 'mergedPendoId()',\n    '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'\n  }\n})\nexport class NgxPendoIdDirective implements IPendoDirective {\n  pendoId = input<string>('', { alias: 'ngx-pendo-id' });\n\n  inherit = input<boolean>(true, { alias: 'ngx-pendo-inherit' });\n\n  parent = signal<NgxPendoSectionDirective | undefined>(undefined);\n\n  mergedPendoId = computed<string>(() => {\n    const pendoSections = [];\n\n    let cur = this.inherit() ? this.parent() : null;\n    while (cur) {\n      pendoSections.unshift(cur.pendoSection());\n      cur = cur.inherit() ? cur.parent() : null;\n    }\n\n    return this.service.formatPendoId(...pendoSections, this.pendoId());\n  });\n\n  disableInherit = computed<boolean | undefined>(() => (this.inherit() ? undefined : true));\n\n  constructor(private service: NgxPendoService) {}\n}\n","import { Directive, input, computed, signal, contentChildren, effect } from '@angular/core';\nimport { IPendoDirective } from './ngx-pendo.interfaces';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\n\n@Directive({\n  selector: '[ngx-pendo-section]',\n  standalone: true,\n  host: {\n    '[attr.data-pendo-section]': 'pendoSection()',\n    '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'\n  }\n})\nexport class NgxPendoSectionDirective implements IPendoDirective {\n  pendoSection = input<string>('', { alias: 'ngx-pendo-section' });\n\n  inherit = input<boolean>(true, { alias: 'ngx-pendo-inherit' });\n\n  parent = signal<NgxPendoSectionDirective | undefined>(undefined);\n\n  idDirectives = contentChildren(NgxPendoIdDirective, { descendants: false });\n\n  sectionDirectivs = contentChildren(NgxPendoSectionDirective, { descendants: false });\n\n  disableInherit = computed<boolean | undefined>(() => (this.inherit() ? undefined : true));\n\n  constructor() {\n    effect(() => {\n      [...this.idDirectives(), ...this.sectionDirectivs()].forEach(item => {\n        if (item !== this) {\n          item.parent.set(this);\n        }\n      });\n    });\n  }\n}\n","import { APP_INITIALIZER, isDevMode, Provider } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\nimport { NGX_PENDO_WINDOW, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { PendoWindow } from './ngx-pendo.types';\n\nconst DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';\n\n// export const NGX_PENDO_INITIALIZER_PROVIDER = provideAppInitializer(() => {\n//   const initializerFn = pendoInitializer(inject(NGX_PENDO_SETTINGS_TOKEN), inject(NGX_PENDO_WINDOW));\n//   return initializerFn();\n// });\n\n// Keep the `APP_INITIALIZER` to support angular 17 and 18 version\nexport const NGX_PENDO_INITIALIZER_PROVIDER: Provider = {\n  provide: APP_INITIALIZER,\n  multi: true,\n  useFactory: pendoInitializer,\n  deps: [NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_WINDOW]\n};\n\nexport function pendoInitializer($settings: IPendoSettings, window: PendoWindow): () => Promise<void> {\n  return async () => {\n    const { pendoApiKey, pendoScriptOrigin } = $settings;\n    if (!pendoApiKey) {\n      if (isDevMode()) {\n        console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');\n      }\n\n      return;\n    }\n\n    await new Promise<void>(resolve => {\n      const script = document.createElement('script');\n      script.async = true;\n      script.src = `${pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${pendoApiKey}/pendo.js`;\n      document.head.appendChild(script);\n      script.onerror = async () => {\n        // The script may have been blocked by an ad blocker\n        console.error('The pendo script may have been blocked.');\n        resolve();\n      };\n      script.onload = async () => {\n        // when enableDebugging should load extra js\n        const sub = interval(100).subscribe(() => {\n          if (window.pendo) {\n            sub.unsubscribe();\n            resolve();\n          }\n        });\n      };\n    });\n  };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\nimport { NgxPendoSectionDirective } from './ngx-pendo-section.directive';\nimport { NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\nimport { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\n\n@NgModule({\n  imports: [NgxPendoIdDirective, NgxPendoSectionDirective],\n  exports: [NgxPendoIdDirective, NgxPendoSectionDirective]\n})\nexport class NgxPendoModule {\n  static forRoot(settings: IPendoSettings): ModuleWithProviders<NgxPendoModule> {\n    return {\n      ngModule: NgxPendoModule,\n      providers: [\n        {\n          provide: NGX_PENDO_SETTINGS_TOKEN,\n          useValue: settings\n        },\n        settings.pendoInitializerProvider || NGX_PENDO_INITIALIZER_PROVIDER\n      ]\n    };\n  }\n\n  static forChild(): ModuleWithProviders<NgxPendoModule> {\n    return {\n      ngModule: NgxPendoModule\n    };\n  }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\n\nexport function provideNgxPendo(settings: IPendoSettings) {\n  return makeEnvironmentProviders([\n    {\n      provide: NGX_PENDO_SETTINGS_TOKEN,\n      useValue: settings\n    },\n    settings.pendoInitializerProvider || NGX_PENDO_INITIALIZER_PROVIDER\n  ]);\n}\n","/*\n * Public API Surface of ngx-pendo\n */\n\nexport * from './lib/ngx-pendo-id.directive';\nexport * from './lib/ngx-pendo-section.directive';\nexport * from './lib/ngx-pendo.service';\nexport * from './lib/ngx-pendo.injectors';\nexport * from './lib/ngx-pendo.interfaces';\nexport * from './lib/ngx-pendo.module';\nexport * from './lib/ngx-pendo.provide';\nexport * from './lib/ngx-pendo.tokens';\nexport * from './lib/ngx-pendo.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxPendoService"],"mappings":"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"}