ngx-pendo 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -72,6 +72,8 @@ export class AppModule { }
72
72
 
73
73
  ## Call Initialization
74
74
 
75
+ #### Using Service
76
+
75
77
  ```ts
76
78
  import { Component, OnInit } from '@angular/core';
77
79
  import { NgxPendoService } from 'ngx-pendo';
@@ -79,7 +81,7 @@ import { NgxPendoService } from 'ngx-pendo';
79
81
  @Component( ... )
80
82
  export class AppComponent implements OnInit {
81
83
 
82
- constructor(protected ngxPendoService: NgxPendoService) {
84
+ constructor(private ngxPendoService: NgxPendoService) {
83
85
  }
84
86
 
85
87
  ngOnInit() {
@@ -97,13 +99,74 @@ export class AppComponent implements OnInit {
97
99
  }
98
100
  ```
99
101
 
102
+ #### Using Context
103
+
104
+ ```ts
105
+ import { Component, OnInit } from '@angular/core';
106
+ import { NGX_PENDO_CONTEXT, IPendo } from 'ngx-pendo';
107
+
108
+ @Component( ... )
109
+ export class AppComponent implements OnInit {
110
+
111
+ constructor(@Inject(NGX_PENDO_CONTEXT) private pendo: IPendo) {
112
+ }
113
+
114
+ ngOnInit() {
115
+ this.pendo.initialize({
116
+ visitor: {
117
+ id: "PUT_VISITOR_ID_HERE",
118
+ name: "John Doe",
119
+ email: "user@acme.com",
120
+ role: "Viewer"
121
+ },
122
+ account: {
123
+ id: "PUT_ACCOUNT_ID_HERE",
124
+ name: "Acme Co"
125
+ },
126
+ apiKey: 'PUT_API_KEY_HERE'
127
+ });
128
+ }
129
+
130
+ }
131
+ ```
132
+
133
+ #### Using Pendo
134
+
135
+ ```ts
136
+ import { Component, OnInit } from '@angular/core';
137
+ import { IPendo } from 'ngx-pendo';
138
+
139
+ declare var pendo: IPendo;
140
+
141
+ @Component( ... )
142
+ export class AppComponent implements OnInit {
143
+
144
+ ngOnInit() {
145
+ pendo.initialize({
146
+ visitor: {
147
+ id: "PUT_VISITOR_ID_HERE",
148
+ name: "John Doe",
149
+ email: "user@acme.com",
150
+ role: "Viewer"
151
+ },
152
+ account: {
153
+ id: "PUT_ACCOUNT_ID_HERE",
154
+ name: "Acme Co"
155
+ },
156
+ apiKey: 'PUT_API_KEY_HERE'
157
+ });
158
+ }
159
+
160
+ }
161
+ ```
162
+
100
163
  ## Pendo Directives
101
164
 
102
165
  You can use angular directives to add pendo id.
103
166
 
104
167
  ### Simple directive use
105
168
 
106
- ```js
169
+ ```html
107
170
  <div ngx-pendo-section="section">
108
171
  <button ngx-pendo-id="click_test">Click Test</button>
109
172
  </div>
@@ -1,38 +1,36 @@
1
- import { APP_INITIALIZER, InjectionToken, isDevMode } from '@angular/core';
1
+ import { APP_INITIALIZER, isDevMode } from '@angular/core';
2
2
  import { interval } from 'rxjs';
3
- export const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken('ngx-pendo-settings', {
4
- factory: () => ({ pendoApiKey: '' }),
5
- });
3
+ import { NGX_PENDO_WINDOW, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';
6
4
  const DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';
7
5
  export const NGX_PENDO_INITIALIZER_PROVIDER = {
8
6
  provide: APP_INITIALIZER,
9
7
  multi: true,
10
8
  useFactory: pendoInitializer,
11
- deps: [
12
- NGX_PENDO_SETTINGS_TOKEN,
13
- ],
9
+ deps: [NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_WINDOW]
14
10
  };
15
- export function pendoInitializer($settings) {
11
+ export function pendoInitializer($settings, window) {
16
12
  return async () => {
17
- if (!$settings.pendoApiKey) {
13
+ const { pendoApiKey, pendoScriptOrigin } = $settings;
14
+ if (!pendoApiKey) {
18
15
  if (isDevMode()) {
19
16
  console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');
20
17
  }
21
18
  return;
22
19
  }
23
- await new Promise((resolve, reject) => {
20
+ await new Promise(resolve => {
24
21
  const script = document.createElement('script');
25
22
  script.async = true;
26
- script.src = `${$settings.pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${$settings.pendoApiKey}/pendo.js`;
23
+ script.src = `${pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${pendoApiKey}/pendo.js`;
27
24
  document.head.appendChild(script);
28
25
  script.onerror = async () => {
29
26
  // The script may have been blocked by an ad blocker
27
+ console.error('The pendo script may have been blocked,');
30
28
  resolve();
31
29
  };
32
30
  script.onload = async () => {
33
31
  // when enableDebugging should load extra js
34
32
  const sub = interval(100).subscribe(() => {
35
- if (pendo) {
33
+ if (window.pendo) {
36
34
  sub.unsubscribe();
37
35
  resolve();
38
36
  }
@@ -41,4 +39,4 @@ export function pendoInitializer($settings) {
41
39
  });
42
40
  };
43
41
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmluamVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby5pbmplY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQWlCLG9CQUFvQixFQUFFO0lBQy9GLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO0NBQ3JDLENBQUMsQ0FBQztBQUVILE1BQU0sMkJBQTJCLEdBQUcsc0JBQXNCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQWE7SUFDdEQsT0FBTyxFQUFFLGVBQWU7SUFDeEIsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsZ0JBQWdCO0lBQzVCLElBQUksRUFBRTtRQUNKLHdCQUF3QjtLQUN6QjtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBeUI7SUFDeEQsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtZQUMxQixJQUFJLFNBQVMsRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMscUZBQXFGLENBQUMsQ0FBQzthQUN0RztZQUVELE9BQU87U0FDUjtRQUVELE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixJQUFJLDJCQUEyQixpQkFBaUIsU0FBUyxDQUFDLFdBQVcsV0FBVyxDQUFDO1lBQzVILFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7Z0JBQzFCLG9EQUFvRDtnQkFDcEQsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUN6Qiw0Q0FBNEM7Z0JBQzVDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUN2QyxJQUFJLEtBQUssRUFBRTt3QkFDVCxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ2xCLE9BQU8sRUFBRSxDQUFDO3FCQUNYO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElQZW5kb1NldHRpbmdzIH0gZnJvbSAnLi9uZ3gtcGVuZG8uaW50ZXJmYWNlcyc7XG5cbmRlY2xhcmUgdmFyIHBlbmRvOiBhbnk7XG5cbmV4cG9ydCBjb25zdCBOR1hfUEVORE9fU0VUVElOR1NfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlbmRvU2V0dGluZ3M+KCduZ3gtcGVuZG8tc2V0dGluZ3MnLCB7XG4gIGZhY3Rvcnk6ICgpID0+ICh7IHBlbmRvQXBpS2V5OiAnJyB9KSxcbn0pO1xuXG5jb25zdCBERUZBVUxUX1BFTkRPX1NDUklQVF9PUklHSU4gPSAnaHR0cHM6Ly9jZG4ucGVuZG8uaW8nO1xuXG5leHBvcnQgY29uc3QgTkdYX1BFTkRPX0lOSVRJQUxJWkVSX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRmFjdG9yeTogcGVuZG9Jbml0aWFsaXplcixcbiAgZGVwczogW1xuICAgIE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTixcbiAgXSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwZW5kb0luaXRpYWxpemVyKCRzZXR0aW5nczogSVBlbmRvU2V0dGluZ3MpOiAoKSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICBpZiAoISRzZXR0aW5ncy5wZW5kb0FwaUtleSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0VtcHR5IGFwaSBrZXkgZm9yIFBlbmRvLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBvbmUgd2hlbiBpbml0aWFsaXppbmcgTmd4UGVuZG9Nb2R1bGUuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICBzY3JpcHQuc3JjID0gYCR7JHNldHRpbmdzLnBlbmRvU2NyaXB0T3JpZ2luIHx8IERFRkFVTFRfUEVORE9fU0NSSVBUX09SSUdJTn0vYWdlbnQvc3RhdGljLyR7JHNldHRpbmdzLnBlbmRvQXBpS2V5fS9wZW5kby5qc2A7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICBzY3JpcHQub25lcnJvciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gVGhlIHNjcmlwdCBtYXkgaGF2ZSBiZWVuIGJsb2NrZWQgYnkgYW4gYWQgYmxvY2tlclxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gd2hlbiBlbmFibGVEZWJ1Z2dpbmcgc2hvdWxkIGxvYWQgZXh0cmEganNcbiAgICAgICAgY29uc3Qgc3ViID0gaW50ZXJ2YWwoMTAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmIChwZW5kbykge1xuICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmluamVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby5pbmplY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRixNQUFNLDJCQUEyQixHQUFHLHNCQUFzQixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFhO0lBQ3RELE9BQU8sRUFBRSxlQUFlO0lBQ3hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixJQUFJLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQztDQUNuRCxDQUFDO0FBRUYsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFNBQXlCLEVBQUUsTUFBbUI7SUFDN0UsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsSUFBSSxTQUFTLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHFGQUFxRixDQUFDLENBQUM7YUFDdEc7WUFFRCxPQUFPO1NBQ1I7UUFFRCxNQUFNLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixJQUFJLDJCQUEyQixpQkFBaUIsV0FBVyxXQUFXLENBQUM7WUFDeEcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDMUIsb0RBQW9EO2dCQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7Z0JBQ3pELE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDekIsNENBQTRDO2dCQUM1QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDdkMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO3dCQUNoQixHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ2xCLE9BQU8sRUFBRSxDQUFDO3FCQUNYO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBpc0Rldk1vZGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVBlbmRvU2V0dGluZ3MgfSBmcm9tICcuL25neC1wZW5kby5pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5HWF9QRU5ET19XSU5ET1csIE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4vbmd4LXBlbmRvLnRva2Vucyc7XG5pbXBvcnQgeyBQZW5kb1dpbmRvdyB9IGZyb20gJy4vbmd4LXBlbmRvLnR5cGVzJztcblxuY29uc3QgREVGQVVMVF9QRU5ET19TQ1JJUFRfT1JJR0lOID0gJ2h0dHBzOi8vY2RuLnBlbmRvLmlvJztcblxuZXhwb3J0IGNvbnN0IE5HWF9QRU5ET19JTklUSUFMSVpFUl9QUk9WSURFUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgbXVsdGk6IHRydWUsXG4gIHVzZUZhY3Rvcnk6IHBlbmRvSW5pdGlhbGl6ZXIsXG4gIGRlcHM6IFtOR1hfUEVORE9fU0VUVElOR1NfVE9LRU4sIE5HWF9QRU5ET19XSU5ET1ddXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGVuZG9Jbml0aWFsaXplcigkc2V0dGluZ3M6IElQZW5kb1NldHRpbmdzLCB3aW5kb3c6IFBlbmRvV2luZG93KTogKCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBwZW5kb0FwaUtleSwgcGVuZG9TY3JpcHRPcmlnaW4gfSA9ICRzZXR0aW5ncztcbiAgICBpZiAoIXBlbmRvQXBpS2V5KSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRW1wdHkgYXBpIGtleSBmb3IgUGVuZG8uIE1ha2Ugc3VyZSB0byBwcm92aWRlIG9uZSB3aGVuIGluaXRpYWxpemluZyBOZ3hQZW5kb01vZHVsZS4nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgc2NyaXB0LnNyYyA9IGAke3BlbmRvU2NyaXB0T3JpZ2luIHx8IERFRkFVTFRfUEVORE9fU0NSSVBUX09SSUdJTn0vYWdlbnQvc3RhdGljLyR7cGVuZG9BcGlLZXl9L3BlbmRvLmpzYDtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBUaGUgc2NyaXB0IG1heSBoYXZlIGJlZW4gYmxvY2tlZCBieSBhbiBhZCBibG9ja2VyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZSBwZW5kbyBzY3JpcHQgbWF5IGhhdmUgYmVlbiBibG9ja2VkLCcpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gd2hlbiBlbmFibGVEZWJ1Z2dpbmcgc2hvdWxkIGxvYWQgZXh0cmEganNcbiAgICAgICAgY29uc3Qgc3ViID0gaW50ZXJ2YWwoMTAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmICh3aW5kb3cucGVuZG8pIHtcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGVuZG9TZXR0aW5ncyB7XG4gIHBlbmRvQXBpS2V5OiBzdHJpbmc7XG4gIHBlbmRvU2NyaXB0T3JpZ2luPzogc3RyaW5nO1xuICBwZW5kb0lkRm9ybWF0dGVyPzogKHBlbmRvSWQ6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWaXNpdG9yIHtcbiAgaWQ6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZW5kb0RpcmVjdGl2ZSB7XG4gIGluaGVyaXQ6IGJvb2xlYW47XG4gIHBhcmVudD86IElQZW5kb0RpcmVjdGl2ZTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGVuZG9TZXR0aW5ncyB7XG4gIHBlbmRvQXBpS2V5OiBzdHJpbmc7XG4gIHBlbmRvU2NyaXB0T3JpZ2luPzogc3RyaW5nO1xuICBwZW5kb0lkRm9ybWF0dGVyPzogKHBlbmRvSWQ6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZW5kb0RpcmVjdGl2ZSB7XG4gIGluaGVyaXQ6IGJvb2xlYW47XG4gIHBhcmVudD86IElQZW5kb0RpcmVjdGl2ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlzaXRvciB7XG4gIGlkOiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudCB7XG4gIGlkOiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVuZG9PcHRpb25zIHtcbiAgdmlzaXRvcj86IElWaXNpdG9yO1xuICBhY2NvdW50PzogSUFjY291bnQ7XG4gIC8vIENvcmVcbiAgYWRkaXRpb25hbEFwaUtleXM/OiBzdHJpbmdbXTtcbiAgYW5ub3RhdGVVcmw/OiBGdW5jdGlvbjtcbiAgYXBpS2V5Pzogc3RyaW5nO1xuICBhcHBBdXRvT3JkZXJpbmc/OiBzdHJpbmdbXTtcbiAgYXV0b0ZyYW1lSW5zdGFsbD86IGJvb2xlYW47XG4gIGNvbnRlbnRIb3N0Pzogc3RyaW5nO1xuICBjb29raWVEb21haW4/OiBzdHJpbmc7XG4gIGRhdGFIb3N0Pzogc3RyaW5nO1xuICBkaXNhYmxlQ29va2llcz86IGJvb2xlYW47XG4gIGRpc2FibGVGZWVkYmFjaz86IGJvb2xlYW47XG4gIGRpc2FibGVQZW5kbz86IGJvb2xlYW47XG4gIGRpc2FibGVQZXJzaXN0ZW5jZT86IGJvb2xlYW47XG4gIGZyYW1lSWRlbnRpdHlTeW5jPzogYm9vbGVhbjtcbiAgaWdub3JlSGFzaFJvdXRpbmc/OiBib29sZWFuO1xuICBpbml0aWFsaXplSW1tZWRpYXRlbHk/OiBib29sZWFuO1xuICBvYnNlcnZlU2hhZG93Um9vdHM/OiBib29sZWFuO1xuICBsZWFkZXJLZXk/OiBzdHJpbmdbXTtcbiAgbG9jYWxTdG9yYWdlT25seT86IGJvb2xlYW47XG4gIHByZWZlckJyb2FkY2FzdENoYW5uZWw/OiBib29sZWFuO1xuICBwcmVmZXJNdXRhdGlvbk9ic2VydmVyPzogYm9vbGVhbjtcbiAgcHJldmVudFVubG9hZExpc3RlbmVyPzogYm9vbGVhbjtcbiAgcXVlcnlTdHJpbmdXaGl0ZWxpc3Q/OiBzdHJpbmdbXSB8IEZ1bmN0aW9uO1xuICBzYW5pdGl6ZVVybD86IEZ1bmN0aW9uO1xuICBzZWxmSG9zdGVkQWdlbnRVcmw/OiBzdHJpbmc7XG4gIHNlbmRFdmVudHNXaXRoUG9zdE9ubHk/OiBib29sZWFuO1xuICAvLyBBbmFseXRpY3NcbiAgYWxsb3dlZFRleHQ/OiBzdHJpbmdbXTtcbiAgYW5hbHl0aWNzPzoge1xuICAgIGV4Y2x1ZGVFdmVudHM/OiBzdHJpbmdbXTtcbiAgfTtcbiAgZW5hYmxlRGVidWdFdmVudHM/OiBib29sZWFuO1xuICBldmVudFByb3BlcnR5TWF0Y2hQYXJlbnRzPzogYm9vbGVhbjtcbiAgZXhjbHVkZUFsbFRleHQ/OiBib29sZWFuO1xuICBleGNsdWRlTm9uR3VpZGVBbmFseXRpY3M/OiBib29sZWFuO1xuICBzeW50aGV0aWNDbGlja3M/OiB7XG4gICAgZWxlbWVudFJlbW92YWw/OiBib29sZWFuO1xuICAgIHRhcmdldENoYW5nZWQ/OiBib29sZWFuO1xuICB9O1xuICAvLyBHdWlkZXNcbiAgZGlzYWJsZUdsb2JhbENTUz86IGJvb2xlYW47XG4gIGRpc2FibGVHdWlkZVBzZXVkb1N0eWxlcz86IGJvb2xlYW47XG4gIGRpc2FibGVQcmVmZXRjaD86IGJvb2xlYW47XG4gIGVuYWJsZURlc2lnbmVyS2V5Ym9hcmRTaG9ydGN1dD86IGJvb2xlYW47XG4gIGVuYWJsZUd1aWRlVGltZW91dD86IGJvb2xlYW47XG4gIGd1aWRlU2VlblRpbWVvdXRMZW5ndGg/OiBudW1iZXI7XG4gIGd1aWRlVmFsaWRhdGlvbj86IGJvb2xlYW47XG4gIGd1aWRlcz86IHtcbiAgICBhdHRhY2hQb2ludD86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAgIGRlbGF5PzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgZ2xvYmFsU2NyaXB0cz86IGFueVtdO1xuICAgIHRpbWVvdXQ/OiBudW1iZXI7XG4gICAgdG9vbHRpcD86IHtcbiAgICAgIGFycm93U2l6ZT86IG51bWJlcjtcbiAgICB9O1xuICB9O1xuICBwcmV2ZW50Q29kZUluamVjdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlcmlhbGl6ZWRNZXRhZGF0YSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZW5kbyB7XG4gIC8vIEFnZW50XG4gIGFkZGl0aW9uYWxBcGlLZXlzOiBzdHJpbmdbXTtcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIGdldFZlcnNpb246ICgpID0+IHN0cmluZztcbiAgaW5pdGlhbGl6ZTogKG9wdGlvbnM6IElQZW5kb09wdGlvbnMpID0+IHZvaWQ7XG4gIGlzUmVhZHk6ICgpID0+IGJvb2xlYW47XG4gIHRlYXJkb3duOiAoKSA9PiB2b2lkO1xuXG4gIC8vIENsYXNzaWMgR3VpZGVzXG4gIGhpZGVMYXVuY2hlcjogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlTGF1bmNoZXI6ICgpID0+IHZvaWQ7XG4gIHNob3dMYXVuY2hlcjogKCkgPT4gdm9pZDtcbiAgdG9nZ2xlTGF1bmNoZXI6ICgpID0+IHZvaWQ7XG5cbiAgLy8gVE9ETzogRE9NXG5cbiAgLy8gVE9ETzogRE9NUXVlcnlcblxuICAvLyBEZWJ1Z2dpbmdcbiAgYWRkRGVidWdnaW5nRnVuY3Rpb25zOiAoKSA9PiB2b2lkO1xuICBkaXNhYmxlRGVidWdnaW5nOiAoKSA9PiB2b2lkO1xuICBkaXNhYmxlTG9nZ2luZzogKCkgPT4gdm9pZDtcbiAgZW5hYmxlRGVidWdnaW5nOiAoKSA9PiB2b2lkO1xuICBlbmFibGVMb2dnaW5nOiAoKSA9PiB2b2lkO1xuICBpc0RlYnVnZ2luZ0VuYWJsZWQ6ICgpID0+IHZvaWQ7XG4gIGxvZ1B1YmxpYzogKCkgPT4gdm9pZDtcblxuICAvLyBUT0RPOiBFdmVudHNcblxuICAvLyBUT0RPOiBHdWlkZXNcblxuICAvLyBJZGVudGl0eVxuICBjbGVhclNlc3Npb246ICgpID0+IHZvaWQ7XG4gIGdlbmVyYXRlX3VuaXF1ZV9pZDogKHByZWZpeD86IHN0cmluZykgPT4gc3RyaW5nO1xuICBnZXRBY2NvdW50SWQ6ICgpID0+IHN0cmluZyB8IG51bGw7XG4gIGdldF9hY2NvdW50X2lkOiAoKSA9PiBzdHJpbmcgfCBudWxsO1xuICBnZXRTZXJpYWxpemVkTWV0YWRhdGE6ICgpID0+IElTZXJpYWxpemVkTWV0YWRhdGE7XG4gIGdldFZpc2l0b3JJZDogKCkgPT4gc3RyaW5nO1xuICBnZXRfdmlzaXRvcl9pZDogKCkgPT4gc3RyaW5nO1xuICBpZGVudGlmeTogKG9wdGlvbnM6IFBpY2s8SVBlbmRvT3B0aW9ucywgJ3Zpc2l0b3InIHwgJ2FjY291bnQnPiB8IHN0cmluZywgYWNjb3VudElkPzogc3RyaW5nKSA9PiB2b2lkO1xuICBpc0Fub255bW91c1Zpc2l0b3I6ICh2aXNpdG9ySWQ/OiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIHNldF9hY2NvdW50X2lkOiAobmV3QWNjb3VudElkPzogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRfdmlzaXRvcl9pZDogKG5ld1Zpc2l0b3JJZD86IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlT3B0aW9uczogKG9wdGlvbnM6IElQZW5kb09wdGlvbnMpID0+IHZvaWQ7XG5cbiAgLy8gVVJMXG4gIHVybDoge1xuICAgIGdldDogKCkgPT4gc3RyaW5nO1xuICB9O1xuICBub3JtYWxpemVkVXJsOiBzdHJpbmc7XG4gIGdldEN1cnJlbnRVcmw6ICgpID0+IHN0cmluZztcbiAgZ2V0Tm9ybWFsaXplZFVybDogKCkgPT4gc3RyaW5nO1xuICBwYWdlTG9hZDogKHVybDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8vIFRPRE86IFV0aWxpdHlcblxuICAvLyBUT0RPOiBWYWxpZGF0aW9uXG59XG4iXX0=
@@ -1,9 +1,9 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { NgxPendoComponent } from './ngx-pendo.component';
3
- import { NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';
4
3
  import { NgxPendoIdDirective } from './ngx-pendo-id.directive';
5
4
  import { NgxPendoSectionDirective } from './ngx-pendo-section.directive';
6
- import { NgxPendoService } from './ngx-pendo.service';
5
+ import { NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';
6
+ import { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';
7
7
  import * as i0 from "@angular/core";
8
8
  export class NgxPendoModule {
9
9
  static forRoot(settings) {
@@ -14,41 +14,25 @@ export class NgxPendoModule {
14
14
  provide: NGX_PENDO_SETTINGS_TOKEN,
15
15
  useValue: settings
16
16
  },
17
- NGX_PENDO_INITIALIZER_PROVIDER,
18
- NgxPendoService,
19
- ],
17
+ NGX_PENDO_INITIALIZER_PROVIDER
18
+ ]
20
19
  };
21
20
  }
22
21
  static forChild() {
23
22
  return {
24
- ngModule: NgxPendoModule,
25
- providers: [
26
- NgxPendoService,
27
- ],
23
+ ngModule: NgxPendoModule
28
24
  };
29
25
  }
30
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
31
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, declarations: [NgxPendoComponent,
32
- NgxPendoIdDirective,
33
- NgxPendoSectionDirective], exports: [NgxPendoComponent,
34
- NgxPendoIdDirective,
35
- NgxPendoSectionDirective] }); }
27
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, declarations: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective], exports: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective] }); }
36
28
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule }); }
37
29
  }
38
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, decorators: [{
39
31
  type: NgModule,
40
32
  args: [{
41
- declarations: [
42
- NgxPendoComponent,
43
- NgxPendoIdDirective,
44
- NgxPendoSectionDirective,
45
- ],
33
+ declarations: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective],
46
34
  imports: [],
47
- exports: [
48
- NgxPendoComponent,
49
- NgxPendoIdDirective,
50
- NgxPendoSectionDirective,
51
- ],
35
+ exports: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective]
52
36
  }]
53
37
  }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWV0RCxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQXdCO1FBQ3JDLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtvQkFDakMsUUFBUSxFQUFFLFFBQVE7aUJBQ25CO2dCQUNELDhCQUE4QjtnQkFDOUIsZUFBZTthQUNoQjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFO2dCQUNULGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0F0QlUsY0FBYzsrR0FBZCxjQUFjLGlCQVh2QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLHdCQUF3QixhQUl4QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLHdCQUF3QjsrR0FHZixjQUFjOzsyRkFBZCxjQUFjO2tCQWIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4UGVuZG9Db21wb25lbnQgfSBmcm9tICcuL25neC1wZW5kby5jb21wb25lbnQnO1xuaW1wb3J0IHsgTkdYX1BFTkRPX1NFVFRJTkdTX1RPS0VOLCBOR1hfUEVORE9fSU5JVElBTElaRVJfUFJPVklERVIgfSBmcm9tICcuL25neC1wZW5kby5pbmplY3RvcnMnO1xuaW1wb3J0IHsgTmd4UGVuZG9JZERpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLWlkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL25neC1wZW5kby1zZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJUGVuZG9TZXR0aW5ncyB9IGZyb20gJy4vbmd4LXBlbmRvLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmd4UGVuZG9TZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtcGVuZG8uc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE5neFBlbmRvQ29tcG9uZW50LFxuICAgIE5neFBlbmRvSWREaXJlY3RpdmUsXG4gICAgTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW1xuICAgIE5neFBlbmRvQ29tcG9uZW50LFxuICAgIE5neFBlbmRvSWREaXJlY3RpdmUsXG4gICAgTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hQZW5kb01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KHNldHRpbmdzOiBJUGVuZG9TZXR0aW5ncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4UGVuZG9Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neFBlbmRvTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBOR1hfUEVORE9fU0VUVElOR1NfVE9LRU4sXG4gICAgICAgICAgdXNlVmFsdWU6IHNldHRpbmdzXG4gICAgICAgIH0sXG4gICAgICAgIE5HWF9QRU5ET19JTklUSUFMSVpFUl9QUk9WSURFUixcbiAgICAgICAgTmd4UGVuZG9TZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4UGVuZG9Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neFBlbmRvTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5neFBlbmRvU2VydmljZSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBTzlELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBd0I7UUFDckMsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsd0JBQXdCO29CQUNqQyxRQUFRLEVBQUUsUUFBUTtpQkFDbkI7Z0JBQ0QsOEJBQThCO2FBQy9CO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUTtRQUNiLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDO0lBQ0osQ0FBQzs4R0FsQlUsY0FBYzsrR0FBZCxjQUFjLGlCQUpWLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixhQUVyRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0I7K0dBRS9ELGNBQWM7OzJGQUFkLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLENBQUM7b0JBQ2hGLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDO2lCQUM1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hQZW5kb0NvbXBvbmVudCB9IGZyb20gJy4vbmd4LXBlbmRvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hQZW5kb0lkRGlyZWN0aXZlIH0gZnJvbSAnLi9uZ3gtcGVuZG8taWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5HWF9QRU5ET19JTklUSUFMSVpFUl9QUk9WSURFUiB9IGZyb20gJy4vbmd4LXBlbmRvLmluamVjdG9ycyc7XG5pbXBvcnQgeyBJUGVuZG9TZXR0aW5ncyB9IGZyb20gJy4vbmd4LXBlbmRvLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgTkdYX1BFTkRPX1NFVFRJTkdTX1RPS0VOIH0gZnJvbSAnLi9uZ3gtcGVuZG8udG9rZW5zJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTmd4UGVuZG9Db21wb25lbnQsIE5neFBlbmRvSWREaXJlY3RpdmUsIE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbTmd4UGVuZG9Db21wb25lbnQsIE5neFBlbmRvSWREaXJlY3RpdmUsIE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTmd4UGVuZG9Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChzZXR0aW5nczogSVBlbmRvU2V0dGluZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neFBlbmRvTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hQZW5kb01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYX1BFTkRPX1NFVFRJTkdTX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiBzZXR0aW5nc1xuICAgICAgICB9LFxuICAgICAgICBOR1hfUEVORE9fSU5JVElBTElaRVJfUFJPVklERVJcbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4UGVuZG9Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neFBlbmRvTW9kdWxlXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Injectable, Inject } from '@angular/core';
2
- import { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.injectors';
2
+ import { NGX_PENDO_CONTEXT, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';
3
3
  import * as i0 from "@angular/core";
4
4
  const DEFAULT_PENDO_ID_FORMATTER = pendoId => pendoId;
5
5
  export class NgxPendoService {
@@ -8,17 +8,33 @@ export class NgxPendoService {
8
8
  *
9
9
  * @param settings IPendoSettings
10
10
  */
11
- constructor(settings) {
11
+ constructor(settings, pendo) {
12
+ this.pendo = pendo;
12
13
  this.pendoIdFormatter = settings.pendoIdFormatter || DEFAULT_PENDO_ID_FORMATTER;
13
14
  }
15
+ initialize(optionsOrVisitor, account) {
16
+ if ('id' in optionsOrVisitor) {
17
+ this.pendo.initialize({ visitor: optionsOrVisitor, account });
18
+ }
19
+ else {
20
+ this.pendo.initialize(optionsOrVisitor);
21
+ }
22
+ }
23
+ identify(visitor, account) {
24
+ if (typeof visitor === 'string' && (!account || typeof account === 'string')) {
25
+ this.pendo.identify(visitor, account);
26
+ }
27
+ else {
28
+ this.pendo.identify({ visitor: visitor, account: account });
29
+ }
30
+ }
14
31
  /**
15
- * Completely re-initialize the Agent with new options
32
+ * Updates metadata object for the Pendo agent.
16
33
  *
17
- * @param visitor IVisitor
18
- * @param account IAccount
34
+ * @param options IPendoOptions
19
35
  */
20
- initialize(visitor, account) {
21
- pendo.initialize({ visitor, account });
36
+ updateOptions(options) {
37
+ this.pendo.updateOptions(options);
22
38
  }
23
39
  /**
24
40
  * Format Pendo
@@ -28,13 +44,37 @@ export class NgxPendoService {
28
44
  formatPendoId(...ids) {
29
45
  return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter(id)) : ids).join('.');
30
46
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService }); }
47
+ /**
48
+ * Shuts down the agent and cleans up all timers and listeners.
49
+ */
50
+ teardown() {
51
+ this.pendo.teardown();
52
+ }
53
+ /**
54
+ * Loads Pendo Debugger and extends the global pendo object with additional functionality for debugging purposes.
55
+ */
56
+ enableDebugging() {
57
+ this.pendo.enableDebugging();
58
+ }
59
+ /**
60
+ * Removes Pendo Debugger extension.
61
+ */
62
+ disableDebugging() {
63
+ this.pendo.disableDebugging();
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }, { token: NGX_PENDO_CONTEXT }], target: i0.ɵɵFactoryTarget.Injectable }); }
66
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, providedIn: 'root' }); }
33
67
  }
34
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, decorators: [{
35
- type: Injectable
69
+ type: Injectable,
70
+ args: [{
71
+ providedIn: 'root'
72
+ }]
36
73
  }], ctorParameters: () => [{ type: undefined, decorators: [{
37
74
  type: Inject,
38
75
  args: [NGX_PENDO_SETTINGS_TOKEN]
76
+ }] }, { type: undefined, decorators: [{
77
+ type: Inject,
78
+ args: [NGX_PENDO_CONTEXT]
39
79
  }] }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLakUsTUFBTSwwQkFBMEIsR0FBZ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7QUFHbkYsTUFBTSxPQUFPLGVBQWU7SUFJMUI7Ozs7T0FJRztJQUNILFlBQThDLFFBQXdCO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLElBQUksMEJBQTBCLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWlCLEVBQUUsT0FBa0I7UUFDOUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLEdBQUcsR0FBYTtRQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RixDQUFDOzhHQTlCVSxlQUFlLGtCQVNOLHdCQUF3QjtrSEFUakMsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBVUksTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4vbmd4LXBlbmRvLmluamVjdG9ycyc7XG5pbXBvcnQgeyBJQWNjb3VudCwgSVZpc2l0b3IsIElQZW5kb1NldHRpbmdzIH0gZnJvbSAnLi9uZ3gtcGVuZG8uaW50ZXJmYWNlcyc7XG5cbmRlY2xhcmUgdmFyIHBlbmRvOiBhbnk7XG5cbmNvbnN0IERFRkFVTFRfUEVORE9fSURfRk9STUFUVEVSOiAocGVuZG9JZDogc3RyaW5nKSA9PiBzdHJpbmcgPSBwZW5kb0lkID0+IHBlbmRvSWQ7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hQZW5kb1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgcGVuZG9JZEZvcm1hdHRlcjogKHBlbmRvSWQ6IHN0cmluZykgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3MgSVBlbmRvU2V0dGluZ3NcbiAgICovXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdYX1BFTkRPX1NFVFRJTkdTX1RPS0VOKSBzZXR0aW5nczogSVBlbmRvU2V0dGluZ3MpIHtcbiAgICB0aGlzLnBlbmRvSWRGb3JtYXR0ZXIgPSBzZXR0aW5ncy5wZW5kb0lkRm9ybWF0dGVyIHx8IERFRkFVTFRfUEVORE9fSURfRk9STUFUVEVSO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlbHkgcmUtaW5pdGlhbGl6ZSB0aGUgQWdlbnQgd2l0aCBuZXcgb3B0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0gdmlzaXRvciBJVmlzaXRvclxuICAgKiBAcGFyYW0gYWNjb3VudCBJQWNjb3VudFxuICAgKi9cbiAgaW5pdGlhbGl6ZSh2aXNpdG9yOiBJVmlzaXRvciwgYWNjb3VudD86IElBY2NvdW50KTogdm9pZCB7XG4gICAgcGVuZG8uaW5pdGlhbGl6ZSh7IHZpc2l0b3IsIGFjY291bnQgfSk7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IFBlbmRvXG4gICAqXG4gICAqIEBwYXJhbSBpZHMgc3RyaW5nW11cbiAgICovXG4gIGZvcm1hdFBlbmRvSWQoLi4uaWRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLnBlbmRvSWRGb3JtYXR0ZXIgPyBpZHMubWFwKGlkID0+IHRoaXMucGVuZG9JZEZvcm1hdHRlcihpZCkpIDogaWRzKS5qb2luKCcuJyk7XG4gIH1cblxufVxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHakYsTUFBTSwwQkFBMEIsR0FBZ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7QUFLbkYsTUFBTSxPQUFPLGVBQWU7SUFHMUI7Ozs7T0FJRztJQUNILFlBQ29DLFFBQXdCLEVBQ3ZCLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBRWhELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLElBQUksMEJBQTBCLENBQUM7SUFDbEYsQ0FBQztJQVVELFVBQVUsQ0FBQyxnQkFBMEMsRUFBRSxPQUFrQjtRQUN2RSxJQUFJLElBQUksSUFBSSxnQkFBZ0IsRUFBRTtZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQy9EO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQVVELFFBQVEsQ0FBQyxPQUEwQixFQUFFLE9BQTJCO1FBQzlELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLEVBQUU7WUFDNUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBWSxPQUFPLEVBQUUsT0FBTyxFQUFZLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDakY7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUFzQjtRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxHQUFHLEdBQWE7UUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OEdBcEZVLGVBQWUsa0JBU2hCLHdCQUF3QixhQUN4QixpQkFBaUI7a0hBVmhCLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdYX1BFTkRPX0NPTlRFWFQsIE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4vbmd4LXBlbmRvLnRva2Vucyc7XG5pbXBvcnQgeyBJQWNjb3VudCwgSVBlbmRvLCBJUGVuZG9PcHRpb25zLCBJUGVuZG9TZXR0aW5ncywgSVZpc2l0b3IgfSBmcm9tICcuL25neC1wZW5kby5pbnRlcmZhY2VzJztcblxuY29uc3QgREVGQVVMVF9QRU5ET19JRF9GT1JNQVRURVI6IChwZW5kb0lkOiBzdHJpbmcpID0+IHN0cmluZyA9IHBlbmRvSWQgPT4gcGVuZG9JZDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmd4UGVuZG9TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwZW5kb0lkRm9ybWF0dGVyOiAocGVuZG9JZDogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBJUGVuZG9TZXR0aW5nc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOR1hfUEVORE9fU0VUVElOR1NfVE9LRU4pIHNldHRpbmdzOiBJUGVuZG9TZXR0aW5ncyxcbiAgICBASW5qZWN0KE5HWF9QRU5ET19DT05URVhUKSBwcml2YXRlIHBlbmRvOiBJUGVuZG9cbiAgKSB7XG4gICAgdGhpcy5wZW5kb0lkRm9ybWF0dGVyID0gc2V0dGluZ3MucGVuZG9JZEZvcm1hdHRlciB8fCBERUZBVUxUX1BFTkRPX0lEX0ZPUk1BVFRFUjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wbGV0ZWx5IHJlLWluaXRpYWxpemUgdGhlIEFnZW50IHdpdGggbmV3IG9wdGlvbnNcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnNPclZpc2l0b3IgSVBlbmRvT3B0aW9ucyB8IElWaXNpdG9yXG4gICAqIEBwYXJhbSBhY2NvdW50IElBY2NvdW50XG4gICAqL1xuICBpbml0aWFsaXplKG9wdGlvbnM6IElQZW5kb09wdGlvbnMpOiB2b2lkO1xuICBpbml0aWFsaXplKHZpc2l0b3I6IElWaXNpdG9yLCBhY2NvdW50PzogSUFjY291bnQpOiB2b2lkO1xuICBpbml0aWFsaXplKG9wdGlvbnNPclZpc2l0b3I6IElQZW5kb09wdGlvbnMgfCBJVmlzaXRvciwgYWNjb3VudD86IElBY2NvdW50KTogdm9pZCB7XG4gICAgaWYgKCdpZCcgaW4gb3B0aW9uc09yVmlzaXRvcikge1xuICAgICAgdGhpcy5wZW5kby5pbml0aWFsaXplKHsgdmlzaXRvcjogb3B0aW9uc09yVmlzaXRvciwgYWNjb3VudCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wZW5kby5pbml0aWFsaXplKG9wdGlvbnNPclZpc2l0b3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGFuIGlkZW50aWZ5IGV2ZW50IGFuZCBhIG1ldGEgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2aXNpdG9yIElWaXNpdG9yIHwgc3RyaW5nXG4gICAqIEBwYXJhbSBhY2NvdW50IElBY2NvdW50IHwgc3RyaW5nXG4gICAqL1xuICBpZGVudGlmeSh2aXNpdG9yOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcpOiB2b2lkO1xuICBpZGVudGlmeSh2aXNpdG9yOiBJVmlzaXRvciwgYWNjb3VudD86IElBY2NvdW50KTogdm9pZDtcbiAgaWRlbnRpZnkodmlzaXRvcjogSVZpc2l0b3IgfCBzdHJpbmcsIGFjY291bnQ/OiBJQWNjb3VudCB8IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdmlzaXRvciA9PT0gJ3N0cmluZycgJiYgKCFhY2NvdW50IHx8IHR5cGVvZiBhY2NvdW50ID09PSAnc3RyaW5nJykpIHtcbiAgICAgIHRoaXMucGVuZG8uaWRlbnRpZnkodmlzaXRvciwgYWNjb3VudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGVuZG8uaWRlbnRpZnkoeyB2aXNpdG9yOiA8SVZpc2l0b3I+dmlzaXRvciwgYWNjb3VudDogPElBY2NvdW50PmFjY291bnQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgbWV0YWRhdGEgb2JqZWN0IGZvciB0aGUgUGVuZG8gYWdlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIElQZW5kb09wdGlvbnNcbiAgICovXG4gIHVwZGF0ZU9wdGlvbnMob3B0aW9uczogSVBlbmRvT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMucGVuZG8udXBkYXRlT3B0aW9ucyhvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgUGVuZG9cbiAgICpcbiAgICogQHBhcmFtIGlkcyBzdHJpbmdbXVxuICAgKi9cbiAgZm9ybWF0UGVuZG9JZCguLi5pZHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMucGVuZG9JZEZvcm1hdHRlciA/IGlkcy5tYXAoaWQgPT4gdGhpcy5wZW5kb0lkRm9ybWF0dGVyKGlkKSkgOiBpZHMpLmpvaW4oJy4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaHV0cyBkb3duIHRoZSBhZ2VudCBhbmQgY2xlYW5zIHVwIGFsbCB0aW1lcnMgYW5kIGxpc3RlbmVycy5cbiAgICovXG4gIHRlYXJkb3duKCk6IHZvaWQge1xuICAgIHRoaXMucGVuZG8udGVhcmRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBQZW5kbyBEZWJ1Z2dlciBhbmQgZXh0ZW5kcyB0aGUgZ2xvYmFsIHBlbmRvIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgZW5hYmxlRGVidWdnaW5nKCk6IHZvaWQge1xuICAgIHRoaXMucGVuZG8uZW5hYmxlRGVidWdnaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBQZW5kbyBEZWJ1Z2dlciBleHRlbnNpb24uXG4gICAqL1xuICBkaXNhYmxlRGVidWdnaW5nKCk6IHZvaWQge1xuICAgIHRoaXMucGVuZG8uZGlzYWJsZURlYnVnZ2luZygpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { InjectionToken, inject } from '@angular/core';
3
+ export const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken('ngx-pendo-settings', {
4
+ providedIn: 'root',
5
+ factory: () => ({ pendoApiKey: '' })
6
+ });
7
+ export const NGX_PENDO_WINDOW = new InjectionToken('ngx-pendo-window', {
8
+ providedIn: 'root',
9
+ factory: () => {
10
+ const { defaultView } = inject(DOCUMENT);
11
+ if (!defaultView) {
12
+ throw new Error('Window is not available');
13
+ }
14
+ return defaultView;
15
+ }
16
+ });
17
+ export const NGX_PENDO_CONTEXT = new InjectionToken('ngx-pendo-context', {
18
+ providedIn: 'root',
19
+ factory: () => inject(NGX_PENDO_WINDOW).pendo
20
+ });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLnRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFpQixvQkFBb0IsRUFBRTtJQUMvRixVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBYyxrQkFBa0IsRUFBRTtJQUNsRixVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBUyxtQkFBbUIsRUFBRTtJQUMvRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBTTtDQUMvQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZW5kb1dpbmRvdyB9IGZyb20gJy4vbmd4LXBlbmRvLnR5cGVzJztcbmltcG9ydCB7IElQZW5kbywgSVBlbmRvU2V0dGluZ3MgfSBmcm9tICcuL25neC1wZW5kby5pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUGVuZG9TZXR0aW5ncz4oJ25neC1wZW5kby1zZXR0aW5ncycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiAoeyBwZW5kb0FwaUtleTogJycgfSlcbn0pO1xuXG5leHBvcnQgY29uc3QgTkdYX1BFTkRPX1dJTkRPVyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQZW5kb1dpbmRvdz4oJ25neC1wZW5kby13aW5kb3cnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IHsgZGVmYXVsdFZpZXcgfSA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICBpZiAoIWRlZmF1bHRWaWV3KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dpbmRvdyBpcyBub3QgYXZhaWxhYmxlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRWaWV3O1xuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IE5HWF9QRU5ET19DT05URVhUID0gbmV3IEluamVjdGlvblRva2VuPElQZW5kbz4oJ25neC1wZW5kby1jb250ZXh0Jywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IGluamVjdChOR1hfUEVORE9fV0lORE9XKS5wZW5kbyFcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXBlbmRvL3NyYy9saWIvbmd4LXBlbmRvLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUGVuZG8gfSBmcm9tICcuL25neC1wZW5kby5pbnRlcmZhY2VzJztcblxuZXhwb3J0IHR5cGUgUGVuZG9XaW5kb3cgPSBXaW5kb3cgJiB7XG4gIHBlbmRvPzogSVBlbmRvO1xufTtcbiJdfQ==
@@ -8,4 +8,6 @@ export * from './lib/ngx-pendo.component';
8
8
  export * from './lib/ngx-pendo.injectors';
9
9
  export * from './lib/ngx-pendo.interfaces';
10
10
  export * from './lib/ngx-pendo.module';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1wZW5kb1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wZW5kby1pZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wZW5kby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wZW5kby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXBlbmRvLmluamVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtcGVuZG8uaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtcGVuZG8ubW9kdWxlJztcbiJdfQ==
11
+ export * from './lib/ngx-pendo.tokens';
12
+ export * from './lib/ngx-pendo.types';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtcGVuZG9cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtcGVuZG8taWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wZW5kby1zZWN0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtcGVuZG8uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtcGVuZG8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wZW5kby5pbmplY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXBlbmRvLmludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXBlbmRvLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtcGVuZG8udG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1wZW5kby50eXBlcyc7XG4iXX0=
@@ -1,49 +1,27 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, APP_INITIALIZER, isDevMode, Injectable, Inject, Directive, Input, HostBinding, ContentChildren, Component, NgModule } from '@angular/core';
3
- import { interval, merge } from 'rxjs';
2
+ import { InjectionToken, inject, Injectable, Inject, Directive, Input, HostBinding, ContentChildren, Component, APP_INITIALIZER, isDevMode, NgModule } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import { merge, interval } from 'rxjs';
4
5
  import { startWith } from 'rxjs/operators';
5
6
 
6
7
  const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken('ngx-pendo-settings', {
7
- factory: () => ({ pendoApiKey: '' }),
8
+ providedIn: 'root',
9
+ factory: () => ({ pendoApiKey: '' })
8
10
  });
9
- const DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';
10
- const NGX_PENDO_INITIALIZER_PROVIDER = {
11
- provide: APP_INITIALIZER,
12
- multi: true,
13
- useFactory: pendoInitializer,
14
- deps: [
15
- NGX_PENDO_SETTINGS_TOKEN,
16
- ],
17
- };
18
- function pendoInitializer($settings) {
19
- return async () => {
20
- if (!$settings.pendoApiKey) {
21
- if (isDevMode()) {
22
- console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');
23
- }
24
- return;
11
+ const NGX_PENDO_WINDOW = new InjectionToken('ngx-pendo-window', {
12
+ providedIn: 'root',
13
+ factory: () => {
14
+ const { defaultView } = inject(DOCUMENT);
15
+ if (!defaultView) {
16
+ throw new Error('Window is not available');
25
17
  }
26
- await new Promise((resolve, reject) => {
27
- const script = document.createElement('script');
28
- script.async = true;
29
- script.src = `${$settings.pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${$settings.pendoApiKey}/pendo.js`;
30
- document.head.appendChild(script);
31
- script.onerror = async () => {
32
- // The script may have been blocked by an ad blocker
33
- resolve();
34
- };
35
- script.onload = async () => {
36
- // when enableDebugging should load extra js
37
- const sub = interval(100).subscribe(() => {
38
- if (pendo) {
39
- sub.unsubscribe();
40
- resolve();
41
- }
42
- });
43
- };
44
- });
45
- };
46
- }
18
+ return defaultView;
19
+ }
20
+ });
21
+ const NGX_PENDO_CONTEXT = new InjectionToken('ngx-pendo-context', {
22
+ providedIn: 'root',
23
+ factory: () => inject(NGX_PENDO_WINDOW).pendo
24
+ });
47
25
 
48
26
  const DEFAULT_PENDO_ID_FORMATTER = pendoId => pendoId;
49
27
  class NgxPendoService {
@@ -52,17 +30,33 @@ class NgxPendoService {
52
30
  *
53
31
  * @param settings IPendoSettings
54
32
  */
55
- constructor(settings) {
33
+ constructor(settings, pendo) {
34
+ this.pendo = pendo;
56
35
  this.pendoIdFormatter = settings.pendoIdFormatter || DEFAULT_PENDO_ID_FORMATTER;
57
36
  }
37
+ initialize(optionsOrVisitor, account) {
38
+ if ('id' in optionsOrVisitor) {
39
+ this.pendo.initialize({ visitor: optionsOrVisitor, account });
40
+ }
41
+ else {
42
+ this.pendo.initialize(optionsOrVisitor);
43
+ }
44
+ }
45
+ identify(visitor, account) {
46
+ if (typeof visitor === 'string' && (!account || typeof account === 'string')) {
47
+ this.pendo.identify(visitor, account);
48
+ }
49
+ else {
50
+ this.pendo.identify({ visitor: visitor, account: account });
51
+ }
52
+ }
58
53
  /**
59
- * Completely re-initialize the Agent with new options
54
+ * Updates metadata object for the Pendo agent.
60
55
  *
61
- * @param visitor IVisitor
62
- * @param account IAccount
56
+ * @param options IPendoOptions
63
57
  */
64
- initialize(visitor, account) {
65
- pendo.initialize({ visitor, account });
58
+ updateOptions(options) {
59
+ this.pendo.updateOptions(options);
66
60
  }
67
61
  /**
68
62
  * Format Pendo
@@ -72,14 +66,38 @@ class NgxPendoService {
72
66
  formatPendoId(...ids) {
73
67
  return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter(id)) : ids).join('.');
74
68
  }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
76
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService }); }
69
+ /**
70
+ * Shuts down the agent and cleans up all timers and listeners.
71
+ */
72
+ teardown() {
73
+ this.pendo.teardown();
74
+ }
75
+ /**
76
+ * Loads Pendo Debugger and extends the global pendo object with additional functionality for debugging purposes.
77
+ */
78
+ enableDebugging() {
79
+ this.pendo.enableDebugging();
80
+ }
81
+ /**
82
+ * Removes Pendo Debugger extension.
83
+ */
84
+ disableDebugging() {
85
+ this.pendo.disableDebugging();
86
+ }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }, { token: NGX_PENDO_CONTEXT }], target: i0.ɵɵFactoryTarget.Injectable }); }
88
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, providedIn: 'root' }); }
77
89
  }
78
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoService, decorators: [{
79
- type: Injectable
91
+ type: Injectable,
92
+ args: [{
93
+ providedIn: 'root'
94
+ }]
80
95
  }], ctorParameters: () => [{ type: undefined, decorators: [{
81
96
  type: Inject,
82
97
  args: [NGX_PENDO_SETTINGS_TOKEN]
98
+ }] }, { type: undefined, decorators: [{
99
+ type: Inject,
100
+ args: [NGX_PENDO_CONTEXT]
83
101
  }] }] });
84
102
 
85
103
  class NgxPendoIdDirective {
@@ -209,6 +227,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
209
227
  ` }]
210
228
  }], ctorParameters: () => [] });
211
229
 
230
+ const DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';
231
+ const NGX_PENDO_INITIALIZER_PROVIDER = {
232
+ provide: APP_INITIALIZER,
233
+ multi: true,
234
+ useFactory: pendoInitializer,
235
+ deps: [NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_WINDOW]
236
+ };
237
+ function pendoInitializer($settings, window) {
238
+ return async () => {
239
+ const { pendoApiKey, pendoScriptOrigin } = $settings;
240
+ if (!pendoApiKey) {
241
+ if (isDevMode()) {
242
+ console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');
243
+ }
244
+ return;
245
+ }
246
+ await new Promise(resolve => {
247
+ const script = document.createElement('script');
248
+ script.async = true;
249
+ script.src = `${pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${pendoApiKey}/pendo.js`;
250
+ document.head.appendChild(script);
251
+ script.onerror = async () => {
252
+ // The script may have been blocked by an ad blocker
253
+ console.error('The pendo script may have been blocked,');
254
+ resolve();
255
+ };
256
+ script.onload = async () => {
257
+ // when enableDebugging should load extra js
258
+ const sub = interval(100).subscribe(() => {
259
+ if (window.pendo) {
260
+ sub.unsubscribe();
261
+ resolve();
262
+ }
263
+ });
264
+ };
265
+ });
266
+ };
267
+ }
268
+
212
269
  class NgxPendoModule {
213
270
  static forRoot(settings) {
214
271
  return {
@@ -218,41 +275,25 @@ class NgxPendoModule {
218
275
  provide: NGX_PENDO_SETTINGS_TOKEN,
219
276
  useValue: settings
220
277
  },
221
- NGX_PENDO_INITIALIZER_PROVIDER,
222
- NgxPendoService,
223
- ],
278
+ NGX_PENDO_INITIALIZER_PROVIDER
279
+ ]
224
280
  };
225
281
  }
226
282
  static forChild() {
227
283
  return {
228
- ngModule: NgxPendoModule,
229
- providers: [
230
- NgxPendoService,
231
- ],
284
+ ngModule: NgxPendoModule
232
285
  };
233
286
  }
234
287
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
235
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, declarations: [NgxPendoComponent,
236
- NgxPendoIdDirective,
237
- NgxPendoSectionDirective], exports: [NgxPendoComponent,
238
- NgxPendoIdDirective,
239
- NgxPendoSectionDirective] }); }
288
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, declarations: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective], exports: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective] }); }
240
289
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule }); }
241
290
  }
242
291
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgxPendoModule, decorators: [{
243
292
  type: NgModule,
244
293
  args: [{
245
- declarations: [
246
- NgxPendoComponent,
247
- NgxPendoIdDirective,
248
- NgxPendoSectionDirective,
249
- ],
294
+ declarations: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective],
250
295
  imports: [],
251
- exports: [
252
- NgxPendoComponent,
253
- NgxPendoIdDirective,
254
- NgxPendoSectionDirective,
255
- ],
296
+ exports: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective]
256
297
  }]
257
298
  }] });
258
299
 
@@ -264,5 +305,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
264
305
  * Generated bundle index. Do not edit.
265
306
  */
266
307
 
267
- export { NGX_PENDO_INITIALIZER_PROVIDER, NGX_PENDO_SETTINGS_TOKEN, NgxPendoComponent, NgxPendoIdDirective, NgxPendoModule, NgxPendoSectionDirective, NgxPendoService, pendoInitializer };
308
+ export { NGX_PENDO_CONTEXT, NGX_PENDO_INITIALIZER_PROVIDER, NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_WINDOW, NgxPendoComponent, NgxPendoIdDirective, NgxPendoModule, NgxPendoSectionDirective, NgxPendoService, pendoInitializer };
268
309
  //# sourceMappingURL=ngx-pendo.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-pendo.mjs","sources":["../../../projects/ngx-pendo/src/lib/ngx-pendo.injectors.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.component.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.module.ts","../../../projects/ngx-pendo/src/public-api.ts","../../../projects/ngx-pendo/src/ngx-pendo.ts"],"sourcesContent":["import { APP_INITIALIZER, InjectionToken, isDevMode, Provider } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\n\ndeclare var pendo: any;\n\nexport const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken<IPendoSettings>('ngx-pendo-settings', {\n factory: () => ({ pendoApiKey: '' }),\n});\n\nconst DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';\n\nexport const NGX_PENDO_INITIALIZER_PROVIDER: Provider = {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: pendoInitializer,\n deps: [\n NGX_PENDO_SETTINGS_TOKEN,\n ],\n};\n\nexport function pendoInitializer($settings: IPendoSettings): () => Promise<void> {\n return async () => {\n if (!$settings.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, reject) => {\n const script = document.createElement('script');\n script.async = true;\n script.src = `${$settings.pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${$settings.pendoApiKey}/pendo.js`;\n document.head.appendChild(script);\n script.onerror = async () => {\n // The script may have been blocked by an ad blocker\n resolve();\n };\n script.onload = async () => {\n // when enableDebugging should load extra js\n const sub = interval(100).subscribe(() => {\n if (pendo) {\n sub.unsubscribe();\n resolve();\n }\n });\n };\n });\n };\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.injectors';\nimport { IAccount, IVisitor, IPendoSettings } from './ngx-pendo.interfaces';\n\ndeclare var pendo: any;\n\nconst DEFAULT_PENDO_ID_FORMATTER: (pendoId: string) => string = pendoId => pendoId;\n\n@Injectable()\nexport class NgxPendoService {\n\n private pendoIdFormatter: (pendoId: string) => string;\n\n /**\n * Constructor\n *\n * @param settings IPendoSettings\n */\n constructor(@Inject(NGX_PENDO_SETTINGS_TOKEN) settings: IPendoSettings) {\n this.pendoIdFormatter = settings.pendoIdFormatter || DEFAULT_PENDO_ID_FORMATTER;\n }\n\n /**\n * Completely re-initialize the Agent with new options\n *\n * @param visitor IVisitor\n * @param account IAccount\n */\n initialize(visitor: IVisitor, account?: IAccount): void {\n pendo.initialize({ visitor, account });\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","import { Directive, Input, HostBinding } 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})\nexport class NgxPendoIdDirective implements IPendoDirective {\n private _parent!: NgxPendoSectionDirective;\n\n private _pendoSections: string[] = [];\n\n private _pendoId!: string;\n\n @Input('ngx-pendo-id')\n @HostBinding('attr.data-pendo-id')\n get pendoId(): string {\n return this.service.formatPendoId(...this._pendoSections, this._pendoId);\n }\n set pendoId(value: string) {\n this._pendoId = value;\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('ngx-pendo-inherit')\n inherit = true;\n\n get parent(): NgxPendoSectionDirective {\n return this._parent;\n }\n set parent(value: NgxPendoSectionDirective) {\n this._parent = value;\n setTimeout(() => {\n this._pendoSections = [];\n let cur = this.inherit ? value : null;\n while (cur) {\n this._pendoSections.unshift(cur.pendoSection);\n cur = cur.inherit ? cur.parent : null;\n }\n });\n }\n\n @HostBinding('attr.ngx-pendo-disable-inherit')\n get disableInherit(): boolean | undefined {\n return this.inherit ? undefined : true;\n }\n\n constructor(private service: NgxPendoService) {}\n}\n","import {\n Directive,\n Input,\n HostBinding,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { merge, Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { IPendoDirective } from './ngx-pendo.interfaces';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\n\n@Directive({\n selector: '[ngx-pendo-section]'\n})\nexport class NgxPendoSectionDirective implements IPendoDirective, AfterContentInit, OnChanges, OnDestroy {\n @Input('ngx-pendo-section')\n @HostBinding('attr.ngx-pendo-section')\n pendoSection!: string;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('ngx-pendo-inherit')\n inherit = true;\n\n @HostBinding('attr.ngx-pendo-disable-inherit')\n get disableInherit(): boolean | undefined {\n return this.inherit ? undefined : true;\n }\n\n parent!: NgxPendoSectionDirective;\n\n @ContentChildren(NgxPendoIdDirective, { descendants: false })\n idDirectives!: QueryList<NgxPendoIdDirective>;\n\n @ContentChildren(NgxPendoSectionDirective, { descendants: false })\n sectionDirectives!: QueryList<NgxPendoSectionDirective>;\n\n @ContentChildren(NgxPendoIdDirective, { descendants: true })\n allIdDirectives!: QueryList<NgxPendoIdDirective>;\n\n private subscriptions: Subscription[] = [];\n\n ngAfterContentInit(): void {\n // set all child parent\n this.subscriptions.push(\n merge(\n this.sectionDirectives.changes.pipe(startWith(this.sectionDirectives)),\n this.idDirectives.changes.pipe(startWith(this.idDirectives))\n ).subscribe((items: QueryList<IPendoDirective>) =>\n items.forEach(item => {\n if (item !== this) {\n item.parent = this;\n }\n })\n )\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.pendoSection && !changes.pendoSection.firstChange) {\n this.allIdDirectives.forEach(i => (i.parent = i.parent));\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'lib-ngx-pendo',\n template: `\n <p>\n ngx-pendo works!\n </p>\n `,\n styles: []\n})\nexport class NgxPendoComponent {\n constructor() {}\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { NgxPendoComponent } from './ngx-pendo.component';\nimport { NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\nimport { NgxPendoSectionDirective } from './ngx-pendo-section.directive';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\nimport { NgxPendoService } from './ngx-pendo.service';\n\n@NgModule({\n declarations: [\n NgxPendoComponent,\n NgxPendoIdDirective,\n NgxPendoSectionDirective,\n ],\n imports: [],\n exports: [\n NgxPendoComponent,\n NgxPendoIdDirective,\n NgxPendoSectionDirective,\n ],\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 NGX_PENDO_INITIALIZER_PROVIDER,\n NgxPendoService,\n ],\n };\n }\n\n static forChild(): ModuleWithProviders<NgxPendoModule> {\n return {\n ngModule: NgxPendoModule,\n providers: [\n NgxPendoService,\n ],\n };\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.component';\nexport * from './lib/ngx-pendo.injectors';\nexport * from './lib/ngx-pendo.interfaces';\nexport * from './lib/ngx-pendo.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxPendoService"],"mappings":"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"}
1
+ {"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.component.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.injectors.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.module.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\nconst DEFAULT_PENDO_ID_FORMATTER: (pendoId: string) => string = pendoId => pendoId;\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 */\n constructor(\n @Inject(NGX_PENDO_SETTINGS_TOKEN) settings: IPendoSettings,\n @Inject(NGX_PENDO_CONTEXT) private pendo: IPendo\n ) {\n this.pendoIdFormatter = settings.pendoIdFormatter || DEFAULT_PENDO_ID_FORMATTER;\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 * 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, HostBinding } 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})\nexport class NgxPendoIdDirective implements IPendoDirective {\n private _parent!: NgxPendoSectionDirective;\n\n private _pendoSections: string[] = [];\n\n private _pendoId!: string;\n\n @Input('ngx-pendo-id')\n @HostBinding('attr.data-pendo-id')\n get pendoId(): string {\n return this.service.formatPendoId(...this._pendoSections, this._pendoId);\n }\n set pendoId(value: string) {\n this._pendoId = value;\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('ngx-pendo-inherit')\n inherit = true;\n\n get parent(): NgxPendoSectionDirective {\n return this._parent;\n }\n set parent(value: NgxPendoSectionDirective) {\n this._parent = value;\n setTimeout(() => {\n this._pendoSections = [];\n let cur = this.inherit ? value : null;\n while (cur) {\n this._pendoSections.unshift(cur.pendoSection);\n cur = cur.inherit ? cur.parent : null;\n }\n });\n }\n\n @HostBinding('attr.ngx-pendo-disable-inherit')\n get disableInherit(): boolean | undefined {\n return this.inherit ? undefined : true;\n }\n\n constructor(private service: NgxPendoService) {}\n}\n","import {\n Directive,\n Input,\n HostBinding,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { merge, Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { IPendoDirective } from './ngx-pendo.interfaces';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\n\n@Directive({\n selector: '[ngx-pendo-section]'\n})\nexport class NgxPendoSectionDirective implements IPendoDirective, AfterContentInit, OnChanges, OnDestroy {\n @Input('ngx-pendo-section')\n @HostBinding('attr.ngx-pendo-section')\n pendoSection!: string;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('ngx-pendo-inherit')\n inherit = true;\n\n @HostBinding('attr.ngx-pendo-disable-inherit')\n get disableInherit(): boolean | undefined {\n return this.inherit ? undefined : true;\n }\n\n parent!: NgxPendoSectionDirective;\n\n @ContentChildren(NgxPendoIdDirective, { descendants: false })\n idDirectives!: QueryList<NgxPendoIdDirective>;\n\n @ContentChildren(NgxPendoSectionDirective, { descendants: false })\n sectionDirectives!: QueryList<NgxPendoSectionDirective>;\n\n @ContentChildren(NgxPendoIdDirective, { descendants: true })\n allIdDirectives!: QueryList<NgxPendoIdDirective>;\n\n private subscriptions: Subscription[] = [];\n\n ngAfterContentInit(): void {\n // set all child parent\n this.subscriptions.push(\n merge(\n this.sectionDirectives.changes.pipe(startWith(this.sectionDirectives)),\n this.idDirectives.changes.pipe(startWith(this.idDirectives))\n ).subscribe((items: QueryList<IPendoDirective>) =>\n items.forEach(item => {\n if (item !== this) {\n item.parent = this;\n }\n })\n )\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.pendoSection && !changes.pendoSection.firstChange) {\n this.allIdDirectives.forEach(i => (i.parent = i.parent));\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'lib-ngx-pendo',\n template: `\n <p>\n ngx-pendo works!\n </p>\n `,\n styles: []\n})\nexport class NgxPendoComponent {\n constructor() {}\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\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 { NgxPendoComponent } from './ngx-pendo.component';\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 declarations: [NgxPendoComponent, NgxPendoIdDirective, NgxPendoSectionDirective],\n imports: [],\n exports: [NgxPendoComponent, 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 NGX_PENDO_INITIALIZER_PROVIDER\n ]\n };\n }\n\n static forChild(): ModuleWithProviders<NgxPendoModule> {\n return {\n ngModule: NgxPendoModule\n };\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.component';\nexport * from './lib/ngx-pendo.injectors';\nexport * from './lib/ngx-pendo.interfaces';\nexport * from './lib/ngx-pendo.module';\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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"}
@@ -1,5 +1,5 @@
1
- import { InjectionToken, Provider } from '@angular/core';
1
+ import { Provider } from '@angular/core';
2
2
  import { IPendoSettings } from './ngx-pendo.interfaces';
3
- export declare const NGX_PENDO_SETTINGS_TOKEN: InjectionToken<IPendoSettings>;
3
+ import { PendoWindow } from './ngx-pendo.types';
4
4
  export declare const NGX_PENDO_INITIALIZER_PROVIDER: Provider;
5
- export declare function pendoInitializer($settings: IPendoSettings): () => Promise<void>;
5
+ export declare function pendoInitializer($settings: IPendoSettings, window: PendoWindow): () => Promise<void>;
@@ -3,6 +3,10 @@ export interface IPendoSettings {
3
3
  pendoScriptOrigin?: string;
4
4
  pendoIdFormatter?: (pendoId: string) => string;
5
5
  }
6
+ export interface IPendoDirective {
7
+ inherit: boolean;
8
+ parent?: IPendoDirective;
9
+ }
6
10
  export interface IVisitor {
7
11
  id: string;
8
12
  [key: string]: string;
@@ -11,7 +15,102 @@ export interface IAccount {
11
15
  id: string;
12
16
  [key: string]: string;
13
17
  }
14
- export interface IPendoDirective {
15
- inherit: boolean;
16
- parent?: IPendoDirective;
18
+ export interface IPendoOptions {
19
+ visitor?: IVisitor;
20
+ account?: IAccount;
21
+ additionalApiKeys?: string[];
22
+ annotateUrl?: Function;
23
+ apiKey?: string;
24
+ appAutoOrdering?: string[];
25
+ autoFrameInstall?: boolean;
26
+ contentHost?: string;
27
+ cookieDomain?: string;
28
+ dataHost?: string;
29
+ disableCookies?: boolean;
30
+ disableFeedback?: boolean;
31
+ disablePendo?: boolean;
32
+ disablePersistence?: boolean;
33
+ frameIdentitySync?: boolean;
34
+ ignoreHashRouting?: boolean;
35
+ initializeImmediately?: boolean;
36
+ observeShadowRoots?: boolean;
37
+ leaderKey?: string[];
38
+ localStorageOnly?: boolean;
39
+ preferBroadcastChannel?: boolean;
40
+ preferMutationObserver?: boolean;
41
+ preventUnloadListener?: boolean;
42
+ queryStringWhitelist?: string[] | Function;
43
+ sanitizeUrl?: Function;
44
+ selfHostedAgentUrl?: string;
45
+ sendEventsWithPostOnly?: boolean;
46
+ allowedText?: string[];
47
+ analytics?: {
48
+ excludeEvents?: string[];
49
+ };
50
+ enableDebugEvents?: boolean;
51
+ eventPropertyMatchParents?: boolean;
52
+ excludeAllText?: boolean;
53
+ excludeNonGuideAnalytics?: boolean;
54
+ syntheticClicks?: {
55
+ elementRemoval?: boolean;
56
+ targetChanged?: boolean;
57
+ };
58
+ disableGlobalCSS?: boolean;
59
+ disableGuidePseudoStyles?: boolean;
60
+ disablePrefetch?: boolean;
61
+ enableDesignerKeyboardShortcut?: boolean;
62
+ enableGuideTimeout?: boolean;
63
+ guideSeenTimeoutLength?: number;
64
+ guideValidation?: boolean;
65
+ guides?: {
66
+ attachPoint?: string | Function;
67
+ delay?: boolean;
68
+ disabled?: boolean;
69
+ globalScripts?: any[];
70
+ timeout?: number;
71
+ tooltip?: {
72
+ arrowSize?: number;
73
+ };
74
+ };
75
+ preventCodeInjection?: boolean;
76
+ }
77
+ export interface ISerializedMetadata {
78
+ }
79
+ export interface IPendo {
80
+ additionalApiKeys: string[];
81
+ apiKey: string;
82
+ getVersion: () => string;
83
+ initialize: (options: IPendoOptions) => void;
84
+ isReady: () => boolean;
85
+ teardown: () => void;
86
+ hideLauncher: () => void;
87
+ removeLauncher: () => void;
88
+ showLauncher: () => void;
89
+ toggleLauncher: () => void;
90
+ addDebuggingFunctions: () => void;
91
+ disableDebugging: () => void;
92
+ disableLogging: () => void;
93
+ enableDebugging: () => void;
94
+ enableLogging: () => void;
95
+ isDebuggingEnabled: () => void;
96
+ logPublic: () => void;
97
+ clearSession: () => void;
98
+ generate_unique_id: (prefix?: string) => string;
99
+ getAccountId: () => string | null;
100
+ get_account_id: () => string | null;
101
+ getSerializedMetadata: () => ISerializedMetadata;
102
+ getVisitorId: () => string;
103
+ get_visitor_id: () => string;
104
+ identify: (options: Pick<IPendoOptions, 'visitor' | 'account'> | string, accountId?: string) => void;
105
+ isAnonymousVisitor: (visitorId?: string) => boolean;
106
+ set_account_id: (newAccountId?: string) => void;
107
+ set_visitor_id: (newVisitorId?: string) => void;
108
+ updateOptions: (options: IPendoOptions) => void;
109
+ url: {
110
+ get: () => string;
111
+ };
112
+ normalizedUrl: string;
113
+ getCurrentUrl: () => string;
114
+ getNormalizedUrl: () => string;
115
+ pageLoad: (url: string) => void;
17
116
  }
@@ -1,26 +1,54 @@
1
- import { IAccount, IVisitor, IPendoSettings } from './ngx-pendo.interfaces';
1
+ import { IAccount, IPendo, IPendoOptions, IPendoSettings, IVisitor } from './ngx-pendo.interfaces';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class NgxPendoService {
4
+ private pendo;
4
5
  private pendoIdFormatter;
5
6
  /**
6
7
  * Constructor
7
8
  *
8
9
  * @param settings IPendoSettings
9
10
  */
10
- constructor(settings: IPendoSettings);
11
+ constructor(settings: IPendoSettings, pendo: IPendo);
11
12
  /**
12
13
  * Completely re-initialize the Agent with new options
13
14
  *
14
- * @param visitor IVisitor
15
+ * @param optionsOrVisitor IPendoOptions | IVisitor
15
16
  * @param account IAccount
16
17
  */
18
+ initialize(options: IPendoOptions): void;
17
19
  initialize(visitor: IVisitor, account?: IAccount): void;
20
+ /**
21
+ * Send an identify event and a meta event.
22
+ *
23
+ * @param visitor IVisitor | string
24
+ * @param account IAccount | string
25
+ */
26
+ identify(visitor: string, account?: string): void;
27
+ identify(visitor: IVisitor, account?: IAccount): void;
28
+ /**
29
+ * Updates metadata object for the Pendo agent.
30
+ *
31
+ * @param options IPendoOptions
32
+ */
33
+ updateOptions(options: IPendoOptions): void;
18
34
  /**
19
35
  * Format Pendo
20
36
  *
21
37
  * @param ids string[]
22
38
  */
23
39
  formatPendoId(...ids: string[]): string;
40
+ /**
41
+ * Shuts down the agent and cleans up all timers and listeners.
42
+ */
43
+ teardown(): void;
44
+ /**
45
+ * Loads Pendo Debugger and extends the global pendo object with additional functionality for debugging purposes.
46
+ */
47
+ enableDebugging(): void;
48
+ /**
49
+ * Removes Pendo Debugger extension.
50
+ */
51
+ disableDebugging(): void;
24
52
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxPendoService, never>;
25
53
  static ɵprov: i0.ɵɵInjectableDeclaration<NgxPendoService>;
26
54
  }
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { PendoWindow } from './ngx-pendo.types';
3
+ import { IPendo, IPendoSettings } from './ngx-pendo.interfaces';
4
+ export declare const NGX_PENDO_SETTINGS_TOKEN: InjectionToken<IPendoSettings>;
5
+ export declare const NGX_PENDO_WINDOW: InjectionToken<PendoWindow>;
6
+ export declare const NGX_PENDO_CONTEXT: InjectionToken<IPendo>;
@@ -0,0 +1,4 @@
1
+ import { IPendo } from './ngx-pendo.interfaces';
2
+ export type PendoWindow = Window & {
3
+ pendo?: IPendo;
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-pendo",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "description": "A simple wrapper to load Pendo by angular way",
5
5
  "contributors": [
6
6
  {
package/public-api.d.ts CHANGED
@@ -5,3 +5,5 @@ export * from './lib/ngx-pendo.component';
5
5
  export * from './lib/ngx-pendo.injectors';
6
6
  export * from './lib/ngx-pendo.interfaces';
7
7
  export * from './lib/ngx-pendo.module';
8
+ export * from './lib/ngx-pendo.tokens';
9
+ export * from './lib/ngx-pendo.types';