@adaptabletools/adaptable 18.0.0-canary.27 → 18.0.0-canary.29

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 (83) hide show
  1. package/base.css +3 -13
  2. package/base.css.map +1 -1
  3. package/index.css +3 -13
  4. package/index.css.map +1 -1
  5. package/package.json +1 -1
  6. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -0
  7. package/src/AdaptableOptions/MenuOptions.d.ts +3 -3
  8. package/src/Api/GridApi.d.ts +4 -1
  9. package/src/Api/Implementation/ColumnApiImpl.js +6 -6
  10. package/src/Api/Implementation/ConfigApiImpl.js +0 -1
  11. package/src/Api/Implementation/ExpressionApiImpl.js +12 -12
  12. package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
  13. package/src/Api/Implementation/GridApiImpl.js +8 -3
  14. package/src/Api/Implementation/ScopeApiImpl.js +4 -4
  15. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +14 -5
  16. package/src/Api/Implementation/UserInterfaceApiImpl.js +26 -4
  17. package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -1
  18. package/src/Api/Internal/AdaptableInternalApi.js +2 -6
  19. package/src/Api/Internal/ColumnFilterInternalApi.js +2 -2
  20. package/src/Api/Internal/DashboardInternalApi.js +2 -2
  21. package/src/Api/Internal/FormatColumnInternalApi.js +11 -5
  22. package/src/Api/Internal/GridFilterInternalApi.d.ts +2 -2
  23. package/src/Api/Internal/GridFilterInternalApi.js +2 -2
  24. package/src/Api/Internal/LayoutInternalApi.js +1 -1
  25. package/src/Api/UserInterfaceApi.d.ts +15 -2
  26. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  27. package/src/PredefinedConfig/Common/Fdc3Intent.d.ts +2 -2
  28. package/src/PredefinedConfig/Common/Menu.d.ts +4 -4
  29. package/src/PredefinedConfig/Common/Menu.js +30 -17
  30. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +3 -3
  31. package/src/PredefinedConfig/FormatColumnState.d.ts +4 -0
  32. package/src/PredefinedConfig/PopupState.d.ts +1 -2
  33. package/src/PredefinedConfig/StyledColumnState.d.ts +5 -0
  34. package/src/PredefinedConfig/SystemState.d.ts +4 -2
  35. package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -13
  36. package/src/Redux/ActionsReducers/PopupRedux.js +0 -19
  37. package/src/Redux/ActionsReducers/SystemRedux.d.ts +9 -3
  38. package/src/Redux/ActionsReducers/SystemRedux.js +8 -5
  39. package/src/Strategy/ColumnFilterModule.js +1 -1
  40. package/src/Strategy/ColumnInfoModule.js +2 -2
  41. package/src/Strategy/ExportModule.d.ts +0 -1
  42. package/src/Strategy/ExportModule.js +39 -28
  43. package/src/Strategy/GridInfoModule.js +1 -1
  44. package/src/Strategy/LayoutModule.d.ts +1 -8
  45. package/src/Strategy/LayoutModule.js +11 -121
  46. package/src/Strategy/StyledColumnModule.js +14 -10
  47. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +1 -0
  48. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +4 -2
  49. package/src/Utilities/Interface/MessagePopups.d.ts +0 -3
  50. package/src/Utilities/Services/RowSummaryService.d.ts +22 -0
  51. package/src/Utilities/Services/RowSummaryService.js +141 -0
  52. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
  53. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +11 -2
  54. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -1
  55. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +14 -10
  56. package/src/agGrid/AdaptableAgGrid.js +2 -1
  57. package/src/agGrid/AgGridColumnAdapter.js +19 -13
  58. package/src/agGrid/AgGridMenuAdapter.d.ts +6 -0
  59. package/src/agGrid/AgGridMenuAdapter.js +240 -106
  60. package/src/agGrid/BadgeRenderer.js +7 -1
  61. package/src/agGrid/PercentBarRenderer.js +3 -1
  62. package/src/components/CheckBox/index.js +1 -1
  63. package/src/components/ProgressIndicator/ProgressIndicator.js +15 -6
  64. package/src/components/icons/copy.d.ts +3 -0
  65. package/src/components/icons/copy.js +4 -0
  66. package/src/components/icons/filter-off.d.ts +3 -0
  67. package/src/components/icons/filter-off.js +4 -0
  68. package/src/components/icons/grid-info.d.ts +3 -0
  69. package/src/components/icons/grid-info.js +4 -0
  70. package/src/components/icons/index.js +12 -0
  71. package/src/components/icons/select-all.d.ts +3 -0
  72. package/src/components/icons/select-all.js +4 -0
  73. package/src/components/icons/select-fwd.d.ts +3 -0
  74. package/src/components/icons/select-fwd.js +4 -0
  75. package/src/components/icons/select-off.d.ts +3 -0
  76. package/src/components/icons/select-off.js +4 -0
  77. package/src/env.js +2 -2
  78. package/src/metamodel/adaptable.metamodel.js +1 -1
  79. package/src/parser/src/parser.js +1218 -55
  80. package/src/parser/src/predicate/mapQlPredicateToExpression.js +1 -3
  81. package/src/parser/src/types.js +1 -2
  82. package/src/types.d.ts +1 -1
  83. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -4,10 +4,11 @@
4
4
  export const ADAPTABLE_COLUMN_MENU_ITEMS = [
5
5
  'calculated-column-edit',
6
6
  'cell-summary-show',
7
+ 'column-group',
8
+ 'column-filter-group',
7
9
  'column-filter-bar-hide',
8
10
  'column-filter-bar-show',
9
11
  'column-filter-clear',
10
- 'column-filter-on-cell-value',
11
12
  'column-filter-suspend',
12
13
  'column-filter-unsuspend',
13
14
  'column-info-show',
@@ -26,17 +27,18 @@ export const ADAPTABLE_COLUMN_MENU_ITEMS = [
26
27
  'format-column-add',
27
28
  'format-column-edit',
28
29
  'free-text-column-edit',
30
+ 'grid-group',
29
31
  'grid-info-show',
30
32
  'layout-column-caption-change',
31
33
  'layout-column-hide',
32
34
  'layout-edit',
33
- 'layout-select-actions',
34
35
  'layout-column-select',
35
36
  'layout-column-select-preserve',
36
37
  'layout-column-select-reset',
37
- 'layout-select-all',
38
+ 'layout-grid-select',
38
39
  'plus-minus-add',
39
40
  'settings-panel-open',
41
+ 'styling-group',
40
42
  'styled-column-badge-add',
41
43
  'styled-column-badge-edit',
42
44
  'styled-column-gradient-add',
@@ -52,11 +54,12 @@ export const ADAPTABLE_COLUMN_MENU_ITEMS = [
52
54
  * List of Shipped Adaptable Context Menu Items
53
55
  */
54
56
  export const ADAPTABLE_CONTEXT_MENU_ITEMS = [
55
- 'menu-group-parent',
57
+ 'menu-group',
56
58
  'alert-clear',
57
59
  'bulk-update-apply',
58
60
  'calculated-column-edit',
59
61
  'cell-summary-show',
62
+ 'column-group',
60
63
  'column-filter-on-cell-value',
61
64
  'column-filter-clear',
62
65
  'column-filter-suspend',
@@ -72,29 +75,39 @@ export const ADAPTABLE_CONTEXT_MENU_ITEMS = [
72
75
  'dashboard-hide',
73
76
  'dashboard-show',
74
77
  'data-import',
75
- 'export-cells-clipboard',
76
- 'export-cells-csv',
77
- 'export-cells-excel',
78
- 'export-cells-json',
79
- 'export-cells-table',
80
- 'export-cells-custom-destination',
81
- 'export-rows-clipboard',
82
- 'export-rows-csv',
83
- 'export-rows-excel',
84
- 'export-rows-json',
85
- 'export-rows-table',
86
- 'export-rows-custom-destination',
78
+ 'edit-group',
79
+ 'export-visual-data-excel',
80
+ 'export-all-data-excel',
81
+ 'export-all-data-csv',
82
+ 'export-all-data-clipboard',
83
+ 'export-all-data-json',
84
+ 'export-all-data-table',
85
+ 'export-current-data-excel',
86
+ 'export-current-data-csv',
87
+ 'export-current-data-clipboard',
88
+ 'export-current-data-json',
89
+ 'export-current-data-table',
90
+ 'export-selected-cells-excel',
91
+ 'export-selected-cells-csv',
92
+ 'export-selected-cells-clipboard',
93
+ 'export-selected-cells-json',
94
+ 'export-selected-cells-table',
95
+ 'export-selected-rows-excel',
96
+ 'export-selected-rows-csv',
97
+ 'export-selected-rows-clipboard',
98
+ 'export-selected-rows-json',
99
+ 'export-selected-rows-table',
87
100
  'fdc3-broadcast',
88
101
  'fdc3-raise-intent',
89
102
  'flashing-cell-clear',
90
103
  'flashing-row-clear',
104
+ 'grid-group',
91
105
  'grid-info-show',
92
106
  'layout-aggregated-view',
93
107
  'layout-auto-size',
94
108
  'layout-clear-selection',
95
109
  'layout-edit',
96
110
  'layout-select-all',
97
- 'layout-grid-actions',
98
111
  'note-add',
99
112
  'note-remove',
100
113
  'settings-panel-open',
@@ -18,9 +18,9 @@ export interface TransposeConfig {
18
18
  */
19
19
  visibleColumns?: boolean;
20
20
  /**
21
- * Only show curerntly visible Rows
22
- * @defaultValue false
23
- */
21
+ * Only show curerntly visible Rows
22
+ * @defaultValue false
23
+ */
24
24
  visibleRows?: boolean;
25
25
  /**
26
26
  * Autosize columns in transposed view
@@ -45,6 +45,10 @@ export interface FormatColumn extends SuspendableObject {
45
45
  * @defaultValue false
46
46
  */
47
47
  IncludeGroupedRows?: boolean;
48
+ /**
49
+ * Wehther to include Row Summary Rows
50
+ */
51
+ IncludeRowSummaries?: boolean;
48
52
  }
49
53
  /**
50
54
  * The Format Column Rule - can be either a Predicate or a BooleanExpression
@@ -1,4 +1,4 @@
1
- import { ScreenPopup, ConfirmationPopup, PromptPopup, LoadingPopup, WindowPopup, FormPopup } from '../Utilities/Interface/MessagePopups';
1
+ import { ScreenPopup, ConfirmationPopup, PromptPopup, WindowPopup, FormPopup } from '../Utilities/Interface/MessagePopups';
2
2
  import { InternalState } from './InternalState';
3
3
  /**
4
4
  * Internal state to manage open popups - NOT persisted by Redux
@@ -9,5 +9,4 @@ export interface PopupState extends InternalState {
9
9
  FormPopup: FormPopup;
10
10
  ConfirmationPopup: ConfirmationPopup;
11
11
  PromptPopup: PromptPopup;
12
- LoadingPopup: LoadingPopup;
13
12
  }
@@ -41,6 +41,11 @@ export interface StyledColumn extends SuspendableObject {
41
41
  * @defaultValue false
42
42
  */
43
43
  IncludeGroupedRows?: boolean;
44
+ /**
45
+ * Includes Row Summaries in Styled Column
46
+ * @defaultValue false
47
+ */
48
+ IncludeRowSummaries?: boolean;
44
49
  }
45
50
  /**
46
51
  * Style used to display Percent Bars in Special Column Style
@@ -1,7 +1,7 @@
1
1
  import { PreviewInfo } from '../Utilities/Interface/Preview';
2
2
  import { InternalState } from './InternalState';
3
3
  import { BulkUpdateValidationResult } from '../Strategy/Interface/IBulkUpdateModule';
4
- import { CellAddress, CellDataChangedInfo, GridCell, SmartEditOperation } from '../types';
4
+ import { AdaptableFrameworkComponent, CellAddress, CellDataChangedInfo, CustomRenderFunction, GridCell, SmartEditOperation } from '../types';
5
5
  import type { IPushPullState, IPushPullReport, IPushPullDomain } from './IPushPullState';
6
6
  import { OpenFinState, OpenFinReport } from './OpenFinState';
7
7
  import { AdaptableAlert } from './Common/AdaptableAlert';
@@ -112,5 +112,7 @@ export interface SystemState extends InternalState, IPushPullState, OpenFinState
112
112
  }
113
113
  export interface ProgressIndicator {
114
114
  active: boolean;
115
- label: string;
115
+ text?: string;
116
+ render?: CustomRenderFunction;
117
+ frameworkComponent?: AdaptableFrameworkComponent;
116
118
  }
@@ -1,15 +1,13 @@
1
1
  import * as Redux from 'redux';
2
- import { PopupState } from '../../PredefinedConfig/PopupState';
3
- import { InputAction, UIPrompt, UIConfirmation } from '../../Utilities/Interface/MessagePopups';
4
- import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
5
- import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
6
2
  import { AdaptableAlert } from '../../PredefinedConfig/Common/AdaptableAlert';
7
- import { AdaptableForm, BaseContext } from '../../types';
8
3
  import { FormContext } from '../../PredefinedConfig/Common/FormContext';
4
+ import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
5
+ import { PopupState } from '../../PredefinedConfig/PopupState';
6
+ import { AdaptableForm, BaseContext } from '../../types';
7
+ import { InputAction, UIConfirmation, UIPrompt } from '../../Utilities/Interface/MessagePopups';
8
+ import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
9
9
  export declare const POPUP_SHOW_SCREEN = "POPUP_SHOW_SCREEN";
10
10
  export declare const POPUP_HIDE_SCREEN = "POPUP_HIDE_SCREEN";
11
- export declare const POPUP_SHOW_LOADING = "POPUP_SHOW_LOADING";
12
- export declare const POPUP_HIDE_LOADING = "POPUP_HIDE_LOADING";
13
11
  export declare const POPUP_SHOW_ALERT = "POPUP_SHOW_ALERT";
14
12
  export declare const POPUP_SHOW_PROMPT = "POPUP_SHOW_PROMPT";
15
13
  export declare const POPUP_HIDE_PROMPT = "POPUP_HIDE_PROMPT";
@@ -51,10 +49,6 @@ export interface PopupShowFormAction extends Redux.Action {
51
49
  export interface PopupHideFormAction extends Redux.Action {
52
50
  Id: string;
53
51
  }
54
- export interface PopupShowLoadingAction extends Redux.Action {
55
- }
56
- export interface PopupHideLoadingAction extends Redux.Action {
57
- }
58
52
  export interface PopupShowAlertAction extends Redux.Action {
59
53
  alert: AdaptableAlert;
60
54
  }
@@ -97,8 +91,6 @@ export declare const PopupShowForm: (config: {
97
91
  }) => PopupShowFormAction;
98
92
  export declare const PopupHideForm: (id: string) => PopupHideFormAction;
99
93
  export declare const PopupShowAlert: (alert: AdaptableAlert) => PopupShowAlertAction;
100
- export declare const PopupShowLoading: () => PopupShowLoadingAction;
101
- export declare const PopupHideLoading: () => PopupHideLoadingAction;
102
94
  export declare const PopupShowPrompt: (prompt: UIPrompt) => PopupShowPromptAction;
103
95
  export declare const PopupHidePrompt: () => PopupHidePromptAction;
104
96
  export declare const PopupConfirmPrompt: (inputText: string) => PopupConfirmPromptAction;
@@ -1,7 +1,5 @@
1
1
  export const POPUP_SHOW_SCREEN = 'POPUP_SHOW_SCREEN';
2
2
  export const POPUP_HIDE_SCREEN = 'POPUP_HIDE_SCREEN';
3
- export const POPUP_SHOW_LOADING = 'POPUP_SHOW_LOADING';
4
- export const POPUP_HIDE_LOADING = 'POPUP_HIDE_LOADING';
5
3
  export const POPUP_SHOW_ALERT = 'POPUP_SHOW_ALERT';
6
4
  export const POPUP_SHOW_PROMPT = 'POPUP_SHOW_PROMPT';
7
5
  export const POPUP_HIDE_PROMPT = 'POPUP_HIDE_PROMPT';
@@ -53,12 +51,6 @@ export const PopupShowAlert = (alert) => {
53
51
  alert: alert,
54
52
  };
55
53
  };
56
- export const PopupShowLoading = () => ({
57
- type: POPUP_SHOW_LOADING,
58
- });
59
- export const PopupHideLoading = () => ({
60
- type: POPUP_HIDE_LOADING,
61
- });
62
54
  export const PopupShowPrompt = (prompt) => ({
63
55
  type: POPUP_SHOW_PROMPT,
64
56
  prompt: prompt,
@@ -91,9 +83,6 @@ const initialState = {
91
83
  ComponentName: '',
92
84
  Params: null,
93
85
  },
94
- LoadingPopup: {
95
- ShowLoadingPopup: true,
96
- },
97
86
  ConfirmationPopup: {
98
87
  ShowConfirmationPopup: false,
99
88
  Msg: '',
@@ -229,14 +218,6 @@ export const PopupReducer = (state = initialState, action) => {
229
218
  ConfirmationPopup: newConfirmationPopup,
230
219
  });
231
220
  }
232
- case POPUP_SHOW_LOADING: {
233
- let newLoadingPopup = { ShowLoadingPopup: true };
234
- return Object.assign({}, state, { LoadingPopup: newLoadingPopup });
235
- }
236
- case POPUP_HIDE_LOADING: {
237
- let newLoadingPopup = { ShowLoadingPopup: false };
238
- return Object.assign({}, state, { LoadingPopup: newLoadingPopup });
239
- }
240
221
  case POPUP_CLEAR_PARAM: {
241
222
  let newScreenPopup = {
242
223
  ShowScreenPopup: state.ScreenPopup.ShowScreenPopup,
@@ -13,7 +13,7 @@ import { SummaryOperation } from '../../PredefinedConfig/Common/Enums';
13
13
  import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
14
14
  import { RowsHighlightInfo } from '../../PredefinedConfig/Common/RowsHighlightInfo';
15
15
  import { SmartEditOperation } from '../../AdaptableOptions/EditOptions';
16
- import { DataImportedInfo, DataSet, CellAddress } from '../../types';
16
+ import { DataImportedInfo, DataSet, CellAddress, CustomRenderFunction, AdaptableFrameworkComponent } from '../../types';
17
17
  import { ChartModel } from '@ag-grid-community/core';
18
18
  import { CachedQuery } from '../../PredefinedConfig/NamedQueryState';
19
19
  export declare const FLASHING_CELL_ROW_KEY = "__ROW";
@@ -200,7 +200,9 @@ export interface SystemCellSummaryChangeOperationAction extends Redux.Action {
200
200
  cellSummaryOperation: SummaryOperation | string;
201
201
  }
202
202
  export interface SystemProgressIndicatorShowAction extends Redux.Action {
203
- label: string;
203
+ text?: string;
204
+ render?: CustomRenderFunction;
205
+ frameworkComponent?: AdaptableFrameworkComponent;
204
206
  }
205
207
  export interface SystemProgressIndicatorHideAction extends Redux.Action {
206
208
  }
@@ -302,7 +304,11 @@ export declare const SetNewColumnListOrder: (VisibleColumnList: string[]) => Set
302
304
  export declare const SetLastAppliedShortcut: (gridCell: GridCell | undefined) => SetLastAppliedShortcutAction;
303
305
  export declare const SystemCachedQueryAdd: (cachedQuery: CachedQuery) => SystemCachedQueryAddAction;
304
306
  export declare const SystemCellSummaryChangeOperation: (cellSummaryOperation: SummaryOperation | string) => SystemCellSummaryChangeOperationAction;
305
- export declare const SystemProgressIndicatorShow: (label: string) => SystemProgressIndicatorShowAction;
307
+ export declare const SystemProgressIndicatorShow: (config: {
308
+ text?: string;
309
+ render?: CustomRenderFunction;
310
+ frameworkComponent?: AdaptableFrameworkComponent;
311
+ }) => SystemProgressIndicatorShowAction;
306
312
  export declare const SystemProgressIndicatorHide: () => SystemProgressIndicatorHideAction;
307
313
  export declare const SystemLicenseShowWatermark: (text: string) => SystemLicenseShowWatermarkAction;
308
314
  export declare const SystemLicenseDisablePersistence: () => SystemLicenseDisablePersistenceAction;
@@ -220,9 +220,11 @@ export const SystemCellSummaryChangeOperation = (cellSummaryOperation) => ({
220
220
  type: SYSTEM_CELL_SUMMARY_CHANGE_OPERATION,
221
221
  cellSummaryOperation: cellSummaryOperation,
222
222
  });
223
- export const SystemProgressIndicatorShow = (label) => ({
223
+ export const SystemProgressIndicatorShow = (config) => ({
224
224
  type: SYSTEM_PROGRESS_INDICATOR_SHOW,
225
- label,
225
+ text: config.text,
226
+ render: config.render,
227
+ frameworkComponent: config.frameworkComponent,
226
228
  });
227
229
  export const SystemProgressIndicatorHide = () => ({
228
230
  type: SYSTEM_PROGRESS_INDICATOR_HIDE,
@@ -370,7 +372,7 @@ const initialState = {
370
372
  SmartEditValue: 1,
371
373
  SmartEditOperation: MathOperation.Multiply,
372
374
  CellSummaryOperation: CELL_SUMMARY_DEFAULT_OPERATION,
373
- ProgressIndicator: { active: false, label: '' },
375
+ ProgressIndicator: { active: false, text: '' },
374
376
  License: {
375
377
  watermark: { show: false, text: null },
376
378
  disablePersistence: false,
@@ -627,7 +629,9 @@ export const SystemReducer = (state = initialState, action) => {
627
629
  const updatedState = {
628
630
  ProgressIndicator: {
629
631
  active: true,
630
- label: actionTypedAdd.label,
632
+ text: actionTypedAdd.text,
633
+ render: actionTypedAdd.render,
634
+ frameworkComponent: actionTypedAdd.frameworkComponent,
631
635
  },
632
636
  };
633
637
  return Object.assign({}, state, updatedState);
@@ -636,7 +640,6 @@ export const SystemReducer = (state = initialState, action) => {
636
640
  const updatedState = {
637
641
  ProgressIndicator: {
638
642
  active: false,
639
- label: '',
640
643
  },
641
644
  };
642
645
  return Object.assign({}, state, updatedState);
@@ -47,7 +47,7 @@ export class ColumnFilterModule extends AdaptableModuleBase {
47
47
  const isFilterVisible = this.api.columnFilterApi.isQuickFilterVisible();
48
48
  if (this.isModuleEditable() &&
49
49
  this.api.optionsApi.getColumnFilterOptions().useAdaptableColumnFiltering) {
50
- columnFilterMenuItems.push(this.createMenuItemReduxAction(isFilterVisible ? 'column-filter-bar-hide' : 'column-filter-bar-show', isFilterVisible ? 'Hide Filter Bar' : 'Show Filter Bar', isFilterVisible ? 'unchecked' : 'check', isFilterVisible
50
+ columnFilterMenuItems.push(this.createMenuItemReduxAction(isFilterVisible ? 'column-filter-bar-hide' : 'column-filter-bar-show', isFilterVisible ? 'Hide Filter Bar' : 'Show Filter Bar', isFilterVisible ? 'filter-off' : 'filter', isFilterVisible
51
51
  ? SystemRedux.SystemQuickFilterBarHide()
52
52
  : SystemRedux.SystemQuickFilterBarShow()));
53
53
  }
@@ -18,7 +18,7 @@ export class ColumnInfoModule extends AdaptableModuleBase {
18
18
  Name: 'column-info-show',
19
19
  Label: 'Column Info',
20
20
  ComponentName: this.moduleInfo.Popup,
21
- Icon: this.moduleInfo.Glyph,
21
+ Icon: 'info',
22
22
  PopupParams: columnPopUpParams,
23
23
  }),
24
24
  ];
@@ -35,7 +35,7 @@ export class ColumnInfoModule extends AdaptableModuleBase {
35
35
  Name: 'column-info-show',
36
36
  Label: 'Column Info',
37
37
  ComponentName: this.moduleInfo.Popup,
38
- Icon: this.moduleInfo.Glyph,
38
+ Icon: 'info',
39
39
  PopupParams: columnPopUpParams,
40
40
  }),
41
41
  ];
@@ -14,7 +14,6 @@ export declare class ExportModule extends AdaptableModuleBase implements IExport
14
14
  getReferencedNamedQueryNames(report: Report): string[];
15
15
  createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
16
16
  private buildReportMenuItems;
17
- private getMenuName;
18
17
  export(report: Report, exportDestination: ExportDestination | string): Promise<void>;
19
18
  private preProcessExport;
20
19
  private isCustomDestination;
@@ -3,7 +3,7 @@ import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  import { ExportDestination } from '../PredefinedConfig/Common/Enums';
4
4
  import { Helper } from '../Utilities/Helpers/Helper';
5
5
  import * as ExportRedux from '../Redux/ActionsReducers/ExportRedux';
6
- import { SELECTED_CELLS_REPORT, SELECTED_ROWS_REPORT, VISUAL_DATA_REPORT, } from '../Utilities/Constants/GeneralConstants';
6
+ import { ALL_DATA_REPORT, CURRENT_DATA_REPORT, SELECTED_CELLS_REPORT, SELECTED_ROWS_REPORT, VISUAL_DATA_REPORT, } from '../Utilities/Constants/GeneralConstants';
7
7
  import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
8
8
  import StringExtensions from '../Utilities/Extensions/StringExtensions';
9
9
  import * as PopupRedux from '../Redux/ActionsReducers/PopupRedux';
@@ -14,7 +14,7 @@ import { getExportRowsViewItems } from './Utilities/Export/getExportRowsViewItem
14
14
  import { ReportExportDropdown } from '../View/Export/ReportExportDropdown';
15
15
  import { getObjectTagsViewItems } from './Utilities/getObjectTagsViewItems';
16
16
  import { ExportSelector } from '../View/Export/ExportSelector';
17
- import { SystemProgressIndicatorShow, SystemVisualExportBegin, SystemVisualExportEnd, } from '../Redux/ActionsReducers/SystemRedux';
17
+ import { SystemVisualExportBegin, SystemVisualExportEnd, } from '../Redux/ActionsReducers/SystemRedux';
18
18
  import { SHOW_EXPORT_TABLE } from '../View/Components/Popups/WindowPopups/windowFactory';
19
19
  import { createUuid } from '../PredefinedConfig/Uuid';
20
20
  import { waitForTimeout } from '../Utilities/waitForTimeout';
@@ -46,58 +46,69 @@ export class ExportModule extends AdaptableModuleBase {
46
46
  return;
47
47
  }
48
48
  let returnMenuItems = [];
49
- const canExportCells = menuContext.selectedCellInfo &&
49
+ const availableSystemReports = this.api.exportApi.getAvailableSystemReports();
50
+ if (availableSystemReports.includes(VISUAL_DATA_REPORT)) {
51
+ returnMenuItems.push(this.createMenuItemClickFunction('export-visual-data-excel', 'Excel', this.moduleInfo.Glyph, () => this.export(this.api.exportApi.getReportByName(VISUAL_DATA_REPORT), ExportDestination.Excel)));
52
+ }
53
+ if (availableSystemReports.includes(ALL_DATA_REPORT)) {
54
+ const allDataReport = this.api.exportApi.getReportByName(ALL_DATA_REPORT);
55
+ returnMenuItems.push(...this.buildReportMenuItems(allDataReport));
56
+ }
57
+ if (availableSystemReports.includes(CURRENT_DATA_REPORT)) {
58
+ const currentDataReport = this.api.exportApi.getReportByName(CURRENT_DATA_REPORT);
59
+ returnMenuItems.push(...this.buildReportMenuItems(currentDataReport));
60
+ }
61
+ const canExportCells = availableSystemReports.includes(SELECTED_CELLS_REPORT) &&
62
+ menuContext.selectedCellInfo &&
50
63
  ArrayExtensions.IsNotNullOrEmpty(menuContext.selectedCellInfo.columns) &&
51
64
  ArrayExtensions.IsNotNullOrEmpty(menuContext.selectedCellInfo.gridCells);
52
- const canExportRows = menuContext.selectedRowInfo &&
65
+ if (canExportCells) {
66
+ const selectedCellReport = this.api.exportApi.getReportByName(SELECTED_CELLS_REPORT);
67
+ returnMenuItems.push(...this.buildReportMenuItems(selectedCellReport));
68
+ }
69
+ const canExportRows = availableSystemReports.includes(SELECTED_ROWS_REPORT) &&
70
+ menuContext.selectedRowInfo &&
53
71
  ArrayExtensions.IsNotNullOrEmpty(menuContext.selectedRowInfo.gridRows) &&
54
72
  menuContext.gridCell &&
55
73
  menuContext.gridCell.primaryKeyValue &&
56
74
  menuContext.isSelectedRow;
57
- if (canExportCells) {
58
- const selectedCellReport = this.api.exportApi.getReportByName(SELECTED_CELLS_REPORT);
59
- returnMenuItems.push(...this.buildReportMenuItems(selectedCellReport, 'cells'));
60
- }
61
75
  if (canExportRows) {
62
76
  const selectedRowReport = this.api.exportApi.getReportByName(SELECTED_ROWS_REPORT);
63
- returnMenuItems.push(...this.buildReportMenuItems(selectedRowReport, 'rows'));
77
+ returnMenuItems.push(...this.buildReportMenuItems(selectedRowReport));
64
78
  }
65
79
  return returnMenuItems;
66
80
  }
67
- buildReportMenuItems(report, selectionType) {
81
+ buildReportMenuItems(report) {
82
+ // a bit convoluted, but ce la vie, that's what happens when you use enums instead of union types
83
+ // convert to lowercase and replace empty spaces with hyphens
84
+ const adjustName = (name = '') => {
85
+ const result = name.replace(/ /g, '-');
86
+ return result.toLowerCase();
87
+ };
88
+ const getMenuItemName = (reportName, destination) => {
89
+ return `export-${adjustName(reportName)}-${adjustName(destination)}`;
90
+ };
68
91
  const menuItems = [];
69
92
  for (const destination of this.api.exportApi.getAvailableExportDestinations()) {
70
- menuItems.push(this.createMenuItemClickFunction(this.getMenuName(destination, selectionType), destination, this.moduleInfo.Glyph, () => this.export(report, destination)));
93
+ menuItems.push(this.createMenuItemClickFunction(getMenuItemName(report.Name, destination), destination, this.moduleInfo.Glyph, () => this.export(report, destination)));
71
94
  }
72
95
  for (const customDestination of this.api.exportApi.getCustomDestinations()) {
73
- menuItems.push(this.createMenuItemClickFunction(`export-${selectionType}-custom-destination`, customDestination.name, this.moduleInfo.Glyph, () => this.export(report, customDestination.name)));
96
+ menuItems.push(this.createMenuItemClickFunction(getMenuItemName(report.Name, customDestination.name), customDestination.name, this.moduleInfo.Glyph, () => this.export(report, customDestination.name)));
74
97
  }
75
98
  return menuItems;
76
99
  }
77
- getMenuName(exportDestination, selectionType) {
78
- switch (exportDestination) {
79
- case ExportDestination.CSV:
80
- return `export-${selectionType}-csv`;
81
- case ExportDestination.Clipboard:
82
- return `export-${selectionType}-clipboard`;
83
- case ExportDestination.Excel:
84
- return `export-${selectionType}-excel`;
85
- case ExportDestination.JSON:
86
- return `export-${selectionType}-json`;
87
- case ExportDestination.Table:
88
- return `export-${selectionType}-table`;
89
- }
90
- }
91
100
  async export(report, exportDestination) {
92
101
  var _a;
93
102
  const cleanupExportProcess = () => {
94
103
  this.api.internalApi.dispatchReduxAction(SystemVisualExportEnd());
95
- this.api.internalApi.hideProgressIndicator();
104
+ this.api.userInterfaceApi.hideProgressIndicator();
96
105
  };
97
106
  if (report.Name === VISUAL_DATA_REPORT) {
98
107
  this.api.internalApi.dispatchReduxAction(SystemVisualExportBegin());
99
108
  }
100
- this.api.internalApi.dispatchReduxAction(SystemProgressIndicatorShow(`${report.Name} Export in progress...`));
109
+ this.api.userInterfaceApi.showProgressIndicator({
110
+ text: `${report.Name} Export in progress...`,
111
+ });
101
112
  try {
102
113
  // waitForTimeout required to give the ProgressIndicator rendering a head-start (see rAF in ProgressIndicator implementation)
103
114
  await waitForTimeout(16);
@@ -2,7 +2,7 @@ import { AdaptableModuleBase } from './AdaptableModuleBase';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  export class GridInfoModule extends AdaptableModuleBase {
4
4
  constructor(api) {
5
- super(ModuleConstants.GridInfoModuleId, ModuleConstants.GridInfoFriendlyName, 'align-justify', 'GridInfoPopup', 'Display information about the Grid, the Options selected and all columns', api);
5
+ super(ModuleConstants.GridInfoModuleId, ModuleConstants.GridInfoFriendlyName, 'grid-info', 'GridInfoPopup', 'Display information about the Grid, the Options selected and all columns', api);
6
6
  }
7
7
  getViewAccessLevel() {
8
8
  return 'Full';
@@ -7,13 +7,11 @@ import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
7
7
  import { AdaptableApi } from '../Api/AdaptableApi';
8
8
  import { AdaptableModuleView, IModule, TeamSharingReferences } from './Interface/IModule';
9
9
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
10
- import { AggregatedScalarLiveValue } from '../Utilities/Services/AggregatedScalarLiveValue';
11
10
  export declare class LayoutModule extends AdaptableModuleBase implements IModule {
12
- cachedCellSummary: Map<string, AggregatedScalarLiveValue>;
13
11
  protected LayoutState: LayoutState;
12
+ private rowSummaryService;
14
13
  constructor(api: AdaptableApi);
15
14
  onAdaptableReady(): void;
16
- rowSummariesSubscriptions(): void;
17
15
  getModuleAdaptableObjects(): AdaptableObject[];
18
16
  getExplicitlyReferencedColumnIds(layout: Layout): string[];
19
17
  getTeamSharingReferences(adaptableObject: AdaptableObject): TeamSharingReferences;
@@ -45,9 +43,4 @@ export declare class LayoutModule extends AdaptableModuleBase implements IModule
45
43
  getViewProperties(): AdaptableModuleView;
46
44
  handleLayoutChange(): void;
47
45
  getReferencedNamedQueryNames(layout: Layout): string[];
48
- /**
49
- *
50
- * @param colId optional to evaluate only one column
51
- */
52
- private evaluateRowSummary;
53
46
  }