@adaptabletools/adaptable-cjs 20.0.0-canary.20 → 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 +1 -1
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +1 -1
- package/src/AdaptableOptions/ExportOptions.d.ts +24 -48
- package/src/Api/ExportApi.d.ts +3 -12
- package/src/Api/Implementation/ExportApiImpl.d.ts +3 -4
- package/src/Api/Implementation/ExportApiImpl.js +52 -48
- package/src/Api/Internal/ExportInternalApi.d.ts +2 -3
- package/src/Api/Internal/ExportInternalApi.js +23 -31
- package/src/Api/LayoutApi.d.ts +1 -1
- package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
- package/src/Utilities/Constants/GeneralConstants.js +3 -2
- package/src/View/Export/ExportViewPanel.js +1 -1
- package/src/agGrid/AgGridExportAdapter.js +3 -1
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +0 -26
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +1 -1
- package/tsconfig.cjs.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable-cjs",
|
|
3
|
-
"version": "20.0.0-canary.
|
|
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",
|
|
@@ -98,7 +98,7 @@ const DefaultAdaptableOptions = {
|
|
|
98
98
|
exportDataFormat: 'rawValue',
|
|
99
99
|
exportDateFormat: undefined,
|
|
100
100
|
customDestinations: undefined,
|
|
101
|
-
|
|
101
|
+
processExport: undefined,
|
|
102
102
|
appendFileTimestamp: false,
|
|
103
103
|
systemReportNames: GeneralConstants_1.SYSTEM_REPORT_NAMES,
|
|
104
104
|
systemReportFormats: GeneralConstants_1.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
|
|
261
|
-
|
|
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
|
/**
|
package/src/Api/ExportApi.d.ts
CHANGED
|
@@ -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,
|
|
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
|
|
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,
|
|
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
|
}
|
|
@@ -5,8 +5,6 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const ExportRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/ExportRedux"));
|
|
6
6
|
const ApiBase_1 = require("./ApiBase");
|
|
7
7
|
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
8
|
-
const ObjectFactory_1 = tslib_1.__importDefault(require("../../Utilities/ObjectFactory"));
|
|
9
|
-
const ArrayExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/ArrayExtensions"));
|
|
10
8
|
const ExportInternalApi_1 = require("../Internal/ExportInternalApi");
|
|
11
9
|
const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
|
|
12
10
|
class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
@@ -33,10 +31,6 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
33
31
|
if (customReport) {
|
|
34
32
|
return customReport;
|
|
35
33
|
}
|
|
36
|
-
const externalReport = this.getExternalReports()?.find((r) => r.name == reportName);
|
|
37
|
-
if (externalReport) {
|
|
38
|
-
return ObjectFactory_1.default.CreateExternalReport(externalReport.name);
|
|
39
|
-
}
|
|
40
34
|
}
|
|
41
35
|
getReportById(id) {
|
|
42
36
|
return this.getAllReports()?.find((report) => report.Uuid === id);
|
|
@@ -78,12 +72,6 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
78
72
|
const reports = this.getAvailableSystemReports()
|
|
79
73
|
.map((s) => this.getReportByName(s))
|
|
80
74
|
.concat(this.getExportState().Reports);
|
|
81
|
-
const externalReports = this.getExternalReports();
|
|
82
|
-
if (ArrayExtensions_1.default.IsNotNullOrEmpty(externalReports)) {
|
|
83
|
-
reports.push(...externalReports.map((c) => {
|
|
84
|
-
return ObjectFactory_1.default.CreateExternalReport(c.name);
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
75
|
return reports;
|
|
88
76
|
}
|
|
89
77
|
selectReport(reportName) {
|
|
@@ -130,12 +118,6 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
130
118
|
getCustomReports() {
|
|
131
119
|
return this.getExportState().Reports ?? [];
|
|
132
120
|
}
|
|
133
|
-
getExternalReports() {
|
|
134
|
-
return this.getExportOptions().externalReports ?? [];
|
|
135
|
-
}
|
|
136
|
-
isExternalReport(report) {
|
|
137
|
-
return this.getExternalReports()?.find((cr) => cr.name == report.Name) != null;
|
|
138
|
-
}
|
|
139
121
|
isColumnExportable(adaptableColumn) {
|
|
140
122
|
const isExportableFn = this.getExportOptions().isColumnExportable;
|
|
141
123
|
if (typeof isExportableFn === 'function') {
|
|
@@ -161,52 +143,74 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
|
|
|
161
143
|
return true;
|
|
162
144
|
});
|
|
163
145
|
}
|
|
164
|
-
exportReport(reportName, format, destination = 'Download') {
|
|
146
|
+
async exportReport(reportName, format, destination = 'Download') {
|
|
165
147
|
let report = this.getReportByName(reportName);
|
|
166
|
-
if (this.checkItemExists(report, reportName, 'Report')) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
this._adaptable.agGridExportAdapter
|
|
182
|
-
.exportData({
|
|
148
|
+
if (!this.checkItemExists(report, reportName, 'Report')) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this.logInfo(`Start Export of ${reportName} in format ${format} to ${destination}`);
|
|
152
|
+
const processExportResult = await this.processExport(report, format, destination);
|
|
153
|
+
// if FALSE, cancel export
|
|
154
|
+
if (!processExportResult) {
|
|
155
|
+
this.logInfo(`Cancel Export of ${reportName}`);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
// if TRUE, continue with standard export
|
|
159
|
+
if (processExportResult === true) {
|
|
160
|
+
const exportedReport = await this._adaptable.agGridExportAdapter.exportData({
|
|
183
161
|
report,
|
|
184
162
|
format,
|
|
185
163
|
destination,
|
|
186
164
|
showProgressIndicator: true,
|
|
187
|
-
})
|
|
188
|
-
.then((reportResult) => {
|
|
189
|
-
if (destination === 'Download' &&
|
|
190
|
-
(format === 'Excel' || format === 'VisualExcel' || format === 'Csv')) {
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
this.internalApi.sendReportToDestination(reportResult, report, format, destination);
|
|
194
165
|
});
|
|
166
|
+
if (destination === 'Download' &&
|
|
167
|
+
(format === 'Excel' || format === 'VisualExcel' || format === 'Csv')) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
this.internalApi.sendReportToDestination(exportedReport, report, format, destination);
|
|
195
171
|
}
|
|
172
|
+
else {
|
|
173
|
+
// in this case the user has returned a custom ExportResultData object
|
|
174
|
+
const userProcessedExportResult = processExportResult;
|
|
175
|
+
if (!userProcessedExportResult) {
|
|
176
|
+
this.logWarn(`Processing of Export ${reportName} to ${destination} returned null or undefined`);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
this.internalApi.sendReportToDestination(userProcessedExportResult, report, format, destination);
|
|
180
|
+
}
|
|
181
|
+
this.logInfo(`Finished Export of ${reportName} in format ${format} to ${destination}`);
|
|
196
182
|
}
|
|
197
183
|
async getReportData(reportName, format) {
|
|
198
184
|
let report = this.getReportByName(reportName);
|
|
199
|
-
if (this.checkItemExists(report, reportName, 'Report')) {
|
|
200
|
-
|
|
201
|
-
|
|
185
|
+
if (!this.checkItemExists(report, reportName, 'Report')) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
this.logInfo(`Start getting Report Data for ${reportName} in format ${format}`);
|
|
189
|
+
const processExportResult = await this.processExport(report, format, 'Clipboard');
|
|
190
|
+
let reportData;
|
|
191
|
+
// handle Export processing
|
|
192
|
+
if (typeof processExportResult?.type === 'string') {
|
|
193
|
+
reportData = processExportResult;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
reportData = await this._adaptable.agGridExportAdapter.exportData({
|
|
202
197
|
report,
|
|
203
198
|
format,
|
|
204
199
|
destination: 'Clipboard',
|
|
205
200
|
showProgressIndicator: false,
|
|
206
201
|
});
|
|
207
|
-
this.logInfo(`Finished getting Report Data for ${reportName} in format ${format}`);
|
|
208
|
-
return reportData;
|
|
209
202
|
}
|
|
203
|
+
this.logInfo(`Finished getting Report Data for ${reportName} in format ${format}`);
|
|
204
|
+
return reportData;
|
|
205
|
+
}
|
|
206
|
+
async processExport(report, format, destination) {
|
|
207
|
+
const processExportFn = this.getExportOptions().processExport;
|
|
208
|
+
if (!processExportFn) {
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
this.logInfo(`Process Export of ${report.Name} in format ${format} to ${destination}`);
|
|
212
|
+
const processExportContext = this.internalApi.buildProcessExportContext(report, format, destination);
|
|
213
|
+
return processExportFn(processExportContext);
|
|
210
214
|
}
|
|
211
215
|
}
|
|
212
216
|
exports.ExportApiImpl = ExportApiImpl;
|
|
@@ -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
|
-
|
|
38
|
-
private buildGridReportColumns;
|
|
37
|
+
buildProcessExportContext(report: Report, format: ReportFormatType, destination: ExportDestinationType): ProcessExportContext;
|
|
39
38
|
private buildExcelConverter;
|
|
40
39
|
private buildCsvConverter;
|
|
41
40
|
private executeGridExport;
|
|
@@ -25,10 +25,6 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
|
|
|
25
25
|
if (report.Name == 'All Data') {
|
|
26
26
|
return true;
|
|
27
27
|
}
|
|
28
|
-
// if its a Custom Report then the User has to run it so we just ignore completely
|
|
29
|
-
if (this.getExportApi().isExternalReport(report)) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
28
|
// Start with the DataChanged Column and go through all possibilities
|
|
33
29
|
switch (report.ReportColumnScope) {
|
|
34
30
|
case 'AllColumns':
|
|
@@ -172,9 +168,6 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
|
|
|
172
168
|
return true;
|
|
173
169
|
}
|
|
174
170
|
getReportColumnScopeShortDescription(report) {
|
|
175
|
-
if (this.getAdaptableApi().exportApi.isExternalReport(report)) {
|
|
176
|
-
return ['[Custom Columns]'];
|
|
177
|
-
}
|
|
178
171
|
switch (report.ReportColumnScope) {
|
|
179
172
|
case 'AllColumns':
|
|
180
173
|
return ['[All Columns]'];
|
|
@@ -190,9 +183,6 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
|
|
|
190
183
|
}
|
|
191
184
|
}
|
|
192
185
|
getReportColumnScopeLongDescription(report) {
|
|
193
|
-
if (this.getAdaptableApi().exportApi.isExternalReport(report)) {
|
|
194
|
-
return '[Custom Columns]';
|
|
195
|
-
}
|
|
196
186
|
switch (report.ReportColumnScope) {
|
|
197
187
|
case 'AllColumns':
|
|
198
188
|
return '[All Columns]';
|
|
@@ -205,9 +195,6 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
|
|
|
205
195
|
}
|
|
206
196
|
}
|
|
207
197
|
getReportExpressionDescription(report, cols) {
|
|
208
|
-
if (this.getAdaptableApi().exportApi.isExternalReport(report)) {
|
|
209
|
-
return '[Custom Data]';
|
|
210
|
-
}
|
|
211
198
|
if (this.isSystemReport(report.Name)) {
|
|
212
199
|
return `[${report.Name}]`;
|
|
213
200
|
}
|
|
@@ -356,8 +343,10 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
|
|
|
356
343
|
}
|
|
357
344
|
}
|
|
358
345
|
buildBaseExportContext(reportName, reportFormat, exportDestination) {
|
|
346
|
+
const report = this.getExportApi().getReportByName(reportName);
|
|
359
347
|
return {
|
|
360
348
|
...this.getAdaptableInternalApi().buildBaseContext(),
|
|
349
|
+
report,
|
|
361
350
|
reportName,
|
|
362
351
|
reportFormat,
|
|
363
352
|
exportDestination,
|
|
@@ -386,23 +375,21 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
|
|
|
386
375
|
},
|
|
387
376
|
};
|
|
388
377
|
}
|
|
389
|
-
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
return undefined;
|
|
396
|
-
}
|
|
397
|
-
return externalReport.onExport({
|
|
398
|
-
...this.buildBaseExportContext(externalReportName, reportFormat, exportDestination),
|
|
399
|
-
convertToExcel: this.buildExcelConverter(externalReportName, reportFormat, exportDestination),
|
|
400
|
-
convertToCsv: this.buildCsvConverter(externalReportName, reportFormat, exportDestination),
|
|
401
|
-
getGridReportColumns: this.buildGridReportColumns(),
|
|
378
|
+
buildProcessExportContext(report, format, destination) {
|
|
379
|
+
const { exportContext } = this._adaptable.agGridExportAdapter.buildExportProcessData({
|
|
380
|
+
report,
|
|
381
|
+
format,
|
|
382
|
+
destination,
|
|
383
|
+
showProgressIndicator: false,
|
|
402
384
|
});
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
385
|
+
return {
|
|
386
|
+
...this.buildBaseExportContext(report.Name, format, destination),
|
|
387
|
+
convertToExcel: this.buildExcelConverter(report.Name, format, destination),
|
|
388
|
+
convertToCsv: this.buildCsvConverter(report.Name, format, destination),
|
|
389
|
+
getReportColumns: () => exportContext.exportedColumnIds
|
|
390
|
+
.map((colId) => this.getAdaptableApi().columnApi.getColumnWithColumnId(colId, false))
|
|
391
|
+
.filter(Boolean),
|
|
392
|
+
};
|
|
406
393
|
}
|
|
407
394
|
buildExcelConverter(externalReportName, reportFormat, exportDestination) {
|
|
408
395
|
return (reportData) => {
|
|
@@ -423,9 +410,14 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
|
|
|
423
410
|
colId: col.columnId,
|
|
424
411
|
field: col.field ?? col.columnId,
|
|
425
412
|
headerName: col.friendlyName ?? col.columnId,
|
|
426
|
-
|
|
413
|
+
cellDataType: col.dataType ?? 'text',
|
|
427
414
|
}));
|
|
428
|
-
const gridOptions = {
|
|
415
|
+
const gridOptions = {
|
|
416
|
+
columnDefs,
|
|
417
|
+
rowData: reportData.rows,
|
|
418
|
+
theme: this.getAgGridApi().getGridOption('theme'),
|
|
419
|
+
dataTypeDefinitions: this.getAgGridApi().getGridOption('dataTypeDefinitions'),
|
|
420
|
+
};
|
|
429
421
|
const gridParams = {
|
|
430
422
|
modules: this.getAdaptableApi()
|
|
431
423
|
.internalApi.getAdaptableInstance()
|
package/src/Api/LayoutApi.d.ts
CHANGED
|
@@ -176,7 +176,7 @@ export interface LayoutApi {
|
|
|
176
176
|
*/
|
|
177
177
|
addColumnToTableLayout(columnId: string, layoutName: string): void;
|
|
178
178
|
/**
|
|
179
|
-
* Adds a Column to Current Layout
|
|
179
|
+
* Adds a Column to Current (Table) Layout
|
|
180
180
|
* @param columnId Column to add
|
|
181
181
|
*/
|
|
182
182
|
addColumnToCurrentTableLayout(columnId: string): void;
|
|
@@ -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)";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.OBSERVABLE_EXPRESSION_ROW_REMOVED = exports.OBSERVABLE_EXPRESSION_ROW_ADDED = exports.STANDALONE_MODULE_POPUPS = exports.LAYOUT_DELETE_TOOLTIP = exports.LAYOUT_CLONE_TOOLTIP = exports.LAYOUT_EDIT_TOOLTIP = exports.LAYOUT_SAVE_TOOLTIP = void 0;
|
|
3
|
+
exports.LAYOUT_NEW_PIVOT_TOOLTIP = exports.LAYOUT_NEW_TABLE_TOOLTIP = exports.THEME_STYLE = exports.SYSTEM_EXPORT_DESTINATIONS = exports.CLIPBOARD_EXPORT_DESTINATION = exports.DOWNLOAD_EXPORT_DESTINATION = exports.SELECT_REPORT_FORMAT_STRING = exports.SELECT_REPORT_STRING = exports.SYSTEM_REPORT_FORMATS = exports.JSON_FORMAT_REPORT = exports.CSV_FORMAT_REPORT = exports.VISUAL_EXCEL_FORMAT_REPORT = exports.EXCEL_FORMAT_REPORT = exports.SYSTEM_REPORT_NAMES = exports.SELECTED_DATA_REPORT = exports.CURRENT_LAYOUT_REPORT = exports.ALL_DATA_REPORT = exports.SERVER_VALIDATION_MESSAGE_TYPE = exports.SERVER_VALIDATION_HEADER = exports.DEFAULT_LIVE_REPORT_THROTTLE_TIME = exports.MENU_SEPARATOR = exports.QUICK_SEARCH_DEBOUNCE_TIME = exports.DEFAULT_DOUBLE_DISPLAY_VALUE = exports.DEFAULT_INTEGER_DISPLAY_VALUE = exports.DEFAULT_STRING_DISPLAY_VALUE = exports.DEFAULT_DATE_FORMAT_PATTERN_WITH_TIME = exports.DEFAULT_DATE_FORMAT_PATTERN = exports.ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = exports.AG_GRID_CHART_WINDOW = exports.AG_GRID_PIVOT_COLUMN = exports.AG_GRID_SELECTION_COLUMN = exports.AG_GRID_GROUPED_COLUMN = exports.GROUP_PATH_SEPARATOR = exports.QUARTER_SECOND = exports.HALF_SECOND = exports.EMPTY_ARRAY = exports.EMPTY_STRING = exports.READ_ONLY_STYLE = exports.AGGRID_TOOLPANEL_COLUMNS = exports.AGGRID_TOOLPANEL_FILTERS = exports.ADAPTABLE_TOOLPANEL_COMPONENT = exports.ADAPTABLE_TOOLPANEL_ID = exports.ADAPTABLE_ID = exports.ADAPTABLE = exports.ERROR_LAYOUT = exports.OS_THEME = exports.DARK_THEME = exports.LIGHT_THEME = exports.MISSING_COLUMN = exports.AUTOGENERATED_PK_COLUMN = void 0;
|
|
4
|
+
exports.OBSERVABLE_EXPRESSION_ROW_REMOVED = exports.OBSERVABLE_EXPRESSION_ROW_ADDED = exports.STANDALONE_MODULE_POPUPS = exports.LAYOUT_DELETE_TOOLTIP = exports.LAYOUT_CLONE_TOOLTIP = exports.LAYOUT_EDIT_TOOLTIP = exports.LAYOUT_SAVE_TOOLTIP = exports.LAYOUT_NEW_TABLE_OR_PIVOT_TOOLTIP = void 0;
|
|
5
5
|
exports.AUTOGENERATED_PK_COLUMN = '__ADAPTABLE_PK__';
|
|
6
6
|
exports.MISSING_COLUMN = ' [MISSING]';
|
|
7
7
|
exports.LIGHT_THEME = 'light';
|
|
@@ -25,6 +25,7 @@ exports.HALF_SECOND = 500;
|
|
|
25
25
|
exports.QUARTER_SECOND = 250;
|
|
26
26
|
exports.GROUP_PATH_SEPARATOR = '/';
|
|
27
27
|
exports.AG_GRID_GROUPED_COLUMN = 'ag-Grid-AutoColumn';
|
|
28
|
+
exports.AG_GRID_SELECTION_COLUMN = 'ag-Grid-SelectionColumn';
|
|
28
29
|
exports.AG_GRID_PIVOT_COLUMN = 'pivot_';
|
|
29
30
|
exports.AG_GRID_CHART_WINDOW = 'AG Grid Window';
|
|
30
31
|
exports.ADAPTABLE_FDC3_ACTION_COLUMN_FRIENDLY_NAME = '(FDC3ActionColumn)';
|
|
@@ -39,7 +39,7 @@ const ExportViewPanel = (props) => {
|
|
|
39
39
|
React.createElement(ButtonEdit_1.ButtonEdit, { onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
|
|
40
40
|
action: 'Edit',
|
|
41
41
|
source: 'Toolbar',
|
|
42
|
-
})), tooltip: "Edit Report", className: `ab-${elementType}__Export__edit`, disabled: currentReport == null
|
|
42
|
+
})), tooltip: "Edit Report", className: `ab-${elementType}__Export__edit`, disabled: currentReport == null, accessLevel: accessLevel }),
|
|
43
43
|
React.createElement(ButtonNew_1.ButtonNew, { variant: "text", className: `ab-${elementType}__Export__new`, tone: "neutral", children: null, onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
|
|
44
44
|
action: 'New',
|
|
45
45
|
source: 'Toolbar',
|
|
@@ -456,7 +456,9 @@ class AgGridExportAdapter {
|
|
|
456
456
|
formatColumnsWithDisplayFormatMemo[columnId] = formatColumns;
|
|
457
457
|
return formatColumns;
|
|
458
458
|
};
|
|
459
|
-
const agGridDisplayedColumns = this.agGridApi
|
|
459
|
+
const agGridDisplayedColumns = this.agGridApi
|
|
460
|
+
.getAllDisplayedColumns()
|
|
461
|
+
.filter((agCol) => agCol.getId() !== GeneralConstants_1.AG_GRID_SELECTION_COLUMN);
|
|
460
462
|
const colDefs = agGridDisplayedColumns.map((column) => {
|
|
461
463
|
return column.getColDef();
|
|
462
464
|
});
|
package/src/env.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = {
|
|
4
4
|
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" || '',
|
|
5
|
-
PUBLISH_TIMESTAMP:
|
|
6
|
-
VERSION: "20.0.0-canary.
|
|
5
|
+
PUBLISH_TIMESTAMP: 1742409311229 || Date.now(),
|
|
6
|
+
VERSION: "20.0.0-canary.22" || '--current-version--',
|
|
7
7
|
};
|
|
@@ -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;
|