ngx-pendo 1.5.1 → 1.9.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 +32 -0
- package/esm2020/lib/ngx-pendo-id.directive.mjs +55 -0
- package/esm2020/lib/ngx-pendo-section.directive.mjs +62 -0
- package/esm2020/lib/ngx-pendo.component.mjs +27 -0
- package/esm2020/lib/ngx-pendo.injectors.mjs +44 -0
- package/{esm2015/lib/ngx-pendo.interfaces.js → esm2020/lib/ngx-pendo.interfaces.mjs} +1 -0
- package/esm2020/lib/ngx-pendo.module.mjs +54 -0
- package/esm2020/lib/ngx-pendo.service.mjs +40 -0
- package/{esm2015/ngx-pendo.js → esm2020/ngx-pendo.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/ngx-pendo.mjs +278 -0
- package/fesm2015/ngx-pendo.mjs.map +1 -0
- package/fesm2020/ngx-pendo.mjs +275 -0
- package/fesm2020/ngx-pendo.mjs.map +1 -0
- package/lib/ngx-pendo-id.directive.d.ts +4 -1
- package/lib/ngx-pendo-section.directive.d.ts +4 -1
- package/lib/ngx-pendo.component.d.ts +3 -0
- package/lib/ngx-pendo.module.d.ts +7 -0
- package/lib/ngx-pendo.service.d.ts +3 -0
- package/ngx-pendo.d.ts +1 -0
- package/package.json +23 -10
- package/schematics/collection.json +11 -0
- package/schematics/ng-add/index.d.ts +2 -0
- package/schematics/ng-add/index.js +106 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/index.spec.d.ts +1 -0
- package/schematics/ng-add/index.spec.js +47 -0
- package/schematics/ng-add/index.spec.js.map +1 -0
- package/schematics/ng-add/schema.json +24 -0
- package/CHANGELOG.md +0 -46
- package/bundles/ngx-pendo.umd.js +0 -589
- package/bundles/ngx-pendo.umd.js.map +0 -1
- package/bundles/ngx-pendo.umd.min.js +0 -16
- package/bundles/ngx-pendo.umd.min.js.map +0 -1
- package/esm2015/lib/ngx-pendo-id.directive.js +0 -43
- package/esm2015/lib/ngx-pendo-section.directive.js +0 -45
- package/esm2015/lib/ngx-pendo.component.js +0 -18
- package/esm2015/lib/ngx-pendo.injectors.js +0 -46
- package/esm2015/lib/ngx-pendo.module.js +0 -45
- package/esm2015/lib/ngx-pendo.service.js +0 -36
- package/fesm2015/ngx-pendo.js +0 -230
- package/fesm2015/ngx-pendo.js.map +0 -1
- package/ngx-pendo.metadata.json +0 -1
package/README.md
CHANGED
|
@@ -8,10 +8,42 @@ An easy implementation pendo on angular6+ apps.
|
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
|
+
### npm
|
|
12
|
+
|
|
13
|
+
If you use npm:
|
|
14
|
+
|
|
11
15
|
```
|
|
12
16
|
npm install ngx-pendo
|
|
13
17
|
```
|
|
14
18
|
|
|
19
|
+
### yarn
|
|
20
|
+
|
|
21
|
+
If you use yarn:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
yarn add ngx-pendo
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### schematics
|
|
28
|
+
|
|
29
|
+
Use the Angular CLI's install [schematics](https://angular.io/guide/schematics) to set up [ngx-pendo](https://www.npmjs.com/package/ngx-pendo) by running the following command:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
ng add ngx-pendo
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The `ng add` command will install [ngx-pendo](https://www.npmjs.com/package/ngx-pendo) and ask you the following question:
|
|
36
|
+
|
|
37
|
+
1. Please enter Pendo Api Key: <br/> You must enter Pendo Api Key
|
|
38
|
+
|
|
39
|
+
The `ng add` command will additionally perform the following configurations:
|
|
40
|
+
|
|
41
|
+
* Add `ngx-pendo` to *package.json*
|
|
42
|
+
* Auto import `NgxPendoModule` with *pendoApiKey* into `AppModule`
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
> This feature need angular 11+.
|
|
46
|
+
|
|
15
47
|
## Feedbacks
|
|
16
48
|
|
|
17
49
|
https://github.com/yociduo/ngx-pendo/issues
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Directive, Input, HostBinding } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./ngx-pendo.service";
|
|
4
|
+
export class NgxPendoIdDirective {
|
|
5
|
+
constructor(service) {
|
|
6
|
+
this.service = service;
|
|
7
|
+
this._pendoSections = [];
|
|
8
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
9
|
+
this.inherit = true;
|
|
10
|
+
}
|
|
11
|
+
get pendoId() {
|
|
12
|
+
return this.service.formatPendoId(...this._pendoSections, this._pendoId);
|
|
13
|
+
}
|
|
14
|
+
set pendoId(value) {
|
|
15
|
+
this._pendoId = value;
|
|
16
|
+
}
|
|
17
|
+
get parent() {
|
|
18
|
+
return this._parent;
|
|
19
|
+
}
|
|
20
|
+
set parent(value) {
|
|
21
|
+
this._parent = value;
|
|
22
|
+
setTimeout(() => {
|
|
23
|
+
this._pendoSections = [];
|
|
24
|
+
let cur = this.inherit ? value : null;
|
|
25
|
+
while (cur) {
|
|
26
|
+
this._pendoSections.unshift(cur.pendoSection);
|
|
27
|
+
cur = cur.inherit ? cur.parent : null;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
get disableInherit() {
|
|
32
|
+
return this.inherit ? undefined : true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
NgxPendoIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoIdDirective, deps: [{ token: i1.NgxPendoService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
36
|
+
NgxPendoIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: NgxPendoIdDirective, selector: "[ngx-pendo-id]", inputs: { pendoId: ["ngx-pendo-id", "pendoId"], inherit: ["ngx-pendo-inherit", "inherit"] }, host: { properties: { "attr.data-pendo-id": "this.pendoId", "attr.ngx-pendo-disable-inherit": "this.disableInherit" } }, ngImport: i0 });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoIdDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: '[ngx-pendo-id]'
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.NgxPendoService }]; }, propDecorators: { pendoId: [{
|
|
43
|
+
type: Input,
|
|
44
|
+
args: ['ngx-pendo-id']
|
|
45
|
+
}, {
|
|
46
|
+
type: HostBinding,
|
|
47
|
+
args: ['attr.data-pendo-id']
|
|
48
|
+
}], inherit: [{
|
|
49
|
+
type: Input,
|
|
50
|
+
args: ['ngx-pendo-inherit']
|
|
51
|
+
}], disableInherit: [{
|
|
52
|
+
type: HostBinding,
|
|
53
|
+
args: ['attr.ngx-pendo-disable-inherit']
|
|
54
|
+
}] } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLWlkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby1pZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFROUQsTUFBTSxPQUFPLG1CQUFtQjtJQXdDOUIsWUFBb0IsT0FBd0I7UUFBeEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFyQ3BDLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBYXRDLDJEQUEyRDtRQUUzRCxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBc0JnQyxDQUFDO0lBakNoRCxJQUVJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQU1ELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsS0FBK0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3RDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDOUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pDLENBQUM7O2dIQXRDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO3NHQVVLLE9BQU87c0JBRlYsS0FBSzt1QkFBQyxjQUFjOztzQkFDcEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBVWpDLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxtQkFBbUI7Z0JBbUJ0QixjQUFjO3NCQURqQixXQUFXO3VCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGVuZG9EaXJlY3RpdmUgfSBmcm9tICcuL25neC1wZW5kby5pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5neFBlbmRvU2VydmljZSB9IGZyb20gJy4vbmd4LXBlbmRvLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9uZ3gtcGVuZG8tc2VjdGlvbi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd4LXBlbmRvLWlkXSdcbn0pXG5leHBvcnQgY2xhc3MgTmd4UGVuZG9JZERpcmVjdGl2ZSBpbXBsZW1lbnRzIElQZW5kb0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgX3BhcmVudCE6IE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZTtcblxuICBwcml2YXRlIF9wZW5kb1NlY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgX3BlbmRvSWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KCduZ3gtcGVuZG8taWQnKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1wZW5kby1pZCcpXG4gIGdldCBwZW5kb0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5mb3JtYXRQZW5kb0lkKC4uLnRoaXMuX3BlbmRvU2VjdGlvbnMsIHRoaXMuX3BlbmRvSWQpO1xuICB9XG4gIHNldCBwZW5kb0lkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wZW5kb0lkID0gdmFsdWU7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ25neC1wZW5kby1pbmhlcml0JylcbiAgaW5oZXJpdCA9IHRydWU7XG5cbiAgZ2V0IHBhcmVudCgpOiBOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gIH1cbiAgc2V0IHBhcmVudCh2YWx1ZTogTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlKSB7XG4gICAgdGhpcy5fcGFyZW50ID0gdmFsdWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9wZW5kb1NlY3Rpb25zID0gW107XG4gICAgICBsZXQgY3VyID0gdGhpcy5pbmhlcml0ID8gdmFsdWUgOiBudWxsO1xuICAgICAgd2hpbGUgKGN1cikge1xuICAgICAgICB0aGlzLl9wZW5kb1NlY3Rpb25zLnVuc2hpZnQoY3VyLnBlbmRvU2VjdGlvbik7XG4gICAgICAgIGN1ciA9IGN1ci5pbmhlcml0ID8gY3VyLnBhcmVudCA6IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmd4LXBlbmRvLWRpc2FibGUtaW5oZXJpdCcpXG4gIGdldCBkaXNhYmxlSW5oZXJpdCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5pbmhlcml0ID8gdW5kZWZpbmVkIDogdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogTmd4UGVuZG9TZXJ2aWNlKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Directive, Input, HostBinding, ContentChildren } from '@angular/core';
|
|
2
|
+
import { merge } from 'rxjs';
|
|
3
|
+
import { startWith } from 'rxjs/operators';
|
|
4
|
+
import { NgxPendoIdDirective } from './ngx-pendo-id.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class NgxPendoSectionDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
9
|
+
this.inherit = true;
|
|
10
|
+
this.subscriptions = [];
|
|
11
|
+
}
|
|
12
|
+
get disableInherit() {
|
|
13
|
+
return this.inherit ? undefined : true;
|
|
14
|
+
}
|
|
15
|
+
ngAfterContentInit() {
|
|
16
|
+
// set all child parent
|
|
17
|
+
this.subscriptions.push(merge(this.sectionDirectives.changes.pipe(startWith(this.sectionDirectives)), this.idDirectives.changes.pipe(startWith(this.idDirectives))).subscribe((items) => items.forEach(item => {
|
|
18
|
+
if (item !== this) {
|
|
19
|
+
item.parent = this;
|
|
20
|
+
}
|
|
21
|
+
})));
|
|
22
|
+
}
|
|
23
|
+
ngOnChanges(changes) {
|
|
24
|
+
if (changes.pendoSection && !changes.pendoSection.firstChange) {
|
|
25
|
+
this.allIdDirectives.forEach(i => (i.parent = i.parent));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
ngOnDestroy() {
|
|
29
|
+
this.subscriptions.forEach(s => s.unsubscribe());
|
|
30
|
+
this.subscriptions = [];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
NgxPendoSectionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoSectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
+
NgxPendoSectionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: NgxPendoSectionDirective, selector: "[ngx-pendo-section]", inputs: { pendoSection: ["ngx-pendo-section", "pendoSection"], inherit: ["ngx-pendo-inherit", "inherit"] }, host: { properties: { "attr.ngx-pendo-section": "this.pendoSection", "attr.ngx-pendo-disable-inherit": "this.disableInherit" } }, queries: [{ propertyName: "idDirectives", predicate: NgxPendoIdDirective }, { propertyName: "sectionDirectives", predicate: NgxPendoSectionDirective }, { propertyName: "allIdDirectives", predicate: NgxPendoIdDirective, descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoSectionDirective, decorators: [{
|
|
36
|
+
type: Directive,
|
|
37
|
+
args: [{
|
|
38
|
+
selector: '[ngx-pendo-section]'
|
|
39
|
+
}]
|
|
40
|
+
}], propDecorators: { pendoSection: [{
|
|
41
|
+
type: Input,
|
|
42
|
+
args: ['ngx-pendo-section']
|
|
43
|
+
}, {
|
|
44
|
+
type: HostBinding,
|
|
45
|
+
args: ['attr.ngx-pendo-section']
|
|
46
|
+
}], inherit: [{
|
|
47
|
+
type: Input,
|
|
48
|
+
args: ['ngx-pendo-inherit']
|
|
49
|
+
}], disableInherit: [{
|
|
50
|
+
type: HostBinding,
|
|
51
|
+
args: ['attr.ngx-pendo-disable-inherit']
|
|
52
|
+
}], idDirectives: [{
|
|
53
|
+
type: ContentChildren,
|
|
54
|
+
args: [NgxPendoIdDirective, { descendants: false }]
|
|
55
|
+
}], sectionDirectives: [{
|
|
56
|
+
type: ContentChildren,
|
|
57
|
+
args: [NgxPendoSectionDirective, { descendants: false }]
|
|
58
|
+
}], allIdDirectives: [{
|
|
59
|
+
type: ContentChildren,
|
|
60
|
+
args: [NgxPendoIdDirective, { descendants: true }]
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXBlbmRvL3NyYy9saWIvbmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxlQUFlLEVBTWhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLL0QsTUFBTSxPQUFPLHdCQUF3QjtJQUhyQztRQVFFLDJEQUEyRDtRQUUzRCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBa0JQLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztLQTRCNUM7SUE1Q0MsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQWVELGtCQUFrQjtRQUNoQix1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLEtBQUssQ0FDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFDdEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FDN0QsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFpQyxFQUFFLEVBQUUsQ0FDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDOztxSEFwRFUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isc1VBZ0JsQixtQkFBbUIsb0RBR25CLHdCQUF3QixrREFHeEIsbUJBQW1COzJGQXRCekIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOzhCQUlDLFlBQVk7c0JBRlgsS0FBSzt1QkFBQyxtQkFBbUI7O3NCQUN6QixXQUFXO3VCQUFDLHdCQUF3QjtnQkFLckMsT0FBTztzQkFETixLQUFLO3VCQUFDLG1CQUFtQjtnQkFJdEIsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxnQ0FBZ0M7Z0JBUTdDLFlBQVk7c0JBRFgsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBSTVELGlCQUFpQjtzQkFEaEIsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBSWpFLGVBQWU7c0JBRGQsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBIb3N0QmluZGluZyxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIE9uRGVzdHJveSxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSVBlbmRvRGlyZWN0aXZlIH0gZnJvbSAnLi9uZ3gtcGVuZG8uaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ3hQZW5kb0lkRGlyZWN0aXZlIH0gZnJvbSAnLi9uZ3gtcGVuZG8taWQuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25neC1wZW5kby1zZWN0aW9uXSdcbn0pXG5leHBvcnQgY2xhc3MgTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgSVBlbmRvRGlyZWN0aXZlLCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnbmd4LXBlbmRvLXNlY3Rpb24nKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmd4LXBlbmRvLXNlY3Rpb24nKVxuICBwZW5kb1NlY3Rpb24hOiBzdHJpbmc7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCduZ3gtcGVuZG8taW5oZXJpdCcpXG4gIGluaGVyaXQgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5uZ3gtcGVuZG8tZGlzYWJsZS1pbmhlcml0JylcbiAgZ2V0IGRpc2FibGVJbmhlcml0KCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmluaGVyaXQgPyB1bmRlZmluZWQgOiB0cnVlO1xuICB9XG5cbiAgcGFyZW50ITogTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTmd4UGVuZG9JZERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgaWREaXJlY3RpdmVzITogUXVlcnlMaXN0PE5neFBlbmRvSWREaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KVxuICBzZWN0aW9uRGlyZWN0aXZlcyE6IFF1ZXJ5TGlzdDxOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTmd4UGVuZG9JZERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBhbGxJZERpcmVjdGl2ZXMhOiBRdWVyeUxpc3Q8Tmd4UGVuZG9JZERpcmVjdGl2ZT47XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBzZXQgYWxsIGNoaWxkIHBhcmVudFxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgbWVyZ2UoXG4gICAgICAgIHRoaXMuc2VjdGlvbkRpcmVjdGl2ZXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLnNlY3Rpb25EaXJlY3RpdmVzKSksXG4gICAgICAgIHRoaXMuaWREaXJlY3RpdmVzLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5pZERpcmVjdGl2ZXMpKVxuICAgICAgKS5zdWJzY3JpYmUoKGl0ZW1zOiBRdWVyeUxpc3Q8SVBlbmRvRGlyZWN0aXZlPikgPT5cbiAgICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gdGhpcykge1xuICAgICAgICAgICAgaXRlbS5wYXJlbnQgPSB0aGlzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnBlbmRvU2VjdGlvbiAmJiAhY2hhbmdlcy5wZW5kb1NlY3Rpb24uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuYWxsSWREaXJlY3RpdmVzLmZvckVhY2goaSA9PiAoaS5wYXJlbnQgPSBpLnBhcmVudCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NgxPendoComponent {
|
|
4
|
+
constructor() { }
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
NgxPendoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
NgxPendoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: NgxPendoComponent, selector: "lib-ngx-pendo", ngImport: i0, template: `
|
|
10
|
+
<p>
|
|
11
|
+
ngx-pendo works!
|
|
12
|
+
</p>
|
|
13
|
+
`, isInline: true });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{
|
|
17
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
18
|
+
selector: 'lib-ngx-pendo',
|
|
19
|
+
template: `
|
|
20
|
+
<p>
|
|
21
|
+
ngx-pendo works!
|
|
22
|
+
</p>
|
|
23
|
+
`,
|
|
24
|
+
styles: []
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return []; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7OEdBTFUsaUJBQWlCO2tHQUFqQixpQkFBaUIscURBUGxCOzs7O0dBSVQ7MkZBR1UsaUJBQWlCO2tCQVY3QixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELE1BQU0sRUFBRSxFQUFFO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGliLW5neC1wZW5kbycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICBuZ3gtcGVuZG8gd29ya3MhXG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE5neFBlbmRvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { APP_INITIALIZER, InjectionToken, isDevMode } from '@angular/core';
|
|
2
|
+
import { interval } from 'rxjs';
|
|
3
|
+
export const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken('ngx-pendo-settings', {
|
|
4
|
+
factory: () => ({ pendoApiKey: '' }),
|
|
5
|
+
});
|
|
6
|
+
const DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';
|
|
7
|
+
export const NGX_PENDO_INITIALIZER_PROVIDER = {
|
|
8
|
+
provide: APP_INITIALIZER,
|
|
9
|
+
multi: true,
|
|
10
|
+
useFactory: pendoInitializer,
|
|
11
|
+
deps: [
|
|
12
|
+
NGX_PENDO_SETTINGS_TOKEN,
|
|
13
|
+
],
|
|
14
|
+
};
|
|
15
|
+
export function pendoInitializer($settings) {
|
|
16
|
+
return async () => {
|
|
17
|
+
if (!$settings.pendoApiKey) {
|
|
18
|
+
if (isDevMode()) {
|
|
19
|
+
console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
await new Promise((resolve, reject) => {
|
|
24
|
+
const script = document.createElement('script');
|
|
25
|
+
script.async = true;
|
|
26
|
+
script.src = `${$settings.pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${$settings.pendoApiKey}/pendo.js`;
|
|
27
|
+
document.head.appendChild(script);
|
|
28
|
+
script.onerror = async () => {
|
|
29
|
+
// The script may have been blocked by an ad blocker
|
|
30
|
+
resolve();
|
|
31
|
+
};
|
|
32
|
+
script.onload = async () => {
|
|
33
|
+
// when enableDebugging should load extra js
|
|
34
|
+
const sub = interval(100).subscribe(() => {
|
|
35
|
+
if (pendo) {
|
|
36
|
+
sub.unsubscribe();
|
|
37
|
+
resolve();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmluamVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby5pbmplY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQWlCLG9CQUFvQixFQUFFO0lBQy9GLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO0NBQ3JDLENBQUMsQ0FBQztBQUVILE1BQU0sMkJBQTJCLEdBQUcsc0JBQXNCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQWE7SUFDdEQsT0FBTyxFQUFFLGVBQWU7SUFDeEIsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsZ0JBQWdCO0lBQzVCLElBQUksRUFBRTtRQUNKLHdCQUF3QjtLQUN6QjtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBeUI7SUFDeEQsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtZQUMxQixJQUFJLFNBQVMsRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMscUZBQXFGLENBQUMsQ0FBQzthQUN0RztZQUVELE9BQU87U0FDUjtRQUVELE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixJQUFJLDJCQUEyQixpQkFBaUIsU0FBUyxDQUFDLFdBQVcsV0FBVyxDQUFDO1lBQzVILFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7Z0JBQzFCLG9EQUFvRDtnQkFDcEQsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUN6Qiw0Q0FBNEM7Z0JBQzVDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUN2QyxJQUFJLEtBQUssRUFBRTt3QkFDVCxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ2xCLE9BQU8sRUFBRSxDQUFDO3FCQUNYO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElQZW5kb1NldHRpbmdzIH0gZnJvbSAnLi9uZ3gtcGVuZG8uaW50ZXJmYWNlcyc7XG5cbmRlY2xhcmUgdmFyIHBlbmRvOiBhbnk7XG5cbmV4cG9ydCBjb25zdCBOR1hfUEVORE9fU0VUVElOR1NfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlbmRvU2V0dGluZ3M+KCduZ3gtcGVuZG8tc2V0dGluZ3MnLCB7XG4gIGZhY3Rvcnk6ICgpID0+ICh7IHBlbmRvQXBpS2V5OiAnJyB9KSxcbn0pO1xuXG5jb25zdCBERUZBVUxUX1BFTkRPX1NDUklQVF9PUklHSU4gPSAnaHR0cHM6Ly9jZG4ucGVuZG8uaW8nO1xuXG5leHBvcnQgY29uc3QgTkdYX1BFTkRPX0lOSVRJQUxJWkVSX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRmFjdG9yeTogcGVuZG9Jbml0aWFsaXplcixcbiAgZGVwczogW1xuICAgIE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTixcbiAgXSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwZW5kb0luaXRpYWxpemVyKCRzZXR0aW5nczogSVBlbmRvU2V0dGluZ3MpOiAoKSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICBpZiAoISRzZXR0aW5ncy5wZW5kb0FwaUtleSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0VtcHR5IGFwaSBrZXkgZm9yIFBlbmRvLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBvbmUgd2hlbiBpbml0aWFsaXppbmcgTmd4UGVuZG9Nb2R1bGUuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICBzY3JpcHQuc3JjID0gYCR7JHNldHRpbmdzLnBlbmRvU2NyaXB0T3JpZ2luIHx8IERFRkFVTFRfUEVORE9fU0NSSVBUX09SSUdJTn0vYWdlbnQvc3RhdGljLyR7JHNldHRpbmdzLnBlbmRvQXBpS2V5fS9wZW5kby5qc2A7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICBzY3JpcHQub25lcnJvciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gVGhlIHNjcmlwdCBtYXkgaGF2ZSBiZWVuIGJsb2NrZWQgYnkgYW4gYWQgYmxvY2tlclxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gd2hlbiBlbmFibGVEZWJ1Z2dpbmcgc2hvdWxkIGxvYWQgZXh0cmEganNcbiAgICAgICAgY29uc3Qgc3ViID0gaW50ZXJ2YWwoMTAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmIChwZW5kbykge1xuICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export {};
|
|
1
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGVuZG9TZXR0aW5ncyB7XG4gIHBlbmRvQXBpS2V5OiBzdHJpbmc7XG4gIHBlbmRvU2NyaXB0T3JpZ2luPzogc3RyaW5nO1xuICBwZW5kb0lkRm9ybWF0dGVyPzogKHBlbmRvSWQ6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWaXNpdG9yIHtcbiAgaWQ6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZW5kb0RpcmVjdGl2ZSB7XG4gIGluaGVyaXQ6IGJvb2xlYW47XG4gIHBhcmVudD86IElQZW5kb0RpcmVjdGl2ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { NgxPendoComponent } from './ngx-pendo.component';
|
|
3
|
+
import { NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';
|
|
4
|
+
import { NgxPendoIdDirective } from './ngx-pendo-id.directive';
|
|
5
|
+
import { NgxPendoSectionDirective } from './ngx-pendo-section.directive';
|
|
6
|
+
import { NgxPendoService } from './ngx-pendo.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class NgxPendoModule {
|
|
9
|
+
static forRoot(settings) {
|
|
10
|
+
return {
|
|
11
|
+
ngModule: NgxPendoModule,
|
|
12
|
+
providers: [
|
|
13
|
+
{
|
|
14
|
+
provide: NGX_PENDO_SETTINGS_TOKEN,
|
|
15
|
+
useValue: settings
|
|
16
|
+
},
|
|
17
|
+
NGX_PENDO_INITIALIZER_PROVIDER,
|
|
18
|
+
NgxPendoService,
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
static forChild() {
|
|
23
|
+
return {
|
|
24
|
+
ngModule: NgxPendoModule,
|
|
25
|
+
providers: [
|
|
26
|
+
NgxPendoService,
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
NgxPendoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
32
|
+
NgxPendoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, declarations: [NgxPendoComponent,
|
|
33
|
+
NgxPendoIdDirective,
|
|
34
|
+
NgxPendoSectionDirective], exports: [NgxPendoComponent,
|
|
35
|
+
NgxPendoIdDirective,
|
|
36
|
+
NgxPendoSectionDirective] });
|
|
37
|
+
NgxPendoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, imports: [[]] });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, decorators: [{
|
|
39
|
+
type: NgModule,
|
|
40
|
+
args: [{
|
|
41
|
+
declarations: [
|
|
42
|
+
NgxPendoComponent,
|
|
43
|
+
NgxPendoIdDirective,
|
|
44
|
+
NgxPendoSectionDirective,
|
|
45
|
+
],
|
|
46
|
+
imports: [],
|
|
47
|
+
exports: [
|
|
48
|
+
NgxPendoComponent,
|
|
49
|
+
NgxPendoIdDirective,
|
|
50
|
+
NgxPendoSectionDirective,
|
|
51
|
+
],
|
|
52
|
+
}]
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWV0RCxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQXdCO1FBQ3JDLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtvQkFDakMsUUFBUSxFQUFFLFFBQVE7aUJBQ25CO2dCQUNELDhCQUE4QjtnQkFDOUIsZUFBZTthQUNoQjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFO2dCQUNULGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MkdBdEJVLGNBQWM7NEdBQWQsY0FBYyxpQkFYdkIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQix3QkFBd0IsYUFJeEIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQix3QkFBd0I7NEdBR2YsY0FBYyxZQVBoQixFQUFFOzJGQU9BLGNBQWM7a0JBYjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hQZW5kb0NvbXBvbmVudCB9IGZyb20gJy4vbmd4LXBlbmRvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOR1hfUEVORE9fU0VUVElOR1NfVE9LRU4sIE5HWF9QRU5ET19JTklUSUFMSVpFUl9QUk9WSURFUiB9IGZyb20gJy4vbmd4LXBlbmRvLmluamVjdG9ycyc7XG5pbXBvcnQgeyBOZ3hQZW5kb0lkRGlyZWN0aXZlIH0gZnJvbSAnLi9uZ3gtcGVuZG8taWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElQZW5kb1NldHRpbmdzIH0gZnJvbSAnLi9uZ3gtcGVuZG8uaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ3hQZW5kb1NlcnZpY2UgfSBmcm9tICcuL25neC1wZW5kby5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmd4UGVuZG9Db21wb25lbnQsXG4gICAgTmd4UGVuZG9JZERpcmVjdGl2ZSxcbiAgICBOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXG4gICAgTmd4UGVuZG9Db21wb25lbnQsXG4gICAgTmd4UGVuZG9JZERpcmVjdGl2ZSxcbiAgICBOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5neFBlbmRvTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qoc2V0dGluZ3M6IElQZW5kb1NldHRpbmdzKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hQZW5kb01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4UGVuZG9Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogc2V0dGluZ3NcbiAgICAgICAgfSxcbiAgICAgICAgTkdYX1BFTkRPX0lOSVRJQUxJWkVSX1BST1ZJREVSLFxuICAgICAgICBOZ3hQZW5kb1NlcnZpY2UsXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hQZW5kb01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4UGVuZG9Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd4UGVuZG9TZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.injectors';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
const DEFAULT_PENDO_ID_FORMATTER = pendoId => pendoId;
|
|
5
|
+
export class NgxPendoService {
|
|
6
|
+
/**
|
|
7
|
+
* Constructor
|
|
8
|
+
*
|
|
9
|
+
* @param settings IPendoSettings
|
|
10
|
+
*/
|
|
11
|
+
constructor(settings) {
|
|
12
|
+
this.pendoIdFormatter = settings.pendoIdFormatter || DEFAULT_PENDO_ID_FORMATTER;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Completely re-initialize the Agent with new options
|
|
16
|
+
*
|
|
17
|
+
* @param visitor IVisitor
|
|
18
|
+
* @param account IAccount
|
|
19
|
+
*/
|
|
20
|
+
initialize(visitor, account) {
|
|
21
|
+
pendo.initialize({ visitor, account });
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Format Pendo
|
|
25
|
+
*
|
|
26
|
+
* @param ids string[]
|
|
27
|
+
*/
|
|
28
|
+
formatPendoId(...ids) {
|
|
29
|
+
return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter(id)) : ids).join('.');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
NgxPendoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
NgxPendoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoService });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoService, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
37
|
+
type: Inject,
|
|
38
|
+
args: [NGX_PENDO_SETTINGS_TOKEN]
|
|
39
|
+
}] }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLakUsTUFBTSwwQkFBMEIsR0FBZ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7QUFHbkYsTUFBTSxPQUFPLGVBQWU7SUFJMUI7Ozs7T0FJRztJQUNILFlBQThDLFFBQXdCO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLElBQUksMEJBQTBCLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWlCLEVBQUUsT0FBa0I7UUFDOUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLEdBQUcsR0FBYTtRQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RixDQUFDOzs0R0E5QlUsZUFBZSxrQkFTTix3QkFBd0I7Z0hBVGpDLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBVUksTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWF9QRU5ET19TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4vbmd4LXBlbmRvLmluamVjdG9ycyc7XG5pbXBvcnQgeyBJQWNjb3VudCwgSVZpc2l0b3IsIElQZW5kb1NldHRpbmdzIH0gZnJvbSAnLi9uZ3gtcGVuZG8uaW50ZXJmYWNlcyc7XG5cbmRlY2xhcmUgdmFyIHBlbmRvOiBhbnk7XG5cbmNvbnN0IERFRkFVTFRfUEVORE9fSURfRk9STUFUVEVSOiAocGVuZG9JZDogc3RyaW5nKSA9PiBzdHJpbmcgPSBwZW5kb0lkID0+IHBlbmRvSWQ7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hQZW5kb1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgcGVuZG9JZEZvcm1hdHRlcjogKHBlbmRvSWQ6IHN0cmluZykgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3MgSVBlbmRvU2V0dGluZ3NcbiAgICovXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdYX1BFTkRPX1NFVFRJTkdTX1RPS0VOKSBzZXR0aW5nczogSVBlbmRvU2V0dGluZ3MpIHtcbiAgICB0aGlzLnBlbmRvSWRGb3JtYXR0ZXIgPSBzZXR0aW5ncy5wZW5kb0lkRm9ybWF0dGVyIHx8IERFRkFVTFRfUEVORE9fSURfRk9STUFUVEVSO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlbHkgcmUtaW5pdGlhbGl6ZSB0aGUgQWdlbnQgd2l0aCBuZXcgb3B0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0gdmlzaXRvciBJVmlzaXRvclxuICAgKiBAcGFyYW0gYWNjb3VudCBJQWNjb3VudFxuICAgKi9cbiAgaW5pdGlhbGl6ZSh2aXNpdG9yOiBJVmlzaXRvciwgYWNjb3VudD86IElBY2NvdW50KTogdm9pZCB7XG4gICAgcGVuZG8uaW5pdGlhbGl6ZSh7IHZpc2l0b3IsIGFjY291bnQgfSk7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IFBlbmRvXG4gICAqXG4gICAqIEBwYXJhbSBpZHMgc3RyaW5nW11cbiAgICovXG4gIGZvcm1hdFBlbmRvSWQoLi4uaWRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLnBlbmRvSWRGb3JtYXR0ZXIgPyBpZHMubWFwKGlkID0+IHRoaXMucGVuZG9JZEZvcm1hdHRlcihpZCkpIDogaWRzKS5qb2luKCcuJyk7XG4gIH1cblxufVxuIl19
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,278 @@
|
|
|
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 { __awaiter } from 'tslib';
|
|
4
|
+
import { interval, merge } from 'rxjs';
|
|
5
|
+
import { startWith } from 'rxjs/operators';
|
|
6
|
+
|
|
7
|
+
const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken('ngx-pendo-settings', {
|
|
8
|
+
factory: () => ({ pendoApiKey: '' }),
|
|
9
|
+
});
|
|
10
|
+
const DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';
|
|
11
|
+
const NGX_PENDO_INITIALIZER_PROVIDER = {
|
|
12
|
+
provide: APP_INITIALIZER,
|
|
13
|
+
multi: true,
|
|
14
|
+
useFactory: pendoInitializer,
|
|
15
|
+
deps: [
|
|
16
|
+
NGX_PENDO_SETTINGS_TOKEN,
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
function pendoInitializer($settings) {
|
|
20
|
+
return () => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
if (!$settings.pendoApiKey) {
|
|
22
|
+
if (isDevMode()) {
|
|
23
|
+
console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
yield new Promise((resolve, reject) => {
|
|
28
|
+
const script = document.createElement('script');
|
|
29
|
+
script.async = true;
|
|
30
|
+
script.src = `${$settings.pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${$settings.pendoApiKey}/pendo.js`;
|
|
31
|
+
document.head.appendChild(script);
|
|
32
|
+
script.onerror = () => __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
// The script may have been blocked by an ad blocker
|
|
34
|
+
resolve();
|
|
35
|
+
});
|
|
36
|
+
script.onload = () => __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
// when enableDebugging should load extra js
|
|
38
|
+
const sub = interval(100).subscribe(() => {
|
|
39
|
+
if (pendo) {
|
|
40
|
+
sub.unsubscribe();
|
|
41
|
+
resolve();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const DEFAULT_PENDO_ID_FORMATTER = pendoId => pendoId;
|
|
50
|
+
class NgxPendoService {
|
|
51
|
+
/**
|
|
52
|
+
* Constructor
|
|
53
|
+
*
|
|
54
|
+
* @param settings IPendoSettings
|
|
55
|
+
*/
|
|
56
|
+
constructor(settings) {
|
|
57
|
+
this.pendoIdFormatter = settings.pendoIdFormatter || DEFAULT_PENDO_ID_FORMATTER;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Completely re-initialize the Agent with new options
|
|
61
|
+
*
|
|
62
|
+
* @param visitor IVisitor
|
|
63
|
+
* @param account IAccount
|
|
64
|
+
*/
|
|
65
|
+
initialize(visitor, account) {
|
|
66
|
+
pendo.initialize({ visitor, account });
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Format Pendo
|
|
70
|
+
*
|
|
71
|
+
* @param ids string[]
|
|
72
|
+
*/
|
|
73
|
+
formatPendoId(...ids) {
|
|
74
|
+
return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter(id)) : ids).join('.');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
NgxPendoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
+
NgxPendoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoService });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoService, decorators: [{
|
|
80
|
+
type: Injectable
|
|
81
|
+
}], ctorParameters: function () {
|
|
82
|
+
return [{ type: undefined, decorators: [{
|
|
83
|
+
type: Inject,
|
|
84
|
+
args: [NGX_PENDO_SETTINGS_TOKEN]
|
|
85
|
+
}] }];
|
|
86
|
+
} });
|
|
87
|
+
|
|
88
|
+
class NgxPendoIdDirective {
|
|
89
|
+
constructor(service) {
|
|
90
|
+
this.service = service;
|
|
91
|
+
this._pendoSections = [];
|
|
92
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
93
|
+
this.inherit = true;
|
|
94
|
+
}
|
|
95
|
+
get pendoId() {
|
|
96
|
+
return this.service.formatPendoId(...this._pendoSections, this._pendoId);
|
|
97
|
+
}
|
|
98
|
+
set pendoId(value) {
|
|
99
|
+
this._pendoId = value;
|
|
100
|
+
}
|
|
101
|
+
get parent() {
|
|
102
|
+
return this._parent;
|
|
103
|
+
}
|
|
104
|
+
set parent(value) {
|
|
105
|
+
this._parent = value;
|
|
106
|
+
setTimeout(() => {
|
|
107
|
+
this._pendoSections = [];
|
|
108
|
+
let cur = this.inherit ? value : null;
|
|
109
|
+
while (cur) {
|
|
110
|
+
this._pendoSections.unshift(cur.pendoSection);
|
|
111
|
+
cur = cur.inherit ? cur.parent : null;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
get disableInherit() {
|
|
116
|
+
return this.inherit ? undefined : true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
NgxPendoIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoIdDirective, deps: [{ token: NgxPendoService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
120
|
+
NgxPendoIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: NgxPendoIdDirective, selector: "[ngx-pendo-id]", inputs: { pendoId: ["ngx-pendo-id", "pendoId"], inherit: ["ngx-pendo-inherit", "inherit"] }, host: { properties: { "attr.data-pendo-id": "this.pendoId", "attr.ngx-pendo-disable-inherit": "this.disableInherit" } }, ngImport: i0 });
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoIdDirective, decorators: [{
|
|
122
|
+
type: Directive,
|
|
123
|
+
args: [{
|
|
124
|
+
selector: '[ngx-pendo-id]'
|
|
125
|
+
}]
|
|
126
|
+
}], ctorParameters: function () { return [{ type: NgxPendoService }]; }, propDecorators: { pendoId: [{
|
|
127
|
+
type: Input,
|
|
128
|
+
args: ['ngx-pendo-id']
|
|
129
|
+
}, {
|
|
130
|
+
type: HostBinding,
|
|
131
|
+
args: ['attr.data-pendo-id']
|
|
132
|
+
}], inherit: [{
|
|
133
|
+
type: Input,
|
|
134
|
+
args: ['ngx-pendo-inherit']
|
|
135
|
+
}], disableInherit: [{
|
|
136
|
+
type: HostBinding,
|
|
137
|
+
args: ['attr.ngx-pendo-disable-inherit']
|
|
138
|
+
}] } });
|
|
139
|
+
|
|
140
|
+
class NgxPendoSectionDirective {
|
|
141
|
+
constructor() {
|
|
142
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
143
|
+
this.inherit = true;
|
|
144
|
+
this.subscriptions = [];
|
|
145
|
+
}
|
|
146
|
+
get disableInherit() {
|
|
147
|
+
return this.inherit ? undefined : true;
|
|
148
|
+
}
|
|
149
|
+
ngAfterContentInit() {
|
|
150
|
+
// set all child parent
|
|
151
|
+
this.subscriptions.push(merge(this.sectionDirectives.changes.pipe(startWith(this.sectionDirectives)), this.idDirectives.changes.pipe(startWith(this.idDirectives))).subscribe((items) => items.forEach(item => {
|
|
152
|
+
if (item !== this) {
|
|
153
|
+
item.parent = this;
|
|
154
|
+
}
|
|
155
|
+
})));
|
|
156
|
+
}
|
|
157
|
+
ngOnChanges(changes) {
|
|
158
|
+
if (changes.pendoSection && !changes.pendoSection.firstChange) {
|
|
159
|
+
this.allIdDirectives.forEach(i => (i.parent = i.parent));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
ngOnDestroy() {
|
|
163
|
+
this.subscriptions.forEach(s => s.unsubscribe());
|
|
164
|
+
this.subscriptions = [];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
NgxPendoSectionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoSectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
168
|
+
NgxPendoSectionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: NgxPendoSectionDirective, selector: "[ngx-pendo-section]", inputs: { pendoSection: ["ngx-pendo-section", "pendoSection"], inherit: ["ngx-pendo-inherit", "inherit"] }, host: { properties: { "attr.ngx-pendo-section": "this.pendoSection", "attr.ngx-pendo-disable-inherit": "this.disableInherit" } }, queries: [{ propertyName: "idDirectives", predicate: NgxPendoIdDirective }, { propertyName: "sectionDirectives", predicate: NgxPendoSectionDirective }, { propertyName: "allIdDirectives", predicate: NgxPendoIdDirective, descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoSectionDirective, decorators: [{
|
|
170
|
+
type: Directive,
|
|
171
|
+
args: [{
|
|
172
|
+
selector: '[ngx-pendo-section]'
|
|
173
|
+
}]
|
|
174
|
+
}], propDecorators: { pendoSection: [{
|
|
175
|
+
type: Input,
|
|
176
|
+
args: ['ngx-pendo-section']
|
|
177
|
+
}, {
|
|
178
|
+
type: HostBinding,
|
|
179
|
+
args: ['attr.ngx-pendo-section']
|
|
180
|
+
}], inherit: [{
|
|
181
|
+
type: Input,
|
|
182
|
+
args: ['ngx-pendo-inherit']
|
|
183
|
+
}], disableInherit: [{
|
|
184
|
+
type: HostBinding,
|
|
185
|
+
args: ['attr.ngx-pendo-disable-inherit']
|
|
186
|
+
}], idDirectives: [{
|
|
187
|
+
type: ContentChildren,
|
|
188
|
+
args: [NgxPendoIdDirective, { descendants: false }]
|
|
189
|
+
}], sectionDirectives: [{
|
|
190
|
+
type: ContentChildren,
|
|
191
|
+
args: [NgxPendoSectionDirective, { descendants: false }]
|
|
192
|
+
}], allIdDirectives: [{
|
|
193
|
+
type: ContentChildren,
|
|
194
|
+
args: [NgxPendoIdDirective, { descendants: true }]
|
|
195
|
+
}] } });
|
|
196
|
+
|
|
197
|
+
class NgxPendoComponent {
|
|
198
|
+
constructor() { }
|
|
199
|
+
ngOnInit() {
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
NgxPendoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
203
|
+
NgxPendoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: NgxPendoComponent, selector: "lib-ngx-pendo", ngImport: i0, template: `
|
|
204
|
+
<p>
|
|
205
|
+
ngx-pendo works!
|
|
206
|
+
</p>
|
|
207
|
+
`, isInline: true });
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoComponent, decorators: [{
|
|
209
|
+
type: Component,
|
|
210
|
+
args: [{
|
|
211
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
212
|
+
selector: 'lib-ngx-pendo',
|
|
213
|
+
template: `
|
|
214
|
+
<p>
|
|
215
|
+
ngx-pendo works!
|
|
216
|
+
</p>
|
|
217
|
+
`,
|
|
218
|
+
styles: []
|
|
219
|
+
}]
|
|
220
|
+
}], ctorParameters: function () { return []; } });
|
|
221
|
+
|
|
222
|
+
class NgxPendoModule {
|
|
223
|
+
static forRoot(settings) {
|
|
224
|
+
return {
|
|
225
|
+
ngModule: NgxPendoModule,
|
|
226
|
+
providers: [
|
|
227
|
+
{
|
|
228
|
+
provide: NGX_PENDO_SETTINGS_TOKEN,
|
|
229
|
+
useValue: settings
|
|
230
|
+
},
|
|
231
|
+
NGX_PENDO_INITIALIZER_PROVIDER,
|
|
232
|
+
NgxPendoService,
|
|
233
|
+
],
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
static forChild() {
|
|
237
|
+
return {
|
|
238
|
+
ngModule: NgxPendoModule,
|
|
239
|
+
providers: [
|
|
240
|
+
NgxPendoService,
|
|
241
|
+
],
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
NgxPendoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
246
|
+
NgxPendoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, declarations: [NgxPendoComponent,
|
|
247
|
+
NgxPendoIdDirective,
|
|
248
|
+
NgxPendoSectionDirective], exports: [NgxPendoComponent,
|
|
249
|
+
NgxPendoIdDirective,
|
|
250
|
+
NgxPendoSectionDirective] });
|
|
251
|
+
NgxPendoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, imports: [[]] });
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: NgxPendoModule, decorators: [{
|
|
253
|
+
type: NgModule,
|
|
254
|
+
args: [{
|
|
255
|
+
declarations: [
|
|
256
|
+
NgxPendoComponent,
|
|
257
|
+
NgxPendoIdDirective,
|
|
258
|
+
NgxPendoSectionDirective,
|
|
259
|
+
],
|
|
260
|
+
imports: [],
|
|
261
|
+
exports: [
|
|
262
|
+
NgxPendoComponent,
|
|
263
|
+
NgxPendoIdDirective,
|
|
264
|
+
NgxPendoSectionDirective,
|
|
265
|
+
],
|
|
266
|
+
}]
|
|
267
|
+
}] });
|
|
268
|
+
|
|
269
|
+
/*
|
|
270
|
+
* Public API Surface of ngx-pendo
|
|
271
|
+
*/
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Generated bundle index. Do not edit.
|
|
275
|
+
*/
|
|
276
|
+
|
|
277
|
+
export { NGX_PENDO_INITIALIZER_PROVIDER, NGX_PENDO_SETTINGS_TOKEN, NgxPendoComponent, NgxPendoIdDirective, NgxPendoModule, NgxPendoSectionDirective, NgxPendoService, pendoInitializer };
|
|
278
|
+
//# sourceMappingURL=ngx-pendo.mjs.map
|