@adaptabletools/adaptable 20.0.0-canary.21 → 20.0.0-canary.22

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "20.0.0-canary.21",
3
+ "version": "20.0.0-canary.22",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -94,7 +94,7 @@ const DefaultAdaptableOptions = {
94
94
  exportDataFormat: 'rawValue',
95
95
  exportDateFormat: undefined,
96
96
  customDestinations: undefined,
97
- externalReports: undefined,
97
+ processExport: undefined,
98
98
  appendFileTimestamp: false,
99
99
  systemReportNames: SYSTEM_REPORT_NAMES,
100
100
  systemReportFormats: SYSTEM_REPORT_FORMATS,
@@ -25,10 +25,6 @@ export interface ExportOptions<TData = any> {
25
25
  * User-provided Report Destinations (in addition to those shipped in AdapTable)
26
26
  */
27
27
  customDestinations?: CustomDestination[];
28
- /**
29
- * Reports generated entirely by users (and not evaluated AdapTable)
30
- */
31
- externalReports?: ExternalReport[];
32
28
  /**
33
29
  * System Reports to use; leave blank for all, empty array for none
34
30
  *
@@ -67,10 +63,6 @@ export interface ExportOptions<TData = any> {
67
63
  * @defaultValue true
68
64
  */
69
65
  isColumnExportable?: (context: AdaptableColumnContext) => boolean;
70
- /**
71
- * Function invoked before a Report is run, enabling users to preload the data before it is exported
72
- */
73
- preProcessExport?: (preProcessExportContext: PreProcessExportContext) => boolean | Promise<ReportData | boolean>;
74
66
  /**
75
67
  * Separator for CSV exports
76
68
  *
@@ -87,6 +79,15 @@ export interface ExportOptions<TData = any> {
87
79
  * Function to provide the Detail Rows when exporting in Master-Detail grids. This function will be invoked for each master row node.
88
80
  */
89
81
  getDetailRows?: (context: GetDetailRowsContext<TData>) => CsvDetailRow[] | ExcelDetailRow[] | undefined;
82
+ /**
83
+ * Provides custom handling of the Export process before the default export is executed.
84
+ *
85
+ * @returns A Promise resolving to one of:
86
+ * - `true` - Continue with the default export process
87
+ * - `false` - Cancel the export process
88
+ * - `ExportResultData` - Custom export data (useful for server-side data)
89
+ */
90
+ processExport?: (processExportContext: ProcessExportContext) => Promise<ExportResultData | boolean>;
90
91
  }
91
92
  /**
92
93
  * Detail Row Data in a CSV format; technically an array of AG Grid {@link https://www.ag-grid.com/javascript-data-grid/csv-export/#csvcell | CsvCell}s
@@ -129,43 +130,10 @@ export interface GetDetailRowsContext<TData = any> extends BaseExportContext {
129
130
  */
130
131
  createCellExcel: (cellContent: any, cellType: ExcelDataType) => ExcelCell;
131
132
  }
132
- /**
133
- * Context provided to `ExportOptions.processExport()` callback used when pre-processing Export
134
- */
135
- export interface PreProcessExportContext extends BaseContext {
136
- /**
137
- * Report being exported
138
- */
139
- report: Report;
140
- /**
141
- * Returns Columns to export based on Report's `ReportColumnScope`
142
- * @param includePrimaryKey - whether to include the primary key column (defaults to `false`)
143
- */
144
- getReportColumns: (includePrimaryKey?: boolean) => AdaptableColumn[];
145
- /**
146
- * Returns row data which would typically be exported based on the Report's `ReportRowScope`
147
- * @param reportColumns - the columns to include in the report
148
- * @param includePrimaryKey - whether to include the primary key column (defaults to `false`)
149
- */
150
- getReportRowData: (reportColumns: AdaptableColumn[], includePrimaryKey?: boolean) => Record<string, any>[];
151
- }
152
133
  /**
153
134
  * Format of exported Data - 'rawValue' or 'formattedValue'
154
135
  */
155
136
  export type DataFormatType = 'rawValue' | 'formattedValue';
156
- /**
157
- * Defines a Report where all the data is provided entirely by the user
158
- */
159
- export interface ExternalReport {
160
- /**
161
- * Name of the Report
162
- */
163
- name: string;
164
- /**
165
- * Function invoked to return the data (in the form of a `ExportResultData` object)
166
- */
167
- onExport: (context: ExternalReportContext) => Promise<ExportResultData>;
168
- }
169
137
  /**
170
138
  * Defines a custom Export destination
171
139
  */
@@ -226,7 +194,6 @@ export type SystemExportDestination =
226
194
  */
227
195
  | 'Clipboard';
228
196
  export type ExportDestinationType = TypeHint<string, SystemExportDestination>;
229
- export type ExportDestination = SystemExportDestination | CustomDestination;
230
197
  /**
231
198
  * Context information available in all Export-related functions
232
199
  */
@@ -235,6 +202,10 @@ export interface BaseExportContext extends BaseContext {
235
202
  * Name of the Report being run
236
203
  */
237
204
  reportName: ReportNameType;
205
+ /**
206
+ * The Report Configuration being run
207
+ */
208
+ report: Report;
238
209
  /**
239
210
  * Format of the Report being run
240
211
  */
@@ -248,18 +219,23 @@ export interface BaseExportContext extends BaseContext {
248
219
  * Report Context sent when using Custom Export Destinations
249
220
  */
250
221
  export interface ReportContext extends BaseExportContext {
251
- /**
252
- * Definition of Report being Run
253
- */
254
- report: Report;
255
222
  /**
256
223
  * Export Data for the Report
257
224
  */
258
225
  reportData: ExportResultData;
259
226
  }
260
- export interface ExternalReportContext extends BaseExportContext {
261
- getGridReportColumns: () => ReportColumn[];
227
+ export interface ProcessExportContext extends BaseExportContext {
228
+ /**
229
+ * Returns Columns to export based on Report's `ReportColumnScope`
230
+ */
231
+ getReportColumns: () => ReportColumn[];
232
+ /**
233
+ * Converts the Report Data to Excel format
234
+ */
262
235
  convertToExcel: (reportData: ReportData) => Blob;
236
+ /**
237
+ * Converts the Report Data to CSV format
238
+ */
263
239
  convertToCsv: (reportData: ReportData) => string;
264
240
  }
265
241
  /**
@@ -1,6 +1,6 @@
1
1
  import { AdaptableForm } from '../PredefinedConfig/Common/AdaptableForm';
2
2
  import { ExportState, Report, ReportFormatType, ReportNameType, SystemReportFormat, SystemReportName } from '../PredefinedConfig/ExportState';
3
- import { CustomDestination, ExportDestinationType, ExportFormContext, ExportResultData, ExternalReport, SystemExportDestination } from '../AdaptableOptions/ExportOptions';
3
+ import { CustomDestination, ExportDestinationType, ExportFormContext, ExportResultData, SystemExportDestination } from '../AdaptableOptions/ExportOptions';
4
4
  import { AdaptableColumn } from '../types';
5
5
  /**
6
6
  * Provides run-time access to the Export Module and Report state
@@ -44,7 +44,7 @@ export interface ExportApi {
44
44
  */
45
45
  getReportById(id: Report['Uuid']): Report;
46
46
  /**
47
- * Retrieves all available Reports - System, External and User-created Reports
47
+ * Retrieves all available Reports - System and User-created Reports
48
48
  * @returns reports
49
49
  */
50
50
  getAllReports(): Report[];
@@ -52,10 +52,6 @@ export interface ExportApi {
52
52
  * Retrieves all Custom Reports that have been created by the User
53
53
  */
54
54
  getCustomReports(): Report[];
55
- /**
56
- * Returns all External Reports that have been provided to Export Options
57
- */
58
- getExternalReports(): ExternalReport[];
59
55
  /**
60
56
  * Retrieves all Report Formats that are available
61
57
  */
@@ -134,11 +130,6 @@ export interface ExportApi {
134
130
  * @param destination Custom Destination for which to get Form Def
135
131
  */
136
132
  getExportDestinationForm(destinationName: ExportDestinationType): AdaptableForm<ExportFormContext> | undefined;
137
- /**
138
- * Is given Report user-generated
139
- * @param report Report to Check
140
- */
141
- isExternalReport(report: Report): boolean;
142
133
  /**
143
134
  * Returns whether the given column is exportable
144
135
  */
@@ -149,7 +140,7 @@ export interface ExportApi {
149
140
  * @param format - format of the report
150
141
  * @param destination - destination to export to
151
142
  */
152
- exportReport(reportName: ReportNameType, format: ReportFormatType, destination?: ExportDestinationType): void;
143
+ exportReport(reportName: ReportNameType, format: ReportFormatType, destination?: ExportDestinationType): Promise<void>;
153
144
  /**
154
145
  * Gets the data for the Report with the given Name in the given Format
155
146
  * @param reportName - name of the report
@@ -2,7 +2,7 @@ import { ExportApi } from '../ExportApi';
2
2
  import { ExportState, Report, ReportFormatType, ReportNameType, SystemReportFormat, SystemReportName } from '../../PredefinedConfig/ExportState';
3
3
  import { ApiBase } from './ApiBase';
4
4
  import { AdaptableForm } from '../../PredefinedConfig/Common/AdaptableForm';
5
- import { CustomDestination, ExportDestinationType, ExportFormContext, ExportResultData, ExternalReport, SystemExportDestination } from '../../AdaptableOptions/ExportOptions';
5
+ import { CustomDestination, ExportDestinationType, ExportFormContext, ExportResultData, SystemExportDestination } from '../../AdaptableOptions/ExportOptions';
6
6
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
7
7
  import { ExportInternalApi } from '../Internal/ExportInternalApi';
8
8
  import { AdaptableColumn } from '../../types';
@@ -34,10 +34,9 @@ export declare class ExportApiImpl extends ApiBase implements ExportApi {
34
34
  updateReport(report: Report): Report;
35
35
  updateReports(reports: Report[]): Report[];
36
36
  getCustomReports(): Report[];
37
- getExternalReports(): ExternalReport[];
38
- isExternalReport(report: Report): boolean;
39
37
  isColumnExportable(adaptableColumn: AdaptableColumn): boolean;
40
38
  getSupportedExportDestinations(reportFormat: ReportFormatType): ExportDestinationType[];
41
- exportReport(reportName: ReportNameType, format: ReportFormatType, destination?: ExportDestinationType): void;
39
+ exportReport(reportName: ReportNameType, format: ReportFormatType, destination?: ExportDestinationType): Promise<void>;
42
40
  getReportData(reportName: ReportNameType, format: ReportFormatType): Promise<ExportResultData>;
41
+ private processExport;
43
42
  }
@@ -1,8 +1,6 @@
1
1
  import * as ExportRedux from '../../Redux/ActionsReducers/ExportRedux';
2
2
  import { ApiBase } from './ApiBase';
3
3
  import * as ModuleConstants from '../../Utilities/Constants/ModuleConstants';
4
- import ObjectFactory from '../../Utilities/ObjectFactory';
5
- import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
6
4
  import { ExportInternalApi } from '../Internal/ExportInternalApi';
7
5
  import { EMPTY_STRING } from '../../Utilities/Constants/GeneralConstants';
8
6
  export class ExportApiImpl extends ApiBase {
@@ -29,10 +27,6 @@ export class ExportApiImpl extends ApiBase {
29
27
  if (customReport) {
30
28
  return customReport;
31
29
  }
32
- const externalReport = this.getExternalReports()?.find((r) => r.name == reportName);
33
- if (externalReport) {
34
- return ObjectFactory.CreateExternalReport(externalReport.name);
35
- }
36
30
  }
37
31
  getReportById(id) {
38
32
  return this.getAllReports()?.find((report) => report.Uuid === id);
@@ -74,12 +68,6 @@ export class ExportApiImpl extends ApiBase {
74
68
  const reports = this.getAvailableSystemReports()
75
69
  .map((s) => this.getReportByName(s))
76
70
  .concat(this.getExportState().Reports);
77
- const externalReports = this.getExternalReports();
78
- if (ArrayExtensions.IsNotNullOrEmpty(externalReports)) {
79
- reports.push(...externalReports.map((c) => {
80
- return ObjectFactory.CreateExternalReport(c.name);
81
- }));
82
- }
83
71
  return reports;
84
72
  }
85
73
  selectReport(reportName) {
@@ -126,12 +114,6 @@ export class ExportApiImpl extends ApiBase {
126
114
  getCustomReports() {
127
115
  return this.getExportState().Reports ?? [];
128
116
  }
129
- getExternalReports() {
130
- return this.getExportOptions().externalReports ?? [];
131
- }
132
- isExternalReport(report) {
133
- return this.getExternalReports()?.find((cr) => cr.name == report.Name) != null;
134
- }
135
117
  isColumnExportable(adaptableColumn) {
136
118
  const isExportableFn = this.getExportOptions().isColumnExportable;
137
119
  if (typeof isExportableFn === 'function') {
@@ -157,51 +139,73 @@ export class ExportApiImpl extends ApiBase {
157
139
  return true;
158
140
  });
159
141
  }
160
- exportReport(reportName, format, destination = 'Download') {
142
+ async exportReport(reportName, format, destination = 'Download') {
161
143
  let report = this.getReportByName(reportName);
162
- if (this.checkItemExists(report, reportName, 'Report')) {
163
- if (this.isExternalReport(report)) {
164
- // Handle external report
165
- this.internalApi
166
- .getExternalReportData(reportName, format, destination)
167
- .then((reportData) => {
168
- if (reportData) {
169
- this.internalApi.sendReportToDestination(reportData, report, format, destination);
170
- }
171
- })
172
- .catch((error) => {
173
- this.logWarn(`Failed to get external report data for '${reportName}': ${error}`);
174
- });
175
- return;
176
- }
177
- this._adaptable.agGridExportAdapter
178
- .exportData({
144
+ if (!this.checkItemExists(report, reportName, 'Report')) {
145
+ return;
146
+ }
147
+ this.logInfo(`Start Export of ${reportName} in format ${format} to ${destination}`);
148
+ const processExportResult = await this.processExport(report, format, destination);
149
+ // if FALSE, cancel export
150
+ if (!processExportResult) {
151
+ this.logInfo(`Cancel Export of ${reportName}`);
152
+ return;
153
+ }
154
+ // if TRUE, continue with standard export
155
+ if (processExportResult === true) {
156
+ const exportedReport = await this._adaptable.agGridExportAdapter.exportData({
179
157
  report,
180
158
  format,
181
159
  destination,
182
160
  showProgressIndicator: true,
183
- })
184
- .then((reportResult) => {
185
- if (destination === 'Download' &&
186
- (format === 'Excel' || format === 'VisualExcel' || format === 'Csv')) {
187
- return;
188
- }
189
- this.internalApi.sendReportToDestination(reportResult, report, format, destination);
190
161
  });
162
+ if (destination === 'Download' &&
163
+ (format === 'Excel' || format === 'VisualExcel' || format === 'Csv')) {
164
+ return;
165
+ }
166
+ this.internalApi.sendReportToDestination(exportedReport, report, format, destination);
191
167
  }
168
+ else {
169
+ // in this case the user has returned a custom ExportResultData object
170
+ const userProcessedExportResult = processExportResult;
171
+ if (!userProcessedExportResult) {
172
+ this.logWarn(`Processing of Export ${reportName} to ${destination} returned null or undefined`);
173
+ return;
174
+ }
175
+ this.internalApi.sendReportToDestination(userProcessedExportResult, report, format, destination);
176
+ }
177
+ this.logInfo(`Finished Export of ${reportName} in format ${format} to ${destination}`);
192
178
  }
193
179
  async getReportData(reportName, format) {
194
180
  let report = this.getReportByName(reportName);
195
- if (this.checkItemExists(report, reportName, 'Report')) {
196
- this.logInfo(`Start getting Report Data for ${reportName} in format ${format}`);
197
- const reportData = await this._adaptable.agGridExportAdapter.exportData({
181
+ if (!this.checkItemExists(report, reportName, 'Report')) {
182
+ return;
183
+ }
184
+ this.logInfo(`Start getting Report Data for ${reportName} in format ${format}`);
185
+ const processExportResult = await this.processExport(report, format, 'Clipboard');
186
+ let reportData;
187
+ // handle Export processing
188
+ if (typeof processExportResult?.type === 'string') {
189
+ reportData = processExportResult;
190
+ }
191
+ else {
192
+ reportData = await this._adaptable.agGridExportAdapter.exportData({
198
193
  report,
199
194
  format,
200
195
  destination: 'Clipboard',
201
196
  showProgressIndicator: false,
202
197
  });
203
- this.logInfo(`Finished getting Report Data for ${reportName} in format ${format}`);
204
- return reportData;
205
198
  }
199
+ this.logInfo(`Finished getting Report Data for ${reportName} in format ${format}`);
200
+ return reportData;
201
+ }
202
+ async processExport(report, format, destination) {
203
+ const processExportFn = this.getExportOptions().processExport;
204
+ if (!processExportFn) {
205
+ return true;
206
+ }
207
+ this.logInfo(`Process Export of ${report.Name} in format ${format} to ${destination}`);
208
+ const processExportContext = this.internalApi.buildProcessExportContext(report, format, destination);
209
+ return processExportFn(processExportContext);
206
210
  }
207
211
  }
@@ -3,7 +3,7 @@ import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChang
3
3
  import { Report, ReportData, ReportFormatType, ReportNameType, SystemReportName } from '../../PredefinedConfig/ExportState';
4
4
  import { CsvCell, ExcelCell, ExcelDataType, IRowNode } from 'ag-grid-enterprise';
5
5
  import { AdaptableColumn, AdaptableColumnDataType } from '../../PredefinedConfig/Common/AdaptableColumn';
6
- import { BaseExportContext, DataFormatType, ExportDestinationType, ExportResultData } from '../../AdaptableOptions/ExportOptions';
6
+ import { BaseExportContext, DataFormatType, ExportDestinationType, ExportResultData, ProcessExportContext } from '../../AdaptableOptions/ExportOptions';
7
7
  export declare class ExportInternalApi extends ApiBase {
8
8
  /**
9
9
  * Value Items for Report Name Selection
@@ -34,8 +34,7 @@ export declare class ExportInternalApi extends ApiBase {
34
34
  createCellCsv(cellContent: any): CsvCell;
35
35
  createCellExcel(cellContent: any, cellType: ExcelDataType): ExcelCell;
36
36
  createCellHeader(cellContent: any): ExcelCell;
37
- getExternalReportData(externalReportName: ReportNameType, reportFormat: ReportFormatType, exportDestination: ExportDestinationType): Promise<ExportResultData | undefined>;
38
- private buildGridReportColumns;
37
+ buildProcessExportContext(report: Report, format: ReportFormatType, destination: ExportDestinationType): ProcessExportContext;
39
38
  private buildExcelConverter;
40
39
  private buildCsvConverter;
41
40
  private executeGridExport;
@@ -21,10 +21,6 @@ export class ExportInternalApi extends ApiBase {
21
21
  if (report.Name == 'All Data') {
22
22
  return true;
23
23
  }
24
- // if its a Custom Report then the User has to run it so we just ignore completely
25
- if (this.getExportApi().isExternalReport(report)) {
26
- return false;
27
- }
28
24
  // Start with the DataChanged Column and go through all possibilities
29
25
  switch (report.ReportColumnScope) {
30
26
  case 'AllColumns':
@@ -168,9 +164,6 @@ export class ExportInternalApi extends ApiBase {
168
164
  return true;
169
165
  }
170
166
  getReportColumnScopeShortDescription(report) {
171
- if (this.getAdaptableApi().exportApi.isExternalReport(report)) {
172
- return ['[Custom Columns]'];
173
- }
174
167
  switch (report.ReportColumnScope) {
175
168
  case 'AllColumns':
176
169
  return ['[All Columns]'];
@@ -186,9 +179,6 @@ export class ExportInternalApi extends ApiBase {
186
179
  }
187
180
  }
188
181
  getReportColumnScopeLongDescription(report) {
189
- if (this.getAdaptableApi().exportApi.isExternalReport(report)) {
190
- return '[Custom Columns]';
191
- }
192
182
  switch (report.ReportColumnScope) {
193
183
  case 'AllColumns':
194
184
  return '[All Columns]';
@@ -201,9 +191,6 @@ export class ExportInternalApi extends ApiBase {
201
191
  }
202
192
  }
203
193
  getReportExpressionDescription(report, cols) {
204
- if (this.getAdaptableApi().exportApi.isExternalReport(report)) {
205
- return '[Custom Data]';
206
- }
207
194
  if (this.isSystemReport(report.Name)) {
208
195
  return `[${report.Name}]`;
209
196
  }
@@ -352,8 +339,10 @@ export class ExportInternalApi extends ApiBase {
352
339
  }
353
340
  }
354
341
  buildBaseExportContext(reportName, reportFormat, exportDestination) {
342
+ const report = this.getExportApi().getReportByName(reportName);
355
343
  return {
356
344
  ...this.getAdaptableInternalApi().buildBaseContext(),
345
+ report,
357
346
  reportName,
358
347
  reportFormat,
359
348
  exportDestination,
@@ -382,23 +371,21 @@ export class ExportInternalApi extends ApiBase {
382
371
  },
383
372
  };
384
373
  }
385
- getExternalReportData(externalReportName, reportFormat, exportDestination) {
386
- const externalReport = this.getExportApi()
387
- .getExternalReports()
388
- ?.find((cr) => cr.name == externalReportName);
389
- if (!externalReport) {
390
- this.logWarn(`External Report '${externalReportName}' not found!`);
391
- return undefined;
392
- }
393
- return externalReport.onExport({
394
- ...this.buildBaseExportContext(externalReportName, reportFormat, exportDestination),
395
- convertToExcel: this.buildExcelConverter(externalReportName, reportFormat, exportDestination),
396
- convertToCsv: this.buildCsvConverter(externalReportName, reportFormat, exportDestination),
397
- getGridReportColumns: this.buildGridReportColumns(),
374
+ buildProcessExportContext(report, format, destination) {
375
+ const { exportContext } = this._adaptable.agGridExportAdapter.buildExportProcessData({
376
+ report,
377
+ format,
378
+ destination,
379
+ showProgressIndicator: false,
398
380
  });
399
- }
400
- buildGridReportColumns() {
401
- return () => this.getAdaptableApi().columnApi.getColumns();
381
+ return {
382
+ ...this.buildBaseExportContext(report.Name, format, destination),
383
+ convertToExcel: this.buildExcelConverter(report.Name, format, destination),
384
+ convertToCsv: this.buildCsvConverter(report.Name, format, destination),
385
+ getReportColumns: () => exportContext.exportedColumnIds
386
+ .map((colId) => this.getAdaptableApi().columnApi.getColumnWithColumnId(colId, false))
387
+ .filter(Boolean),
388
+ };
402
389
  }
403
390
  buildExcelConverter(externalReportName, reportFormat, exportDestination) {
404
391
  return (reportData) => {
@@ -419,9 +406,14 @@ export class ExportInternalApi extends ApiBase {
419
406
  colId: col.columnId,
420
407
  field: col.field ?? col.columnId,
421
408
  headerName: col.friendlyName ?? col.columnId,
422
- type: col.dataType ?? 'text',
409
+ cellDataType: col.dataType ?? 'text',
423
410
  }));
424
- const gridOptions = { columnDefs, rowData: reportData.rows };
411
+ const gridOptions = {
412
+ columnDefs,
413
+ rowData: reportData.rows,
414
+ theme: this.getAgGridApi().getGridOption('theme'),
415
+ dataTypeDefinitions: this.getAgGridApi().getGridOption('dataTypeDefinitions'),
416
+ };
425
417
  const gridParams = {
426
418
  modules: this.getAdaptableApi()
427
419
  .internalApi.getAdaptableInstance()
@@ -22,6 +22,7 @@ export declare const HALF_SECOND: number;
22
22
  export declare const QUARTER_SECOND: number;
23
23
  export declare const GROUP_PATH_SEPARATOR: string;
24
24
  export declare const AG_GRID_GROUPED_COLUMN: string;
25
+ export declare const AG_GRID_SELECTION_COLUMN: string;
25
26
  export declare const AG_GRID_PIVOT_COLUMN: string;
26
27
  export declare const AG_GRID_CHART_WINDOW = "AG Grid Window";
27
28
  export declare const ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = "(FDC3ActionColumn)";
@@ -21,6 +21,7 @@ export const HALF_SECOND = 500;
21
21
  export const QUARTER_SECOND = 250;
22
22
  export const GROUP_PATH_SEPARATOR = '/';
23
23
  export const AG_GRID_GROUPED_COLUMN = 'ag-Grid-AutoColumn';
24
+ export const AG_GRID_SELECTION_COLUMN = 'ag-Grid-SelectionColumn';
24
25
  export const AG_GRID_PIVOT_COLUMN = 'pivot_';
25
26
  export const AG_GRID_CHART_WINDOW = 'AG Grid Window';
26
27
  export const ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = '(FDC3ActionColumn)';
@@ -35,7 +35,7 @@ export const ExportViewPanel = (props) => {
35
35
  React.createElement(ButtonEdit, { onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
36
36
  action: 'Edit',
37
37
  source: 'Toolbar',
38
- })), tooltip: "Edit Report", className: `ab-${elementType}__Export__edit`, disabled: currentReport == null || exportApi.isExternalReport(currentReport), accessLevel: accessLevel }),
38
+ })), tooltip: "Edit Report", className: `ab-${elementType}__Export__edit`, disabled: currentReport == null, accessLevel: accessLevel }),
39
39
  React.createElement(ButtonNew, { variant: "text", className: `ab-${elementType}__Export__new`, tone: "neutral", children: null, onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
40
40
  action: 'New',
41
41
  source: 'Toolbar',
@@ -6,7 +6,7 @@ import tinycolor from 'tinycolor2';
6
6
  import StringExtensions from '../Utilities/Extensions/StringExtensions';
7
7
  import { createUuid } from '../PredefinedConfig/Uuid';
8
8
  import { inferSchema, initParser } from 'udsv';
9
- import { AG_GRID_GROUPED_COLUMN } from '../Utilities/Constants/GeneralConstants';
9
+ import { AG_GRID_GROUPED_COLUMN, AG_GRID_SELECTION_COLUMN, } from '../Utilities/Constants/GeneralConstants';
10
10
  export class AgGridExportAdapter {
11
11
  constructor(_adaptableInstance) {
12
12
  this._adaptableInstance = _adaptableInstance;
@@ -452,7 +452,9 @@ export class AgGridExportAdapter {
452
452
  formatColumnsWithDisplayFormatMemo[columnId] = formatColumns;
453
453
  return formatColumns;
454
454
  };
455
- const agGridDisplayedColumns = this.agGridApi.getAllDisplayedColumns();
455
+ const agGridDisplayedColumns = this.agGridApi
456
+ .getAllDisplayedColumns()
457
+ .filter((agCol) => agCol.getId() !== AG_GRID_SELECTION_COLUMN);
456
458
  const colDefs = agGridDisplayedColumns.map((column) => {
457
459
  return column.getColDef();
458
460
  });
package/src/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
3
- PUBLISH_TIMESTAMP: 1742312352715 || Date.now(),
4
- VERSION: "20.0.0-canary.21" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1742409282792 || Date.now(),
4
+ VERSION: "20.0.0-canary.22" || '--current-version--',
5
5
  };
@@ -3206,16 +3206,6 @@ export declare const ADAPTABLE_METAMODEL: {
3206
3206
  isOpt: boolean;
3207
3207
  }[];
3208
3208
  };
3209
- ExternalReport: {
3210
- name: string;
3211
- kind: string;
3212
- desc: string;
3213
- props: {
3214
- name: string;
3215
- kind: string;
3216
- desc: string;
3217
- }[];
3218
- };
3219
3209
  FDC3ActionColumn: {
3220
3210
  name: string;
3221
3211
  kind: string;
@@ -4473,22 +4463,6 @@ export declare const ADAPTABLE_METAMODEL: {
4473
4463
  kind: string;
4474
4464
  desc: string;
4475
4465
  };
4476
- PreProcessExportContext: {
4477
- name: string;
4478
- kind: string;
4479
- desc: string;
4480
- props: ({
4481
- name: string;
4482
- kind: string;
4483
- desc: string;
4484
- ref?: undefined;
4485
- } | {
4486
- name: string;
4487
- kind: string;
4488
- desc: string;
4489
- ref: string;
4490
- })[];
4491
- };
4492
4466
  PreprocessRowDataContext: {
4493
4467
  name: string;
4494
4468
  kind: string;