@adaptabletools/adaptable 11.1.6 → 11.1.9

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 (184) hide show
  1. package/base.css +16 -0
  2. package/bundle.cjs.js +106 -106
  3. package/index.css +20 -0
  4. package/package.json +1 -1
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -1
  8. package/src/AdaptableOptions/AdaptableOptions.d.ts +1 -1
  9. package/src/AdaptableOptions/AlertOptions.d.ts +9 -2
  10. package/src/AdaptableOptions/FinancePluginOptions.d.ts +58 -17
  11. package/src/AdaptableOptions/GeneralOptions.d.ts +7 -0
  12. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +7 -0
  13. package/src/Api/AdaptableApi.d.ts +5 -0
  14. package/src/Api/CellSummaryApi.d.ts +8 -0
  15. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -0
  16. package/src/Api/Implementation/AdaptableApiImpl.js +2 -0
  17. package/src/Api/Implementation/AlertApiImpl.js +32 -15
  18. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +2 -0
  19. package/src/Api/Implementation/CellSummaryApiImpl.js +34 -0
  20. package/src/Api/Implementation/ConfigApiImpl.js +3 -0
  21. package/src/Api/Implementation/GridApiImpl.js +0 -4
  22. package/src/Api/Implementation/InternalApiImpl.d.ts +2 -1
  23. package/src/Api/Implementation/InternalApiImpl.js +29 -7
  24. package/src/Api/Implementation/QueryApiImpl.d.ts +1 -0
  25. package/src/Api/Implementation/QueryApiImpl.js +12 -0
  26. package/src/Api/Implementation/StatusBarApiImpl.d.ts +8 -0
  27. package/src/Api/Implementation/StatusBarApiImpl.js +17 -0
  28. package/src/Api/InternalApi.d.ts +2 -1
  29. package/src/Api/QueryApi.d.ts +6 -0
  30. package/src/Api/StatusBarApi.d.ts +10 -0
  31. package/src/Api/StatusBarApi.js +2 -0
  32. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  33. package/src/PredefinedConfig/Common/FDC3Context.d.ts +61 -29
  34. package/src/PredefinedConfig/Common/Types.d.ts +4 -2
  35. package/src/PredefinedConfig/Common/Types.js +32 -1
  36. package/src/PredefinedConfig/FormatColumnState.d.ts +1 -1
  37. package/src/PredefinedConfig/GridState.d.ts +1 -1
  38. package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -0
  39. package/src/PredefinedConfig/StatusBarState.d.ts +27 -0
  40. package/src/PredefinedConfig/StatusBarState.js +7 -0
  41. package/src/PredefinedConfig/ToolPanelState.d.ts +1 -1
  42. package/src/Redux/ActionsReducers/GridRedux.d.ts +2 -2
  43. package/src/Redux/ActionsReducers/GridRedux.js +4 -4
  44. package/src/Redux/ActionsReducers/StatusBarRedux.d.ts +22 -0
  45. package/src/Redux/ActionsReducers/StatusBarRedux.js +31 -0
  46. package/src/Redux/ActionsReducers/SystemRedux.d.ts +8 -3
  47. package/src/Redux/ActionsReducers/SystemRedux.js +22 -5
  48. package/src/Redux/Store/AdaptableReduxMerger.js +2 -2
  49. package/src/Redux/Store/AdaptableStore.js +24 -10
  50. package/src/Strategy/AlertModule.d.ts +3 -0
  51. package/src/Strategy/AlertModule.js +6 -0
  52. package/src/Strategy/CellSummaryModule.d.ts +6 -0
  53. package/src/Strategy/CellSummaryModule.js +14 -0
  54. package/src/Strategy/DataChangeHistoryModule.d.ts +7 -0
  55. package/src/Strategy/DataChangeHistoryModule.js +11 -0
  56. package/src/Strategy/ExportModule.d.ts +1 -0
  57. package/src/Strategy/ExportModule.js +1 -0
  58. package/src/Strategy/FilterModule.d.ts +6 -0
  59. package/src/Strategy/FilterModule.js +21 -0
  60. package/src/Strategy/Interface/IModule.d.ts +21 -10
  61. package/src/Strategy/LayoutModule.d.ts +7 -0
  62. package/src/Strategy/LayoutModule.js +13 -0
  63. package/src/Strategy/QueryModule.d.ts +8 -0
  64. package/src/Strategy/QueryModule.js +18 -0
  65. package/src/Strategy/QuickSearchModule.d.ts +6 -0
  66. package/src/Strategy/QuickSearchModule.js +10 -0
  67. package/src/Strategy/StatusBarModule.d.ts +8 -0
  68. package/src/Strategy/StatusBarModule.js +39 -0
  69. package/src/Strategy/SystemStatusModule.d.ts +6 -0
  70. package/src/Strategy/SystemStatusModule.js +10 -0
  71. package/src/Strategy/ThemeModule.d.ts +7 -0
  72. package/src/Strategy/ThemeModule.js +12 -0
  73. package/src/Strategy/Utilities/getAlertBehaviourViewItems.js +1 -1
  74. package/src/Utilities/Constants/ModuleConstants.d.ts +1 -0
  75. package/src/Utilities/Constants/ModuleConstants.js +2 -1
  76. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +4 -1
  77. package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -0
  78. package/src/Utilities/Services/ModuleService.js +6 -6
  79. package/src/View/AdaptablePopover/index.d.ts +1 -0
  80. package/src/View/AdaptablePopover/index.js +5 -2
  81. package/src/View/AdaptableViewFactory.js +2 -2
  82. package/src/View/Alert/AlertStatusSubPanel.d.ts +2 -0
  83. package/src/View/Alert/AlertStatusSubPanel.js +56 -0
  84. package/src/View/Alert/AlertViewPanel.js +6 -7
  85. package/src/View/Alert/AlertsPanel.d.ts +1 -1
  86. package/src/View/Alert/AlertsPanel.js +2 -1
  87. package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +5 -0
  88. package/src/View/Alert/Utilities/getAlertButtonStyle.js +15 -0
  89. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +18 -7
  90. package/src/View/Alert/Wizard/AlertButtonsEditor.js +1 -8
  91. package/src/View/Alert/Wizard/AlertWizard.js +3 -2
  92. package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.d.ts +2 -0
  93. package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.js +15 -0
  94. package/src/View/CellSummary/CellSummaryStatusPanel.d.ts +2 -0
  95. package/src/View/CellSummary/CellSummaryStatusPanel.js +36 -0
  96. package/src/View/CellSummary/CellSummaryViewPanel.js +2 -20
  97. package/src/View/ColorPicker.d.ts +1 -1
  98. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  99. package/src/View/Components/AdaptableInput/index.d.ts +1 -1
  100. package/src/View/Components/Buttons/ButtonDelete.d.ts +1 -1
  101. package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -1
  102. package/src/View/Components/Forms/AdaptableFormControlTextClear.js +1 -1
  103. package/src/View/Components/Panels/PanelWithImage.d.ts +2 -2
  104. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +6 -5
  105. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +1 -1
  106. package/src/View/Components/RangesComponent.js +6 -2
  107. package/src/View/Components/StyleComponent.js +18 -6
  108. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
  109. package/src/View/Components/ToolPanel/ToolPanelPopup.js +3 -3
  110. package/src/View/Dashboard/DashboardPopup.js +2 -2
  111. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +5 -13
  112. package/src/View/DataChangeHistory/DataChangeHistoryStatusBarContent.d.ts +2 -0
  113. package/src/View/DataChangeHistory/DataChangeHistoryStatusBarContent.js +9 -0
  114. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.d.ts +4 -16
  115. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +32 -40
  116. package/src/View/Filter/ActiveFiltersPanel.d.ts +0 -2
  117. package/src/View/Filter/FilterStatusBarSubPanelPopover.d.ts +2 -0
  118. package/src/View/Filter/FilterStatusBarSubPanelPopover.js +18 -0
  119. package/src/View/Filter/FilterViewPanel.js +1 -1
  120. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
  121. package/src/View/GridInfo/GridInfoPopup.js +4 -1
  122. package/src/View/Layout/EditCurrentLayoutButton.d.ts +2 -0
  123. package/src/View/Layout/EditCurrentLayoutButton.js +14 -0
  124. package/src/View/Layout/LayoutPopup.d.ts +1 -1
  125. package/src/View/Layout/LayoutPopup.js +3 -3
  126. package/src/View/Layout/LayoutRadioSelector.d.ts +1 -0
  127. package/src/View/Layout/LayoutRadioSelector.js +2 -2
  128. package/src/View/Layout/LayoutStatusBarSubPanelPopover.d.ts +2 -0
  129. package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +29 -0
  130. package/src/View/Layout/Wizard/LayoutEditor/ColumnLabels.js +2 -1
  131. package/src/View/Layout/Wizard/LayoutEditorWizard.js +2 -1
  132. package/src/View/Query/EditCurrentQueryButton.d.ts +2 -0
  133. package/src/View/Query/EditCurrentQueryButton.js +15 -0
  134. package/src/View/Query/QueryViewPanel.d.ts +0 -1
  135. package/src/View/Query/QueryViewPanel.js +2 -11
  136. package/src/View/QuickSearch/QuickSearchPopup.js +1 -1
  137. package/src/View/QuickSearch/QuickSearchStatusBarContent.d.ts +2 -0
  138. package/src/View/QuickSearch/QuickSearchStatusBarContent.js +16 -0
  139. package/src/View/StatusBar/AdaptableStatusBar.d.ts +3 -0
  140. package/src/View/StatusBar/AdaptableStatusBar.js +44 -0
  141. package/src/View/StatusBar/StatusBarPanel.d.ts +42 -0
  142. package/src/View/StatusBar/StatusBarPanel.js +45 -0
  143. package/src/View/StatusBar/StatusBarPopup.d.ts +3 -0
  144. package/src/View/StatusBar/StatusBarPopup.js +43 -0
  145. package/src/View/SystemStatus/SystemStatusStatusBarContent.d.ts +2 -0
  146. package/src/View/SystemStatus/SystemStatusStatusBarContent.js +15 -0
  147. package/src/View/SystemStatus/SystemStatusViewPanel.js +3 -7
  148. package/src/View/SystemStatus/Utilities/getStatusItemStyle.d.ts +5 -0
  149. package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +16 -0
  150. package/src/View/Theme/ThemeStatusPanelPopover.d.ts +2 -0
  151. package/src/View/Theme/ThemeStatusPanelPopover.js +36 -0
  152. package/src/agGrid/Adaptable.d.ts +2 -0
  153. package/src/agGrid/Adaptable.js +27 -0
  154. package/src/agGrid/agGridHelper.js +2 -0
  155. package/src/agGrid/createAgStatusPanelComponent.d.ts +21 -0
  156. package/src/agGrid/createAgStatusPanelComponent.js +31 -0
  157. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  158. package/src/components/Dashboard/DashboardManager.js +9 -162
  159. package/src/components/Datepicker/index.d.ts +1 -1
  160. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +7 -0
  161. package/src/components/DragAndDropContext/DragAndDropContext.js +14 -0
  162. package/src/components/DragAndDropContext/ModuleManager.d.ts +17 -0
  163. package/src/components/DragAndDropContext/ModuleManager.js +81 -0
  164. package/src/components/DragAndDropContext/TabList.d.ts +29 -0
  165. package/src/components/DragAndDropContext/TabList.js +72 -0
  166. package/src/components/DragAndDropContext/UnusedPanel.d.ts +6 -0
  167. package/src/components/DragAndDropContext/UnusedPanel.js +46 -0
  168. package/src/components/DragAndDropContext/types.d.ts +8 -0
  169. package/src/components/DragAndDropContext/types.js +2 -0
  170. package/src/components/Input/index.d.ts +1 -1
  171. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  172. package/src/components/PopupWithFooter.d.ts +1 -1
  173. package/src/components/SimpleButton/index.js +3 -0
  174. package/src/components/Textarea/index.d.ts +1 -1
  175. package/src/components/icons/DefaultIcon.d.ts +2 -1
  176. package/src/components/icons/DefaultIcon.js +2 -2
  177. package/src/components/icons/index.js +2 -0
  178. package/src/components/icons/statusbar.d.ts +3 -0
  179. package/src/components/icons/statusbar.js +8 -0
  180. package/src/metamodel/adaptable.metamodel.d.ts +231 -0
  181. package/src/metamodel/adaptable.metamodel.js +433 -37
  182. package/src/types.d.ts +4 -3
  183. package/version.d.ts +1 -1
  184. package/version.js +1 -1
package/index.css CHANGED
@@ -2297,6 +2297,12 @@ template {
2297
2297
  :root {
2298
2298
  --ab-cmp-dashboard-module-selector-background: var(--ab-color-defaultbackground); }
2299
2299
 
2300
+ :root {
2301
+ --ab-cmp-adaptable-statusbar-sub-panel__padding: var(--ab-space-1) var(--ab-space-2);
2302
+ --ab-cmp-adaptable-statusbar-sub-panel-icon__background-color-hover: var(--ab-color-primary);
2303
+ --ab-cmp-adaptable-statusbar__color: var(--ab-color-text-on-primary);
2304
+ --ab-cmp-adaptable-statusbar__font-weight: 400; }
2305
+
2300
2306
  .ab-Radio-input:focus + svg rect {
2301
2307
  stroke: var(--ab-color-accent);
2302
2308
  stroke-width: 2; }
@@ -3685,6 +3691,20 @@ html.ab--theme-dark .ab-ListBoxFilterForm--aggrid-style {
3685
3691
  .ab-Adaptable-Object-List__Item__label:hover .ab-Adaptable-Object-List__Item__edit-property {
3686
3692
  visibility: visible; }
3687
3693
 
3694
+ .ab-StatusBar__SubPanel {
3695
+ padding: var(--ab-cmp-adaptable-statusbar-sub-panel__padding);
3696
+ border: 0;
3697
+ background: none;
3698
+ font-weight: 400; }
3699
+
3700
+ .ab-StatusBar__SubPanel,
3701
+ .ab-StatusBar__SubPanel .ab-SimpleButton {
3702
+ color: var(--ab-cmp-adaptable-statusbar__color); }
3703
+
3704
+ button.ab-StatusBar__SubPanel:hover {
3705
+ background-color: var(--ab-cmp-adaptable-statusbar-sub-panel-icon__background-color-hover);
3706
+ cursor: pointer; }
3707
+
3688
3708
  .ab-alert--error {
3689
3709
  background: var(--ab-color-error); }
3690
3710
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "11.1.6",
3
+ "version": "11.1.9",
4
4
  "description": "Powerful data-agnostic HTML5 datagrid add-on that sits on top of an underlying grid component and provides all the rich functionality that advanced users expect from their DataGrids and Data Tables",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,2 +1,2 @@
1
- declare const _default: 1650312974062;
1
+ declare const _default: 1651046276381;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1650312974062;
3
+ exports.default = 1651046276381;
@@ -1,4 +1,4 @@
1
- import { Column, RowNode } from '@ag-grid-community/all-modules';
1
+ import { Column, GridOptions, RowNode } from '@ag-grid-community/all-modules';
2
2
  import { AdaptableApi } from '../Api/AdaptableApi';
3
3
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
4
4
  import { ColumnSort } from '../PredefinedConfig/Common/ColumnSort';
@@ -160,6 +160,7 @@ export interface IAdaptable {
160
160
  getRowNodesForPrimaryKeys(primaryKeyValues: any[]): RowNode[];
161
161
  getRowNodeForPrimaryKey(primaryKeyValue: any): RowNode;
162
162
  getRowNodeByIndex(index: number): RowNode;
163
+ getAgGridStatusPanels(): GridOptions['statusBar']['statusPanels'];
163
164
  forPlugins(callback: (plugin: AdaptablePlugin) => any): void;
164
165
  lookupPlugins(propertyName: string, ...args: any): any;
165
166
  getPluginProperty(pluginId: string, propertyName: string, ...args: any): any;
@@ -178,7 +178,7 @@ export interface AdaptableOptions {
178
178
  */
179
179
  settingsPanelOptions?: SettingsPanelOptions;
180
180
  /**
181
- * Options related to state hydration / dehydration - allows users to intercept state persistence and state loading and change default behavior of saving to local storage
181
+ * Options related to state hydration / dehydration - allows users to intercept state persistence and state loading and change default behaviour of saving to local storage
182
182
  */
183
183
  stateOptions?: StateOptions;
184
184
  /**
@@ -15,12 +15,19 @@ export interface AlertOptions {
15
15
  */
16
16
  maxAlertsInStore?: number;
17
17
  /**
18
- * How long (in ms) a cell will be highlighted
18
+ * How long (in ms) a Cell will be highlighted when an Alert fires
19
19
  *
20
- * @defaultValue 3000
20
+ * @defaultValue 2000
21
21
  * @gridInfoItem
22
22
  */
23
23
  cellHighlightDuration?: number;
24
+ /**
25
+ * How long (in ms) a Row will be highlighted when an Alert Fires
26
+ *
27
+ * @defaultValue 4000
28
+ * @gridInfoItem
29
+ */
30
+ rowHighlightDuration?: number;
24
31
  /**
25
32
  * onClick Handlers for Alert Buttons (defined in Alert State)
26
33
  */
@@ -1,11 +1,10 @@
1
- import { RowNode } from '@ag-grid-community/all-modules';
2
- import { GridCell } from '../../types';
1
+ import { ContextMenuContext } from '../../types';
3
2
  /**
4
3
  * Options required for when using the Finance plugin
5
4
  */
6
5
  export interface FinancePluginOptions {
7
6
  /**
8
- * Columns to be defined as FDC3
7
+ * Columns to be defined as FDC3-related
9
8
  */
10
9
  fdc3Columns?: {
11
10
  /**
@@ -47,6 +46,9 @@ export interface WeightedAverageColumn {
47
46
  */
48
47
  weightedColumnId: string;
49
48
  }
49
+ /**
50
+ * An FDC3 Column - will raise FDC3 intents and broadcast FDC3 messages
51
+ */
50
52
  export interface FDC3Column {
51
53
  /**
52
54
  * Id of Column defined as FDC3
@@ -55,7 +57,7 @@ export interface FDC3Column {
55
57
  /**
56
58
  * If provided, will supply `name` property in FDC3 message
57
59
  */
58
- name?: string;
60
+ nameColumnId?: string;
59
61
  /**
60
62
  * Should Column display a 'Broadcast' context menu item
61
63
  */
@@ -63,7 +65,7 @@ export interface FDC3Column {
63
65
  /**
64
66
  * Label to display in Broadcast Context Menu Item
65
67
  */
66
- broadcastContextMenuLabel?: string | ((gridCell: GridCell, node: RowNode) => string);
68
+ broadcastContextMenuLabel?: string | ((broadcastFDC3MessageContext: ContextMenuContext) => string);
67
69
  /**
68
70
  * FDC3 intents which the Column can raise
69
71
  */
@@ -71,7 +73,7 @@ export interface FDC3Column {
71
73
  /**
72
74
  * Label to display in Intent Context Menu Item
73
75
  */
74
- intentContextMenuLabel?: string | ((intent: FDC3Intent, gridCell: GridCell, node: RowNode) => string);
76
+ intentContextMenuLabel?: string | ((raiseFDC3IntentContext: RaiseFDC3IntentContext) => string);
75
77
  }
76
78
  /**
77
79
  * A Column which will be defined as an FDC3 Instrument
@@ -110,11 +112,17 @@ export interface InstrumentColumn extends FDC3Column {
110
112
  */
111
113
  figiColumnId?: string;
112
114
  /**
113
- * FDC3 Intents available to the Column
115
+ * FDC3 Intents invoked by Column; can be: `ViewChart` `ViewQuote` `ViewNews` `ViewAnalysis` `ViewInstrument`
114
116
  */
115
117
  intents?: InstrumentIntents;
116
118
  }
119
+ /**
120
+ * All available Instrument Intents
121
+ */
117
122
  export declare type InstrumentIntents = InstrumentIntent[];
123
+ /**
124
+ * FDC3 Intents available to an Instrument Column
125
+ */
118
126
  export declare type InstrumentIntent = 'ViewChart' | 'ViewQuote' | 'ViewNews' | 'ViewAnalysis' | 'ViewInstrument';
119
127
  /**
120
128
  * A (Numeric) Column which will be defined as an FDC3 Position
@@ -125,11 +133,17 @@ export interface PositionColumn extends FDC3Column {
125
133
  */
126
134
  instrumentColumnId: string;
127
135
  /**
128
- * FDC3 Intents available to the Column
136
+ * FDC3 Intents invoked by Column; can be: `ViewChart` `ViewNews` `ViewAnalysis`
129
137
  */
130
138
  intents?: PositionIntents;
131
139
  }
140
+ /**
141
+ * All available Position Intents
142
+ */
132
143
  export declare type PositionIntents = PositionIntent[];
144
+ /**
145
+ * FDC3 Intents available to a Position Column
146
+ */
133
147
  export declare type PositionIntent = 'ViewChart' | 'ViewNews' | 'ViewAnalysis';
134
148
  /**
135
149
  * A (String) Column which will be defined as an FDC3 Contact
@@ -143,13 +157,19 @@ export interface ContactColumn extends FDC3Column {
143
157
  /**
144
158
  * Column which holds an FDS_ID value a Contact
145
159
  */
146
- fds_IdColumnId?: string;
160
+ fds_idColumnId?: string;
147
161
  /**
148
- * FDC3 Intents available to the Column
162
+ * FDC3 Intents invoked by Column; can be: `StartCall` `StartChat` `ViewContact`
149
163
  */
150
164
  intents?: ContactIntents;
151
165
  }
166
+ /**
167
+ * All available Contact Intents
168
+ */
152
169
  export declare type ContactIntents = ContactIntent[];
170
+ /**
171
+ * FDC3 Intents available to a Contact Column
172
+ */
153
173
  export declare type ContactIntent = 'StartCall' | 'StartChat' | 'ViewContact';
154
174
  /**
155
175
  * A (String) Column which will be defined as an FDC3 Organization
@@ -162,17 +182,20 @@ export interface OrganizationColumn extends FDC3Column {
162
182
  /**
163
183
  * Column which contains a PermId
164
184
  */
165
- permIdColumnId?: string;
185
+ permidColumnId?: string;
166
186
  /**
167
187
  * Column which contains an FDS_ID
168
188
  */
169
- fds_IdColumnId?: string;
189
+ fds_idColumnId?: string;
170
190
  /**
171
- * FDC3 Intents available to the Column
191
+ * FDC3 Intents invoked by Column; can be: `ViewNews` `ViewAnalysis`
172
192
  */
173
193
  intents?: OrganizationIntents;
174
194
  }
175
195
  export declare type OrganizationIntents = OrganizationIntent[];
196
+ /**
197
+ * FDC3 Intents available to an Organization Column
198
+ */
176
199
  export declare type OrganizationIntent = 'ViewNews' | 'ViewAnalysis';
177
200
  /**
178
201
  * A (String) Column which will be defined as an FDC3 Country
@@ -181,16 +204,34 @@ export interface CountryColumn extends FDC3Column {
181
204
  /**
182
205
  * Column which contains the ISOALPHA2 Standard
183
206
  */
184
- isoAlpha2ColumnId?: string;
207
+ isoalpha2ColumnId?: string;
185
208
  /**
186
209
  * Column which contains the ISOALPHA3 Standard
187
210
  */
188
- isoAlpha3ColumnId?: string;
211
+ isoalpha3ColumnId?: string;
189
212
  /**
190
- * FDC3 Intents available to the Column
213
+ * FDC3 Intents invoked by Column; can be: `ViewChart`
191
214
  */
192
215
  intents?: CountryIntents;
193
216
  }
217
+ /**
218
+ * All available Country Intents
219
+ */
194
220
  export declare type CountryIntents = CountryIntent[];
221
+ /**
222
+ * FDC3 Intents available to a Country Column
223
+ */
195
224
  export declare type CountryIntent = 'ViewChart';
196
- export declare type FDC3Intent = 'ViewChart' | 'ViewQuote' | 'ViewNews' | 'ViewAnalysis' | 'ViewInstrument' | 'StartCall' | 'StartChat' | 'ViewContact';
225
+ /**
226
+ * Full list of FDC3 Intents available - each FDC3 Column can use a subset
227
+ */
228
+ export declare type FDC3Intent = 'StartCall' | 'StartChat' | 'ViewAnalysis' | 'ViewChart' | 'ViewContact' | 'ViewInstrument' | 'ViewNews' | 'ViewQuote';
229
+ /**
230
+ * Context passed into Raise FDC3 Intent functions (e.g. get label)
231
+ */
232
+ export interface RaiseFDC3IntentContext extends ContextMenuContext {
233
+ /**
234
+ * FDC3 Intent that was raised
235
+ */
236
+ intent: FDC3Intent;
237
+ }
@@ -62,6 +62,13 @@ export interface GeneralOptions {
62
62
  * @gridInfoItem
63
63
  */
64
64
  currentCalendar?: string;
65
+ /**
66
+ * English variant to use in UI labels
67
+ *
68
+ * @defaultValue 'GB'
69
+ * @gridInfoItem
70
+ */
71
+ englishVariant?: 'GB' | 'US';
65
72
  /**
66
73
  * Custom Cell Summary Operations to add to shipped set
67
74
  */
@@ -88,6 +88,13 @@ export interface UserInterfaceOptions {
88
88
  * @defaultValue ['GridSummary', 'AdaptableOptions', 'ColumnInfo']
89
89
  */
90
90
  gridInfoSections?: GridInfoSections;
91
+ /**
92
+ * Displays the AdapTable version in Grid Info section of Settings Panel
93
+ *
94
+ * @defaultValue true
95
+ * @gridInfoItem
96
+ */
97
+ showAdapTableVersion?: boolean;
91
98
  }
92
99
  export interface BasePermittedValues {
93
100
  /**
@@ -36,6 +36,7 @@ import { DataChangeHistoryApi } from './DataChangeHistoryApi';
36
36
  import { FlashingCellApi } from './FlashingCellApi';
37
37
  import { ChartingApi } from './ChartingApi';
38
38
  import { SettingsPanelApi } from './SettingsPanelApi';
39
+ import { StatusBarApi } from './StatusBarApi';
39
40
  /**
40
41
  *
41
42
  * The `AdaptableApi` provides developers with run-time access to AdapTable.
@@ -191,6 +192,10 @@ export interface AdaptableApi {
191
192
  * Provides run-time access to Charting Module and state
192
193
  */
193
194
  chartingApi: ChartingApi;
195
+ /**
196
+ * Provides run-time access to the AdapTable Status Bar
197
+ */
198
+ statusBarApi: StatusBarApi;
194
199
  /**
195
200
  * Api methods used *internally* within AdapTable.
196
201
  * @internal
@@ -19,4 +19,12 @@ export interface CellSummaryApi {
19
19
  * Opens Settings Panel with Cell Summary section selected and visible
20
20
  */
21
21
  showCellSummaryPopup(): void;
22
+ /**
23
+ * Retrieves the value of the current selected operation
24
+ */
25
+ getCurrentCellSummaryOperationValue(): number;
26
+ /**
27
+ * Retrieves the value of the current selected operation
28
+ */
29
+ getCellSummaryOperationValue(operation: CellSummaryOperation | string): any;
22
30
  }
@@ -37,6 +37,7 @@ import { PredicateApi } from '../PredicateApi';
37
37
  import { DataChangeHistoryApi } from '../DataChangeHistoryApi';
38
38
  import { FlashingCellApi } from '../FlashingCellApi';
39
39
  import { ChartingApi } from '../ChartingApi';
40
+ import { StatusBarApi } from '../StatusBarApi';
40
41
  export declare class AdaptableApiImpl implements AdaptableApi {
41
42
  protected adaptable: IAdaptable;
42
43
  applicationApi: ApplicationApi;
@@ -77,6 +78,7 @@ export declare class AdaptableApiImpl implements AdaptableApi {
77
78
  scopeApi: ScopeApi;
78
79
  dataChangeHistoryApi: DataChangeHistoryApi;
79
80
  chartingApi: ChartingApi;
81
+ statusBarApi: StatusBarApi;
80
82
  constructor(adaptable: IAdaptable);
81
83
  destroy(config?: {
82
84
  unmount: boolean;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptableApiImpl = void 0;
4
4
  const AlertApiImpl_1 = require("./AlertApiImpl");
5
+ const StatusBarApiImpl_1 = require("./StatusBarApiImpl");
5
6
  const PredicateApiImpl_1 = require("./PredicateApiImpl");
6
7
  const PluginsApiImpl_1 = require("./PluginsApiImpl");
7
8
  const BulkUpdateApiImpl_1 = require("./BulkUpdateApiImpl");
@@ -80,6 +81,7 @@ class AdaptableApiImpl {
80
81
  this.scopeApi = new ScopeApiImpl_1.ScopeApiImpl(adaptable);
81
82
  this.dataChangeHistoryApi = new DataChangeHistoryApiImpl_1.DataChangeHistoryApiImpl(adaptable);
82
83
  this.chartingApi = new ChartingApiImpl_1.ChartingApiImpl(adaptable);
84
+ this.statusBarApi = new StatusBarApiImpl_1.StatusBarApiImpl(adaptable);
83
85
  this.internalApi = new InternalApiImpl_1.InternalApiImpl(adaptable);
84
86
  }
85
87
  destroy(config) {
@@ -105,18 +105,27 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
105
105
  timeout: this.getAlertOptions().cellHighlightDuration,
106
106
  });
107
107
  }
108
+ if (actionName === 'highlight-row' && cellDataChangedInfo) {
109
+ const rowsHighlightInfo = {
110
+ primaryKeyValues: [cellDataChangedInfo.primaryKeyValue],
111
+ highlightStyle: {
112
+ BackColor: getBackgroundColor(alertDefinition),
113
+ },
114
+ timeout: this.getAlertOptions().rowHighlightDuration,
115
+ };
116
+ this.adaptable.api.gridApi.highlightRows(rowsHighlightInfo);
117
+ }
108
118
  if (actionName === 'highlight-row' &&
109
119
  gridDataChangedInfo &&
110
120
  // no sense to highlight a deleted(non-existing) row
111
121
  (gridDataChangedInfo === null || gridDataChangedInfo === void 0 ? void 0 : gridDataChangedInfo.rowTrigger) !== 'Delete') {
112
- const backgroundColor = getBackgroundColor(alertDefinition);
113
122
  const primaryKeyValues = this.adaptable.api.gridApi.getPrimaryKeyValuesForRowNodes(gridDataChangedInfo.rowNodes);
114
123
  const rowsHighlightInfo = {
115
124
  primaryKeyValues,
116
125
  highlightStyle: {
117
- BackColor: backgroundColor,
126
+ BackColor: getBackgroundColor(alertDefinition),
118
127
  },
119
- timeout: this.getAlertOptions().cellHighlightDuration,
128
+ timeout: this.getAlertOptions().rowHighlightDuration,
120
129
  };
121
130
  this.adaptable.api.gridApi.highlightRows(rowsHighlightInfo);
122
131
  }
@@ -200,30 +209,38 @@ class AlertApiImpl extends ApiBase_1.ApiBase {
200
209
  this.adaptable.jumpToRow(firstRowNode);
201
210
  }
202
211
  }
203
- // 6.HighlightCell and 7.HighlightRow are exclusive, based on alertType!
204
- // 6: Highlight the cell - we just refresh the cells to trigger a re-evaluation of the Adaptable.setupColumn[Style/Class]
205
- if (alertProperties.HighlightCell &&
206
- AdaptableAlert_1.isAdaptableCellChangedAlert(alertToShow) &&
207
- alertToShow.cellDataChangedInfo) {
212
+ // 6: For CellChanged Alerts either Highlight the cell or row
213
+ // for former - we just refresh the cells to trigger a re-evaluation of the Adaptable.setupColumn[Style/Class]
214
+ if (AdaptableAlert_1.isAdaptableCellChangedAlert(alertToShow) &&
215
+ alertToShow.cellDataChangedInfo &&
216
+ (alertProperties.HighlightCell || alertProperties.HighlightRow)) {
208
217
  let alertNode = alertToShow.cellDataChangedInfo.rowNode;
209
218
  if (!alertNode) {
210
219
  alertNode = this.adaptable.getRowNodeForPrimaryKey(alertToShow.cellDataChangedInfo.primaryKeyValue);
211
220
  }
212
221
  if (alertNode) {
213
- this.adaptable.api.gridApi.refreshCells([alertNode], [alertToShow.cellDataChangedInfo.column.columnId]);
214
- setTimeout(() => {
215
- this.dispatchAction(SystemRedux.SystemAlertRemoveHighlight(alertToShow));
216
- }, this.adaptable.adaptableOptions.alertOptions.cellHighlightDuration);
222
+ if (alertProperties.HighlightRow) {
223
+ this.adaptable.api.gridApi.refreshRowNodes([alertNode]);
224
+ setTimeout(() => {
225
+ this.dispatchAction(SystemRedux.SystemAlertRemoveRowHighlight(alertToShow));
226
+ }, this.adaptable.adaptableOptions.alertOptions.rowHighlightDuration);
227
+ }
228
+ if (alertProperties.HighlightCell) {
229
+ this.adaptable.api.gridApi.refreshCells([alertNode], [alertToShow.cellDataChangedInfo.column.columnId]);
230
+ setTimeout(() => {
231
+ this.dispatchAction(SystemRedux.SystemAlertRemoveCellHighlight(alertToShow));
232
+ }, this.adaptable.adaptableOptions.alertOptions.cellHighlightDuration);
233
+ }
217
234
  }
218
235
  }
219
- // 7. Highlight the row - we just refresh the rows to trigger a re-evaluation of the Adaptable.setupColumn[Style/Class]
236
+ // 7. For RowChange Alerts only Highlight the row - we just refresh the rows to trigger a re-evaluation of the Adaptable.setupColumn[Style/Class]
220
237
  else if (alertProperties.HighlightRow &&
221
238
  AdaptableAlert_1.isAdaptableRowChangedAlert(alertToShow) &&
222
239
  ((_b = alertToShow.gridDataChangedInfo) === null || _b === void 0 ? void 0 : _b.rowTrigger) === 'Add') {
223
240
  this.adaptable.api.gridApi.refreshRowNodes(alertToShow.gridDataChangedInfo.rowNodes);
224
241
  setTimeout(() => {
225
- this.dispatchAction(SystemRedux.SystemAlertRemoveHighlight(alertToShow));
226
- }, this.adaptable.adaptableOptions.alertOptions.cellHighlightDuration);
242
+ this.dispatchAction(SystemRedux.SystemAlertRemoveRowHighlight(alertToShow));
243
+ }, this.adaptable.adaptableOptions.alertOptions.rowHighlightDuration);
227
244
  }
228
245
  }
229
246
  }
@@ -7,4 +7,6 @@ export declare class CellSummaryApiImpl extends ApiBase implements CellSummaryAp
7
7
  getCellSummaryOperationDefinitions(): CellSummaryOperation[];
8
8
  showCellSummaryPopup(): void;
9
9
  setCurrentCellSummaryOperation(operation: SummaryOperation | string): void;
10
+ getCellSummaryOperationValue(operation: SummaryOperation | string): any;
11
+ getCurrentCellSummaryOperationValue(): any;
10
12
  }
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  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
+ const Enums_1 = require("../../PredefinedConfig/Common/Enums");
8
9
  class CellSummaryApiImpl extends ApiBase_1.ApiBase {
9
10
  getCurrentCellSummaryOperation() {
10
11
  return this.getAdaptableState().System.CellSummaryOperation;
@@ -18,5 +19,38 @@ class CellSummaryApiImpl extends ApiBase_1.ApiBase {
18
19
  setCurrentCellSummaryOperation(operation) {
19
20
  this.dispatchAction(SystemRedux.SystemCellSummaryChangeOperation(operation));
20
21
  }
22
+ getCellSummaryOperationValue(operation) {
23
+ const cellSummary = this.getAdaptableState().Grid.CellSummary;
24
+ if (!cellSummary) {
25
+ return 'N/A';
26
+ }
27
+ switch (operation) {
28
+ case Enums_1.SummaryOperation.Sum:
29
+ return cellSummary.Sum;
30
+ case Enums_1.SummaryOperation.Average:
31
+ return cellSummary.Average;
32
+ case Enums_1.SummaryOperation.Median:
33
+ return cellSummary.Median;
34
+ case Enums_1.SummaryOperation.Mode:
35
+ return cellSummary.Mode;
36
+ case Enums_1.SummaryOperation.Max:
37
+ return cellSummary.Max;
38
+ case Enums_1.SummaryOperation.Min:
39
+ return cellSummary.Min;
40
+ case Enums_1.SummaryOperation.Distinct:
41
+ return cellSummary.Distinct;
42
+ case Enums_1.SummaryOperation.Count:
43
+ return cellSummary.Count;
44
+ default:
45
+ return cellSummary[operation];
46
+ }
47
+ }
48
+ getCurrentCellSummaryOperationValue() {
49
+ const cellSummaryOperation = this.getCurrentCellSummaryOperation();
50
+ const summaryOperation = typeof cellSummaryOperation === 'string'
51
+ ? cellSummaryOperation
52
+ : cellSummaryOperation.operationName;
53
+ return this.getCellSummaryOperationValue(summaryOperation);
54
+ }
21
55
  }
22
56
  exports.CellSummaryApiImpl = CellSummaryApiImpl;
@@ -374,6 +374,9 @@ class ConfigApiImpl extends ApiBase_1.ApiBase {
374
374
  case 'ToolPanel':
375
375
  this.dispatchAction(ToolPanelRedux.ToolPanelReady(this.getToolPanelState()));
376
376
  break;
377
+ case 'StatusBar':
378
+ this.dispatchAction(ToolPanelRedux.ToolPanelReady(this.getToolPanelState()));
379
+ break;
377
380
  }
378
381
  }
379
382
  }
@@ -58,10 +58,6 @@ class GridApiImpl extends ApiBase_1.ApiBase {
58
58
  LoggingHelper_1.LogAdaptableWarning(`setCellValue() - rowNode not found for primaryKeyValue: ${primaryKeyValue}`);
59
59
  return;
60
60
  }
61
- if (!this.adaptable.isCellEditable(rowNode, this.adaptable.getAgGridColumnForColumnId(columnId))) {
62
- LoggingHelper_1.LogAdaptableInfo(`setCellValue() - cell is not editable (primaryKeyValue: ${primaryKeyValue},columnId: ${columnId},value: ${newValue})`);
63
- return;
64
- }
65
61
  this.adaptable.setDataValue(newValue, abColumn, primaryKeyValue, rowNode);
66
62
  }
67
63
  setCellsValue(gridCells) {
@@ -60,7 +60,7 @@ export declare class InternalApiImpl extends ApiBase implements InternalApi {
60
60
  hidePopupScreen(): void;
61
61
  hidePopupAlert(): void;
62
62
  setColumns(columns: AdaptableColumn[]): void;
63
- setModuleDropdownMenuItems(menuItems: AdaptableMenuItem[]): void;
63
+ setSettingPanelModuleMenuItems(menuItems: AdaptableMenuItem[]): void;
64
64
  setModuleButtonMenuItems(menuItems: AdaptableMenuItem[]): void;
65
65
  setSelectedCells(selectedCellInfo: SelectedCellInfo): void;
66
66
  setSelectedRows(selectedRowInfo: SelectedRowInfo): void;
@@ -120,5 +120,6 @@ export declare class InternalApiImpl extends ApiBase implements InternalApi {
120
120
  isTextComparisonCaseSensitive(): boolean;
121
121
  executeWithProgressIndicator(label: string, executeFn: () => void): void;
122
122
  hideProgressIndicator(): void;
123
+ getCorrectEnglishVariant(wordToSpell: string): string;
123
124
  dispatchReduxAction(action: Action): void;
124
125
  }
@@ -80,13 +80,27 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
80
80
  });
81
81
  }
82
82
  getAdaptableAlertWithHighlightRow(rowNode) {
83
- // only alerts triggered by row changes are relevant for HighlightRow actions
84
- return this.getAdaptableRowChangedAlerts().find((alert) => {
85
- var _a;
86
- if (((_a = alert.alertDefinition.AlertProperties) === null || _a === void 0 ? void 0 : _a.HighlightRow) && alert.gridDataChangedInfo) {
87
- return alert.gridDataChangedInfo.rowNodes.map((rowNode) => rowNode.id).includes(rowNode.id);
83
+ let alertWithRowHighlight;
84
+ alertWithRowHighlight = this.getAdaptableRowChangedAlerts().find((alert) => {
85
+ var _a, _b;
86
+ if ((_a = alert.alertDefinition.AlertProperties) === null || _a === void 0 ? void 0 : _a.HighlightRow) {
87
+ if ((_b = alert.gridDataChangedInfo) === null || _b === void 0 ? void 0 : _b.rowNodes.map((rowNode) => rowNode.id).includes(rowNode.id)) {
88
+ return alert;
89
+ }
88
90
  }
89
91
  });
92
+ if (alertWithRowHighlight) {
93
+ return alertWithRowHighlight;
94
+ }
95
+ alertWithRowHighlight = this.getAdaptableCellChangedAlerts().find((alert) => {
96
+ var _a, _b;
97
+ if ((_a = alert.alertDefinition.AlertProperties) === null || _a === void 0 ? void 0 : _a.HighlightRow) {
98
+ if (((_b = alert.cellDataChangedInfo) === null || _b === void 0 ? void 0 : _b.rowNode.id) == rowNode.id) {
99
+ return alert;
100
+ }
101
+ }
102
+ });
103
+ return alertWithRowHighlight;
90
104
  }
91
105
  isAlertDefinitionForAddedRowChangeEvent(alertDefinition) {
92
106
  var _a, _b;
@@ -137,8 +151,8 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
137
151
  setColumns(columns) {
138
152
  this.dispatchAction(GridRedux.GridSetColumns(columns));
139
153
  }
140
- setModuleDropdownMenuItems(menuItems) {
141
- this.dispatchAction(GridRedux.SetModuleDropdownMenuItems(menuItems));
154
+ setSettingPanelModuleMenuItems(menuItems) {
155
+ this.dispatchAction(GridRedux.SetSettingPanelModuleMenuItems(menuItems));
142
156
  }
143
157
  setModuleButtonMenuItems(menuItems) {
144
158
  this.dispatchAction(GridRedux.SetModuleButtonMenuItems(menuItems));
@@ -443,6 +457,14 @@ class InternalApiImpl extends ApiBase_1.ApiBase {
443
457
  hideProgressIndicator() {
444
458
  this.dispatchReduxAction(SystemRedux_1.SystemProgressIndicatorHide());
445
459
  }
460
+ getCorrectEnglishVariant(wordToSpell) {
461
+ if (wordToSpell.includes('our')) {
462
+ return this.getGeneralOptions().englishVariant == 'GB'
463
+ ? wordToSpell
464
+ : wordToSpell.replace('our', 'or');
465
+ }
466
+ return wordToSpell;
467
+ }
446
468
  // General way to get to store from inside Adaptable...
447
469
  dispatchReduxAction(action) {
448
470
  this.dispatchAction(action);
@@ -16,4 +16,5 @@ export declare class QueryApiImpl extends ApiBase implements QueryApi {
16
16
  getCurrentQuery(): string | undefined;
17
17
  getReferencedNamedQueryNames(expression?: string): string[];
18
18
  getNamedQueryModuleReferences(namedQueryName: string): string[];
19
+ expandCurrentQuery(query?: string): void;
19
20
  }
@@ -8,6 +8,7 @@ const StringExtensions_1 = require("../../Utilities/Extensions/StringExtensions"
8
8
  const QueryRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/QueryRedux"));
9
9
  const PopupRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/PopupRedux"));
10
10
  const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
11
+ const windowFactory_1 = require("../../View/Components/Popups/WindowPopups/windowFactory");
11
12
  class QueryApiImpl extends ApiBase_1.ApiBase {
12
13
  getQueryState() {
13
14
  return this.getAdaptableState().Query;
@@ -76,5 +77,16 @@ class QueryApiImpl extends ApiBase_1.ApiBase {
76
77
  });
77
78
  return references;
78
79
  }
80
+ expandCurrentQuery(query) {
81
+ const preparedQuery = query !== null && query !== void 0 ? query : this.getCurrentQuery();
82
+ this.adaptable.api.internalApi.dispatchReduxAction(PopupRedux.PopupShowWindow({
83
+ Id: windowFactory_1.WINDOW_QUERY_EDITOR,
84
+ Title: 'Current Query',
85
+ Icon: 'query',
86
+ PopupProps: {
87
+ value: preparedQuery,
88
+ },
89
+ }));
90
+ }
79
91
  }
80
92
  exports.QueryApiImpl = QueryApiImpl;
@@ -0,0 +1,8 @@
1
+ import { AdaptableStatusBar } from '../../PredefinedConfig/StatusBarState';
2
+ import { StatusBarApi } from '../StatusBarApi';
3
+ import { ApiBase } from './ApiBase';
4
+ export declare class StatusBarApiImpl extends ApiBase implements StatusBarApi {
5
+ getStatusPanels(): AdaptableStatusBar[];
6
+ getAgGridStatusPanels(): import("@ag-grid-community/core").StatusPanelDef[];
7
+ setStatusPanels(statusPanels: AdaptableStatusBar[]): void;
8
+ }