ngx-pendo 1.14.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,14 +11,15 @@ An easy implementation pendo on angular6+ apps.
11
11
 
12
12
  ### compatibility
13
13
 
14
- Angular | ngx-pendo
15
- ------------- |-------------
16
- 16+ | 1.14.x
17
- 15 | 1.11.x
18
- 14 | 1.10.x
19
- 13 | 1.9.x
20
- 9/10/11/12 | 1.8.x
21
- 6/7/8 | 1.2.x
14
+ | Angular | ngx-pendo |
15
+ | ---------- | --------- |
16
+ | 17+ | 2.0.x |
17
+ | 16 | 1.14.x |
18
+ | 15 | 1.11.x |
19
+ | 14 | 1.10.x |
20
+ | 13 | 1.9.x |
21
+ | 9/10/11/12 | 1.8.x |
22
+ | 6/7/8 | 1.2.x |
22
23
 
23
24
  ### npm
24
25
 
@@ -50,8 +51,8 @@ The `ng add` command will install [ngx-pendo](https://www.npmjs.com/package/ngx-
50
51
 
51
52
  The `ng add` command will additionally perform the following configurations:
52
53
 
53
- * Add `ngx-pendo` to *package.json*
54
- * Auto import `NgxPendoModule` with *pendoApiKey* into `AppModule`
54
+ - Add `ngx-pendo` to _package.json_
55
+ - Auto import `NgxPendoModule` with _pendoApiKey_ into `AppModule`
55
56
 
56
57
  > This feature need angular 9+.
57
58
 
@@ -67,9 +68,7 @@ https://github.com/yociduo/ngx-pendo/issues
67
68
  import { NgxPendoModule } from 'ngx-pendo';
68
69
 
69
70
  @NgModule({
70
- declarations: [
71
- AppComponent
72
- ],
71
+ declarations: [AppComponent],
73
72
  imports: [
74
73
  BrowserModule,
75
74
  NgxPendoModule.forRoot({
@@ -80,7 +79,7 @@ import { NgxPendoModule } from 'ngx-pendo';
80
79
  providers: [],
81
80
  bootstrap: [AppComponent]
82
81
  })
83
- export class AppModule { }
82
+ export class AppModule {}
84
83
  ```
85
84
 
86
85
  #### Using the Standalone API
@@ -98,7 +97,6 @@ bootstrapApplication(AppComponent, {
98
97
  })
99
98
  ]
100
99
  });
101
-
102
100
  ```
103
101
 
104
102
  ## Call Initialization
@@ -1,56 +1,35 @@
1
- import { Directive, Input, HostBinding } from '@angular/core';
1
+ import { Directive, input, computed, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./ngx-pendo.service";
4
4
  export class NgxPendoIdDirective {
5
- get pendoId() {
6
- return this.service.formatPendoId(...this._pendoSections, this._pendoId);
7
- }
8
- set pendoId(value) {
9
- this._pendoId = value;
10
- }
11
- get parent() {
12
- return this._parent;
13
- }
14
- set parent(value) {
15
- this._parent = value;
16
- setTimeout(() => {
17
- this._pendoSections = [];
18
- let cur = this.inherit ? value : null;
5
+ constructor(service) {
6
+ this.service = service;
7
+ this.pendoId = input('', { alias: 'ngx-pendo-id' });
8
+ this.inherit = input(true, { alias: 'ngx-pendo-inherit' });
9
+ this.parent = signal(undefined);
10
+ this.mergedPendoId = computed(() => {
11
+ const pendoSections = [];
12
+ let cur = this.inherit() ? this.parent() : null;
19
13
  while (cur) {
20
- this._pendoSections.unshift(cur.pendoSection);
21
- cur = cur.inherit ? cur.parent : null;
14
+ pendoSections.unshift(cur.pendoSection());
15
+ cur = cur.inherit() ? cur.parent() : null;
22
16
  }
17
+ return this.service.formatPendoId(...pendoSections, this.pendoId());
23
18
  });
19
+ this.disableInherit = computed(() => (this.inherit() ? undefined : true));
24
20
  }
25
- get disableInherit() {
26
- return this.inherit ? undefined : true;
27
- }
28
- constructor(service) {
29
- this.service = service;
30
- this._pendoSections = [];
31
- // eslint-disable-next-line @angular-eslint/no-input-rename
32
- this.inherit = true;
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoIdDirective, deps: [{ token: i1.NgxPendoService }], target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NgxPendoIdDirective, isStandalone: true, 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 }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoIdDirective, deps: [{ token: i1.NgxPendoService }], target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: NgxPendoIdDirective, isStandalone: true, selector: "[ngx-pendo-id]", inputs: { pendoId: { classPropertyName: "pendoId", publicName: "ngx-pendo-id", isSignal: true, isRequired: false, transformFunction: null }, inherit: { classPropertyName: "inherit", publicName: "ngx-pendo-inherit", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-pendo-id": "mergedPendoId()", "attr.ngx-pendo-disable-inherit": "disableInherit()" } }, ngImport: i0 }); }
36
23
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoIdDirective, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoIdDirective, decorators: [{
38
25
  type: Directive,
39
26
  args: [{
40
27
  selector: '[ngx-pendo-id]',
41
- standalone: true
28
+ standalone: true,
29
+ host: {
30
+ '[attr.data-pendo-id]': 'mergedPendoId()',
31
+ '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'
32
+ }
42
33
  }]
43
- }], ctorParameters: () => [{ type: i1.NgxPendoService }], propDecorators: { pendoId: [{
44
- type: Input,
45
- args: ['ngx-pendo-id']
46
- }, {
47
- type: HostBinding,
48
- args: ['attr.data-pendo-id']
49
- }], inherit: [{
50
- type: Input,
51
- args: ['ngx-pendo-inherit']
52
- }], disableInherit: [{
53
- type: HostBinding,
54
- args: ['attr.ngx-pendo-disable-inherit']
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLWlkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby1pZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTOUQsTUFBTSxPQUFPLG1CQUFtQjtJQU85QixJQUVJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQU1ELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsS0FBK0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3RDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM5QyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBb0IsT0FBd0I7UUFBeEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFyQ3BDLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBYXRDLDJEQUEyRDtRQUUzRCxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBc0JnQyxDQUFDOzhHQXhDckMsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO29GQVVLLE9BQU87c0JBRlYsS0FBSzt1QkFBQyxjQUFjOztzQkFDcEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBVWpDLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxtQkFBbUI7Z0JBbUJ0QixjQUFjO3NCQURqQixXQUFXO3VCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGVuZG9EaXJlY3RpdmUgfSBmcm9tICcuL25neC1wZW5kby5pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5neFBlbmRvU2VydmljZSB9IGZyb20gJy4vbmd4LXBlbmRvLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9uZ3gtcGVuZG8tc2VjdGlvbi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd4LXBlbmRvLWlkXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmd4UGVuZG9JZERpcmVjdGl2ZSBpbXBsZW1lbnRzIElQZW5kb0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgX3BhcmVudCE6IE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZTtcblxuICBwcml2YXRlIF9wZW5kb1NlY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgX3BlbmRvSWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KCduZ3gtcGVuZG8taWQnKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1wZW5kby1pZCcpXG4gIGdldCBwZW5kb0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5mb3JtYXRQZW5kb0lkKC4uLnRoaXMuX3BlbmRvU2VjdGlvbnMsIHRoaXMuX3BlbmRvSWQpO1xuICB9XG4gIHNldCBwZW5kb0lkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wZW5kb0lkID0gdmFsdWU7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ25neC1wZW5kby1pbmhlcml0JylcbiAgaW5oZXJpdCA9IHRydWU7XG5cbiAgZ2V0IHBhcmVudCgpOiBOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmUge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gIH1cbiAgc2V0IHBhcmVudCh2YWx1ZTogTmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlKSB7XG4gICAgdGhpcy5fcGFyZW50ID0gdmFsdWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9wZW5kb1NlY3Rpb25zID0gW107XG4gICAgICBsZXQgY3VyID0gdGhpcy5pbmhlcml0ID8gdmFsdWUgOiBudWxsO1xuICAgICAgd2hpbGUgKGN1cikge1xuICAgICAgICB0aGlzLl9wZW5kb1NlY3Rpb25zLnVuc2hpZnQoY3VyLnBlbmRvU2VjdGlvbik7XG4gICAgICAgIGN1ciA9IGN1ci5pbmhlcml0ID8gY3VyLnBhcmVudCA6IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmd4LXBlbmRvLWRpc2FibGUtaW5oZXJpdCcpXG4gIGdldCBkaXNhYmxlSW5oZXJpdCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5pbmhlcml0ID8gdW5kZWZpbmVkIDogdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogTmd4UGVuZG9TZXJ2aWNlKSB7fVxufVxuIl19
34
+ }], ctorParameters: () => [{ type: i1.NgxPendoService }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLWlkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1wZW5kby9zcmMvbGliL25neC1wZW5kby1pZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBYW5FLE1BQU0sT0FBTyxtQkFBbUI7SUFxQjlCLFlBQW9CLE9BQXdCO1FBQXhCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBcEI1QyxZQUFPLEdBQUcsS0FBSyxDQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRXZELFlBQU8sR0FBRyxLQUFLLENBQVUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUUvRCxXQUFNLEdBQUcsTUFBTSxDQUF1QyxTQUFTLENBQUMsQ0FBQztRQUVqRSxrQkFBYSxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBRXpCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDaEQsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDWCxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM1QyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUVILG1CQUFjLEdBQUcsUUFBUSxDQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRTNDLENBQUM7OEdBckJyQyxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFSL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLHNCQUFzQixFQUFFLGlCQUFpQjt3QkFDekMsa0NBQWtDLEVBQUUsa0JBQWtCO3FCQUN2RDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZW5kb0RpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmd4UGVuZG9TZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtcGVuZG8uc2VydmljZSc7XG5pbXBvcnQgeyBOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL25neC1wZW5kby1zZWN0aW9uLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ3gtcGVuZG8taWRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLXBlbmRvLWlkXSc6ICdtZXJnZWRQZW5kb0lkKCknLFxuICAgICdbYXR0ci5uZ3gtcGVuZG8tZGlzYWJsZS1pbmhlcml0XSc6ICdkaXNhYmxlSW5oZXJpdCgpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE5neFBlbmRvSWREaXJlY3RpdmUgaW1wbGVtZW50cyBJUGVuZG9EaXJlY3RpdmUge1xuICBwZW5kb0lkID0gaW5wdXQ8c3RyaW5nPignJywgeyBhbGlhczogJ25neC1wZW5kby1pZCcgfSk7XG5cbiAgaW5oZXJpdCA9IGlucHV0PGJvb2xlYW4+KHRydWUsIHsgYWxpYXM6ICduZ3gtcGVuZG8taW5oZXJpdCcgfSk7XG5cbiAgcGFyZW50ID0gc2lnbmFsPE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBtZXJnZWRQZW5kb0lkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3QgcGVuZG9TZWN0aW9ucyA9IFtdO1xuXG4gICAgbGV0IGN1ciA9IHRoaXMuaW5oZXJpdCgpID8gdGhpcy5wYXJlbnQoKSA6IG51bGw7XG4gICAgd2hpbGUgKGN1cikge1xuICAgICAgcGVuZG9TZWN0aW9ucy51bnNoaWZ0KGN1ci5wZW5kb1NlY3Rpb24oKSk7XG4gICAgICBjdXIgPSBjdXIuaW5oZXJpdCgpID8gY3VyLnBhcmVudCgpIDogbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmZvcm1hdFBlbmRvSWQoLi4ucGVuZG9TZWN0aW9ucywgdGhpcy5wZW5kb0lkKCkpO1xuICB9KTtcblxuICBkaXNhYmxlSW5oZXJpdCA9IGNvbXB1dGVkPGJvb2xlYW4gfCB1bmRlZmluZWQ+KCgpID0+ICh0aGlzLmluaGVyaXQoKSA/IHVuZGVmaW5lZCA6IHRydWUpKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IE5neFBlbmRvU2VydmljZSkge31cbn1cbiJdfQ==
@@ -1,63 +1,34 @@
1
- import { Directive, Input, HostBinding, ContentChildren } from '@angular/core';
2
- import { merge } from 'rxjs';
3
- import { startWith } from 'rxjs/operators';
1
+ import { Directive, input, computed, signal, contentChildren, effect } from '@angular/core';
4
2
  import { NgxPendoIdDirective } from './ngx-pendo-id.directive';
5
3
  import * as i0 from "@angular/core";
6
4
  export class NgxPendoSectionDirective {
7
5
  constructor() {
8
- // eslint-disable-next-line @angular-eslint/no-input-rename
9
- this.inherit = true;
10
- this.subscriptions = [];
6
+ this.pendoSection = input('', { alias: 'ngx-pendo-section' });
7
+ this.inherit = input(true, { alias: 'ngx-pendo-inherit' });
8
+ this.parent = signal(undefined);
9
+ this.idDirectives = contentChildren(NgxPendoIdDirective, { descendants: false });
10
+ this.sectionDirectivs = contentChildren(NgxPendoSectionDirective, { descendants: false });
11
+ this.disableInherit = computed(() => (this.inherit() ? undefined : true));
12
+ effect(() => {
13
+ [...this.idDirectives(), ...this.sectionDirectivs()].forEach(item => {
14
+ if (item !== this) {
15
+ item.parent.set(this);
16
+ }
17
+ });
18
+ }, { allowSignalWrites: true });
11
19
  }
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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoSectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
33
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NgxPendoSectionDirective, isStandalone: true, 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 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoSectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.0.1", type: NgxPendoSectionDirective, isStandalone: true, selector: "[ngx-pendo-section]", inputs: { pendoSection: { classPropertyName: "pendoSection", publicName: "ngx-pendo-section", isSignal: true, isRequired: false, transformFunction: null }, inherit: { classPropertyName: "inherit", publicName: "ngx-pendo-inherit", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-pendo-section": "pendoSection()", "attr.ngx-pendo-disable-inherit": "disableInherit()" } }, queries: [{ propertyName: "idDirectives", predicate: NgxPendoIdDirective, isSignal: true }, { propertyName: "sectionDirectivs", predicate: NgxPendoSectionDirective, isSignal: true }], ngImport: i0 }); }
34
22
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoSectionDirective, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoSectionDirective, decorators: [{
36
24
  type: Directive,
37
25
  args: [{
38
26
  selector: '[ngx-pendo-section]',
39
- standalone: true
27
+ standalone: true,
28
+ host: {
29
+ '[attr.data-pendo-section]': 'pendoSection()',
30
+ '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'
31
+ }
40
32
  }]
41
- }], propDecorators: { pendoSection: [{
42
- type: Input,
43
- args: ['ngx-pendo-section']
44
- }, {
45
- type: HostBinding,
46
- args: ['attr.ngx-pendo-section']
47
- }], inherit: [{
48
- type: Input,
49
- args: ['ngx-pendo-inherit']
50
- }], disableInherit: [{
51
- type: HostBinding,
52
- args: ['attr.ngx-pendo-disable-inherit']
53
- }], idDirectives: [{
54
- type: ContentChildren,
55
- args: [NgxPendoIdDirective, { descendants: false }]
56
- }], sectionDirectives: [{
57
- type: ContentChildren,
58
- args: [NgxPendoSectionDirective, { descendants: false }]
59
- }], allIdDirectives: [{
60
- type: ContentChildren,
61
- args: [NgxPendoIdDirective, { descendants: true }]
62
- }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXBlbmRvL3NyYy9saWIvbmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxlQUFlLEVBTWhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLHdCQUF3QjtJQUpyQztRQVNFLDJEQUEyRDtRQUUzRCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBa0JQLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztLQTRCNUM7SUE1Q0MsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQWVELGtCQUFrQjtRQUNoQix1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLEtBQUssQ0FDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFDdEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FDN0QsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFpQyxFQUFFLEVBQUUsQ0FDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQXBEVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwVkFnQmxCLG1CQUFtQixvREFHbkIsd0JBQXdCLGtEQUd4QixtQkFBbUI7OzJGQXRCekIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFJQyxZQUFZO3NCQUZYLEtBQUs7dUJBQUMsbUJBQW1COztzQkFDekIsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBS3JDLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxtQkFBbUI7Z0JBSXRCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsZ0NBQWdDO2dCQVE3QyxZQUFZO3NCQURYLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUk1RCxpQkFBaUI7c0JBRGhCLGVBQWU7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUlqRSxlQUFlO3NCQURkLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgSG9zdEJpbmRpbmcsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBPbkRlc3Ryb3ksXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElQZW5kb0RpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmd4UGVuZG9JZERpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLWlkLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ3gtcGVuZG8tc2VjdGlvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIElQZW5kb0RpcmVjdGl2ZSwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoJ25neC1wZW5kby1zZWN0aW9uJylcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm5neC1wZW5kby1zZWN0aW9uJylcbiAgcGVuZG9TZWN0aW9uITogc3RyaW5nO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbmd4LXBlbmRvLWluaGVyaXQnKVxuICBpbmhlcml0ID0gdHJ1ZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmd4LXBlbmRvLWRpc2FibGUtaW5oZXJpdCcpXG4gIGdldCBkaXNhYmxlSW5oZXJpdCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5pbmhlcml0ID8gdW5kZWZpbmVkIDogdHJ1ZTtcbiAgfVxuXG4gIHBhcmVudCE6IE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkcmVuKE5neFBlbmRvSWREaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gIGlkRGlyZWN0aXZlcyE6IFF1ZXJ5TGlzdDxOZ3hQZW5kb0lkRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgc2VjdGlvbkRpcmVjdGl2ZXMhOiBRdWVyeUxpc3Q8Tmd4UGVuZG9TZWN0aW9uRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKE5neFBlbmRvSWREaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgYWxsSWREaXJlY3RpdmVzITogUXVlcnlMaXN0PE5neFBlbmRvSWREaXJlY3RpdmU+O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gc2V0IGFsbCBjaGlsZCBwYXJlbnRcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLnNlY3Rpb25EaXJlY3RpdmVzLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5zZWN0aW9uRGlyZWN0aXZlcykpLFxuICAgICAgICB0aGlzLmlkRGlyZWN0aXZlcy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuaWREaXJlY3RpdmVzKSlcbiAgICAgICkuc3Vic2NyaWJlKChpdGVtczogUXVlcnlMaXN0PElQZW5kb0RpcmVjdGl2ZT4pID0+XG4gICAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0gIT09IHRoaXMpIHtcbiAgICAgICAgICAgIGl0ZW0ucGFyZW50ID0gdGhpcztcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncGVuZG9TZWN0aW9uJ10gJiYgIWNoYW5nZXNbJ3BlbmRvU2VjdGlvbiddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmFsbElkRGlyZWN0aXZlcy5mb3JFYWNoKGkgPT4gKGkucGFyZW50ID0gaS5wYXJlbnQpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cbn1cbiJdfQ==
33
+ }], ctorParameters: () => [] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXBlbmRvL3NyYy9saWIvbmd4LXBlbmRvLXNlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFVL0QsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQztRQVpBLGlCQUFZLEdBQUcsS0FBSyxDQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFFakUsWUFBTyxHQUFHLEtBQUssQ0FBVSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELFdBQU0sR0FBRyxNQUFNLENBQXVDLFNBQVMsQ0FBQyxDQUFDO1FBRWpFLGlCQUFZLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFNUUscUJBQWdCLEdBQUcsZUFBZSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFckYsbUJBQWMsR0FBRyxRQUFRLENBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFHeEYsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEUsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7OEdBeEJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLCtnQkFPSixtQkFBbUIsbUVBRWYsd0JBQXdCOzsyRkFUaEQsd0JBQXdCO2tCQVJwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osMkJBQTJCLEVBQUUsZ0JBQWdCO3dCQUM3QyxrQ0FBa0MsRUFBRSxrQkFBa0I7cUJBQ3ZEO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCwgY29udGVudENoaWxkcmVuLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZW5kb0RpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmd4UGVuZG9JZERpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LXBlbmRvLWlkLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ3gtcGVuZG8tc2VjdGlvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmRhdGEtcGVuZG8tc2VjdGlvbl0nOiAncGVuZG9TZWN0aW9uKCknLFxuICAgICdbYXR0ci5uZ3gtcGVuZG8tZGlzYWJsZS1pbmhlcml0XSc6ICdkaXNhYmxlSW5oZXJpdCgpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIElQZW5kb0RpcmVjdGl2ZSB7XG4gIHBlbmRvU2VjdGlvbiA9IGlucHV0PHN0cmluZz4oJycsIHsgYWxpYXM6ICduZ3gtcGVuZG8tc2VjdGlvbicgfSk7XG5cbiAgaW5oZXJpdCA9IGlucHV0PGJvb2xlYW4+KHRydWUsIHsgYWxpYXM6ICduZ3gtcGVuZG8taW5oZXJpdCcgfSk7XG5cbiAgcGFyZW50ID0gc2lnbmFsPE5neFBlbmRvU2VjdGlvbkRpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBpZERpcmVjdGl2ZXMgPSBjb250ZW50Q2hpbGRyZW4oTmd4UGVuZG9JZERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSk7XG5cbiAgc2VjdGlvbkRpcmVjdGl2cyA9IGNvbnRlbnRDaGlsZHJlbihOZ3hQZW5kb1NlY3Rpb25EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pO1xuXG4gIGRpc2FibGVJbmhlcml0ID0gY29tcHV0ZWQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4oKCkgPT4gKHRoaXMuaW5oZXJpdCgpID8gdW5kZWZpbmVkIDogdHJ1ZSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgWy4uLnRoaXMuaWREaXJlY3RpdmVzKCksIC4uLnRoaXMuc2VjdGlvbkRpcmVjdGl2cygpXS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGlmIChpdGVtICE9PSB0aGlzKSB7XG4gICAgICAgICAgICBpdGVtLnBhcmVudC5zZXQodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGVuZG9TZXR0aW5ncyB7XG4gIHBlbmRvQXBpS2V5OiBzdHJpbmc7XG4gIHBlbmRvU2NyaXB0T3JpZ2luPzogc3RyaW5nO1xuICBwZW5kb0lkRm9ybWF0dGVyPzogKHBlbmRvSWQ6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZW5kb0RpcmVjdGl2ZSB7XG4gIGluaGVyaXQ6IGJvb2xlYW47XG4gIHBhcmVudD86IElQZW5kb0RpcmVjdGl2ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlzaXRvciB7XG4gIGlkOiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudCB7XG4gIGlkOiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVuZG9PcHRpb25zIHtcbiAgdmlzaXRvcj86IElWaXNpdG9yO1xuICBhY2NvdW50PzogSUFjY291bnQ7XG4gIC8vIENvcmVcbiAgYWRkaXRpb25hbEFwaUtleXM/OiBzdHJpbmdbXTtcbiAgYW5ub3RhdGVVcmw/OiBGdW5jdGlvbjtcbiAgYXBpS2V5Pzogc3RyaW5nO1xuICBhcHBBdXRvT3JkZXJpbmc/OiBzdHJpbmdbXTtcbiAgYXV0b0ZyYW1lSW5zdGFsbD86IGJvb2xlYW47XG4gIGNvbnRlbnRIb3N0Pzogc3RyaW5nO1xuICBjb29raWVEb21haW4/OiBzdHJpbmc7XG4gIGRhdGFIb3N0Pzogc3RyaW5nO1xuICBkaXNhYmxlQ29va2llcz86IGJvb2xlYW47XG4gIGRpc2FibGVGZWVkYmFjaz86IGJvb2xlYW47XG4gIGRpc2FibGVQZW5kbz86IGJvb2xlYW47XG4gIGRpc2FibGVQZXJzaXN0ZW5jZT86IGJvb2xlYW47XG4gIGZyYW1lSWRlbnRpdHlTeW5jPzogYm9vbGVhbjtcbiAgaWdub3JlSGFzaFJvdXRpbmc/OiBib29sZWFuO1xuICBpbml0aWFsaXplSW1tZWRpYXRlbHk/OiBib29sZWFuO1xuICBvYnNlcnZlU2hhZG93Um9vdHM/OiBib29sZWFuO1xuICBsZWFkZXJLZXk/OiBzdHJpbmdbXTtcbiAgbG9jYWxTdG9yYWdlT25seT86IGJvb2xlYW47XG4gIHByZWZlckJyb2FkY2FzdENoYW5uZWw/OiBib29sZWFuO1xuICBwcmVmZXJNdXRhdGlvbk9ic2VydmVyPzogYm9vbGVhbjtcbiAgcHJldmVudFVubG9hZExpc3RlbmVyPzogYm9vbGVhbjtcbiAgcXVlcnlTdHJpbmdXaGl0ZWxpc3Q/OiBzdHJpbmdbXSB8IEZ1bmN0aW9uO1xuICBzYW5pdGl6ZVVybD86IEZ1bmN0aW9uO1xuICBzZWxmSG9zdGVkQWdlbnRVcmw/OiBzdHJpbmc7XG4gIHNlbmRFdmVudHNXaXRoUG9zdE9ubHk/OiBib29sZWFuO1xuICAvLyBBbmFseXRpY3NcbiAgYWxsb3dlZFRleHQ/OiBzdHJpbmdbXTtcbiAgYW5hbHl0aWNzPzoge1xuICAgIGV4Y2x1ZGVFdmVudHM/OiBzdHJpbmdbXTtcbiAgfTtcbiAgZW5hYmxlRGVidWdFdmVudHM/OiBib29sZWFuO1xuICBldmVudFByb3BlcnR5TWF0Y2hQYXJlbnRzPzogYm9vbGVhbjtcbiAgZXhjbHVkZUFsbFRleHQ/OiBib29sZWFuO1xuICBleGNsdWRlTm9uR3VpZGVBbmFseXRpY3M/OiBib29sZWFuO1xuICBzeW50aGV0aWNDbGlja3M/OiB7XG4gICAgZWxlbWVudFJlbW92YWw/OiBib29sZWFuO1xuICAgIHRhcmdldENoYW5nZWQ/OiBib29sZWFuO1xuICB9O1xuICAvLyBHdWlkZXNcbiAgZGlzYWJsZUdsb2JhbENTUz86IGJvb2xlYW47XG4gIGRpc2FibGVHdWlkZVBzZXVkb1N0eWxlcz86IGJvb2xlYW47XG4gIGRpc2FibGVQcmVmZXRjaD86IGJvb2xlYW47XG4gIGVuYWJsZURlc2lnbmVyS2V5Ym9hcmRTaG9ydGN1dD86IGJvb2xlYW47XG4gIGVuYWJsZUd1aWRlVGltZW91dD86IGJvb2xlYW47XG4gIGd1aWRlU2VlblRpbWVvdXRMZW5ndGg/OiBudW1iZXI7XG4gIGd1aWRlVmFsaWRhdGlvbj86IGJvb2xlYW47XG4gIGd1aWRlcz86IHtcbiAgICBhdHRhY2hQb2ludD86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAgIGRlbGF5PzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgZ2xvYmFsU2NyaXB0cz86IGFueVtdO1xuICAgIHRpbWVvdXQ/OiBudW1iZXI7XG4gICAgdG9vbHRpcD86IHtcbiAgICAgIGFycm93U2l6ZT86IG51bWJlcjtcbiAgICB9O1xuICB9O1xuICBwcmV2ZW50Q29kZUluamVjdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlcmlhbGl6ZWRNZXRhZGF0YSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZW5kbyB7XG4gIC8vIEFnZW50XG4gIGFkZGl0aW9uYWxBcGlLZXlzOiBzdHJpbmdbXTtcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIGdldFZlcnNpb246ICgpID0+IHN0cmluZztcbiAgaW5pdGlhbGl6ZTogKG9wdGlvbnM6IElQZW5kb09wdGlvbnMpID0+IHZvaWQ7XG4gIGlzUmVhZHk6ICgpID0+IGJvb2xlYW47XG4gIHRlYXJkb3duOiAoKSA9PiB2b2lkO1xuXG4gIC8vIENsYXNzaWMgR3VpZGVzXG4gIGhpZGVMYXVuY2hlcjogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlTGF1bmNoZXI6ICgpID0+IHZvaWQ7XG4gIHNob3dMYXVuY2hlcjogKCkgPT4gdm9pZDtcbiAgdG9nZ2xlTGF1bmNoZXI6ICgpID0+IHZvaWQ7XG5cbiAgLy8gVE9ETzogRE9NXG5cbiAgLy8gVE9ETzogRE9NUXVlcnlcblxuICAvLyBEZWJ1Z2dpbmdcbiAgYWRkRGVidWdnaW5nRnVuY3Rpb25zOiAoKSA9PiB2b2lkO1xuICBkaXNhYmxlRGVidWdnaW5nOiAoKSA9PiB2b2lkO1xuICBkaXNhYmxlTG9nZ2luZzogKCkgPT4gdm9pZDtcbiAgZW5hYmxlRGVidWdnaW5nOiAoKSA9PiB2b2lkO1xuICBlbmFibGVMb2dnaW5nOiAoKSA9PiB2b2lkO1xuICBpc0RlYnVnZ2luZ0VuYWJsZWQ6ICgpID0+IHZvaWQ7XG4gIGxvZ1B1YmxpYzogKCkgPT4gdm9pZDtcblxuICAvLyBUT0RPOiBFdmVudHNcblxuICAvLyBUT0RPOiBHdWlkZXNcblxuICAvLyBJZGVudGl0eVxuICBjbGVhclNlc3Npb246ICgpID0+IHZvaWQ7XG4gIGdlbmVyYXRlX3VuaXF1ZV9pZDogKHByZWZpeD86IHN0cmluZykgPT4gc3RyaW5nO1xuICBnZXRBY2NvdW50SWQ6ICgpID0+IHN0cmluZyB8IG51bGw7XG4gIGdldF9hY2NvdW50X2lkOiAoKSA9PiBzdHJpbmcgfCBudWxsO1xuICBnZXRTZXJpYWxpemVkTWV0YWRhdGE6ICgpID0+IElTZXJpYWxpemVkTWV0YWRhdGE7XG4gIGdldFZpc2l0b3JJZDogKCkgPT4gc3RyaW5nO1xuICBnZXRfdmlzaXRvcl9pZDogKCkgPT4gc3RyaW5nO1xuICBpZGVudGlmeTogKG9wdGlvbnM6IFBpY2s8SVBlbmRvT3B0aW9ucywgJ3Zpc2l0b3InIHwgJ2FjY291bnQnPiB8IHN0cmluZywgYWNjb3VudElkPzogc3RyaW5nKSA9PiB2b2lkO1xuICBpc0Fub255bW91c1Zpc2l0b3I6ICh2aXNpdG9ySWQ/OiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIHNldF9hY2NvdW50X2lkOiAobmV3QWNjb3VudElkPzogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRfdmlzaXRvcl9pZDogKG5ld1Zpc2l0b3JJZD86IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlT3B0aW9uczogKG9wdGlvbnM6IElQZW5kb09wdGlvbnMpID0+IHZvaWQ7XG5cbiAgLy8gVVJMXG4gIHVybDoge1xuICAgIGdldDogKCkgPT4gc3RyaW5nO1xuICB9O1xuICBub3JtYWxpemVkVXJsOiBzdHJpbmc7XG4gIGdldEN1cnJlbnRVcmw6ICgpID0+IHN0cmluZztcbiAgZ2V0Tm9ybWFsaXplZFVybDogKCkgPT4gc3RyaW5nO1xuICBwYWdlTG9hZDogKHVybDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8vIFRPRE86IFV0aWxpdHlcblxuICAvLyBUT0RPOiBWYWxpZGF0aW9uXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXBlbmRvLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcGVuZG8vc3JjL2xpYi9uZ3gtcGVuZG8uaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXRTaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlbmRvU2V0dGluZ3Mge1xuICBwZW5kb0FwaUtleTogc3RyaW5nO1xuICBwZW5kb1NjcmlwdE9yaWdpbj86IHN0cmluZztcbiAgcGVuZG9JZEZvcm1hdHRlcj86IChwZW5kb0lkOiBzdHJpbmcpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVuZG9EaXJlY3RpdmUge1xuICBpbmhlcml0OiBJbnB1dFNpZ25hbDxib29sZWFuPjtcbiAgcGFyZW50OiBXcml0YWJsZVNpZ25hbDxJUGVuZG9EaXJlY3RpdmUgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWaXNpdG9yIHtcbiAgaWQ6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZW5kb09wdGlvbnMge1xuICB2aXNpdG9yPzogSVZpc2l0b3I7XG4gIGFjY291bnQ/OiBJQWNjb3VudDtcbiAgLy8gQ29yZVxuICBhZGRpdGlvbmFsQXBpS2V5cz86IHN0cmluZ1tdO1xuICBhbm5vdGF0ZVVybD86IEZ1bmN0aW9uO1xuICBhcGlLZXk/OiBzdHJpbmc7XG4gIGFwcEF1dG9PcmRlcmluZz86IHN0cmluZ1tdO1xuICBhdXRvRnJhbWVJbnN0YWxsPzogYm9vbGVhbjtcbiAgY29udGVudEhvc3Q/OiBzdHJpbmc7XG4gIGNvb2tpZURvbWFpbj86IHN0cmluZztcbiAgZGF0YUhvc3Q/OiBzdHJpbmc7XG4gIGRpc2FibGVDb29raWVzPzogYm9vbGVhbjtcbiAgZGlzYWJsZUZlZWRiYWNrPzogYm9vbGVhbjtcbiAgZGlzYWJsZVBlbmRvPzogYm9vbGVhbjtcbiAgZGlzYWJsZVBlcnNpc3RlbmNlPzogYm9vbGVhbjtcbiAgZnJhbWVJZGVudGl0eVN5bmM/OiBib29sZWFuO1xuICBpZ25vcmVIYXNoUm91dGluZz86IGJvb2xlYW47XG4gIGluaXRpYWxpemVJbW1lZGlhdGVseT86IGJvb2xlYW47XG4gIG9ic2VydmVTaGFkb3dSb290cz86IGJvb2xlYW47XG4gIGxlYWRlcktleT86IHN0cmluZ1tdO1xuICBsb2NhbFN0b3JhZ2VPbmx5PzogYm9vbGVhbjtcbiAgcHJlZmVyQnJvYWRjYXN0Q2hhbm5lbD86IGJvb2xlYW47XG4gIHByZWZlck11dGF0aW9uT2JzZXJ2ZXI/OiBib29sZWFuO1xuICBwcmV2ZW50VW5sb2FkTGlzdGVuZXI/OiBib29sZWFuO1xuICBxdWVyeVN0cmluZ1doaXRlbGlzdD86IHN0cmluZ1tdIHwgRnVuY3Rpb247XG4gIHNhbml0aXplVXJsPzogRnVuY3Rpb247XG4gIHNlbGZIb3N0ZWRBZ2VudFVybD86IHN0cmluZztcbiAgc2VuZEV2ZW50c1dpdGhQb3N0T25seT86IGJvb2xlYW47XG4gIC8vIEFuYWx5dGljc1xuICBhbGxvd2VkVGV4dD86IHN0cmluZ1tdO1xuICBhbmFseXRpY3M/OiB7XG4gICAgZXhjbHVkZUV2ZW50cz86IHN0cmluZ1tdO1xuICB9O1xuICBlbmFibGVEZWJ1Z0V2ZW50cz86IGJvb2xlYW47XG4gIGV2ZW50UHJvcGVydHlNYXRjaFBhcmVudHM/OiBib29sZWFuO1xuICBleGNsdWRlQWxsVGV4dD86IGJvb2xlYW47XG4gIGV4Y2x1ZGVOb25HdWlkZUFuYWx5dGljcz86IGJvb2xlYW47XG4gIHN5bnRoZXRpY0NsaWNrcz86IHtcbiAgICBlbGVtZW50UmVtb3ZhbD86IGJvb2xlYW47XG4gICAgdGFyZ2V0Q2hhbmdlZD86IGJvb2xlYW47XG4gIH07XG4gIC8vIEd1aWRlc1xuICBkaXNhYmxlR2xvYmFsQ1NTPzogYm9vbGVhbjtcbiAgZGlzYWJsZUd1aWRlUHNldWRvU3R5bGVzPzogYm9vbGVhbjtcbiAgZGlzYWJsZVByZWZldGNoPzogYm9vbGVhbjtcbiAgZW5hYmxlRGVzaWduZXJLZXlib2FyZFNob3J0Y3V0PzogYm9vbGVhbjtcbiAgZW5hYmxlR3VpZGVUaW1lb3V0PzogYm9vbGVhbjtcbiAgZ3VpZGVTZWVuVGltZW91dExlbmd0aD86IG51bWJlcjtcbiAgZ3VpZGVWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgZ3VpZGVzPzoge1xuICAgIGF0dGFjaFBvaW50Pzogc3RyaW5nIHwgRnVuY3Rpb247XG4gICAgZGVsYXk/OiBib29sZWFuO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBnbG9iYWxTY3JpcHRzPzogYW55W107XG4gICAgdGltZW91dD86IG51bWJlcjtcbiAgICB0b29sdGlwPzoge1xuICAgICAgYXJyb3dTaXplPzogbnVtYmVyO1xuICAgIH07XG4gIH07XG4gIHByZXZlbnRDb2RlSW5qZWN0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VyaWFsaXplZE1ldGFkYXRhIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlbmRvIHtcbiAgLy8gQWdlbnRcbiAgYWRkaXRpb25hbEFwaUtleXM6IHN0cmluZ1tdO1xuICBhcGlLZXk6IHN0cmluZztcbiAgZ2V0VmVyc2lvbjogKCkgPT4gc3RyaW5nO1xuICBpbml0aWFsaXplOiAob3B0aW9uczogSVBlbmRvT3B0aW9ucykgPT4gdm9pZDtcbiAgaXNSZWFkeTogKCkgPT4gYm9vbGVhbjtcbiAgdGVhcmRvd246ICgpID0+IHZvaWQ7XG5cbiAgLy8gQ2xhc3NpYyBHdWlkZXNcbiAgaGlkZUxhdW5jaGVyOiAoKSA9PiB2b2lkO1xuICByZW1vdmVMYXVuY2hlcjogKCkgPT4gdm9pZDtcbiAgc2hvd0xhdW5jaGVyOiAoKSA9PiB2b2lkO1xuICB0b2dnbGVMYXVuY2hlcjogKCkgPT4gdm9pZDtcblxuICAvLyBUT0RPOiBET01cblxuICAvLyBUT0RPOiBET01RdWVyeVxuXG4gIC8vIERlYnVnZ2luZ1xuICBhZGREZWJ1Z2dpbmdGdW5jdGlvbnM6ICgpID0+IHZvaWQ7XG4gIGRpc2FibGVEZWJ1Z2dpbmc6ICgpID0+IHZvaWQ7XG4gIGRpc2FibGVMb2dnaW5nOiAoKSA9PiB2b2lkO1xuICBlbmFibGVEZWJ1Z2dpbmc6ICgpID0+IHZvaWQ7XG4gIGVuYWJsZUxvZ2dpbmc6ICgpID0+IHZvaWQ7XG4gIGlzRGVidWdnaW5nRW5hYmxlZDogKCkgPT4gdm9pZDtcbiAgbG9nUHVibGljOiAoKSA9PiB2b2lkO1xuXG4gIC8vIFRPRE86IEV2ZW50c1xuXG4gIC8vIFRPRE86IEd1aWRlc1xuXG4gIC8vIElkZW50aXR5XG4gIGNsZWFyU2Vzc2lvbjogKCkgPT4gdm9pZDtcbiAgZ2VuZXJhdGVfdW5pcXVlX2lkOiAocHJlZml4Pzogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIGdldEFjY291bnRJZDogKCkgPT4gc3RyaW5nIHwgbnVsbDtcbiAgZ2V0X2FjY291bnRfaWQ6ICgpID0+IHN0cmluZyB8IG51bGw7XG4gIGdldFNlcmlhbGl6ZWRNZXRhZGF0YTogKCkgPT4gSVNlcmlhbGl6ZWRNZXRhZGF0YTtcbiAgZ2V0VmlzaXRvcklkOiAoKSA9PiBzdHJpbmc7XG4gIGdldF92aXNpdG9yX2lkOiAoKSA9PiBzdHJpbmc7XG4gIGlkZW50aWZ5OiAob3B0aW9uczogUGljazxJUGVuZG9PcHRpb25zLCAndmlzaXRvcicgfCAnYWNjb3VudCc+IHwgc3RyaW5nLCBhY2NvdW50SWQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIGlzQW5vbnltb3VzVmlzaXRvcjogKHZpc2l0b3JJZD86IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgc2V0X2FjY291bnRfaWQ6IChuZXdBY2NvdW50SWQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNldF92aXNpdG9yX2lkOiAobmV3VmlzaXRvcklkPzogc3RyaW5nKSA9PiB2b2lkO1xuICB1cGRhdGVPcHRpb25zOiAob3B0aW9uczogSVBlbmRvT3B0aW9ucykgPT4gdm9pZDtcblxuICAvLyBVUkxcbiAgdXJsOiB7XG4gICAgZ2V0OiAoKSA9PiBzdHJpbmc7XG4gIH07XG4gIG5vcm1hbGl6ZWRVcmw6IHN0cmluZztcbiAgZ2V0Q3VycmVudFVybDogKCkgPT4gc3RyaW5nO1xuICBnZXROb3JtYWxpemVkVXJsOiAoKSA9PiBzdHJpbmc7XG4gIHBhZ2VMb2FkOiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLy8gVE9ETzogVXRpbGl0eVxuXG4gIC8vIFRPRE86IFZhbGlkYXRpb25cbn1cbiJdfQ==
@@ -22,11 +22,11 @@ export class NgxPendoModule {
22
22
  ngModule: NgxPendoModule
23
23
  };
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule, imports: [NgxPendoIdDirective, NgxPendoSectionDirective], exports: [NgxPendoIdDirective, NgxPendoSectionDirective] }); }
27
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule, imports: [NgxPendoIdDirective, NgxPendoSectionDirective], exports: [NgxPendoIdDirective, NgxPendoSectionDirective] }); }
27
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule, decorators: [{
30
30
  type: NgModule,
31
31
  args: [{
32
32
  imports: [NgxPendoIdDirective, NgxPendoSectionDirective],
@@ -61,10 +61,10 @@ export class NgxPendoService {
61
61
  disableDebugging() {
62
62
  this.pendo.disableDebugging();
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }, { token: NGX_PENDO_CONTEXT }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoService, providedIn: 'root' }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }, { token: NGX_PENDO_CONTEXT }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoService, providedIn: 'root' }); }
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoService, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoService, decorators: [{
68
68
  type: Injectable,
69
69
  args: [{
70
70
  providedIn: 'root'
@@ -1,8 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, Inject, Directive, Input, HostBinding, ContentChildren, APP_INITIALIZER, isDevMode, NgModule, makeEnvironmentProviders } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, Inject, input, signal, computed, Directive, contentChildren, effect, APP_INITIALIZER, isDevMode, NgModule, makeEnvironmentProviders } from '@angular/core';
3
3
  import { DOCUMENT } from '@angular/common';
4
- import { merge, interval } from 'rxjs';
5
- import { startWith } from 'rxjs/operators';
4
+ import { interval } from 'rxjs';
6
5
 
7
6
  const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken('ngx-pendo-settings', {
8
7
  providedIn: 'root',
@@ -83,10 +82,10 @@ class NgxPendoService {
83
82
  disableDebugging() {
84
83
  this.pendo.disableDebugging();
85
84
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }, { token: NGX_PENDO_CONTEXT }], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoService, providedIn: 'root' }); }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoService, deps: [{ token: NGX_PENDO_SETTINGS_TOKEN }, { token: NGX_PENDO_CONTEXT }], target: i0.ɵɵFactoryTarget.Injectable }); }
86
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoService, providedIn: 'root' }); }
88
87
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoService, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoService, decorators: [{
90
89
  type: Injectable,
91
90
  args: [{
92
91
  providedIn: 'root'
@@ -100,115 +99,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
100
99
  }] }] });
101
100
 
102
101
  class NgxPendoIdDirective {
103
- get pendoId() {
104
- return this.service.formatPendoId(...this._pendoSections, this._pendoId);
105
- }
106
- set pendoId(value) {
107
- this._pendoId = value;
108
- }
109
- get parent() {
110
- return this._parent;
111
- }
112
- set parent(value) {
113
- this._parent = value;
114
- setTimeout(() => {
115
- this._pendoSections = [];
116
- let cur = this.inherit ? value : null;
102
+ constructor(service) {
103
+ this.service = service;
104
+ this.pendoId = input('', { alias: 'ngx-pendo-id' });
105
+ this.inherit = input(true, { alias: 'ngx-pendo-inherit' });
106
+ this.parent = signal(undefined);
107
+ this.mergedPendoId = computed(() => {
108
+ const pendoSections = [];
109
+ let cur = this.inherit() ? this.parent() : null;
117
110
  while (cur) {
118
- this._pendoSections.unshift(cur.pendoSection);
119
- cur = cur.inherit ? cur.parent : null;
111
+ pendoSections.unshift(cur.pendoSection());
112
+ cur = cur.inherit() ? cur.parent() : null;
120
113
  }
114
+ return this.service.formatPendoId(...pendoSections, this.pendoId());
121
115
  });
116
+ this.disableInherit = computed(() => (this.inherit() ? undefined : true));
122
117
  }
123
- get disableInherit() {
124
- return this.inherit ? undefined : true;
125
- }
126
- constructor(service) {
127
- this.service = service;
128
- this._pendoSections = [];
129
- // eslint-disable-next-line @angular-eslint/no-input-rename
130
- this.inherit = true;
131
- }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoIdDirective, deps: [{ token: NgxPendoService }], target: i0.ɵɵFactoryTarget.Directive }); }
133
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NgxPendoIdDirective, isStandalone: true, 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 }); }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoIdDirective, deps: [{ token: NgxPendoService }], target: i0.ɵɵFactoryTarget.Directive }); }
119
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: NgxPendoIdDirective, isStandalone: true, selector: "[ngx-pendo-id]", inputs: { pendoId: { classPropertyName: "pendoId", publicName: "ngx-pendo-id", isSignal: true, isRequired: false, transformFunction: null }, inherit: { classPropertyName: "inherit", publicName: "ngx-pendo-inherit", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-pendo-id": "mergedPendoId()", "attr.ngx-pendo-disable-inherit": "disableInherit()" } }, ngImport: i0 }); }
134
120
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoIdDirective, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoIdDirective, decorators: [{
136
122
  type: Directive,
137
123
  args: [{
138
124
  selector: '[ngx-pendo-id]',
139
- standalone: true
125
+ standalone: true,
126
+ host: {
127
+ '[attr.data-pendo-id]': 'mergedPendoId()',
128
+ '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'
129
+ }
140
130
  }]
141
- }], ctorParameters: () => [{ type: NgxPendoService }], propDecorators: { pendoId: [{
142
- type: Input,
143
- args: ['ngx-pendo-id']
144
- }, {
145
- type: HostBinding,
146
- args: ['attr.data-pendo-id']
147
- }], inherit: [{
148
- type: Input,
149
- args: ['ngx-pendo-inherit']
150
- }], disableInherit: [{
151
- type: HostBinding,
152
- args: ['attr.ngx-pendo-disable-inherit']
153
- }] } });
131
+ }], ctorParameters: () => [{ type: NgxPendoService }] });
154
132
 
155
133
  class NgxPendoSectionDirective {
156
134
  constructor() {
157
- // eslint-disable-next-line @angular-eslint/no-input-rename
158
- this.inherit = true;
159
- this.subscriptions = [];
160
- }
161
- get disableInherit() {
162
- return this.inherit ? undefined : true;
163
- }
164
- ngAfterContentInit() {
165
- // set all child parent
166
- this.subscriptions.push(merge(this.sectionDirectives.changes.pipe(startWith(this.sectionDirectives)), this.idDirectives.changes.pipe(startWith(this.idDirectives))).subscribe((items) => items.forEach(item => {
167
- if (item !== this) {
168
- item.parent = this;
169
- }
170
- })));
171
- }
172
- ngOnChanges(changes) {
173
- if (changes['pendoSection'] && !changes['pendoSection'].firstChange) {
174
- this.allIdDirectives.forEach(i => (i.parent = i.parent));
175
- }
176
- }
177
- ngOnDestroy() {
178
- this.subscriptions.forEach(s => s.unsubscribe());
179
- this.subscriptions = [];
180
- }
181
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoSectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
182
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NgxPendoSectionDirective, isStandalone: true, 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 }); }
135
+ this.pendoSection = input('', { alias: 'ngx-pendo-section' });
136
+ this.inherit = input(true, { alias: 'ngx-pendo-inherit' });
137
+ this.parent = signal(undefined);
138
+ this.idDirectives = contentChildren(NgxPendoIdDirective, { descendants: false });
139
+ this.sectionDirectivs = contentChildren(NgxPendoSectionDirective, { descendants: false });
140
+ this.disableInherit = computed(() => (this.inherit() ? undefined : true));
141
+ effect(() => {
142
+ [...this.idDirectives(), ...this.sectionDirectivs()].forEach(item => {
143
+ if (item !== this) {
144
+ item.parent.set(this);
145
+ }
146
+ });
147
+ }, { allowSignalWrites: true });
148
+ }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoSectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
150
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.0.1", type: NgxPendoSectionDirective, isStandalone: true, selector: "[ngx-pendo-section]", inputs: { pendoSection: { classPropertyName: "pendoSection", publicName: "ngx-pendo-section", isSignal: true, isRequired: false, transformFunction: null }, inherit: { classPropertyName: "inherit", publicName: "ngx-pendo-inherit", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-pendo-section": "pendoSection()", "attr.ngx-pendo-disable-inherit": "disableInherit()" } }, queries: [{ propertyName: "idDirectives", predicate: NgxPendoIdDirective, isSignal: true }, { propertyName: "sectionDirectivs", predicate: NgxPendoSectionDirective, isSignal: true }], ngImport: i0 }); }
183
151
  }
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoSectionDirective, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoSectionDirective, decorators: [{
185
153
  type: Directive,
186
154
  args: [{
187
155
  selector: '[ngx-pendo-section]',
188
- standalone: true
156
+ standalone: true,
157
+ host: {
158
+ '[attr.data-pendo-section]': 'pendoSection()',
159
+ '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'
160
+ }
189
161
  }]
190
- }], propDecorators: { pendoSection: [{
191
- type: Input,
192
- args: ['ngx-pendo-section']
193
- }, {
194
- type: HostBinding,
195
- args: ['attr.ngx-pendo-section']
196
- }], inherit: [{
197
- type: Input,
198
- args: ['ngx-pendo-inherit']
199
- }], disableInherit: [{
200
- type: HostBinding,
201
- args: ['attr.ngx-pendo-disable-inherit']
202
- }], idDirectives: [{
203
- type: ContentChildren,
204
- args: [NgxPendoIdDirective, { descendants: false }]
205
- }], sectionDirectives: [{
206
- type: ContentChildren,
207
- args: [NgxPendoSectionDirective, { descendants: false }]
208
- }], allIdDirectives: [{
209
- type: ContentChildren,
210
- args: [NgxPendoIdDirective, { descendants: true }]
211
- }] } });
162
+ }], ctorParameters: () => [] });
212
163
 
213
164
  const DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';
214
165
  const NGX_PENDO_INITIALIZER_PROVIDER = {
@@ -267,11 +218,11 @@ class NgxPendoModule {
267
218
  ngModule: NgxPendoModule
268
219
  };
269
220
  }
270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
271
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule, imports: [NgxPendoIdDirective, NgxPendoSectionDirective], exports: [NgxPendoIdDirective, NgxPendoSectionDirective] }); }
272
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule }); }
221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
222
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule, imports: [NgxPendoIdDirective, NgxPendoSectionDirective], exports: [NgxPendoIdDirective, NgxPendoSectionDirective] }); }
223
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule }); }
273
224
  }
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgxPendoModule, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NgxPendoModule, decorators: [{
275
226
  type: NgModule,
276
227
  args: [{
277
228
  imports: [NgxPendoIdDirective, NgxPendoSectionDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-pendo.mjs","sources":["../../../projects/ngx-pendo/src/lib/ngx-pendo.tokens.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.service.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo-id.directive.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo-section.directive.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.injectors.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.module.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.provide.ts","../../../projects/ngx-pendo/src/public-api.ts","../../../projects/ngx-pendo/src/ngx-pendo.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { InjectionToken, inject } from '@angular/core';\nimport { PendoWindow } from './ngx-pendo.types';\nimport { IPendo, IPendoSettings } from './ngx-pendo.interfaces';\n\nexport const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken<IPendoSettings>('ngx-pendo-settings', {\n providedIn: 'root',\n factory: () => ({ pendoApiKey: '' })\n});\n\nexport const NGX_PENDO_WINDOW = new InjectionToken<PendoWindow>('ngx-pendo-window', {\n providedIn: 'root',\n factory: () => {\n const { defaultView } = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n }\n});\n\nexport const NGX_PENDO_CONTEXT = new InjectionToken<IPendo>('ngx-pendo-context', {\n providedIn: 'root',\n factory: () => inject(NGX_PENDO_WINDOW).pendo!\n});\n","import { Injectable, Inject } from '@angular/core';\nimport { NGX_PENDO_CONTEXT, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { IAccount, IPendo, IPendoOptions, IPendoSettings, IVisitor } from './ngx-pendo.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxPendoService {\n private pendoIdFormatter?: (pendoId: string) => string;\n\n /**\n * Constructor\n *\n * @param settings IPendoSettings\n */\n constructor(\n @Inject(NGX_PENDO_SETTINGS_TOKEN) settings: IPendoSettings,\n @Inject(NGX_PENDO_CONTEXT) private pendo: IPendo\n ) {\n this.pendoIdFormatter = settings.pendoIdFormatter;\n }\n\n /**\n * Completely re-initialize the Agent with new options\n *\n * @param optionsOrVisitor IPendoOptions | IVisitor\n * @param account IAccount\n */\n initialize(options: IPendoOptions): void;\n initialize(visitor: IVisitor, account?: IAccount): void;\n initialize(optionsOrVisitor: IPendoOptions | IVisitor, account?: IAccount): void {\n if ('id' in optionsOrVisitor) {\n this.pendo.initialize({ visitor: optionsOrVisitor, account });\n } else {\n this.pendo.initialize(optionsOrVisitor);\n }\n }\n\n /**\n * Send an identify event and a meta event.\n *\n * @param visitor IVisitor | string\n * @param account IAccount | string\n */\n identify(visitor: string, account?: string): void;\n identify(visitor: IVisitor, account?: IAccount): void;\n identify(visitor: IVisitor | string, account?: IAccount | string): void {\n if (typeof visitor === 'string' && (!account || typeof account === 'string')) {\n this.pendo.identify(visitor, account);\n } else {\n this.pendo.identify({ visitor: <IVisitor>visitor, account: <IAccount>account });\n }\n }\n\n /**\n * Updates metadata object for the Pendo agent.\n *\n * @param options IPendoOptions\n */\n updateOptions(options: IPendoOptions): void {\n this.pendo.updateOptions(options);\n }\n\n /**\n * Format Pendo\n *\n * @param ids string[]\n */\n formatPendoId(...ids: string[]): string {\n return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter!(id)) : ids).join('.');\n }\n\n /**\n * Shuts down the agent and cleans up all timers and listeners.\n */\n teardown(): void {\n this.pendo.teardown();\n }\n\n /**\n * Loads Pendo Debugger and extends the global pendo object with additional functionality for debugging purposes.\n */\n enableDebugging(): void {\n this.pendo.enableDebugging();\n }\n\n /**\n * Removes Pendo Debugger extension.\n */\n disableDebugging(): void {\n this.pendo.disableDebugging();\n }\n}\n","import { Directive, Input, HostBinding } from '@angular/core';\nimport { IPendoDirective } from './ngx-pendo.interfaces';\nimport { NgxPendoService } from './ngx-pendo.service';\nimport { NgxPendoSectionDirective } from './ngx-pendo-section.directive';\n\n@Directive({\n selector: '[ngx-pendo-id]',\n standalone: true\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 standalone: true\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 { APP_INITIALIZER, isDevMode, Provider } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\nimport { NGX_PENDO_WINDOW, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { PendoWindow } from './ngx-pendo.types';\n\nconst DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';\n\nexport const NGX_PENDO_INITIALIZER_PROVIDER: Provider = {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: pendoInitializer,\n deps: [NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_WINDOW]\n};\n\nexport function pendoInitializer($settings: IPendoSettings, window: PendoWindow): () => Promise<void> {\n return async () => {\n const { pendoApiKey, pendoScriptOrigin } = $settings;\n if (!pendoApiKey) {\n if (isDevMode()) {\n console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');\n }\n\n return;\n }\n\n await new Promise<void>(resolve => {\n const script = document.createElement('script');\n script.async = true;\n script.src = `${pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${pendoApiKey}/pendo.js`;\n document.head.appendChild(script);\n script.onerror = async () => {\n // The script may have been blocked by an ad blocker\n console.error('The pendo script may have been blocked,');\n resolve();\n };\n script.onload = async () => {\n // when enableDebugging should load extra js\n const sub = interval(100).subscribe(() => {\n if (window.pendo) {\n sub.unsubscribe();\n resolve();\n }\n });\n };\n });\n };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\nimport { NgxPendoSectionDirective } from './ngx-pendo-section.directive';\nimport { NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\nimport { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\n\n@NgModule({\n imports: [NgxPendoIdDirective, NgxPendoSectionDirective],\n exports: [NgxPendoIdDirective, NgxPendoSectionDirective]\n})\nexport class NgxPendoModule {\n static forRoot(settings: IPendoSettings): ModuleWithProviders<NgxPendoModule> {\n return {\n ngModule: NgxPendoModule,\n providers: [\n {\n provide: NGX_PENDO_SETTINGS_TOKEN,\n useValue: settings\n },\n NGX_PENDO_INITIALIZER_PROVIDER\n ]\n };\n }\n\n static forChild(): ModuleWithProviders<NgxPendoModule> {\n return {\n ngModule: NgxPendoModule\n };\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\n\nexport function provideNgxPendo(settings: IPendoSettings) {\n return makeEnvironmentProviders([\n {\n provide: NGX_PENDO_SETTINGS_TOKEN,\n useValue: settings\n },\n NGX_PENDO_INITIALIZER_PROVIDER\n ]);\n}\n","/*\n * Public API Surface of ngx-pendo\n */\n\nexport * from './lib/ngx-pendo-id.directive';\nexport * from './lib/ngx-pendo-section.directive';\nexport * from './lib/ngx-pendo.service';\nexport * from './lib/ngx-pendo.injectors';\nexport * from './lib/ngx-pendo.interfaces';\nexport * from './lib/ngx-pendo.module';\nexport * from './lib/ngx-pendo.provide';\nexport * from './lib/ngx-pendo.tokens';\nexport * from './lib/ngx-pendo.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxPendoService"],"mappings":";;;;;;MAKa,wBAAwB,GAAG,IAAI,cAAc,CAAiB,oBAAoB,EAAE;AAC/F,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACrC,CAAA,EAAE;MAEU,gBAAgB,GAAG,IAAI,cAAc,CAAc,kBAAkB,EAAE;AAClF,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACZ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;AAED,QAAA,OAAO,WAAW,CAAC;KACpB;AACF,CAAA,EAAE;MAEU,iBAAiB,GAAG,IAAI,cAAc,CAAS,mBAAmB,EAAE;AAC/E,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAM;AAC/C,CAAA;;MCnBY,eAAe,CAAA;AAG1B;;;;AAIG;IACH,WACoC,CAAA,QAAwB,EACvB,KAAa,EAAA;QAAb,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AAEhD,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;KACnD;IAUD,UAAU,CAAC,gBAA0C,EAAE,OAAkB,EAAA;AACvE,QAAA,IAAI,IAAI,IAAI,gBAAgB,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;SAC/D;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;SACzC;KACF;IAUD,QAAQ,CAAC,OAA0B,EAAE,OAA2B,EAAA;AAC9D,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,KAAK,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE;YAC5E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACvC;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAY,OAAO,EAAE,OAAO,EAAY,OAAO,EAAE,CAAC,CAAC;SACjF;KACF;AAED;;;;AAIG;AACH,IAAA,aAAa,CAAC,OAAsB,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KACnC;AAED;;;;AAIG;IACH,aAAa,CAAC,GAAG,GAAa,EAAA;AAC5B,QAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,gBAAiB,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5F;AAED;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KACvB;AAED;;AAEG;IACH,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;KAC9B;AAED;;AAEG;IACH,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;KAC/B;8GApFU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAShB,wBAAwB,EAAA,EAAA,EAAA,KAAA,EACxB,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAVhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAUI,MAAM;2BAAC,wBAAwB,CAAA;;0BAC/B,MAAM;2BAAC,iBAAiB,CAAA;;;MCRhB,mBAAmB,CAAA;AAO9B,IAAA,IAEI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1E;IACD,IAAI,OAAO,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AAMD,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAI,MAAM,CAAC,KAA+B,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;YACtC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC9C,gBAAA,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;aACvC;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,IACI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;KACxC;AAED,IAAA,WAAA,CAAoB,OAAwB,EAAA;QAAxB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QArCpC,IAAc,CAAA,cAAA,GAAa,EAAE,CAAC;;QAetC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;KAsBiC;8GAxCrC,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gCAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;iFAUK,OAAO,EAAA,CAAA;sBAFV,KAAK;uBAAC,cAAc,CAAA;;sBACpB,WAAW;uBAAC,oBAAoB,CAAA;gBAUjC,OAAO,EAAA,CAAA;sBADN,KAAK;uBAAC,mBAAmB,CAAA;gBAmBtB,cAAc,EAAA,CAAA;sBADjB,WAAW;uBAAC,gCAAgC,CAAA;;;MCxBlC,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;;QAWE,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QAkBP,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;AA4B5C,KAAA;AA5CC,IAAA,IACI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;KACxC;IAeD,kBAAkB,GAAA;;QAEhB,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,KAAK,CACH,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EACtE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAC7D,CAAC,SAAS,CAAC,CAAC,KAAiC,KAC5C,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACnB,YAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACpB;SACF,CAAC,CACH,CACF,CAAC;KACH;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE;AACnE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SAC1D;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KACzB;8GApDU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAgBlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,CAAA,mBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,mBAAmB,EAGnB,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,wBAAwB,kDAGxB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAtBzB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAIC,YAAY,EAAA,CAAA;sBAFX,KAAK;uBAAC,mBAAmB,CAAA;;sBACzB,WAAW;uBAAC,wBAAwB,CAAA;gBAKrC,OAAO,EAAA,CAAA;sBADN,KAAK;uBAAC,mBAAmB,CAAA;gBAItB,cAAc,EAAA,CAAA;sBADjB,WAAW;uBAAC,gCAAgC,CAAA;gBAQ7C,YAAY,EAAA,CAAA;sBADX,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;gBAI5D,iBAAiB,EAAA,CAAA;sBADhB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;gBAIjE,eAAe,EAAA,CAAA;sBADd,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;;;ACpC7D,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAE9C,MAAA,8BAA8B,GAAa;AACtD,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,IAAI,EAAE,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;EAClD;AAEc,SAAA,gBAAgB,CAAC,SAAyB,EAAE,MAAmB,EAAA;IAC7E,OAAO,YAAW;AAChB,QAAA,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,SAAS,EAAE,EAAE;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;aACtG;YAED,OAAO;SACR;AAED,QAAA,MAAM,IAAI,OAAO,CAAO,OAAO,IAAG;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,GAAG,GAAG,CAAG,EAAA,iBAAiB,IAAI,2BAA2B,CAAA,cAAA,EAAiB,WAAW,CAAA,SAAA,CAAW,CAAC;AACxG,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAClC,YAAA,MAAM,CAAC,OAAO,GAAG,YAAW;;AAE1B,gBAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACzD,gBAAA,OAAO,EAAE,CAAC;AACZ,aAAC,CAAC;AACF,YAAA,MAAM,CAAC,MAAM,GAAG,YAAW;;gBAEzB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAK;AACvC,oBAAA,IAAI,MAAM,CAAC,KAAK,EAAE;wBAChB,GAAG,CAAC,WAAW,EAAE,CAAC;AAClB,wBAAA,OAAO,EAAE,CAAC;qBACX;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC;AACJ,SAAC,CAAC,CAAC;AACL,KAAC,CAAC;AACJ;;MCpCa,cAAc,CAAA;IACzB,OAAO,OAAO,CAAC,QAAwB,EAAA;QACrC,OAAO;AACL,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;gBACD,8BAA8B;AAC/B,aAAA;SACF,CAAC;KACH;AAED,IAAA,OAAO,QAAQ,GAAA;QACb,OAAO;AACL,YAAA,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;8GAlBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHf,mBAAmB,EAAE,wBAAwB,CAC7C,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAE5C,cAAc,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;AACxD,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;AACzD,iBAAA,CAAA;;;ACLK,SAAU,eAAe,CAAC,QAAwB,EAAA;AACtD,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA;QACD,8BAA8B;AAC/B,KAAA,CAAC,CAAC;AACL;;ACbA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-pendo.mjs","sources":["../../../projects/ngx-pendo/src/lib/ngx-pendo.tokens.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.service.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo-id.directive.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo-section.directive.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.injectors.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.module.ts","../../../projects/ngx-pendo/src/lib/ngx-pendo.provide.ts","../../../projects/ngx-pendo/src/public-api.ts","../../../projects/ngx-pendo/src/ngx-pendo.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { InjectionToken, inject } from '@angular/core';\nimport { PendoWindow } from './ngx-pendo.types';\nimport { IPendo, IPendoSettings } from './ngx-pendo.interfaces';\n\nexport const NGX_PENDO_SETTINGS_TOKEN = new InjectionToken<IPendoSettings>('ngx-pendo-settings', {\n providedIn: 'root',\n factory: () => ({ pendoApiKey: '' })\n});\n\nexport const NGX_PENDO_WINDOW = new InjectionToken<PendoWindow>('ngx-pendo-window', {\n providedIn: 'root',\n factory: () => {\n const { defaultView } = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n }\n});\n\nexport const NGX_PENDO_CONTEXT = new InjectionToken<IPendo>('ngx-pendo-context', {\n providedIn: 'root',\n factory: () => inject(NGX_PENDO_WINDOW).pendo!\n});\n","import { Injectable, Inject } from '@angular/core';\nimport { NGX_PENDO_CONTEXT, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { IAccount, IPendo, IPendoOptions, IPendoSettings, IVisitor } from './ngx-pendo.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxPendoService {\n private pendoIdFormatter?: (pendoId: string) => string;\n\n /**\n * Constructor\n *\n * @param settings IPendoSettings\n */\n constructor(\n @Inject(NGX_PENDO_SETTINGS_TOKEN) settings: IPendoSettings,\n @Inject(NGX_PENDO_CONTEXT) private pendo: IPendo\n ) {\n this.pendoIdFormatter = settings.pendoIdFormatter;\n }\n\n /**\n * Completely re-initialize the Agent with new options\n *\n * @param optionsOrVisitor IPendoOptions | IVisitor\n * @param account IAccount\n */\n initialize(options: IPendoOptions): void;\n initialize(visitor: IVisitor, account?: IAccount): void;\n initialize(optionsOrVisitor: IPendoOptions | IVisitor, account?: IAccount): void {\n if ('id' in optionsOrVisitor) {\n this.pendo.initialize({ visitor: optionsOrVisitor, account });\n } else {\n this.pendo.initialize(optionsOrVisitor);\n }\n }\n\n /**\n * Send an identify event and a meta event.\n *\n * @param visitor IVisitor | string\n * @param account IAccount | string\n */\n identify(visitor: string, account?: string): void;\n identify(visitor: IVisitor, account?: IAccount): void;\n identify(visitor: IVisitor | string, account?: IAccount | string): void {\n if (typeof visitor === 'string' && (!account || typeof account === 'string')) {\n this.pendo.identify(visitor, account);\n } else {\n this.pendo.identify({ visitor: <IVisitor>visitor, account: <IAccount>account });\n }\n }\n\n /**\n * Updates metadata object for the Pendo agent.\n *\n * @param options IPendoOptions\n */\n updateOptions(options: IPendoOptions): void {\n this.pendo.updateOptions(options);\n }\n\n /**\n * Format Pendo\n *\n * @param ids string[]\n */\n formatPendoId(...ids: string[]): string {\n return (this.pendoIdFormatter ? ids.map(id => this.pendoIdFormatter!(id)) : ids).join('.');\n }\n\n /**\n * Shuts down the agent and cleans up all timers and listeners.\n */\n teardown(): void {\n this.pendo.teardown();\n }\n\n /**\n * Loads Pendo Debugger and extends the global pendo object with additional functionality for debugging purposes.\n */\n enableDebugging(): void {\n this.pendo.enableDebugging();\n }\n\n /**\n * Removes Pendo Debugger extension.\n */\n disableDebugging(): void {\n this.pendo.disableDebugging();\n }\n}\n","import { Directive, input, computed, signal } from '@angular/core';\nimport { IPendoDirective } from './ngx-pendo.interfaces';\nimport { NgxPendoService } from './ngx-pendo.service';\nimport { NgxPendoSectionDirective } from './ngx-pendo-section.directive';\n\n@Directive({\n selector: '[ngx-pendo-id]',\n standalone: true,\n host: {\n '[attr.data-pendo-id]': 'mergedPendoId()',\n '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'\n }\n})\nexport class NgxPendoIdDirective implements IPendoDirective {\n pendoId = input<string>('', { alias: 'ngx-pendo-id' });\n\n inherit = input<boolean>(true, { alias: 'ngx-pendo-inherit' });\n\n parent = signal<NgxPendoSectionDirective | undefined>(undefined);\n\n mergedPendoId = computed<string>(() => {\n const pendoSections = [];\n\n let cur = this.inherit() ? this.parent() : null;\n while (cur) {\n pendoSections.unshift(cur.pendoSection());\n cur = cur.inherit() ? cur.parent() : null;\n }\n\n return this.service.formatPendoId(...pendoSections, this.pendoId());\n });\n\n disableInherit = computed<boolean | undefined>(() => (this.inherit() ? undefined : true));\n\n constructor(private service: NgxPendoService) {}\n}\n","import { Directive, input, computed, signal, contentChildren, effect } from '@angular/core';\nimport { IPendoDirective } from './ngx-pendo.interfaces';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\n\n@Directive({\n selector: '[ngx-pendo-section]',\n standalone: true,\n host: {\n '[attr.data-pendo-section]': 'pendoSection()',\n '[attr.ngx-pendo-disable-inherit]': 'disableInherit()'\n }\n})\nexport class NgxPendoSectionDirective implements IPendoDirective {\n pendoSection = input<string>('', { alias: 'ngx-pendo-section' });\n\n inherit = input<boolean>(true, { alias: 'ngx-pendo-inherit' });\n\n parent = signal<NgxPendoSectionDirective | undefined>(undefined);\n\n idDirectives = contentChildren(NgxPendoIdDirective, { descendants: false });\n\n sectionDirectivs = contentChildren(NgxPendoSectionDirective, { descendants: false });\n\n disableInherit = computed<boolean | undefined>(() => (this.inherit() ? undefined : true));\n\n constructor() {\n effect(\n () => {\n [...this.idDirectives(), ...this.sectionDirectivs()].forEach(item => {\n if (item !== this) {\n item.parent.set(this);\n }\n });\n },\n { allowSignalWrites: true }\n );\n }\n}\n","import { APP_INITIALIZER, isDevMode, Provider } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\nimport { NGX_PENDO_WINDOW, NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { PendoWindow } from './ngx-pendo.types';\n\nconst DEFAULT_PENDO_SCRIPT_ORIGIN = 'https://cdn.pendo.io';\n\nexport const NGX_PENDO_INITIALIZER_PROVIDER: Provider = {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: pendoInitializer,\n deps: [NGX_PENDO_SETTINGS_TOKEN, NGX_PENDO_WINDOW]\n};\n\nexport function pendoInitializer($settings: IPendoSettings, window: PendoWindow): () => Promise<void> {\n return async () => {\n const { pendoApiKey, pendoScriptOrigin } = $settings;\n if (!pendoApiKey) {\n if (isDevMode()) {\n console.error('Empty api key for Pendo. Make sure to provide one when initializing NgxPendoModule.');\n }\n\n return;\n }\n\n await new Promise<void>(resolve => {\n const script = document.createElement('script');\n script.async = true;\n script.src = `${pendoScriptOrigin || DEFAULT_PENDO_SCRIPT_ORIGIN}/agent/static/${pendoApiKey}/pendo.js`;\n document.head.appendChild(script);\n script.onerror = async () => {\n // The script may have been blocked by an ad blocker\n console.error('The pendo script may have been blocked,');\n resolve();\n };\n script.onload = async () => {\n // when enableDebugging should load extra js\n const sub = interval(100).subscribe(() => {\n if (window.pendo) {\n sub.unsubscribe();\n resolve();\n }\n });\n };\n });\n };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { NgxPendoIdDirective } from './ngx-pendo-id.directive';\nimport { NgxPendoSectionDirective } from './ngx-pendo-section.directive';\nimport { NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\nimport { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\n\n@NgModule({\n imports: [NgxPendoIdDirective, NgxPendoSectionDirective],\n exports: [NgxPendoIdDirective, NgxPendoSectionDirective]\n})\nexport class NgxPendoModule {\n static forRoot(settings: IPendoSettings): ModuleWithProviders<NgxPendoModule> {\n return {\n ngModule: NgxPendoModule,\n providers: [\n {\n provide: NGX_PENDO_SETTINGS_TOKEN,\n useValue: settings\n },\n NGX_PENDO_INITIALIZER_PROVIDER\n ]\n };\n }\n\n static forChild(): ModuleWithProviders<NgxPendoModule> {\n return {\n ngModule: NgxPendoModule\n };\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { NGX_PENDO_SETTINGS_TOKEN } from './ngx-pendo.tokens';\nimport { NGX_PENDO_INITIALIZER_PROVIDER } from './ngx-pendo.injectors';\nimport { IPendoSettings } from './ngx-pendo.interfaces';\n\nexport function provideNgxPendo(settings: IPendoSettings) {\n return makeEnvironmentProviders([\n {\n provide: NGX_PENDO_SETTINGS_TOKEN,\n useValue: settings\n },\n NGX_PENDO_INITIALIZER_PROVIDER\n ]);\n}\n","/*\n * Public API Surface of ngx-pendo\n */\n\nexport * from './lib/ngx-pendo-id.directive';\nexport * from './lib/ngx-pendo-section.directive';\nexport * from './lib/ngx-pendo.service';\nexport * from './lib/ngx-pendo.injectors';\nexport * from './lib/ngx-pendo.interfaces';\nexport * from './lib/ngx-pendo.module';\nexport * from './lib/ngx-pendo.provide';\nexport * from './lib/ngx-pendo.tokens';\nexport * from './lib/ngx-pendo.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxPendoService"],"mappings":"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"}
@@ -4,16 +4,12 @@ import { NgxPendoSectionDirective } from './ngx-pendo-section.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class NgxPendoIdDirective implements IPendoDirective {
6
6
  private service;
7
- private _parent;
8
- private _pendoSections;
9
- private _pendoId;
10
- get pendoId(): string;
11
- set pendoId(value: string);
12
- inherit: boolean;
13
- get parent(): NgxPendoSectionDirective;
14
- set parent(value: NgxPendoSectionDirective);
15
- get disableInherit(): boolean | undefined;
7
+ pendoId: import("@angular/core").InputSignal<string>;
8
+ inherit: import("@angular/core").InputSignal<boolean>;
9
+ parent: import("@angular/core").WritableSignal<NgxPendoSectionDirective | undefined>;
10
+ mergedPendoId: import("@angular/core").Signal<string>;
11
+ disableInherit: import("@angular/core").Signal<boolean | undefined>;
16
12
  constructor(service: NgxPendoService);
17
13
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxPendoIdDirective, never>;
18
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxPendoIdDirective, "[ngx-pendo-id]", never, { "pendoId": { "alias": "ngx-pendo-id"; "required": false; }; "inherit": { "alias": "ngx-pendo-inherit"; "required": false; }; }, {}, never, never, true, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxPendoIdDirective, "[ngx-pendo-id]", never, { "pendoId": { "alias": "ngx-pendo-id"; "required": false; "isSignal": true; }; "inherit": { "alias": "ngx-pendo-inherit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
19
15
  }
@@ -1,19 +1,14 @@
1
- import { QueryList, AfterContentInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
2
1
  import { IPendoDirective } from './ngx-pendo.interfaces';
3
2
  import { NgxPendoIdDirective } from './ngx-pendo-id.directive';
4
3
  import * as i0 from "@angular/core";
5
- export declare class NgxPendoSectionDirective implements IPendoDirective, AfterContentInit, OnChanges, OnDestroy {
6
- pendoSection: string;
7
- inherit: boolean;
8
- get disableInherit(): boolean | undefined;
9
- parent: NgxPendoSectionDirective;
10
- idDirectives: QueryList<NgxPendoIdDirective>;
11
- sectionDirectives: QueryList<NgxPendoSectionDirective>;
12
- allIdDirectives: QueryList<NgxPendoIdDirective>;
13
- private subscriptions;
14
- ngAfterContentInit(): void;
15
- ngOnChanges(changes: SimpleChanges): void;
16
- ngOnDestroy(): void;
4
+ export declare class NgxPendoSectionDirective implements IPendoDirective {
5
+ pendoSection: import("@angular/core").InputSignal<string>;
6
+ inherit: import("@angular/core").InputSignal<boolean>;
7
+ parent: import("@angular/core").WritableSignal<NgxPendoSectionDirective | undefined>;
8
+ idDirectives: import("@angular/core").Signal<readonly NgxPendoIdDirective[]>;
9
+ sectionDirectivs: import("@angular/core").Signal<readonly NgxPendoSectionDirective[]>;
10
+ disableInherit: import("@angular/core").Signal<boolean | undefined>;
11
+ constructor();
17
12
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxPendoSectionDirective, never>;
18
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxPendoSectionDirective, "[ngx-pendo-section]", never, { "pendoSection": { "alias": "ngx-pendo-section"; "required": false; }; "inherit": { "alias": "ngx-pendo-inherit"; "required": false; }; }, {}, ["idDirectives", "sectionDirectives", "allIdDirectives"], never, true, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxPendoSectionDirective, "[ngx-pendo-section]", never, { "pendoSection": { "alias": "ngx-pendo-section"; "required": false; "isSignal": true; }; "inherit": { "alias": "ngx-pendo-inherit"; "required": false; "isSignal": true; }; }, {}, ["idDirectives", "sectionDirectivs"], never, true, never>;
19
14
  }
@@ -1,11 +1,12 @@
1
+ import { InputSignal, WritableSignal } from '@angular/core';
1
2
  export interface IPendoSettings {
2
3
  pendoApiKey: string;
3
4
  pendoScriptOrigin?: string;
4
5
  pendoIdFormatter?: (pendoId: string) => string;
5
6
  }
6
7
  export interface IPendoDirective {
7
- inherit: boolean;
8
- parent?: IPendoDirective;
8
+ inherit: InputSignal<boolean>;
9
+ parent: WritableSignal<IPendoDirective | undefined>;
9
10
  }
10
11
  export interface IVisitor {
11
12
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-pendo",
3
- "version": "1.14.3",
3
+ "version": "2.0.0",
4
4
  "description": "A simple wrapper to load Pendo by angular way",
5
5
  "contributors": [
6
6
  {
@@ -21,8 +21,8 @@
21
21
  "license": "MIT",
22
22
  "homepage": "https://github.com/yociduo/ngx-pendo",
23
23
  "peerDependencies": {
24
- "@angular/common": ">=16.0.0",
25
- "@angular/core": ">=16.0.0"
24
+ "@angular/common": ">=17.0.0",
25
+ "@angular/core": ">=17.0.0"
26
26
  },
27
27
  "dependencies": {
28
28
  "tslib": "^2.3.0"
@@ -10,7 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const schematics_1 = require("@angular-devkit/schematics");
13
- const standalone_1 = require("@schematics/angular/private/standalone");
14
13
  const utility_1 = require("@schematics/angular/utility");
15
14
  const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
16
15
  const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils");
@@ -20,6 +19,7 @@ const package_config_1 = require("./package-config");
20
19
  const ast_1 = require("../utils/ast");
21
20
  const change_1 = require("../utils/change");
22
21
  const project_1 = require("../utils/project");
22
+ const standalone_1 = require("../utils/standalone");
23
23
  const packageJson = require('../../package.json');
24
24
  function addImportToNgModule(mainFile, options) {
25
25
  return (host) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/ngx-pendo/schematics/ng-add/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAiF;AACjF,uEAAgF;AAChF,yDAA8D;AAC9D,qEAAkG;AAClG,2EAA6F;AAC7F,qEAAqE;AACrE,mFAA2E;AAC3E,qDAA2D;AAE3D,sCAA+C;AAC/C,4CAAqD;AACrD,8CAA+E;AAE/E,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,SAAS,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IAC5D,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,aAAa,GAAG,IAAA,+BAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAA,qBAAe,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG;kBACP,OAAO,CAAC,WAAW;;GAElC,CAAC;QAEA,IAAA,2BAAkB,EAAC,IAAI,EAAE,aAAa,EAAE;YACtC,IAAA,wBAAY,EAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC;YACxE,GAAG,IAAA,uCAA2B,EAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC;SAC3F,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IAC5D,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,UAAU,GAAG,iBAAiB,CAAC;QAErC,IAAI,IAAA,mCAAsB,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YACvD,wDAAwD;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAA,yBAAe,EAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7D,OAAO,IAAI,CAAA,GAAG,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,oBAAoB,OAAO,CAAC,WAAW,oEAAoE,CAAC;QAC7J,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,IAAA,wCAAuB,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,mBAAyB,OAAe;IACtC,OAAO,IAAA,kBAAK,EAAC;QACX,wBAAwB,EAAE;QAC1B,CAAO,IAAU,EAAE,OAAyB,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAA,iCAAuB,EAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAA,4BAAkB,EAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,8BAAW,CAAC,WAAW,EAAE,CAAC;gBAClE,IAAI,IAAA,8BAAe,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACpC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,4EAA4E;gBAC1E,+DAA+D;gBAC/D,oFAAoF;gBACpF,SAAS,CACZ,CAAC;YACF,OAAO;QACT,CAAC,CAAA;KACF,CAAC,CAAC;AACL,CAAC;AAxBD,4BAwBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/ngx-pendo/schematics/ng-add/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAiF;AACjF,yDAA8D;AAC9D,qEAAkG;AAClG,2EAA6F;AAC7F,qEAAqE;AACrE,mFAA2E;AAC3E,qDAA2D;AAE3D,sCAA+C;AAC/C,4CAAqD;AACrD,8CAA+E;AAC/E,oDAA6D;AAE7D,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,SAAS,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IAC5D,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,aAAa,GAAG,IAAA,+BAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAA,qBAAe,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG;kBACP,OAAO,CAAC,WAAW;;GAElC,CAAC;QAEA,IAAA,2BAAkB,EAAC,IAAI,EAAE,aAAa,EAAE;YACtC,IAAA,wBAAY,EAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC;YACxE,GAAG,IAAA,uCAA2B,EAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC;SAC3F,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IAC5D,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,UAAU,GAAG,iBAAiB,CAAC;QAErC,IAAI,IAAA,mCAAsB,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YACvD,wDAAwD;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAA,yBAAe,EAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7D,OAAO,IAAI,CAAA,GAAG,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,oBAAoB,OAAO,CAAC,WAAW,oEAAoE,CAAC;QAC7J,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,IAAA,wCAAuB,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,mBAAyB,OAAe;IACtC,OAAO,IAAA,kBAAK,EAAC;QACX,wBAAwB,EAAE;QAC1B,CAAO,IAAU,EAAE,OAAyB,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAA,iCAAuB,EAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAA,4BAAkB,EAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,8BAAW,CAAC,WAAW,EAAE,CAAC;gBAClE,IAAI,IAAA,8BAAe,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACpC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,4EAA4E;gBAC1E,+DAA+D;gBAC/D,oFAAoF;gBACpF,SAAS,CACZ,CAAC;YACF,OAAO;QACT,CAAC,CAAA;KACF,CAAC,CAAC;AACL,CAAC;AAxBD,4BAwBC"}
@@ -0,0 +1,38 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ import * as ts from 'typescript';
3
+ /**
4
+ * Checks whether the providers from a module are being imported in a `bootstrapApplication` call.
5
+ * @param tree File tree of the project.
6
+ * @param filePath Path of the file in which to check.
7
+ * @param className Class name of the module to search for.
8
+ */
9
+ export declare function importsProvidersFrom(tree: Tree, filePath: string, className: string): boolean;
10
+ /**
11
+ * Checks whether a providers function is being called in a `bootstrapApplication` call.
12
+ * @param tree File tree of the project.
13
+ * @param filePath Path of the file in which to check.
14
+ * @param functionName Name of the function to search for.
15
+ */
16
+ export declare function callsProvidersFunction(tree: Tree, filePath: string, functionName: string): boolean;
17
+ /**
18
+ * Adds an `importProvidersFrom` call to the `bootstrapApplication` call.
19
+ * @param tree File tree of the project.
20
+ * @param filePath Path to the file that should be updated.
21
+ * @param moduleName Name of the module that should be imported.
22
+ * @param modulePath Path from which to import the module.
23
+ */
24
+ export declare function addModuleImportToStandaloneBootstrap(tree: Tree, filePath: string, moduleName: string, modulePath: string): void;
25
+ /**
26
+ * Adds a providers function call to the `bootstrapApplication` call.
27
+ * @param tree File tree of the project.
28
+ * @param filePath Path to the file that should be updated.
29
+ * @param functionName Name of the function that should be called.
30
+ * @param importPath Path from which to import the function.
31
+ * @param args Arguments to use when calling the function.
32
+ * @return The file path that the provider was added to.
33
+ */
34
+ export declare function addFunctionalProvidersToStandaloneBootstrap(tree: Tree, filePath: string, functionName: string, importPath: string, args?: ts.Expression[]): string;
35
+ /**
36
+ * Finds the call to `bootstrapApplication` within a file.
37
+ */
38
+ export declare function findBootstrapApplicationCall(sourceFile: ts.SourceFile): ts.CallExpression | null;
@@ -0,0 +1,367 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findBootstrapApplicationCall = exports.addFunctionalProvidersToStandaloneBootstrap = exports.addModuleImportToStandaloneBootstrap = exports.callsProvidersFunction = exports.importsProvidersFrom = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
6
+ const change_1 = require("@schematics/angular/utility/change");
7
+ const path_1 = require("path");
8
+ const ts = require("typescript");
9
+ /**
10
+ * Checks whether the providers from a module are being imported in a `bootstrapApplication` call.
11
+ * @param tree File tree of the project.
12
+ * @param filePath Path of the file in which to check.
13
+ * @param className Class name of the module to search for.
14
+ */
15
+ function importsProvidersFrom(tree, filePath, className) {
16
+ const sourceFile = createSourceFile(tree, filePath);
17
+ const bootstrapCall = findBootstrapApplicationCall(sourceFile);
18
+ const appConfig = bootstrapCall ? findAppConfig(bootstrapCall, tree, filePath) : null;
19
+ const importProvidersFromCall = appConfig ? findImportProvidersFromCall(appConfig.node) : null;
20
+ return !!(importProvidersFromCall === null || importProvidersFromCall === void 0 ? void 0 : importProvidersFromCall.arguments.some((arg) => ts.isIdentifier(arg) && arg.text === className));
21
+ }
22
+ exports.importsProvidersFrom = importsProvidersFrom;
23
+ /**
24
+ * Checks whether a providers function is being called in a `bootstrapApplication` call.
25
+ * @param tree File tree of the project.
26
+ * @param filePath Path of the file in which to check.
27
+ * @param functionName Name of the function to search for.
28
+ */
29
+ function callsProvidersFunction(tree, filePath, functionName) {
30
+ const sourceFile = createSourceFile(tree, filePath);
31
+ const bootstrapCall = findBootstrapApplicationCall(sourceFile);
32
+ const appConfig = bootstrapCall ? findAppConfig(bootstrapCall, tree, filePath) : null;
33
+ const providersLiteral = appConfig ? findProvidersLiteral(appConfig.node) : null;
34
+ return !!(providersLiteral === null || providersLiteral === void 0 ? void 0 : providersLiteral.elements.some((el) => ts.isCallExpression(el) && ts.isIdentifier(el.expression) && el.expression.text === functionName));
35
+ }
36
+ exports.callsProvidersFunction = callsProvidersFunction;
37
+ /**
38
+ * Adds an `importProvidersFrom` call to the `bootstrapApplication` call.
39
+ * @param tree File tree of the project.
40
+ * @param filePath Path to the file that should be updated.
41
+ * @param moduleName Name of the module that should be imported.
42
+ * @param modulePath Path from which to import the module.
43
+ */
44
+ function addModuleImportToStandaloneBootstrap(tree, filePath, moduleName, modulePath) {
45
+ const sourceFile = createSourceFile(tree, filePath);
46
+ const bootstrapCall = findBootstrapApplicationCall(sourceFile);
47
+ const addImports = (file, recorder) => {
48
+ const sourceText = file.getText();
49
+ [
50
+ (0, ast_utils_1.insertImport)(file, sourceText, moduleName, modulePath),
51
+ (0, ast_utils_1.insertImport)(file, sourceText, 'importProvidersFrom', '@angular/core')
52
+ ].forEach(change => {
53
+ if (change instanceof change_1.InsertChange) {
54
+ recorder.insertLeft(change.pos, change.toAdd);
55
+ }
56
+ });
57
+ };
58
+ if (!bootstrapCall) {
59
+ throw new schematics_1.SchematicsException(`Could not find bootstrapApplication call in ${filePath}`);
60
+ }
61
+ const importProvidersCall = ts.factory.createCallExpression(ts.factory.createIdentifier('importProvidersFrom'), [], [ts.factory.createIdentifier(moduleName)]);
62
+ // If there's only one argument, we have to create a new object literal.
63
+ if (bootstrapCall.arguments.length === 1) {
64
+ const recorder = tree.beginUpdate(filePath);
65
+ addNewAppConfigToCall(bootstrapCall, importProvidersCall, recorder);
66
+ addImports(sourceFile, recorder);
67
+ tree.commitUpdate(recorder);
68
+ return;
69
+ }
70
+ // If the config is a `mergeApplicationProviders` call, add another config to it.
71
+ if (isMergeAppConfigCall(bootstrapCall.arguments[1])) {
72
+ const recorder = tree.beginUpdate(filePath);
73
+ addNewAppConfigToCall(bootstrapCall.arguments[1], importProvidersCall, recorder);
74
+ addImports(sourceFile, recorder);
75
+ tree.commitUpdate(recorder);
76
+ return;
77
+ }
78
+ // Otherwise attempt to merge into the current config.
79
+ const appConfig = findAppConfig(bootstrapCall, tree, filePath);
80
+ if (!appConfig) {
81
+ throw new schematics_1.SchematicsException(`Could not statically analyze config in bootstrapApplication call in ${filePath}`);
82
+ }
83
+ const { filePath: configFilePath, node: config } = appConfig;
84
+ const recorder = tree.beginUpdate(configFilePath);
85
+ const importCall = findImportProvidersFromCall(config);
86
+ addImports(config.getSourceFile(), recorder);
87
+ if (importCall) {
88
+ // If there's an `importProvidersFrom` call already, add the module to it.
89
+ recorder.insertRight(importCall.arguments[importCall.arguments.length - 1].getEnd(), `, ${moduleName}`);
90
+ }
91
+ else {
92
+ const providersLiteral = findProvidersLiteral(config);
93
+ if (providersLiteral) {
94
+ // If there's a `providers` array, add the import to it.
95
+ addElementToArray(providersLiteral, importProvidersCall, recorder);
96
+ }
97
+ else {
98
+ // Otherwise add a `providers` array to the existing object literal.
99
+ addProvidersToObjectLiteral(config, importProvidersCall, recorder);
100
+ }
101
+ }
102
+ tree.commitUpdate(recorder);
103
+ }
104
+ exports.addModuleImportToStandaloneBootstrap = addModuleImportToStandaloneBootstrap;
105
+ /**
106
+ * Adds a providers function call to the `bootstrapApplication` call.
107
+ * @param tree File tree of the project.
108
+ * @param filePath Path to the file that should be updated.
109
+ * @param functionName Name of the function that should be called.
110
+ * @param importPath Path from which to import the function.
111
+ * @param args Arguments to use when calling the function.
112
+ * @return The file path that the provider was added to.
113
+ */
114
+ function addFunctionalProvidersToStandaloneBootstrap(tree, filePath, functionName, importPath, args = []) {
115
+ const sourceFile = createSourceFile(tree, filePath);
116
+ const bootstrapCall = findBootstrapApplicationCall(sourceFile);
117
+ const addImports = (file, recorder) => {
118
+ const change = (0, ast_utils_1.insertImport)(file, file.getText(), functionName, importPath);
119
+ if (change instanceof change_1.InsertChange) {
120
+ recorder.insertLeft(change.pos, change.toAdd);
121
+ }
122
+ };
123
+ if (!bootstrapCall) {
124
+ throw new schematics_1.SchematicsException(`Could not find bootstrapApplication call in ${filePath}`);
125
+ }
126
+ const providersCall = ts.factory.createCallExpression(ts.factory.createIdentifier(functionName), undefined, args);
127
+ // If there's only one argument, we have to create a new object literal.
128
+ if (bootstrapCall.arguments.length === 1) {
129
+ const recorder = tree.beginUpdate(filePath);
130
+ addNewAppConfigToCall(bootstrapCall, providersCall, recorder);
131
+ addImports(sourceFile, recorder);
132
+ tree.commitUpdate(recorder);
133
+ return filePath;
134
+ }
135
+ // If the config is a `mergeApplicationProviders` call, add another config to it.
136
+ if (isMergeAppConfigCall(bootstrapCall.arguments[1])) {
137
+ const recorder = tree.beginUpdate(filePath);
138
+ addNewAppConfigToCall(bootstrapCall.arguments[1], providersCall, recorder);
139
+ addImports(sourceFile, recorder);
140
+ tree.commitUpdate(recorder);
141
+ return filePath;
142
+ }
143
+ // Otherwise attempt to merge into the current config.
144
+ const appConfig = findAppConfig(bootstrapCall, tree, filePath);
145
+ if (!appConfig) {
146
+ throw new schematics_1.SchematicsException(`Could not statically analyze config in bootstrapApplication call in ${filePath}`);
147
+ }
148
+ const { filePath: configFilePath, node: config } = appConfig;
149
+ const recorder = tree.beginUpdate(configFilePath);
150
+ const providersLiteral = findProvidersLiteral(config);
151
+ addImports(config.getSourceFile(), recorder);
152
+ if (providersLiteral) {
153
+ // If there's a `providers` array, add the import to it.
154
+ addElementToArray(providersLiteral, providersCall, recorder);
155
+ }
156
+ else {
157
+ // Otherwise add a `providers` array to the existing object literal.
158
+ addProvidersToObjectLiteral(config, providersCall, recorder);
159
+ }
160
+ tree.commitUpdate(recorder);
161
+ return configFilePath;
162
+ }
163
+ exports.addFunctionalProvidersToStandaloneBootstrap = addFunctionalProvidersToStandaloneBootstrap;
164
+ /**
165
+ * Finds the call to `bootstrapApplication` within a file.
166
+ */
167
+ function findBootstrapApplicationCall(sourceFile) {
168
+ const localName = findImportLocalName(sourceFile, 'bootstrapApplication', '@angular/platform-browser');
169
+ if (!localName) {
170
+ return null;
171
+ }
172
+ let result = null;
173
+ sourceFile.forEachChild(function walk(node) {
174
+ if (ts.isCallExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === localName) {
175
+ result = node;
176
+ }
177
+ if (!result) {
178
+ node.forEachChild(walk);
179
+ }
180
+ });
181
+ return result;
182
+ }
183
+ exports.findBootstrapApplicationCall = findBootstrapApplicationCall;
184
+ /** Find a call to `importProvidersFrom` within an application config. */
185
+ function findImportProvidersFromCall(config) {
186
+ const importProvidersName = findImportLocalName(config.getSourceFile(), 'importProvidersFrom', '@angular/core');
187
+ const providersLiteral = findProvidersLiteral(config);
188
+ if (providersLiteral && importProvidersName) {
189
+ for (const element of providersLiteral.elements) {
190
+ // Look for an array element that calls the `importProvidersFrom` function.
191
+ if (ts.isCallExpression(element) &&
192
+ ts.isIdentifier(element.expression) &&
193
+ element.expression.text === importProvidersName) {
194
+ return element;
195
+ }
196
+ }
197
+ }
198
+ return null;
199
+ }
200
+ /** Finds the `providers` array literal within an application config. */
201
+ function findProvidersLiteral(config) {
202
+ for (const prop of config.properties) {
203
+ if (ts.isPropertyAssignment(prop) &&
204
+ ts.isIdentifier(prop.name) &&
205
+ prop.name.text === 'providers' &&
206
+ ts.isArrayLiteralExpression(prop.initializer)) {
207
+ return prop.initializer;
208
+ }
209
+ }
210
+ return null;
211
+ }
212
+ /**
213
+ * Resolves the node that defines the app config from a bootstrap call.
214
+ * @param bootstrapCall Call for which to resolve the config.
215
+ * @param tree File tree of the project.
216
+ * @param filePath File path of the bootstrap call.
217
+ */
218
+ function findAppConfig(bootstrapCall, tree, filePath) {
219
+ if (bootstrapCall.arguments.length > 1) {
220
+ const config = bootstrapCall.arguments[1];
221
+ if (ts.isObjectLiteralExpression(config)) {
222
+ return { filePath, node: config };
223
+ }
224
+ if (ts.isIdentifier(config)) {
225
+ return resolveAppConfigFromIdentifier(config, tree, filePath);
226
+ }
227
+ }
228
+ return null;
229
+ }
230
+ /**
231
+ * Resolves the app config from an identifier referring to it.
232
+ * @param identifier Identifier referring to the app config.
233
+ * @param tree File tree of the project.
234
+ * @param bootstapFilePath Path of the bootstrap call.
235
+ */
236
+ function resolveAppConfigFromIdentifier(identifier, tree, bootstapFilePath) {
237
+ var _a;
238
+ const sourceFile = identifier.getSourceFile();
239
+ for (const node of sourceFile.statements) {
240
+ // Only look at relative imports. This will break if the app uses a path
241
+ // mapping to refer to the import, but in order to resolve those, we would
242
+ // need knowledge about the entire program.
243
+ if (!ts.isImportDeclaration(node) ||
244
+ !((_a = node.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings) ||
245
+ !ts.isNamedImports(node.importClause.namedBindings) ||
246
+ !ts.isStringLiteralLike(node.moduleSpecifier) ||
247
+ !node.moduleSpecifier.text.startsWith('.')) {
248
+ continue;
249
+ }
250
+ for (const specifier of node.importClause.namedBindings.elements) {
251
+ if (specifier.name.text !== identifier.text) {
252
+ continue;
253
+ }
254
+ // Look for a variable with the imported name in the file. Note that ideally we would use
255
+ // the type checker to resolve this, but we can't because these utilities are set up to
256
+ // operate on individual files, not the entire program.
257
+ const filePath = (0, path_1.join)((0, path_1.dirname)(bootstapFilePath), node.moduleSpecifier.text + '.ts');
258
+ const importedSourceFile = createSourceFile(tree, filePath);
259
+ const resolvedVariable = findAppConfigFromVariableName(importedSourceFile, (specifier.propertyName || specifier.name).text);
260
+ if (resolvedVariable) {
261
+ return { filePath, node: resolvedVariable };
262
+ }
263
+ }
264
+ }
265
+ const variableInSameFile = findAppConfigFromVariableName(sourceFile, identifier.text);
266
+ return variableInSameFile ? { filePath: bootstapFilePath, node: variableInSameFile } : null;
267
+ }
268
+ /**
269
+ * Finds an app config within the top-level variables of a file.
270
+ * @param sourceFile File in which to search for the config.
271
+ * @param variableName Name of the variable containing the config.
272
+ */
273
+ function findAppConfigFromVariableName(sourceFile, variableName) {
274
+ for (const node of sourceFile.statements) {
275
+ if (ts.isVariableStatement(node)) {
276
+ for (const decl of node.declarationList.declarations) {
277
+ if (ts.isIdentifier(decl.name) &&
278
+ decl.name.text === variableName &&
279
+ decl.initializer &&
280
+ ts.isObjectLiteralExpression(decl.initializer)) {
281
+ return decl.initializer;
282
+ }
283
+ }
284
+ }
285
+ }
286
+ return null;
287
+ }
288
+ /**
289
+ * Finds the local name of an imported symbol. Could be the symbol name itself or its alias.
290
+ * @param sourceFile File within which to search for the import.
291
+ * @param name Actual name of the import, not its local alias.
292
+ * @param moduleName Name of the module from which the symbol is imported.
293
+ */
294
+ function findImportLocalName(sourceFile, name, moduleName) {
295
+ for (const node of sourceFile.statements) {
296
+ // Only look for top-level imports.
297
+ if (!ts.isImportDeclaration(node) ||
298
+ !ts.isStringLiteral(node.moduleSpecifier) ||
299
+ node.moduleSpecifier.text !== moduleName) {
300
+ continue;
301
+ }
302
+ // Filter out imports that don't have the right shape.
303
+ if (!node.importClause || !node.importClause.namedBindings || !ts.isNamedImports(node.importClause.namedBindings)) {
304
+ continue;
305
+ }
306
+ // Look through the elements of the declaration for the specific import.
307
+ for (const element of node.importClause.namedBindings.elements) {
308
+ if ((element.propertyName || element.name).text === name) {
309
+ // The local name is always in `name`.
310
+ return element.name.text;
311
+ }
312
+ }
313
+ }
314
+ return null;
315
+ }
316
+ /** Creates a source file from a file path within a project. */
317
+ function createSourceFile(tree, filePath) {
318
+ return ts.createSourceFile(filePath, tree.readText(filePath), ts.ScriptTarget.Latest, true);
319
+ }
320
+ /**
321
+ * Creates a new app config object literal and adds it to a call expression as an argument.
322
+ * @param call Call to which to add the config.
323
+ * @param expression Expression that should inserted into the new config.
324
+ * @param recorder Recorder to which to log the change.
325
+ */
326
+ function addNewAppConfigToCall(call, expression, recorder) {
327
+ const newCall = ts.factory.updateCallExpression(call, call.expression, call.typeArguments, [
328
+ ...call.arguments,
329
+ ts.factory.createObjectLiteralExpression([ts.factory.createPropertyAssignment('providers', ts.factory.createArrayLiteralExpression([expression]))], true)
330
+ ]);
331
+ recorder.remove(call.getStart(), call.getWidth());
332
+ recorder.insertRight(call.getStart(), ts.createPrinter().printNode(ts.EmitHint.Unspecified, newCall, call.getSourceFile()));
333
+ }
334
+ /**
335
+ * Adds an element to an array literal expression.
336
+ * @param node Array to which to add the element.
337
+ * @param element Element to be added.
338
+ * @param recorder Recorder to which to log the change.
339
+ */
340
+ function addElementToArray(node, element, recorder) {
341
+ const newLiteral = ts.factory.updateArrayLiteralExpression(node, [...node.elements, element]);
342
+ recorder.remove(node.getStart(), node.getWidth());
343
+ recorder.insertRight(node.getStart(), ts.createPrinter().printNode(ts.EmitHint.Unspecified, newLiteral, node.getSourceFile()));
344
+ }
345
+ /**
346
+ * Adds a `providers` property to an object literal.
347
+ * @param node Literal to which to add the `providers`.
348
+ * @param expression Provider that should be part of the generated `providers` array.
349
+ * @param recorder Recorder to which to log the change.
350
+ */
351
+ function addProvidersToObjectLiteral(node, expression, recorder) {
352
+ const newOptionsLiteral = ts.factory.updateObjectLiteralExpression(node, [
353
+ ...node.properties,
354
+ ts.factory.createPropertyAssignment('providers', ts.factory.createArrayLiteralExpression([expression]))
355
+ ]);
356
+ recorder.remove(node.getStart(), node.getWidth());
357
+ recorder.insertRight(node.getStart(), ts.createPrinter().printNode(ts.EmitHint.Unspecified, newOptionsLiteral, node.getSourceFile()));
358
+ }
359
+ /** Checks whether a node is a call to `mergeApplicationConfig`. */
360
+ function isMergeAppConfigCall(node) {
361
+ if (!ts.isCallExpression(node)) {
362
+ return false;
363
+ }
364
+ const localName = findImportLocalName(node.getSourceFile(), 'mergeApplicationConfig', '@angular/core');
365
+ return !!localName && ts.isIdentifier(node.expression) && node.expression.text === localName;
366
+ }
367
+ //# sourceMappingURL=standalone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../../../../projects/ngx-pendo/schematics/utils/standalone.ts"],"names":[],"mappings":"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"}