@adaptabletools/adaptable-angular-aggrid 19.2.4 → 20.0.0-canary.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.
@@ -1,4 +1,5 @@
1
1
  import { Attribute, Component } from '@angular/core';
2
+ import { ColumnApiModule } from 'ag-grid-enterprise';
2
3
  import { _AdaptableAgGrid } from '@adaptabletools/adaptable/agGrid';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "./adaptable-controller.service";
@@ -6,30 +7,33 @@ import * as i2 from "@angular/common";
6
7
  function getRandomInt(max) {
7
8
  return Math.floor(Math.random() * Math.floor(max));
8
9
  }
10
+ const columnApiModule = ColumnApiModule;
9
11
  export class AdaptableUI {
10
12
  constructor(elementId, adaptableControllerService) {
11
13
  this.adaptableControllerService = adaptableControllerService;
14
+ this.adaptableApi = null;
15
+ this.isDestroyed = false;
12
16
  this.readyForAdaptableInit = false;
13
17
  this.adaptableContainerId = elementId || `adaptable-${getRandomInt(1000)}-${Date.now()}`;
14
18
  this.phaseSubscription = this.adaptableControllerService
15
19
  .currentInitPhase()
16
20
  .subscribe((phase) => {
17
- if (phase === 'waitForAdaptableInit') {
21
+ if (phase === 'waitForAdaptableInit' && !this.isDestroyed) {
18
22
  this.readyForAdaptableInit = true;
19
23
  this.initializeAdaptable();
20
24
  }
21
25
  });
22
26
  }
23
27
  ngOnDestroy() {
28
+ this.isDestroyed = true;
24
29
  this.phaseSubscription?.unsubscribe();
25
- if (!this.adaptableApi) {
26
- return;
30
+ if (this.adaptableApi) {
31
+ this.adaptableApi.destroy({
32
+ unmount: true,
33
+ destroyAgGrid: false,
34
+ });
35
+ this.adaptableApi = null;
27
36
  }
28
- this.adaptableApi.destroy({
29
- unmount: true,
30
- destroyAgGrid: false,
31
- });
32
- this.adaptableApi = null;
33
37
  }
34
38
  get adaptableOptions() {
35
39
  return this.adaptableControllerService.adaptableOptions;
@@ -40,18 +44,31 @@ export class AdaptableUI {
40
44
  get modules() {
41
45
  return this.adaptableControllerService.modules;
42
46
  }
43
- initializeAdaptable() {
47
+ async initializeAdaptable() {
48
+ if (this.isDestroyed) {
49
+ return;
50
+ }
44
51
  this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};
45
52
  this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;
46
- _AdaptableAgGrid
47
- ._initInternal({
48
- adaptableOptions: this.adaptableOptions,
49
- gridOptions: this.gridOptions,
50
- modules: this.modules,
51
- variant: 'angular',
52
- renderAgGridFrameworkComponent: (gridOptions) => this.adaptableControllerService.renderAgGridFrameworkComponent(gridOptions),
53
- })
54
- .then((adaptableApi) => {
53
+ try {
54
+ const adaptableApi = await _AdaptableAgGrid._initInternal({
55
+ adaptableOptions: this.adaptableOptions,
56
+ gridOptions: this.gridOptions,
57
+ modules: this.modules,
58
+ variant: 'angular',
59
+ renderAgGridFrameworkComponent: (gridOptions) => this.adaptableControllerService.renderAgGridFrameworkComponent(gridOptions),
60
+ getAgGridColumnApiModuleReference: () => {
61
+ return columnApiModule;
62
+ },
63
+ });
64
+ // Check if component was destroyed during initialization
65
+ if (this.isDestroyed) {
66
+ adaptableApi.destroy({
67
+ unmount: true,
68
+ destroyAgGrid: false,
69
+ });
70
+ return;
71
+ }
55
72
  this.adaptableApi = adaptableApi;
56
73
  adaptableApi.internalApi
57
74
  .getAdaptableInstance()
@@ -64,16 +81,26 @@ export class AdaptableUI {
64
81
  }
65
82
  });
66
83
  adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo) => this.adaptableControllerService.onAdaptableReady(adaptableReadyInfo));
67
- });
84
+ }
85
+ catch (error) {
86
+ console.error('Failed to initialize Adaptable:', error);
87
+ if (!this.isDestroyed) {
88
+ this.adaptableApi?.destroy({
89
+ unmount: true,
90
+ destroyAgGrid: false,
91
+ });
92
+ this.adaptableApi = null;
93
+ }
94
+ }
68
95
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableUI, deps: [{ token: 'id', attribute: true }, { token: i1.AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdaptableUI, selector: "adaptable-ui", ngImport: i0, template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableUI, deps: [{ token: 'id', attribute: true }, { token: i1.AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AdaptableUI, selector: "adaptable-ui", ngImport: i0, template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
71
98
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableUI, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableUI, decorators: [{
73
100
  type: Component,
74
101
  args: [{ selector: 'adaptable-ui', template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>` }]
75
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
102
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
76
103
  type: Attribute,
77
104
  args: ['id']
78
- }] }, { type: i1.AdaptableControllerService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLXVpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC9zcmMvbGliL2FkYXB0YWJsZS11aS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFLcEUsU0FBUyxZQUFZLENBQUMsR0FBVztJQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBT0QsTUFBTSxPQUFPLFdBQVc7SUFPdEIsWUFDbUIsU0FBaUIsRUFDMUIsMEJBQXNEO1FBQXRELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFFOUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxJQUFJLGFBQWEsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBRXpGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCO2FBQ3JELGdCQUFnQixFQUFFO2FBQ2xCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksS0FBSyxLQUFLLHNCQUFzQixFQUFFO2dCQUNwQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDeEIsT0FBTyxFQUFFLElBQUk7WUFDYixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDO0lBQ2pELENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFDdEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUV0RixnQkFBZ0I7YUFDYixhQUFhLENBQUM7WUFDYixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsOEJBQThCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsOEJBQThCLENBQUMsV0FBVyxDQUFDO1NBQzlFLENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUVqQyxZQUFZLENBQUMsV0FBVztpQkFDckIsb0JBQW9CLEVBQUU7aUJBQ3RCLGVBQWUsQ0FDZCwwQkFBMEIsRUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFO2dCQUNuRSxJQUFJLE9BQU8sS0FBSyxRQUFRLEVBQUU7b0JBQ3hCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FDdEQsa0JBQStDLEVBQy9DLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsWUFBWSxDQUNiLENBQUM7aUJBQ0g7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLDBCQUEwQixDQUFDLHlCQUF5QixDQUN2RCxrQkFBK0MsRUFDL0MsYUFBYSxFQUNiLFlBQVksQ0FDYixDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUNGLENBQUM7WUFFSixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGtCQUFzQyxFQUFFLEVBQUUsQ0FDcEYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQ3JFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBeEZVLFdBQVcsa0JBUVQsSUFBSTttR0FSTixXQUFXLG9EQUhaLHdFQUF3RTs7NEZBR3ZFLFdBQVc7a0JBTHZCLFNBQVM7K0JBQ0UsY0FBYyxZQUNkLHdFQUF3RTs7MEJBVy9FLFNBQVM7MkJBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ29tcG9uZW50LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZGFwdGFibGUtY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkYXB0YWJsZUFwaSB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvc3JjL0FwaS9BZGFwdGFibGVBcGknO1xuaW1wb3J0IHsgX0FkYXB0YWJsZUFnR3JpZCB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvYWdHcmlkJztcbmltcG9ydCB7IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnQgfSBmcm9tICdAYWRhcHRhYmxldG9vbHMvYWRhcHRhYmxlL3NyYy9BZGFwdGFibGVPcHRpb25zL0FkYXB0YWJsZUZyYW1ld29ya0NvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGFwdGFibGVSZWFkeUluZm8gfSBmcm9tICdAYWRhcHRhYmxldG9vbHMvYWRhcHRhYmxlL3NyYy9BcGkvRXZlbnRzL0FkYXB0YWJsZVJlYWR5JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5mdW5jdGlvbiBnZXRSYW5kb21JbnQobWF4OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihtYXgpKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRhcHRhYmxlLXVpJyxcbiAgdGVtcGxhdGU6IGAgPGRpdiAqbmdJZj1cInJlYWR5Rm9yQWRhcHRhYmxlSW5pdFwiIFtpZF09XCJhZGFwdGFibGVDb250YWluZXJJZFwiPjwvZGl2PmAsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFkYXB0YWJsZVVJIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZHlGb3JBZGFwdGFibGVJbml0OiBib29sZWFuO1xuICBhZGFwdGFibGVDb250YWluZXJJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgYWRhcHRhYmxlQXBpOiBBZGFwdGFibGVBcGk7XG5cbiAgcHJpdmF0ZSBwaGFzZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBAQXR0cmlidXRlKCdpZCcpIGVsZW1lbnRJZDogc3RyaW5nLFxuICAgIHByaXZhdGUgYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2U6IEFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVhZHlGb3JBZGFwdGFibGVJbml0ID0gZmFsc2U7XG4gICAgdGhpcy5hZGFwdGFibGVDb250YWluZXJJZCA9IGVsZW1lbnRJZCB8fCBgYWRhcHRhYmxlLSR7Z2V0UmFuZG9tSW50KDEwMDApfS0ke0RhdGUubm93KCl9YDtcblxuICAgIHRoaXMucGhhc2VTdWJzY3JpcHRpb24gPSB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlXG4gICAgICAuY3VycmVudEluaXRQaGFzZSgpXG4gICAgICAuc3Vic2NyaWJlKChwaGFzZSkgPT4ge1xuICAgICAgICBpZiAocGhhc2UgPT09ICd3YWl0Rm9yQWRhcHRhYmxlSW5pdCcpIHtcbiAgICAgICAgICB0aGlzLnJlYWR5Rm9yQWRhcHRhYmxlSW5pdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplQWRhcHRhYmxlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucGhhc2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKCF0aGlzLmFkYXB0YWJsZUFwaSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFkYXB0YWJsZUFwaS5kZXN0cm95KHtcbiAgICAgIHVubW91bnQ6IHRydWUsXG4gICAgICBkZXN0cm95QWdHcmlkOiBmYWxzZSxcbiAgICB9KTtcbiAgICB0aGlzLmFkYXB0YWJsZUFwaSA9IG51bGw7XG4gIH1cbiAgZ2V0IGFkYXB0YWJsZU9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UuYWRhcHRhYmxlT3B0aW9ucztcbiAgfVxuXG4gIGdldCBncmlkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGFibGVDb250cm9sbGVyU2VydmljZS5ncmlkT3B0aW9ucztcbiAgfVxuXG4gIGdldCBtb2R1bGVzKCkge1xuICAgIHJldHVybiB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLm1vZHVsZXM7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVBZGFwdGFibGUoKSB7XG4gICAgdGhpcy5hZGFwdGFibGVPcHRpb25zLmNvbnRhaW5lck9wdGlvbnMgPSB0aGlzLmFkYXB0YWJsZU9wdGlvbnMuY29udGFpbmVyT3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLmFkYXB0YWJsZU9wdGlvbnMuY29udGFpbmVyT3B0aW9ucy5hZGFwdGFibGVDb250YWluZXIgPSB0aGlzLmFkYXB0YWJsZUNvbnRhaW5lcklkO1xuXG4gICAgX0FkYXB0YWJsZUFnR3JpZFxuICAgICAgLl9pbml0SW50ZXJuYWwoe1xuICAgICAgICBhZGFwdGFibGVPcHRpb25zOiB0aGlzLmFkYXB0YWJsZU9wdGlvbnMsXG4gICAgICAgIGdyaWRPcHRpb25zOiB0aGlzLmdyaWRPcHRpb25zLFxuICAgICAgICBtb2R1bGVzOiB0aGlzLm1vZHVsZXMsXG4gICAgICAgIHZhcmlhbnQ6ICdhbmd1bGFyJyxcbiAgICAgICAgcmVuZGVyQWdHcmlkRnJhbWV3b3JrQ29tcG9uZW50OiAoZ3JpZE9wdGlvbnMpID0+XG4gICAgICAgICAgdGhpcy5hZGFwdGFibGVDb250cm9sbGVyU2VydmljZS5yZW5kZXJBZ0dyaWRGcmFtZXdvcmtDb21wb25lbnQoZ3JpZE9wdGlvbnMpLFxuICAgICAgfSlcbiAgICAgIC50aGVuKChhZGFwdGFibGVBcGkpID0+IHtcbiAgICAgICAgdGhpcy5hZGFwdGFibGVBcGkgPSBhZGFwdGFibGVBcGk7XG5cbiAgICAgICAgYWRhcHRhYmxlQXBpLmludGVybmFsQXBpXG4gICAgICAgICAgLmdldEFkYXB0YWJsZUluc3RhbmNlKClcbiAgICAgICAgICAuX29uSW5jbHVkZUZpcmVkKFxuICAgICAgICAgICAgJ0ZyYW1ld29ya0NvbXBvbmVudENoYW5nZScsXG4gICAgICAgICAgICAoeyBjb21tYW5kLCBmcmFtZXdvcmtDb21wb25lbnQsIGNvbnRhaW5lckRvbU5vZGUsIGNvbXBvbmVudFR5cGUgfSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoY29tbWFuZCA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLmNyZWF0ZUZyYW1ld29ya0NvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgIGZyYW1ld29ya0NvbXBvbmVudCBhcyBBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyRG9tTm9kZSxcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFR5cGUsXG4gICAgICAgICAgICAgICAgICBhZGFwdGFibGVBcGlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UuZGVzdHJveUZyYW1ld29ya0NvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgIGZyYW1ld29ya0NvbXBvbmVudCBhcyBBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50VHlwZSxcbiAgICAgICAgICAgICAgICAgIGFkYXB0YWJsZUFwaVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgIGFkYXB0YWJsZUFwaS5ldmVudEFwaS5vbignQWRhcHRhYmxlUmVhZHknLCAoYWRhcHRhYmxlUmVhZHlJbmZvOiBBZGFwdGFibGVSZWFkeUluZm8pID0+XG4gICAgICAgICAgdGhpcy5hZGFwdGFibGVDb250cm9sbGVyU2VydmljZS5vbkFkYXB0YWJsZVJlYWR5KGFkYXB0YWJsZVJlYWR5SW5mbylcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
105
+ }] }, { type: i1.AdaptableControllerService }] });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLXVpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC9zcmMvbGliL2FkYXB0YWJsZS11aS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUF1QixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUkxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUtwRSxTQUFTLFlBQVksQ0FBQyxHQUFXO0lBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFPeEMsTUFBTSxPQUFPLFdBQVc7SUFRdEIsWUFDbUIsU0FBaUIsRUFDMUIsMEJBQXNEO1FBQXRELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFOeEQsaUJBQVksR0FBd0IsSUFBSSxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBTzFCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsSUFBSSxhQUFhLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUV6RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQjthQUNyRCxnQkFBZ0IsRUFBRTthQUNsQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLEtBQUssS0FBSyxzQkFBc0IsSUFBSSxDQUFDLElB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RUosWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFLENBQ3BGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNyRSxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDO29CQUN6QixPQUFPLEVBQUUsSUFBSTtvQkFDYixhQUFhLEVBQUUsS0FBSztpQkFDckIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FySFUsV0FBVyxrQkFTVCxJQUFJO21HQVROLFdBQVcsb0RBSFosd0VBQXdFOzs0RkFHdkUsV0FBVztrQkFMdkIsU0FBUzsrQkFDRSxjQUFjLFlBQ2Qsd0VBQXdFOzswQkFZL0UsU0FBUzsyQkFBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZE9wdGlvbnMsIE1vZHVsZSwgQ29sdW1uQXBpTW9kdWxlIH0gZnJvbSAnYWctZ3JpZC1lbnRlcnByaXNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UgfSBmcm9tICcuL2FkYXB0YWJsZS1jb250cm9sbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRhcHRhYmxlQXBpIH0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9zcmMvQXBpL0FkYXB0YWJsZUFwaSc7XG5pbXBvcnQgeyBfQWRhcHRhYmxlQWdHcmlkIH0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9hZ0dyaWQnO1xuaW1wb3J0IHsgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvc3JjL2FnR3JpZC9BZGFwdGFibGVGcmFtZXdvcmtDb21wb25lbnQnO1xuaW1wb3J0IHsgQWRhcHRhYmxlUmVhZHlJbmZvIH0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9zcmMvQXBpL0V2ZW50cy9BZGFwdGFibGVSZWFkeSc7XG5pbXBvcnQgeyBBZGFwdGFibGVPcHRpb25zIH0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9zcmMvQWRhcHRhYmxlT3B0aW9ucy9BZGFwdGFibGVPcHRpb25zJztcblxuZnVuY3Rpb24gZ2V0UmFuZG9tSW50KG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IobWF4KSk7XG59XG5cbmNvbnN0IGNvbHVtbkFwaU1vZHVsZSA9IENvbHVtbkFwaU1vZHVsZTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRhcHRhYmxlLXVpJyxcbiAgdGVtcGxhdGU6IGAgPGRpdiAqbmdJZj1cInJlYWR5Rm9yQWRhcHRhYmxlSW5pdFwiIFtpZF09XCJhZGFwdGFibGVDb250YWluZXJJZFwiPjwvZGl2PmAsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFkYXB0YWJsZVVJIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZHlGb3JBZGFwdGFibGVJbml0OiBib29sZWFuO1xuICBhZGFwdGFibGVDb250YWluZXJJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgYWRhcHRhYmxlQXBpOiBBZGFwdGFibGVBcGkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICBwcml2YXRlIHBoYXNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgnaWQnKSBlbGVtZW50SWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIGFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlOiBBZGFwdGFibGVDb250cm9sbGVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJlYWR5Rm9yQWRhcHRhYmxlSW5pdCA9IGZhbHNlO1xuICAgIHRoaXMuYWRhcHRhYmxlQ29udGFpbmVySWQgPSBlbGVtZW50SWQgfHwgYGFkYXB0YWJsZS0ke2dldFJhbmRvbUludCgxMDAwKX0tJHtEYXRlLm5vdygpfWA7XG5cbiAgICB0aGlzLnBoYXNlU3Vic2NyaXB0aW9uID0gdGhpcy5hZGFwdGFibGVDb250cm9sbGVyU2VydmljZVxuICAgICAgLmN1cnJlbnRJbml0UGhhc2UoKVxuICAgICAgLnN1YnNjcmliZSgocGhhc2UpID0+IHtcbiAgICAgICAgaWYgKHBoYXNlID09PSAnd2FpdEZvckFkYXB0YWJsZUluaXQnICYmICF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgdGhpcy5yZWFkeUZvckFkYXB0YWJsZUluaXQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUFkYXB0YWJsZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIHRoaXMucGhhc2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAodGhpcy5hZGFwdGFibGVBcGkpIHtcbiAgICAgIHRoaXMuYWRhcHRhYmxlQXBpLmRlc3Ryb3koe1xuICAgICAgICB1bm1vdW50OiB0cnVlLFxuICAgICAgICBkZXN0cm95QWdHcmlkOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGFwdGFibGVBcGkgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhZGFwdGFibGVPcHRpb25zKCk6IEFkYXB0YWJsZU9wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLmFkYXB0YWJsZU9wdGlvbnM7XG4gIH1cblxuICBnZXQgZ3JpZE9wdGlvbnMoKTogR3JpZE9wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLmdyaWRPcHRpb25zO1xuICB9XG5cbiAgZ2V0IG1vZHVsZXMoKTogTW9kdWxlW10ge1xuICAgIHJldHVybiB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLm1vZHVsZXM7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVBZGFwdGFibGUoKSB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFkYXB0YWJsZU9wdGlvbnMuY29udGFpbmVyT3B0aW9ucyA9IHRoaXMuYWRhcHRhYmxlT3B0aW9ucy5jb250YWluZXJPcHRpb25zIHx8IHt9O1xuICAgIHRoaXMuYWRhcHRhYmxlT3B0aW9ucy5jb250YWluZXJPcHRpb25zLmFkYXB0YWJsZUNvbnRhaW5lciA9IHRoaXMuYWRhcHRhYmxlQ29udGFpbmVySWQ7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgYWRhcHRhYmxlQXBpOiBBZGFwdGFibGVBcGkgPSBhd2FpdCBfQWRhcHRhYmxlQWdHcmlkLl9pbml0SW50ZXJuYWwoe1xuICAgICAgICBhZGFwdGFibGVPcHRpb25zOiB0aGlzLmFkYXB0YWJsZU9wdGlvbnMsXG4gICAgICAgIGdyaWRPcHRpb25zOiB0aGlzLmdyaWRPcHRpb25zLFxuICAgICAgICBtb2R1bGVzOiB0aGlzLm1vZHVsZXMsXG4gICAgICAgIHZhcmlhbnQ6ICdhbmd1bGFyJyxcbiAgICAgICAgcmVuZGVyQWdHcmlkRnJhbWV3b3JrQ29tcG9uZW50OiAoZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zKSA9PlxuICAgICAgICAgIHRoaXMuYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UucmVuZGVyQWdHcmlkRnJhbWV3b3JrQ29tcG9uZW50KGdyaWRPcHRpb25zKSxcbiAgICAgICAgZ2V0QWdHcmlkQ29sdW1uQXBpTW9kdWxlUmVmZXJlbmNlOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbHVtbkFwaU1vZHVsZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBDaGVjayBpZiBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgIGFkYXB0YWJsZUFwaS5kZXN0cm95KHtcbiAgICAgICAgICB1bm1vdW50OiB0cnVlLFxuICAgICAgICAgIGRlc3Ryb3lBZ0dyaWQ6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFkYXB0YWJsZUFwaSA9IGFkYXB0YWJsZUFwaTtcblxuICAgICAgYWRhcHRhYmxlQXBpLmludGVybmFsQXBpXG4gICAgICAgIC5nZXRBZGFwdGFibGVJbnN0YW5jZSgpXG4gICAgICAgIC5fb25JbmNsdWRlRmlyZWQoXG4gICAgICAgICAgJ0ZyYW1ld29ya0NvbXBvbmVudENoYW5nZScsXG4gICAgICAgICAgKHsgY29tbWFuZCwgZnJhbWV3b3JrQ29tcG9uZW50LCBjb250YWluZXJEb21Ob2RlLCBjb21wb25lbnRUeXBlIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChjb21tYW5kID09PSAnY3JlYXRlJykge1xuICAgICAgICAgICAgICB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLmNyZWF0ZUZyYW1ld29ya0NvbXBvbmVudChcbiAgICAgICAgICAgICAgICBmcmFtZXdvcmtDb21wb25lbnQgYXMgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjb250YWluZXJEb21Ob2RlLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudFR5cGUsXG4gICAgICAgICAgICAgICAgYWRhcHRhYmxlQXBpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLmRlc3Ryb3lGcmFtZXdvcmtDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgZnJhbWV3b3JrQ29tcG9uZW50IGFzIEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50VHlwZSxcbiAgICAgICAgICAgICAgICBhZGFwdGFibGVBcGlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgIGFkYXB0YWJsZUFwaS5ldmVudEFwaS5vbignQWRhcHRhYmxlUmVhZHknLCAoYWRhcHRhYmxlUmVhZHlJbmZvOiBBZGFwdGFibGVSZWFkeUluZm8pID0+XG4gICAgICAgIHRoaXMuYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2Uub25BZGFwdGFibGVSZWFkeShhZGFwdGFibGVSZWFkeUluZm8pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gaW5pdGlhbGl6ZSBBZGFwdGFibGU6JywgZXJyb3IpO1xuICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgIHRoaXMuYWRhcHRhYmxlQXBpPy5kZXN0cm95KHtcbiAgICAgICAgICB1bm1vdW50OiB0cnVlLFxuICAgICAgICAgIGRlc3Ryb3lBZ0dyaWQ6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGFwdGFibGVBcGkgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -2,10 +2,10 @@ export * from '@adaptabletools/adaptable/src/types';
2
2
  import { _AdaptableAgGrid } from '@adaptabletools/adaptable/agGrid';
3
3
  export { AdaptableQL, AdaptableUpgradeHelper } from '@adaptabletools/adaptable/agGrid';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, EventEmitter, Injector, createComponent, Injectable, Directive, Component, Input, Output, ContentChild, Attribute, NgModule } from '@angular/core';
5
+ import { InjectionToken, EventEmitter, Injector, createComponent, Injectable, Directive, ContentChild, Output, Input, Component, Attribute, NgModule } from '@angular/core';
6
6
  import * as i2 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
8
- import { PropertyKeys } from '@ag-grid-community/core';
8
+ import { _ALL_GRID_OPTIONS, ColumnApiModule } from 'ag-grid-enterprise';
9
9
  import { BehaviorSubject } from 'rxjs';
10
10
 
11
11
  const ADAPTABLE_API = new InjectionToken('ADAPTABLE_API');
@@ -114,12 +114,12 @@ class AdaptableControllerService {
114
114
  componentRef.changeDetectorRef.detectChanges();
115
115
  return componentRef;
116
116
  }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableControllerService, deps: [{ token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
118
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableControllerService }); }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableControllerService, deps: [{ token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
118
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableControllerService }); }
119
119
  }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableControllerService, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableControllerService, decorators: [{
121
121
  type: Injectable
122
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.ApplicationRef }]; } });
122
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.ApplicationRef }] });
123
123
 
124
124
  class AdaptableAgGridDirective {
125
125
  constructor(viewContainer, templateRef, adaptableControllerService, changeDetectorRef) {
@@ -155,15 +155,15 @@ class AdaptableAgGridDirective {
155
155
  originalGridReady?.(params);
156
156
  };
157
157
  }
158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableAgGridDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: AdaptableControllerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
159
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AdaptableAgGridDirective, selector: "[adaptable]", ngImport: i0 }); }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableAgGridDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: AdaptableControllerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
159
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AdaptableAgGridDirective, selector: "[adaptable]", ngImport: i0 }); }
160
160
  }
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableAgGridDirective, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableAgGridDirective, decorators: [{
162
162
  type: Directive,
163
163
  args: [{
164
164
  selector: '[adaptable]',
165
165
  }]
166
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: AdaptableControllerService }, { type: i0.ChangeDetectorRef }]; } });
166
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: AdaptableControllerService }, { type: i0.ChangeDetectorRef }] });
167
167
 
168
168
  class AdaptableProvider {
169
169
  constructor(adaptableControllerService, elementRef) {
@@ -238,7 +238,7 @@ class AdaptableProvider {
238
238
  return camelCaseKey;
239
239
  })
240
240
  .filter((key) => !ALLOWED_AG_GRID_ANGULAR_INPUTS.includes(key));
241
- const gridOptionsKeys = PropertyKeys.ALL_PROPERTIES;
241
+ const gridOptionsKeys = _ALL_GRID_OPTIONS;
242
242
  const notAllowedInputs = gridOptionsKeys.filter((key) => normalisedComponentInputs.includes(key));
243
243
  if (notAllowedInputs.length) {
244
244
  console.warn(`Warning: Found ${notAllowedInputs.length} input(s) that are not allowed to be passed as Angular inputs:
@@ -250,10 +250,10 @@ These inputs should pe passed as properties of the 'gridOptions' parameter.
250
250
  See the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration`);
251
251
  }
252
252
  }
253
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableProvider, deps: [{ token: AdaptableControllerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdaptableProvider, selector: "adaptable-provider", inputs: { adaptableOptions: "adaptableOptions", gridOptions: "gridOptions", modules: "modules" }, outputs: { adaptableReady: "adaptableReady" }, host: { classAttribute: "ab__ng-wrapper" }, providers: [AdaptableControllerService], queries: [{ propertyName: "adaptableDirective", first: true, predicate: AdaptableAgGridDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableProvider, deps: [{ token: AdaptableControllerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AdaptableProvider, selector: "adaptable-provider", inputs: { adaptableOptions: "adaptableOptions", gridOptions: "gridOptions", modules: "modules" }, outputs: { adaptableReady: "adaptableReady" }, host: { classAttribute: "ab__ng-wrapper" }, providers: [AdaptableControllerService], queries: [{ propertyName: "adaptableDirective", first: true, predicate: AdaptableAgGridDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
255
255
  }
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableProvider, decorators: [{
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableProvider, decorators: [{
257
257
  type: Component,
258
258
  args: [{
259
259
  selector: 'adaptable-provider',
@@ -263,7 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
263
263
  class: 'ab__ng-wrapper',
264
264
  },
265
265
  }]
266
- }], ctorParameters: function () { return [{ type: AdaptableControllerService }, { type: i0.ElementRef }]; }, propDecorators: { adaptableOptions: [{
266
+ }], ctorParameters: () => [{ type: AdaptableControllerService }, { type: i0.ElementRef }], propDecorators: { adaptableOptions: [{
267
267
  type: Input
268
268
  }], gridOptions: [{
269
269
  type: Input
@@ -279,30 +279,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
279
279
  function getRandomInt(max) {
280
280
  return Math.floor(Math.random() * Math.floor(max));
281
281
  }
282
+ const columnApiModule = ColumnApiModule;
282
283
  class AdaptableUI {
283
284
  constructor(elementId, adaptableControllerService) {
284
285
  this.adaptableControllerService = adaptableControllerService;
286
+ this.adaptableApi = null;
287
+ this.isDestroyed = false;
285
288
  this.readyForAdaptableInit = false;
286
289
  this.adaptableContainerId = elementId || `adaptable-${getRandomInt(1000)}-${Date.now()}`;
287
290
  this.phaseSubscription = this.adaptableControllerService
288
291
  .currentInitPhase()
289
292
  .subscribe((phase) => {
290
- if (phase === 'waitForAdaptableInit') {
293
+ if (phase === 'waitForAdaptableInit' && !this.isDestroyed) {
291
294
  this.readyForAdaptableInit = true;
292
295
  this.initializeAdaptable();
293
296
  }
294
297
  });
295
298
  }
296
299
  ngOnDestroy() {
300
+ this.isDestroyed = true;
297
301
  this.phaseSubscription?.unsubscribe();
298
- if (!this.adaptableApi) {
299
- return;
302
+ if (this.adaptableApi) {
303
+ this.adaptableApi.destroy({
304
+ unmount: true,
305
+ destroyAgGrid: false,
306
+ });
307
+ this.adaptableApi = null;
300
308
  }
301
- this.adaptableApi.destroy({
302
- unmount: true,
303
- destroyAgGrid: false,
304
- });
305
- this.adaptableApi = null;
306
309
  }
307
310
  get adaptableOptions() {
308
311
  return this.adaptableControllerService.adaptableOptions;
@@ -313,18 +316,31 @@ class AdaptableUI {
313
316
  get modules() {
314
317
  return this.adaptableControllerService.modules;
315
318
  }
316
- initializeAdaptable() {
319
+ async initializeAdaptable() {
320
+ if (this.isDestroyed) {
321
+ return;
322
+ }
317
323
  this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};
318
324
  this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;
319
- _AdaptableAgGrid
320
- ._initInternal({
321
- adaptableOptions: this.adaptableOptions,
322
- gridOptions: this.gridOptions,
323
- modules: this.modules,
324
- variant: 'angular',
325
- renderAgGridFrameworkComponent: (gridOptions) => this.adaptableControllerService.renderAgGridFrameworkComponent(gridOptions),
326
- })
327
- .then((adaptableApi) => {
325
+ try {
326
+ const adaptableApi = await _AdaptableAgGrid._initInternal({
327
+ adaptableOptions: this.adaptableOptions,
328
+ gridOptions: this.gridOptions,
329
+ modules: this.modules,
330
+ variant: 'angular',
331
+ renderAgGridFrameworkComponent: (gridOptions) => this.adaptableControllerService.renderAgGridFrameworkComponent(gridOptions),
332
+ getAgGridColumnApiModuleReference: () => {
333
+ return columnApiModule;
334
+ },
335
+ });
336
+ // Check if component was destroyed during initialization
337
+ if (this.isDestroyed) {
338
+ adaptableApi.destroy({
339
+ unmount: true,
340
+ destroyAgGrid: false,
341
+ });
342
+ return;
343
+ }
328
344
  this.adaptableApi = adaptableApi;
329
345
  adaptableApi.internalApi
330
346
  .getAdaptableInstance()
@@ -337,25 +353,35 @@ class AdaptableUI {
337
353
  }
338
354
  });
339
355
  adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo) => this.adaptableControllerService.onAdaptableReady(adaptableReadyInfo));
340
- });
356
+ }
357
+ catch (error) {
358
+ console.error('Failed to initialize Adaptable:', error);
359
+ if (!this.isDestroyed) {
360
+ this.adaptableApi?.destroy({
361
+ unmount: true,
362
+ destroyAgGrid: false,
363
+ });
364
+ this.adaptableApi = null;
365
+ }
366
+ }
341
367
  }
342
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableUI, deps: [{ token: 'id', attribute: true }, { token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component }); }
343
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdaptableUI, selector: "adaptable-ui", ngImport: i0, template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
368
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableUI, deps: [{ token: 'id', attribute: true }, { token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component }); }
369
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AdaptableUI, selector: "adaptable-ui", ngImport: i0, template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
344
370
  }
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableUI, decorators: [{
371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableUI, decorators: [{
346
372
  type: Component,
347
373
  args: [{ selector: 'adaptable-ui', template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>` }]
348
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
374
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
349
375
  type: Attribute,
350
376
  args: ['id']
351
- }] }, { type: AdaptableControllerService }]; } });
377
+ }] }, { type: AdaptableControllerService }] });
352
378
 
353
379
  class AdaptableAngularAgGridModule {
354
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableAngularAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
355
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AdaptableAngularAgGridModule, declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective], imports: [CommonModule], exports: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective] }); }
356
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableAngularAgGridModule, imports: [CommonModule] }); }
380
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableAngularAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
381
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: AdaptableAngularAgGridModule, declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective], imports: [CommonModule], exports: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective] }); }
382
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableAngularAgGridModule, imports: [CommonModule] }); }
357
383
  }
358
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdaptableAngularAgGridModule, decorators: [{
384
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AdaptableAngularAgGridModule, decorators: [{
359
385
  type: NgModule,
360
386
  args: [{
361
387
  declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"adaptabletools-adaptable-angular-aggrid.mjs","sources":["../../../projects/adaptable-angular-aggrid/src/lib/adaptable-api.token.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-controller.service.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-aggrid.directive.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-provider.component.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-ui.component.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-angular-aggrid.module.ts","../../../projects/adaptable-angular-aggrid/src/public-api.ts","../../../projects/adaptable-angular-aggrid/src/adaptabletools-adaptable-angular-aggrid.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nexport const ADAPTABLE_API = new InjectionToken<AdaptableApi>('ADAPTABLE_API');\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n EventEmitter,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GridApi, GridOptions, Module } from '@ag-grid-community/core';\nimport { AdaptableOptions } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableOptions';\nimport { AngularFrameworkComponent } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableFrameworkComponent';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nimport { ADAPTABLE_API } from './adaptable-api.token';\nimport { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';\n\nexport type AdaptableInitialisationPhase =\n | 'waitForAdaptableProps'\n | 'waitForAdaptableInit'\n | 'waitForAgGridInit'\n | 'waitForAdaptableReady';\n\nexport type RenderAgGridFrameworkComponentResult = false | GridApi;\n@Injectable()\nexport class AdaptableControllerService {\n adaptableOptions: AdaptableOptions;\n gridOptions: GridOptions;\n modules: Module[];\n\n adaptableReady: EventEmitter<AdaptableReadyInfo>;\n\n private phase: BehaviorSubject<AdaptableInitialisationPhase>;\n\n private agGridFrameworkPromise: Promise<RenderAgGridFrameworkComponentResult>;\n private resolveAgGridFrameworkPromise: (result: RenderAgGridFrameworkComponentResult) => void;\n\n private toolbarComponentRefs: WeakMap<AngularFrameworkComponent, ComponentRef<unknown>>;\n constructor(\n private injector: Injector,\n private environmentInjector: EnvironmentInjector,\n private appRef: ApplicationRef\n ) {\n this.adaptableReady = new EventEmitter<AdaptableReadyInfo>();\n this.phase = new BehaviorSubject<AdaptableInitialisationPhase>('waitForAdaptableProps');\n this.agGridFrameworkPromise = new Promise<RenderAgGridFrameworkComponentResult>((resolve) => {\n this.resolveAgGridFrameworkPromise = resolve;\n });\n this.toolbarComponentRefs = new WeakMap<AngularFrameworkComponent, ComponentRef<unknown>>();\n }\n\n currentInitPhase(): Observable<AdaptableInitialisationPhase> {\n return this.phase.asObservable();\n }\n setInitialisationPhase(phase: AdaptableInitialisationPhase) {\n this.phase.next(phase);\n }\n registerAdaptableOptions(adaptableOptions: AdaptableOptions) {\n this.adaptableOptions = adaptableOptions;\n this.checkIfAllPropsAreSet();\n }\n registerGridOptions(gridOptions: GridOptions) {\n this.gridOptions = gridOptions;\n this.checkIfAllPropsAreSet();\n }\n registerModules(modules: Module[]) {\n this.modules = modules;\n this.checkIfAllPropsAreSet();\n }\n renderAgGridFrameworkComponent(\n gridOptions: GridOptions\n ): Promise<RenderAgGridFrameworkComponentResult> {\n this.gridOptions = gridOptions;\n\n this.setInitialisationPhase('waitForAgGridInit');\n\n return this.agGridFrameworkPromise;\n }\n onAdaptableReady(adaptableReadyInfo: AdaptableReadyInfo) {\n this.adaptableReady.emit(adaptableReadyInfo);\n }\n\n onAgGridReady(agGridApi: GridApi) {\n this.resolveAgGridFrameworkPromise(agGridApi);\n this.setInitialisationPhase('waitForAdaptableReady');\n }\n private checkIfAllPropsAreSet() {\n if (this.adaptableOptions && this.gridOptions && this.modules) {\n this.setInitialisationPhase('waitForAdaptableInit');\n }\n }\n createFrameworkComponent(\n component: AngularFrameworkComponent,\n containerDomNode: HTMLElement,\n componentType: string,\n adaptableApi: AdaptableApi\n ): void {\n try {\n adaptableApi.logInfo(`Creating framework component for ${componentType}`, containerDomNode);\n if (this.toolbarComponentRefs.has(component)) {\n adaptableApi.logInfo(\n `Creation of framework component ${componentType} skipped as it is already present`,\n containerDomNode\n );\n return;\n }\n\n const angularComponentRef = this.createAngularComponent(\n component.type as Type<unknown>,\n containerDomNode,\n adaptableApi\n );\n\n if (component.onSetup) {\n Object.assign(angularComponentRef.instance, component.onSetup({ adaptableApi }));\n }\n\n this.toolbarComponentRefs.set(component, angularComponentRef);\n } catch (err) {\n adaptableApi.logError(\n `Cannot correctly create framework component for ${componentType}`,\n err\n );\n }\n }\n destroyFrameworkComponent(\n component: AngularFrameworkComponent,\n componentType: string,\n adaptableApi: AdaptableApi\n ): void {\n adaptableApi.logInfo(`Destroying framework component for ${componentType}`);\n const toolbarComponentRef = this.toolbarComponentRefs.get(component);\n if (toolbarComponentRef) {\n try {\n toolbarComponentRef.destroy();\n this.toolbarComponentRefs.delete(component);\n } catch (err) {\n adaptableApi.logError(\n `Cannot correctly destroy framework component for ${componentType}`,\n err\n );\n }\n } else {\n adaptableApi.logInfo(\n `Cannot correctly destroy framework component for ${componentType} because the reference is no longer available`\n );\n }\n }\n private createAngularComponent(\n angularComponentType: Type<unknown>,\n domContainer: HTMLElement,\n api: AdaptableApi\n ): ComponentRef<unknown> {\n // extend standard DI context with AdaptableApi\n const toolbarInjector = Injector.create({\n providers: [\n {\n provide: ADAPTABLE_API,\n useValue: api,\n },\n ],\n parent: this.injector,\n });\n\n // create the component\n const componentRef = createComponent(angularComponentType, {\n hostElement: domContainer,\n environmentInjector: this.environmentInjector,\n elementInjector: toolbarInjector,\n });\n\n // Last step is to register the newly created ref using the `ApplicationRef` instance\n // to include the component view into change detection cycles.\n this.appRef.attachView(componentRef.hostView);\n // trigger an early change detection\n componentRef.changeDetectorRef.detectChanges();\n\n return componentRef;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n EmbeddedViewRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { Subscription } from 'rxjs';\nimport { GridOptions, GridReadyEvent, Module } from '@ag-grid-community/core';\n\n@Directive({\n selector: '[adaptable]',\n})\nexport class AdaptableAgGridDirective implements OnDestroy {\n private phaseSubscription: Subscription;\n private embeddedViewRef?: EmbeddedViewRef<unknown>;\n\n constructor(\n private viewContainer: ViewContainerRef,\n private templateRef: TemplateRef<any>,\n private adaptableControllerService: AdaptableControllerService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this.phaseSubscription = this.adaptableControllerService\n .currentInitPhase()\n .subscribe((phase) => {\n if (phase === 'waitForAgGridInit') {\n if (this.embeddedViewRef) {\n this.embeddedViewRef.destroy();\n }\n const modules = this.adaptableControllerService.modules;\n const gridOptions = this.adaptableControllerService.gridOptions;\n this.piggyBackAgGridReady(gridOptions);\n\n this.embeddedViewRef = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: { gridOptions, modules },\n });\n // force change detection to ensure the grid is rendered (required in case of OnPush change detection strategy)\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.phaseSubscription?.unsubscribe();\n }\n\n private piggyBackAgGridReady(gridOptions: GridOptions) {\n const originalGridReady = gridOptions.onGridReady;\n gridOptions.onGridReady = (params: GridReadyEvent) => {\n this.adaptableControllerService.onAgGridReady(params.api);\n originalGridReady?.(params);\n };\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { GridOptions, Module, PropertyKeys } from '@ag-grid-community/core';\nimport { AdaptableOptions } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableOptions';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';\nimport { AdaptableAgGridDirective } from './adaptable-aggrid.directive';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'adaptable-provider',\n template: `<ng-content></ng-content>`,\n providers: [AdaptableControllerService],\n host: {\n class: 'ab__ng-wrapper',\n },\n})\nexport class AdaptableProvider implements OnChanges, AfterContentInit, OnDestroy {\n @Input()\n adaptableOptions: AdaptableOptions;\n @Input()\n gridOptions: GridOptions;\n @Input()\n modules: Module[];\n\n @Output() adaptableReady: EventEmitter<AdaptableReadyInfo>;\n\n @ContentChild(AdaptableAgGridDirective)\n adaptableDirective: AdaptableAgGridDirective;\n\n private phaseSubscription: Subscription;\n\n constructor(\n private adaptableControllerService: AdaptableControllerService,\n private elementRef: ElementRef\n ) {\n this.adaptableReady = this.adaptableControllerService.adaptableReady;\n this.phaseSubscription = this.adaptableControllerService\n .currentInitPhase()\n .subscribe((phase) => {\n if (phase === 'waitForAdaptableReady') {\n this.validateAgGridAngularInputs();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.phaseSubscription?.unsubscribe();\n }\n\n ngAfterContentInit() {\n if (!this.adaptableDirective) {\n throw new Error(\n `\n <adaptable-provider> must have a child <ag-grid-angular> component with the 'adaptable' directive applied!\n\n See the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration\n `\n );\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const adaptableOptionsChange = changes['adaptableOptions'];\n if (adaptableOptionsChange) {\n if (adaptableOptionsChange.previousValue != undefined) {\n console.error(\n `Mutating AdaptableOptions after Adaptable has been initialised is not supported!`\n );\n } else if (adaptableOptionsChange.currentValue != undefined) {\n this.adaptableControllerService.registerAdaptableOptions(\n adaptableOptionsChange.currentValue\n );\n }\n }\n const gridOptionsChange = changes['gridOptions'];\n if (gridOptionsChange) {\n if (gridOptionsChange.previousValue != undefined) {\n console.error(`Mutating GridOptions after AG Grid has been initialised is not supported!`);\n } else if (gridOptionsChange.currentValue != undefined) {\n this.adaptableControllerService.registerGridOptions(gridOptionsChange.currentValue);\n }\n }\n const modulesChange = changes['modules'];\n if (modulesChange) {\n if (modulesChange.previousValue != undefined) {\n console.error(`Mutating Modules after AG Grid has been initialised is not supported!`);\n } else if (modulesChange.currentValue != undefined) {\n this.adaptableControllerService.registerModules(modulesChange.currentValue);\n }\n }\n }\n\n onAdaptableReady(adaptableReadyInfo: AdaptableReadyInfo) {\n this.adaptableReady.emit(adaptableReadyInfo);\n }\n\n private validateAgGridAngularInputs(): void {\n const ALLOWED_AG_GRID_ANGULAR_INPUTS: (keyof GridOptions)[] = ['rowData'];\n\n const componentInputs: string[] = Array.from(\n this.elementRef.nativeElement.getElementsByTagName('ag-grid-angular')?.[0]?.attributes ?? []\n )\n .map((attr: any) => attr.name)\n .filter(Boolean);\n\n const normalisedComponentInputs = componentInputs\n .map((input) => {\n // dynamic attributes get prefixed with 'ng-reflect-'\n return input.replace('ng-reflect-', '');\n })\n .map((key) => {\n // convert from kebab-case to camelCase\n const camelCaseKey = key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n return camelCaseKey;\n })\n .filter((key) => !ALLOWED_AG_GRID_ANGULAR_INPUTS.includes(key as keyof GridOptions));\n\n const gridOptionsKeys = PropertyKeys.ALL_PROPERTIES;\n\n const notAllowedInputs = gridOptionsKeys.filter((key) =>\n normalisedComponentInputs.includes(key)\n );\n\n if (notAllowedInputs.length) {\n console.warn(\n `Warning: Found ${notAllowedInputs.length} input(s) that are not allowed to be passed as Angular inputs:\n ${notAllowedInputs.join(', ')}\n\nThese inputs should pe passed as properties of the 'gridOptions' parameter.\n\n\nSee the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration`\n );\n }\n }\n}\n","import { Attribute, Component, OnDestroy } from '@angular/core';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nimport { _AdaptableAgGrid } from '@adaptabletools/adaptable/agGrid';\nimport { AngularFrameworkComponent } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableFrameworkComponent';\nimport { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';\nimport { Subscription } from 'rxjs';\n\nfunction getRandomInt(max: number): number {\n return Math.floor(Math.random() * Math.floor(max));\n}\n\n@Component({\n selector: 'adaptable-ui',\n template: ` <div *ngIf=\"readyForAdaptableInit\" [id]=\"adaptableContainerId\"></div>`,\n styles: [],\n})\nexport class AdaptableUI implements OnDestroy {\n readyForAdaptableInit: boolean;\n adaptableContainerId: string;\n\n private adaptableApi: AdaptableApi;\n\n private phaseSubscription: Subscription;\n constructor(\n @Attribute('id') elementId: string,\n private adaptableControllerService: AdaptableControllerService\n ) {\n this.readyForAdaptableInit = false;\n this.adaptableContainerId = elementId || `adaptable-${getRandomInt(1000)}-${Date.now()}`;\n\n this.phaseSubscription = this.adaptableControllerService\n .currentInitPhase()\n .subscribe((phase) => {\n if (phase === 'waitForAdaptableInit') {\n this.readyForAdaptableInit = true;\n this.initializeAdaptable();\n }\n });\n }\n ngOnDestroy() {\n this.phaseSubscription?.unsubscribe();\n if (!this.adaptableApi) {\n return;\n }\n this.adaptableApi.destroy({\n unmount: true,\n destroyAgGrid: false,\n });\n this.adaptableApi = null;\n }\n get adaptableOptions() {\n return this.adaptableControllerService.adaptableOptions;\n }\n\n get gridOptions() {\n return this.adaptableControllerService.gridOptions;\n }\n\n get modules() {\n return this.adaptableControllerService.modules;\n }\n\n private initializeAdaptable() {\n this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};\n this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;\n\n _AdaptableAgGrid\n ._initInternal({\n adaptableOptions: this.adaptableOptions,\n gridOptions: this.gridOptions,\n modules: this.modules,\n variant: 'angular',\n renderAgGridFrameworkComponent: (gridOptions) =>\n this.adaptableControllerService.renderAgGridFrameworkComponent(gridOptions),\n })\n .then((adaptableApi) => {\n this.adaptableApi = adaptableApi;\n\n adaptableApi.internalApi\n .getAdaptableInstance()\n ._onIncludeFired(\n 'FrameworkComponentChange',\n ({ command, frameworkComponent, containerDomNode, componentType }) => {\n if (command === 'create') {\n this.adaptableControllerService.createFrameworkComponent(\n frameworkComponent as AngularFrameworkComponent,\n containerDomNode,\n componentType,\n adaptableApi\n );\n } else {\n this.adaptableControllerService.destroyFrameworkComponent(\n frameworkComponent as AngularFrameworkComponent,\n componentType,\n adaptableApi\n );\n }\n }\n );\n\n adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo: AdaptableReadyInfo) =>\n this.adaptableControllerService.onAdaptableReady(adaptableReadyInfo)\n );\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdaptableProvider } from './adaptable-provider.component';\nimport { AdaptableUI } from './adaptable-ui.component';\nimport { AdaptableAgGridDirective } from './adaptable-aggrid.directive';\n\n@NgModule({\n declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective],\n imports: [CommonModule],\n exports: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective],\n providers: [],\n})\nexport class AdaptableAngularAgGridModule {}\n","/*\n * Public API Surface of adaptable-angular-aggrid\n */\nexport * from '@adaptabletools/adaptable/src/types';\nexport { AdaptableQL, AdaptableUpgradeHelper } from '@adaptabletools/adaptable/agGrid';\nexport * from './lib/adaptable-angular-aggrid.module';\nexport * from './lib/adaptable-provider.component';\nexport * from './lib/adaptable-ui.component';\nexport * from './lib/adaptable-aggrid.directive';\nexport { ADAPTABLE_API } from './lib/adaptable-api.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AdaptableControllerService"],"mappings":"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"}
1
+ {"version":3,"file":"adaptabletools-adaptable-angular-aggrid.mjs","sources":["../../../projects/adaptable-angular-aggrid/src/lib/adaptable-api.token.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-controller.service.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-aggrid.directive.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-provider.component.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-ui.component.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-angular-aggrid.module.ts","../../../projects/adaptable-angular-aggrid/src/public-api.ts","../../../projects/adaptable-angular-aggrid/src/adaptabletools-adaptable-angular-aggrid.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nexport const ADAPTABLE_API = new InjectionToken<AdaptableApi>('ADAPTABLE_API');\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n EventEmitter,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GridApi, GridOptions, Module } from 'ag-grid-enterprise';\nimport { AdaptableOptions } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableOptions';\nimport { AngularFrameworkComponent } from '@adaptabletools/adaptable/src/agGrid/AdaptableFrameworkComponent';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nimport { ADAPTABLE_API } from './adaptable-api.token';\nimport { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';\n\nexport type AdaptableInitialisationPhase =\n | 'waitForAdaptableProps'\n | 'waitForAdaptableInit'\n | 'waitForAgGridInit'\n | 'waitForAdaptableReady';\n\nexport type RenderAgGridFrameworkComponentResult = false | GridApi;\n@Injectable()\nexport class AdaptableControllerService {\n adaptableOptions: AdaptableOptions;\n gridOptions: GridOptions;\n modules: Module[];\n\n adaptableReady: EventEmitter<AdaptableReadyInfo>;\n\n private phase: BehaviorSubject<AdaptableInitialisationPhase>;\n\n private agGridFrameworkPromise: Promise<RenderAgGridFrameworkComponentResult>;\n private resolveAgGridFrameworkPromise: (result: RenderAgGridFrameworkComponentResult) => void;\n\n private toolbarComponentRefs: WeakMap<AngularFrameworkComponent, ComponentRef<unknown>>;\n constructor(\n private injector: Injector,\n private environmentInjector: EnvironmentInjector,\n private appRef: ApplicationRef\n ) {\n this.adaptableReady = new EventEmitter<AdaptableReadyInfo>();\n this.phase = new BehaviorSubject<AdaptableInitialisationPhase>('waitForAdaptableProps');\n this.agGridFrameworkPromise = new Promise<RenderAgGridFrameworkComponentResult>((resolve) => {\n this.resolveAgGridFrameworkPromise = resolve;\n });\n this.toolbarComponentRefs = new WeakMap<AngularFrameworkComponent, ComponentRef<unknown>>();\n }\n\n currentInitPhase(): Observable<AdaptableInitialisationPhase> {\n return this.phase.asObservable();\n }\n setInitialisationPhase(phase: AdaptableInitialisationPhase) {\n this.phase.next(phase);\n }\n registerAdaptableOptions(adaptableOptions: AdaptableOptions) {\n this.adaptableOptions = adaptableOptions;\n this.checkIfAllPropsAreSet();\n }\n registerGridOptions(gridOptions: GridOptions) {\n this.gridOptions = gridOptions;\n this.checkIfAllPropsAreSet();\n }\n registerModules(modules: Module[]) {\n this.modules = modules;\n this.checkIfAllPropsAreSet();\n }\n renderAgGridFrameworkComponent(\n gridOptions: GridOptions\n ): Promise<RenderAgGridFrameworkComponentResult> {\n this.gridOptions = gridOptions;\n\n this.setInitialisationPhase('waitForAgGridInit');\n\n return this.agGridFrameworkPromise;\n }\n onAdaptableReady(adaptableReadyInfo: AdaptableReadyInfo) {\n this.adaptableReady.emit(adaptableReadyInfo);\n }\n\n onAgGridReady(agGridApi: GridApi) {\n this.resolveAgGridFrameworkPromise(agGridApi);\n this.setInitialisationPhase('waitForAdaptableReady');\n }\n private checkIfAllPropsAreSet() {\n if (this.adaptableOptions && this.gridOptions && this.modules) {\n this.setInitialisationPhase('waitForAdaptableInit');\n }\n }\n createFrameworkComponent(\n component: AngularFrameworkComponent,\n containerDomNode: HTMLElement,\n componentType: string,\n adaptableApi: AdaptableApi\n ): void {\n try {\n adaptableApi.logInfo(`Creating framework component for ${componentType}`, containerDomNode);\n if (this.toolbarComponentRefs.has(component)) {\n adaptableApi.logInfo(\n `Creation of framework component ${componentType} skipped as it is already present`,\n containerDomNode\n );\n return;\n }\n\n const angularComponentRef = this.createAngularComponent(\n component.type as Type<unknown>,\n containerDomNode,\n adaptableApi\n );\n\n if (component.onSetup) {\n Object.assign(angularComponentRef.instance, component.onSetup({ adaptableApi }));\n }\n\n this.toolbarComponentRefs.set(component, angularComponentRef);\n } catch (err) {\n adaptableApi.logError(\n `Cannot correctly create framework component for ${componentType}`,\n err\n );\n }\n }\n destroyFrameworkComponent(\n component: AngularFrameworkComponent,\n componentType: string,\n adaptableApi: AdaptableApi\n ): void {\n adaptableApi.logInfo(`Destroying framework component for ${componentType}`);\n const toolbarComponentRef = this.toolbarComponentRefs.get(component);\n if (toolbarComponentRef) {\n try {\n toolbarComponentRef.destroy();\n this.toolbarComponentRefs.delete(component);\n } catch (err) {\n adaptableApi.logError(\n `Cannot correctly destroy framework component for ${componentType}`,\n err\n );\n }\n } else {\n adaptableApi.logInfo(\n `Cannot correctly destroy framework component for ${componentType} because the reference is no longer available`\n );\n }\n }\n private createAngularComponent(\n angularComponentType: Type<unknown>,\n domContainer: HTMLElement,\n api: AdaptableApi\n ): ComponentRef<unknown> {\n // extend standard DI context with AdaptableApi\n const toolbarInjector = Injector.create({\n providers: [\n {\n provide: ADAPTABLE_API,\n useValue: api,\n },\n ],\n parent: this.injector,\n });\n\n // create the component\n const componentRef = createComponent(angularComponentType, {\n hostElement: domContainer,\n environmentInjector: this.environmentInjector,\n elementInjector: toolbarInjector,\n });\n\n // Last step is to register the newly created ref using the `ApplicationRef` instance\n // to include the component view into change detection cycles.\n this.appRef.attachView(componentRef.hostView);\n // trigger an early change detection\n componentRef.changeDetectorRef.detectChanges();\n\n return componentRef;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n EmbeddedViewRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { Subscription } from 'rxjs';\nimport { GridOptions, GridReadyEvent, Module } from 'ag-grid-enterprise';\n\n@Directive({\n selector: '[adaptable]',\n})\nexport class AdaptableAgGridDirective implements OnDestroy {\n private phaseSubscription: Subscription;\n private embeddedViewRef?: EmbeddedViewRef<unknown>;\n\n constructor(\n private viewContainer: ViewContainerRef,\n private templateRef: TemplateRef<any>,\n private adaptableControllerService: AdaptableControllerService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this.phaseSubscription = this.adaptableControllerService\n .currentInitPhase()\n .subscribe((phase) => {\n if (phase === 'waitForAgGridInit') {\n if (this.embeddedViewRef) {\n this.embeddedViewRef.destroy();\n }\n const modules = this.adaptableControllerService.modules;\n const gridOptions = this.adaptableControllerService.gridOptions;\n this.piggyBackAgGridReady(gridOptions);\n\n this.embeddedViewRef = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: { gridOptions, modules },\n });\n // force change detection to ensure the grid is rendered (required in case of OnPush change detection strategy)\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.phaseSubscription?.unsubscribe();\n }\n\n private piggyBackAgGridReady(gridOptions: GridOptions) {\n const originalGridReady = gridOptions.onGridReady;\n gridOptions.onGridReady = (params: GridReadyEvent) => {\n this.adaptableControllerService.onAgGridReady(params.api);\n originalGridReady?.(params);\n };\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { GridOptions, Module, _ALL_GRID_OPTIONS } from 'ag-grid-enterprise';\nimport { AdaptableOptions } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableOptions';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';\nimport { AdaptableAgGridDirective } from './adaptable-aggrid.directive';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'adaptable-provider',\n template: `<ng-content></ng-content>`,\n providers: [AdaptableControllerService],\n host: {\n class: 'ab__ng-wrapper',\n },\n})\nexport class AdaptableProvider implements OnChanges, AfterContentInit, OnDestroy {\n @Input()\n adaptableOptions: AdaptableOptions;\n @Input()\n gridOptions: GridOptions;\n @Input()\n modules: Module[];\n\n @Output() adaptableReady: EventEmitter<AdaptableReadyInfo>;\n\n @ContentChild(AdaptableAgGridDirective)\n adaptableDirective: AdaptableAgGridDirective;\n\n private phaseSubscription: Subscription;\n\n constructor(\n private adaptableControllerService: AdaptableControllerService,\n private elementRef: ElementRef\n ) {\n this.adaptableReady = this.adaptableControllerService.adaptableReady;\n this.phaseSubscription = this.adaptableControllerService\n .currentInitPhase()\n .subscribe((phase) => {\n if (phase === 'waitForAdaptableReady') {\n this.validateAgGridAngularInputs();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.phaseSubscription?.unsubscribe();\n }\n\n ngAfterContentInit() {\n if (!this.adaptableDirective) {\n throw new Error(\n `\n <adaptable-provider> must have a child <ag-grid-angular> component with the 'adaptable' directive applied!\n\n See the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration\n `\n );\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const adaptableOptionsChange = changes['adaptableOptions'];\n if (adaptableOptionsChange) {\n if (adaptableOptionsChange.previousValue != undefined) {\n console.error(\n `Mutating AdaptableOptions after Adaptable has been initialised is not supported!`\n );\n } else if (adaptableOptionsChange.currentValue != undefined) {\n this.adaptableControllerService.registerAdaptableOptions(\n adaptableOptionsChange.currentValue\n );\n }\n }\n const gridOptionsChange = changes['gridOptions'];\n if (gridOptionsChange) {\n if (gridOptionsChange.previousValue != undefined) {\n console.error(`Mutating GridOptions after AG Grid has been initialised is not supported!`);\n } else if (gridOptionsChange.currentValue != undefined) {\n this.adaptableControllerService.registerGridOptions(gridOptionsChange.currentValue);\n }\n }\n const modulesChange = changes['modules'];\n if (modulesChange) {\n if (modulesChange.previousValue != undefined) {\n console.error(`Mutating Modules after AG Grid has been initialised is not supported!`);\n } else if (modulesChange.currentValue != undefined) {\n this.adaptableControllerService.registerModules(modulesChange.currentValue);\n }\n }\n }\n\n onAdaptableReady(adaptableReadyInfo: AdaptableReadyInfo) {\n this.adaptableReady.emit(adaptableReadyInfo);\n }\n\n private validateAgGridAngularInputs(): void {\n const ALLOWED_AG_GRID_ANGULAR_INPUTS: (keyof GridOptions)[] = ['rowData'];\n\n const componentInputs: string[] = Array.from(\n this.elementRef.nativeElement.getElementsByTagName('ag-grid-angular')?.[0]?.attributes ?? []\n )\n .map((attr: any) => attr.name)\n .filter(Boolean);\n\n const normalisedComponentInputs = componentInputs\n .map((input) => {\n // dynamic attributes get prefixed with 'ng-reflect-'\n return input.replace('ng-reflect-', '');\n })\n .map((key) => {\n // convert from kebab-case to camelCase\n const camelCaseKey = key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n return camelCaseKey;\n })\n .filter((key) => !ALLOWED_AG_GRID_ANGULAR_INPUTS.includes(key as keyof GridOptions));\n\n const gridOptionsKeys = _ALL_GRID_OPTIONS;\n\n const notAllowedInputs = gridOptionsKeys.filter((key) =>\n normalisedComponentInputs.includes(key)\n );\n\n if (notAllowedInputs.length) {\n console.warn(\n `Warning: Found ${\n notAllowedInputs.length\n } input(s) that are not allowed to be passed as Angular inputs:\n ${notAllowedInputs.join(', ')}\n\nThese inputs should pe passed as properties of the 'gridOptions' parameter.\n\n\nSee the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration`\n );\n }\n }\n}\n","import { Attribute, Component, OnDestroy } from '@angular/core';\nimport { GridOptions, Module, ColumnApiModule } from 'ag-grid-enterprise';\nimport { Subscription } from 'rxjs';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nimport { _AdaptableAgGrid } from '@adaptabletools/adaptable/agGrid';\nimport { AngularFrameworkComponent } from '@adaptabletools/adaptable/src/agGrid/AdaptableFrameworkComponent';\nimport { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';\nimport { AdaptableOptions } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableOptions';\n\nfunction getRandomInt(max: number): number {\n return Math.floor(Math.random() * Math.floor(max));\n}\n\nconst columnApiModule = ColumnApiModule;\n\n@Component({\n selector: 'adaptable-ui',\n template: ` <div *ngIf=\"readyForAdaptableInit\" [id]=\"adaptableContainerId\"></div>`,\n styles: [],\n})\nexport class AdaptableUI implements OnDestroy {\n readyForAdaptableInit: boolean;\n adaptableContainerId: string;\n\n private adaptableApi: AdaptableApi | null = null;\n private isDestroyed = false;\n private phaseSubscription: Subscription;\n\n constructor(\n @Attribute('id') elementId: string,\n private adaptableControllerService: AdaptableControllerService\n ) {\n this.readyForAdaptableInit = false;\n this.adaptableContainerId = elementId || `adaptable-${getRandomInt(1000)}-${Date.now()}`;\n\n this.phaseSubscription = this.adaptableControllerService\n .currentInitPhase()\n .subscribe((phase) => {\n if (phase === 'waitForAdaptableInit' && !this.isDestroyed) {\n this.readyForAdaptableInit = true;\n this.initializeAdaptable();\n }\n });\n }\n\n ngOnDestroy() {\n this.isDestroyed = true;\n this.phaseSubscription?.unsubscribe();\n\n if (this.adaptableApi) {\n this.adaptableApi.destroy({\n unmount: true,\n destroyAgGrid: false,\n });\n this.adaptableApi = null;\n }\n }\n\n get adaptableOptions(): AdaptableOptions {\n return this.adaptableControllerService.adaptableOptions;\n }\n\n get gridOptions(): GridOptions {\n return this.adaptableControllerService.gridOptions;\n }\n\n get modules(): Module[] {\n return this.adaptableControllerService.modules;\n }\n\n private async initializeAdaptable() {\n if (this.isDestroyed) {\n return;\n }\n\n this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};\n this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;\n\n try {\n const adaptableApi: AdaptableApi = await _AdaptableAgGrid._initInternal({\n adaptableOptions: this.adaptableOptions,\n gridOptions: this.gridOptions,\n modules: this.modules,\n variant: 'angular',\n renderAgGridFrameworkComponent: (gridOptions: GridOptions) =>\n this.adaptableControllerService.renderAgGridFrameworkComponent(gridOptions),\n getAgGridColumnApiModuleReference: () => {\n return columnApiModule;\n },\n });\n\n // Check if component was destroyed during initialization\n if (this.isDestroyed) {\n adaptableApi.destroy({\n unmount: true,\n destroyAgGrid: false,\n });\n return;\n }\n\n this.adaptableApi = adaptableApi;\n\n adaptableApi.internalApi\n .getAdaptableInstance()\n ._onIncludeFired(\n 'FrameworkComponentChange',\n ({ command, frameworkComponent, containerDomNode, componentType }) => {\n if (command === 'create') {\n this.adaptableControllerService.createFrameworkComponent(\n frameworkComponent as AngularFrameworkComponent,\n containerDomNode,\n componentType,\n adaptableApi\n );\n } else {\n this.adaptableControllerService.destroyFrameworkComponent(\n frameworkComponent as AngularFrameworkComponent,\n componentType,\n adaptableApi\n );\n }\n }\n );\n\n adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo: AdaptableReadyInfo) =>\n this.adaptableControllerService.onAdaptableReady(adaptableReadyInfo)\n );\n } catch (error) {\n console.error('Failed to initialize Adaptable:', error);\n if (!this.isDestroyed) {\n this.adaptableApi?.destroy({\n unmount: true,\n destroyAgGrid: false,\n });\n this.adaptableApi = null;\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AdaptableProvider } from './adaptable-provider.component';\nimport { AdaptableUI } from './adaptable-ui.component';\nimport { AdaptableAgGridDirective } from './adaptable-aggrid.directive';\n\n@NgModule({\n declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective],\n imports: [CommonModule],\n exports: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective],\n providers: [],\n})\nexport class AdaptableAngularAgGridModule {}\n","/*\n * Public API Surface of adaptable-angular-aggrid\n */\nexport * from '@adaptabletools/adaptable/src/types';\nexport { AdaptableQL, AdaptableUpgradeHelper } from '@adaptabletools/adaptable/agGrid';\nexport * from './lib/adaptable-angular-aggrid.module';\nexport * from './lib/adaptable-provider.component';\nexport * from './lib/adaptable-ui.component';\nexport * from './lib/adaptable-aggrid.directive';\nexport { ADAPTABLE_API } from './lib/adaptable-api.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AdaptableControllerService"],"mappings":"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"}