@adaptabletools/adaptable-angular-aggrid 18.0.7 → 18.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/adaptable-provider.component.mjs +44 -4
- package/fesm2015/adaptabletools-adaptable-angular-aggrid.mjs +45 -3
- package/fesm2015/adaptabletools-adaptable-angular-aggrid.mjs.map +1 -1
- package/fesm2020/adaptabletools-adaptable-angular-aggrid.mjs +43 -3
- package/fesm2020/adaptabletools-adaptable-angular-aggrid.mjs.map +1 -1
- package/lib/adaptable-provider.component.d.ts +7 -3
- package/package.json +2 -2
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { Component, ContentChild, Input, Output, } from '@angular/core';
|
|
2
|
+
import { PropertyKeys } from '@ag-grid-community/core';
|
|
2
3
|
import { AdaptableControllerService } from './adaptable-controller.service';
|
|
3
4
|
import { AdaptableAgGridDirective } from './adaptable-aggrid.directive';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "./adaptable-controller.service";
|
|
6
7
|
export class AdaptableProvider {
|
|
7
|
-
constructor(adaptableControllerService) {
|
|
8
|
+
constructor(adaptableControllerService, elementRef) {
|
|
8
9
|
this.adaptableControllerService = adaptableControllerService;
|
|
10
|
+
this.elementRef = elementRef;
|
|
9
11
|
this.adaptableReady = this.adaptableControllerService.adaptableReady;
|
|
12
|
+
this.phaseSubscription = this.adaptableControllerService
|
|
13
|
+
.currentInitPhase()
|
|
14
|
+
.subscribe((phase) => {
|
|
15
|
+
if (phase === 'waitForAdaptableReady') {
|
|
16
|
+
this.validateAgGridAngularInputs();
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.phaseSubscription?.unsubscribe();
|
|
10
22
|
}
|
|
11
23
|
ngAfterContentInit() {
|
|
12
24
|
if (!this.adaptableDirective) {
|
|
@@ -49,8 +61,36 @@ export class AdaptableProvider {
|
|
|
49
61
|
onAdaptableReady(adaptableReadyInfo) {
|
|
50
62
|
this.adaptableReady.emit(adaptableReadyInfo);
|
|
51
63
|
}
|
|
64
|
+
validateAgGridAngularInputs() {
|
|
65
|
+
const ALLOWED_AG_GRID_ANGULAR_INPUTS = ['rowData'];
|
|
66
|
+
const componentInputs = Array.from(this.elementRef.nativeElement.getElementsByTagName('ag-grid-angular')?.[0]?.attributes ?? [])
|
|
67
|
+
.map((attr) => attr.name)
|
|
68
|
+
.filter(Boolean);
|
|
69
|
+
const normalisedComponentInputs = componentInputs
|
|
70
|
+
.map((input) => {
|
|
71
|
+
// dynamic attributes get prefixed with 'ng-reflect-'
|
|
72
|
+
return input.replace('ng-reflect-', '');
|
|
73
|
+
})
|
|
74
|
+
.map((key) => {
|
|
75
|
+
// convert from kebab-case to camelCase
|
|
76
|
+
const camelCaseKey = key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
|
77
|
+
return camelCaseKey;
|
|
78
|
+
})
|
|
79
|
+
.filter((key) => !ALLOWED_AG_GRID_ANGULAR_INPUTS.includes(key));
|
|
80
|
+
const gridOptionsKeys = PropertyKeys.ALL_PROPERTIES;
|
|
81
|
+
const notAllowedInputs = gridOptionsKeys.filter((key) => normalisedComponentInputs.includes(key));
|
|
82
|
+
if (notAllowedInputs.length) {
|
|
83
|
+
console.warn(`Warning: Found ${notAllowedInputs.length} input(s) that are not allowed to be passed as Angular inputs:
|
|
84
|
+
${notAllowedInputs.join(', ')}
|
|
85
|
+
|
|
86
|
+
These inputs should pe passed as properties of the 'gridOptions' parameter.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
See the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
52
92
|
}
|
|
53
|
-
AdaptableProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, deps: [{ token: i1.AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
+
AdaptableProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, deps: [{ token: i1.AdaptableControllerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
94
|
AdaptableProvider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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 });
|
|
55
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, decorators: [{
|
|
56
96
|
type: Component,
|
|
@@ -62,7 +102,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
62
102
|
class: 'ab__ng-wrapper',
|
|
63
103
|
},
|
|
64
104
|
}]
|
|
65
|
-
}], ctorParameters: function () { return [{ type: i1.AdaptableControllerService }]; }, propDecorators: { adaptableOptions: [{
|
|
105
|
+
}], ctorParameters: function () { return [{ type: i1.AdaptableControllerService }, { type: i0.ElementRef }]; }, propDecorators: { adaptableOptions: [{
|
|
66
106
|
type: Input
|
|
67
107
|
}], gridOptions: [{
|
|
68
108
|
type: Input
|
|
@@ -74,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
74
114
|
type: ContentChild,
|
|
75
115
|
args: [AdaptableAgGridDirective]
|
|
76
116
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLXByb3ZpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC9zcmMvbGliL2FkYXB0YWJsZS1wcm92aWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBVXhFLE1BQU0sT0FBTyxpQkFBaUI7SUFTNUIsWUFBb0IsMEJBQXNEO1FBQXRELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDeEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsY0FBYyxDQUFDO0lBQ3ZFLENBQUM7SUFLRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUNiOzs7O1NBSUMsQ0FDRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsSUFBSSxzQkFBc0IsRUFBRTtZQUMxQixJQUFJLHNCQUFzQixDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUU7Z0JBQ3JELE9BQU8sQ0FBQyxLQUFLLENBQ1gsa0ZBQWtGLENBQ25GLENBQUM7YUFDSDtpQkFBTSxJQUFJLHNCQUFzQixDQUFDLFlBQVksSUFBSSxTQUFTLEVBQUU7Z0JBQzNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FDdEQsc0JBQXNCLENBQUMsWUFBWSxDQUNwQyxDQUFDO2FBQ0g7U0FDRjtRQUNELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELElBQUksaUJBQWlCLEVBQUU7WUFDckIsSUFBSSxpQkFBaUIsQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFO2dCQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7YUFDNUY7aUJBQU0sSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLElBQUksU0FBUyxFQUFFO2dCQUN0RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDckY7U0FDRjtRQUNELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJLGFBQWEsQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFO2dCQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7YUFDeEY7aUJBQU0sSUFBSSxhQUFhLENBQUMsWUFBWSxJQUFJLFNBQVMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDN0U7U0FDRjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxrQkFBc0M7UUFDckQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMvQyxDQUFDOzsrR0E3RFUsaUJBQWlCO21HQUFqQixpQkFBaUIsME9BTGpCLENBQUMsMEJBQTBCLENBQUMsMEVBa0J6Qix3QkFBd0IscUVBbkI1QiwyQkFBMkI7NEZBTTFCLGlCQUFpQjtrQkFSN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxnQkFBZ0I7cUJBQ3hCO2lCQUNGO2lIQUdDLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR0ksY0FBYztzQkFBdkIsTUFBTTtnQkFNUCxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdyaWRPcHRpb25zLCBNb2R1bGUgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBBZGFwdGFibGVPcHRpb25zIH0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9zcmMvQWRhcHRhYmxlT3B0aW9ucy9BZGFwdGFibGVPcHRpb25zJztcbmltcG9ydCB7IEFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZGFwdGFibGUtY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkYXB0YWJsZVJlYWR5SW5mbyB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvc3JjL0FwaS9FdmVudHMvQWRhcHRhYmxlUmVhZHknO1xuaW1wb3J0IHsgQWRhcHRhYmxlQWdHcmlkRGlyZWN0aXZlIH0gZnJvbSAnLi9hZGFwdGFibGUtYWdncmlkLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkYXB0YWJsZS1wcm92aWRlcicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIHByb3ZpZGVyczogW0FkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYWJfX25nLXdyYXBwZXInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBZGFwdGFibGVQcm92aWRlciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpXG4gIGFkYXB0YWJsZU9wdGlvbnM6IEFkYXB0YWJsZU9wdGlvbnM7XG4gIEBJbnB1dCgpXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgQElucHV0KClcbiAgbW9kdWxlczogTW9kdWxlW107XG5cbiAgQE91dHB1dCgpIGFkYXB0YWJsZVJlYWR5OiBFdmVudEVtaXR0ZXI8QWRhcHRhYmxlUmVhZHlJbmZvPjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhZGFwdGFibGVDb250cm9sbGVyU2VydmljZTogQWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UpIHtcbiAgICB0aGlzLmFkYXB0YWJsZVJlYWR5ID0gdGhpcy5hZGFwdGFibGVDb250cm9sbGVyU2VydmljZS5hZGFwdGFibGVSZWFkeTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoQWRhcHRhYmxlQWdHcmlkRGlyZWN0aXZlKVxuICBhZGFwdGFibGVEaXJlY3RpdmU6IEFkYXB0YWJsZUFnR3JpZERpcmVjdGl2ZTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFkYXB0YWJsZURpcmVjdGl2ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgXG4gICAgICAgIDxhZGFwdGFibGUtcHJvdmlkZXI+IG11c3QgaGF2ZSBhIGNoaWxkIDxhZy1ncmlkLWFuZ3VsYXI+IGNvbXBvbmVudCB3aXRoIHRoZSAnYWRhcHRhYmxlJyBkaXJlY3RpdmUgYXBwbGllZCFcblxuICAgICAgICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb246IGh0dHBzOi8vZG9jcy5hZGFwdGFibGV0b29scy5jb20vZ3VpZGUvYW5ndWxhci1pbnRlZ3JhdGlvblxuICAgICAgICBgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBhZGFwdGFibGVPcHRpb25zQ2hhbmdlID0gY2hhbmdlc1snYWRhcHRhYmxlT3B0aW9ucyddO1xuICAgIGlmIChhZGFwdGFibGVPcHRpb25zQ2hhbmdlKSB7XG4gICAgICBpZiAoYWRhcHRhYmxlT3B0aW9uc0NoYW5nZS5wcmV2aW91c1ZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBNdXRhdGluZyBBZGFwdGFibGVPcHRpb25zIGFmdGVyIEFkYXB0YWJsZSBoYXMgYmVlbiBpbml0aWFsaXNlZCBpcyBub3Qgc3VwcG9ydGVkIWBcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoYWRhcHRhYmxlT3B0aW9uc0NoYW5nZS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UucmVnaXN0ZXJBZGFwdGFibGVPcHRpb25zKFxuICAgICAgICAgIGFkYXB0YWJsZU9wdGlvbnNDaGFuZ2UuY3VycmVudFZhbHVlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGdyaWRPcHRpb25zQ2hhbmdlID0gY2hhbmdlc1snZ3JpZE9wdGlvbnMnXTtcbiAgICBpZiAoZ3JpZE9wdGlvbnNDaGFuZ2UpIHtcbiAgICAgIGlmIChncmlkT3B0aW9uc0NoYW5nZS5wcmV2aW91c1ZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBNdXRhdGluZyBHcmlkT3B0aW9ucyBhZnRlciBBRyBHcmlkIGhhcyBiZWVuIGluaXRpYWxpc2VkIGlzIG5vdCBzdXBwb3J0ZWQhYCk7XG4gICAgICB9IGVsc2UgaWYgKGdyaWRPcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5hZGFwdGFibGVDb250cm9sbGVyU2VydmljZS5yZWdpc3RlckdyaWRPcHRpb25zKGdyaWRPcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG1vZHVsZXNDaGFuZ2UgPSBjaGFuZ2VzWydtb2R1bGVzJ107XG4gICAgaWYgKG1vZHVsZXNDaGFuZ2UpIHtcbiAgICAgIGlmIChtb2R1bGVzQ2hhbmdlLnByZXZpb3VzVmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYE11dGF0aW5nIE1vZHVsZXMgYWZ0ZXIgQUcgR3JpZCBoYXMgYmVlbiBpbml0aWFsaXNlZCBpcyBub3Qgc3VwcG9ydGVkIWApO1xuICAgICAgfSBlbHNlIGlmIChtb2R1bGVzQ2hhbmdlLmN1cnJlbnRWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5hZGFwdGFibGVDb250cm9sbGVyU2VydmljZS5yZWdpc3Rlck1vZHVsZXMobW9kdWxlc0NoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uQWRhcHRhYmxlUmVhZHkoYWRhcHRhYmxlUmVhZHlJbmZvOiBBZGFwdGFibGVSZWFkeUluZm8pIHtcbiAgICB0aGlzLmFkYXB0YWJsZVJlYWR5LmVtaXQoYWRhcHRhYmxlUmVhZHlJbmZvKTtcbiAgfVxufVxuIl19
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLXByb3ZpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC9zcmMvbGliL2FkYXB0YWJsZS1wcm92aWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBR1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFXeEUsTUFBTSxPQUFPLGlCQUFpQjtJQWU1QixZQUNVLDBCQUFzRCxFQUN0RCxVQUFzQjtRQUR0QiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELGVBQVUsR0FBVixVQUFVLENBQVk7UUFFOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsY0FBYyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCO2FBQ3JELGdCQUFnQixFQUFFO2FBQ2xCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksS0FBSyxLQUFLLHVCQUF1QixFQUFFO2dCQUNyQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE1BQU0sSUFBSSxL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RyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDdEQseUJBQXlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUN4QyxDQUFDO1FBRUYsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FDVixrQkFBa0IsZ0JBQWdCLENBQUMsTUFBTTtNQUMzQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzs7OztzR0FLcUUsQ0FDL0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7K0dBdEhVLGlCQUFpQjttR0FBakIsaUJBQWlCLDBPQUxqQixDQUFDLDBCQUEwQixDQUFDLDBFQWV6Qix3QkFBd0IscUVBaEI1QiwyQkFBMkI7NEZBTTFCLGlCQUFpQjtrQkFSN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxnQkFBZ0I7cUJBQ3hCO2lCQUNGOzBJQUdDLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR0ksY0FBYztzQkFBdkIsTUFBTTtnQkFHUCxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZE9wdGlvbnMsIE1vZHVsZSwgUHJvcGVydHlLZXlzIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgQWRhcHRhYmxlT3B0aW9ucyB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvc3JjL0FkYXB0YWJsZU9wdGlvbnMvQWRhcHRhYmxlT3B0aW9ucyc7XG5pbXBvcnQgeyBBZGFwdGFibGVDb250cm9sbGVyU2VydmljZSB9IGZyb20gJy4vYWRhcHRhYmxlLWNvbnRyb2xsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBZGFwdGFibGVSZWFkeUluZm8gfSBmcm9tICdAYWRhcHRhYmxldG9vbHMvYWRhcHRhYmxlL3NyYy9BcGkvRXZlbnRzL0FkYXB0YWJsZVJlYWR5JztcbmltcG9ydCB7IEFkYXB0YWJsZUFnR3JpZERpcmVjdGl2ZSB9IGZyb20gJy4vYWRhcHRhYmxlLWFnZ3JpZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkYXB0YWJsZS1wcm92aWRlcicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIHByb3ZpZGVyczogW0FkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYWJfX25nLXdyYXBwZXInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBZGFwdGFibGVQcm92aWRlciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgYWRhcHRhYmxlT3B0aW9uczogQWRhcHRhYmxlT3B0aW9ucztcbiAgQElucHV0KClcbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBASW5wdXQoKVxuICBtb2R1bGVzOiBNb2R1bGVbXTtcblxuICBAT3V0cHV0KCkgYWRhcHRhYmxlUmVhZHk6IEV2ZW50RW1pdHRlcjxBZGFwdGFibGVSZWFkeUluZm8+O1xuXG4gIEBDb250ZW50Q2hpbGQoQWRhcHRhYmxlQWdHcmlkRGlyZWN0aXZlKVxuICBhZGFwdGFibGVEaXJlY3RpdmU6IEFkYXB0YWJsZUFnR3JpZERpcmVjdGl2ZTtcblxuICBwcml2YXRlIHBoYXNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZGFwdGFibGVDb250cm9sbGVyU2VydmljZTogQWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIHRoaXMuYWRhcHRhYmxlUmVhZHkgPSB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLmFkYXB0YWJsZVJlYWR5O1xuICAgIHRoaXMucGhhc2VTdWJzY3JpcHRpb24gPSB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlXG4gICAgICAuY3VycmVudEluaXRQaGFzZSgpXG4gICAgICAuc3Vic2NyaWJlKChwaGFzZSkgPT4ge1xuICAgICAgICBpZiAocGhhc2UgPT09ICd3YWl0Rm9yQWRhcHRhYmxlUmVhZHknKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUFnR3JpZEFuZ3VsYXJJbnB1dHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnBoYXNlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICghdGhpcy5hZGFwdGFibGVEaXJlY3RpdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFxuICAgICAgICA8YWRhcHRhYmxlLXByb3ZpZGVyPiBtdXN0IGhhdmUgYSBjaGlsZCA8YWctZ3JpZC1hbmd1bGFyPiBjb21wb25lbnQgd2l0aCB0aGUgJ2FkYXB0YWJsZScgZGlyZWN0aXZlIGFwcGxpZWQhXG5cbiAgICAgICAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL2RvY3MuYWRhcHRhYmxldG9vbHMuY29tL2d1aWRlL2FuZ3VsYXItaW50ZWdyYXRpb25cbiAgICAgICAgYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgYWRhcHRhYmxlT3B0aW9uc0NoYW5nZSA9IGNoYW5nZXNbJ2FkYXB0YWJsZU9wdGlvbnMnXTtcbiAgICBpZiAoYWRhcHRhYmxlT3B0aW9uc0NoYW5nZSkge1xuICAgICAgaWYgKGFkYXB0YWJsZU9wdGlvbnNDaGFuZ2UucHJldmlvdXNWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgTXV0YXRpbmcgQWRhcHRhYmxlT3B0aW9ucyBhZnRlciBBZGFwdGFibGUgaGFzIGJlZW4gaW5pdGlhbGlzZWQgaXMgbm90IHN1cHBvcnRlZCFgXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGFkYXB0YWJsZU9wdGlvbnNDaGFuZ2UuY3VycmVudFZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmFkYXB0YWJsZUNvbnRyb2xsZXJTZXJ2aWNlLnJlZ2lzdGVyQWRhcHRhYmxlT3B0aW9ucyhcbiAgICAgICAgICBhZGFwdGFibGVPcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBncmlkT3B0aW9uc0NoYW5nZSA9IGNoYW5nZXNbJ2dyaWRPcHRpb25zJ107XG4gICAgaWYgKGdyaWRPcHRpb25zQ2hhbmdlKSB7XG4gICAgICBpZiAoZ3JpZE9wdGlvbnNDaGFuZ2UucHJldmlvdXNWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgTXV0YXRpbmcgR3JpZE9wdGlvbnMgYWZ0ZXIgQUcgR3JpZCBoYXMgYmVlbiBpbml0aWFsaXNlZCBpcyBub3Qgc3VwcG9ydGVkIWApO1xuICAgICAgfSBlbHNlIGlmIChncmlkT3B0aW9uc0NoYW5nZS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UucmVnaXN0ZXJHcmlkT3B0aW9ucyhncmlkT3B0aW9uc0NoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBtb2R1bGVzQ2hhbmdlID0gY2hhbmdlc1snbW9kdWxlcyddO1xuICAgIGlmIChtb2R1bGVzQ2hhbmdlKSB7XG4gICAgICBpZiAobW9kdWxlc0NoYW5nZS5wcmV2aW91c1ZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBNdXRhdGluZyBNb2R1bGVzIGFmdGVyIEFHIEdyaWQgaGFzIGJlZW4gaW5pdGlhbGlzZWQgaXMgbm90IHN1cHBvcnRlZCFgKTtcbiAgICAgIH0gZWxzZSBpZiAobW9kdWxlc0NoYW5nZS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWRhcHRhYmxlQ29udHJvbGxlclNlcnZpY2UucmVnaXN0ZXJNb2R1bGVzKG1vZHVsZXNDaGFuZ2UuY3VycmVudFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkFkYXB0YWJsZVJlYWR5KGFkYXB0YWJsZVJlYWR5SW5mbzogQWRhcHRhYmxlUmVhZHlJbmZvKSB7XG4gICAgdGhpcy5hZGFwdGFibGVSZWFkeS5lbWl0KGFkYXB0YWJsZVJlYWR5SW5mbyk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQWdHcmlkQW5ndWxhcklucHV0cygpOiB2b2lkIHtcbiAgICBjb25zdCBBTExPV0VEX0FHX0dSSURfQU5HVUxBUl9JTlBVVFM6IChrZXlvZiBHcmlkT3B0aW9ucylbXSA9IFsncm93RGF0YSddO1xuXG4gICAgY29uc3QgY29tcG9uZW50SW5wdXRzOiBzdHJpbmdbXSA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYWctZ3JpZC1hbmd1bGFyJyk/LlswXT8uYXR0cmlidXRlcyA/PyBbXVxuICAgIClcbiAgICAgIC5tYXAoKGF0dHI6IGFueSkgPT4gYXR0ci5uYW1lKVxuICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgIGNvbnN0IG5vcm1hbGlzZWRDb21wb25lbnRJbnB1dHMgPSBjb21wb25lbnRJbnB1dHNcbiAgICAgIC5tYXAoKGlucHV0KSA9PiB7XG4gICAgICAgIC8vIGR5bmFtaWMgYXR0cmlidXRlcyBnZXQgcHJlZml4ZWQgd2l0aCAnbmctcmVmbGVjdC0nXG4gICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKCduZy1yZWZsZWN0LScsICcnKTtcbiAgICAgIH0pXG4gICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgLy8gY29udmVydCBmcm9tIGtlYmFiLWNhc2UgdG8gY2FtZWxDYXNlXG4gICAgICAgIGNvbnN0IGNhbWVsQ2FzZUtleSA9IGtleS5yZXBsYWNlKC8tKFthLXpdKS9nLCAoZykgPT4gZ1sxXS50b1VwcGVyQ2FzZSgpKTtcbiAgICAgICAgcmV0dXJuIGNhbWVsQ2FzZUtleTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChrZXkpID0+ICFBTExPV0VEX0FHX0dSSURfQU5HVUxBUl9JTlBVVFMuaW5jbHVkZXMoa2V5IGFzIGtleW9mIEdyaWRPcHRpb25zKSk7XG5cbiAgICBjb25zdCBncmlkT3B0aW9uc0tleXMgPSBQcm9wZXJ0eUtleXMuQUxMX1BST1BFUlRJRVM7XG5cbiAgICBjb25zdCBub3RBbGxvd2VkSW5wdXRzID0gZ3JpZE9wdGlvbnNLZXlzLmZpbHRlcigoa2V5KSA9PlxuICAgICAgbm9ybWFsaXNlZENvbXBvbmVudElucHV0cy5pbmNsdWRlcyhrZXkpXG4gICAgKTtcblxuICAgIGlmIChub3RBbGxvd2VkSW5wdXRzLmxlbmd0aCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgV2FybmluZzogRm91bmQgJHtub3RBbGxvd2VkSW5wdXRzLmxlbmd0aH0gaW5wdXQocykgdGhhdCBhcmUgbm90IGFsbG93ZWQgdG8gYmUgcGFzc2VkIGFzIEFuZ3VsYXIgaW5wdXRzOlxuICAgICR7bm90QWxsb3dlZElucHV0cy5qb2luKCcsICcpfVxuXG5UaGVzZSBpbnB1dHMgc2hvdWxkIHBlIHBhc3NlZCBhcyBwcm9wZXJ0aWVzIG9mIHRoZSAnZ3JpZE9wdGlvbnMnIHBhcmFtZXRlci5cblxuXG5TZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb246IGh0dHBzOi8vZG9jcy5hZGFwdGFibGV0b29scy5jb20vZ3VpZGUvYW5ndWxhci1pbnRlZ3JhdGlvbmBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -5,6 +5,7 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import { InjectionToken, EventEmitter, Injector, createComponent, Injectable, Directive, Component, Input, Output, ContentChild, 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
9
|
import { BehaviorSubject } from 'rxjs';
|
|
9
10
|
|
|
10
11
|
const ADAPTABLE_API = new InjectionToken('ADAPTABLE_API');
|
|
@@ -163,9 +164,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
163
164
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: AdaptableControllerService }]; } });
|
|
164
165
|
|
|
165
166
|
class AdaptableProvider {
|
|
166
|
-
constructor(adaptableControllerService) {
|
|
167
|
+
constructor(adaptableControllerService, elementRef) {
|
|
167
168
|
this.adaptableControllerService = adaptableControllerService;
|
|
169
|
+
this.elementRef = elementRef;
|
|
168
170
|
this.adaptableReady = this.adaptableControllerService.adaptableReady;
|
|
171
|
+
this.phaseSubscription = this.adaptableControllerService
|
|
172
|
+
.currentInitPhase()
|
|
173
|
+
.subscribe((phase) => {
|
|
174
|
+
if (phase === 'waitForAdaptableReady') {
|
|
175
|
+
this.validateAgGridAngularInputs();
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
ngOnDestroy() {
|
|
180
|
+
var _a;
|
|
181
|
+
(_a = this.phaseSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
169
182
|
}
|
|
170
183
|
ngAfterContentInit() {
|
|
171
184
|
if (!this.adaptableDirective) {
|
|
@@ -208,8 +221,37 @@ class AdaptableProvider {
|
|
|
208
221
|
onAdaptableReady(adaptableReadyInfo) {
|
|
209
222
|
this.adaptableReady.emit(adaptableReadyInfo);
|
|
210
223
|
}
|
|
224
|
+
validateAgGridAngularInputs() {
|
|
225
|
+
var _a, _b, _c;
|
|
226
|
+
const ALLOWED_AG_GRID_ANGULAR_INPUTS = ['rowData'];
|
|
227
|
+
const componentInputs = Array.from((_c = (_b = (_a = this.elementRef.nativeElement.getElementsByTagName('ag-grid-angular')) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.attributes) !== null && _c !== void 0 ? _c : [])
|
|
228
|
+
.map((attr) => attr.name)
|
|
229
|
+
.filter(Boolean);
|
|
230
|
+
const normalisedComponentInputs = componentInputs
|
|
231
|
+
.map((input) => {
|
|
232
|
+
// dynamic attributes get prefixed with 'ng-reflect-'
|
|
233
|
+
return input.replace('ng-reflect-', '');
|
|
234
|
+
})
|
|
235
|
+
.map((key) => {
|
|
236
|
+
// convert from kebab-case to camelCase
|
|
237
|
+
const camelCaseKey = key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
|
238
|
+
return camelCaseKey;
|
|
239
|
+
})
|
|
240
|
+
.filter((key) => !ALLOWED_AG_GRID_ANGULAR_INPUTS.includes(key));
|
|
241
|
+
const gridOptionsKeys = PropertyKeys.ALL_PROPERTIES;
|
|
242
|
+
const notAllowedInputs = gridOptionsKeys.filter((key) => normalisedComponentInputs.includes(key));
|
|
243
|
+
if (notAllowedInputs.length) {
|
|
244
|
+
console.warn(`Warning: Found ${notAllowedInputs.length} input(s) that are not allowed to be passed as Angular inputs:
|
|
245
|
+
${notAllowedInputs.join(', ')}
|
|
246
|
+
|
|
247
|
+
These inputs should pe passed as properties of the 'gridOptions' parameter.
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
See the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
211
253
|
}
|
|
212
|
-
AdaptableProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, deps: [{ token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
254
|
+
AdaptableProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, deps: [{ token: AdaptableControllerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
213
255
|
AdaptableProvider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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 });
|
|
214
256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, decorators: [{
|
|
215
257
|
type: Component,
|
|
@@ -221,7 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
221
263
|
class: 'ab__ng-wrapper',
|
|
222
264
|
},
|
|
223
265
|
}]
|
|
224
|
-
}], ctorParameters: function () { return [{ type: AdaptableControllerService }]; }, propDecorators: { adaptableOptions: [{
|
|
266
|
+
}], ctorParameters: function () { return [{ type: AdaptableControllerService }, { type: i0.ElementRef }]; }, propDecorators: { adaptableOptions: [{
|
|
225
267
|
type: Input
|
|
226
268
|
}], gridOptions: [{
|
|
227
269
|
type: Input
|
|
@@ -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 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 } 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 ) {\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 }\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 EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { GridOptions, Module } 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';\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 {\n @Input()\n adaptableOptions: AdaptableOptions;\n @Input()\n gridOptions: GridOptions;\n @Input()\n modules: Module[];\n\n @Output() adaptableReady: EventEmitter<AdaptableReadyInfo>;\n constructor(private adaptableControllerService: AdaptableControllerService) {\n this.adaptableReady = this.adaptableControllerService.adaptableReady;\n }\n\n @ContentChild(AdaptableAgGridDirective)\n adaptableDirective: AdaptableAgGridDirective;\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","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 destroyApi: 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-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 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 } 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 ) {\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 }\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 destroyApi: 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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"}
|
|
@@ -5,6 +5,7 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import { InjectionToken, EventEmitter, Injector, createComponent, Injectable, Directive, Component, Input, Output, ContentChild, 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
9
|
import { BehaviorSubject } from 'rxjs';
|
|
9
10
|
|
|
10
11
|
const ADAPTABLE_API = new InjectionToken('ADAPTABLE_API');
|
|
@@ -162,9 +163,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
162
163
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: AdaptableControllerService }]; } });
|
|
163
164
|
|
|
164
165
|
class AdaptableProvider {
|
|
165
|
-
constructor(adaptableControllerService) {
|
|
166
|
+
constructor(adaptableControllerService, elementRef) {
|
|
166
167
|
this.adaptableControllerService = adaptableControllerService;
|
|
168
|
+
this.elementRef = elementRef;
|
|
167
169
|
this.adaptableReady = this.adaptableControllerService.adaptableReady;
|
|
170
|
+
this.phaseSubscription = this.adaptableControllerService
|
|
171
|
+
.currentInitPhase()
|
|
172
|
+
.subscribe((phase) => {
|
|
173
|
+
if (phase === 'waitForAdaptableReady') {
|
|
174
|
+
this.validateAgGridAngularInputs();
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
ngOnDestroy() {
|
|
179
|
+
this.phaseSubscription?.unsubscribe();
|
|
168
180
|
}
|
|
169
181
|
ngAfterContentInit() {
|
|
170
182
|
if (!this.adaptableDirective) {
|
|
@@ -207,8 +219,36 @@ class AdaptableProvider {
|
|
|
207
219
|
onAdaptableReady(adaptableReadyInfo) {
|
|
208
220
|
this.adaptableReady.emit(adaptableReadyInfo);
|
|
209
221
|
}
|
|
222
|
+
validateAgGridAngularInputs() {
|
|
223
|
+
const ALLOWED_AG_GRID_ANGULAR_INPUTS = ['rowData'];
|
|
224
|
+
const componentInputs = Array.from(this.elementRef.nativeElement.getElementsByTagName('ag-grid-angular')?.[0]?.attributes ?? [])
|
|
225
|
+
.map((attr) => attr.name)
|
|
226
|
+
.filter(Boolean);
|
|
227
|
+
const normalisedComponentInputs = componentInputs
|
|
228
|
+
.map((input) => {
|
|
229
|
+
// dynamic attributes get prefixed with 'ng-reflect-'
|
|
230
|
+
return input.replace('ng-reflect-', '');
|
|
231
|
+
})
|
|
232
|
+
.map((key) => {
|
|
233
|
+
// convert from kebab-case to camelCase
|
|
234
|
+
const camelCaseKey = key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
|
235
|
+
return camelCaseKey;
|
|
236
|
+
})
|
|
237
|
+
.filter((key) => !ALLOWED_AG_GRID_ANGULAR_INPUTS.includes(key));
|
|
238
|
+
const gridOptionsKeys = PropertyKeys.ALL_PROPERTIES;
|
|
239
|
+
const notAllowedInputs = gridOptionsKeys.filter((key) => normalisedComponentInputs.includes(key));
|
|
240
|
+
if (notAllowedInputs.length) {
|
|
241
|
+
console.warn(`Warning: Found ${notAllowedInputs.length} input(s) that are not allowed to be passed as Angular inputs:
|
|
242
|
+
${notAllowedInputs.join(', ')}
|
|
243
|
+
|
|
244
|
+
These inputs should pe passed as properties of the 'gridOptions' parameter.
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
See the documentation for more information: https://docs.adaptabletools.com/guide/angular-integration`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
210
250
|
}
|
|
211
|
-
AdaptableProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, deps: [{ token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
251
|
+
AdaptableProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, deps: [{ token: AdaptableControllerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
212
252
|
AdaptableProvider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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 });
|
|
213
253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, decorators: [{
|
|
214
254
|
type: Component,
|
|
@@ -220,7 +260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
220
260
|
class: 'ab__ng-wrapper',
|
|
221
261
|
},
|
|
222
262
|
}]
|
|
223
|
-
}], ctorParameters: function () { return [{ type: AdaptableControllerService }]; }, propDecorators: { adaptableOptions: [{
|
|
263
|
+
}], ctorParameters: function () { return [{ type: AdaptableControllerService }, { type: i0.ElementRef }]; }, propDecorators: { adaptableOptions: [{
|
|
224
264
|
type: Input
|
|
225
265
|
}], gridOptions: [{
|
|
226
266
|
type: Input
|
|
@@ -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 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 } 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 ) {\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 }\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 EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { GridOptions, Module } 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';\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 {\n @Input()\n adaptableOptions: AdaptableOptions;\n @Input()\n gridOptions: GridOptions;\n @Input()\n modules: Module[];\n\n @Output() adaptableReady: EventEmitter<AdaptableReadyInfo>;\n constructor(private adaptableControllerService: AdaptableControllerService) {\n this.adaptableReady = this.adaptableControllerService.adaptableReady;\n }\n\n @ContentChild(AdaptableAgGridDirective)\n adaptableDirective: AdaptableAgGridDirective;\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","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 destroyApi: 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-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 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 } 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 ) {\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 }\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 destroyApi: 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,21 +1,25 @@
|
|
|
1
|
-
import { AfterContentInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { AfterContentInit, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { GridOptions, Module } from '@ag-grid-community/core';
|
|
3
3
|
import { AdaptableOptions } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableOptions';
|
|
4
4
|
import { AdaptableControllerService } from './adaptable-controller.service';
|
|
5
5
|
import { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';
|
|
6
6
|
import { AdaptableAgGridDirective } from './adaptable-aggrid.directive';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class AdaptableProvider implements OnChanges, AfterContentInit {
|
|
8
|
+
export declare class AdaptableProvider implements OnChanges, AfterContentInit, OnDestroy {
|
|
9
9
|
private adaptableControllerService;
|
|
10
|
+
private elementRef;
|
|
10
11
|
adaptableOptions: AdaptableOptions;
|
|
11
12
|
gridOptions: GridOptions;
|
|
12
13
|
modules: Module[];
|
|
13
14
|
adaptableReady: EventEmitter<AdaptableReadyInfo>;
|
|
14
|
-
constructor(adaptableControllerService: AdaptableControllerService);
|
|
15
15
|
adaptableDirective: AdaptableAgGridDirective;
|
|
16
|
+
private phaseSubscription;
|
|
17
|
+
constructor(adaptableControllerService: AdaptableControllerService, elementRef: ElementRef);
|
|
18
|
+
ngOnDestroy(): void;
|
|
16
19
|
ngAfterContentInit(): void;
|
|
17
20
|
ngOnChanges(changes: SimpleChanges): void;
|
|
18
21
|
onAdaptableReady(adaptableReadyInfo: AdaptableReadyInfo): void;
|
|
22
|
+
private validateAgGridAngularInputs;
|
|
19
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdaptableProvider, never>;
|
|
20
24
|
static ɵcmp: i0.ɵɵComponentDeclaration<AdaptableProvider, "adaptable-provider", never, { "adaptableOptions": "adaptableOptions"; "gridOptions": "gridOptions"; "modules": "modules"; }, { "adaptableReady": "adaptableReady"; }, ["adaptableDirective"], ["*"], false, never>;
|
|
21
25
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable-angular-aggrid",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.8",
|
|
4
4
|
"description": "Angular version of AdapTable - the powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
|
|
5
5
|
"license": "contact sales@adaptabletools.com for details",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"tslib": "^2.3.0",
|
|
13
|
-
"@adaptabletools/adaptable": "18.0.
|
|
13
|
+
"@adaptabletools/adaptable": "18.0.8"
|
|
14
14
|
},
|
|
15
15
|
"exports": {
|
|
16
16
|
"./index.css": "./index.css",
|