@adaptabletools/adaptable-cjs 20.0.0-canary.1 → 20.0.0-canary.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/base.css +317 -866
  2. package/base.css.map +1 -1
  3. package/index.css +317 -866
  4. package/index.css.map +1 -1
  5. package/package.json +3 -3
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -1
  7. package/src/AdaptableOptions/ActionColumnOptions.d.ts +2 -2
  8. package/src/AdaptableOptions/CellSummaryOptions.d.ts +1 -1
  9. package/src/AdaptableOptions/ContainerOptions.d.ts +0 -7
  10. package/src/AdaptableOptions/DefaultAdaptableOptions.js +2 -2
  11. package/src/AdaptableOptions/EditOptions.d.ts +14 -3
  12. package/src/AdaptableOptions/ExportOptions.d.ts +11 -20
  13. package/src/AdaptableOptions/FilterOptions.d.ts +2 -2
  14. package/src/AdaptableOptions/PredicateOptions.d.ts +4 -4
  15. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +7 -0
  16. package/src/Api/ColumnScopeApi.d.ts +2 -2
  17. package/src/Api/ExportApi.d.ts +1 -6
  18. package/src/Api/Fdc3Api.d.ts +5 -3
  19. package/src/Api/Implementation/AdaptableApiImpl.js +1 -0
  20. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +1 -1
  21. package/src/Api/Implementation/ColumnScopeApiImpl.js +1 -1
  22. package/src/Api/Implementation/ExportApiImpl.d.ts +1 -2
  23. package/src/Api/Implementation/ExportApiImpl.js +17 -10
  24. package/src/Api/Implementation/Fdc3ApiImpl.d.ts +3 -3
  25. package/src/Api/Implementation/Fdc3ApiImpl.js +4 -4
  26. package/src/Api/Implementation/LayoutHelpers.js +8 -27
  27. package/src/Api/Implementation/ScheduleApiImpl.js +1 -1
  28. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -1
  29. package/src/Api/Implementation/ThemeApiImpl.js +3 -1
  30. package/src/Api/Internal/ActionColumnInternalApi.js +16 -19
  31. package/src/Api/Internal/AdaptableInternalApi.js +1 -1
  32. package/src/Api/Internal/EventInternalApi.js +6 -1
  33. package/src/Api/Internal/ExportInternalApi.d.ts +10 -6
  34. package/src/Api/Internal/ExportInternalApi.js +105 -136
  35. package/src/Api/Internal/RowFormInternalApi.js +1 -1
  36. package/src/Api/ThemeApi.d.ts +2 -0
  37. package/src/PredefinedConfig/AlertState.d.ts +1 -1
  38. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +5 -5
  39. package/src/PredefinedConfig/Common/AdaptableColumnContext.d.ts +1 -1
  40. package/src/PredefinedConfig/Common/AdaptablePredicate.js +0 -16
  41. package/src/PredefinedConfig/Common/RowSummary.d.ts +1 -1
  42. package/src/PredefinedConfig/Common/RowSummary.js +3 -3
  43. package/src/PredefinedConfig/ExportState.d.ts +10 -17
  44. package/src/PredefinedConfig/FlashingCellState.d.ts +1 -1
  45. package/src/PredefinedConfig/LayoutState.d.ts +20 -16
  46. package/src/PredefinedConfig/StyledColumnState.d.ts +1 -1
  47. package/src/Redux/Store/AdaptableStore.js +1 -1
  48. package/src/Strategy/StyledColumnModule.js +6 -6
  49. package/src/Utilities/Helpers/AdaptableHelper.d.ts +2 -0
  50. package/src/Utilities/Helpers/AdaptableHelper.js +12 -1
  51. package/src/Utilities/ObjectFactory.js +1 -0
  52. package/src/Utilities/Services/Fdc3Service.d.ts +2 -2
  53. package/src/Utilities/Services/Fdc3Service.js +7 -2
  54. package/src/Utilities/Services/RowSummaryService.js +1 -1
  55. package/src/Utilities/Services/ThemeService.d.ts +1 -1
  56. package/src/Utilities/Services/ThemeService.js +5 -5
  57. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +41 -0
  58. package/src/View/Components/ColumnFilter/utils.js +2 -2
  59. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
  60. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +4 -1
  61. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +7 -2
  62. package/src/View/Layout/Wizard/LayoutWizard.js +1 -1
  63. package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
  64. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.d.ts +2 -0
  65. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +18 -2
  66. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +4 -0
  67. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.js +2 -1
  68. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +3 -4
  69. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +348 -191
  70. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +2 -2
  71. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  72. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +4 -4
  73. package/src/agGrid/AdaptableAgGrid.d.ts +3 -8
  74. package/src/agGrid/AdaptableAgGrid.js +40 -117
  75. package/src/agGrid/AgGridAdapter.d.ts +1 -1
  76. package/src/agGrid/AgGridAdapter.js +5 -6
  77. package/src/agGrid/AgGridColumnAdapter.js +6 -11
  78. package/src/agGrid/AgGridExportAdapter.d.ts +24 -1
  79. package/src/agGrid/AgGridExportAdapter.js +24 -25
  80. package/src/agGrid/AgGridThemeAdapter.d.ts +19 -0
  81. package/src/agGrid/AgGridThemeAdapter.js +126 -0
  82. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -1
  83. package/src/components/ColorPicker/ColorPicker.js +2 -2
  84. package/src/components/OverlayTrigger/useAgGridClassName.js +1 -1
  85. package/src/components/Select/Select.d.ts +1 -0
  86. package/src/components/Select/Select.js +29 -6
  87. package/src/env.js +2 -2
  88. package/src/metamodel/adaptable.metamodel.d.ts +26 -20
  89. package/src/metamodel/adaptable.metamodel.js +1 -1
  90. package/src/migration/VersionUpgrade20.d.ts +1 -0
  91. package/src/migration/VersionUpgrade20.js +103 -3
  92. package/src/types.d.ts +3 -3
  93. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdaptableHelper = exports.isAdaptableObject = exports.removeAdaptableObjectPrimitives = exports.addAdaptableObjectPrimitives = exports.getAccessLevelForObject = exports.initPredefinedConfigWithUuids = void 0;
3
+ exports.AdaptableHelper = exports.isAdaptableObject = exports.removeAdaptableObjectPrimitives = exports.removeAdaptableObjectPrimitivesInline = exports.addAdaptableObjectPrimitives = exports.getAccessLevelForObject = exports.initPredefinedConfigWithUuids = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const cloneDeepWith_1 = tslib_1.__importDefault(require("lodash/cloneDeepWith"));
6
6
  const isPlainObject_1 = tslib_1.__importDefault(require("lodash/isPlainObject"));
@@ -50,6 +50,16 @@ function addAdaptableObjectPrimitives(adaptableObject) {
50
50
  return adaptableObject;
51
51
  }
52
52
  exports.addAdaptableObjectPrimitives = addAdaptableObjectPrimitives;
53
+ function removeAdaptableObjectPrimitivesInline(target) {
54
+ if (!target || typeof target !== 'object') {
55
+ return target;
56
+ }
57
+ delete target.Source;
58
+ delete target.Uuid;
59
+ delete target.AdaptableVersion;
60
+ return target;
61
+ }
62
+ exports.removeAdaptableObjectPrimitivesInline = removeAdaptableObjectPrimitivesInline;
53
63
  function removeAdaptableObjectPrimitives(adaptableObject) {
54
64
  const clonedObject = structuredClone(adaptableObject);
55
65
  const sanitiseObject = (object) => {
@@ -79,6 +89,7 @@ exports.AdaptableHelper = {
79
89
  getAccessLevelForObject,
80
90
  addAdaptableObjectPrimitives,
81
91
  removeAdaptableObjectPrimitives,
92
+ removeAdaptableObjectPrimitivesInline,
82
93
  isAdaptableObject,
83
94
  };
84
95
  exports.default = exports.AdaptableHelper;
@@ -180,6 +180,7 @@ function CreateEmptyReportSchedule() {
180
180
  Schedule: CreateEmptySchedule(),
181
181
  ReportName: GeneralConstants_1.EMPTY_STRING,
182
182
  ReportFormat: GeneralConstants_1.EMPTY_STRING,
183
+ ExportDestination: 'Download',
183
184
  };
184
185
  }
185
186
  exports.CreateEmptyReportSchedule = CreateEmptyReportSchedule;
@@ -1,7 +1,7 @@
1
1
  import { IAdaptableService } from './Interface/IAdaptableService';
2
2
  import { AdaptableApi } from '../../Api/AdaptableApi';
3
3
  import { Fdc3Options } from '../../AdaptableOptions/Fdc3Options';
4
- import { AppIdentifier, DesktopAgent, IntentResolution } from '@finos/fdc3';
4
+ import { AppIdentifier, Channel, DesktopAgent, IntentResolution } from '@finos/fdc3';
5
5
  import { Context } from '@finos/fdc3/dist/context/ContextTypes';
6
6
  export declare class Fdc3Service implements IAdaptableService {
7
7
  private adaptableApi;
@@ -15,7 +15,7 @@ export declare class Fdc3Service implements IAdaptableService {
15
15
  destroy(): void;
16
16
  raiseIntent(intent: string, context: Context, app?: AppIdentifier): Promise<IntentResolution>;
17
17
  raiseIntentForContext(context: Context, app?: AppIdentifier): Promise<IntentResolution>;
18
- broadcast(context: Context): Promise<void>;
18
+ broadcast(context: Context, channel?: Channel): Promise<void>;
19
19
  private logFdc3Event;
20
20
  private logFdc3Error;
21
21
  private getFdc3Api;
@@ -134,7 +134,7 @@ class Fdc3Service {
134
134
  this.logFdc3Error(error);
135
135
  }
136
136
  }
137
- broadcast(context) {
137
+ broadcast(context, channel) {
138
138
  if (!this.getDesktopAgent()) {
139
139
  return;
140
140
  }
@@ -147,7 +147,12 @@ class Fdc3Service {
147
147
  context,
148
148
  };
149
149
  this.adaptableApi.eventApi.emit('Fdc3Message', payload);
150
- return this.getDesktopAgent().broadcast(context);
150
+ if (channel) {
151
+ return channel.broadcast(context);
152
+ }
153
+ else {
154
+ return this.getDesktopAgent().broadcast(context);
155
+ }
151
156
  }
152
157
  catch (error) {
153
158
  this.logFdc3Error(error);
@@ -128,7 +128,7 @@ class RowSummaryService {
128
128
  if (!expressionLiveValue) {
129
129
  try {
130
130
  let aggregatedScalarExpression = `${expression}([${columnId}])`;
131
- if (aggregatedScalarExpression.includes(RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION) &&
131
+ if (aggregatedScalarExpression.includes(RowSummary_1.WEIGHTED_AVERAGE_AGGREGATED_FUNCTION) &&
132
132
  aggColsMap[columnId] &&
133
133
  typeof aggColsMap[columnId] === 'object') {
134
134
  const weight = aggColsMap[columnId].weightedColumnId;
@@ -5,10 +5,10 @@ export declare class ThemeService implements IThemeService {
5
5
  private unsubscribe;
6
6
  private styleSheetObject;
7
7
  constructor(api: AdaptableApi);
8
+ destroy(): void;
8
9
  subscribe(): void;
9
10
  onThemeChanged: () => void;
10
11
  applyNewThemeVariables(theme: AdaptableTheme): void;
11
- destroy(): void;
12
12
  showMissingThemeFiles(theme: AdaptableTheme): void;
13
13
  getDOMPrefferedColorScheme(): 'dark' | 'light';
14
14
  mapOsTheme(theme: AdaptableTheme | string): AdaptableTheme;
@@ -23,6 +23,11 @@ class ThemeService {
23
23
  ];
24
24
  }
25
25
  }
26
+ destroy() {
27
+ this.api = null;
28
+ this.unsubscribe();
29
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets].filter((sheet) => sheet !== this.styleSheetObject);
30
+ }
26
31
  subscribe() {
27
32
  const themeChangedUnsubscribe = this.api.eventApi.on('ThemeChanged', this.onThemeChanged);
28
33
  const prefferedColorSchemeUnsubscribe = this.attachPrefferedColorSchemeListener();
@@ -47,11 +52,6 @@ class ThemeService {
47
52
  str += '}';
48
53
  this.styleSheetObject.replaceSync(str);
49
54
  }
50
- destroy() {
51
- this.api = null;
52
- this.unsubscribe();
53
- document.adoptedStyleSheets = [...document.adoptedStyleSheets].filter((sheet) => sheet !== this.styleSheetObject);
54
- }
55
55
  showMissingThemeFiles(theme) {
56
56
  // run time defined theme
57
57
  // because it may be an empty theme
@@ -46,6 +46,47 @@ const ConfigurationWizard = (props) => {
46
46
  delete newColumn.caption;
47
47
  return newColumn;
48
48
  });
49
+ const columnDefs = adaptableConfig.gridOptions.columnDefs;
50
+ // handle the layout creation
51
+ let Layouts = newAdaptableOptions.predefinedConfig?.Layout?.Layouts || [];
52
+ const NewLayout = {
53
+ TableColumns: columnDefs.map((col) => col.colId ?? col.field),
54
+ Name: 'Default Layout',
55
+ };
56
+ let currentLayoutName = NewLayout.Name;
57
+ let found = false;
58
+ if (!Layouts.length) {
59
+ // no layouts, make this the only one
60
+ Layouts = [NewLayout];
61
+ }
62
+ else {
63
+ Layouts = Layouts.map((layout) => {
64
+ if (found) {
65
+ return layout;
66
+ }
67
+ if (layout.TableColumns?.length === 0) {
68
+ // when finding the first empty layout
69
+ // set its column to be those of the new layout
70
+ found = true;
71
+ // and grab the name so we can put it in the Layout.CurrentLayout state
72
+ currentLayoutName = layout.Name;
73
+ layout = { ...layout };
74
+ layout.TableColumns = NewLayout.TableColumns;
75
+ }
76
+ return layout;
77
+ });
78
+ if (!found) {
79
+ Layouts.push(NewLayout);
80
+ }
81
+ }
82
+ newAdaptableOptions.predefinedConfig = {
83
+ ...newAdaptableOptions.predefinedConfig,
84
+ Layout: {
85
+ ...newAdaptableOptions.predefinedConfig.Layout,
86
+ Layouts: Layouts,
87
+ CurrentLayout: currentLayoutName,
88
+ },
89
+ };
49
90
  newAdaptableOptions.primaryKey = columnsHandle.current.getPrimaryKey();
50
91
  }
51
92
  const newAdaptableConfig = {
@@ -100,8 +100,8 @@ const mapColumnFilterToQlPredicate = (columnFilter, abColumn, qlPredicateDefs, c
100
100
  : { operator: 'Equals', args: [] };
101
101
  break;
102
102
  case 'text':
103
- defaultQlPredicate = columnFilterOptions.defaultStringColumnFilter
104
- ? { operator: columnFilterOptions.defaultStringColumnFilter, args: [] }
103
+ defaultQlPredicate = columnFilterOptions.defaultTextColumnFilter
104
+ ? { operator: columnFilterOptions.defaultTextColumnFilter, args: [] }
105
105
  : { operator: 'Contains', args: [] };
106
106
  break;
107
107
  case 'date':
@@ -28,7 +28,7 @@ const ColumnValuesSelect = (props) => {
28
28
  }
29
29
  return true;
30
30
  });
31
- const component = (React.createElement(Select_1.Select, { isMulti: true, searchable: true, closeMenuOnSelect: false, size: "small", menuStyle: {
31
+ const component = (React.createElement(Select_1.Select, { isMulti: true, showHeaderSelectionCheckbox: true, searchable: true, closeMenuOnSelect: false, size: "small", menuStyle: {
32
32
  minWidth: `var(--ab-cmp-select-column-menu-${column.columnId}__min-width, var(--ab-cmp-select-column-menu__min-width, 260px))`,
33
33
  }, ...props.selectProps, options: options, value: value, isLoading: props.isLoading, onChange: props.onChange }));
34
34
  return (React.createElement("div", { className: (0, join_1.default)(baseClassName, props.isLoading && `${baseClassName}--loading`), onKeyDownCapture: (e) => {
@@ -58,7 +58,10 @@ class DataChangeHistoryPopupComponent extends React.Component {
58
58
  this.props.api.dataChangeHistoryApi.clearDataChangeHistoryEntry(changeToBeUndone);
59
59
  }
60
60
  };
61
- const currentAgGridTheme = this.props.api.themeApi.getAgGridCurrentThemeName();
61
+ const agGridThemeMode = this.props.api.internalApi
62
+ .getAdaptableInstance()
63
+ .agGridThemeAdapter.getAgGridThemeMode();
64
+ const currentAgGridTheme = agGridThemeMode === 'legacy' ? this.props.api.themeApi.getAgGridCurrentThemeName() : '';
62
65
  return (React.createElement(PopupPanel_1.PopupPanel, { headerText: this.props.moduleInfo.FriendlyName, glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed() },
63
66
  React.createElement(rebass_1.Flex, { className: "ab-DataChangeHistoryPopup", flexDirection: "column", style: { height: '100%' } },
64
67
  React.createElement(rebass_1.Flex, { style: {
@@ -14,7 +14,9 @@ const AdaptableObjectRow_1 = require("../../Components/AdaptableObjectRow");
14
14
  const PopupPanel_1 = require("../../Components/Popups/AdaptablePopup/PopupPanel");
15
15
  const AdaptableObjectsSummary_1 = require("./AdaptableObjectsSummary");
16
16
  const EnvVars_1 = require("../../../EnvVars");
17
- const version = EnvVars_1.ADAPTABLE_VERSION;
17
+ const agGridModules_1 = require("../../../agGrid/agGridModules");
18
+ const adaptableVersion = EnvVars_1.ADAPTABLE_VERSION;
19
+ const agGridVersion = agGridModules_1.AG_GRID_VERSION;
18
20
  const GridInfoPopup = (props) => {
19
21
  const api = props.api;
20
22
  const CreateGridSummaries = (colItems) => {
@@ -37,7 +39,10 @@ const GridInfoPopup = (props) => {
37
39
  : null;
38
40
  const selectedRowInfo = api.gridApi.getSelectedRowInfo();
39
41
  if (api.optionsApi.getUserInterfaceOptions()?.showAdapTableVersion) {
40
- returnRows.push(createReadOnlyColItem(colItems, 'AdapTable Version', version));
42
+ returnRows.push(createReadOnlyColItem(colItems, 'AdapTable Version', adaptableVersion));
43
+ }
44
+ if (api.optionsApi.getUserInterfaceOptions()?.showAgGridVersion) {
45
+ returnRows.push(createReadOnlyColItem(colItems, 'AG Grid Version', agGridVersion));
41
46
  }
42
47
  returnRows.push(createReadOnlyColItem(colItems, 'Sorted Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(sorts) ? sorts.join('; ') : 'None'));
43
48
  returnRows.push(createReadOnlyColItem(colItems, 'Column Filters', columnFilterDescription));
@@ -212,7 +212,7 @@ const LayoutWizard = (props) => {
212
212
  ColumnsMap: Object.entries(rowSummary.ColumnsMap).reduce((acc, [columnId, aggFunc]) => {
213
213
  if (
214
214
  // see if it is weighted avg
215
- aggFunc === RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION &&
215
+ aggFunc === RowSummary_1.WEIGHTED_AVERAGE_AGGREGATED_FUNCTION &&
216
216
  // see if we have a weight in the agg columns
217
217
  aggColsMap[columnId] &&
218
218
  (typeof aggColsMap[columnId] !== 'object' ||
@@ -175,7 +175,7 @@ const RowSummaryEditor = React.memo(({ rowSummary, onChange, availableScalarExpr
175
175
  aggregation.weightedColumnId) {
176
176
  expressionOptions.push({
177
177
  label: 'WEIGHTERD_AVG',
178
- value: RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
178
+ value: RowSummary_1.WEIGHTED_AVERAGE_AGGREGATED_FUNCTION,
179
179
  });
180
180
  }
181
181
  const expression = rowSummary.ColumnsMap[column.columnId];
@@ -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 {};
@@ -22,14 +22,24 @@ const ScheduleSettingsReport = (props) => {
22
22
  });
23
23
  },
24
24
  }));
25
+ const destinationOptions = props.allDestinations.map((destination) => ({
26
+ label: destination,
27
+ value: destination,
28
+ onClick: () => {
29
+ props.onChange({
30
+ ...props.report,
31
+ ExportDestination: destination,
32
+ });
33
+ },
34
+ }));
25
35
  return (React.createElement(rebass_1.Box, { "data-name": "schedule-settings-report" },
26
36
  React.createElement(Tabs_1.Tabs, { autoFocus: false, mb: 3 },
27
- React.createElement(Tabs_1.Tabs.Tab, null, "Report Schedule Settings"),
37
+ React.createElement(Tabs_1.Tabs.Tab, null, "Report Settings"),
28
38
  React.createElement(Tabs_1.Tabs.Content, null,
29
39
  React.createElement(FormLayout_1.default, null,
30
40
  React.createElement(FormLayout_1.FormRow, { label: "Export" },
31
41
  React.createElement(rebass_1.Box, { maxWidth: 300 },
32
- React.createElement(Select_1.Select, { "data-name": "select-export", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
42
+ React.createElement(Select_1.Select, { "data-name": "select-report", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
33
43
  ...props.report,
34
44
  ReportName: value,
35
45
  }) }))),
@@ -38,6 +48,12 @@ const ScheduleSettingsReport = (props) => {
38
48
  React.createElement(Select_1.Select, { "data-name": "select-format", options: formatOptions, value: props?.report?.ReportFormat, placeholder: "Select Format", onChange: (value) => props.onChange({
39
49
  ...props.report,
40
50
  ReportFormat: value,
51
+ }) }))),
52
+ React.createElement(FormLayout_1.FormRow, { label: "Destination" },
53
+ React.createElement(rebass_1.Box, { maxWidth: 300 },
54
+ React.createElement(Select_1.Select, { "data-name": "select-destination", options: destinationOptions, value: props?.report?.ExportDestination, placeholder: "Select Format", onChange: (value) => props.onChange({
55
+ ...props.report,
56
+ ExportDestination: value,
41
57
  }) }))))))));
42
58
  };
43
59
  exports.ScheduleSettingsReport = ScheduleSettingsReport;
@@ -43,6 +43,10 @@ const getScheduleSettingsValues = (data) => {
43
43
  label: 'Report Format',
44
44
  value: report?.ReportFormat || 'Not Specified',
45
45
  },
46
+ {
47
+ label: 'Export Destination',
48
+ value: report?.ExportDestination || 'Download',
49
+ },
46
50
  ];
47
51
  }
48
52
  if (data.ScheduleType === Enums_1.ScheduleType.ipushpull) {
@@ -17,7 +17,8 @@ const ScheduleSettingsWizard = (props) => {
17
17
  }
18
18
  if (data?.ScheduleType === Enums_1.ScheduleType.Report) {
19
19
  const allFormats = api.exportApi.getAvailableSystemFormats();
20
- return (React.createElement(ScheduleSettingsReport_1.ScheduleSettingsReport, { allReports: allReports ?? [], allFormats: allFormats ?? [], report: data, onChange: props.onChange }));
20
+ const allDestinations = api.exportApi.getAllExportDestinations();
21
+ return (React.createElement(ScheduleSettingsReport_1.ScheduleSettingsReport, { allReports: allReports ?? [], allFormats: allFormats ?? [], allDestinations: allDestinations ?? [], report: data, onChange: props.onChange }));
21
22
  }
22
23
  if (data?.ScheduleType === Enums_1.ScheduleType.ipushpull) {
23
24
  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
+ }>;