@adaptabletools/adaptable-cjs 18.0.0-canary.3 → 18.0.0-canary.5

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 (206) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +5 -21
  3. package/base.css +4 -1
  4. package/base.css.map +1 -1
  5. package/index.css +79 -68
  6. package/index.css.map +1 -1
  7. package/package.json +3 -4
  8. package/src/AdaptableInterfaces/IAdaptable.d.ts +55 -109
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +11 -5
  10. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +4 -4
  11. package/src/AdaptableOptions/{CommentsOptions.d.ts → CommentOptions.d.ts} +5 -5
  12. package/src/AdaptableOptions/MenuOptions.d.ts +1 -1
  13. package/src/AdaptableOptions/MenuOptions.js +2 -6
  14. package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +1 -1
  15. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  16. package/src/Api/AdaptableApi.d.ts +5 -0
  17. package/src/Api/BulkUpdateApi.d.ts +0 -5
  18. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  19. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  20. package/src/Api/GridApi.d.ts +14 -13
  21. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  22. package/src/Api/Implementation/ActionColumnApiImpl.js +33 -0
  23. package/src/Api/Implementation/AdaptableApiImpl.d.ts +1 -0
  24. package/src/Api/Implementation/AdaptableApiImpl.js +3 -0
  25. package/src/Api/Implementation/ApiBase.d.ts +2 -1
  26. package/src/Api/Implementation/ApiBase.js +4 -1
  27. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
  28. package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
  29. package/src/Api/Implementation/CommentsApiImpl.js +2 -1
  30. package/src/Api/Implementation/ConfigApiImpl.js +8 -3
  31. package/src/Api/Implementation/GridApiImpl.d.ts +3 -3
  32. package/src/Api/Implementation/GridApiImpl.js +20 -14
  33. package/src/Api/Implementation/LayoutApiImpl.d.ts +4 -0
  34. package/src/Api/Implementation/LayoutApiImpl.js +14 -0
  35. package/src/Api/Implementation/NotesApiImpl.d.ts +2 -4
  36. package/src/Api/Implementation/NotesApiImpl.js +4 -8
  37. package/src/Api/Implementation/OptionsApiImpl.d.ts +1 -1
  38. package/src/Api/Implementation/OptionsApiImpl.js +2 -2
  39. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  40. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  41. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  42. package/src/Api/Internal/ActionRowInternalApi.d.ts +5 -1
  43. package/src/Api/Internal/ActionRowInternalApi.js +107 -0
  44. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
  45. package/src/Api/Internal/AdaptableInternalApi.js +10 -8
  46. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  47. package/src/Api/Internal/CalculatedColumnInternalApi.js +71 -0
  48. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
  49. package/src/Api/Internal/ColumnFilterInternalApi.js +11 -1
  50. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  51. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  52. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  53. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  54. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  55. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  56. package/src/Api/Internal/FreeTextColumnInternalApi.js +60 -0
  57. package/src/Api/Internal/GridFilterInternalApi.js +1 -1
  58. package/src/Api/Internal/GridInternalApi.d.ts +21 -3
  59. package/src/Api/Internal/GridInternalApi.js +126 -7
  60. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  61. package/src/Api/InteropioPluginApi.d.ts +2 -2
  62. package/src/Api/LayoutApi.d.ts +8 -0
  63. package/src/Api/OptionsApi.d.ts +1 -1
  64. package/src/EnvVars.d.ts +3 -0
  65. package/src/EnvVars.js +8 -0
  66. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  67. package/src/PredefinedConfig/Common/AggregationColumns.js +5 -1
  68. package/src/PredefinedConfig/NotesState.d.ts +10 -20
  69. package/src/PredefinedConfig/PredefinedConfig.d.ts +1 -1
  70. package/src/Redux/ActionsReducers/NotesRedux.d.ts +3 -4
  71. package/src/Redux/ActionsReducers/NotesRedux.js +10 -8
  72. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  73. package/src/Redux/Store/AdaptableStore.js +22 -50
  74. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +7 -1
  75. package/src/Strategy/AdaptableModuleBase.d.ts +2 -3
  76. package/src/Strategy/AdaptableModuleBase.js +4 -7
  77. package/src/Strategy/AlertModule.d.ts +1 -2
  78. package/src/Strategy/AlertModule.js +2 -55
  79. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  80. package/src/Strategy/CalculatedColumnModule.js +5 -25
  81. package/src/Strategy/ChartingModule.d.ts +0 -1
  82. package/src/Strategy/ChartingModule.js +2 -22
  83. package/src/Strategy/ColumnFilterModule.d.ts +1 -2
  84. package/src/Strategy/ColumnFilterModule.js +1 -64
  85. package/src/Strategy/CommentsModule.d.ts +1 -0
  86. package/src/Strategy/CommentsModule.js +2 -1
  87. package/src/Strategy/CustomSortModule.js +1 -1
  88. package/src/Strategy/DashboardModule.d.ts +1 -2
  89. package/src/Strategy/DashboardModule.js +1 -8
  90. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  91. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  92. package/src/Strategy/DataSetModule.d.ts +1 -1
  93. package/src/Strategy/DataSetModule.js +1 -1
  94. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  95. package/src/Strategy/FlashingCellModule.js +2 -15
  96. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  97. package/src/Strategy/FormatColumnModule.js +0 -47
  98. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  99. package/src/Strategy/FreeTextColumnModule.js +0 -30
  100. package/src/Strategy/GridFilterModule.d.ts +0 -1
  101. package/src/Strategy/GridFilterModule.js +0 -37
  102. package/src/Strategy/Interface/IModule.d.ts +0 -1
  103. package/src/Strategy/LayoutModule.d.ts +1 -3
  104. package/src/Strategy/LayoutModule.js +6 -50
  105. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  106. package/src/Strategy/NamedQueryModule.js +0 -19
  107. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  108. package/src/Strategy/PlusMinusModule.js +1 -1
  109. package/src/Strategy/ScheduleModule.d.ts +1 -1
  110. package/src/Strategy/ScheduleModule.js +1 -1
  111. package/src/Strategy/ShortcutModule.d.ts +1 -1
  112. package/src/Strategy/ShortcutModule.js +1 -1
  113. package/src/Strategy/StyledColumnModule.d.ts +0 -1
  114. package/src/Strategy/StyledColumnModule.js +0 -21
  115. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  116. package/src/Strategy/TeamSharingModule.js +5 -5
  117. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  118. package/src/Strategy/ToolPanelModule.js +0 -23
  119. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
  120. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  121. package/src/Utilities/Constants/GeneralConstants.js +3 -2
  122. package/src/Utilities/Defaults/DefaultSettingsPanel.js +5 -4
  123. package/src/Utilities/Helpers/AdaptableHelper.d.ts +0 -3
  124. package/src/Utilities/Helpers/AdaptableHelper.js +1 -60
  125. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  126. package/src/Utilities/Helpers/Helper.js +6 -1
  127. package/src/Utilities/Services/AggregatedScalarLiveValue.js +3 -1
  128. package/src/Utilities/Services/CellPopupService.js +0 -1
  129. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  130. package/src/Utilities/Services/LicenseService/index.js +10 -3
  131. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  132. package/src/Utilities/Services/MetamodelService.js +6 -3
  133. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  134. package/src/Utilities/Services/RowEditService.js +3 -1
  135. package/src/View/AdaptableView.js +0 -2
  136. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  137. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  138. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  139. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  140. package/src/View/Comments/CommentsPopup.js +12 -8
  141. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  142. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  143. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +1 -1
  144. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  145. package/src/View/Components/Popups/WindowPopups/windowFactory.js +4 -1
  146. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  147. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  148. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  149. package/src/View/GridFilter/GridFilterViewPanel.js +6 -2
  150. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  151. package/src/View/Layout/TransposedPopup.d.ts +3 -0
  152. package/src/View/Layout/TransposedPopup.js +198 -0
  153. package/src/View/Layout/Wizard/LayoutWizard.js +1 -1
  154. package/src/View/Notes/NotesPopup.js +8 -10
  155. package/src/View/Theme/ThemeSelector.js +2 -2
  156. package/src/agGrid/ActionColumnRenderer.js +4 -4
  157. package/src/agGrid/Adaptable.d.ts +3 -455
  158. package/src/agGrid/Adaptable.js +7 -5291
  159. package/src/agGrid/AdaptableAgGrid.d.ts +336 -0
  160. package/src/agGrid/AdaptableAgGrid.js +3785 -0
  161. package/src/agGrid/AdaptableLogger.js +78 -13
  162. package/src/agGrid/AgGridAdapter.d.ts +54 -0
  163. package/src/agGrid/AgGridAdapter.js +554 -0
  164. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  165. package/src/agGrid/AgGridColumnAdapter.js +818 -0
  166. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  167. package/src/agGrid/AgGridMenuAdapter.js +276 -0
  168. package/src/agGrid/AgGridOptionsService.d.ts +11 -0
  169. package/src/agGrid/AgGridOptionsService.js +54 -0
  170. package/src/agGrid/BadgeRenderer.js +1 -1
  171. package/src/agGrid/CheckboxRenderer.js +1 -1
  172. package/src/agGrid/FilterWrapper.d.ts +2 -2
  173. package/src/agGrid/FilterWrapper.js +1 -1
  174. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  175. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  176. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +73 -10
  177. package/src/agGrid/editors/AdaptableDateEditor/index.js +2 -2
  178. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  179. package/src/components/Datepicker/index.d.ts +1 -1
  180. package/src/components/InfiniteTable/index.js +2 -2
  181. package/src/components/Modal/index.d.ts +1 -0
  182. package/src/components/Modal/index.js +6 -4
  183. package/src/components/Select/Select.d.ts +2 -0
  184. package/src/components/Select/Select.js +2 -2
  185. package/src/env.js +2 -2
  186. package/src/metamodel/adaptable.metamodel.d.ts +39 -11
  187. package/src/metamodel/adaptable.metamodel.js +73 -32
  188. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  189. package/src/migration/AdaptableUpgradeHelper.js +52 -0
  190. package/src/migration/VersionUpgrade.d.ts +8 -0
  191. package/src/migration/VersionUpgrade.js +15 -0
  192. package/src/migration/VersionUpgrade17.d.ts +18 -0
  193. package/src/migration/VersionUpgrade17.js +347 -0
  194. package/src/migration/VersionUpgrade18.d.ts +5 -0
  195. package/src/migration/VersionUpgrade18.js +10 -0
  196. package/src/types.d.ts +7 -3
  197. package/tsconfig.cjs.tsbuildinfo +1 -1
  198. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  199. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  200. package/src/Utilities/Services/Interface/IRowEditService.js +0 -2
  201. package/src/agGrid/agGridHelper.d.ts +0 -57
  202. package/src/agGrid/agGridHelper.js +0 -691
  203. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  204. package/src/agGrid/agGridMenuHelper.js +0 -673
  205. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  206. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
@@ -1,673 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.agGridMenuHelper = void 0;
4
- const tslib_1 = require("tslib");
5
- const ArrayExtensions_1 = require("../Utilities/Extensions/ArrayExtensions");
6
- const icons_1 = require("../components/icons");
7
- const flatten_1 = tslib_1.__importDefault(require("lodash/flatten"));
8
- const Icon_1 = require("../components/Icon");
9
- const logDeprecation_1 = require("../Utilities/logDeprecation");
10
- const MenuOptions_1 = require("../AdaptableOptions/MenuOptions");
11
- // tslint:disable-next-line: class-name
12
- class agGridMenuHelper {
13
- constructor(adaptable, gridOptions) {
14
- this.adaptable = adaptable;
15
- this.gridOptions = gridOptions;
16
- this.buildGroupedModuleItems = (sortedMenuItems, adaptableMenuItems) => {
17
- return sortedMenuItems
18
- .map((moduleOrGroup) => {
19
- if (typeof moduleOrGroup === 'object') {
20
- const submenuItems = this.buildGroupedModuleItems(moduleOrGroup.modules, adaptableMenuItems);
21
- // if there is only one item in the submenu, we don't need to show the submenu
22
- if (submenuItems.length === 1) {
23
- return submenuItems[0];
24
- }
25
- return {
26
- label: moduleOrGroup.title,
27
- icon: moduleOrGroup.icon,
28
- subItems: submenuItems,
29
- };
30
- }
31
- else {
32
- return adaptableMenuItems.find((menuItem) => menuItem.module === moduleOrGroup);
33
- }
34
- })
35
- .filter((menuItem) => {
36
- if (!menuItem) {
37
- return false;
38
- }
39
- if (menuItem.subItems && menuItem.subItems.length === 0) {
40
- return false;
41
- }
42
- return true;
43
- });
44
- };
45
- }
46
- destroy() {
47
- this.adaptable = null;
48
- this.gridOptions = null;
49
- }
50
- mapAdaptableMenuItemToSystemMenuItems(adaptableMenuItems) {
51
- return (adaptableMenuItems !== null && adaptableMenuItems !== void 0 ? adaptableMenuItems : []).map((menuItem) => {
52
- let subItems = menuItem.subItems;
53
- if (subItems && subItems.length > 0) {
54
- subItems = subItems.map((subItem) => this.mapAdaptableMenuItemToSystemMenuItems(subItem.subItems));
55
- }
56
- return Object.assign(Object.assign({}, menuItem), { menuType: 'Adaptable', subItems });
57
- });
58
- }
59
- buildColumnMenu(params, originalGetMainMenuItems) {
60
- var _a;
61
- const menuOptions = this.adaptable.adaptableOptions.menuOptions;
62
- const hasDeprecatedOptions = this.logMenuDeprecation('ColumnMenu');
63
- const agGridMenuItems = (params.defaultItems ? [...params.defaultItems] : []);
64
- if (!params.column) {
65
- // return only AG Grid context if the Adaptable column is not found (should not happen)
66
- return agGridMenuItems;
67
- }
68
- const adaptableColumn = this.adaptable.api.columnApi.getColumnWithColumnId((_a = params.column) === null || _a === void 0 ? void 0 : _a.getColId());
69
- const menuContext = this.createColumnMenuContextObject(adaptableColumn, params.column);
70
- const adaptableMenuItems = this.createAdaptableColumnMenuItems(menuContext);
71
- // sort Adaptable menu items by default order
72
- const structuredAdaptableMenuItems = this.buildGroupedModuleItems(MenuOptions_1.DEFAULT_ADAPTABLE_COLUMN_MENU_ORDER, adaptableMenuItems);
73
- // 1. first check if there is a custom column menu defined
74
- if (typeof menuOptions.customColumnMenu === 'function') {
75
- const defaultAgGridMenuItems = agGridMenuItems.map((itemName) => ({
76
- menuType: 'AgGrid',
77
- name: itemName,
78
- }));
79
- const defaultAdaptableMenuItems = adaptableMenuItems.map((adaptableItem) => (Object.assign({ menuType: 'Adaptable' }, adaptableItem)));
80
- const customMenuItems = menuOptions
81
- .customColumnMenu(Object.assign(Object.assign({}, menuContext), { defaultAgGridMenuItems,
82
- defaultAdaptableMenuItems, structuredAdaptableMenuItems: this.mapAdaptableMenuItemToSystemMenuItems(structuredAdaptableMenuItems) }))
83
- .filter(Boolean);
84
- return customMenuItems
85
- .map((customMenuItem) => this.mapCustomMenuItemToAgGridMenuDefinition(customMenuItem, menuContext))
86
- .filter(Boolean);
87
- }
88
- if (hasDeprecatedOptions) {
89
- return this.buildColumnMenuDeprecated(params, originalGetMainMenuItems);
90
- }
91
- // 2. if not, return the default context menu
92
- const defaultContextMenu = [
93
- ...agGridMenuItems,
94
- 'separator',
95
- ...structuredAdaptableMenuItems.map((adaptableItem) => this.mapAdaptableMenuItemToAgGridMenuDefinition(adaptableItem)),
96
- ];
97
- return defaultContextMenu;
98
- }
99
- buildContextMenu(params, originalGetContextMenuItems) {
100
- var _a;
101
- // we do this in order to refresh the internal state of selected cells (technically query the AG Grid cellRanges)
102
- // (right-click selected the current cell, but this was not reflected in the internal state of the selected cells)
103
- this.adaptable.setSelectedCells();
104
- const menuOptions = this.adaptable.adaptableOptions.menuOptions;
105
- const hasDeprecatedOptions = this.logMenuDeprecation('ContextMenu');
106
- const agGridMenuItems = (params.defaultItems ? [...params.defaultItems] : []);
107
- if (!params.column) {
108
- // return only AG Grid context if the Adaptable column is not found (should not happen)
109
- return agGridMenuItems;
110
- }
111
- const adaptableColumn = this.adaptable.api.columnApi.getColumnWithColumnId((_a = params.column) === null || _a === void 0 ? void 0 : _a.getColId());
112
- const menuContext = this.createContextMenuContextObject(params, adaptableColumn);
113
- const adaptableMenuItems = this.createAdaptableContextMenuItems(menuContext);
114
- // sort Adaptable menu items by default order
115
- const structuredAdaptableMenuItems = this.buildGroupedModuleItems(MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE, adaptableMenuItems);
116
- // 1. first check if there is a custom context menu defined
117
- if (typeof menuOptions.customContextMenu === 'function') {
118
- const defaultAgGridMenuItems = agGridMenuItems.map((itemName) => ({
119
- menuType: 'AgGrid',
120
- name: itemName,
121
- }));
122
- const defaultAdaptableMenuItems = adaptableMenuItems.map((adaptableItem) => (Object.assign({ menuType: 'Adaptable' }, adaptableItem)));
123
- const customMenuItems = menuOptions
124
- .customContextMenu(Object.assign(Object.assign({}, menuContext), { defaultAgGridMenuItems,
125
- defaultAdaptableMenuItems, structuredAdaptableMenuItems: this.mapAdaptableMenuItemToSystemMenuItems(structuredAdaptableMenuItems) }))
126
- .filter(Boolean);
127
- return customMenuItems
128
- .map((customMenuItem) => this.mapCustomMenuItemToAgGridMenuDefinition(customMenuItem, menuContext))
129
- .filter(Boolean);
130
- }
131
- if (hasDeprecatedOptions) {
132
- return this.buildContextMenuDeprecated(params, originalGetContextMenuItems);
133
- }
134
- // 2. if not, return the default context menu
135
- const defaultContextMenu = [
136
- ...agGridMenuItems,
137
- 'separator',
138
- ...structuredAdaptableMenuItems.map((adaptableItem) => this.mapAdaptableMenuItemToAgGridMenuDefinition(adaptableItem)),
139
- ];
140
- return defaultContextMenu;
141
- }
142
- createAdaptableColumnMenuItems(menuContext) {
143
- let contextMenuItems = [];
144
- this.adaptable.adaptableModules.forEach((s) => {
145
- let menuItems = s.addColumnMenuItems(menuContext.adaptableColumn);
146
- if (menuItems) {
147
- contextMenuItems.push(...menuItems.filter(Boolean).filter((item) => item.isVisible !== false));
148
- }
149
- });
150
- return contextMenuItems;
151
- }
152
- mapCustomMenuItemToAgGridMenuDefinition(customMenuItem, menuContext) {
153
- var _a;
154
- if (customMenuItem === '-') {
155
- return 'separator';
156
- }
157
- if (customMenuItem.menuType === 'Group') {
158
- return {
159
- name: customMenuItem.label,
160
- icon: this.mapAdaptableIconToAgGridIcon(customMenuItem.icon, {
161
- fill: 'var(--ab-color-text-on-primary)',
162
- }),
163
- disabled: customMenuItem.disabled,
164
- subMenu: !customMenuItem.disabled
165
- ? (_a = customMenuItem.subMenuItems) === null || _a === void 0 ? void 0 : _a.map((subMenuItem) => this.mapCustomMenuItemToAgGridMenuDefinition(subMenuItem, menuContext)).filter(Boolean)
166
- : undefined,
167
- };
168
- }
169
- if (customMenuItem.menuType === 'AgGrid') {
170
- return customMenuItem.name;
171
- }
172
- if (customMenuItem.menuType === 'Adaptable') {
173
- return this.mapAdaptableMenuItemToAgGridMenuDefinition(customMenuItem);
174
- }
175
- if (customMenuItem.menuType === 'User') {
176
- return this.mapUserMenuItemToAgGridMenuDefinition(customMenuItem, menuContext);
177
- }
178
- }
179
- mapAdaptableMenuItemToAgGridMenuDefinition(adaptableMenuItem) {
180
- var _a;
181
- return {
182
- name: adaptableMenuItem.label,
183
- action: adaptableMenuItem.onClick
184
- ? adaptableMenuItem.onClick
185
- : adaptableMenuItem.reduxAction
186
- ? () => this.adaptable.api.internalApi.dispatchReduxAction(adaptableMenuItem.reduxAction)
187
- : undefined,
188
- icon: this.mapAdaptableIconToAgGridIcon(adaptableMenuItem.icon, {
189
- fill: 'var(--ab-color-text-on-primary)',
190
- }),
191
- subMenu: (_a = adaptableMenuItem.subItems) === null || _a === void 0 ? void 0 : _a.map((subMenuItem) => this.mapAdaptableMenuItemToAgGridMenuDefinition(subMenuItem)),
192
- };
193
- }
194
- mapUserMenuItemToAgGridMenuDefinition(userMenuItem, menuContext) {
195
- var _a;
196
- if (userMenuItem.hidden) {
197
- return;
198
- }
199
- return {
200
- name: userMenuItem.label,
201
- action: () => (userMenuItem.onClick ? userMenuItem.onClick(menuContext) : null),
202
- icon: this.mapAdaptableIconToAgGridIcon(userMenuItem.icon, {
203
- fill: 'var(--ab-color-text-on-primary)',
204
- }),
205
- disabled: userMenuItem.disabled,
206
- subMenu: (_a = userMenuItem.subMenuItems) === null || _a === void 0 ? void 0 : _a.map((subMenuItem) => {
207
- return this.mapCustomMenuItemToAgGridMenuDefinition(subMenuItem, menuContext);
208
- }).filter(Boolean),
209
- };
210
- }
211
- logMenuDeprecation(type) {
212
- let hasDeprecatedOptions = false;
213
- if (type === 'ColumnMenu') {
214
- // if any of the deprecated options has a non-default value, log a deprecation warning
215
- const deprecatedProps = [
216
- 'columnMenuItems',
217
- 'columnMenuOrder',
218
- 'showAdaptableColumnMenu',
219
- ];
220
- deprecatedProps.forEach((propName) => {
221
- var _a, _b;
222
- if ((_b = (_a = this.adaptable._rawAdaptableOptions) === null || _a === void 0 ? void 0 : _a.menuOptions) === null || _b === void 0 ? void 0 : _b[propName]) {
223
- (0, logDeprecation_1.logDeprecation)(this.adaptable.logger, 'MenuOptions', propName, 'customColumnMenu');
224
- hasDeprecatedOptions = true;
225
- }
226
- });
227
- }
228
- if (type === 'ContextMenu') {
229
- // if any of the deprecated options has a non-default value, log a deprecation warning
230
- const deprecatedProps = [
231
- 'contextMenuItems',
232
- 'contextMenuOrder',
233
- 'showAdaptableContextMenu',
234
- ];
235
- deprecatedProps.forEach((propName) => {
236
- var _a, _b;
237
- if ((_b = (_a = this.adaptable._rawAdaptableOptions) === null || _a === void 0 ? void 0 : _a.menuOptions) === null || _b === void 0 ? void 0 : _b[propName]) {
238
- (0, logDeprecation_1.logDeprecation)(this.adaptable.logger, 'MenuOptions', propName, 'customContextMenu');
239
- hasDeprecatedOptions = true;
240
- }
241
- });
242
- }
243
- return hasDeprecatedOptions;
244
- }
245
- createAgGridMenuDefFromAdaptableMenu(adaptableMenuItem) {
246
- const subMenuItems = ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(adaptableMenuItem.subItems)
247
- ? adaptableMenuItem.subItems.map((amu) => {
248
- return this.createAgGridMenuDefFromAdaptableMenu(amu);
249
- })
250
- : undefined;
251
- return {
252
- name: adaptableMenuItem.label,
253
- action: adaptableMenuItem.onClick
254
- ? adaptableMenuItem.onClick
255
- : adaptableMenuItem.reduxAction
256
- ? () => this.adaptable.api.internalApi.dispatchReduxAction(adaptableMenuItem.reduxAction)
257
- : undefined,
258
- icon: this.mapAdaptableIconToAgGridIcon(adaptableMenuItem.icon, {
259
- fill: 'var(--ab-color-text-on-primary)',
260
- }),
261
- subMenu: subMenuItems,
262
- };
263
- }
264
- createAgGridColumnMenuDefFromUserMenu(menuItem, menuContext) {
265
- const fn = menuItem.onClick;
266
- const disabled = menuItem.disabled && menuItem.disabled(menuContext);
267
- const icon = typeof menuItem.icon === 'function' ? menuItem.icon(menuContext) : menuItem.icon;
268
- return {
269
- name: this.getLabelFromUserColumnMenuItem(menuItem, menuContext),
270
- action: () => (fn ? fn(menuContext) : null),
271
- icon: this.mapAdaptableIconToAgGridIcon(icon, {
272
- fill: 'var(--ab-color-text-on-primary)',
273
- }),
274
- disabled: disabled,
275
- subMenu: ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(menuItem.subMenuItems)
276
- ? undefined
277
- : menuItem.subMenuItems.map((subMenuItem) => {
278
- return this.createAgGridColumnMenuDefFromUserMenu(subMenuItem, menuContext);
279
- }),
280
- };
281
- }
282
- createAgGridContextMenuDefFromUserMenu(menuItem, menuContext) {
283
- const fn = menuItem.onClick;
284
- const disabled = menuItem.disabled && menuItem.disabled(menuContext);
285
- const icon = typeof menuItem.icon === 'function' ? menuItem.icon(menuContext) : menuItem.icon;
286
- return {
287
- name: this.getLabelFromUserContextMenuItem(menuItem, menuContext),
288
- action: () => (fn ? fn(menuContext) : null),
289
- icon: this.mapAdaptableIconToAgGridIcon(icon, {
290
- fill: 'var(--ab-color-text-on-primary)',
291
- }),
292
- disabled: disabled,
293
- subMenu: ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(menuItem.subMenuItems)
294
- ? undefined
295
- : menuItem.subMenuItems.map((subMenuItem) => {
296
- return this.createAgGridContextMenuDefFromUserMenu(subMenuItem, menuContext);
297
- }),
298
- };
299
- }
300
- mapAdaptableIconToAgGridIcon(adaptableIcon, style) {
301
- const icon = this.adaptable.api.userInterfaceApi.internalApi.prepareAdaptableIconDef(adaptableIcon);
302
- if ((0, Icon_1.isAdaptableElementIcon)(icon)) {
303
- let element = icon.element;
304
- if (typeof element === 'string') {
305
- return element;
306
- }
307
- // THe element neets to be cloned.
308
- // when it is used in more than one plce the element is removed from the DOM
309
- return element.cloneNode(true);
310
- }
311
- else {
312
- return (0, icons_1.iconToString)(icon, {
313
- fill: 'var(--ab-color-text-on-primary)',
314
- });
315
- }
316
- }
317
- createAdaptableColumnMenuItemFromUserMenu(menuItem, menuContext) {
318
- const fn = menuItem.onClick;
319
- let adaptableMenuItem = {
320
- module: 'General',
321
- label: this.getLabelFromUserColumnMenuItem(menuItem, menuContext),
322
- reduxAction: null,
323
- onClick: () => (fn ? fn(menuContext) : null),
324
- isVisible: true,
325
- icon: menuItem.icon,
326
- };
327
- return adaptableMenuItem;
328
- }
329
- createAgGridColumnMenuItems(originalgetMainMenuItems, params) {
330
- // if there was an initial implementation we init the list of menu items with this one; otherwise we take the default items
331
- return originalgetMainMenuItems
332
- ? originalgetMainMenuItems(params)
333
- : params.defaultItems.slice(0);
334
- }
335
- createAdaptableColumnMenuItems_DEPRECATED(adaptableColumn, menuContext) {
336
- let columnMenuItems = [];
337
- // First get all the Module based Adaptable Menu Items
338
- const adaptableMenuItems = this.getAdaptableMenuItemsColumnHeader(adaptableColumn, menuContext);
339
- // sort Adaptable menu items by default order
340
- adaptableMenuItems.sort((first, second) => {
341
- const firstPriority = MenuOptions_1.DEFAULT_ADAPTABLE_COLUMN_MENU_ORDER.indexOf(first.module);
342
- const secondPriority = MenuOptions_1.DEFAULT_ADAPTABLE_COLUMN_MENU_ORDER.indexOf(second.module);
343
- return firstPriority - secondPriority;
344
- });
345
- // And then convert them into Menu Item Defs
346
- adaptableMenuItems.forEach((adaptableMenuItem) => {
347
- let menuItem = this.createAgGridMenuDefFromAdaptableMenu(adaptableMenuItem);
348
- columnMenuItems.push(menuItem);
349
- });
350
- return columnMenuItems;
351
- }
352
- createUserColumnMenuItems(menuContext) {
353
- let columnMenuItems = [];
354
- let userColumnMenuItems = this.getUserMenuItemsColumnHeader(menuContext);
355
- if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(userColumnMenuItems)) {
356
- userColumnMenuItems.forEach((userMenuItem) => {
357
- // And then convert them into Menu Item Defs
358
- let menuItem = this.createAgGridColumnMenuDefFromUserMenu(userMenuItem, menuContext);
359
- columnMenuItems.push(menuItem);
360
- });
361
- }
362
- return columnMenuItems;
363
- }
364
- createColumnMenuContextObject(adaptableColumn, agGridColumn) {
365
- return {
366
- adaptableColumn: adaptableColumn,
367
- agGridColumn: agGridColumn,
368
- adaptableApi: this.adaptable.api,
369
- userName: this.adaptable.adaptableOptions.userName,
370
- adaptableId: this.adaptable.adaptableOptions.adaptableId,
371
- isRowGroupColumn: this.adaptable.api.columnApi.isAutoRowGroupColumn(agGridColumn.getColId()),
372
- };
373
- }
374
- createContextMenuContextObject(params, adaptableColumn) {
375
- // lets build a picture of what has been right clicked. Will take time to get right but lets start
376
- let isSingleSelectedColumn = false;
377
- let isSelectedCell = false;
378
- let isSelectedRow = false;
379
- // row group columns dont provide an AdapTable Column so return bare minimum
380
- if (!adaptableColumn) {
381
- return {
382
- isSelectedCell: false,
383
- isSelectedRow: false,
384
- gridCell: undefined,
385
- adaptableColumn: undefined,
386
- agGridColumn: params.column,
387
- rowNode: params.node,
388
- isGroupedNode: params.node ? params.node.group : false,
389
- isSingleSelectedColumn: false,
390
- isSingleSelectedCell: false,
391
- primaryKeyValue: undefined,
392
- adaptableApi: this.adaptable.api,
393
- userName: this.adaptable.adaptableOptions.userName,
394
- adaptableId: this.adaptable.adaptableOptions.adaptableId,
395
- selectedCellInfo: undefined,
396
- selectedRowInfo: undefined,
397
- isRowGroupColumn: this.adaptable.api.columnApi.isAutoRowGroupColumn(params.column.getColId()),
398
- };
399
- }
400
- const clickedCell = this.adaptable.getGridCellFromRowNode(params.node, adaptableColumn.columnId);
401
- const selectedCellInfo = this.adaptable.api.gridApi.getSelectedCellInfo();
402
- if (selectedCellInfo) {
403
- let matchedCell = selectedCellInfo.gridCells.find((gc) => gc != null &&
404
- gc.column == clickedCell.column &&
405
- gc.primaryKeyValue == clickedCell.primaryKeyValue);
406
- isSelectedCell = matchedCell != null;
407
- if (isSelectedCell) {
408
- isSingleSelectedColumn = ArrayExtensions_1.ArrayExtensions.CorrectLength(selectedCellInfo.columns, 1);
409
- }
410
- }
411
- const selectedRowInfo = this.adaptable.api.gridApi.getSelectedRowInfo();
412
- if (selectedRowInfo) {
413
- const matchedPKValue = selectedRowInfo.gridRows.find((gr) => gr != null && gr.primaryKeyValue == clickedCell.primaryKeyValue);
414
- isSelectedRow = matchedPKValue != null;
415
- }
416
- return {
417
- isSelectedCell: isSelectedCell,
418
- isSelectedRow: isSelectedRow,
419
- gridCell: clickedCell,
420
- adaptableColumn: adaptableColumn,
421
- agGridColumn: params.column,
422
- rowNode: params.node,
423
- isGroupedNode: params.node ? params.node.group : false,
424
- isSingleSelectedColumn: isSingleSelectedColumn,
425
- isSingleSelectedCell: isSelectedCell && (selectedCellInfo === null || selectedCellInfo === void 0 ? void 0 : selectedCellInfo.gridCells.length) == 1,
426
- primaryKeyValue: clickedCell ? clickedCell.primaryKeyValue : undefined,
427
- adaptableApi: this.adaptable.api,
428
- userName: this.adaptable.adaptableOptions.userName,
429
- adaptableId: this.adaptable.adaptableOptions.adaptableId,
430
- selectedCellInfo: selectedCellInfo,
431
- selectedRowInfo: selectedRowInfo,
432
- isRowGroupColumn: this.adaptable.api.columnApi.isAutoRowGroupColumn(params.column.getColId()),
433
- };
434
- }
435
- createAgGridContextMenuItems(originalgetContextMenuItems, params) {
436
- // if there was an initial implementation we init the list of menu items with this one, otherwise we take default items
437
- // this allows us to ensure that devs can still create their own agGrid context menu without losing ours
438
- return originalgetContextMenuItems
439
- ? originalgetContextMenuItems(params).slice(0)
440
- : params.defaultItems
441
- ? params.defaultItems.slice(0)
442
- : [];
443
- }
444
- createAdaptableContextMenuItems(menuContext) {
445
- let contextMenuItems = [];
446
- this.adaptable.adaptableModules.forEach((module) => {
447
- let menuItems = module.addContextMenuItems(menuContext);
448
- if (menuItems) {
449
- contextMenuItems.push(...menuItems.filter(Boolean).filter((item) => item.isVisible !== false));
450
- }
451
- });
452
- this.adaptable._emitSync('CreateAdaptableContextMenuItems', {
453
- items: contextMenuItems,
454
- menuContext: menuContext,
455
- });
456
- return contextMenuItems;
457
- }
458
- createAgGridAdaptableContextMenuItems(adaptableMenuItems, menuContext) {
459
- // here we create agGrid Menu items based on Adaptable Menu Items
460
- // user has ability to decide whether to show or not
461
- let contextMenuItems = [];
462
- let showAdaptableContextMenu = this.adaptable.adaptableOptions.menuOptions.showAdaptableContextMenu;
463
- if (showAdaptableContextMenu == null || showAdaptableContextMenu !== false) {
464
- adaptableMenuItems.forEach((adaptableMenuItem) => {
465
- if (adaptableMenuItem) {
466
- let addContextMenuItem = true;
467
- if (showAdaptableContextMenu != null && typeof showAdaptableContextMenu === 'function') {
468
- addContextMenuItem = showAdaptableContextMenu(adaptableMenuItem, menuContext);
469
- }
470
- if (addContextMenuItem) {
471
- let menuItem = this.createAgGridMenuDefFromAdaptableMenu(adaptableMenuItem);
472
- contextMenuItems.push(menuItem);
473
- }
474
- }
475
- });
476
- }
477
- return contextMenuItems;
478
- }
479
- createAgGridUserContextMenuItems(userContextMenuItems, menuContext) {
480
- // here we create agGrid Menu items based on Adaptable Menu Items
481
- // user has ability to decide whether to show or not
482
- let contextMenuItems = [];
483
- userContextMenuItems
484
- .filter((userMenuItem) => !!userMenuItem)
485
- .filter((userMenuItem) => {
486
- return userMenuItem.hidden ? !userMenuItem.hidden(menuContext) : true;
487
- })
488
- .forEach((userMenuItem) => {
489
- let menuItem = this.createAgGridContextMenuDefFromUserMenu(userMenuItem, menuContext);
490
- contextMenuItems.push(menuItem);
491
- });
492
- return contextMenuItems;
493
- }
494
- // method to get all the Adaptable Menu Items - together with running the function where user can choose whether or not to display
495
- getAdaptableMenuItemsColumnHeader(adaptableColumn, menuContext) {
496
- const adaptableMenuItems = [];
497
- let showAdaptableColumnMenu = this.adaptable.adaptableOptions.menuOptions.showAdaptableColumnMenu;
498
- let runCheck = showAdaptableColumnMenu == null || showAdaptableColumnMenu !== false;
499
- // if (adaptableColumn != null) {
500
- this.adaptable.adaptableModules.forEach((s) => {
501
- let menuItems = s.addColumnMenuItems(adaptableColumn);
502
- if (menuItems) {
503
- if (runCheck) {
504
- menuItems.forEach((adaptableMenuItem) => {
505
- if (adaptableMenuItem) {
506
- let addColumnMenuItem = true;
507
- if (showAdaptableColumnMenu != null &&
508
- typeof showAdaptableColumnMenu === 'function') {
509
- addColumnMenuItem = showAdaptableColumnMenu(adaptableMenuItem, menuContext);
510
- }
511
- if (addColumnMenuItem) {
512
- adaptableMenuItems.push(adaptableMenuItem);
513
- }
514
- }
515
- });
516
- }
517
- else {
518
- adaptableMenuItems.push(...menuItems);
519
- }
520
- }
521
- });
522
- // }
523
- return adaptableMenuItems;
524
- }
525
- getLabelFromUserColumnMenuItem(userColumnMenuItem, menuContext) {
526
- return typeof userColumnMenuItem.label === 'function'
527
- ? userColumnMenuItem.label(menuContext)
528
- : userColumnMenuItem.label;
529
- }
530
- getLabelFromUserContextMenuItem(userContextMenuItem, menuContext) {
531
- return typeof userContextMenuItem.label === 'function'
532
- ? userContextMenuItem.label(menuContext)
533
- : userContextMenuItem.label;
534
- }
535
- getUserMenuItemsColumnHeader(menuContext) {
536
- var _a, _b;
537
- return (_b = (_a = this.adaptable.adaptableOptions.menuOptions) === null || _a === void 0 ? void 0 : _a.columnMenuItems) === null || _b === void 0 ? void 0 : _b.filter((userMenuItem) => {
538
- return userMenuItem.hidden ? !userMenuItem.hidden(menuContext) : true;
539
- });
540
- }
541
- buildStandaloneColumnHeader(adaptableColumn) {
542
- const agGridColumn = this.adaptable.api.columnApi.internalApi.getAgGridColumnForAdaptableColumn(adaptableColumn.columnId);
543
- let menuContext = this.createColumnMenuContextObject(adaptableColumn, agGridColumn);
544
- let returnMenuItems = [];
545
- returnMenuItems.push(...this.getAdaptableMenuItemsColumnHeader(adaptableColumn, menuContext));
546
- let userColumnMenuItems = this.getUserMenuItemsColumnHeader(menuContext);
547
- if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(userColumnMenuItems)) {
548
- userColumnMenuItems.forEach((userMenuItem) => {
549
- let adaptableMenuItem = this.createAdaptableColumnMenuItemFromUserMenu(userMenuItem, menuContext);
550
- returnMenuItems.push(adaptableMenuItem);
551
- });
552
- }
553
- return returnMenuItems;
554
- }
555
- /**
556
- * !!! This should be deleted once MenuOptions loses all the deprecated options
557
- */
558
- buildContextMenuDeprecated(params, originalGetContextMenuItems) {
559
- let agGridContextMenuItems = [];
560
- let adaptableContextMenuItems = [];
561
- let userContextMenuItems = [];
562
- const menuOptions = this.adaptable.adaptableOptions.menuOptions;
563
- let showAdaptableContextMenu = menuOptions.showAdaptableContextMenu;
564
- let hasAdaptableContextMenuItems = showAdaptableContextMenu == null || showAdaptableContextMenu !== false;
565
- let userDefinedContextMenuItems = menuOptions.contextMenuItems;
566
- let hasUserDefinedContextMenuItems = ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(userDefinedContextMenuItems);
567
- const agGridMenuItems = this.createAgGridContextMenuItems(originalGetContextMenuItems, params);
568
- if (agGridMenuItems === null || agGridMenuItems === void 0 ? void 0 : agGridMenuItems.length) {
569
- agGridContextMenuItems.push(...agGridMenuItems);
570
- if (hasAdaptableContextMenuItems || hasUserDefinedContextMenuItems) {
571
- agGridContextMenuItems.push('separator');
572
- }
573
- }
574
- const adaptableMenuItems = [];
575
- const agGridColumn = params.column;
576
- let adaptableColumn;
577
- if (agGridColumn) {
578
- adaptableColumn = this.adaptable.api.columnApi.getColumnWithColumnId(agGridColumn.getColId());
579
- // if (adaptableColumn != undefined) {
580
- let menuContext = this.createContextMenuContextObject(params, adaptableColumn);
581
- // keep it simple for now - if its a grouped cell then don't add the shipped menu items
582
- // if (adaptableColumn && !params.node.group) {
583
- const allAdaptableMenuItems = this.createAdaptableContextMenuItems(menuContext);
584
- if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(allAdaptableMenuItems)) {
585
- adaptableMenuItems.push(...allAdaptableMenuItems);
586
- }
587
- adaptableMenuItems.sort((first, second) => {
588
- const firstPriority = MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE.indexOf(first.module);
589
- const secondPriority = MenuOptions_1.DEFAULT_ADAPTABLE_CONTEXT_MENU_STRUCTURE.indexOf(second.module);
590
- return firstPriority - secondPriority;
591
- });
592
- // }
593
- // create agGrid Menu items based on Adaptable Menu Items - user can decide whether to show or not
594
- if (ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(adaptableMenuItems) && hasAdaptableContextMenuItems) {
595
- adaptableContextMenuItems.push(...this.createAgGridAdaptableContextMenuItems(adaptableMenuItems, menuContext));
596
- }
597
- // create agGrid Menu items based on User Menu Items - user can decide whether to show or not
598
- if (hasUserDefinedContextMenuItems) {
599
- userContextMenuItems.push(...this.createAgGridUserContextMenuItems(userDefinedContextMenuItems, menuContext));
600
- }
601
- }
602
- const map = {
603
- aggrid: agGridContextMenuItems,
604
- adaptable: adaptableContextMenuItems,
605
- user: userContextMenuItems,
606
- };
607
- const menuItemsArray = menuOptions.contextMenuOrder;
608
- let arr = [];
609
- if (menuItemsArray != null && typeof menuItemsArray === 'function') {
610
- arr = menuItemsArray({
611
- adaptableApi: this.adaptable.api,
612
- userName: this.adaptable.adaptableOptions.userName,
613
- adaptableId: this.adaptable.adaptableOptions.adaptableId,
614
- column: adaptableColumn,
615
- });
616
- }
617
- else {
618
- arr = menuItemsArray;
619
- }
620
- return (0, flatten_1.default)(arr.map((c) => {
621
- return map[c];
622
- }));
623
- }
624
- /**
625
- * !!! This should be deleted once MenuOptions loses all the deprecated options
626
- */
627
- buildColumnMenuDeprecated(params, originalgetMainMenuItems) {
628
- // couldnt find a way to listen for menu close. There is a Menu Item Select, but you can also close menu from filter and clicking outside menu....
629
- const colId = params.column.getColId();
630
- let agGridColumnMenuItems = [];
631
- let adaptableColumnMenuItems = [];
632
- let userColumnMenuItems = [];
633
- const menuOptions = this.adaptable.adaptableOptions.menuOptions;
634
- //First get Ag Grid Column Items
635
- agGridColumnMenuItems.push(...this.createAgGridColumnMenuItems(originalgetMainMenuItems, params));
636
- let showAdaptableColumnMenu = menuOptions.showAdaptableColumnMenu;
637
- let hasAdaptableColumnMenuItems = showAdaptableColumnMenu == null || showAdaptableColumnMenu !== false;
638
- if (hasAdaptableColumnMenuItems) {
639
- agGridColumnMenuItems.push('separator');
640
- }
641
- const adaptableColumn = this.adaptable.api.columnApi.getColumnWithColumnId(colId);
642
- const menuContext = this.createColumnMenuContextObject(adaptableColumn, params.column);
643
- // if (adaptableColumn != undefined) {
644
- if (hasAdaptableColumnMenuItems) {
645
- adaptableColumnMenuItems.push(...this.createAdaptableColumnMenuItems_DEPRECATED(adaptableColumn, menuContext));
646
- }
647
- // }
648
- // Finally get all the User Menu Items
649
- userColumnMenuItems.push(...this.createUserColumnMenuItems(menuContext));
650
- const map = {
651
- aggrid: agGridColumnMenuItems,
652
- adaptable: adaptableColumnMenuItems,
653
- user: userColumnMenuItems,
654
- };
655
- const menuItemsArray = menuOptions.columnMenuOrder;
656
- let arr = [];
657
- if (menuItemsArray != null && typeof menuItemsArray === 'function') {
658
- arr = menuItemsArray({
659
- adaptableApi: this.adaptable.api,
660
- userName: this.adaptable.adaptableOptions.userName,
661
- adaptableId: this.adaptable.adaptableOptions.adaptableId,
662
- column: adaptableColumn,
663
- });
664
- }
665
- else {
666
- arr = menuItemsArray;
667
- }
668
- return (0, flatten_1.default)(arr.map((c) => {
669
- return map[c];
670
- }));
671
- }
672
- }
673
- exports.agGridMenuHelper = agGridMenuHelper;