ngx-pendo 1.8.0 → 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/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} +0 -0
- package/esm2020/lib/ngx-pendo.module.mjs +54 -0
- package/{esm2015/lib/ngx-pendo.service.js → esm2020/lib/ngx-pendo.service.mjs} +10 -9
- 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 +3 -0
- package/lib/ngx-pendo-section.directive.d.ts +3 -0
- 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 +21 -9
- package/schematics/ng-add/index.js +5 -5
- package/schematics/ng-add/index.js.map +1 -1
- package/bundles/ngx-pendo.umd.js +0 -610
- package/bundles/ngx-pendo.umd.js.map +0 -1
- package/esm2015/lib/ngx-pendo-id.directive.js +0 -47
- 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 -45
- package/esm2015/lib/ngx-pendo.module.js +0 -45
- package/fesm2015/ngx-pendo.js +0 -235
- package/fesm2015/ngx-pendo.js.map +0 -1
- package/ngx-pendo.metadata.json +0 -1
|
@@ -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=
|
|
File without changes
|
|
@@ -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=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable, Inject } from '@angular/core';
|
|
2
2
|
import { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.injectors';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
const DEFAULT_PENDO_ID_FORMATTER = pendoId => pendoId;
|
|
4
|
-
const ɵ0 = DEFAULT_PENDO_ID_FORMATTER;
|
|
5
5
|
export class NgxPendoService {
|
|
6
6
|
/**
|
|
7
7
|
* Constructor
|
|
@@ -29,11 +29,12 @@ export class NgxPendoService {
|
|
|
29
29
|
return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter(id)) : ids).join('.');
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
NgxPendoService
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
@@ -0,0 +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, OnInit } 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 implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\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":[],"mappings":"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"}
|