@adaptabletools/adaptable 20.0.0-canary.3 → 20.0.0-canary.4

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 (40) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableOptions/CellSummaryOptions.d.ts +1 -1
  3. package/src/AdaptableOptions/ContainerOptions.d.ts +0 -7
  4. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -1
  5. package/src/AdaptableOptions/EditOptions.d.ts +1 -1
  6. package/src/AdaptableOptions/ExportOptions.d.ts +4 -18
  7. package/src/AdaptableOptions/PredicateOptions.d.ts +4 -4
  8. package/src/Api/Implementation/AdaptableApiImpl.js +1 -0
  9. package/src/Api/Implementation/ExportApiImpl.js +3 -2
  10. package/src/Api/Implementation/ScheduleApiImpl.js +1 -1
  11. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -1
  12. package/src/Api/Internal/EventInternalApi.js +6 -1
  13. package/src/Api/Internal/ExportInternalApi.js +1 -1
  14. package/src/PredefinedConfig/Common/AdaptableColumnContext.d.ts +1 -1
  15. package/src/PredefinedConfig/ExportState.d.ts +3 -3
  16. package/src/PredefinedConfig/LayoutState.d.ts +14 -14
  17. package/src/PredefinedConfig/StyledColumnState.d.ts +1 -1
  18. package/src/Strategy/StyledColumnModule.js +6 -6
  19. package/src/Utilities/ObjectFactory.js +1 -0
  20. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.d.ts +2 -0
  21. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +18 -2
  22. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +4 -0
  23. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.js +2 -1
  24. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +3 -4
  25. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +348 -191
  26. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +2 -2
  27. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  28. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +4 -4
  29. package/src/agGrid/AdaptableAgGrid.d.ts +1 -6
  30. package/src/agGrid/AdaptableAgGrid.js +24 -42
  31. package/src/agGrid/AgGridAdapter.js +4 -1
  32. package/src/agGrid/AgGridColumnAdapter.js +5 -3
  33. package/src/components/ColorPicker/ColorPicker.js +2 -2
  34. package/src/env.js +2 -2
  35. package/src/metamodel/adaptable.metamodel.d.ts +0 -15
  36. package/src/metamodel/adaptable.metamodel.js +1 -1
  37. package/src/migration/VersionUpgrade20.d.ts +1 -0
  38. package/src/migration/VersionUpgrade20.js +25 -0
  39. package/src/types.d.ts +1 -1
  40. package/tsconfig.esm.tsbuildinfo +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "20.0.0-canary.3",
3
+ "version": "20.0.0-canary.4",
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",
@@ -9,7 +9,7 @@ export interface CellSummaryOptions<TData = any> {
9
9
  */
10
10
  customCellSummaryOperations?: CustomCellSummaryOperation<TData>[];
11
11
  /**
12
- * Numeric format to use for summary value; note relevant Format Columns with a DisplayFormat take precedence over this
12
+ * Numeric format to use for summary value; a Format Column DisplayFormat will take precedence
13
13
  */
14
14
  numericDisplayFormat?: NumberFormatterOptions | ((columnContext: AdaptableColumnContext) => NumberFormatterOptions);
15
15
  }
@@ -16,13 +16,6 @@ export interface ContainerOptions {
16
16
  * @gridInfoItem
17
17
  */
18
18
  agGridContainer?: string | HTMLElement;
19
- /**
20
- * How long to wait for AG Grid before giving up trying to connect
21
- *
22
- * @defaultValue 60s
23
- * @gridInfoItem
24
- */
25
- agGridContainerWaitTimeout?: number;
26
19
  /**
27
20
  * Name of div where popups appear
28
21
  *
@@ -54,7 +54,6 @@ const DefaultAdaptableOptions = {
54
54
  containerOptions: {
55
55
  adaptableContainer: 'adaptable',
56
56
  agGridContainer: 'grid',
57
- agGridContainerWaitTimeout: 60000,
58
57
  modalContainer: undefined,
59
58
  systemStatusContainer: undefined,
60
59
  alertContainer: undefined,
@@ -26,7 +26,7 @@ export interface EditOptions<TData = any> {
26
26
  */
27
27
  smartEditCustomOperations?: SmartEditCustomOperation<TData>[];
28
28
  /**
29
- * Dropdown values displayed when column is being edited
29
+ * Columns that will display a Select dropdown when editing
30
30
  */
31
31
  showSelectCellEditor?: (currentColumContext: AdaptableColumnContext<TData>) => boolean;
32
32
  /**
@@ -13,7 +13,7 @@ export interface ExportOptions<TData = any> {
13
13
  *
14
14
  * @defaultValue rawValue
15
15
  */
16
- exportDataFormat?: DataFormatType | DataFormatDataType | ((dataFormatTypeContext: DataFormatTypeContext<TData>) => DataFormatType);
16
+ exportDataFormat?: DataFormatType | DataFormatDataType | ((context: AdaptableColumnContext<TData>) => DataFormatType);
17
17
  /**
18
18
  * Optional custom format for Date columns when exporting
19
19
  *
@@ -66,7 +66,7 @@ export interface ExportOptions<TData = any> {
66
66
  * Whether a Column is included in System Reports and available in UI for selection
67
67
  * @defaultValue true
68
68
  */
69
- isColumnExportable?: (exportableColumnContext: ExportableColumnContext) => boolean;
69
+ isColumnExportable?: (context: AdaptableColumnContext) => boolean;
70
70
  /**
71
71
  * Function invoked before a Report is run, enabling users to preload the data before it is exported
72
72
  */
@@ -257,11 +257,6 @@ export interface ReportContext extends BaseExportContext {
257
257
  */
258
258
  reportData: ExportResultData;
259
259
  }
260
- /**
261
- * Context used for setting whether a Column is exportable
262
- */
263
- export interface ExportableColumnContext extends AdaptableColumnContext {
264
- }
265
260
  /**
266
261
  * Context used for providing a custom filename for a Report
267
262
  */
@@ -271,23 +266,14 @@ export interface ReportFileNameContext extends BaseExportContext {
271
266
  */
272
267
  fileName: string;
273
268
  }
274
- /**
275
- * Context provided when setting a Data Format Type for Export
276
- */
277
- export interface DataFormatTypeContext<TData = any> extends BaseContext {
278
- /**
279
- * Column being exported
280
- */
281
- column: AdaptableColumn<TData>;
282
- }
283
269
  /**
284
270
  * Defines the Format Data Types for all Data Types
285
271
  */
286
272
  export interface DataFormatDataType {
287
273
  /**
288
- * Data Format type for String columns
274
+ * Data Format type for String / Text columns
289
275
  */
290
- string?: DataFormatType;
276
+ text?: DataFormatType;
291
277
  /**
292
278
  * Data Format type for Number columns
293
279
  */
@@ -36,10 +36,10 @@ export interface PredicateOptions {
36
36
  */
37
37
  caseSensitivePredicates?: boolean;
38
38
  /**
39
- * Should Values (IN) Predicate evaluate using datetime (rather than date)
40
- * @defaultValue true
41
- * @noCodeItem
42
- */
39
+ * Should Values (IN) Predicate evaluate using datetime (rather than date)
40
+ * @defaultValue true
41
+ * @noCodeItem
42
+ */
43
43
  evaluateValuesPredicateUsingTime?: boolean;
44
44
  }
45
45
  /**
@@ -141,6 +141,7 @@ export class AdaptableApiImpl {
141
141
  this.formatColumnApi = null;
142
142
  this.freeTextColumnApi = null;
143
143
  this.gridApi = null;
144
+ this.rowFormApi = null;
144
145
  this.internalApi = null;
145
146
  this.layoutApi = null;
146
147
  this.pluginsApi = null;
@@ -143,10 +143,11 @@ export class ExportApiImpl extends ApiBase {
143
143
  isColumnExportable(adaptableColumn) {
144
144
  const isExportableFn = this.getExportOptions().isColumnExportable;
145
145
  if (typeof isExportableFn === 'function') {
146
- return isExportableFn({
146
+ const adaptableColumnContext = {
147
147
  ...this.getAdaptableInternalApi().buildBaseContext(),
148
148
  column: adaptableColumn,
149
- });
149
+ };
150
+ return isExportableFn(adaptableColumnContext);
150
151
  }
151
152
  return true;
152
153
  }
@@ -159,7 +159,7 @@ export class ScheduleApiImpl extends ApiBase {
159
159
  }
160
160
  else if (scheduleType == 'Report') {
161
161
  const reportSchedule = schedule;
162
- this.getExportApi().exportReport(reportSchedule.ReportName, reportSchedule.ReportFormat, 'Download');
162
+ this.getExportApi().exportReport(reportSchedule.ReportName, reportSchedule.ReportFormat, reportSchedule.ExportDestination ?? 'Download');
163
163
  }
164
164
  else if (scheduleType == 'ipushpull') {
165
165
  const ippApi = this.getAdaptableApi().pluginsApi.getipushpullPluginApi();
@@ -35,7 +35,7 @@ export class StyledColumnApiImpl extends ApiBase {
35
35
  if (!column) {
36
36
  return false;
37
37
  }
38
- return !!this.getStyledColumns().find((styledColumn) => !!styledColumn.SparkLineStyle && styledColumn.ColumnId === column.columnId);
38
+ return !!this.getStyledColumns().find((styledColumn) => !!styledColumn.SparklineStyle && styledColumn.ColumnId === column.columnId);
39
39
  }
40
40
  getActiveStyledColumnForColumn(column) {
41
41
  const styledColumns = this.getActiveStyledColumns();
@@ -59,7 +59,12 @@ export class EventInternalApi extends ApiBase {
59
59
  isToolbarStateChangedToHidden,
60
60
  };
61
61
  if (!isEqual(oldDashboardState, newDashboardState)) {
62
- setTimeout(() => this.getEventApi().emit('DashboardChanged', dashboardChangedInfo));
62
+ setTimeout(() => {
63
+ const eventApi = this.getEventApi();
64
+ if (eventApi) {
65
+ eventApi.emit('DashboardChanged', dashboardChangedInfo);
66
+ }
67
+ });
63
68
  }
64
69
  }
65
70
  fireAlertFiredEvent(alertToFire) {
@@ -113,7 +113,7 @@ export class ExportInternalApi extends ApiBase {
113
113
  // format is customized based on column data type
114
114
  switch (columnDataType) {
115
115
  case 'text':
116
- return dataFormatDataType.string;
116
+ return dataFormatDataType.text;
117
117
  case 'number':
118
118
  return dataFormatDataType.number;
119
119
  case 'date':
@@ -5,7 +5,7 @@ import { BaseContext } from './BaseContext';
5
5
  */
6
6
  export interface AdaptableColumnContext<TData = any> extends BaseContext {
7
7
  /**
8
- * Column being filtered
8
+ * The current Column
9
9
  */
10
10
  column: AdaptableColumn<TData>;
11
11
  }
@@ -3,9 +3,9 @@ import { BaseSchedule } from './Common/Schedule';
3
3
  import { ColumnScope } from './Common/ColumnScope';
4
4
  import { AdaptableColumnBase } from './Common/AdaptableColumn';
5
5
  import { AdaptableObject } from './Common/AdaptableObject';
6
- import { AdaptableFormData } from './Common/AdaptableForm';
7
6
  import { AdaptableBooleanQuery } from './Common/AdaptableQuery';
8
7
  import { TypeHint } from './Common/Types';
8
+ import { ExportDestinationType } from '../AdaptableOptions/ExportOptions';
9
9
  /**
10
10
  * Predefined Configuration for Export Module
11
11
  */
@@ -61,9 +61,9 @@ export interface ReportSchedule extends BaseSchedule {
61
61
  */
62
62
  ReportFormat: ReportFormatType;
63
63
  /**
64
- * Additional data for a Custom Destination produced by a Dynamic Form
64
+ * Destination of Report to run on Schedule
65
65
  */
66
- ExportDestinationData?: AdaptableFormData;
66
+ ExportDestination?: ExportDestinationType;
67
67
  }
68
68
  /**
69
69
  * Defines the data in a Report run by AdapTable
@@ -100,19 +100,19 @@ export interface TableLayout extends LayoutBase {
100
100
  */
101
101
  RowGroupDisplayType?: 'single' | 'multi';
102
102
  /**
103
- * Pivot Columns - can NOT be provided
103
+ * Pivot Columns - must NOT be provided
104
104
  */
105
105
  PivotColumns?: never;
106
106
  /**
107
- * Pivot Group Columns - can NOT be provided
107
+ * Pivot Group Columns - must NOT be provided
108
108
  */
109
109
  PivotGroupedColumns?: never;
110
110
  /**
111
- * Pivot Expansions - can NOT be provided
111
+ * Pivot Expansions - must NOT be provided
112
112
  */
113
113
  PivotExpandLevel?: never;
114
114
  /**
115
- * Pivot Aggregation Columns - can NOT be provided
115
+ * Pivot Aggregation Columns - must NOT be provided
116
116
  */
117
117
  PivotAggregationColumns?: never;
118
118
  }
@@ -137,31 +137,31 @@ export interface PivotLayout extends LayoutBase {
137
137
  */
138
138
  PivotGroupedColumns?: string[];
139
139
  /**
140
- * Table Columns - can NOT be provided
140
+ * Table Columns - must NOT be provided
141
141
  */
142
142
  TableColumns?: never;
143
143
  /**
144
- * Table Aggregation Columns - can NOT be provided
144
+ * Table Aggregation Columns - must NOT be provided
145
145
  */
146
146
  TableAggregationColumns?: never;
147
147
  /**
148
- * Row Grouped Columns Columns - can NOT be provided
148
+ * Row Grouped Columns Columns - must NOT be provided
149
149
  */
150
150
  RowGroupedColumns?: never;
151
151
  }
152
- /**
153
- * Object used for defining which Row Group Values are Expanded or Collapsed
154
- */
155
- export type RowGroupValuesWithExceptionKeys = {
156
- RowGroupDefaultBehavior: 'expanded' | 'collapsed';
157
- ExceptionGroupKeys?: any[][];
158
- };
159
152
  /**
160
153
  * Manages how (and which) Row Group values are stored
161
154
  */
162
155
  export type RowGroupValues = {
163
156
  RowGroupDefaultBehavior: 'always-expanded' | 'always-collapsed';
164
157
  } | RowGroupValuesWithExceptionKeys;
158
+ /**
159
+ * Defines which Row Group Values are expanded or collapsed
160
+ */
161
+ export type RowGroupValuesWithExceptionKeys = {
162
+ RowGroupDefaultBehavior: 'expanded' | 'collapsed';
163
+ ExceptionGroupKeys?: any[][];
164
+ };
165
165
  /**
166
166
  * Defines a map of Columns with a String value
167
167
  */
@@ -32,7 +32,7 @@ export interface StyledColumn extends SuspendableObject {
32
32
  /**
33
33
  * Displays a Sparkline Chart in an array column
34
34
  */
35
- SparkLineStyle?: SparklineStyle;
35
+ SparklineStyle?: SparklineStyle;
36
36
  /**
37
37
  * Displays cell values in Column as a Badge
38
38
  */
@@ -35,12 +35,12 @@ export class StyledColumnModule extends AdaptableModuleBase {
35
35
  // because if just one then it was created in AG Grid and we dont want to edit it
36
36
  }
37
37
  else {
38
- const hasSparklineStyle = styledColumn != null && styledColumn.SparkLineStyle != null;
38
+ const hasSparklineStyle = styledColumn != null && styledColumn.SparklineStyle != null;
39
39
  if (!hasSparklineStyle) {
40
40
  styledColumn = {
41
41
  ...ObjectFactory.CreateEmptyStyledColumn(),
42
42
  ColumnId: column.columnId,
43
- SparkLineStyle: {},
43
+ SparklineStyle: {},
44
44
  };
45
45
  }
46
46
  let label = hasSparklineStyle ? 'Edit ' : 'Create ';
@@ -48,7 +48,7 @@ export class StyledColumnModule extends AdaptableModuleBase {
48
48
  ? 'styled-column-sparkline-edit'
49
49
  : 'styled-column-sparkline-add';
50
50
  let popupParam = {
51
- action: sparklineColumnExists ? 'Edit' : 'New',
51
+ action: hasSparklineStyle ? 'Edit' : 'New',
52
52
  source: 'ColumnMenu',
53
53
  value: styledColumn,
54
54
  config: {
@@ -161,7 +161,7 @@ export class StyledColumnModule extends AdaptableModuleBase {
161
161
  else if (styledColumn.PercentBarStyle) {
162
162
  return 'percent';
163
163
  }
164
- else if (styledColumn.SparkLineStyle) {
164
+ else if (styledColumn.SparklineStyle) {
165
165
  return 'spark-line';
166
166
  }
167
167
  else if (styledColumn.BadgeStyle) {
@@ -248,7 +248,7 @@ export class StyledColumnModule extends AdaptableModuleBase {
248
248
  else if (styledColumn.PercentBarStyle) {
249
249
  type = 'Percent Bar';
250
250
  }
251
- else if (styledColumn.SparkLineStyle) {
251
+ else if (styledColumn.SparklineStyle) {
252
252
  type = 'Spark Line';
253
253
  }
254
254
  else if (styledColumn.BadgeStyle) {
@@ -264,7 +264,7 @@ export class StyledColumnModule extends AdaptableModuleBase {
264
264
  else if (styledColumn.PercentBarStyle) {
265
265
  type = 'styled-column-percent-bar-edit';
266
266
  }
267
- else if (styledColumn.SparkLineStyle) {
267
+ else if (styledColumn.SparklineStyle) {
268
268
  type = 'styled-column-sparkline-edit';
269
269
  }
270
270
  else if (styledColumn.BadgeStyle) {
@@ -162,6 +162,7 @@ export function CreateEmptyReportSchedule() {
162
162
  Schedule: CreateEmptySchedule(),
163
163
  ReportName: EMPTY_STRING,
164
164
  ReportFormat: EMPTY_STRING,
165
+ ExportDestination: 'Download',
165
166
  };
166
167
  }
167
168
  export function CreateEmptyIPushPullReport() {
@@ -1,10 +1,12 @@
1
1
  import * as React from 'react';
2
+ import { ExportDestinationType } from '../../../../AdaptableOptions/ExportOptions';
2
3
  import { Report, ReportFormatType, ReportSchedule } from '../../../../PredefinedConfig/ExportState';
3
4
  interface ReportScheduleProps {
4
5
  report: ReportSchedule;
5
6
  onChange: (reminder: ReportSchedule) => void;
6
7
  allReports: Report[];
7
8
  allFormats: ReportFormatType[];
9
+ allDestinations: ExportDestinationType[];
8
10
  }
9
11
  export declare const ScheduleSettingsReport: React.FunctionComponent<ReportScheduleProps>;
10
12
  export {};
@@ -18,14 +18,24 @@ export const ScheduleSettingsReport = (props) => {
18
18
  });
19
19
  },
20
20
  }));
21
+ const destinationOptions = props.allDestinations.map((destination) => ({
22
+ label: destination,
23
+ value: destination,
24
+ onClick: () => {
25
+ props.onChange({
26
+ ...props.report,
27
+ ExportDestination: destination,
28
+ });
29
+ },
30
+ }));
21
31
  return (React.createElement(Box, { "data-name": "schedule-settings-report" },
22
32
  React.createElement(Tabs, { autoFocus: false, mb: 3 },
23
- React.createElement(Tabs.Tab, null, "Report Schedule Settings"),
33
+ React.createElement(Tabs.Tab, null, "Report Settings"),
24
34
  React.createElement(Tabs.Content, null,
25
35
  React.createElement(FormLayout, null,
26
36
  React.createElement(FormRow, { label: "Export" },
27
37
  React.createElement(Box, { maxWidth: 300 },
28
- React.createElement(Select, { "data-name": "select-export", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
38
+ React.createElement(Select, { "data-name": "select-report", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
29
39
  ...props.report,
30
40
  ReportName: value,
31
41
  }) }))),
@@ -34,5 +44,11 @@ export const ScheduleSettingsReport = (props) => {
34
44
  React.createElement(Select, { "data-name": "select-format", options: formatOptions, value: props?.report?.ReportFormat, placeholder: "Select Format", onChange: (value) => props.onChange({
35
45
  ...props.report,
36
46
  ReportFormat: value,
47
+ }) }))),
48
+ React.createElement(FormRow, { label: "Destination" },
49
+ React.createElement(Box, { maxWidth: 300 },
50
+ React.createElement(Select, { "data-name": "select-destination", options: destinationOptions, value: props?.report?.ExportDestination, placeholder: "Select Format", onChange: (value) => props.onChange({
51
+ ...props.report,
52
+ ExportDestination: value,
37
53
  }) }))))))));
38
54
  };
@@ -39,6 +39,10 @@ export const getScheduleSettingsValues = (data) => {
39
39
  label: 'Report Format',
40
40
  value: report?.ReportFormat || 'Not Specified',
41
41
  },
42
+ {
43
+ label: 'Export Destination',
44
+ value: report?.ExportDestination || 'Download',
45
+ },
42
46
  ];
43
47
  }
44
48
  if (data.ScheduleType === ScheduleType.ipushpull) {
@@ -13,7 +13,8 @@ export const ScheduleSettingsWizard = (props) => {
13
13
  }
14
14
  if (data?.ScheduleType === ScheduleType.Report) {
15
15
  const allFormats = api.exportApi.getAvailableSystemFormats();
16
- return (React.createElement(ScheduleSettingsReport, { allReports: allReports ?? [], allFormats: allFormats ?? [], report: data, onChange: props.onChange }));
16
+ const allDestinations = api.exportApi.getAllExportDestinations();
17
+ return (React.createElement(ScheduleSettingsReport, { allReports: allReports ?? [], allFormats: allFormats ?? [], allDestinations: allDestinations ?? [], report: data, onChange: props.onChange }));
17
18
  }
18
19
  if (data?.ScheduleType === ScheduleType.ipushpull) {
19
20
  const ippApi = api.pluginsApi.getipushpullPluginApi();
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
- import { StyledColumn } from '../../../types';
3
- export interface StyledColumnSparklineSettingsSectionProps {
2
+ import type { StyledColumn } from '../../../types';
3
+ export declare const StyledColumnSparklineSettingsSection: React.FC<{
4
4
  onChange: (data: StyledColumn) => void;
5
- }
6
- export declare const StyledColumnSparklineSettingsSection: React.FunctionComponent<StyledColumnSparklineSettingsSectionProps>;
5
+ }>;