{"version":3,"file":"ng-intercom-x.mjs","sources":["../../src/app/ng-intercom/shared/intercom-config-object.service.ts","../../src/app/ng-intercom/intercom/intercom.ts","../../src/app/ng-intercom/directives/hide.directive.ts","../../src/app/ng-intercom/directives/show-messages.directive.ts","../../src/app/ng-intercom/directives/show-new-message.directive.ts","../../src/app/ng-intercom/directives/show.directive.ts","../../src/app/ng-intercom/directives/shutdown.directive.ts","../../src/app/ng-intercom/directives/track-event.directive.ts","../../src/app/ng-intercom/intercom.module.ts","../../ng-intercom-x.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\n\n@Injectable()\nexport class IntercomConfigObject {\n  /**\n   * Pass APP_ID using this config or when call `boot()` method\n   */\n  appId?: string\n  /**\n   * Update Intercom plugin on each route change.\n   * Default: false\n   */\n  updateOnRouterChange?: boolean\n  /**\n   * Customize left or right position of messenger\n   */\n  alignment?: 'left' | 'right'\n  /**\n   * Customize horizontal padding\n   */\n  horizontal_padding?: number\n\n  /**\n   * Customize vertical padding\n   */\n  vertical_padding?: number\n\n  /**\n   * arbitrarily localize your intercom messenger\n   */\n  language_override?: string\n}\n","import { Inject, Injectable, PLATFORM_ID, Optional, isDevMode, Renderer2, RendererFactory2, ViewEncapsulation } from '@angular/core'\nimport { filter } from 'rxjs/operators'\nimport { Router, NavigationEnd } from '@angular/router'\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common'\n\nimport { IntercomConfigObject } from '../shared/intercom-config-object.service'\nimport { IntercomBootInput } from '../types/intercom-boot-input'\n\n/**\n * A provider with every Intercom.JS method\n */\n@Injectable()\nexport class Intercom {\n\n  private id: string\n\n  private renderer2: Renderer2\n\n  constructor(\n    @Inject(IntercomConfigObject) private config: IntercomConfigObject,\n    @Inject(PLATFORM_ID) protected platformId: Object,\n    @Optional() @Inject(Router) private router: Router,\n    private rendererFactory: RendererFactory2,\n    @Optional() @Inject(DOCUMENT) private document: any // Document\n\n  ) {\n    if (!isPlatformBrowser(this.platformId)) {\n      return\n    }\n\n    this.renderer2 = this.rendererFactory.createRenderer(this.document, {\n      id: '-1',\n      encapsulation: ViewEncapsulation.None,\n      styles: [],\n      data: {}\n    })\n\n    // Subscribe to router changes\n    if (config && config.updateOnRouterChange) {\n      this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(event => {\n        this.update()\n      })\n    }\n    else if (isDevMode()) {\n      console.warn(`\n      Common practice in single page applications is to update whenever the route changes.\n      ng-intercom supports this functionality out of the box just set 'updateOnRouterChange' to true in your Intercom Module config.\n       This warning will not appear in production, if you choose not to use router updating.\n     `)\n    }\n  }\n\n  /**\n   * If you'd like to control when Intercom is loaded, you can use the 'boot' method.\n   * This is useful in situations like a one-page Javascript based application where the user may not be logged in\n   * when the page loads. You call this method with the standard intercomSettings object.\n   */\n  public boot(intercomData?: IntercomBootInput): void {\n    if (!isPlatformBrowser(this.platformId)) {\n      return\n    }\n    const app_id = intercomData.app_id ? intercomData.app_id : this.config.appId\n    if (!app_id) {\n      throw new Error('Please provide Intercom app_id either in module config or in the `boot()` method');\n    }\n    // Run load and attach to window\n    this.loadIntercom(this.config, (event?: Event) => {\n      // then boot the intercom js\n      const data = {\n        ...intercomData,\n        app_id\n      }\n\n      return this._callIntercom('boot', data)\n    })\n  }\n\n  /**\n   * If you have the Respond product (combined with another product like Engage)\n   * you should call the Intercom shutdown method to clear your users’ conversations anytime they logout\n   * of your application. Otherwise, the cookie we use to track who was most recently logged in on a given device\n   * or computer will keep these conversations in the Messenger for one week.\n   * This method will effectively clear out any user data that you have been passing through the JS API.\n   */\n  public shutdown(): void {\n    return this._callIntercom('shutdown')\n  }\n\n  /**\n   * Calling the update method without any other arguments will trigger the JavaScript to look for new messages\n   * that should be displayed to the current user (the one whose details are in the window.intercomSettings variable)\n   * and show them if they exist.\n   *\n   * Calling the update method with a JSON object of user details will update those fields on the current user\n   * in addition to logging an impression at the current URL and looking for new messages for the user.\n   */\n  public update(data?: any): void {\n    return this._callIntercom('update', data)\n\n  }\n\n  /**\n   * This will hide the main Messenger panel if it is open. It will not hide the Messenger Launcher.\n   */\n  public hide(): void {\n    return this._callIntercom('hide')\n  }\n\n  /**\n   * This will show the Messenger. If there are no conversations it will open with the new message view,\n   * if there are it will open with the message list.\n   *\n   * If a `message` parameter is supplied, it will automatically open a new message window, aliasing showNewMessage().\n   *\n   */\n  public show(message?: string): void {\n    if (message) {\n      return this.showNewMessage(message)\n    }\n    return this._callIntercom('show')\n\n  }\n\n  /**\n   * To open the message window with the message list you can call `showMessages()`.\n   */\n  public showMessages(): void {\n    return this._callIntercom('showMessages')\n  }\n\n  /**\n   * To open the message window with the new message view you can call showNewMessage().\n   *\n   * This function takes an optional parameter that can be used to pre-populate the message composer as shown below.\n   */\n  public showNewMessage(message?: string): void {\n    return this._callIntercom('showNewMessage', message)\n\n  }\n\n  /**\n   * You can submit an event using the trackEvent method.\n   * This will associate the event with the currently logged in user and send it to Intercom.\n   * The final parameter is a map that can be used to send optional metadata about the event.\n   *\n   * You can also add custom information to events in the form of event metadata.\n   */\n  public trackEvent(eventName: string, metadata?: any): void {\n    return this._callIntercom('trackEvent', eventName, metadata)\n  }\n\n\n  /**\n   * A visitor is someone who goes to your site but does not use the messenger.\n   * You can track these visitors via the visitor user_id.\n   * This user_id can be used to retrieve the visitor or lead through the REST API.\n   */\n  public getVisitorId(): string {\n    return this._callIntercom('getVisitorId')\n  }\n\n  /**\n   * Alias for getVisitorId()\n   * @alias getVisitorId()\n   * @readonly\n   */\n  get visitorId(): string {\n    return this._callIntercom('getVisitorId')\n  }\n\n  /**\n   * Gives you the ability to hook into the show event. Requires a function argument.\n   */\n  public onShow(handler: () => void): void {\n    return this._callIntercom('onShow', handler)\n  }\n\n  /**\n   * Gives you the ability to hook into the hide event. Requires a function argument.\n   */\n  public onHide(handler: () => void): void {\n    return this._callIntercom('onHide', handler)\n  }\n\n  /**\n   * This method allows you to register a function that will be called when the current number of unread messages changes.\n   */\n  public onUnreadCountChange(handler: (unreadCount?: number) => void): void {\n    return this._callIntercom('onUnreadCountChange', handler)\n  }\n\n  /**\n   * If you would like to trigger a tour based on an action a user or visitor takes in your site or application,\n   * ou can use this API method. You need to call this method with the id of the tour you wish to show. The id of\n   * the tour can be found in the “Use tour everywhere” section of the tour editor.\n   *\n   * Please note that tours shown via this API must be published and the “Use tour everywhere” section must be\n   * turned on. If you're calling this API using an invalid tour id, nothing will happen.\n   */\n  public startTour(tourId: number): void {\n    return this._callIntercom('startTour', tourId)\n  }\n\n  /**\n   * Private handler to run Intercom methods safely\n   */\n  private _callIntercom(fn: string, ...args) {\n    if (!isPlatformBrowser(this.platformId)) {\n      return\n    }\n    if ((<any>window).Intercom) {\n      return (<any>window).Intercom(fn, ...args)\n    }\n    return\n  }\n\n  injectIntercomScript(conf: IntercomConfigObject, afterInjectCallback: (ev: Event) => any): void {\n\n    if (!isPlatformBrowser(this.platformId)) {\n      return\n    }\n\n    // Set the window configuration to conf\n    (<any>window).intercomSettings = conf\n\n    // Create the intercom script in document\n    const s = this.document.createElement('script')\n    s.type = 'text/javascript'\n    s.async = true\n    s.src = `https://widget.intercom.io/widget/${this.id}`\n\n    if ((s as any).attachEvent) {\n      (s as any).attachEvent('onload', afterInjectCallback)\n    } else {\n      s.addEventListener('load', afterInjectCallback, false)\n    }\n\n    if (this.renderer2 && this.renderer2.appendChild) {\n      this.renderer2.appendChild(this.document.head, s)\n    }\n\n    (<any>window).Intercom('update', conf)\n  }\n\n  loadIntercom(config: IntercomConfigObject, afterLoadCallback: (ev?: Event) => any): void {\n    if (!isPlatformBrowser(this.platformId)) {\n      return\n    }\n\n    this.id = config.appId\n    const w = <any>window\n    const ic = w.Intercom\n\n    // Set window config for Intercom\n    w.intercomSettings = config\n\n    if (typeof ic === 'function') {\n      ic('reattach_activator')\n      ic('update', config)\n      afterLoadCallback()\n    } else {\n      const i: any = function () {\n        i.c(arguments)\n      }\n      i.q = []\n      i.c = function (args: any) {\n        i.q.push(args)\n      }\n      w.Intercom = i\n      this.injectIntercomScript(config, afterLoadCallback)\n    }\n\n  }\n}\n","import { Directive, HostListener, Input } from '@angular/core'\n\nimport { Intercom } from '../intercom/intercom'\n\n/* tslint:disable:directive-selector */\n@Directive({\n  selector: '[intercomHide]'\n})\nexport class IntercomHideDirective {\n  @Input() intercomHide: boolean\n\n  constructor(\n    private intercom: Intercom\n  ) { }\n\n  @HostListener('click')\n  public onClick(): void {\n    if (this.intercomHide !== false) {\n        this.intercom.hide()\n    }\n  }\n}\n","import {Directive, HostListener, Input} from '@angular/core'\n\nimport {Intercom} from '../intercom/intercom'\n\n/* tslint:disable:directive-selector */\n@Directive({\n  selector: '[intercomShowMessages]'\n})\nexport class IntercomShowMessagesDirective {\n  @Input() intercomShowMessages: boolean\n\n  constructor(private intercom: Intercom) {\n  }\n\n  @HostListener('click')\n  public onClick(): void {\n    if (this.intercomShowMessages !== false) {\n      this.intercom.showMessages()\n    }\n  }\n}\n","import {Directive, HostListener, Input} from '@angular/core'\n\nimport {Intercom} from '../intercom/intercom'\n\n/* tslint:disable:directive-selector */\n@Directive({\n  selector: '[intercomShowNewMessage]'\n})\nexport class IntercomShowNewMessageDirective {\n  @Input() message: string\n  @Input() intercomShowNewMessage: string\n\n  constructor(private intercom: Intercom) {\n  }\n\n  @HostListener('click')\n  onClick() {\n    const msg = this.message ? this.message : this.intercomShowNewMessage\n    if (msg) {\n      this.intercom.showNewMessage(this.message)\n    }\n    else {\n      this.intercom.showNewMessage()\n    }\n  }\n}\n","import {Directive, HostListener, Input} from '@angular/core'\n\nimport {Intercom} from '../intercom/intercom'\n\n/* tslint:disable:directive-selector */\n@Directive({\n  selector: '[intercomShow]'\n})\nexport class IntercomShowDirective {\n  @Input() message: string\n  @Input() intercomShow: string\n\n  constructor(private intercom: Intercom) {\n  }\n\n  @HostListener('click')\n  public onClick(): void {\n    const msg = this.message ? this.message : this.intercomShow\n    if (msg) {\n      this.intercom.showNewMessage(this.message)\n    }\n    else {\n      this.intercom.show()\n    }\n  }\n}\n","import {Directive, HostListener, Input} from '@angular/core'\n\nimport {Intercom} from '../intercom/intercom'\n\n/* tslint:disable:directive-selector */\n@Directive({\n  selector: '[intercomShutdown]'\n})\nexport class IntercomShutdownDirective {\n  @Input() intercomShutdown: boolean\n\n  constructor(private intercom: Intercom) {\n  }\n\n  @HostListener('click')\n  public onClick(): void {\n    if (this.intercomShutdown !== false) {\n      this.intercom.shutdown()\n    }\n  }\n}\n","import {Directive, HostListener, Input} from '@angular/core'\n\nimport {Intercom} from '../intercom/intercom'\n/* tslint:disable:directive-selector */\n@Directive({\n  selector: '[intercomTrackEvent]'\n})\nexport class IntercomTrackEventDirective {\n  @Input() event: string\n  @Input() intercomTrackEvent: string\n  @Input() metadata: any\n\n  constructor(private intercom: Intercom) {\n  }\n\n  @HostListener('click')\n  public onClick(): void {\n    const e = this.event ? this.event : this.intercomTrackEvent\n    if (e && this.metadata) {\n      this.intercom.trackEvent(e, this.metadata)\n    }\n    else if (e && !this.metadata) {\n      this.intercom.trackEvent(e)\n    }\n    else {\n      throw new Error('Error in intercomTrackEvent directive: You must specify an event to track.')\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\nimport { IntercomHideDirective } from './directives/hide.directive'\nimport { IntercomShowMessagesDirective } from './directives/show-messages.directive'\nimport { IntercomShowNewMessageDirective } from './directives/show-new-message.directive'\nimport { IntercomShowDirective } from './directives/show.directive'\nimport { IntercomShutdownDirective } from './directives/shutdown.directive'\nimport { IntercomTrackEventDirective } from './directives/track-event.directive'\nimport { Intercom } from './intercom/intercom'\nimport { IntercomConfigObject } from './shared/intercom-config-object.service'\n\n\n@NgModule({\n  imports: [\n    RouterModule\n  ],\n  declarations: [\n    IntercomHideDirective,\n    IntercomShowMessagesDirective,\n    IntercomShowNewMessageDirective,\n    IntercomShowDirective,\n    IntercomShutdownDirective,\n    IntercomTrackEventDirective\n  ],\n  exports: [\n    IntercomHideDirective,\n    IntercomShowMessagesDirective,\n    IntercomShowNewMessageDirective,\n    IntercomShowDirective,\n    IntercomShutdownDirective,\n    IntercomTrackEventDirective\n  ],\n  providers: [\n    Intercom,\n    IntercomConfigObject\n  ]\n})\nexport class IntercomModule {\n  static forRoot(config: IntercomConfigObject): ModuleWithProviders<IntercomModule> {\n    return {\n      ngModule: IntercomModule,\n      providers: [\n        Intercom,\n        { provide: IntercomConfigObject, useValue: config },\n      ]\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.Intercom"],"mappings":"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"}