@adaptabletools/adaptable-cjs 18.0.0-canary.15 → 18.0.0-canary.17

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 (84) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +0 -2
  3. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +7 -0
  4. package/src/AdaptableOptions/MenuOptions.d.ts +5 -1
  5. package/src/AdaptableOptions/MenuOptions.js +72 -71
  6. package/src/Api/GridApi.d.ts +1 -1
  7. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
  8. package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
  9. package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
  10. package/src/Api/Implementation/GridApiImpl.js +1 -1
  11. package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -2
  12. package/src/Api/Internal/AdaptableInternalApi.js +0 -3
  13. package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
  14. package/src/PredefinedConfig/Common/Enums.js +1 -0
  15. package/src/PredefinedConfig/Common/Menu.d.ts +10 -1
  16. package/src/PredefinedConfig/Common/Menu.js +72 -0
  17. package/src/PredefinedConfig/Common/RowSummary.d.ts +3 -1
  18. package/src/PredefinedConfig/Common/RowSummary.js +17 -1
  19. package/src/Redux/ActionsReducers/LayoutRedux.js +12 -10
  20. package/src/Strategy/AdaptableModuleBase.d.ts +6 -5
  21. package/src/Strategy/AdaptableModuleBase.js +9 -8
  22. package/src/Strategy/AlertModule.js +1 -1
  23. package/src/Strategy/BulkUpdateModule.js +1 -1
  24. package/src/Strategy/CalculatedColumnModule.js +1 -1
  25. package/src/Strategy/CellSummaryModule.d.ts +7 -6
  26. package/src/Strategy/CellSummaryModule.js +37 -12
  27. package/src/Strategy/ColumnFilterModule.js +8 -7
  28. package/src/Strategy/ColumnInfoModule.js +2 -0
  29. package/src/Strategy/CommentModule.js +2 -2
  30. package/src/Strategy/CustomSortModule.js +2 -1
  31. package/src/Strategy/DashboardModule.js +8 -7
  32. package/src/Strategy/DataImportModule.d.ts +1 -1
  33. package/src/Strategy/DataImportModule.js +5 -5
  34. package/src/Strategy/ExportModule.d.ts +1 -0
  35. package/src/Strategy/ExportModule.js +17 -2
  36. package/src/Strategy/Fdc3Module.js +3 -0
  37. package/src/Strategy/FlashingCellModule.js +4 -4
  38. package/src/Strategy/FormatColumnModule.js +6 -4
  39. package/src/Strategy/FreeTextColumnModule.js +1 -1
  40. package/src/Strategy/GridInfoModule.js +2 -0
  41. package/src/Strategy/LayoutModule.js +31 -22
  42. package/src/Strategy/NoteModule.js +2 -2
  43. package/src/Strategy/PlusMinusModule.js +1 -1
  44. package/src/Strategy/SettingsPanelModule.js +3 -3
  45. package/src/Strategy/SmartEditModule.js +1 -1
  46. package/src/Strategy/StyledColumnModule.d.ts +1 -0
  47. package/src/Strategy/StyledColumnModule.js +23 -5
  48. package/src/Strategy/SystemStatusModule.js +2 -2
  49. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -2
  50. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +125 -3
  51. package/src/Utilities/MenuItem.d.ts +7 -4
  52. package/src/Utilities/MenuItem.js +6 -3
  53. package/src/Utilities/Services/LicenseService/index.js +1 -1
  54. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  55. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  56. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  57. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +46 -0
  58. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  59. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  60. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  61. package/src/View/Components/ValueSelector/index.js +1 -1
  62. package/src/View/GridFilter/GridFilterViewPanel.js +2 -2
  63. package/src/View/Layout/Wizard/LayoutWizard.js +25 -1
  64. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  65. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +1 -0
  66. package/src/View/Layout/Wizard/sections/RowSummarySection.js +29 -4
  67. package/src/agGrid/AdaptableAgGrid.d.ts +0 -2
  68. package/src/agGrid/AdaptableAgGrid.js +14 -14
  69. package/src/agGrid/AgGridMenuAdapter.js +7 -5
  70. package/src/agGrid/defaultAdaptableOptions.js +1 -0
  71. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  72. package/src/agGrid/weightedAverage.d.ts +0 -2
  73. package/src/agGrid/weightedAverage.js +1 -56
  74. package/src/components/Datepicker/index.js +10 -2
  75. package/src/components/Input/index.d.ts +1 -2
  76. package/src/components/Textarea/index.d.ts +2 -2
  77. package/src/env.js +2 -2
  78. package/src/metamodel/adaptable.metamodel.d.ts +6 -0
  79. package/src/metamodel/adaptable.metamodel.js +1 -1
  80. package/tsconfig.cjs.tsbuildinfo +1 -1
  81. package/src/Utilities/Services/Interface/ISummaryService.d.ts +0 -17
  82. package/src/Utilities/Services/Interface/ISummaryService.js +0 -15
  83. package/src/Utilities/Services/SummaryService.d.ts +0 -10
  84. package/src/Utilities/Services/SummaryService.js +0 -21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable-cjs",
3
- "version": "18.0.0-canary.15",
3
+ "version": "18.0.0-canary.17",
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",
@@ -31,7 +31,6 @@ import { AgGridAdapter } from '../agGrid/AgGridAdapter';
31
31
  import { AgGridColumnAdapter } from '../agGrid/AgGridColumnAdapter';
32
32
  import { AgGridMenuAdapter } from '../agGrid/AgGridMenuAdapter';
33
33
  import { RowEditService } from '../Utilities/Services/RowEditService';
34
- import { ISummaryService } from '../Utilities/Services/Interface/ISummaryService';
35
34
  /**
36
35
  * Contains AG Grid Options and Modules - used when instantiating AdapTable vanilla
37
36
  */
@@ -91,7 +90,6 @@ export interface IAdaptable {
91
90
  RowEditService: RowEditService;
92
91
  Fdc3Service: Fdc3Service;
93
92
  CellPopupService: CellPopupService;
94
- SummaryService: ISummaryService;
95
93
  /**
96
94
  * INTERNAL ADAPTABLE EVENTS
97
95
  * These are not called externally - for that we use eventapi
@@ -102,6 +102,13 @@ export interface ColumnFilterOptions<TData = any> {
102
102
  * @noCodeItem
103
103
  */
104
104
  showSuspendFilterButton?: boolean;
105
+ /**
106
+ * Show Date Picker (or Date Input) in Filter controls
107
+ * @gridInfoItem
108
+ * @noCodeItem
109
+ * @defaultValue true
110
+ */
111
+ showDatePicker?: boolean;
105
112
  }
106
113
  /**
107
114
  * Options for managing the Filter Bar (aka Quick Filter)
@@ -177,6 +177,10 @@ type ModuleGroup = {
177
177
  icon?: AdaptableIcon;
178
178
  title: string;
179
179
  };
180
- export declare const DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE: (AdaptableModule | ModuleGroup)[];
181
180
  export declare const DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE: (AdaptableModule | ModuleGroup)[];
181
+ /**
182
+ * Defines the order of Menu Items in the CONTEXT Menu
183
+ * The items commented out do not have a Context Menu Option
184
+ */
185
+ export declare const DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE: (AdaptableModule | ModuleGroup)[];
182
186
  export {};
@@ -1,99 +1,100 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE = exports.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE = void 0;
3
+ exports.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE = exports.DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
6
- exports.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE = [
7
- ModuleConstants.SettingsPanelModuleId,
6
+ exports.DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE = [
7
+ ModuleConstants.CalculatedColumnModuleId,
8
+ ModuleConstants.CellSummaryModuleId,
9
+ ModuleConstants.ColumnFilterModuleId,
10
+ ModuleConstants.ColumnInfoModuleId,
11
+ ModuleConstants.CustomSortModuleId,
8
12
  ModuleConstants.DashboardModuleId,
9
- ModuleConstants.ToolPanelModuleId,
10
- ModuleConstants.StatusBarModuleId,
11
- ModuleConstants.LayoutModuleId,
12
- ModuleConstants.FormatColumnModuleId,
13
- ModuleConstants.StyledColumnModuleId,
13
+ ModuleConstants.DataImportModuleId,
14
14
  ModuleConstants.FlashingCellModuleId,
15
- ModuleConstants.CustomSortModuleId,
16
- ModuleConstants.CellSummaryModuleId,
17
- ModuleConstants.Fdc3ModuleId,
15
+ ModuleConstants.FormatColumnModuleId,
16
+ ModuleConstants.FreeTextColumnModuleId,
18
17
  ModuleConstants.GridInfoModuleId,
19
- ModuleConstants.ColumnInfoModuleId,
18
+ ModuleConstants.LayoutModuleId,
19
+ ModuleConstants.PlusMinusModuleId,
20
+ ModuleConstants.SettingsPanelModuleId,
21
+ ModuleConstants.StyledColumnModuleId,
22
+ ModuleConstants.SystemStatusModuleId, // Single Item - Always present
23
+ /*
24
+ // Modules that dont provide a Column Menu
20
25
  ModuleConstants.AlertModuleId,
21
- ModuleConstants.CalculatedColumnModuleId,
22
- ModuleConstants.ExportModuleId,
23
- ModuleConstants.ColumnFilterModuleId,
24
- {
25
- title: 'Edit',
26
- icon: {
27
- name: 'edit',
28
- },
29
- modules: [ModuleConstants.SmartEditModuleId, ModuleConstants.BulkUpdateModuleId],
30
- },
31
- ModuleConstants.TeamSharingModuleId,
26
+ ModuleConstants.BulkUpdateModuleId,
27
+ ModuleConstants.ChartingModuleId,
28
+ ModuleConstants.CommentModuleId,
32
29
  ModuleConstants.DataChangeHistoryModuleId,
33
30
  ModuleConstants.DataSetModuleId,
34
- ModuleConstants.FreeTextColumnModuleId,
31
+ ModuleConstants.ExportModuleId,
32
+ ModuleConstants.Fdc3ModuleId,
33
+ ModuleConstants.GridFilterModuleId,
35
34
  ModuleConstants.NamedQueryModuleId,
35
+ ModuleConstants.NoteModuleId,
36
36
  ModuleConstants.QuickSearchModuleId,
37
- ModuleConstants.DataSetModuleId,
38
- ModuleConstants.AlertModuleId,
39
- ModuleConstants.SystemStatusModuleId,
40
- ModuleConstants.CalculatedColumnModuleId,
41
- ModuleConstants.FreeTextColumnModuleId,
42
- ModuleConstants.ExportModuleId,
43
- ModuleConstants.DataImportModuleId,
44
- ModuleConstants.DataChangeHistoryModuleId,
45
- ModuleConstants.PlusMinusModuleId,
46
- ModuleConstants.ShortcutModuleId,
47
- ModuleConstants.TeamSharingModuleId,
48
37
  ModuleConstants.ScheduleModuleId,
38
+ ModuleConstants.ShortcutModuleId,
39
+ ModuleConstants.SmartEditModuleId,
49
40
  ModuleConstants.StateManagementModuleId,
41
+ ModuleConstants.StatusBarModuleId,
42
+ ModuleConstants.TeamSharingModuleId,
50
43
  ModuleConstants.ThemeModuleId,
51
- ModuleConstants.ChartingModuleId,
52
- ModuleConstants.NoteModuleId,
53
- ModuleConstants.CommentModuleId,
54
- ];
55
- exports.DEFAULT_ADAPTABLE_COLUMN_MENU_STRUCTURE = [
56
- ModuleConstants.SettingsPanelModuleId,
57
- ModuleConstants.DashboardModuleId,
58
44
  ModuleConstants.ToolPanelModuleId,
59
- ModuleConstants.StatusBarModuleId,
60
- ModuleConstants.LayoutModuleId,
61
- ModuleConstants.FormatColumnModuleId,
62
- ModuleConstants.StyledColumnModuleId,
63
- ModuleConstants.FlashingCellModuleId,
64
- ModuleConstants.CustomSortModuleId,
65
- ModuleConstants.CellSummaryModuleId,
66
- ModuleConstants.Fdc3ModuleId,
67
- ModuleConstants.GridInfoModuleId,
68
- ModuleConstants.ColumnInfoModuleId,
45
+ */
46
+ ];
47
+ /**
48
+ * Defines the order of Menu Items in the CONTEXT Menu
49
+ * The items commented out do not have a Context Menu Option
50
+ */
51
+ exports.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE = [
69
52
  ModuleConstants.AlertModuleId,
53
+ ModuleConstants.BulkUpdateModuleId,
70
54
  ModuleConstants.CalculatedColumnModuleId,
71
- ModuleConstants.ExportModuleId,
55
+ ModuleConstants.CellSummaryModuleId,
72
56
  ModuleConstants.ColumnFilterModuleId,
73
- {
74
- title: 'Edit',
75
- modules: [ModuleConstants.SmartEditModuleId, ModuleConstants.BulkUpdateModuleId],
76
- },
77
- ModuleConstants.TeamSharingModuleId,
57
+ ModuleConstants.ColumnInfoModuleId,
58
+ ModuleConstants.CommentModuleId,
59
+ ModuleConstants.DashboardModuleId,
60
+ ModuleConstants.DataImportModuleId,
61
+ ModuleConstants.ExportModuleId,
62
+ ModuleConstants.Fdc3ModuleId,
63
+ ModuleConstants.FlashingCellModuleId,
64
+ ModuleConstants.GridInfoModuleId,
65
+ ModuleConstants.LayoutModuleId,
66
+ ModuleConstants.NoteModuleId,
67
+ ModuleConstants.SettingsPanelModuleId,
68
+ ModuleConstants.SmartEditModuleId,
69
+ ModuleConstants.SystemStatusModuleId, // Single Item - Always present
70
+ // this currently doesnt work
71
+ // {
72
+ // title: 'Edit',
73
+ // icon: {
74
+ // name: 'edit',
75
+ // },
76
+ // modules: [ModuleConstants.SmartEditModuleId, ModuleConstants.BulkUpdateModuleId],
77
+ // },
78
+ /*
79
+ // Modules that dont provide a Context Menu
80
+ ModuleConstants.ChartingModuleId,
81
+ ModuleConstants.CustomSortModuleId,
78
82
  ModuleConstants.DataChangeHistoryModuleId,
79
83
  ModuleConstants.DataSetModuleId,
84
+ ModuleConstants.FormatColumnModuleId,
80
85
  ModuleConstants.FreeTextColumnModuleId,
86
+ ModuleConstants.GridFilterModuleId,
81
87
  ModuleConstants.NamedQueryModuleId,
82
- ModuleConstants.QuickSearchModuleId,
83
- ModuleConstants.DataSetModuleId,
84
- ModuleConstants.AlertModuleId,
85
- ModuleConstants.SystemStatusModuleId,
86
- ModuleConstants.CalculatedColumnModuleId,
87
- ModuleConstants.FreeTextColumnModuleId,
88
- ModuleConstants.ExportModuleId,
89
- ModuleConstants.DataImportModuleId,
90
- ModuleConstants.DataChangeHistoryModuleId,
91
88
  ModuleConstants.PlusMinusModuleId,
92
- ModuleConstants.ShortcutModuleId,
93
- ModuleConstants.TeamSharingModuleId,
89
+ ModuleConstants.QuickSearchModuleId,
94
90
  ModuleConstants.ScheduleModuleId,
91
+ ModuleConstants.ShortcutModuleId,
95
92
  ModuleConstants.StateManagementModuleId,
93
+ ModuleConstants.StatusBarModuleId,
94
+ ModuleConstants.StyledColumnModuleId,
95
+ ModuleConstants.TeamSharingModuleId,
96
96
  ModuleConstants.ThemeModuleId,
97
- ModuleConstants.ChartingModuleId,
98
- ModuleConstants.NoteModuleId,
97
+ ModuleConstants.ToolPanelModuleId,
98
+
99
+ */
99
100
  ];
@@ -524,5 +524,5 @@ export interface GridApi {
524
524
  /**
525
525
  * Opens a window with a transposed view of Grid
526
526
  */
527
- showTransposedView(transposeConfig: TransposeConfig): void;
527
+ showTransposedView(transposeConfig?: TransposeConfig): void;
528
528
  }
@@ -9,9 +9,4 @@ export declare class CellSummaryApiImpl extends ApiBase implements CellSummaryAp
9
9
  setCurrentCellSummaryOperation(operation: SummaryOperation | string): void;
10
10
  getCellSummaryOperationValue(operation: SummaryOperation | string): any;
11
11
  getCurrentCellSummaryOperationValue(): any;
12
- /**
13
- * Weighted average is availabe only if the current layout has at leat a Weighted Average aggregation defined.
14
- */
15
- private isWeightedAverageCellSummaryAvailable;
16
- private getWeightedAverageCellSummaryOperation;
17
12
  }
@@ -6,7 +6,6 @@ const ApiBase_1 = require("./ApiBase");
6
6
  const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
7
7
  const SystemRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/SystemRedux"));
8
8
  const Enums_1 = require("../../PredefinedConfig/Common/Enums");
9
- const weightedAverage_1 = require("../../agGrid/weightedAverage");
10
9
  class CellSummaryApiImpl extends ApiBase_1.ApiBase {
11
10
  openCellSummaryPopupSettingsPanel() {
12
11
  this.showModulePopup(ModuleConstants.CellSummaryModuleId);
@@ -17,12 +16,6 @@ class CellSummaryApiImpl extends ApiBase_1.ApiBase {
17
16
  getCellSummaryOperationDefinitions() {
18
17
  var _a;
19
18
  let cellSummaryOperations = (_a = this.getCellSummaryOptions().cellSummaryOperations) !== null && _a !== void 0 ? _a : [];
20
- if (this.isWeightedAverageCellSummaryAvailable()) {
21
- cellSummaryOperations = [
22
- ...cellSummaryOperations,
23
- this.getWeightedAverageCellSummaryOperation(),
24
- ];
25
- }
26
19
  return cellSummaryOperations;
27
20
  }
28
21
  setCurrentCellSummaryOperation(operation) {
@@ -54,6 +47,8 @@ class CellSummaryApiImpl extends ApiBase_1.ApiBase {
54
47
  return cellSummary.Std_Deviation;
55
48
  case Enums_1.SummaryOperation.Only:
56
49
  return cellSummary.Only;
50
+ case Enums_1.SummaryOperation.Weighted_Average:
51
+ return cellSummary.Weighted_Average;
57
52
  default:
58
53
  return cellSummary[operation];
59
54
  }
@@ -65,21 +60,5 @@ class CellSummaryApiImpl extends ApiBase_1.ApiBase {
65
60
  : cellSummaryOperation.operationName;
66
61
  return this.getCellSummaryOperationValue(summaryOperation);
67
62
  }
68
- /**
69
- * Weighted average is availabe only if the current layout has at leat a Weighted Average aggregation defined.
70
- */
71
- isWeightedAverageCellSummaryAvailable() {
72
- const currentLayout = this.getAdaptableApi().layoutApi.getCurrentLayout();
73
- if (currentLayout.AggregationColumns == undefined) {
74
- return false;
75
- }
76
- return Object.values(currentLayout.AggregationColumns).some((aggCol) => typeof aggCol === 'object' && aggCol.type === 'weightedAverage');
77
- }
78
- getWeightedAverageCellSummaryOperation() {
79
- return {
80
- operationName: 'Weighted Avg',
81
- operationFunction: weightedAverage_1.cellSummaryWeightedAverage,
82
- };
83
- }
84
63
  }
85
64
  exports.CellSummaryApiImpl = CellSummaryApiImpl;
@@ -132,5 +132,5 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
132
132
  openGridInfoSettingsPanel(): void;
133
133
  getAgGridRowModelType(): RowModelType;
134
134
  getVisibleRowCount(): number;
135
- showTransposedView(transposeConfig: TransposeConfig): void;
135
+ showTransposedView(transposeConfig?: TransposeConfig): void;
136
136
  }
@@ -529,7 +529,7 @@ class GridApiImpl extends ApiBase_1.ApiBase {
529
529
  (0, logDeprecation_1.logDeprecation)(this.adaptable.logger, 'GridApi', 'getVisibleRowCount', 'getRowCount');
530
530
  return this.getRowCount();
531
531
  }
532
- showTransposedView(transposeConfig) {
532
+ showTransposedView(transposeConfig = {}) {
533
533
  var _a, _b, _c, _d;
534
534
  const transposedColumnId = (_a = transposeConfig.transposedColumnId) !== null && _a !== void 0 ? _a : this.getAdaptableApi().optionsApi.getPrimaryKey();
535
535
  const hideTransposedColumn = (_b = transposeConfig.hideTransposedColumn) !== null && _b !== void 0 ? _b : true;
@@ -27,7 +27,6 @@ import { AdaptableObjectTag, AdaptableObjectWithScope } from '../../PredefinedCo
27
27
  import { Fdc3Service } from '../../Utilities/Services/Fdc3Service';
28
28
  import { CellPopupService } from '../../Utilities/Services/CellPopupService';
29
29
  import { RowEditService } from '../../Utilities/Services/RowEditService';
30
- import { ISummaryService } from '../../Utilities/Services/Interface/ISummaryService';
31
30
  export declare class AdaptableInternalApi extends ApiBase {
32
31
  getSystemState(): SystemState;
33
32
  showPopupConfirmation(confirmation: UIConfirmation): void;
@@ -61,7 +60,6 @@ export declare class AdaptableInternalApi extends ApiBase {
61
60
  getReportService(): IReportService;
62
61
  getCalculatedColumnExpressionService(): ICalculatedColumnExpressionService;
63
62
  getEntitlementService(): IEntitlementService;
64
- getSummaryService(): ISummaryService;
65
63
  getQueryLanguageService(): IQueryLanguageService;
66
64
  getAlertService(): IAlertService;
67
65
  getTeamSharingService(): ITeamSharingService;
@@ -106,9 +106,6 @@ class AdaptableInternalApi extends ApiBase_1.ApiBase {
106
106
  getEntitlementService() {
107
107
  return this.adaptable.EntitlementService;
108
108
  }
109
- getSummaryService() {
110
- return this.adaptable.SummaryService;
111
- }
112
109
  getQueryLanguageService() {
113
110
  return this.adaptable.QueryLanguageService;
114
111
  }
@@ -60,7 +60,8 @@ export declare enum SummaryOperation {
60
60
  Min = "Min",
61
61
  Count = "Count",
62
62
  Std_Deviation = "Std Deviation",
63
- Only = "Only"
63
+ Only = "Only",
64
+ Weighted_Average = "Weighted Avg"
64
65
  }
65
66
  export declare enum FilterOnDataChangeOptions {
66
67
  Always = "Always",
@@ -78,6 +78,7 @@ var SummaryOperation;
78
78
  SummaryOperation["Count"] = "Count";
79
79
  SummaryOperation["Std_Deviation"] = "Std Deviation";
80
80
  SummaryOperation["Only"] = "Only";
81
+ SummaryOperation["Weighted_Average"] = "Weighted Avg";
81
82
  })(SummaryOperation = exports.SummaryOperation || (exports.SummaryOperation = {}));
82
83
  var FilterOnDataChangeOptions;
83
84
  (function (FilterOnDataChangeOptions) {
@@ -5,12 +5,21 @@ import { SelectedCellInfo } from '../Selection/SelectedCellInfo';
5
5
  import { SelectedRowInfo } from '../Selection/SelectedRowInfo';
6
6
  import { Column, IRowNode } from '@ag-grid-community/core';
7
7
  import { AdaptableIcon, BaseContext } from '../../types';
8
+ /**
9
+ * List of Shipped Adaptable Menu Items
10
+ */
11
+ export declare const ADAPTABLE_MENU_ITEMS: readonly ["alert-clear", "bulk-update-apply", "calculated-column-edit", "cell-summary-show", "column-info", "comment-add", "comment-remove", "custom-sort-add", "custom-sort-edit", "dashboard", "dashboard-collapse", "dashboard-configure", "dashboard-dock", "dashboard-expand", "dashboard-float", "dashboard-hide", "dashboard-show", "data-import", "export", "export-clipboard", "export-csv", "export-excel", "export-json", "export-table", "export-custom-destination", "fdc3", "fdc3-broadcast", "fdc3-raise-intent", "filter", "filter-bar-visbility", "filter-clear", "filter-suspend", "filter-cell-value", "flashing-cell-add", "flashing-cell-clear", "flashing-cell-delete", "flashing-row-clear", "format-column", "format-column-add", "format-column-edit", "free-text-column-edit", "grid-info", "layout-aggregated-view", "layout-auto-size", "layout-clear-selection", "layout-column-caption-change", "layout-column-hide", "layout-column-select", "layout-column-select-preserve", "layout-column-select-reset", "layout-edit", "layout-grid", "layout-select", "layout-select-all", "note-add", "note-remove", "plus-minus-add", "smart-edit-apply", "settings-panel-open", "styled-column-badge", "styled-column", "styled-column-gradient", "styled-column-percent-bar", "styled-column-sparkline", "system-status-show", "internal"];
12
+ export type AdaptableMenuItemName = typeof ADAPTABLE_MENU_ITEMS[number];
8
13
  /**
9
14
  * Menu item used by Adaptable in both Column and Context Menus
10
15
  */
11
16
  export interface AdaptableMenuItem {
12
17
  /**
13
- * Name that appears in the menu
18
+ * Unique name for the Menu Item
19
+ */
20
+ name: AdaptableMenuItemName;
21
+ /**
22
+ * Text that appears in the menu
14
23
  */
15
24
  label: string;
16
25
  /**
@@ -1,2 +1,74 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ADAPTABLE_MENU_ITEMS = void 0;
4
+ /**
5
+ * List of Shipped Adaptable Menu Items
6
+ */
7
+ exports.ADAPTABLE_MENU_ITEMS = [
8
+ 'alert-clear',
9
+ 'bulk-update-apply',
10
+ 'calculated-column-edit',
11
+ 'cell-summary-show',
12
+ 'column-info',
13
+ 'comment-add',
14
+ 'comment-remove',
15
+ 'custom-sort-add',
16
+ 'custom-sort-edit',
17
+ 'dashboard',
18
+ 'dashboard-collapse',
19
+ 'dashboard-configure',
20
+ 'dashboard-dock',
21
+ 'dashboard-expand',
22
+ 'dashboard-float',
23
+ 'dashboard-hide',
24
+ 'dashboard-show',
25
+ 'data-import',
26
+ 'export',
27
+ 'export-clipboard',
28
+ 'export-csv',
29
+ 'export-excel',
30
+ 'export-json',
31
+ 'export-table',
32
+ 'export-custom-destination',
33
+ 'fdc3',
34
+ 'fdc3-broadcast',
35
+ 'fdc3-raise-intent',
36
+ 'filter',
37
+ 'filter-bar-visbility',
38
+ 'filter-clear',
39
+ 'filter-suspend',
40
+ 'filter-cell-value',
41
+ 'flashing-cell-add',
42
+ 'flashing-cell-clear',
43
+ 'flashing-cell-delete',
44
+ 'flashing-row-clear',
45
+ 'format-column',
46
+ 'format-column-add',
47
+ 'format-column-edit',
48
+ 'free-text-column-edit',
49
+ 'grid-info',
50
+ 'layout-aggregated-view',
51
+ 'layout-auto-size',
52
+ 'layout-clear-selection',
53
+ 'layout-column-caption-change',
54
+ 'layout-column-hide',
55
+ 'layout-column-select',
56
+ 'layout-column-select-preserve',
57
+ 'layout-column-select-reset',
58
+ 'layout-edit',
59
+ 'layout-grid',
60
+ 'layout-select',
61
+ 'layout-select-all',
62
+ 'note-add',
63
+ 'note-remove',
64
+ 'plus-minus-add',
65
+ 'smart-edit-apply',
66
+ 'settings-panel-open',
67
+ 'styled-column-badge',
68
+ 'styled-column',
69
+ 'styled-column-gradient',
70
+ 'styled-column-percent-bar',
71
+ 'styled-column-sparkline',
72
+ 'system-status-show',
73
+ 'internal' // used by AdapTable in Settings Panel
74
+ ];
@@ -1,5 +1,7 @@
1
- import { SummarySupportedExpression } from "../../Utilities/Services/Interface/ISummaryService";
2
1
  export declare const ROW_SUMMARY_ROW_ID = "__ROW_SUMMARY_ROW_ID";
2
+ export declare const WEIGHTED_AVERAGE_AGGREATED_FUNCTION = "WEIGHTED_AVERAGE";
3
+ export declare const summarySupportedExpressions: readonly ["SUM", "AVG", "MIN", "MAX", "COUNT", "MEDIAN", "MODE", "DISTINCT", "ONLY", "STD_DEVIATION", "OLDEST", "YOUNGEST", "WEIGHTED_AVERAGE"];
4
+ export type SummarySupportedExpression = (typeof summarySupportedExpressions)[number];
3
5
  /**
4
6
  * Position of Row Summary - 'Top' or 'Bottom'
5
7
  */
@@ -1,4 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ROW_SUMMARY_ROW_ID = void 0;
3
+ exports.summarySupportedExpressions = exports.WEIGHTED_AVERAGE_AGGREATED_FUNCTION = exports.ROW_SUMMARY_ROW_ID = void 0;
4
4
  exports.ROW_SUMMARY_ROW_ID = '__ROW_SUMMARY_ROW_ID';
5
+ exports.WEIGHTED_AVERAGE_AGGREATED_FUNCTION = 'WEIGHTED_AVERAGE';
6
+ exports.summarySupportedExpressions = [
7
+ 'SUM',
8
+ 'AVG',
9
+ 'MIN',
10
+ 'MAX',
11
+ 'COUNT',
12
+ 'MEDIAN',
13
+ 'MODE',
14
+ 'DISTINCT',
15
+ 'ONLY',
16
+ 'STD_DEVIATION',
17
+ 'OLDEST',
18
+ 'YOUNGEST',
19
+ exports.WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
20
+ ];
@@ -295,8 +295,10 @@ const LayoutReducer = (state = initialState, action) => {
295
295
  return Object.assign(Object.assign({}, state), { Layouts });
296
296
  }
297
297
  case exports.LAYOUT_COLUMN_FILTER_ADD: {
298
- let columnFilters = [...((_b = currentLayout.ColumnFilters) !== null && _b !== void 0 ? _b : [])];
299
298
  const columnFilterAction = action.columnFilter;
299
+ let columnFilters = ((_b = currentLayout.ColumnFilters) !== null && _b !== void 0 ? _b : []).filter(
300
+ // make sure we are not adding a filter that already exists
301
+ (cf) => cf.ColumnId !== columnFilterAction.ColumnId);
300
302
  AdaptableHelper_1.default.addUuidAndSource(columnFilterAction);
301
303
  columnFilters.push(columnFilterAction);
302
304
  const Layouts = state.Layouts.map((layout) => {
@@ -309,10 +311,13 @@ const LayoutReducer = (state = initialState, action) => {
309
311
  }
310
312
  case exports.LAYOUT_COLUMN_FILTER_EDIT: {
311
313
  const columnFilterAction = action.columnFilter;
312
- let columnFilters = ((_c = currentLayout.ColumnFilters) !== null && _c !== void 0 ? _c : []).map((abObject) => abObject.Uuid === columnFilterAction.Uuid ? columnFilterAction : abObject);
314
+ // it is safer to change the col id, we cannot have multiple filter on the same id
315
+ // first we filter out other filters with the same colId, to ensure we have only one
316
+ const cleanColumnFilters = ((_c = currentLayout.ColumnFilters) !== null && _c !== void 0 ? _c : []).filter((cf) => cf.ColumnId !== columnFilterAction.ColumnId);
317
+ cleanColumnFilters.push(columnFilterAction);
313
318
  const Layouts = state.Layouts.map((layout) => {
314
319
  if (layout.Name === currentLayout.Name) {
315
- return Object.assign(Object.assign({}, layout), { ColumnFilters: columnFilters });
320
+ return Object.assign(Object.assign({}, layout), { ColumnFilters: cleanColumnFilters });
316
321
  }
317
322
  return layout;
318
323
  });
@@ -328,14 +333,11 @@ const LayoutReducer = (state = initialState, action) => {
328
333
  return Object.assign(Object.assign({}, state), { Layouts });
329
334
  }
330
335
  case exports.LAYOUT_COLUMN_FILTER_CLEAR: {
331
- let columnFilters = [...((_d = currentLayout.ColumnFilters) !== null && _d !== void 0 ? _d : [])];
332
336
  const actionTypedDelete = action;
333
- const index = actionTypedDelete.columnFilter
334
- ? columnFilters.findIndex((i) => i.Uuid == actionTypedDelete.columnFilter.Uuid)
335
- : -1;
336
- if (index != -1) {
337
- columnFilters.splice(index, 1);
338
- }
337
+ const columnFilters = ((_d = currentLayout.ColumnFilters) !== null && _d !== void 0 ? _d : []).filter((cf) => {
338
+ // make sure we are deleting all filters on the same column
339
+ return cf.ColumnId !== actionTypedDelete.columnFilter.ColumnId;
340
+ });
339
341
  const Layouts = state.Layouts.map((layout) => {
340
342
  if (layout.Name === currentLayout.Name) {
341
343
  return Object.assign(Object.assign({}, layout), { ColumnFilters: columnFilters });
@@ -3,7 +3,7 @@ import { Action } from 'redux';
3
3
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
4
4
  import { ModuleParams } from '../View/Components/SharedProps/ModuleViewPopupProps';
5
5
  import { MenuItemShowPopup, MenuItemDoReduxAction, MenuItemDoClickFunction } from '../Utilities/MenuItem';
6
- import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
6
+ import { AdaptableMenuItem, AdaptableMenuItemName, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
7
7
  import { AdaptableModule } from '../PredefinedConfig/Common/Types';
8
8
  import { TeamSharingImportInfo } from '../PredefinedConfig/TeamSharingState';
9
9
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
@@ -40,15 +40,16 @@ export declare abstract class AdaptableModuleBase implements IModule {
40
40
  addModuleButtonMenuItem(): AdaptableMenuItem | undefined;
41
41
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
42
42
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
43
- createMainMenuItemShowPopup({ Label, ComponentName, Icon, PopupParams, }: {
43
+ createMainMenuItemShowPopup({ Name, Label, ComponentName, Icon, PopupParams, }: {
44
+ Name: AdaptableMenuItemName;
44
45
  Label: string;
45
46
  ComponentName: string;
46
47
  Icon: AdaptableSystemIconName;
47
48
  PopupParams?: ModuleParams;
48
49
  }): MenuItemShowPopup;
49
- createColumnMenuItemClickFunction(Label: string, Icon: AdaptableSystemIconName, ClickFunction: () => void): MenuItemDoClickFunction;
50
- createColumnMenuItemReduxAction(Label: string, Icon: AdaptableSystemIconName, Action: Action): MenuItemDoReduxAction;
51
- createColumnMenuItemShowPopup(Label: string, ComponentName: string, Icon: AdaptableSystemIconName, PopupParams?: ModuleParams): MenuItemShowPopup;
50
+ createColumnMenuItemClickFunction(Name: AdaptableMenuItemName, Label: string, Icon: AdaptableSystemIconName, ClickFunction: () => void): MenuItemDoClickFunction;
51
+ createColumnMenuItemReduxAction(Name: AdaptableMenuItemName, Label: string, Icon: AdaptableSystemIconName, Action: Action): MenuItemDoReduxAction;
52
+ createColumnMenuItemShowPopup(Name: AdaptableMenuItemName, Label: string, ComponentName: string, Icon: AdaptableSystemIconName, PopupParams?: ModuleParams): MenuItemShowPopup;
52
53
  getTeamSharingAction(): TeamSharingImportInfo<AdaptableObject> | undefined;
53
54
  getModuleNamedQueryReferences(): string[];
54
55
  getModuleCalculatedColumnReferences(): CalculatedColumn[];
@@ -82,6 +82,7 @@ class AdaptableModuleBase {
82
82
  maxWidth: this.getPopupMaxWidth(),
83
83
  };
84
84
  return this.createMainMenuItemShowPopup({
85
+ Name: 'internal',
85
86
  Label: this.moduleInfo.FriendlyName,
86
87
  ComponentName: this.moduleInfo.Popup,
87
88
  Icon: this.moduleInfo.Glyph,
@@ -102,20 +103,20 @@ class AdaptableModuleBase {
102
103
  return undefined;
103
104
  }
104
105
  // creates the menu items in the main dropdown
105
- createMainMenuItemShowPopup({ Label, ComponentName, Icon, PopupParams, }) {
106
- return new MenuItem_1.MenuItemShowPopup(Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
106
+ createMainMenuItemShowPopup({ Name, Label, ComponentName, Icon, PopupParams, }) {
107
+ return new MenuItem_1.MenuItemShowPopup(Name, Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
107
108
  }
108
109
  // creates a menu item for the column menu to perform a function
109
- createColumnMenuItemClickFunction(Label, Icon, ClickFunction) {
110
- return new MenuItem_1.MenuItemDoClickFunction(Label, this.moduleInfo.ModuleName, ClickFunction, Icon, true);
110
+ createColumnMenuItemClickFunction(Name, Label, Icon, ClickFunction) {
111
+ return new MenuItem_1.MenuItemDoClickFunction(Name, Label, this.moduleInfo.ModuleName, ClickFunction, Icon, true);
111
112
  }
112
113
  // creates a menu item for the column menu to enact a Redux action
113
- createColumnMenuItemReduxAction(Label, Icon, Action) {
114
- return new MenuItem_1.MenuItemDoReduxAction(Label, this.moduleInfo.ModuleName, Action, Icon, true);
114
+ createColumnMenuItemReduxAction(Name, Label, Icon, Action) {
115
+ return new MenuItem_1.MenuItemDoReduxAction(Name, Label, this.moduleInfo.ModuleName, Action, Icon, true);
115
116
  }
116
117
  // popups called by the column menu - invisible if module is hidden or readonly
117
- createColumnMenuItemShowPopup(Label, ComponentName, Icon, PopupParams) {
118
- return new MenuItem_1.MenuItemShowPopup(Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
118
+ createColumnMenuItemShowPopup(Name, Label, ComponentName, Icon, PopupParams) {
119
+ return new MenuItem_1.MenuItemShowPopup(Name, Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
119
120
  }
120
121
  getTeamSharingAction() {
121
122
  return undefined;
@@ -87,7 +87,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
87
87
  relevantAlert = this.api.alertApi.internalApi.getAdaptableAlertWithHighlightRow(menuContext.rowNode);
88
88
  }
89
89
  if (relevantAlert) {
90
- items.push(this.createColumnMenuItemReduxAction('Clear Alert', this.moduleInfo.Glyph, SystemRedux.SystemAlertDelete(relevantAlert)));
90
+ items.push(this.createColumnMenuItemReduxAction('alert-clear', 'Clear Alert', this.moduleInfo.Glyph, SystemRedux.SystemAlertDelete(relevantAlert)));
91
91
  }
92
92
  }
93
93
  }
@@ -26,7 +26,7 @@ class BulkUpdateModule extends AdaptableModuleBase_1.AdaptableModuleBase {
26
26
  let popUpParams = {
27
27
  source: 'ContextMenu',
28
28
  };
29
- menuItemShowPopup = this.createMainMenuItemShowPopup({
29
+ menuItemShowPopup = this.createMainMenuItemShowPopup({ Name: 'bulk-update-apply',
30
30
  Label: 'Apply Bulk Update',
31
31
  ComponentName: this.moduleInfo.Popup,
32
32
  Icon: this.moduleInfo.Glyph,
@@ -61,7 +61,7 @@ class CalculatedColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
61
61
  source: 'ColumnMenu',
62
62
  };
63
63
  return [
64
- this.createColumnMenuItemShowPopup('Edit Calculated Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
64
+ this.createColumnMenuItemShowPopup('calculated-column-edit', 'Edit Calculated Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
65
65
  ];
66
66
  }
67
67
  getTeamSharingAction() {