@adaptabletools/adaptable-cjs 18.0.0-canary.25 → 18.0.0-canary.27

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 (136) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -1
  3. package/src/AdaptableOptions/CommentOptions.d.ts +2 -2
  4. package/src/AdaptableOptions/MenuOptions.d.ts +11 -23
  5. package/src/AdaptableOptions/MenuOptions.js +0 -98
  6. package/src/Api/GridApi.d.ts +2 -1
  7. package/src/Api/Implementation/ActionRowApiImpl.js +3 -7
  8. package/src/Api/Implementation/AlertApiImpl.js +5 -10
  9. package/src/Api/Implementation/CalendarApiImpl.js +1 -6
  10. package/src/Api/Implementation/ChartingApiImpl.js +3 -3
  11. package/src/Api/Implementation/ColumnApiImpl.js +6 -6
  12. package/src/Api/Implementation/ColumnFilterApiImpl.js +7 -7
  13. package/src/Api/Implementation/CommentsApiImpl.js +1 -1
  14. package/src/Api/Implementation/ConfigApiImpl.js +11 -17
  15. package/src/Api/Implementation/DashboardApiImpl.js +1 -6
  16. package/src/Api/Implementation/ExportApiImpl.js +5 -10
  17. package/src/Api/Implementation/ExpressionApiImpl.js +8 -13
  18. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -1
  19. package/src/Api/Implementation/FlashingCellApiImpl.js +3 -8
  20. package/src/Api/Implementation/FormatColumnApiImpl.js +4 -4
  21. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -1
  22. package/src/Api/Implementation/GridApiImpl.d.ts +2 -1
  23. package/src/Api/Implementation/GridApiImpl.js +11 -8
  24. package/src/Api/Implementation/LayoutApiImpl.d.ts +0 -7
  25. package/src/Api/Implementation/LayoutApiImpl.js +0 -15
  26. package/src/Api/Implementation/PredicateApiImpl.js +2 -2
  27. package/src/Api/Implementation/ScheduleApiImpl.js +6 -6
  28. package/src/Api/Implementation/ScopeApiImpl.js +10 -10
  29. package/src/Api/Implementation/TeamSharingApiImpl.js +3 -15
  30. package/src/Api/Implementation/ThemeApiImpl.js +2 -7
  31. package/src/Api/Implementation/UserInterfaceApiImpl.js +4 -13
  32. package/src/Api/Internal/ActionRowInternalApi.js +7 -45
  33. package/src/Api/Internal/AdaptableInternalApi.js +2 -12
  34. package/src/Api/Internal/AlertInternalApi.js +4 -17
  35. package/src/Api/Internal/CalculatedColumnInternalApi.js +7 -14
  36. package/src/Api/Internal/ChartingInternalApi.js +13 -13
  37. package/src/Api/Internal/ColumnFilterInternalApi.js +18 -36
  38. package/src/Api/Internal/CommentsInternalApi.d.ts +1 -1
  39. package/src/Api/Internal/CommentsInternalApi.js +1 -1
  40. package/src/Api/Internal/CustomSortInternalApi.js +1 -1
  41. package/src/Api/Internal/DashboardInternalApi.js +4 -10
  42. package/src/Api/Internal/DataImportInternalApi.js +3 -9
  43. package/src/Api/Internal/DataSetInternalApi.js +2 -7
  44. package/src/Api/Internal/ExportInternalApi.js +4 -4
  45. package/src/Api/Internal/ExpressionInternalApi.js +2 -12
  46. package/src/Api/Internal/Fdc3InternalApi.js +1 -10
  47. package/src/Api/Internal/FormatColumnInternalApi.js +11 -20
  48. package/src/Api/Internal/FreeTextColumnInternalApi.js +1 -1
  49. package/src/Api/Internal/GridFilterInternalApi.js +2 -8
  50. package/src/Api/Internal/GridInternalApi.js +13 -40
  51. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  52. package/src/Api/Internal/LayoutInternalApi.js +10 -19
  53. package/src/Api/Internal/NoteInternalApi.d.ts +1 -1
  54. package/src/Api/Internal/NoteInternalApi.js +1 -1
  55. package/src/Api/Internal/PredicateInternalApi.js +5 -40
  56. package/src/Api/Internal/ScheduleInternalApi.js +1 -6
  57. package/src/Api/Internal/StyledColumnInternalApi.js +5 -5
  58. package/src/Api/Internal/SystemStatusInternalApi.js +1 -7
  59. package/src/Api/Internal/TeamSharingInternalApi.js +2 -7
  60. package/src/Api/Internal/ThemeInternalApi.js +1 -1
  61. package/src/Api/Internal/UserInterfaceInternalApi.js +1 -1
  62. package/src/Api/LayoutApi.d.ts +0 -11
  63. package/src/PredefinedConfig/Common/CellSummary.d.ts +5 -14
  64. package/src/PredefinedConfig/Common/Enums.d.ts +2 -0
  65. package/src/PredefinedConfig/Common/Enums.js +2 -0
  66. package/src/PredefinedConfig/Common/Menu.d.ts +4 -4
  67. package/src/PredefinedConfig/Common/Menu.js +17 -18
  68. package/src/PredefinedConfig/Common/RowSummary.d.ts +1 -1
  69. package/src/PredefinedConfig/Common/RowSummary.js +4 -4
  70. package/src/Strategy/AdaptableModuleBase.d.ts +3 -4
  71. package/src/Strategy/AdaptableModuleBase.js +5 -9
  72. package/src/Strategy/AlertModule.d.ts +1 -1
  73. package/src/Strategy/AlertModule.js +1 -1
  74. package/src/Strategy/BulkUpdateModule.d.ts +1 -1
  75. package/src/Strategy/BulkUpdateModule.js +3 -2
  76. package/src/Strategy/CalculatedColumnModule.d.ts +2 -2
  77. package/src/Strategy/CalculatedColumnModule.js +2 -2
  78. package/src/Strategy/CellSummaryModule.d.ts +2 -2
  79. package/src/Strategy/CellSummaryModule.js +56 -96
  80. package/src/Strategy/ColumnFilterModule.d.ts +2 -2
  81. package/src/Strategy/ColumnFilterModule.js +17 -42
  82. package/src/Strategy/ColumnInfoModule.d.ts +2 -2
  83. package/src/Strategy/ColumnInfoModule.js +2 -2
  84. package/src/Strategy/CommentModule.d.ts +1 -2
  85. package/src/Strategy/CommentModule.js +29 -30
  86. package/src/Strategy/CustomSortModule.d.ts +1 -1
  87. package/src/Strategy/CustomSortModule.js +1 -1
  88. package/src/Strategy/DashboardModule.d.ts +2 -2
  89. package/src/Strategy/DashboardModule.js +3 -14
  90. package/src/Strategy/DataImportModule.d.ts +3 -3
  91. package/src/Strategy/DataImportModule.js +3 -3
  92. package/src/Strategy/ExportModule.d.ts +1 -2
  93. package/src/Strategy/ExportModule.js +12 -41
  94. package/src/Strategy/Fdc3Module.d.ts +1 -1
  95. package/src/Strategy/Fdc3Module.js +1 -14
  96. package/src/Strategy/FlashingCellModule.d.ts +2 -2
  97. package/src/Strategy/FlashingCellModule.js +2 -2
  98. package/src/Strategy/FormatColumnModule.d.ts +1 -1
  99. package/src/Strategy/FormatColumnModule.js +28 -47
  100. package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
  101. package/src/Strategy/FreeTextColumnModule.js +1 -1
  102. package/src/Strategy/GridInfoModule.d.ts +2 -2
  103. package/src/Strategy/GridInfoModule.js +2 -2
  104. package/src/Strategy/Interface/IModule.d.ts +3 -3
  105. package/src/Strategy/LayoutModule.d.ts +4 -4
  106. package/src/Strategy/LayoutModule.js +51 -72
  107. package/src/Strategy/NoteModule.d.ts +1 -2
  108. package/src/Strategy/NoteModule.js +28 -30
  109. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  110. package/src/Strategy/PlusMinusModule.js +1 -1
  111. package/src/Strategy/SettingsPanelModule.d.ts +3 -3
  112. package/src/Strategy/SettingsPanelModule.js +3 -3
  113. package/src/Strategy/SmartEditModule.d.ts +1 -1
  114. package/src/Strategy/SmartEditModule.js +3 -2
  115. package/src/Strategy/StyledColumnModule.d.ts +1 -1
  116. package/src/Strategy/StyledColumnModule.js +10 -9
  117. package/src/Strategy/SystemStatusModule.d.ts +2 -2
  118. package/src/Strategy/SystemStatusModule.js +4 -3
  119. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +1 -1
  120. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +19 -19
  121. package/src/Utilities/Helpers/AdaptableHelper.js +3 -2
  122. package/src/Utilities/ObjectFactory.js +2 -0
  123. package/src/Utilities/Services/ModuleService.js +2 -2
  124. package/src/View/Layout/Wizard/LayoutWizard.js +1 -0
  125. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +17 -1
  126. package/src/View/Layout/Wizard/sections/RowSummarySection.js +5 -5
  127. package/src/agGrid/AdaptableAgGrid.d.ts +1 -1
  128. package/src/agGrid/AdaptableAgGrid.js +1 -1
  129. package/src/agGrid/AgGridAdapter.d.ts +1 -2
  130. package/src/agGrid/AgGridColumnAdapter.js +2 -2
  131. package/src/agGrid/AgGridMenuAdapter.d.ts +18 -8
  132. package/src/agGrid/AgGridMenuAdapter.js +240 -51
  133. package/src/env.js +2 -2
  134. package/src/metamodel/adaptable.metamodel.d.ts +8 -2
  135. package/src/metamodel/adaptable.metamodel.js +1 -1
  136. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -21,10 +21,10 @@ class DashboardModule extends AdaptableModuleBase_1.AdaptableModuleBase {
21
21
  this.api.dashboardApi.internalApi.fireDashboardChangedEvent('ADAPTABLE_READY', null, this.api.dashboardApi.getDashboardState());
22
22
  }, 20);
23
23
  }
24
- addColumnMenuItems() {
24
+ createColumnMenuItems() {
25
25
  return this.buildMenuItems();
26
26
  }
27
- addContextMenuItems(menuContext) {
27
+ createContextMenuItems(menuContext) {
28
28
  return this.buildMenuItems();
29
29
  }
30
30
  buildMenuItems() {
@@ -51,18 +51,7 @@ class DashboardModule extends AdaptableModuleBase_1.AdaptableModuleBase {
51
51
  else {
52
52
  menuItems.push(this.createMenuItemReduxAction('dashboard-hide', 'Hide', 'visibility-off-bold', DashboardRedux.DashboardSetIsHidden(true)));
53
53
  }
54
- return [
55
- {
56
- name: 'dashboard-parent',
57
- label: this.moduleInfo.FriendlyName,
58
- isVisible: true,
59
- module: this.moduleInfo.ModuleName,
60
- icon: {
61
- name: 'dashboard',
62
- },
63
- subItems: menuItems,
64
- },
65
- ];
54
+ return menuItems;
66
55
  }
67
56
  }
68
57
  }
@@ -4,8 +4,8 @@ import { AdaptableModuleBase } from './AdaptableModuleBase';
4
4
  import { IModule } from './Interface/IModule';
5
5
  export declare class DataImportModule extends AdaptableModuleBase implements IModule {
6
6
  constructor(api: AdaptableApi);
7
- addModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
8
- addContextMenuItems(): AdaptableMenuItem[] | undefined;
9
- addColumnMenuItems(): AdaptableMenuItem[] | undefined;
7
+ createModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
8
+ createContextMenuItems(): AdaptableMenuItem[] | undefined;
9
+ createColumnMenuItems(): AdaptableMenuItem[] | undefined;
10
10
  private createDataImportMenuItem;
11
11
  }
@@ -8,18 +8,18 @@ class DataImportModule extends AdaptableModuleBase_1.AdaptableModuleBase {
8
8
  constructor(api) {
9
9
  super(ModuleConstants.DataImportModuleId, ModuleConstants.DataImportFriendyName, 'import', 'DataImportPopup', 'Import Data', api);
10
10
  }
11
- addModuleMenuItem(source) {
11
+ createModuleMenuItem(source) {
12
12
  if (this.isModuleAvailable()) {
13
13
  return this.createDataImportMenuItem(source);
14
14
  }
15
15
  }
16
- addContextMenuItems() {
16
+ createContextMenuItems() {
17
17
  if (this.isModuleAvailable()) {
18
18
  return [this.createDataImportMenuItem('ContextMenu')];
19
19
  }
20
20
  return undefined;
21
21
  }
22
- addColumnMenuItems() {
22
+ createColumnMenuItems() {
23
23
  if (this.isModuleAvailable()) {
24
24
  return [this.createDataImportMenuItem('ColumnMenu')];
25
25
  }
@@ -12,9 +12,8 @@ export declare class ExportModule extends AdaptableModuleBase implements IExport
12
12
  getModuleAdaptableObjects(): AdaptableObject[];
13
13
  getExplicitlyReferencedColumnIds(report: Report): string[];
14
14
  getReferencedNamedQueryNames(report: Report): string[];
15
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
15
+ createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
16
16
  private buildReportMenuItems;
17
- private buildExportMenuItem;
18
17
  private getMenuName;
19
18
  export(report: Report, exportDestination: ExportDestination | string): Promise<void>;
20
19
  private preProcessExport;
@@ -44,14 +44,12 @@ class ExportModule extends AdaptableModuleBase_1.AdaptableModuleBase {
44
44
  }
45
45
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(report.Query.BooleanExpression);
46
46
  }
47
- addContextMenuItems(menuContext) {
47
+ createContextMenuItems(menuContext) {
48
48
  const canExport = !menuContext.isRowGroupColumn && this.isModuleAvailable();
49
49
  if (!canExport) {
50
50
  return;
51
51
  }
52
52
  let returnMenuItems = [];
53
- let selectedCellmenuItems = [];
54
- let selectedRowmenuItems = [];
55
53
  const canExportCells = menuContext.selectedCellInfo &&
56
54
  ArrayExtensions_1.default.IsNotNullOrEmpty(menuContext.selectedCellInfo.columns) &&
57
55
  ArrayExtensions_1.default.IsNotNullOrEmpty(menuContext.selectedCellInfo.gridCells);
@@ -62,63 +60,36 @@ class ExportModule extends AdaptableModuleBase_1.AdaptableModuleBase {
62
60
  menuContext.isSelectedRow;
63
61
  if (canExportCells) {
64
62
  const selectedCellReport = this.api.exportApi.getReportByName(GeneralConstants_1.SELECTED_CELLS_REPORT);
65
- selectedCellmenuItems = this.buildReportMenuItems(selectedCellReport);
63
+ returnMenuItems.push(...this.buildReportMenuItems(selectedCellReport, 'cells'));
66
64
  }
67
65
  if (canExportRows) {
68
66
  const selectedRowReport = this.api.exportApi.getReportByName(GeneralConstants_1.SELECTED_ROWS_REPORT);
69
- selectedRowmenuItems = this.buildReportMenuItems(selectedRowReport);
70
- }
71
- // if only selected cells then just do one level
72
- if (canExportCells && !canExportRows) {
73
- returnMenuItems.push(this.buildExportMenuItem('Export Selected Cells', selectedCellmenuItems));
74
- // if only selected Rows then just do one level
75
- }
76
- else if (canExportRows && !canExportCells) {
77
- returnMenuItems.push(this.buildExportMenuItem('Export Selected Rows', selectedRowmenuItems));
78
- }
79
- // if both selected Cells and Rows then add a new level
80
- else if (canExportRows && canExportCells) {
81
- const exportSelectedCellsMenuItem = this.buildExportMenuItem('Cells', selectedCellmenuItems);
82
- const exportSelectedRowsMenuItem = this.buildExportMenuItem('Rows', selectedRowmenuItems);
83
- returnMenuItems.push(this.buildExportMenuItem('Export Selected', [
84
- exportSelectedCellsMenuItem,
85
- exportSelectedRowsMenuItem,
86
- ]));
67
+ returnMenuItems.push(...this.buildReportMenuItems(selectedRowReport, 'rows'));
87
68
  }
88
69
  return returnMenuItems;
89
70
  }
90
- buildReportMenuItems(report) {
71
+ buildReportMenuItems(report, selectionType) {
91
72
  const menuItems = [];
92
73
  for (const destination of this.api.exportApi.getAvailableExportDestinations()) {
93
- menuItems.push(this.createMenuItemClickFunction(this.getMenuName(destination), destination, this.moduleInfo.Glyph, () => this.export(report, destination)));
74
+ menuItems.push(this.createMenuItemClickFunction(this.getMenuName(destination, selectionType), destination, this.moduleInfo.Glyph, () => this.export(report, destination)));
94
75
  }
95
76
  for (const customDestination of this.api.exportApi.getCustomDestinations()) {
96
- menuItems.push(this.createMenuItemClickFunction('export-custom-destination', customDestination.name, this.moduleInfo.Glyph, () => this.export(report, customDestination.name)));
77
+ menuItems.push(this.createMenuItemClickFunction(`export-${selectionType}-custom-destination`, customDestination.name, this.moduleInfo.Glyph, () => this.export(report, customDestination.name)));
97
78
  }
98
79
  return menuItems;
99
80
  }
100
- buildExportMenuItem(label, subItems) {
101
- return {
102
- name: 'export-parent',
103
- label: label,
104
- module: this.moduleInfo.ModuleName,
105
- isVisible: true,
106
- icon: { name: this.moduleInfo.Glyph },
107
- subItems: subItems,
108
- };
109
- }
110
- getMenuName(exportDestination) {
81
+ getMenuName(exportDestination, selectionType) {
111
82
  switch (exportDestination) {
112
83
  case Enums_1.ExportDestination.CSV:
113
- return 'export-csv';
84
+ return `export-${selectionType}-csv`;
114
85
  case Enums_1.ExportDestination.Clipboard:
115
- return 'export-clipboard';
86
+ return `export-${selectionType}-clipboard`;
116
87
  case Enums_1.ExportDestination.Excel:
117
- return 'export-excel';
88
+ return `export-${selectionType}-excel`;
118
89
  case Enums_1.ExportDestination.JSON:
119
- return 'export-json';
90
+ return `export-${selectionType}-json`;
120
91
  case Enums_1.ExportDestination.Table:
121
- return 'export-table';
92
+ return `export-${selectionType}-table`;
122
93
  }
123
94
  }
124
95
  async export(report, exportDestination) {
@@ -4,7 +4,7 @@ import { AdaptableApi } from '../Api/AdaptableApi';
4
4
  import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
5
5
  export declare class Fdc3Module extends AdaptableModuleBase implements IModule {
6
6
  constructor(api: AdaptableApi);
7
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
7
+ createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
8
8
  private buildRaiseIntentMenuItem;
9
9
  private buildBroadcastMenuItem;
10
10
  private getFdc3Api;
@@ -8,7 +8,7 @@ class Fdc3Module extends AdaptableModuleBase_1.AdaptableModuleBase {
8
8
  constructor(api) {
9
9
  super(ModuleConstants.Fdc3ModuleId, ModuleConstants.Fdc3FriendlyName, 'fdc3', null, 'The FDC3 Module - handles the FDC3 integration', api);
10
10
  }
11
- addContextMenuItems(menuContext) {
11
+ createContextMenuItems(menuContext) {
12
12
  if (!this.isModuleAvailable()) {
13
13
  return;
14
14
  }
@@ -29,19 +29,6 @@ class Fdc3Module extends AdaptableModuleBase_1.AdaptableModuleBase {
29
29
  contextMenuItems.push(this.buildBroadcastMenuItem(broadcastConfig, currentRowNode));
30
30
  });
31
31
  contextMenuItems.sort((a, b) => a.label.localeCompare(b.label));
32
- if (contextMenuItems.length > 1) {
33
- const groupMenuItem = {
34
- name: 'fdc3-parent',
35
- module: this.moduleInfo.ModuleName,
36
- label: 'FDC3',
37
- icon: {
38
- name: 'fdc3',
39
- },
40
- isVisible: true,
41
- subItems: contextMenuItems,
42
- };
43
- return [groupMenuItem];
44
- }
45
32
  return contextMenuItems;
46
33
  }
47
34
  }
@@ -15,8 +15,8 @@ export declare class FlashingCellModule extends AdaptableModuleBase implements I
15
15
  }): AdaptableObject[];
16
16
  getExplicitlyReferencedColumnIds(alertDefinition: FlashingCellDefinition): string[];
17
17
  getReferencedNamedQueryNames(alertDefinition: FlashingCellDefinition): string[];
18
- addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
19
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
18
+ createColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
19
+ createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
20
20
  protected handleCellDataChanged(cellDataChangedInfo: CellDataChangedInfo): void;
21
21
  private showFlashingCellsForDefinitions;
22
22
  private isFlashingTargetOnlyAggChange;
@@ -64,7 +64,7 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
64
64
  }
65
65
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(queryExpression);
66
66
  }
67
- addColumnMenuItems(column) {
67
+ createColumnMenuItems(column) {
68
68
  if (column && this.isModuleEditable()) {
69
69
  if (!this.api.columnApi.isCalculatedColumn(column.columnId)) {
70
70
  const flashingCellDefinitions = this.api.flashingCellApi.getFlashingCellDefinitions();
@@ -89,7 +89,7 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
89
89
  }
90
90
  }
91
91
  }
92
- addContextMenuItems(menuContext) {
92
+ createContextMenuItems(menuContext) {
93
93
  const items = [];
94
94
  if (!menuContext.isRowGroupColumn && this.isModuleAvailable()) {
95
95
  if (menuContext.adaptableColumn && menuContext.rowNode) {
@@ -13,7 +13,7 @@ export declare class FormatColumnModule extends AdaptableModuleBase implements I
13
13
  }): AdaptableObject[];
14
14
  getExplicitlyReferencedColumnIds(formatColumn: FormatColumn): string[];
15
15
  getReferencedNamedQueryNames(formatColumn: FormatColumn): string[];
16
- addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
16
+ createColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
17
17
  getTeamSharingAction(): TeamSharingImportInfo<FormatColumn>;
18
18
  toView(formatColumn: FormatColumn): AdaptableObjectView;
19
19
  toViewAll(): AdaptableObjectView[];
@@ -14,7 +14,6 @@ const getFormatColumnStyleViewItems_1 = require("./Utilities/FormatColumn/getFor
14
14
  const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
15
15
  const getRuleViewItems_1 = require("./Utilities/getRuleViewItems");
16
16
  const MoveFormatColumn_1 = require("../View/FormatColumn/MoveFormatColumn");
17
- const ArrayExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/ArrayExtensions"));
18
17
  class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
19
18
  constructor(api) {
20
19
  super(ModuleConstants.FormatColumnModuleId, ModuleConstants.FormatColumnFriendlyName, 'color-palette', 'FormatColumnPopup', 'Create a column style, display format or cell alignment', api);
@@ -41,56 +40,38 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
41
40
  }
42
41
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(queryExpression);
43
42
  }
44
- addColumnMenuItems(column) {
43
+ createColumnMenuItems(column) {
44
+ if (!column || !this.isModuleEditable() || column.isSparkline) {
45
+ return;
46
+ }
45
47
  let returnColumnMenuItems = [];
46
- if (column && this.isModuleEditable() && !column.isSparkline) {
47
- let createPopupParam = {
48
+ let createPopupParam = {
49
+ column: column,
50
+ action: 'New',
51
+ source: 'ColumnMenu',
52
+ };
53
+ const createFormatColumnMenuItem = this.createMenuItemShowPopup('format-column-add', 'Create', this.moduleInfo.Popup, 'plus', createPopupParam);
54
+ returnColumnMenuItems.push(this.createMenuItemShowPopup('format-column-add', 'Create Format Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, createPopupParam));
55
+ const formatColumnsForColumn = this.api.formatColumnApi.getFormatColumnsForColumnId(column.columnId);
56
+ if (formatColumnsForColumn.length === 1) {
57
+ let editPopupParam = {
48
58
  column: column,
49
- action: 'New',
59
+ action: 'Edit',
60
+ value: formatColumnsForColumn[0],
50
61
  source: 'ColumnMenu',
51
62
  };
52
- const createFormatColumnMenuItem = this.createMenuItemShowPopup('format-column-add', 'Create', this.moduleInfo.Popup, 'plus', createPopupParam);
53
- const formatColumnsForColumn = this.api.formatColumnApi.getFormatColumnsForColumnId(column.columnId);
54
- // .filter((fc) => this.api.scopeApi.isSingleColumnScope(fc.Scope));
55
- // if no formats then just show Create
56
- if (ArrayExtensions_1.default.IsNullOrEmpty(formatColumnsForColumn)) {
57
- returnColumnMenuItems.push(this.createMenuItemShowPopup('format-column-add', 'Create Format Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, createPopupParam));
58
- // if 1 format then show a Create and an Edit
59
- }
60
- else if (formatColumnsForColumn.length == 1) {
61
- let editPopupParam = {
62
- column: column,
63
- action: 'Edit',
64
- value: formatColumnsForColumn[0],
65
- source: 'ColumnMenu',
66
- };
67
- const editFormatColumnMenuItem = this.createMenuItemShowPopup('format-column-edit', 'Edit', this.moduleInfo.Popup, 'edit', editPopupParam);
68
- returnColumnMenuItems.push({
69
- name: 'format-column-parent',
70
- label: 'Format Column',
71
- module: this.moduleInfo.ModuleName,
72
- isVisible: true,
73
- icon: { name: this.moduleInfo.Glyph },
74
- subItems: [createFormatColumnMenuItem, editFormatColumnMenuItem],
75
- });
76
- // if more than one then display a Create and a Show
77
- // we should probably do the Show better - perhaps use Column Info in some way?
78
- // or to filter the format columns ?
79
- }
80
- else {
81
- const moduleInfo = this.api.internalApi
82
- .getModuleService()
83
- .getModuleInfoByModule('FormatColumn');
84
- const editFormatColumnMenuItem = this.createMenuItemReduxAction('format-column-edit', 'Show Current', this.moduleInfo.Glyph, PopupRedux.PopupShowScreen('FormatColumn', moduleInfo.Popup));
85
- returnColumnMenuItems.push({
86
- name: 'format-column-parent',
87
- label: 'Format Column',
88
- module: this.moduleInfo.ModuleName,
89
- isVisible: true,
90
- icon: { name: this.moduleInfo.Glyph },
91
- subItems: [createFormatColumnMenuItem, editFormatColumnMenuItem],
92
- });
93
- }
63
+ const editFormatColumnMenuItem = this.createMenuItemShowPopup('format-column-edit', 'Edit', this.moduleInfo.Popup, 'edit', editPopupParam);
64
+ returnColumnMenuItems.push(editFormatColumnMenuItem);
65
+ }
66
+ else if (formatColumnsForColumn.length > 1) {
67
+ // if more than one then display a Create and a Show
68
+ // we should probably do the Show better - perhaps use Column Info in some way?
69
+ // or to filter the format columns ?
70
+ const moduleInfo = this.api.internalApi
71
+ .getModuleService()
72
+ .getModuleInfoByModule('FormatColumn');
73
+ const editFormatColumnMenuItem = this.createMenuItemReduxAction('format-column-edit', 'Show Current', this.moduleInfo.Glyph, PopupRedux.PopupShowScreen('FormatColumn', moduleInfo.Popup));
74
+ returnColumnMenuItems.push(editFormatColumnMenuItem);
94
75
  }
95
76
  return returnColumnMenuItems;
96
77
  }
@@ -12,7 +12,7 @@ export declare class FreeTextColumnModule extends AdaptableModuleBase implements
12
12
  isModuleAvailable(): boolean;
13
13
  getModuleAdaptableObjects(): FreeTextColumn[];
14
14
  hasNamedQueryReferences(): boolean;
15
- addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
15
+ createColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
16
16
  getTeamSharingAction(): TeamSharingImportInfo<FreeTextColumn>;
17
17
  toView(freeTextColumn: FreeTextColumn): AdaptableObjectView;
18
18
  toViewAll(): AdaptableObjectView[];
@@ -21,7 +21,7 @@ class FreeTextColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
21
21
  hasNamedQueryReferences() {
22
22
  return false;
23
23
  }
24
- addColumnMenuItems(column) {
24
+ createColumnMenuItems(column) {
25
25
  if (column && this.isModuleEditable()) {
26
26
  if (this.api.freeTextColumnApi
27
27
  .getFreeTextColumns()
@@ -7,6 +7,6 @@ import { AccessLevel } from '../PredefinedConfig/Common/Entitlement';
7
7
  export declare class GridInfoModule extends AdaptableModuleBase implements IModule {
8
8
  constructor(api: AdaptableApi);
9
9
  getViewAccessLevel(): AccessLevel;
10
- addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
11
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
10
+ createColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
11
+ createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
12
12
  }
@@ -11,7 +11,7 @@ class GridInfoModule extends AdaptableModuleBase_1.AdaptableModuleBase {
11
11
  getViewAccessLevel() {
12
12
  return 'Full';
13
13
  }
14
- addColumnMenuItems(column) {
14
+ createColumnMenuItems(column) {
15
15
  if (this.isModuleAvailable()) {
16
16
  return [
17
17
  this.createMainMenuItemShowPopup({
@@ -23,7 +23,7 @@ class GridInfoModule extends AdaptableModuleBase_1.AdaptableModuleBase {
23
23
  ];
24
24
  }
25
25
  }
26
- addContextMenuItems(menuContext) {
26
+ createContextMenuItems(menuContext) {
27
27
  if (this.isModuleAvailable()) {
28
28
  return [
29
29
  this.createMainMenuItemShowPopup({
@@ -141,9 +141,9 @@ export interface AdaptableModuleView {
141
141
  export interface IModule {
142
142
  moduleInfo: ModuleInfo;
143
143
  AccessLevel: AccessLevel;
144
- addModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
145
- addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
146
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
144
+ createModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
145
+ createColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
146
+ createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
147
147
  setModuleEntitlement(): void;
148
148
  isModuleAvailable(): boolean;
149
149
  isModuleEditable(): boolean;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { AdaptableModuleBase } from './AdaptableModuleBase';
3
- import { LayoutState, Layout } from '../PredefinedConfig/LayoutState';
3
+ import { Layout, LayoutState } from '../PredefinedConfig/LayoutState';
4
4
  import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
5
5
  import { TeamSharingImportInfo } from '../PredefinedConfig/TeamSharingState';
6
6
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
@@ -13,13 +13,13 @@ export declare class LayoutModule extends AdaptableModuleBase implements IModule
13
13
  protected LayoutState: LayoutState;
14
14
  constructor(api: AdaptableApi);
15
15
  onAdaptableReady(): void;
16
- rowSummariesSubscribtions(): void;
16
+ rowSummariesSubscriptions(): void;
17
17
  getModuleAdaptableObjects(): AdaptableObject[];
18
18
  getExplicitlyReferencedColumnIds(layout: Layout): string[];
19
19
  getTeamSharingReferences(adaptableObject: AdaptableObject): TeamSharingReferences;
20
20
  hasNamedQueryReferences(): boolean;
21
- addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
22
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
21
+ createColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
22
+ createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
23
23
  private createViewPivotItemsMenuItem;
24
24
  getTeamSharingAction(): TeamSharingImportInfo<Layout>;
25
25
  toViewAll(): {
@@ -40,12 +40,16 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
40
40
  requestAnimationFrame(() => {
41
41
  this.api.layoutApi.internalApi.fireLayoutChangedEvent('ADAPTABLE_READY', null, this.api.layoutApi.getLayoutState());
42
42
  });
43
- this.rowSummariesSubscribtions();
43
+ this.rowSummariesSubscriptions();
44
44
  }
45
- rowSummariesSubscribtions() {
45
+ rowSummariesSubscriptions() {
46
46
  if (this.api.isDestroyed()) {
47
47
  return;
48
48
  }
49
+ // Currently not available for serverside model
50
+ if (!this.api.layoutApi.internalApi.getLayoutSupportedFeatures().RowSummaries) {
51
+ return;
52
+ }
49
53
  // ROW SUMMARY
50
54
  this.evaluateRowSummary();
51
55
  this.api.eventApi.on('AdaptableStateReloaded', () => {
@@ -146,62 +150,50 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
146
150
  hasNamedQueryReferences() {
147
151
  return true;
148
152
  }
149
- addColumnMenuItems(column) {
153
+ createColumnMenuItems(column) {
150
154
  var _a, _b;
155
+ if (!this.isModuleEditable()) {
156
+ return;
157
+ }
151
158
  let returnColumnMenuItems = [];
152
- if (this.isModuleEditable()) {
153
- const isReadOnlyLayout = this.api.layoutApi.isCurrentLayoutReadOnly();
154
- if (!isReadOnlyLayout) {
155
- returnColumnMenuItems.push(this.createMenuItemShowPopup('layout-edit', 'Edit Layout', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
156
- action: 'Edit',
157
- source: 'ColumnMenu',
158
- value: this.api.layoutApi.getCurrentLayout(),
159
+ const isReadOnlyLayout = this.api.layoutApi.isCurrentLayoutReadOnly();
160
+ if (!isReadOnlyLayout) {
161
+ returnColumnMenuItems.push(this.createMenuItemShowPopup('layout-edit', 'Edit Layout', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
162
+ action: 'Edit',
163
+ source: 'ColumnMenu',
164
+ value: this.api.layoutApi.getCurrentLayout(),
165
+ }));
166
+ if (column) {
167
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-caption-change', 'Change Caption', 'edit', () => this.api.layoutApi.showChangeColumnCaption(column)));
168
+ }
169
+ }
170
+ if (column) {
171
+ if (column.hideable) {
172
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-hide', 'Hide Column', 'visibility-off-bold', () => {
173
+ this.api.columnApi.hideColumn(column.columnId);
159
174
  }));
160
175
  }
161
- if (column) {
162
- if (!isReadOnlyLayout) {
163
- returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-caption-change', 'Change Caption', 'edit', () => this.api.layoutApi.showChangeColumnCaption(column)));
164
- }
165
- if (column.hideable) {
166
- returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-hide', 'Hide Column', 'visibility-off-bold', () => {
167
- this.api.columnApi.hideColumn(column.columnId);
168
- }));
169
- }
176
+ const hasExistingSelection = (_b = (_a = this.api.gridApi.getSelectedCellInfo()) === null || _a === void 0 ? void 0 : _a.gridCells) === null || _b === void 0 ? void 0 : _b.length;
177
+ if (hasExistingSelection) {
178
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-select-preserve', 'Column (Preserve Selection)', 'column-add', () => {
179
+ this.api.columnApi.addColumnToSelection(column.columnId);
180
+ }));
181
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-select-reset', 'Column (Reset Selection)', 'columns', () => {
182
+ this.api.columnApi.selectColumn(column.columnId);
183
+ }));
170
184
  }
171
- let selectMenuItems = [];
172
- if (column) {
173
- const hasExistingSelection = (_b = (_a = this.api.gridApi.getSelectedCellInfo()) === null || _a === void 0 ? void 0 : _a.gridCells) === null || _b === void 0 ? void 0 : _b.length;
174
- if (hasExistingSelection) {
175
- selectMenuItems.push(this.createMenuItemClickFunction('layout-column-select-preserve', 'Column (Preserve Selection)', 'column-add', () => {
176
- this.api.columnApi.addColumnToSelection(column.columnId);
177
- }));
178
- selectMenuItems.push(this.createMenuItemClickFunction('layout-column-select-reset', 'Column (Reset Selection)', 'columns', () => {
179
- this.api.columnApi.selectColumn(column.columnId);
180
- }));
181
- }
182
- else {
183
- selectMenuItems.push(this.createMenuItemClickFunction('layout-column-select', 'Column', 'columns', () => {
184
- this.api.columnApi.selectColumn(column.columnId);
185
- }));
186
- }
185
+ else {
186
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-select', 'Column', 'columns', () => {
187
+ this.api.columnApi.selectColumn(column.columnId);
188
+ }));
187
189
  }
188
- selectMenuItems.push(this.createMenuItemClickFunction('layout-select-all', 'Whole Grid', this.moduleInfo.Glyph, () => {
189
- this.api.gridApi.selectAll();
190
- }));
191
- returnColumnMenuItems.push({
192
- name: 'layout-select-parent',
193
- label: 'Select',
194
- isVisible: true,
195
- module: this.moduleInfo.ModuleName,
196
- icon: {
197
- name: 'tab-unselected',
198
- },
199
- subItems: selectMenuItems,
200
- });
201
190
  }
191
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-select-all', 'Whole Grid', this.moduleInfo.Glyph, () => {
192
+ this.api.gridApi.selectAll();
193
+ }));
202
194
  return returnColumnMenuItems;
203
195
  }
204
- addContextMenuItems(menuContext) {
196
+ createContextMenuItems(menuContext) {
205
197
  let returnColumnMenuItems = [];
206
198
  if (this.isModuleEditable() && !this.api.layoutApi.isCurrentLayoutReadOnly()) {
207
199
  returnColumnMenuItems.push(this.createMenuItemShowPopup('layout-edit', 'Edit Layout', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
@@ -213,36 +205,23 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
213
205
  ArrayExtensions_1.default.IsNotNullOrEmpty(menuContext.selectedCellInfo.columns)) ||
214
206
  (menuContext.selectedRowInfo &&
215
207
  ArrayExtensions_1.default.IsNotNullOrEmpty(menuContext.selectedRowInfo.gridRows))) {
216
- let clickFunction = () => {
208
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-clear-selection', 'Clear Selected Cells', 'undo', () => {
217
209
  this.api.gridApi.deselectAll();
218
- };
219
- returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-clear-selection', 'Clear Selected Cells', 'undo', clickFunction));
220
- if (this.isModuleAvailable()) {
221
- let gridMenuItems = [];
222
- let autoSizeFunction = () => {
223
- this.api.columnApi.autosizeAllColumns();
224
- };
225
- gridMenuItems.push(this.createMenuItemClickFunction('layout-auto-size', 'Auto Size', 'arrow-expand', autoSizeFunction));
226
- let clickFunction = () => {
227
- this.api.gridApi.selectAll();
228
- };
229
- gridMenuItems.push(this.createMenuItemClickFunction('layout-select-all', 'Select', 'tab-unselected', clickFunction));
230
- returnColumnMenuItems.push({
231
- name: 'layout-grid-parent',
232
- label: 'Grid',
233
- module: this.moduleInfo.ModuleName,
234
- isVisible: true,
235
- icon: { name: 'align-justify' },
236
- subItems: gridMenuItems,
237
- });
238
- }
210
+ }));
239
211
  }
212
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-select-all', 'Select', 'tab-unselected', () => {
213
+ this.api.gridApi.selectAll();
214
+ }));
215
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-auto-size', 'Auto Size', 'arrow-expand', () => {
216
+ this.api.columnApi.autosizeAllColumns();
217
+ }));
240
218
  const viewPivotItemsMenuItem = this.createViewPivotItemsMenuItem(menuContext);
241
219
  if (viewPivotItemsMenuItem) {
242
220
  returnColumnMenuItems.push(viewPivotItemsMenuItem);
243
221
  }
244
222
  return returnColumnMenuItems;
245
223
  }
224
+ // TODO next time this method is touched, it should be extracted in an internal Api
246
225
  createViewPivotItemsMenuItem(menuContext) {
247
226
  // current group => menuContext.rowNode.field;
248
227
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
@@ -342,7 +321,7 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
342
321
  const firstNColumns = columns
343
322
  .slice(0, maxColumnsToDisplay)
344
323
  .map((column) => columnIdToFriendlyName(column));
345
- columns = [...firstNColumns, `and other ${extraColumns}`];
324
+ columns = [...firstNColumns, `and ${extraColumns} more`];
346
325
  }
347
326
  else {
348
327
  columns = columns.map((column) => columnIdToFriendlyName(column));
@@ -6,6 +6,5 @@ export declare class NoteModule extends AdaptableModuleBase implements IModule {
6
6
  private adaptable;
7
7
  constructor(api: AdaptableApi);
8
8
  isModuleAvailable(): boolean;
9
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
10
- private getAddRemoveNoteMenuItems;
9
+ createContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
11
10
  }