@adaptabletools/adaptable-angular-aggrid 16.2.4 → 17.0.0-canary.10
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/base.css +122 -20
- package/base.css.map +1 -1
- package/esm2020/adaptabletools-adaptable-angular-aggrid.mjs +5 -0
- package/esm2020/lib/adaptable-angular-ag-grid-component.directive.mjs +82 -0
- package/esm2020/lib/adaptable-angular-aggrid.module.mjs +18 -0
- package/esm2020/lib/adaptable-angular-aggrid.token.mjs +3 -0
- package/esm2020/lib/adaptable-angular-framework-component.service.mjs +77 -0
- package/esm2020/public-api.mjs +9 -0
- package/fesm2020/adaptabletools-adaptable-angular-aggrid.mjs +184 -0
- package/fesm2020/adaptabletools-adaptable-angular-aggrid.mjs.map +1 -0
- package/index.css +163 -21
- package/index.css.map +1 -1
- package/lib/adaptable-angular-ag-grid-component.directive.d.ts +1 -1
- package/lib/adaptable-angular-framework-component.service.d.ts +3 -3
- package/package.json +26 -6
- package/bundles/adaptabletools-adaptable-angular-aggrid.umd.js +0 -718
- package/bundles/adaptabletools-adaptable-angular-aggrid.umd.js.map +0 -1
- /package/{adaptabletools-adaptable-angular-aggrid.d.ts → index.d.ts} +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { Adaptable } from '@adaptabletools/adaptable/src/agGrid/Adaptable';
|
|
3
|
+
import { AdaptableAngularFrameworkComponentService } from './adaptable-angular-framework-component.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./adaptable-angular-framework-component.service";
|
|
6
|
+
function getRandomInt(max) {
|
|
7
|
+
return Math.floor(Math.random() * Math.floor(max));
|
|
8
|
+
}
|
|
9
|
+
export class AdaptableAngularAgGridComponentDirective {
|
|
10
|
+
constructor(renderer, el, frameworkComponentService) {
|
|
11
|
+
this.renderer = renderer;
|
|
12
|
+
this.el = el;
|
|
13
|
+
this.frameworkComponentService = frameworkComponentService;
|
|
14
|
+
this.adaptableReady = new EventEmitter();
|
|
15
|
+
const seedId = `${getRandomInt(1000)}-${Date.now()}`;
|
|
16
|
+
this.adaptableContainerId = `adaptable-${seedId}`;
|
|
17
|
+
}
|
|
18
|
+
async ngOnInit() {
|
|
19
|
+
if (this.modules == null) {
|
|
20
|
+
throw new Error(`Attribute 'modules' is required. Please pass the ag-grid modules you use into AdapTable.
|
|
21
|
+
If you don't have extra modules, pass an empty array.`);
|
|
22
|
+
}
|
|
23
|
+
this.createAngularWrapperContainer();
|
|
24
|
+
this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};
|
|
25
|
+
this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;
|
|
26
|
+
const adaptableApi = await Adaptable.initInternal(this.adaptableOptions, {
|
|
27
|
+
gridOptions: this.gridOptions,
|
|
28
|
+
waitForAgGrid: true,
|
|
29
|
+
variant: 'angular',
|
|
30
|
+
modules: this.modules,
|
|
31
|
+
});
|
|
32
|
+
adaptableApi.internalApi
|
|
33
|
+
.getAdaptableInstance()
|
|
34
|
+
._onIncludeFired('FrameworkComponentChange', ({ command, frameworkComponent, containerDomNode, componentType }) => {
|
|
35
|
+
if (command === 'create') {
|
|
36
|
+
this.frameworkComponentService.createFrameworkComponent(frameworkComponent, containerDomNode, componentType, adaptableApi);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.frameworkComponentService.destroyFrameworkComponent(frameworkComponent, componentType, adaptableApi);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo) => this.adaptableReady.emit(adaptableReadyInfo));
|
|
43
|
+
this.adaptableApi = adaptableApi;
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
if (!this.adaptableApi) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.adaptableApi.destroy({
|
|
50
|
+
unmount: true,
|
|
51
|
+
destroyApi: false,
|
|
52
|
+
});
|
|
53
|
+
this.adaptableApi = null;
|
|
54
|
+
}
|
|
55
|
+
// creates the container for the adaptable toolbar and inserts it before the ag-grid element
|
|
56
|
+
createAngularWrapperContainer() {
|
|
57
|
+
const adaptableContainer = this.renderer.createElement('div');
|
|
58
|
+
adaptableContainer.style.setProperty('display', 'flex');
|
|
59
|
+
adaptableContainer.style.setProperty('flex-flow', 'var(--ab_flex-direction, column)');
|
|
60
|
+
this.renderer.setProperty(adaptableContainer, 'id', this.adaptableContainerId);
|
|
61
|
+
this.renderer.insertBefore(this.renderer.parentNode(this.el.nativeElement), adaptableContainer, this.el.nativeElement);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
AdaptableAngularAgGridComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridComponentDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.AdaptableAngularFrameworkComponentService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
65
|
+
AdaptableAngularAgGridComponentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AdaptableAngularAgGridComponentDirective, selector: "ag-grid-angular[adaptableOptions]", inputs: { adaptableOptions: "adaptableOptions", modules: "modules", gridOptions: "gridOptions" }, outputs: { adaptableReady: "adaptableReady" }, providers: [AdaptableAngularFrameworkComponentService], ngImport: i0 });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridComponentDirective, decorators: [{
|
|
67
|
+
type: Directive,
|
|
68
|
+
args: [{
|
|
69
|
+
selector: 'ag-grid-angular[adaptableOptions]',
|
|
70
|
+
// ensures each AG Grid instance has its own copy of the service (incl. the framework component references)
|
|
71
|
+
providers: [AdaptableAngularFrameworkComponentService],
|
|
72
|
+
}]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.AdaptableAngularFrameworkComponentService }]; }, propDecorators: { adaptableOptions: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], modules: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], gridOptions: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], adaptableReady: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}] } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLWFuZ3VsYXItYWctZ3JpZC1jb21wb25lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRhcHRhYmxlLWFuZ3VsYXItYWdncmlkL3NyYy9saWIvYWRhcHRhYmxlLWFuZ3VsYXItYWctZ3JpZC1jb21wb25lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTNFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7QUFFNUcsU0FBUyxZQUFZLENBQUMsR0FBVztJQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBT0QsTUFBTSxPQUFPLHdDQUF3QztJQVVuRCxZQUNVLFFBQW1CLEVBQ25CLEVBQWMsRUFDZCx5QkFBb0U7UUFGcEUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQztRQVJwRSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBVWhFLE1BQU0sTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBRXJELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxhQUFhLE1BQU0sRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FDYjsrREFDdUQsQ0FDeEQsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFDdEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUV0RixNQUFNLFlBQVksR0FBRyxNQUFNLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixhQUFhLEVBQUUsSUFBSTtZQUNuQixPQUFPLEVBQUUsU0FBUztZQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFDO1FBRUgsWUFBWSxDQUFDLFdBQVc7YUFDckIsb0JBQW9CLEVBQUU7YUFDdEIsZUFBZSxDQUNkLDBCQUEwQixFQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUU7WUFDbkUsSUFBSSxPQUFPLEtBQUssUUFBUSxFQUFFO2dCQUN4QixJQUFJLENBQUMseUJBQXlCLENBQUMsd0JBQXdCLENBQ3JELGtCQUErQyxFQUMvQyxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLFlBQVksQ0FDYixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHlCQUF5QixDQUN0RCxrQkFBK0MsRUFDL0MsYUFBYSxFQUNiLFlBQVksQ0FDYixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUVKLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUMsa0JBQXNDLEVBQUUsRUFBRSxDQUNwRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUM3QyxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUN4QixPQUFPLEVBQUUsSUFBSTtZQUNiLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCw0RkFBNEY7SUFDcEYsNkJBQTZCO1FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUQsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEQsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUV0RixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQy9DLGtCQUFrQixFQUNsQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FDdEIsQ0FBQztJQUNKLENBQUM7O3NJQTdGVSx3Q0FBd0M7MEhBQXhDLHdDQUF3Qyw2TUFGeEMsQ0FBQyx5Q0FBeUMsQ0FBQzs0RkFFM0Msd0NBQXdDO2tCQUxwRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLDJHQUEyRztvQkFDM0csU0FBUyxFQUFFLENBQUMseUNBQXlDLENBQUM7aUJBQ3ZEO2lMQUVVLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZE9wdGlvbnMsIE1vZHVsZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7IEFkYXB0YWJsZU9wdGlvbnMgfSBmcm9tICdAYWRhcHRhYmxldG9vbHMvYWRhcHRhYmxlL3NyYy9BZGFwdGFibGVPcHRpb25zL0FkYXB0YWJsZU9wdGlvbnMnO1xuaW1wb3J0IHsgQWRhcHRhYmxlUmVhZHlJbmZvIH0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9zcmMvQXBpL0V2ZW50cy9BZGFwdGFibGVSZWFkeSc7XG5pbXBvcnQgeyBBZGFwdGFibGVBcGkgfSBmcm9tICdAYWRhcHRhYmxldG9vbHMvYWRhcHRhYmxlL3NyYy9BcGkvQWRhcHRhYmxlQXBpJztcbmltcG9ydCB7IEFkYXB0YWJsZSB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvc3JjL2FnR3JpZC9BZGFwdGFibGUnO1xuaW1wb3J0IHsgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvdHlwZXMnO1xuaW1wb3J0IHsgQWRhcHRhYmxlQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2FkYXB0YWJsZS1hbmd1bGFyLWZyYW1ld29yay1jb21wb25lbnQuc2VydmljZSc7XG5cbmZ1bmN0aW9uIGdldFJhbmRvbUludChtYXg6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKG1heCkpO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhZy1ncmlkLWFuZ3VsYXJbYWRhcHRhYmxlT3B0aW9uc10nLFxuICAvLyBlbnN1cmVzIGVhY2ggQUcgR3JpZCBpbnN0YW5jZSBoYXMgaXRzIG93biBjb3B5IG9mIHRoZSBzZXJ2aWNlIChpbmNsLiB0aGUgZnJhbWV3b3JrIGNvbXBvbmVudCByZWZlcmVuY2VzKVxuICBwcm92aWRlcnM6IFtBZGFwdGFibGVBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFkYXB0YWJsZUFuZ3VsYXJBZ0dyaWRDb21wb25lbnREaXJlY3RpdmU8VERhdGEgPSBhbnk+IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBASW5wdXQoKSBhZGFwdGFibGVPcHRpb25zOiBBZGFwdGFibGVPcHRpb25zPFREYXRhPjtcbiAgQElucHV0KCkgbW9kdWxlczogTW9kdWxlW107XG4gIEBJbnB1dCgpIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9uczxURGF0YT47XG5cbiAgQE91dHB1dCgpIGFkYXB0YWJsZVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxBZGFwdGFibGVSZWFkeUluZm8+KCk7XG5cbiAgcHVibGljIGFkYXB0YWJsZUNvbnRhaW5lcklkOiBzdHJpbmc7XG4gIHByaXZhdGUgYWRhcHRhYmxlQXBpOiBBZGFwdGFibGVBcGk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBmcmFtZXdvcmtDb21wb25lbnRTZXJ2aWNlOiBBZGFwdGFibGVBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50U2VydmljZVxuICApIHtcbiAgICBjb25zdCBzZWVkSWQgPSBgJHtnZXRSYW5kb21JbnQoMTAwMCl9LSR7RGF0ZS5ub3coKX1gO1xuXG4gICAgdGhpcy5hZGFwdGFibGVDb250YWluZXJJZCA9IGBhZGFwdGFibGUtJHtzZWVkSWR9YDtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm1vZHVsZXMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0cmlidXRlICdtb2R1bGVzJyBpcyByZXF1aXJlZC4gUGxlYXNlIHBhc3MgdGhlIGFnLWdyaWQgbW9kdWxlcyB5b3UgdXNlIGludG8gQWRhcFRhYmxlLlxuICAgICAgICAgSWYgeW91IGRvbid0IGhhdmUgZXh0cmEgbW9kdWxlcywgcGFzcyBhbiBlbXB0eSBhcnJheS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlQW5ndWxhcldyYXBwZXJDb250YWluZXIoKTtcblxuICAgIHRoaXMuYWRhcHRhYmxlT3B0aW9ucy5jb250YWluZXJPcHRpb25zID0gdGhpcy5hZGFwdGFibGVPcHRpb25zLmNvbnRhaW5lck9wdGlvbnMgfHwge307XG4gICAgdGhpcy5hZGFwdGFibGVPcHRpb25zLmNvbnRhaW5lck9wdGlvbnMuYWRhcHRhYmxlQ29udGFpbmVyID0gdGhpcy5hZGFwdGFibGVDb250YWluZXJJZDtcblxuICAgIGNvbnN0IGFkYXB0YWJsZUFwaSA9IGF3YWl0IEFkYXB0YWJsZS5pbml0SW50ZXJuYWwodGhpcy5hZGFwdGFibGVPcHRpb25zLCB7XG4gICAgICBncmlkT3B0aW9uczogdGhpcy5ncmlkT3B0aW9ucyxcbiAgICAgIHdhaXRGb3JBZ0dyaWQ6IHRydWUsXG4gICAgICB2YXJpYW50OiAnYW5ndWxhcicsXG4gICAgICBtb2R1bGVzOiB0aGlzLm1vZHVsZXMsXG4gICAgfSk7XG5cbiAgICBhZGFwdGFibGVBcGkuaW50ZXJuYWxBcGlcbiAgICAgIC5nZXRBZGFwdGFibGVJbnN0YW5jZSgpXG4gICAgICAuX29uSW5jbHVkZUZpcmVkKFxuICAgICAgICAnRnJhbWV3b3JrQ29tcG9uZW50Q2hhbmdlJyxcbiAgICAgICAgKHsgY29tbWFuZCwgZnJhbWV3b3JrQ29tcG9uZW50LCBjb250YWluZXJEb21Ob2RlLCBjb21wb25lbnRUeXBlIH0pID0+IHtcbiAgICAgICAgICBpZiAoY29tbWFuZCA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50U2VydmljZS5jcmVhdGVGcmFtZXdvcmtDb21wb25lbnQoXG4gICAgICAgICAgICAgIGZyYW1ld29ya0NvbXBvbmVudCBhcyBBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50LFxuICAgICAgICAgICAgICBjb250YWluZXJEb21Ob2RlLFxuICAgICAgICAgICAgICBjb21wb25lbnRUeXBlLFxuICAgICAgICAgICAgICBhZGFwdGFibGVBcGlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50U2VydmljZS5kZXN0cm95RnJhbWV3b3JrQ29tcG9uZW50KFxuICAgICAgICAgICAgICBmcmFtZXdvcmtDb21wb25lbnQgYXMgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgY29tcG9uZW50VHlwZSxcbiAgICAgICAgICAgICAgYWRhcHRhYmxlQXBpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIGFkYXB0YWJsZUFwaS5ldmVudEFwaS5vbignQWRhcHRhYmxlUmVhZHknLCAoYWRhcHRhYmxlUmVhZHlJbmZvOiBBZGFwdGFibGVSZWFkeUluZm8pID0+XG4gICAgICB0aGlzLmFkYXB0YWJsZVJlYWR5LmVtaXQoYWRhcHRhYmxlUmVhZHlJbmZvKVxuICAgICk7XG5cbiAgICB0aGlzLmFkYXB0YWJsZUFwaSA9IGFkYXB0YWJsZUFwaTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICghdGhpcy5hZGFwdGFibGVBcGkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hZGFwdGFibGVBcGkuZGVzdHJveSh7XG4gICAgICB1bm1vdW50OiB0cnVlLFxuICAgICAgZGVzdHJveUFwaTogZmFsc2UsXG4gICAgfSk7XG4gICAgdGhpcy5hZGFwdGFibGVBcGkgPSBudWxsO1xuICB9XG5cbiAgLy8gY3JlYXRlcyB0aGUgY29udGFpbmVyIGZvciB0aGUgYWRhcHRhYmxlIHRvb2xiYXIgYW5kIGluc2VydHMgaXQgYmVmb3JlIHRoZSBhZy1ncmlkIGVsZW1lbnRcbiAgcHJpdmF0ZSBjcmVhdGVBbmd1bGFyV3JhcHBlckNvbnRhaW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBhZGFwdGFibGVDb250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgYWRhcHRhYmxlQ29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ2ZsZXgnKTtcbiAgICBhZGFwdGFibGVDb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoJ2ZsZXgtZmxvdycsICd2YXIoLS1hYl9mbGV4LWRpcmVjdGlvbiwgY29sdW1uKScpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShhZGFwdGFibGVDb250YWluZXIsICdpZCcsIHRoaXMuYWRhcHRhYmxlQ29udGFpbmVySWQpO1xuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKFxuICAgICAgdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMuZWwubmF0aXZlRWxlbWVudCksXG4gICAgICBhZGFwdGFibGVDb250YWluZXIsXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { AdaptableAngularAgGridComponentDirective } from './adaptable-angular-ag-grid-component.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AdaptableAngularAgGridModule {
|
|
5
|
+
}
|
|
6
|
+
AdaptableAngularAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
AdaptableAngularAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, declarations: [AdaptableAngularAgGridComponentDirective], exports: [AdaptableAngularAgGridComponentDirective] });
|
|
8
|
+
AdaptableAngularAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
declarations: [AdaptableAngularAgGridComponentDirective],
|
|
13
|
+
imports: [],
|
|
14
|
+
exports: [AdaptableAngularAgGridComponentDirective],
|
|
15
|
+
providers: [],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLWFuZ3VsYXItYWdncmlkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC9zcmMvbGliL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFRM0csTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0QjsySEFBNUIsNEJBQTRCLGlCQUx4Qix3Q0FBd0MsYUFFN0Msd0NBQXdDOzJIQUd2Qyw0QkFBNEI7NEZBQTVCLDRCQUE0QjtrQkFOeEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQztvQkFDeEQsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsd0NBQXdDLENBQUM7b0JBQ25ELFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkYXB0YWJsZUFuZ3VsYXJBZ0dyaWRDb21wb25lbnREaXJlY3RpdmUgfSBmcm9tICcuL2FkYXB0YWJsZS1hbmd1bGFyLWFnLWdyaWQtY29tcG9uZW50LmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0FkYXB0YWJsZUFuZ3VsYXJBZ0dyaWRDb21wb25lbnREaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW0FkYXB0YWJsZUFuZ3VsYXJBZ0dyaWRDb21wb25lbnREaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBZGFwdGFibGVBbmd1bGFyQWdHcmlkTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const ADAPTABLE_API = new InjectionToken('ADAPTABLE_API');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLWFuZ3VsYXItYWdncmlkLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRhcHRhYmxlLWFuZ3VsYXItYWdncmlkL3NyYy9saWIvYWRhcHRhYmxlLWFuZ3VsYXItYWdncmlkLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFlLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkYXB0YWJsZUFwaSB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvc3JjL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEFEQVBUQUJMRV9BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48QWRhcHRhYmxlQXBpPignQURBUFRBQkxFX0FQSScpO1xuIl19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { createComponent, Injectable, Injector, } from '@angular/core';
|
|
2
|
+
import { ADAPTABLE_API } from './adaptable-angular-aggrid.token';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AdaptableAngularFrameworkComponentService {
|
|
5
|
+
constructor(injector, environmentInjector, appRef) {
|
|
6
|
+
this.injector = injector;
|
|
7
|
+
this.environmentInjector = environmentInjector;
|
|
8
|
+
this.appRef = appRef;
|
|
9
|
+
this.toolbarComponentRefs = new WeakMap();
|
|
10
|
+
}
|
|
11
|
+
createFrameworkComponent(component, containerDomNode, componentType, adaptableApi) {
|
|
12
|
+
try {
|
|
13
|
+
adaptableApi.logInfo(`Creating framework component for ${componentType}`, containerDomNode);
|
|
14
|
+
if (this.toolbarComponentRefs.has(component)) {
|
|
15
|
+
adaptableApi.logInfo(`Creation of framework component ${componentType} skipped as it is already present`, containerDomNode);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const angularComponentRef = this.createAngularComponent(component.type, containerDomNode, adaptableApi);
|
|
19
|
+
if (component.onSetup) {
|
|
20
|
+
Object.assign(angularComponentRef.instance, component.onSetup({ adaptableApi }));
|
|
21
|
+
}
|
|
22
|
+
this.toolbarComponentRefs.set(component, angularComponentRef);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
adaptableApi.logError(`Cannot correctly create framework component for ${componentType}`, err);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
destroyFrameworkComponent(component, componentType, adaptableApi) {
|
|
29
|
+
adaptableApi.logInfo(`Destroying framework component for ${componentType}`);
|
|
30
|
+
const toolbarComponentRef = this.toolbarComponentRefs.get(component);
|
|
31
|
+
if (toolbarComponentRef) {
|
|
32
|
+
try {
|
|
33
|
+
toolbarComponentRef.destroy();
|
|
34
|
+
this.toolbarComponentRefs.delete(component);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
adaptableApi.logError(`Cannot correctly destroy framework component for ${componentType}`, err);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
adaptableApi.logInfo(`Cannot correctly destroy framework component for ${componentType} because the reference is no longer available`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
createAngularComponent(angularComponentType, domContainer, api) {
|
|
45
|
+
// extend standard DI context with AdaptableApi
|
|
46
|
+
const toolbarInjector = Injector.create({
|
|
47
|
+
providers: [
|
|
48
|
+
{
|
|
49
|
+
provide: ADAPTABLE_API,
|
|
50
|
+
useValue: api,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
parent: this.injector,
|
|
54
|
+
});
|
|
55
|
+
// create the component
|
|
56
|
+
const componentRef = createComponent(angularComponentType, {
|
|
57
|
+
hostElement: domContainer,
|
|
58
|
+
environmentInjector: this.environmentInjector,
|
|
59
|
+
elementInjector: toolbarInjector,
|
|
60
|
+
});
|
|
61
|
+
// Last step is to register the newly created ref using the `ApplicationRef` instance
|
|
62
|
+
// to include the component view into change detection cycles.
|
|
63
|
+
this.appRef.attachView(componentRef.hostView);
|
|
64
|
+
// trigger an early change detection
|
|
65
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
66
|
+
return componentRef;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
AdaptableAngularFrameworkComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularFrameworkComponentService, deps: [{ token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
|
+
AdaptableAngularFrameworkComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularFrameworkComponentService, providedIn: 'root' });
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularFrameworkComponentService, decorators: [{
|
|
72
|
+
type: Injectable,
|
|
73
|
+
args: [{
|
|
74
|
+
providedIn: 'root',
|
|
75
|
+
}]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.ApplicationRef }]; } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRhYmxlLWFuZ3VsYXItZnJhbWV3b3JrLWNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRhcHRhYmxlLWFuZ3VsYXItYWdncmlkL3NyYy9saWIvYWRhcHRhYmxlLWFuZ3VsYXItZnJhbWV3b3JrLWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxlQUFlLEVBRWYsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBTWpFLE1BQU0sT0FBTyx5Q0FBeUM7SUFHcEQsWUFDVSxRQUFrQixFQUNsQixtQkFBd0MsRUFDeEMsTUFBc0I7UUFGdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBRTlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBb0QsQ0FBQztJQUM5RixDQUFDO0lBRUQsd0JBQXdCLENBQ3RCLFNBQW9DLEVBQ3BDLGdCQUE2QixFQUM3QixhQUFxQixFQUNyQixZQUEwQjtRQUUxQixJQUFJO1lBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsYUFBYSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUM1RixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzVDLFlBQVksQ0FBQyxPQUFPLENBQ2xCLG1DQUFtQyxhQUFhLG1DQUFtQyxFQUNuRixnQkFBZ0IsQ0FDakIsQ0FBQztnQkFDRixPQUFPO2FBQ1I7WUFFRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDckQsU0FBUyxDQUFDLElBQXFCLEVBQy9CLGdCQUFnQixFQUNoQixZQUFZLENBQ2IsQ0FBQztZQUVGLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRTtnQkFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNsRjtZQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUM7U0FDL0Q7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLFlBQVksQ0FBQyxRQUFRLENBQ25CLG1EQUFtRCxhQUFhLEVBQUUsRUFDbEUsR0FBRyxDQUNKLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCx5QkFBeUIsQ0FDdkIsU0FBb0MsRUFDcEMsYUFBcUIsRUFDckIsWUFBMEI7UUFFMUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUM1RSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixJQUFJO2dCQUNGLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzdDO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osWUFBWSxDQUFDLFFBQVEsQ0FDbkIsb0RBQW9ELGFBQWEsRUFBRSxFQUNuRSxHQUFHLENBQ0osQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLFlBQVksQ0FBQyxPQUFPLENBQ2xCLG9EQUFvRCxhQUFhLCtDQUErQyxDQUNqSCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQzVCLG9CQUFtQyxFQUNuQyxZQUF5QixFQUN6QixHQUFpQjtRQUVqQiwrQ0FBK0M7UUFDL0MsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0QyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFFBQVEsRUFBRSxHQUFHO2lCQUNkO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRTtZQUN6RCxXQUFXLEVBQUUsWUFBWTtZQUN6QixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzdDLGVBQWUsRUFBRSxlQUFlO1NBQ2pDLENBQUMsQ0FBQztRQUVILHFGQUFxRjtRQUNyRiw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLG9DQUFvQztRQUNwQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFL0MsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs7dUlBcEdVLHlDQUF5QzsySUFBekMseUNBQXlDLGNBRnhDLE1BQU07NEZBRVAseUNBQXlDO2tCQUhyRCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIGNyZWF0ZUNvbXBvbmVudCxcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWRhcHRhYmxlQXBpIH0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9zcmMvQXBpL0FkYXB0YWJsZUFwaSc7XG5pbXBvcnQgeyBBREFQVEFCTEVfQVBJIH0gZnJvbSAnLi9hZGFwdGFibGUtYW5ndWxhci1hZ2dyaWQudG9rZW4nO1xuaW1wb3J0IHsgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJ0BhZGFwdGFibGV0b29scy9hZGFwdGFibGUvdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQWRhcHRhYmxlQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudFNlcnZpY2Uge1xuICBwcml2YXRlIHRvb2xiYXJDb21wb25lbnRSZWZzOiBXZWFrTWFwPEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnQsIENvbXBvbmVudFJlZjx1bmtub3duPj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZlxuICApIHtcbiAgICB0aGlzLnRvb2xiYXJDb21wb25lbnRSZWZzID0gbmV3IFdlYWtNYXA8QW5ndWxhckZyYW1ld29ya0NvbXBvbmVudCwgQ29tcG9uZW50UmVmPHVua25vd24+PigpO1xuICB9XG5cbiAgY3JlYXRlRnJhbWV3b3JrQ29tcG9uZW50KFxuICAgIGNvbXBvbmVudDogQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudCxcbiAgICBjb250YWluZXJEb21Ob2RlOiBIVE1MRWxlbWVudCxcbiAgICBjb21wb25lbnRUeXBlOiBzdHJpbmcsXG4gICAgYWRhcHRhYmxlQXBpOiBBZGFwdGFibGVBcGlcbiAgKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGFkYXB0YWJsZUFwaS5sb2dJbmZvKGBDcmVhdGluZyBmcmFtZXdvcmsgY29tcG9uZW50IGZvciAke2NvbXBvbmVudFR5cGV9YCwgY29udGFpbmVyRG9tTm9kZSk7XG4gICAgICBpZiAodGhpcy50b29sYmFyQ29tcG9uZW50UmVmcy5oYXMoY29tcG9uZW50KSkge1xuICAgICAgICBhZGFwdGFibGVBcGkubG9nSW5mbyhcbiAgICAgICAgICBgQ3JlYXRpb24gb2YgZnJhbWV3b3JrIGNvbXBvbmVudCAke2NvbXBvbmVudFR5cGV9IHNraXBwZWQgYXMgaXQgaXMgYWxyZWFkeSBwcmVzZW50YCxcbiAgICAgICAgICBjb250YWluZXJEb21Ob2RlXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYW5ndWxhckNvbXBvbmVudFJlZiA9IHRoaXMuY3JlYXRlQW5ndWxhckNvbXBvbmVudChcbiAgICAgICAgY29tcG9uZW50LnR5cGUgYXMgVHlwZTx1bmtub3duPixcbiAgICAgICAgY29udGFpbmVyRG9tTm9kZSxcbiAgICAgICAgYWRhcHRhYmxlQXBpXG4gICAgICApO1xuXG4gICAgICBpZiAoY29tcG9uZW50Lm9uU2V0dXApIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihhbmd1bGFyQ29tcG9uZW50UmVmLmluc3RhbmNlLCBjb21wb25lbnQub25TZXR1cCh7IGFkYXB0YWJsZUFwaSB9KSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudG9vbGJhckNvbXBvbmVudFJlZnMuc2V0KGNvbXBvbmVudCwgYW5ndWxhckNvbXBvbmVudFJlZik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhZGFwdGFibGVBcGkubG9nRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgY29ycmVjdGx5IGNyZWF0ZSBmcmFtZXdvcmsgY29tcG9uZW50IGZvciAke2NvbXBvbmVudFR5cGV9YCxcbiAgICAgICAgZXJyXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3lGcmFtZXdvcmtDb21wb25lbnQoXG4gICAgY29tcG9uZW50OiBBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50LFxuICAgIGNvbXBvbmVudFR5cGU6IHN0cmluZyxcbiAgICBhZGFwdGFibGVBcGk6IEFkYXB0YWJsZUFwaVxuICApOiB2b2lkIHtcbiAgICBhZGFwdGFibGVBcGkubG9nSW5mbyhgRGVzdHJveWluZyBmcmFtZXdvcmsgY29tcG9uZW50IGZvciAke2NvbXBvbmVudFR5cGV9YCk7XG4gICAgY29uc3QgdG9vbGJhckNvbXBvbmVudFJlZiA9IHRoaXMudG9vbGJhckNvbXBvbmVudFJlZnMuZ2V0KGNvbXBvbmVudCk7XG4gICAgaWYgKHRvb2xiYXJDb21wb25lbnRSZWYpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRvb2xiYXJDb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnRvb2xiYXJDb21wb25lbnRSZWZzLmRlbGV0ZShjb21wb25lbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGFkYXB0YWJsZUFwaS5sb2dFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IGNvcnJlY3RseSBkZXN0cm95IGZyYW1ld29yayBjb21wb25lbnQgZm9yICR7Y29tcG9uZW50VHlwZX1gLFxuICAgICAgICAgIGVyclxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhZGFwdGFibGVBcGkubG9nSW5mbyhcbiAgICAgICAgYENhbm5vdCBjb3JyZWN0bHkgZGVzdHJveSBmcmFtZXdvcmsgY29tcG9uZW50IGZvciAke2NvbXBvbmVudFR5cGV9IGJlY2F1c2UgdGhlIHJlZmVyZW5jZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUFuZ3VsYXJDb21wb25lbnQoXG4gICAgYW5ndWxhckNvbXBvbmVudFR5cGU6IFR5cGU8dW5rbm93bj4sXG4gICAgZG9tQ29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgICBhcGk6IEFkYXB0YWJsZUFwaVxuICApOiBDb21wb25lbnRSZWY8dW5rbm93bj4ge1xuICAgIC8vIGV4dGVuZCBzdGFuZGFyZCBESSBjb250ZXh0IHdpdGggQWRhcHRhYmxlQXBpXG4gICAgY29uc3QgdG9vbGJhckluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQURBUFRBQkxFX0FQSSxcbiAgICAgICAgICB1c2VWYWx1ZTogYXBpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICB9KTtcblxuICAgIC8vIGNyZWF0ZSB0aGUgY29tcG9uZW50XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KGFuZ3VsYXJDb21wb25lbnRUeXBlLCB7XG4gICAgICBob3N0RWxlbWVudDogZG9tQ29udGFpbmVyLFxuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgZWxlbWVudEluamVjdG9yOiB0b29sYmFySW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICAvLyBMYXN0IHN0ZXAgaXMgdG8gcmVnaXN0ZXIgdGhlIG5ld2x5IGNyZWF0ZWQgcmVmIHVzaW5nIHRoZSBgQXBwbGljYXRpb25SZWZgIGluc3RhbmNlXG4gICAgLy8gdG8gaW5jbHVkZSB0aGUgY29tcG9uZW50IHZpZXcgaW50byBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlcy5cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgLy8gdHJpZ2dlciBhbiBlYXJseSBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of adaptable-angular-aggrid
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/adaptable-angular-ag-grid-component.directive';
|
|
5
|
+
export * from './lib/adaptable-angular-aggrid.module';
|
|
6
|
+
export * from '@adaptabletools/adaptable/src/types';
|
|
7
|
+
export { AdaptableQL, AdaptableBooleanExpressionFunctions, AdaptableScalarExpressionFunctions, AdaptableAggregatedBooleanExpressionFunctions, AdaptableAggregatedScalarExpressionFunctions, AdaptableObservableExpressionFunctions, } from '@adaptabletools/adaptable/agGrid';
|
|
8
|
+
export { ADAPTABLE_API } from './lib/adaptable-angular-aggrid.token';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNsQyw2Q0FBNkMsRUFDN0MsNENBQTRDLEVBQzVDLHNDQUFzQyxHQUN2QyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYWRhcHRhYmxlLWFuZ3VsYXItYWdncmlkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWRhcHRhYmxlLWFuZ3VsYXItYWctZ3JpZC1jb21wb25lbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9zcmMvdHlwZXMnO1xuZXhwb3J0IHtcbiAgQWRhcHRhYmxlUUwsXG4gIEFkYXB0YWJsZUJvb2xlYW5FeHByZXNzaW9uRnVuY3Rpb25zLFxuICBBZGFwdGFibGVTY2FsYXJFeHByZXNzaW9uRnVuY3Rpb25zLFxuICBBZGFwdGFibGVBZ2dyZWdhdGVkQm9vbGVhbkV4cHJlc3Npb25GdW5jdGlvbnMsXG4gIEFkYXB0YWJsZUFnZ3JlZ2F0ZWRTY2FsYXJFeHByZXNzaW9uRnVuY3Rpb25zLFxuICBBZGFwdGFibGVPYnNlcnZhYmxlRXhwcmVzc2lvbkZ1bmN0aW9ucyxcbn0gZnJvbSAnQGFkYXB0YWJsZXRvb2xzL2FkYXB0YWJsZS9hZ0dyaWQnO1xuZXhwb3J0IHsgQURBUFRBQkxFX0FQSSB9IGZyb20gJy4vbGliL2FkYXB0YWJsZS1hbmd1bGFyLWFnZ3JpZC50b2tlbic7XG4iXX0=
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, Injector, createComponent, Injectable, EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import { Adaptable } from '@adaptabletools/adaptable/src/agGrid/Adaptable';
|
|
4
|
+
export * from '@adaptabletools/adaptable/src/types';
|
|
5
|
+
export { AdaptableAggregatedBooleanExpressionFunctions, AdaptableAggregatedScalarExpressionFunctions, AdaptableBooleanExpressionFunctions, AdaptableObservableExpressionFunctions, AdaptableQL, AdaptableScalarExpressionFunctions } from '@adaptabletools/adaptable/agGrid';
|
|
6
|
+
|
|
7
|
+
const ADAPTABLE_API = new InjectionToken('ADAPTABLE_API');
|
|
8
|
+
|
|
9
|
+
class AdaptableAngularFrameworkComponentService {
|
|
10
|
+
constructor(injector, environmentInjector, appRef) {
|
|
11
|
+
this.injector = injector;
|
|
12
|
+
this.environmentInjector = environmentInjector;
|
|
13
|
+
this.appRef = appRef;
|
|
14
|
+
this.toolbarComponentRefs = new WeakMap();
|
|
15
|
+
}
|
|
16
|
+
createFrameworkComponent(component, containerDomNode, componentType, adaptableApi) {
|
|
17
|
+
try {
|
|
18
|
+
adaptableApi.logInfo(`Creating framework component for ${componentType}`, containerDomNode);
|
|
19
|
+
if (this.toolbarComponentRefs.has(component)) {
|
|
20
|
+
adaptableApi.logInfo(`Creation of framework component ${componentType} skipped as it is already present`, containerDomNode);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const angularComponentRef = this.createAngularComponent(component.type, containerDomNode, adaptableApi);
|
|
24
|
+
if (component.onSetup) {
|
|
25
|
+
Object.assign(angularComponentRef.instance, component.onSetup({ adaptableApi }));
|
|
26
|
+
}
|
|
27
|
+
this.toolbarComponentRefs.set(component, angularComponentRef);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
adaptableApi.logError(`Cannot correctly create framework component for ${componentType}`, err);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
destroyFrameworkComponent(component, componentType, adaptableApi) {
|
|
34
|
+
adaptableApi.logInfo(`Destroying framework component for ${componentType}`);
|
|
35
|
+
const toolbarComponentRef = this.toolbarComponentRefs.get(component);
|
|
36
|
+
if (toolbarComponentRef) {
|
|
37
|
+
try {
|
|
38
|
+
toolbarComponentRef.destroy();
|
|
39
|
+
this.toolbarComponentRefs.delete(component);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
adaptableApi.logError(`Cannot correctly destroy framework component for ${componentType}`, err);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
adaptableApi.logInfo(`Cannot correctly destroy framework component for ${componentType} because the reference is no longer available`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
createAngularComponent(angularComponentType, domContainer, api) {
|
|
50
|
+
// extend standard DI context with AdaptableApi
|
|
51
|
+
const toolbarInjector = Injector.create({
|
|
52
|
+
providers: [
|
|
53
|
+
{
|
|
54
|
+
provide: ADAPTABLE_API,
|
|
55
|
+
useValue: api,
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
parent: this.injector,
|
|
59
|
+
});
|
|
60
|
+
// create the component
|
|
61
|
+
const componentRef = createComponent(angularComponentType, {
|
|
62
|
+
hostElement: domContainer,
|
|
63
|
+
environmentInjector: this.environmentInjector,
|
|
64
|
+
elementInjector: toolbarInjector,
|
|
65
|
+
});
|
|
66
|
+
// Last step is to register the newly created ref using the `ApplicationRef` instance
|
|
67
|
+
// to include the component view into change detection cycles.
|
|
68
|
+
this.appRef.attachView(componentRef.hostView);
|
|
69
|
+
// trigger an early change detection
|
|
70
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
71
|
+
return componentRef;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
AdaptableAngularFrameworkComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularFrameworkComponentService, deps: [{ token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
75
|
+
AdaptableAngularFrameworkComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularFrameworkComponentService, providedIn: 'root' });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularFrameworkComponentService, decorators: [{
|
|
77
|
+
type: Injectable,
|
|
78
|
+
args: [{
|
|
79
|
+
providedIn: 'root',
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.ApplicationRef }]; } });
|
|
82
|
+
|
|
83
|
+
function getRandomInt(max) {
|
|
84
|
+
return Math.floor(Math.random() * Math.floor(max));
|
|
85
|
+
}
|
|
86
|
+
class AdaptableAngularAgGridComponentDirective {
|
|
87
|
+
constructor(renderer, el, frameworkComponentService) {
|
|
88
|
+
this.renderer = renderer;
|
|
89
|
+
this.el = el;
|
|
90
|
+
this.frameworkComponentService = frameworkComponentService;
|
|
91
|
+
this.adaptableReady = new EventEmitter();
|
|
92
|
+
const seedId = `${getRandomInt(1000)}-${Date.now()}`;
|
|
93
|
+
this.adaptableContainerId = `adaptable-${seedId}`;
|
|
94
|
+
}
|
|
95
|
+
async ngOnInit() {
|
|
96
|
+
if (this.modules == null) {
|
|
97
|
+
throw new Error(`Attribute 'modules' is required. Please pass the ag-grid modules you use into AdapTable.
|
|
98
|
+
If you don't have extra modules, pass an empty array.`);
|
|
99
|
+
}
|
|
100
|
+
this.createAngularWrapperContainer();
|
|
101
|
+
this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};
|
|
102
|
+
this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;
|
|
103
|
+
const adaptableApi = await Adaptable.initInternal(this.adaptableOptions, {
|
|
104
|
+
gridOptions: this.gridOptions,
|
|
105
|
+
waitForAgGrid: true,
|
|
106
|
+
variant: 'angular',
|
|
107
|
+
modules: this.modules,
|
|
108
|
+
});
|
|
109
|
+
adaptableApi.internalApi
|
|
110
|
+
.getAdaptableInstance()
|
|
111
|
+
._onIncludeFired('FrameworkComponentChange', ({ command, frameworkComponent, containerDomNode, componentType }) => {
|
|
112
|
+
if (command === 'create') {
|
|
113
|
+
this.frameworkComponentService.createFrameworkComponent(frameworkComponent, containerDomNode, componentType, adaptableApi);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.frameworkComponentService.destroyFrameworkComponent(frameworkComponent, componentType, adaptableApi);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo) => this.adaptableReady.emit(adaptableReadyInfo));
|
|
120
|
+
this.adaptableApi = adaptableApi;
|
|
121
|
+
}
|
|
122
|
+
ngOnDestroy() {
|
|
123
|
+
if (!this.adaptableApi) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this.adaptableApi.destroy({
|
|
127
|
+
unmount: true,
|
|
128
|
+
destroyApi: false,
|
|
129
|
+
});
|
|
130
|
+
this.adaptableApi = null;
|
|
131
|
+
}
|
|
132
|
+
// creates the container for the adaptable toolbar and inserts it before the ag-grid element
|
|
133
|
+
createAngularWrapperContainer() {
|
|
134
|
+
const adaptableContainer = this.renderer.createElement('div');
|
|
135
|
+
adaptableContainer.style.setProperty('display', 'flex');
|
|
136
|
+
adaptableContainer.style.setProperty('flex-flow', 'var(--ab_flex-direction, column)');
|
|
137
|
+
this.renderer.setProperty(adaptableContainer, 'id', this.adaptableContainerId);
|
|
138
|
+
this.renderer.insertBefore(this.renderer.parentNode(this.el.nativeElement), adaptableContainer, this.el.nativeElement);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
AdaptableAngularAgGridComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridComponentDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: AdaptableAngularFrameworkComponentService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
142
|
+
AdaptableAngularAgGridComponentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AdaptableAngularAgGridComponentDirective, selector: "ag-grid-angular[adaptableOptions]", inputs: { adaptableOptions: "adaptableOptions", modules: "modules", gridOptions: "gridOptions" }, outputs: { adaptableReady: "adaptableReady" }, providers: [AdaptableAngularFrameworkComponentService], ngImport: i0 });
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridComponentDirective, decorators: [{
|
|
144
|
+
type: Directive,
|
|
145
|
+
args: [{
|
|
146
|
+
selector: 'ag-grid-angular[adaptableOptions]',
|
|
147
|
+
// ensures each AG Grid instance has its own copy of the service (incl. the framework component references)
|
|
148
|
+
providers: [AdaptableAngularFrameworkComponentService],
|
|
149
|
+
}]
|
|
150
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: AdaptableAngularFrameworkComponentService }]; }, propDecorators: { adaptableOptions: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], modules: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], gridOptions: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], adaptableReady: [{
|
|
157
|
+
type: Output
|
|
158
|
+
}] } });
|
|
159
|
+
|
|
160
|
+
class AdaptableAngularAgGridModule {
|
|
161
|
+
}
|
|
162
|
+
AdaptableAngularAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
163
|
+
AdaptableAngularAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, declarations: [AdaptableAngularAgGridComponentDirective], exports: [AdaptableAngularAgGridComponentDirective] });
|
|
164
|
+
AdaptableAngularAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule });
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, decorators: [{
|
|
166
|
+
type: NgModule,
|
|
167
|
+
args: [{
|
|
168
|
+
declarations: [AdaptableAngularAgGridComponentDirective],
|
|
169
|
+
imports: [],
|
|
170
|
+
exports: [AdaptableAngularAgGridComponentDirective],
|
|
171
|
+
providers: [],
|
|
172
|
+
}]
|
|
173
|
+
}] });
|
|
174
|
+
|
|
175
|
+
/*
|
|
176
|
+
* Public API Surface of adaptable-angular-aggrid
|
|
177
|
+
*/
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Generated bundle index. Do not edit.
|
|
181
|
+
*/
|
|
182
|
+
|
|
183
|
+
export { ADAPTABLE_API, AdaptableAngularAgGridComponentDirective, AdaptableAngularAgGridModule };
|
|
184
|
+
//# sourceMappingURL=adaptabletools-adaptable-angular-aggrid.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptabletools-adaptable-angular-aggrid.mjs","sources":["../../../projects/adaptable-angular-aggrid/src/lib/adaptable-angular-aggrid.token.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-angular-framework-component.service.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-angular-ag-grid-component.directive.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/types';\n\nexport const ADAPTABLE_API = new InjectionToken<AdaptableApi>('ADAPTABLE_API');\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nimport { ADAPTABLE_API } from './adaptable-angular-aggrid.token';\nimport { AngularFrameworkComponent } from '@adaptabletools/adaptable/types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AdaptableAngularFrameworkComponentService {\n private toolbarComponentRefs: WeakMap<AngularFrameworkComponent, ComponentRef<unknown>>;\n\n constructor(\n private injector: Injector,\n private environmentInjector: EnvironmentInjector,\n private appRef: ApplicationRef\n ) {\n this.toolbarComponentRefs = new WeakMap<AngularFrameworkComponent, ComponentRef<unknown>>();\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\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\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 ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { GridOptions, Module } from '@ag-grid-community/core';\nimport { AdaptableOptions } from '@adaptabletools/adaptable/src/AdaptableOptions/AdaptableOptions';\nimport { AdaptableReadyInfo } from '@adaptabletools/adaptable/src/Api/Events/AdaptableReady';\nimport { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';\nimport { Adaptable } from '@adaptabletools/adaptable/src/agGrid/Adaptable';\nimport { AngularFrameworkComponent } from '@adaptabletools/adaptable/types';\nimport { AdaptableAngularFrameworkComponentService } from './adaptable-angular-framework-component.service';\n\nfunction getRandomInt(max: number): number {\n return Math.floor(Math.random() * Math.floor(max));\n}\n\n@Directive({\n selector: 'ag-grid-angular[adaptableOptions]',\n // ensures each AG Grid instance has its own copy of the service (incl. the framework component references)\n providers: [AdaptableAngularFrameworkComponentService],\n})\nexport class AdaptableAngularAgGridComponentDirective<TData = any> implements OnDestroy, OnInit {\n @Input() adaptableOptions: AdaptableOptions<TData>;\n @Input() modules: Module[];\n @Input() gridOptions: GridOptions<TData>;\n\n @Output() adaptableReady = new EventEmitter<AdaptableReadyInfo>();\n\n public adaptableContainerId: string;\n private adaptableApi: AdaptableApi;\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef,\n private frameworkComponentService: AdaptableAngularFrameworkComponentService\n ) {\n const seedId = `${getRandomInt(1000)}-${Date.now()}`;\n\n this.adaptableContainerId = `adaptable-${seedId}`;\n }\n\n async ngOnInit() {\n if (this.modules == null) {\n throw new Error(\n `Attribute 'modules' is required. Please pass the ag-grid modules you use into AdapTable.\n If you don't have extra modules, pass an empty array.`\n );\n }\n\n this.createAngularWrapperContainer();\n\n this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};\n this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;\n\n const adaptableApi = await Adaptable.initInternal(this.adaptableOptions, {\n gridOptions: this.gridOptions,\n waitForAgGrid: true,\n variant: 'angular',\n modules: this.modules,\n });\n\n adaptableApi.internalApi\n .getAdaptableInstance()\n ._onIncludeFired(\n 'FrameworkComponentChange',\n ({ command, frameworkComponent, containerDomNode, componentType }) => {\n if (command === 'create') {\n this.frameworkComponentService.createFrameworkComponent(\n frameworkComponent as AngularFrameworkComponent,\n containerDomNode,\n componentType,\n adaptableApi\n );\n } else {\n this.frameworkComponentService.destroyFrameworkComponent(\n frameworkComponent as AngularFrameworkComponent,\n componentType,\n adaptableApi\n );\n }\n }\n );\n\n adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo: AdaptableReadyInfo) =>\n this.adaptableReady.emit(adaptableReadyInfo)\n );\n\n this.adaptableApi = adaptableApi;\n }\n\n ngOnDestroy() {\n if (!this.adaptableApi) {\n return;\n }\n this.adaptableApi.destroy({\n unmount: true,\n destroyApi: false,\n });\n this.adaptableApi = null;\n }\n\n // creates the container for the adaptable toolbar and inserts it before the ag-grid element\n private createAngularWrapperContainer(): void {\n const adaptableContainer = this.renderer.createElement('div');\n\n adaptableContainer.style.setProperty('display', 'flex');\n adaptableContainer.style.setProperty('flex-flow', 'var(--ab_flex-direction, column)');\n\n this.renderer.setProperty(adaptableContainer, 'id', this.adaptableContainerId);\n this.renderer.insertBefore(\n this.renderer.parentNode(this.el.nativeElement),\n adaptableContainer,\n this.el.nativeElement\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AdaptableAngularAgGridComponentDirective } from './adaptable-angular-ag-grid-component.directive';\n\n@NgModule({\n declarations: [AdaptableAngularAgGridComponentDirective],\n imports: [],\n exports: [AdaptableAngularAgGridComponentDirective],\n providers: [],\n})\nexport class AdaptableAngularAgGridModule {}\n","/*\n * Public API Surface of adaptable-angular-aggrid\n */\n\nexport * from './lib/adaptable-angular-ag-grid-component.directive';\nexport * from './lib/adaptable-angular-aggrid.module';\nexport * from '@adaptabletools/adaptable/src/types';\nexport {\n AdaptableQL,\n AdaptableBooleanExpressionFunctions,\n AdaptableScalarExpressionFunctions,\n AdaptableAggregatedBooleanExpressionFunctions,\n AdaptableAggregatedScalarExpressionFunctions,\n AdaptableObservableExpressionFunctions,\n} from '@adaptabletools/adaptable/agGrid';\nexport { ADAPTABLE_API } from './lib/adaptable-angular-aggrid.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AdaptableAngularFrameworkComponentService"],"mappings":"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"}
|