@adaptabletools/adaptable-angular-aggrid 18.0.0-canary.3 → 18.0.0-canary.31

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.
Files changed (32) hide show
  1. package/base.css +27 -21
  2. package/base.css.map +1 -1
  3. package/esm2020/lib/adaptable-aggrid.directive.mjs +29 -0
  4. package/esm2020/lib/adaptable-angular-aggrid.component.mjs +45 -0
  5. package/esm2020/lib/adaptable-angular-aggrid.module.mjs +11 -7
  6. package/esm2020/lib/adaptable-api.token.mjs +3 -0
  7. package/esm2020/lib/adaptable-controller.service.mjs +115 -0
  8. package/esm2020/lib/adaptable-provider.component.mjs +77 -0
  9. package/esm2020/lib/adaptable-ui.component.mjs +79 -0
  10. package/esm2020/lib/waitForCondition.mjs +26 -0
  11. package/esm2020/public-api.mjs +8 -5
  12. package/fesm2015/adaptabletools-adaptable-angular-aggrid.mjs +279 -76
  13. package/fesm2015/adaptabletools-adaptable-angular-aggrid.mjs.map +1 -1
  14. package/fesm2020/adaptabletools-adaptable-angular-aggrid.mjs +275 -73
  15. package/fesm2020/adaptabletools-adaptable-angular-aggrid.mjs.map +1 -1
  16. package/index.css +108 -88
  17. package/index.css.map +1 -1
  18. package/lib/adaptable-aggrid.directive.d.ts +13 -0
  19. package/lib/adaptable-angular-aggrid.component.d.ts +11 -0
  20. package/lib/adaptable-angular-aggrid.module.d.ts +6 -2
  21. package/lib/{adaptable-angular-aggrid.token.d.ts → adaptable-api.token.d.ts} +1 -1
  22. package/lib/adaptable-controller.service.d.ts +38 -0
  23. package/lib/adaptable-provider.component.d.ts +21 -0
  24. package/lib/adaptable-ui.component.d.ts +18 -0
  25. package/lib/waitForCondition.d.ts +1 -0
  26. package/package.json +4 -4
  27. package/public-api.d.ts +7 -4
  28. package/esm2020/lib/adaptable-angular-ag-grid-component.directive.mjs +0 -82
  29. package/esm2020/lib/adaptable-angular-aggrid.token.mjs +0 -3
  30. package/esm2020/lib/adaptable-angular-framework-component.service.mjs +0 -77
  31. package/lib/adaptable-angular-ag-grid-component.directive.d.ts +0 -23
  32. package/lib/adaptable-angular-framework-component.service.d.ts +0 -16
@@ -1,18 +1,63 @@
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
1
  export * from '@adaptabletools/adaptable/src/types';
5
- export { AdaptableAggregatedBooleanExpressionFunctions, AdaptableAggregatedScalarExpressionFunctions, AdaptableBooleanExpressionFunctions, AdaptableObservableExpressionFunctions, AdaptableQL, AdaptableScalarExpressionFunctions } from '@adaptabletools/adaptable/agGrid';
2
+ import { _AdaptableAgGrid } from '@adaptabletools/adaptable/agGrid';
3
+ export { AdaptableQL, AdaptableUpgradeHelper } from '@adaptabletools/adaptable/agGrid';
4
+ import * as i0 from '@angular/core';
5
+ import { InjectionToken, EventEmitter, Injector, createComponent, Injectable, Directive, Component, Input, Output, ContentChild, Attribute, ViewEncapsulation, NgModule } from '@angular/core';
6
+ import * as i2 from '@angular/common';
7
+ import { CommonModule } from '@angular/common';
8
+ import { BehaviorSubject } from 'rxjs';
9
+ import * as i1 from '@ag-grid-community/angular';
10
+ import { AgGridAngular, AngularFrameworkOverrides, AngularFrameworkComponentWrapper } from '@ag-grid-community/angular';
6
11
 
7
12
  const ADAPTABLE_API = new InjectionToken('ADAPTABLE_API');
8
13
 
9
- class AdaptableAngularFrameworkComponentService {
14
+ class AdaptableControllerService {
10
15
  constructor(injector, environmentInjector, appRef) {
11
16
  this.injector = injector;
12
17
  this.environmentInjector = environmentInjector;
13
18
  this.appRef = appRef;
19
+ this.adaptableReady = new EventEmitter();
20
+ this.phase = new BehaviorSubject('waitForAdaptableProps');
21
+ this.agGridFrameworkPromise = new Promise((resolve) => {
22
+ this.resolveAgGridFrameworkPromise = resolve;
23
+ });
14
24
  this.toolbarComponentRefs = new WeakMap();
15
25
  }
26
+ currentInitPhase() {
27
+ return this.phase.asObservable();
28
+ }
29
+ setInitialisationPhase(phase) {
30
+ this.phase.next(phase);
31
+ }
32
+ registerAdaptableOptions(adaptableOptions) {
33
+ this.adaptableOptions = adaptableOptions;
34
+ this.checkIfAllPropsAreSet();
35
+ }
36
+ registerGridOptions(gridOptions) {
37
+ this.gridOptions = gridOptions;
38
+ this.checkIfAllPropsAreSet();
39
+ }
40
+ registerModules(modules) {
41
+ this.modules = modules;
42
+ this.checkIfAllPropsAreSet();
43
+ }
44
+ renderAgGridFrameworkComponent(gridOptions) {
45
+ this.gridOptions = gridOptions;
46
+ this.setInitialisationPhase('waitForAgGridInit');
47
+ return this.agGridFrameworkPromise;
48
+ }
49
+ onAdaptableReady(adaptableReadyInfo) {
50
+ this.adaptableReady.emit(adaptableReadyInfo);
51
+ }
52
+ onAgGridReady(agGridApi) {
53
+ this.resolveAgGridFrameworkPromise(agGridApi);
54
+ this.setInitialisationPhase('waitForAdaptableReady');
55
+ }
56
+ checkIfAllPropsAreSet() {
57
+ if (this.adaptableOptions && this.gridOptions && this.modules) {
58
+ this.setInitialisationPhase('waitForAdaptableInit');
59
+ }
60
+ }
16
61
  createFrameworkComponent(component, containerDomNode, componentType, adaptableApi) {
17
62
  try {
18
63
  adaptableApi.logInfo(`Creating framework component for ${componentType}`, containerDomNode);
@@ -71,55 +116,129 @@ class AdaptableAngularFrameworkComponentService {
71
116
  return componentRef;
72
117
  }
73
118
  }
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
- }]
119
+ AdaptableControllerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableControllerService, deps: [{ token: i0.Injector }, { token: i0.EnvironmentInjector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
120
+ AdaptableControllerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableControllerService });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableControllerService, decorators: [{
122
+ type: Injectable
81
123
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.EnvironmentInjector }, { type: i0.ApplicationRef }]; } });
82
124
 
83
- function getRandomInt(max) {
84
- return Math.floor(Math.random() * Math.floor(max));
125
+ class AdaptableAgGridDirective {
126
+ constructor(viewContainer, templateRef, adaptableControllerService) {
127
+ this.viewContainer = viewContainer;
128
+ this.templateRef = templateRef;
129
+ this.adaptableControllerService = adaptableControllerService;
130
+ this.phaseSubscription = this.adaptableControllerService
131
+ .currentInitPhase()
132
+ .subscribe((phase) => {
133
+ if (phase === 'waitForAgGridInit') {
134
+ this.viewContainer.createEmbeddedView(this.templateRef);
135
+ }
136
+ });
137
+ }
138
+ ngOnDestroy() {
139
+ this.phaseSubscription?.unsubscribe();
140
+ }
85
141
  }
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}`;
142
+ AdaptableAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAgGridDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Directive });
143
+ AdaptableAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AdaptableAgGridDirective, selector: "[adaptable]", ngImport: i0 });
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAgGridDirective, decorators: [{
145
+ type: Directive,
146
+ args: [{
147
+ selector: '[adaptable]',
148
+ }]
149
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: AdaptableControllerService }]; } });
150
+
151
+ class AdaptableProvider {
152
+ constructor(adaptableControllerService) {
153
+ this.adaptableControllerService = adaptableControllerService;
154
+ this.adaptableReady = this.adaptableControllerService.adaptableReady;
94
155
  }
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.`);
156
+ ngAfterContentInit() {
157
+ if (!this.adaptableDirective) {
158
+ throw new Error(`
159
+ <adaptable-provider> must have a child <adaptable-ag-grid-angular> component with the 'adaptable' directive applied!
160
+
161
+ E.g.: <adaptable-ag-grid-angular *adaptable></adaptable-ag-grid-angular>
162
+ `);
99
163
  }
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);
164
+ }
165
+ ngOnChanges(changes) {
166
+ const adaptableOptionsChange = changes['adaptableOptions'];
167
+ if (adaptableOptionsChange) {
168
+ if (adaptableOptionsChange.previousValue != undefined) {
169
+ console.error(`Mutating AdaptableOptions after Adaptable has been initialised is not supported!`);
114
170
  }
115
- else {
116
- this.frameworkComponentService.destroyFrameworkComponent(frameworkComponent, componentType, adaptableApi);
171
+ else if (adaptableOptionsChange.currentValue != undefined) {
172
+ this.adaptableControllerService.registerAdaptableOptions(adaptableOptionsChange.currentValue);
173
+ }
174
+ }
175
+ const gridOptionsChange = changes['gridOptions'];
176
+ if (gridOptionsChange) {
177
+ if (gridOptionsChange.previousValue != undefined) {
178
+ console.error(`Mutating GridOptions after AG Grid has been initialised is not supported!`);
179
+ }
180
+ else if (gridOptionsChange.currentValue != undefined) {
181
+ this.adaptableControllerService.registerGridOptions(gridOptionsChange.currentValue);
182
+ }
183
+ }
184
+ const modulesChange = changes['modules'];
185
+ if (modulesChange) {
186
+ if (modulesChange.previousValue != undefined) {
187
+ console.error(`Mutating Modules after AG Grid has been initialised is not supported!`);
188
+ }
189
+ else if (modulesChange.currentValue != undefined) {
190
+ this.adaptableControllerService.registerModules(modulesChange.currentValue);
191
+ }
192
+ }
193
+ }
194
+ onAdaptableReady(adaptableReadyInfo) {
195
+ this.adaptableReady.emit(adaptableReadyInfo);
196
+ }
197
+ }
198
+ AdaptableProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, deps: [{ token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component });
199
+ 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 });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableProvider, decorators: [{
201
+ type: Component,
202
+ args: [{
203
+ selector: 'adaptable-provider',
204
+ template: `<ng-content></ng-content>`,
205
+ providers: [AdaptableControllerService],
206
+ host: {
207
+ class: 'ab__ng-wrapper',
208
+ },
209
+ }]
210
+ }], ctorParameters: function () { return [{ type: AdaptableControllerService }]; }, propDecorators: { adaptableOptions: [{
211
+ type: Input
212
+ }], gridOptions: [{
213
+ type: Input
214
+ }], modules: [{
215
+ type: Input
216
+ }], adaptableReady: [{
217
+ type: Output
218
+ }], adaptableDirective: [{
219
+ type: ContentChild,
220
+ args: [AdaptableAgGridDirective]
221
+ }] } });
222
+
223
+ function getRandomInt(max) {
224
+ return Math.floor(Math.random() * Math.floor(max));
225
+ }
226
+ class AdaptableUI {
227
+ constructor(elementId, adaptableControllerService) {
228
+ this.adaptableControllerService = adaptableControllerService;
229
+ this.readyForAdaptableInit = false;
230
+ this.adaptableContainerId = elementId || `adaptable-${getRandomInt(1000)}-${Date.now()}`;
231
+ this.phaseSubscription = this.adaptableControllerService
232
+ .currentInitPhase()
233
+ .subscribe((phase) => {
234
+ if (phase === 'waitForAdaptableInit') {
235
+ this.readyForAdaptableInit = true;
236
+ this.initializeAdaptable();
117
237
  }
118
238
  });
119
- adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo) => this.adaptableReady.emit(adaptableReadyInfo));
120
- this.adaptableApi = adaptableApi;
121
239
  }
122
240
  ngOnDestroy() {
241
+ this.phaseSubscription?.unsubscribe();
123
242
  if (!this.adaptableApi) {
124
243
  return;
125
244
  }
@@ -129,45 +248,128 @@ class AdaptableAngularAgGridComponentDirective {
129
248
  });
130
249
  this.adaptableApi = null;
131
250
  }
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);
251
+ get adaptableOptions() {
252
+ return this.adaptableControllerService.adaptableOptions;
253
+ }
254
+ get gridOptions() {
255
+ return this.adaptableControllerService.gridOptions;
256
+ }
257
+ get modules() {
258
+ return this.adaptableControllerService.modules;
259
+ }
260
+ initializeAdaptable() {
261
+ this.adaptableOptions.containerOptions = this.adaptableOptions.containerOptions || {};
262
+ this.adaptableOptions.containerOptions.adaptableContainer = this.adaptableContainerId;
263
+ _AdaptableAgGrid
264
+ ._initInternal({
265
+ adaptableOptions: this.adaptableOptions,
266
+ gridOptions: this.gridOptions,
267
+ modules: this.modules,
268
+ variant: 'angular',
269
+ renderAgGridFrameworkComponent: (gridOptions) => this.adaptableControllerService.renderAgGridFrameworkComponent(gridOptions),
270
+ })
271
+ .then((adaptableApi) => {
272
+ this.adaptableApi = adaptableApi;
273
+ adaptableApi.internalApi
274
+ .getAdaptableInstance()
275
+ ._onIncludeFired('FrameworkComponentChange', ({ command, frameworkComponent, containerDomNode, componentType }) => {
276
+ if (command === 'create') {
277
+ this.adaptableControllerService.createFrameworkComponent(frameworkComponent, containerDomNode, componentType, adaptableApi);
278
+ }
279
+ else {
280
+ this.adaptableControllerService.destroyFrameworkComponent(frameworkComponent, componentType, adaptableApi);
281
+ }
282
+ });
283
+ adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo) => this.adaptableControllerService.onAdaptableReady(adaptableReadyInfo));
284
+ });
139
285
  }
140
286
  }
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,
287
+ AdaptableUI.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableUI, deps: [{ token: 'id', attribute: true }, { token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component });
288
+ AdaptableUI.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdaptableUI, selector: "adaptable-ui", ngImport: i0, template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableUI, decorators: [{
290
+ type: Component,
291
+ args: [{ selector: 'adaptable-ui', template: ` <div *ngIf="readyForAdaptableInit" [id]="adaptableContainerId"></div>` }]
292
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
293
+ type: Attribute,
294
+ args: ['id']
295
+ }] }, { type: AdaptableControllerService }]; } });
296
+
297
+ const waitForCondition = (isReady, message = 'Wait time expired', timeout = 5000) => {
298
+ const startTime = Date.now();
299
+ const ready = isReady();
300
+ if (ready) {
301
+ return Promise.resolve();
302
+ }
303
+ return new Promise((resolve, reject) => {
304
+ const wait = (callback) => {
305
+ const ready = isReady();
306
+ if (Date.now() - startTime > timeout) {
307
+ reject(message);
308
+ return;
309
+ }
310
+ if (!ready) {
311
+ setTimeout(() => {
312
+ wait(callback);
313
+ }, 16);
314
+ }
315
+ else {
316
+ callback();
317
+ }
318
+ };
319
+ wait(resolve);
320
+ });
321
+ };
322
+
323
+ class AdaptableAgGridAngular extends AgGridAngular {
324
+ constructor(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper, adaptableControllerService) {
325
+ super(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper);
326
+ this.adaptableControllerService = adaptableControllerService;
327
+ this.gridOptions = this.adaptableControllerService.gridOptions;
328
+ this.modules = this.adaptableControllerService.modules;
329
+ waitForCondition(() => this.api != null, 'Waiting for AgGrid initialisation expired!', 30000).then(() => {
330
+ this.adaptableControllerService.onAgGridReady(this.api);
331
+ });
332
+ }
333
+ ngOnChanges(changes) {
334
+ const gridOptionsChange = changes['gridOptions'];
335
+ if (gridOptionsChange) {
336
+ gridOptionsChange.currentValue = this.adaptableControllerService.gridOptions;
337
+ console.error(`'gridOption' param should be passed ONLY to the <adaptable-provider> component!
338
+ The input on <adaptable-ag-grid-angular> will be ignored.`);
339
+ }
340
+ const modulesChange = changes['modules'];
341
+ if (modulesChange) {
342
+ modulesChange.currentValue = this.adaptableControllerService.modules;
343
+ console.error(`'modules' param should be passed ONLY to the <adaptable-provider> component!
344
+ The input on <adaptable-ag-grid-angular> will be ignored.`);
345
+ }
346
+ super.ngOnChanges(changes);
347
+ }
348
+ }
349
+ AdaptableAgGridAngular.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAgGridAngular, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.AngularFrameworkOverrides }, { token: i1.AngularFrameworkComponentWrapper }, { token: AdaptableControllerService }], target: i0.ɵɵFactoryTarget.Component });
350
+ AdaptableAgGridAngular.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdaptableAgGridAngular, selector: "adaptable-ag-grid-angular", providers: [AngularFrameworkOverrides, AngularFrameworkComponentWrapper], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ``, isInline: true, encapsulation: i0.ViewEncapsulation.None });
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAgGridAngular, decorators: [{
352
+ type: Component,
145
353
  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],
354
+ selector: 'adaptable-ag-grid-angular',
355
+ template: ``,
356
+ providers: [AngularFrameworkOverrides, AngularFrameworkComponentWrapper],
357
+ // tell angular we don't want view encapsulation, we don't want a shadow root
358
+ encapsulation: ViewEncapsulation.None,
149
359
  }]
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
- }] } });
360
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.AngularFrameworkOverrides }, { type: i1.AngularFrameworkComponentWrapper }, { type: AdaptableControllerService }]; } });
159
361
 
160
362
  class AdaptableAngularAgGridModule {
161
363
  }
162
364
  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 });
365
+ AdaptableAngularAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective, AdaptableAgGridAngular], imports: [CommonModule], exports: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective, AdaptableAgGridAngular] });
366
+ AdaptableAngularAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, imports: [CommonModule] });
165
367
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdaptableAngularAgGridModule, decorators: [{
166
368
  type: NgModule,
167
369
  args: [{
168
- declarations: [AdaptableAngularAgGridComponentDirective],
169
- imports: [],
170
- exports: [AdaptableAngularAgGridComponentDirective],
370
+ declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective, AdaptableAgGridAngular],
371
+ imports: [CommonModule],
372
+ exports: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective, AdaptableAgGridAngular],
171
373
  providers: [],
172
374
  }]
173
375
  }] });
@@ -180,5 +382,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
180
382
  * Generated bundle index. Do not edit.
181
383
  */
182
384
 
183
- export { ADAPTABLE_API, AdaptableAngularAgGridComponentDirective, AdaptableAngularAgGridModule };
385
+ export { ADAPTABLE_API, AdaptableAgGridAngular, AdaptableAgGridDirective, AdaptableAngularAgGridModule, AdaptableProvider, AdaptableUI };
184
386
  //# sourceMappingURL=adaptabletools-adaptable-angular-aggrid.mjs.map
@@ -1 +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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"}
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/waitForCondition.ts","../../../projects/adaptable-angular-aggrid/src/lib/adaptable-angular-aggrid.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 { Directive, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[adaptable]',\n})\nexport class AdaptableAgGridDirective implements OnDestroy {\n private phaseSubscription: Subscription;\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 this.viewContainer.createEmbeddedView(this.templateRef);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.phaseSubscription?.unsubscribe();\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 <adaptable-ag-grid-angular> component with the 'adaptable' directive applied!\n\n E.g.: <adaptable-ag-grid-angular *adaptable></adaptable-ag-grid-angular>\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","export const waitForCondition = (\n isReady: () => boolean,\n message = 'Wait time expired',\n timeout = 5000\n): Promise<void> => {\n const startTime = Date.now();\n\n const ready = isReady();\n if (ready) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve, reject) => {\n const wait = (callback: () => void) => {\n const ready = isReady();\n\n if (Date.now() - startTime > timeout) {\n reject(message);\n return;\n }\n\n if (!ready) {\n setTimeout(() => {\n wait(callback);\n }, 16);\n } else {\n callback();\n }\n };\n\n wait(resolve);\n });\n};\n","import {\n Component,\n ElementRef,\n SimpleChanges,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AgGridAngular,\n AngularFrameworkComponentWrapper,\n AngularFrameworkOverrides,\n} from '@ag-grid-community/angular';\nimport { AdaptableControllerService } from './adaptable-controller.service';\nimport { waitForCondition } from './waitForCondition';\n\n@Component({\n selector: 'adaptable-ag-grid-angular',\n template: ``,\n providers: [AngularFrameworkOverrides, AngularFrameworkComponentWrapper],\n // tell angular we don't want view encapsulation, we don't want a shadow root\n encapsulation: ViewEncapsulation.None,\n})\nexport class AdaptableAgGridAngular extends AgGridAngular {\n constructor(\n elementDef: ElementRef,\n viewContainerRef: ViewContainerRef,\n angularFrameworkOverrides: AngularFrameworkOverrides,\n frameworkComponentWrapper: AngularFrameworkComponentWrapper,\n private adaptableControllerService: AdaptableControllerService\n ) {\n super(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper);\n\n this.gridOptions = this.adaptableControllerService.gridOptions;\n this.modules = this.adaptableControllerService.modules;\n\n waitForCondition(\n () => this.api != null,\n 'Waiting for AgGrid initialisation expired!',\n 30000\n ).then(() => {\n this.adaptableControllerService.onAgGridReady(this.api);\n });\n }\n ngOnChanges(changes: SimpleChanges) {\n const gridOptionsChange = changes['gridOptions'];\n if (gridOptionsChange) {\n gridOptionsChange.currentValue = this.adaptableControllerService.gridOptions;\n console.error(\n `'gridOption' param should be passed ONLY to the <adaptable-provider> component!\nThe input on <adaptable-ag-grid-angular> will be ignored.`\n );\n }\n const modulesChange = changes['modules'];\n if (modulesChange) {\n modulesChange.currentValue = this.adaptableControllerService.modules;\n console.error(\n `'modules' param should be passed ONLY to the <adaptable-provider> component!\nThe input on <adaptable-ag-grid-angular> will be ignored.`\n );\n }\n super.ngOnChanges(changes);\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';\nimport { AdaptableAgGridAngular } from './adaptable-angular-aggrid.component';\n\n@NgModule({\n declarations: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective, AdaptableAgGridAngular],\n imports: [CommonModule],\n exports: [AdaptableProvider, AdaptableUI, AdaptableAgGridDirective, AdaptableAgGridAngular],\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 * from './lib/adaptable-angular-aggrid.component';\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","i2.AdaptableControllerService"],"mappings":";;;;;;;;;;;MAEa,aAAa,GAAG,IAAI,cAAc,CAAe,eAAe;;MCwBhE,0BAA0B,CAAA;AAarC,IAAA,WAAA,CACU,QAAkB,EAClB,mBAAwC,EACxC,MAAsB,EAAA;QAFtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;AAE9B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAsB,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAA+B,uBAAuB,CAAC,CAAC;QACxF,IAAI,CAAC,sBAAsB,GAAG,IAAI,OAAO,CAAuC,CAAC,OAAO,KAAI;AAC1F,YAAA,IAAI,CAAC,6BAA6B,GAAG,OAAO,CAAC;AAC/C,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAAoD,CAAC;KAC7F;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;KAClC;AACD,IAAA,sBAAsB,CAAC,KAAmC,EAAA;AACxD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxB;AACD,IAAA,wBAAwB,CAAC,gBAAkC,EAAA;AACzD,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AACD,IAAA,mBAAmB,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AACD,IAAA,eAAe,CAAC,OAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AACD,IAAA,8BAA8B,CAC5B,WAAwB,EAAA;AAExB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAE/B,QAAA,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACpC;AACD,IAAA,gBAAgB,CAAC,kBAAsC,EAAA;AACrD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC9C;AAED,IAAA,aAAa,CAAC,SAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;KACtD;IACO,qBAAqB,GAAA;QAC3B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7D,YAAA,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;AACrD,SAAA;KACF;AACD,IAAA,wBAAwB,CACtB,SAAoC,EACpC,gBAA6B,EAC7B,aAAqB,EACrB,YAA0B,EAAA;QAE1B,IAAI;YACF,YAAY,CAAC,OAAO,CAAC,CAAA,iCAAA,EAAoC,aAAa,CAAE,CAAA,EAAE,gBAAgB,CAAC,CAAC;YAC5F,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC5C,YAAY,CAAC,OAAO,CAClB,CAAA,gCAAA,EAAmC,aAAa,CAAmC,iCAAA,CAAA,EACnF,gBAAgB,CACjB,CAAC;gBACF,OAAO;AACR,aAAA;AAED,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CACrD,SAAS,CAAC,IAAqB,EAC/B,gBAAgB,EAChB,YAAY,CACb,CAAC;YAEF,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,gBAAA,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAClF,aAAA;YAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAC/D,SAAA;AAAC,QAAA,OAAO,GAAG,EAAE;YACZ,YAAY,CAAC,QAAQ,CACnB,CAAA,gDAAA,EAAmD,aAAa,CAAE,CAAA,EAClE,GAAG,CACJ,CAAC;AACH,SAAA;KACF;AACD,IAAA,yBAAyB,CACvB,SAAoC,EACpC,aAAqB,EACrB,YAA0B,EAAA;AAE1B,QAAA,YAAY,CAAC,OAAO,CAAC,sCAAsC,aAAa,CAAA,CAAE,CAAC,CAAC;QAC5E,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrE,QAAA,IAAI,mBAAmB,EAAE;YACvB,IAAI;gBACF,mBAAmB,CAAC,OAAO,EAAE,CAAC;AAC9B,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7C,aAAA;AAAC,YAAA,OAAO,GAAG,EAAE;gBACZ,YAAY,CAAC,QAAQ,CACnB,CAAA,iDAAA,EAAoD,aAAa,CAAE,CAAA,EACnE,GAAG,CACJ,CAAC;AACH,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,YAAY,CAAC,OAAO,CAClB,oDAAoD,aAAa,CAAA,6CAAA,CAA+C,CACjH,CAAC;AACH,SAAA;KACF;AACO,IAAA,sBAAsB,CAC5B,oBAAmC,EACnC,YAAyB,EACzB,GAAiB,EAAA;;AAGjB,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;AACtC,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,aAAa;AACtB,oBAAA,QAAQ,EAAE,GAAG;AACd,iBAAA;AACF,aAAA;YACD,MAAM,EAAE,IAAI,CAAC,QAAQ;AACtB,SAAA,CAAC,CAAC;;AAGH,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,oBAAoB,EAAE;AACzD,YAAA,WAAW,EAAE,YAAY;YACzB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AAC7C,YAAA,eAAe,EAAE,eAAe;AACjC,SAAA,CAAC,CAAC;;;QAIH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;;AAE9C,QAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AAE/C,QAAA,OAAO,YAAY,CAAC;KACrB;;wHAzJU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4HAA1B,0BAA0B,EAAA,CAAA,CAAA;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;;MClBE,wBAAwB,CAAA;AAGnC,IAAA,WAAA,CACU,aAA+B,EAC/B,WAA6B,EAC7B,0BAAsD,EAAA;QAFtD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAC7B,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA4B;AAE9D,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,0BAA0B;AACrD,aAAA,gBAAgB,EAAE;AAClB,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,IAAI,KAAK,KAAK,mBAAmB,EAAE;gBACjC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzD,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;KACvC;;sHAnBU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAxB,wBAAwB,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACxB,iBAAA,CAAA;;;MCkBY,iBAAiB,CAAA;AAS5B,IAAA,WAAA,CAAoB,0BAAsD,EAAA;QAAtD,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA4B;QACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC;KACtE;IAKD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,MAAM,IAAI,KAAK,CACb,CAAA;;;;AAIC,QAAA,CAAA,CACF,CAAC;AACH,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC3D,QAAA,IAAI,sBAAsB,EAAE;AAC1B,YAAA,IAAI,sBAAsB,CAAC,aAAa,IAAI,SAAS,EAAE;AACrD,gBAAA,OAAO,CAAC,KAAK,CACX,CAAA,gFAAA,CAAkF,CACnF,CAAC;AACH,aAAA;AAAM,iBAAA,IAAI,sBAAsB,CAAC,YAAY,IAAI,SAAS,EAAE;gBAC3D,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CACtD,sBAAsB,CAAC,YAAY,CACpC,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACjD,QAAA,IAAI,iBAAiB,EAAE;AACrB,YAAA,IAAI,iBAAiB,CAAC,aAAa,IAAI,SAAS,EAAE;AAChD,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,yEAAA,CAA2E,CAAC,CAAC;AAC5F,aAAA;AAAM,iBAAA,IAAI,iBAAiB,CAAC,YAAY,IAAI,SAAS,EAAE;gBACtD,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACrF,aAAA;AACF,SAAA;AACD,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACzC,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,aAAa,CAAC,aAAa,IAAI,SAAS,EAAE;AAC5C,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,qEAAA,CAAuE,CAAC,CAAC;AACxF,aAAA;AAAM,iBAAA,IAAI,aAAa,CAAC,YAAY,IAAI,SAAS,EAAE;gBAClD,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AAC7E,aAAA;AACF,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,kBAAsC,EAAA;AACrD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC9C;;+GA7DU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,0OALjB,CAAC,0BAA0B,CAAC,EAkBzB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,wBAAwB,qEAnB5B,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAM1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;oBACrC,SAAS,EAAE,CAAC,0BAA0B,CAAC;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,gBAAgB;AACxB,qBAAA;AACF,iBAAA,CAAA;8GAGC,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAGN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAGN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAGI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAMP,kBAAkB,EAAA,CAAA;sBADjB,YAAY;uBAAC,wBAAwB,CAAA;;;AC7BxC,SAAS,YAAY,CAAC,GAAW,EAAA;AAC/B,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,CAAC;MAOY,WAAW,CAAA;IAOtB,WACmB,CAAA,SAAiB,EAC1B,0BAAsD,EAAA;QAAtD,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA4B;AAE9D,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS,IAAI,aAAa,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAEzF,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,0BAA0B;AACrD,aAAA,gBAAgB,EAAE;AAClB,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,IAAI,KAAK,KAAK,sBAAsB,EAAE;AACpC,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACxB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,UAAU,EAAE,KAAK;AAClB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;AACD,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC;KACzD;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC;KACpD;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;KAChD;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACtF,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAEtF,gBAAgB;AACb,aAAA,aAAa,CAAC;YACb,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,8BAA8B,EAAE,CAAC,WAAW,KAC1C,IAAI,CAAC,0BAA0B,CAAC,8BAA8B,CAAC,WAAW,CAAC;SAC9E,CAAC;AACD,aAAA,IAAI,CAAC,CAAC,YAAY,KAAI;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AAEjC,YAAA,YAAY,CAAC,WAAW;AACrB,iBAAA,oBAAoB,EAAE;AACtB,iBAAA,eAAe,CACd,0BAA0B,EAC1B,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAI;gBACnE,IAAI,OAAO,KAAK,QAAQ,EAAE;AACxB,oBAAA,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CACtD,kBAA+C,EAC/C,gBAAgB,EAChB,aAAa,EACb,YAAY,CACb,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CACvD,kBAA+C,EAC/C,aAAa,EACb,YAAY,CACb,CAAC;AACH,iBAAA;AACH,aAAC,CACF,CAAC;YAEJ,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,kBAAsC,KAChF,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CACrE,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;;AAxFU,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,kBAQT,IAAI,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AARN,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,oDAHZ,CAAwE,sEAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAGvE,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,YACd,CAAwE,sEAAA,CAAA,EAAA,CAAA;;0BAW/E,SAAS;2BAAC,IAAI,CAAA;;;ACzBZ,MAAM,gBAAgB,GAAG,CAC9B,OAAsB,EACtB,OAAO,GAAG,mBAAmB,EAC7B,OAAO,GAAG,IAAI,KACG;AACjB,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAE7B,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;AACxB,IAAA,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC1B,KAAA;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AAC3C,QAAA,MAAM,IAAI,GAAG,CAAC,QAAoB,KAAI;AACpC,YAAA,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE;gBACpC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChB,OAAO;AACR,aAAA;YAED,IAAI,CAAC,KAAK,EAAE;gBACV,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAChB,EAAE,EAAE,CAAC,CAAC;AACR,aAAA;AAAM,iBAAA;AACL,gBAAA,QAAQ,EAAE,CAAC;AACZ,aAAA;AACH,SAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,CAAC;AAChB,KAAC,CAAC,CAAC;AACL,CAAC;;ACTK,MAAO,sBAAuB,SAAQ,aAAa,CAAA;IACvD,WACE,CAAA,UAAsB,EACtB,gBAAkC,EAClC,yBAAoD,EACpD,yBAA2D,EACnD,0BAAsD,EAAA;QAE9D,KAAK,CAAC,UAAU,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;QAFlF,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA4B;QAI9D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;AAEvD,QAAA,gBAAgB,CACd,MAAM,IAAI,CAAC,GAAG,IAAI,IAAI,EACtB,4CAA4C,EAC5C,KAAK,CACN,CAAC,IAAI,CAAC,MAAK;YACV,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACjD,QAAA,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC;YAC7E,OAAO,CAAC,KAAK,CACX,CAAA;AACkD,yDAAA,CAAA,CACnD,CAAC;AACH,SAAA;AACD,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACzC,QAAA,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;YACrE,OAAO,CAAC,KAAK,CACX,CAAA;AACkD,yDAAA,CAAA,CACnD,CAAC;AACH,SAAA;AACD,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;;oHAvCU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,oDAJtB,CAAC,yBAAyB,EAAE,gCAAgC,CAAC,sEAD9D,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAKD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,CAAE,CAAA;AACZ,oBAAA,SAAS,EAAE,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;;oBAExE,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA,CAAA;;;MCRY,4BAA4B,CAAA;;0HAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,iBALxB,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,sBAAsB,CACrF,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAG/E,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAJ7B,YAAY,CAAA,EAAA,CAAA,CAAA;4FAIX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,sBAAsB,CAAC;oBAChG,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,sBAAsB,CAAC;AAC3F,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACZD;;AAEG;;ACFH;;AAEG;;;;"}