@adaptabletools/adaptable 18.0.0-canary.31 → 18.0.0-canary.33

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 (90) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableOptions/QuickSearchOptions.d.ts +1 -1
  3. package/src/Api/AdaptableApi.d.ts +2 -2
  4. package/src/Api/{ScopeApi.d.ts → ColumnScopeApi.d.ts} +2 -2
  5. package/src/Api/GridApi.d.ts +6 -1
  6. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -2
  7. package/src/Api/Implementation/AdaptableApiImpl.js +3 -3
  8. package/src/Api/Implementation/AlertApiImpl.js +3 -3
  9. package/src/Api/Implementation/ApiBase.d.ts +2 -2
  10. package/src/Api/Implementation/ApiBase.js +2 -2
  11. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -1
  12. package/src/Api/Implementation/{ScopeApiImpl.d.ts → ColumnScopeApiImpl.d.ts} +2 -2
  13. package/src/Api/Implementation/{ScopeApiImpl.js → ColumnScopeApiImpl.js} +2 -2
  14. package/src/Api/Implementation/FlashingCellApiImpl.js +1 -1
  15. package/src/Api/Implementation/FormatColumnApiImpl.js +3 -3
  16. package/src/Api/Implementation/GridApiImpl.d.ts +1 -0
  17. package/src/Api/Implementation/GridApiImpl.js +5 -0
  18. package/src/Api/Implementation/NoteApiImpl.d.ts +1 -1
  19. package/src/Api/Implementation/NoteApiImpl.js +2 -2
  20. package/src/Api/Implementation/UserInterfaceApiImpl.js +3 -3
  21. package/src/Api/Internal/AdaptableInternalApi.js +1 -1
  22. package/src/Api/Internal/AlertInternalApi.js +3 -3
  23. package/src/Api/Internal/CustomSortInternalApi.js +1 -1
  24. package/src/Api/Internal/ExportInternalApi.js +1 -1
  25. package/src/Api/Internal/ExpressionInternalApi.js +1 -1
  26. package/src/Api/Internal/FormatColumnInternalApi.js +12 -13
  27. package/src/Api/Internal/StyledColumnInternalApi.js +1 -1
  28. package/src/Api/NoteApi.d.ts +1 -1
  29. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  30. package/src/PredefinedConfig/Common/RowScope.d.ts +2 -2
  31. package/src/PredefinedConfig/FormatColumnState.d.ts +1 -1
  32. package/src/PredefinedConfig/LayoutState.d.ts +1 -1
  33. package/src/Redux/ActionsReducers/NoteRedux.d.ts +1 -1
  34. package/src/Redux/ActionsReducers/NoteRedux.js +3 -3
  35. package/src/Strategy/AlertModule.js +2 -2
  36. package/src/Strategy/ExportModule.js +21 -4
  37. package/src/Strategy/FlashingCellModule.js +4 -4
  38. package/src/Strategy/FormatColumnModule.js +2 -2
  39. package/src/Strategy/NoteModule.js +3 -3
  40. package/src/Strategy/PlusMinusModule.js +3 -3
  41. package/src/Strategy/ShortcutModule.js +1 -1
  42. package/src/Strategy/StyledColumnModule.js +4 -4
  43. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +1 -1
  44. package/src/Utilities/Services/CellPopupService.js +4 -4
  45. package/src/Utilities/Services/ReportService.js +2 -2
  46. package/src/Utilities/Services/ValidationService.js +2 -2
  47. package/src/View/Alert/AlertEntityRow.js +1 -1
  48. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
  49. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  50. package/src/View/ColumnInfo/ColumnInfo.js +1 -1
  51. package/src/View/Components/NewScopeComponent.js +2 -2
  52. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +3 -6
  53. package/src/View/Components/RangesComponent.js +1 -1
  54. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +1 -1
  55. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  56. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
  57. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
  58. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
  59. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +5 -5
  60. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
  61. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +1 -1
  62. package/src/View/PlusMinus/PlusMinusSummary.js +2 -2
  63. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +5 -7
  64. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  65. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +5 -5
  66. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -1
  67. package/src/agGrid/ActionColumnRenderer.js +10 -11
  68. package/src/agGrid/AdaptableAgGrid.js +2 -3
  69. package/src/agGrid/AgGridColumnAdapter.js +10 -10
  70. package/src/agGrid/AgGridMenuAdapter.js +5 -5
  71. package/src/agGrid/BadgeRenderer.js +6 -7
  72. package/src/agGrid/PercentBarRenderer.js +1 -1
  73. package/src/components/Accordion.d.ts +7 -0
  74. package/src/components/Accordion.js +36 -0
  75. package/src/components/icons/collapse-all.d.ts +3 -0
  76. package/src/components/icons/collapse-all.js +4 -0
  77. package/src/components/icons/csv.d.ts +3 -0
  78. package/src/components/icons/csv.js +4 -0
  79. package/src/components/icons/data-object.d.ts +3 -0
  80. package/src/components/icons/data-object.js +4 -0
  81. package/src/components/icons/excel.d.ts +3 -0
  82. package/src/components/icons/excel.js +5 -0
  83. package/src/components/icons/expand-all.d.ts +3 -0
  84. package/src/components/icons/expand-all.js +4 -0
  85. package/src/components/icons/index.js +10 -0
  86. package/src/env.js +2 -2
  87. package/src/metamodel/adaptable.metamodel.js +1 -1
  88. package/src/types.d.ts +1 -1
  89. package/tsconfig.esm.tsbuildinfo +1 -1
  90. /package/src/Api/{ScopeApi.js → ColumnScopeApi.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "18.0.0-canary.31",
3
+ "version": "18.0.0-canary.33",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -33,7 +33,7 @@ export interface QuickSearchOptions<TData = any> {
33
33
  */
34
34
  filterResultsAfterQuickSearch?: boolean;
35
35
  /**
36
- * Include Aggregrated Columns in Grouped Rows when Quick Searching (highlight only)
36
+ * Include Aggregrated Columns in Group Rows when Quick Searching (highlight only)
37
37
  *
38
38
  * @defaultValue false
39
39
  * @gridInfoItem
@@ -29,7 +29,7 @@ import { ExpressionApi } from './ExpressionApi';
29
29
  import { TeamSharingApi } from './TeamSharingApi';
30
30
  import { ColumnApi } from './ColumnApi';
31
31
  import { ApplicationApi } from './ApplicationApi';
32
- import { ScopeApi } from './ScopeApi';
32
+ import { ColumnScopeApi } from './ColumnScopeApi';
33
33
  import { PredicateApi } from './PredicateApi';
34
34
  import { DataChangeHistoryApi } from './DataChangeHistoryApi';
35
35
  import { FlashingCellApi } from './FlashingCellApi';
@@ -193,7 +193,7 @@ export interface AdaptableApi {
193
193
  /**
194
194
  * Manages the `Scope` object - used widely to determine where objects are applied
195
195
  */
196
- scopeApi: ScopeApi;
196
+ columnScopeApi: ColumnScopeApi;
197
197
  /**
198
198
  * Provides access to the Shortcut Module
199
199
  */
@@ -2,9 +2,9 @@ import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
2
2
  import { ColumnScope, ScopeDataType } from '../PredefinedConfig/Common/ColumnScope';
3
3
  import { CellColorRange } from '../PredefinedConfig/StyledColumnState';
4
4
  /**
5
- * Provides access to a suite of functions related to the `Scope` object
5
+ * Provides access to a suite of functions related to the `Column Scope` object
6
6
  */
7
- export interface ScopeApi {
7
+ export interface ColumnScopeApi {
8
8
  /**
9
9
  * True if Column is in given Scope
10
10
  * @param column Column to check
@@ -385,6 +385,11 @@ export interface GridApi {
385
385
  * @param rowNode Node to check
386
386
  */
387
387
  isGroupRowNode(rowNode: IRowNode): boolean;
388
+ /**
389
+ * Whether given Row Node is in a Smmary Row
390
+ * @param rowNode Node to check
391
+ */
392
+ isSummaryNode(rowNode: IRowNode): boolean;
388
393
  /**
389
394
  * Whether Quick Filter is available in the Grid
390
395
  */
@@ -480,7 +485,7 @@ export interface GridApi {
480
485
  */
481
486
  refreshRowNodes(rowNodes: IRowNode[]): void;
482
487
  /**
483
- * Forces a re-render of all Grouped rows (including aggregations)
488
+ * Forces a re-render of all Group Rows (including aggregations)
484
489
  */
485
490
  refreshGroupRowNodes(): void;
486
491
  /**
@@ -31,7 +31,7 @@ import { ExpressionApi } from '../ExpressionApi';
31
31
  import { TeamSharingApi } from '../TeamSharingApi';
32
32
  import { ColumnApi } from '../ColumnApi';
33
33
  import { ApplicationApi } from '../ApplicationApi';
34
- import { ScopeApi } from '../ScopeApi';
34
+ import { ColumnScopeApi } from '../ColumnScopeApi';
35
35
  import { PredicateApi } from '../PredicateApi';
36
36
  import { DataChangeHistoryApi } from '../DataChangeHistoryApi';
37
37
  import { FlashingCellApi } from '../FlashingCellApi';
@@ -86,7 +86,7 @@ export declare class AdaptableApiImpl implements AdaptableApi {
86
86
  styledColumnApi: StyledColumnApi;
87
87
  toolPanelApi: ToolPanelApi;
88
88
  teamSharingApi: TeamSharingApi;
89
- scopeApi: ScopeApi;
89
+ columnScopeApi: ColumnScopeApi;
90
90
  dataChangeHistoryApi: DataChangeHistoryApi;
91
91
  chartingApi: ChartingApi;
92
92
  statusBarApi: StatusBarApi;
@@ -28,7 +28,7 @@ import { ScheduleApiImpl } from './ScheduleApiImpl';
28
28
  import { TeamSharingApiImpl } from './TeamSharingApiImpl';
29
29
  import { ColumnApiImpl } from './ColumnApiImpl';
30
30
  import { ApplicationApiImpl } from './ApplicationApiImpl';
31
- import { ScopeApiImpl } from './ScopeApiImpl';
31
+ import { ColumnScopeApiImpl } from './ColumnScopeApiImpl';
32
32
  import { DataChangeHistoryApiImpl } from './DataChangeHistoryApiImpl';
33
33
  import { ExpressionApiImpl } from './ExpressionApiImpl';
34
34
  import { FlashingCellApiImpl } from './FlashingCellApiImpl';
@@ -90,7 +90,7 @@ export class AdaptableApiImpl {
90
90
  this.styledColumnApi = new StyledColumnApiImpl(adaptable);
91
91
  this.toolPanelApi = new ToolPanelApiImpl(adaptable);
92
92
  this.teamSharingApi = new TeamSharingApiImpl(adaptable);
93
- this.scopeApi = new ScopeApiImpl(adaptable);
93
+ this.columnScopeApi = new ColumnScopeApiImpl(adaptable);
94
94
  this.dataChangeHistoryApi = new DataChangeHistoryApiImpl(adaptable);
95
95
  this.chartingApi = new ChartingApiImpl(adaptable);
96
96
  this.statusBarApi = new StatusBarApiImpl(adaptable);
@@ -144,7 +144,7 @@ export class AdaptableApiImpl {
144
144
  this.expressionApi = null;
145
145
  this.quickSearchApi = null;
146
146
  this.scheduleApi = null;
147
- this.scopeApi = null;
147
+ this.columnScopeApi = null;
148
148
  this.settingsPanelApi = null;
149
149
  this.shortcutApi = null;
150
150
  this.smartEditApi = null;
@@ -162,7 +162,7 @@ export class AlertApiImpl extends ApiBase {
162
162
  }
163
163
  evaluateAlertDefinitions(alertDefinitions) {
164
164
  const filterScopeAllDefinitions = (alertDefinition) => {
165
- if (this.getAdaptableApi().scopeApi.scopeIsAll(alertDefinition.Scope) &&
165
+ if (this.getAdaptableApi().columnScopeApi.scopeIsAll(alertDefinition.Scope) &&
166
166
  !this.getAdaptableApi().expressionApi.getAdaptableQueryExpression(alertDefinition.Rule)) {
167
167
  // we don't support scope ALL without an expression
168
168
  // the predicates for scope ALL do NOT make any sense for a programmatic evaluation
@@ -197,7 +197,7 @@ export class AlertApiImpl extends ApiBase {
197
197
  // if there is an Expression defined, extract only the columns from there (in that case the Scope would be 'All' anyway)
198
198
  // columns referenced in rule expression
199
199
  const ruleExpression = this.getAdaptableApi().expressionApi.getAdaptableQueryExpression(alertDefinition.Rule);
200
- if (this.getAdaptableApi().scopeApi.scopeIsAll(alertDefinition.Scope) &&
200
+ if (this.getAdaptableApi().columnScopeApi.scopeIsAll(alertDefinition.Scope) &&
201
201
  StringExtensions.IsNotNullOrEmpty(ruleExpression)) {
202
202
  // return only first referenced column (otherwise we would generate multiple alerts for the same row)
203
203
  const queryColumns = this.getAdaptableApi()
@@ -208,7 +208,7 @@ export class AlertApiImpl extends ApiBase {
208
208
  else {
209
209
  // otherwise return all columns for given scope
210
210
  return this.getAdaptableApi()
211
- .scopeApi.getColumnsForScope(alertDefinition.Scope)
211
+ .columnScopeApi.getColumnsForScope(alertDefinition.Scope)
212
212
  .map((adaptableColumn) => adaptableColumn.columnId);
213
213
  }
214
214
  }
@@ -7,7 +7,7 @@ import { ModuleInfo } from '../../Strategy/Interface/IModule';
7
7
  import { AdaptableOptions } from '../../AdaptableOptions/AdaptableOptions';
8
8
  import { AdaptableApi } from '../AdaptableApi';
9
9
  import { ExportOptions } from '../../AdaptableOptions/ExportOptions';
10
- import { ActionColumnApi, ActionColumnOptions, ActionRowApi, ActionRowOptions, AlertApi, AlertOptions, ApplicationApi, BulkUpdateApi, CalculatedColumnApi, CalendarApi, CalendarOptions, CellSummaryApi, CellSummaryOptions, ChartingApi, ChartingOptions, ColumnApi, ColumnFilterApi, ColumnFilterOptions, ColumnOptions, CommentOptions, ConfigApi, ContainerOptions, CustomSortApi, CustomSortOptions, DashboardApi, DashboardOptions, DataChangeHistoryApi, DataChangeHistoryOptions, DataSetApi, DataSetOptions, EditOptions, EntitlementApi, EntitlementOptions, EventApi, ExportApi, ExpressionApi, ExpressionOptions, Fdc3Api, Fdc3Options, FlashingCellApi, FlashingCellOptions, FormatColumnApi, FormatColumnOptions, FreeTextColumnApi, GridApi, GridFilterApi, GroupingOptions, LayoutApi, LayoutAssociatedObject, LayoutOptions, MenuOptions, NamedQueryApi, NoteOptions, NotificationsOptions, PluginsApi, PlusMinusApi, PredicateApi, PredicateOptions, QuickSearchApi, QuickSearchOptions, ScheduleApi, ScopeApi, SettingsPanelApi, SettingsPanelOptions, ShortcutApi, SmartEditApi, StateOptions, StatusBarApi, StyledColumnApi, SystemStatusApi, TeamSharingApi, TeamSharingOptions, ThemeApi, ToolPanelApi, ToolPanelOptions, UserInterfaceApi, UserInterfaceOptions } from '../../types';
10
+ import { ActionColumnApi, ActionColumnOptions, ActionRowApi, ActionRowOptions, AlertApi, AlertOptions, ApplicationApi, BulkUpdateApi, CalculatedColumnApi, CalendarApi, CalendarOptions, CellSummaryApi, CellSummaryOptions, ChartingApi, ChartingOptions, ColumnApi, ColumnFilterApi, ColumnFilterOptions, ColumnOptions, CommentOptions, ConfigApi, ContainerOptions, CustomSortApi, CustomSortOptions, DashboardApi, DashboardOptions, DataChangeHistoryApi, DataChangeHistoryOptions, DataSetApi, DataSetOptions, EditOptions, EntitlementApi, EntitlementOptions, EventApi, ExportApi, ExpressionApi, ExpressionOptions, Fdc3Api, Fdc3Options, FlashingCellApi, FlashingCellOptions, FormatColumnApi, FormatColumnOptions, FreeTextColumnApi, GridApi, GridFilterApi, GroupingOptions, LayoutApi, LayoutAssociatedObject, LayoutOptions, MenuOptions, NamedQueryApi, NoteOptions, NotificationsOptions, PluginsApi, PlusMinusApi, PredicateApi, PredicateOptions, QuickSearchApi, QuickSearchOptions, ScheduleApi, ColumnScopeApi, SettingsPanelApi, SettingsPanelOptions, ShortcutApi, SmartEditApi, StateOptions, StatusBarApi, StyledColumnApi, SystemStatusApi, TeamSharingApi, TeamSharingOptions, ThemeApi, ToolPanelApi, ToolPanelOptions, UserInterfaceApi, UserInterfaceOptions } from '../../types';
11
11
  import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
12
12
  export declare abstract class ApiBase {
13
13
  protected adaptable: IAdaptable;
@@ -123,7 +123,7 @@ export declare abstract class ApiBase {
123
123
  protected getStyledColumnApi(): StyledColumnApi;
124
124
  protected getToolPanelApi(): ToolPanelApi;
125
125
  protected getTeamSharingApi(): TeamSharingApi;
126
- protected getScopeApi(): ScopeApi;
126
+ protected getColumnScopeApi(): ColumnScopeApi;
127
127
  protected getDataChangeHistoryApi(): DataChangeHistoryApi;
128
128
  protected getChartingApi(): ChartingApi;
129
129
  protected getStatusBarApi(): StatusBarApi;
@@ -311,8 +311,8 @@ export class ApiBase {
311
311
  getTeamSharingApi() {
312
312
  return this.getAdaptableApi().teamSharingApi;
313
313
  }
314
- getScopeApi() {
315
- return this.getAdaptableApi().scopeApi;
314
+ getColumnScopeApi() {
315
+ return this.getAdaptableApi().columnScopeApi;
316
316
  }
317
317
  getDataChangeHistoryApi() {
318
318
  return this.getAdaptableApi().dataChangeHistoryApi;
@@ -14,7 +14,7 @@ export class ColumnFilterApiImpl extends ApiBase {
14
14
  };
15
15
  return this.getAdaptableApi()
16
16
  .predicateApi.internalApi.getFilterPredicateDefs(scope)
17
- .filter((predicate) => this.getAdaptableApi().scopeApi.isColumnInScope(column, predicate.columnScope));
17
+ .filter((predicate) => this.getAdaptableApi().columnScopeApi.isColumnInScope(column, predicate.columnScope));
18
18
  }
19
19
  getFilterPredicateDefsForColumnId(columnId) {
20
20
  const column = this.getAdaptableApi().columnApi.getColumnWithColumnId(columnId);
@@ -1,9 +1,9 @@
1
1
  import { ApiBase } from './ApiBase';
2
2
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
3
3
  import { ColumnScope, ScopeDataType } from '../../PredefinedConfig/Common/ColumnScope';
4
- import { ScopeApi } from '../ScopeApi';
4
+ import { ColumnScopeApi } from '../ColumnScopeApi';
5
5
  import { CellColorRange } from '../../PredefinedConfig/StyledColumnState';
6
- export declare class ScopeApiImpl extends ApiBase implements ScopeApi {
6
+ export declare class ColumnScopeApiImpl extends ApiBase implements ColumnScopeApi {
7
7
  isColumnInScope(column: AdaptableColumn | undefined, scope: ColumnScope | undefined): boolean;
8
8
  getColumnsForScope(scope: ColumnScope): AdaptableColumn[];
9
9
  getScopeDescription(scope: ColumnScope): string;
@@ -1,7 +1,7 @@
1
1
  import { ApiBase } from './ApiBase';
2
2
  import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
3
3
  import { DARK_GREEN, getHexForName, GRAY, RED } from '../../View/UIHelper';
4
- export class ScopeApiImpl extends ApiBase {
4
+ export class ColumnScopeApiImpl extends ApiBase {
5
5
  isColumnInScope(column, scope) {
6
6
  if (!column) {
7
7
  return false;
@@ -276,7 +276,7 @@ export class ScopeApiImpl extends ApiBase {
276
276
  return false;
277
277
  }
278
278
  createCellColorRangesForScope(scope) {
279
- let distinctColumnsValues = this.getAdaptableApi().gridApi.internalApi.getDistinctRawValuesForColumn(this.getAdaptableApi().scopeApi.getSingleColumnInScope(scope));
279
+ let distinctColumnsValues = this.getAdaptableApi().gridApi.internalApi.getDistinctRawValuesForColumn(this.getAdaptableApi().columnScopeApi.getSingleColumnInScope(scope));
280
280
  let minValue = Math.min(...distinctColumnsValues);
281
281
  let maxValue = Math.max(...distinctColumnsValues);
282
282
  const ranges = [];
@@ -79,7 +79,7 @@ export class FlashingCellApiImpl extends ApiBase {
79
79
  getFlashingCellPredicateDefsForScope(scope) {
80
80
  return this.getAdaptableApi()
81
81
  .predicateApi.internalApi.getFlashingCellPredicateDefs(scope)
82
- .filter((predicateDef) => this.getAdaptableApi().scopeApi.isScopeInScope(scope, predicateDef.columnScope));
82
+ .filter((predicateDef) => this.getAdaptableApi().columnScopeApi.isScopeInScope(scope, predicateDef.columnScope));
83
83
  }
84
84
  clearAllFlashingCells() {
85
85
  this.dispatchAction(SystemRedux.SystemFlashingCellDeleteAll());
@@ -75,13 +75,13 @@ export class FormatColumnApiImpl extends ApiBase {
75
75
  this.showModulePopup(ModuleConstants.FormatColumnModuleId);
76
76
  }
77
77
  getFormatColumnsWithAllScope(formatColumns) {
78
- return formatColumns.filter((fc) => this.getAdaptableApi().scopeApi.scopeIsAll(fc.Scope));
78
+ return formatColumns.filter((fc) => this.getAdaptableApi().columnScopeApi.scopeIsAll(fc.Scope));
79
79
  }
80
80
  getFormatColumnsWithDataTypeScope(formatColumns) {
81
- return formatColumns.filter((fc) => this.getAdaptableApi().scopeApi.scopeHasDataType(fc.Scope));
81
+ return formatColumns.filter((fc) => this.getAdaptableApi().columnScopeApi.scopeHasDataType(fc.Scope));
82
82
  }
83
83
  getFormatColumnsWithColumnScope(formatColumns) {
84
- return formatColumns.filter((fc) => this.getAdaptableApi().scopeApi.scopeHasColumns(fc.Scope));
84
+ return formatColumns.filter((fc) => this.getAdaptableApi().columnScopeApi.scopeHasColumns(fc.Scope));
85
85
  }
86
86
  hasCustomDisplayFormatter(formatColumn) {
87
87
  var _a;
@@ -99,6 +99,7 @@ export declare class GridApiImpl extends ApiBase implements GridApi {
99
99
  isGridRowGrouped(): boolean;
100
100
  isGridInPivotMode(): boolean;
101
101
  isGroupRowNode(rowNode: IRowNode): boolean;
102
+ isSummaryNode(rowNode: IRowNode): boolean;
102
103
  isQuickFilterAvailable(): boolean;
103
104
  redrawGrid(): void;
104
105
  getGridCellsForRawValue(columnId: string, rawValue: any): GridCell[] | undefined;
@@ -6,6 +6,7 @@ import { GridInternalApi } from '../Internal/GridInternalApi';
6
6
  import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
7
7
  import { logDeprecation } from '../../Utilities/logDeprecation';
8
8
  import { WINDOW_SHOW_TRANSPOSED_VIEW } from '../../View/Components/Popups/WindowPopups/windowFactory';
9
+ import { ROW_SUMMARY_ROW_ID } from '../../PredefinedConfig/Common/RowSummary';
9
10
  export class GridApiImpl extends ApiBase {
10
11
  constructor(adaptable) {
11
12
  super(adaptable);
@@ -374,6 +375,10 @@ export class GridApiImpl extends ApiBase {
374
375
  isGroupRowNode(rowNode) {
375
376
  return this.adaptable.isGroupRowNode(rowNode);
376
377
  }
378
+ isSummaryNode(rowNode) {
379
+ var _a;
380
+ return (_a = rowNode === null || rowNode === void 0 ? void 0 : rowNode.data) === null || _a === void 0 ? void 0 : _a[ROW_SUMMARY_ROW_ID];
381
+ }
377
382
  isQuickFilterAvailable() {
378
383
  return this.adaptable.isQuickFilterAvailable();
379
384
  }
@@ -13,6 +13,6 @@ export declare class NoteApiImpl extends ApiBase implements NoteApi {
13
13
  deleteNote(note: AdaptableNote): void;
14
14
  getNoteState(): NoteState;
15
15
  getAllNotes(): AdaptableNotes;
16
- getNotesForCell(address: CellAddress): AdaptableNote[];
16
+ getNoteForCell(address: CellAddress): AdaptableNote;
17
17
  getNoteByUuid(uuid: string): AdaptableNote | undefined;
18
18
  }
@@ -31,8 +31,8 @@ export class NoteApiImpl extends ApiBase {
31
31
  getAllNotes() {
32
32
  return this.getNoteState().Notes;
33
33
  }
34
- getNotesForCell(address) {
35
- return NoteRedux.GetNotesSelector(this.getAdaptableState().Note, address);
34
+ getNoteForCell(address) {
35
+ return NoteRedux.GetNoteSelector(this.getAdaptableState().Note, address);
36
36
  }
37
37
  getNoteByUuid(uuid) {
38
38
  return this.getAllNotes().find((note) => note.Uuid === uuid);
@@ -42,21 +42,21 @@ export class UserInterfaceApiImpl extends ApiBase {
42
42
  // columns id
43
43
  permittedValuesItem = permittedValues.find((permittedValue) => {
44
44
  return ('ColumnIds' in permittedValue.scope &&
45
- this.getAdaptableApi().scopeApi.isColumnInScope(column, permittedValue.scope));
45
+ this.getAdaptableApi().columnScopeApi.isColumnInScope(column, permittedValue.scope));
46
46
  });
47
47
  if (permittedValuesItem) {
48
48
  return permittedValuesItem;
49
49
  }
50
50
  permittedValuesItem = permittedValues.find((permittedValue) => {
51
51
  return ('DataTypes' in permittedValue.scope &&
52
- this.getAdaptableApi().scopeApi.isColumnInScope(column, permittedValue.scope));
52
+ this.getAdaptableApi().columnScopeApi.isColumnInScope(column, permittedValue.scope));
53
53
  });
54
54
  if (permittedValuesItem) {
55
55
  return permittedValuesItem;
56
56
  }
57
57
  permittedValuesItem = permittedValues.find((permittedValue) => {
58
58
  return ('All' in permittedValue.scope &&
59
- this.getAdaptableApi().scopeApi.isColumnInScope(column, permittedValue.scope));
59
+ this.getAdaptableApi().columnScopeApi.isColumnInScope(column, permittedValue.scope));
60
60
  });
61
61
  if (permittedValuesItem) {
62
62
  return permittedValuesItem;
@@ -421,7 +421,7 @@ export class AdaptableInternalApi extends ApiBase {
421
421
  }
422
422
  // lastly filter by scope
423
423
  if (scope) {
424
- locatedAdaptableObjects = locatedAdaptableObjects.filter((adaptableObject) => this.getAdaptableApi().scopeApi.isScopeInScope(adaptableObject.Scope, scope));
424
+ locatedAdaptableObjects = locatedAdaptableObjects.filter((adaptableObject) => this.getAdaptableApi().columnScopeApi.isScopeInScope(adaptableObject.Scope, scope));
425
425
  }
426
426
  return locatedAdaptableObjects;
427
427
  }
@@ -209,7 +209,7 @@ export class AlertInternalApi extends ApiBase {
209
209
  getAlertPredicateDefsForScope(scope) {
210
210
  return this.getPredicateApi()
211
211
  .internalApi.getAlertPredicateDefs(scope)
212
- .filter((predicateDef) => this.getScopeApi().isScopeInScope(scope, predicateDef.columnScope));
212
+ .filter((predicateDef) => this.getColumnScopeApi().isScopeInScope(scope, predicateDef.columnScope));
213
213
  }
214
214
  /**
215
215
  * Returns a description of an Alert Definition
@@ -223,7 +223,7 @@ export class AlertInternalApi extends ApiBase {
223
223
  if (alertDefinition.MessageText != null) {
224
224
  return alertDefinition.MessageText;
225
225
  }
226
- let scopeDescription = this.getScopeApi().getScopeDescription(alertDefinition.Scope);
226
+ let scopeDescription = this.getColumnScopeApi().getScopeDescription(alertDefinition.Scope);
227
227
  let ruleDescription = this.getAlertRuleDescription(alertDefinition);
228
228
  return scopeDescription + ' - ' + ruleDescription;
229
229
  }
@@ -415,7 +415,7 @@ export class AlertInternalApi extends ApiBase {
415
415
  getAlertDefinitionsForCellDataChange(dataChangedEvent) {
416
416
  const allActiveNonReactiveDefinitions = this.getActiveNonReactiveAlertDefinitions();
417
417
  let relatedAlertDefinitions = allActiveNonReactiveDefinitions
418
- .filter((v) => this.getAdaptableApi().scopeApi.isColumnInScope(dataChangedEvent.column, v.Scope))
418
+ .filter((v) => this.getAdaptableApi().columnScopeApi.isColumnInScope(dataChangedEvent.column, v.Scope))
419
419
  .filter((alertDefinition) => !isReactiveQuery(alertDefinition.Rule));
420
420
  let triggeredAlerts = [];
421
421
  if (ArrayExtensions.IsNotNullOrEmpty(relatedAlertDefinitions)) {
@@ -3,7 +3,7 @@ export class CustomSortInternalApi extends ApiBase {
3
3
  getCustomSortComparer(columnId) {
4
4
  var _a;
5
5
  const column = this.getColumnApi().getColumnWithColumnId(columnId);
6
- return (_a = this.getCustomSortOptions().customSortComparers) === null || _a === void 0 ? void 0 : _a.find((csc) => this.getAdaptableApi().scopeApi.isColumnInScope(column, csc.scope));
6
+ return (_a = this.getCustomSortOptions().customSortComparers) === null || _a === void 0 ? void 0 : _a.find((csc) => this.getAdaptableApi().columnScopeApi.isColumnInScope(column, csc.scope));
7
7
  }
8
8
  getDefaultCustomSortComparer(columnId, columnValues) {
9
9
  // have to return a function that may not have access to this
@@ -21,7 +21,7 @@ export class ExportInternalApi extends ApiBase {
21
21
  break;
22
22
  case 'ScopeColumns':
23
23
  // use the Scope object which will tell us if the Column is relevant
24
- if (!this.getAdaptableApi().scopeApi.isColumnInScopeColumns(cellDataChangedInfo.column, report.Scope)) {
24
+ if (!this.getAdaptableApi().columnScopeApi.isColumnInScopeColumns(cellDataChangedInfo.column, report.Scope)) {
25
25
  return false;
26
26
  }
27
27
  break;
@@ -41,7 +41,7 @@ export class ExpressionInternalApi extends ApiBase {
41
41
  context.predicates = predicates;
42
42
  // need to find a way to get the columns in the predicates
43
43
  // cand do later
44
- // this.getAdaptableApi().scopeApi.getColumnsForScope();
44
+ // this.getAdaptableApi().columnScopeApi.getColumnsForScope();
45
45
  }
46
46
  return !evaluateExpressionExternallyFn(context);
47
47
  }
@@ -3,7 +3,6 @@ import StringExtensions from '../../Utilities/Extensions/StringExtensions';
3
3
  import FormatHelper from '../../Utilities/Helpers/FormatHelper';
4
4
  import ObjectFactory from '../../Utilities/ObjectFactory';
5
5
  import * as ModuleConstants from '../../Utilities/Constants/ModuleConstants';
6
- import { ROW_SUMMARY_ROW_ID } from '../../PredefinedConfig/Common/RowSummary';
7
6
  export class FormatColumnInternalApi extends ApiBase {
8
7
  /**
9
8
  * Retrieves all Format Columns in Adaptable State with the `Style` property set
@@ -60,7 +59,7 @@ export class FormatColumnInternalApi extends ApiBase {
60
59
  return this.getFormatColumnsWithStyleForColumn(column, config).filter((formatColumn) => { var _a; return StringExtensions.IsNotNullOrEmpty((_a = formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.Style) === null || _a === void 0 ? void 0 : _a.ClassName); });
61
60
  }
62
61
  getFormatColumnWithColumnInScope(formatColumns, column) {
63
- return this.getFormatColumnInColumnScope(formatColumns).filter((scopedFormatColumn) => this.getAdaptableApi().scopeApi.isColumnInScope(column, scopedFormatColumn.Scope));
62
+ return this.getFormatColumnInColumnScope(formatColumns).filter((scopedFormatColumn) => this.getAdaptableApi().columnScopeApi.isColumnInScope(column, scopedFormatColumn.Scope));
64
63
  }
65
64
  // TODO is this really needed, I don't think it achieves anything
66
65
  getFormatColumnInColumnScope(formatColumns) {
@@ -68,11 +67,11 @@ export class FormatColumnInternalApi extends ApiBase {
68
67
  return formatColumns.filter((fc) => {
69
68
  return (
70
69
  // this.getFormatColumnsWithColumnScope(formatColumns)
71
- (this.getAdaptableApi().scopeApi.scopeHasColumns(fc.Scope) ||
70
+ (this.getAdaptableApi().columnScopeApi.scopeHasColumns(fc.Scope) ||
72
71
  // this.getFormatColumnsWithDataTypeScope(formatColumns)
73
- this.getAdaptableApi().scopeApi.scopeHasDataType(fc.Scope) ||
72
+ this.getAdaptableApi().columnScopeApi.scopeHasDataType(fc.Scope) ||
74
73
  // this.getFormatColumnsWithAllScope(formatColumns)
75
- this.getAdaptableApi().scopeApi.scopeIsAll(fc.Scope) || this.getAdaptableApi().scopeApi.scopeHasColumnType(fc.Scope))
74
+ this.getAdaptableApi().columnScopeApi.scopeIsAll(fc.Scope) || this.getAdaptableApi().columnScopeApi.scopeHasColumnType(fc.Scope))
76
75
  );
77
76
  });
78
77
  }
@@ -145,7 +144,7 @@ export class FormatColumnInternalApi extends ApiBase {
145
144
  getFormatColumnDefsForScope(scope) {
146
145
  return this.getAdaptableApi()
147
146
  .predicateApi.internalApi.getFormatColumnPredicateDefs(scope)
148
- .filter((predicateDef) => this.getAdaptableApi().scopeApi.isScopeInScope(scope, predicateDef.columnScope));
147
+ .filter((predicateDef) => this.getAdaptableApi().columnScopeApi.isScopeInScope(scope, predicateDef.columnScope));
149
148
  }
150
149
  /**
151
150
  * Checks if format column is relevant for a given cell (intersection of given AdaptableColumn and RowNode)
@@ -155,26 +154,26 @@ export class FormatColumnInternalApi extends ApiBase {
155
154
  * @param params
156
155
  */
157
156
  formatColumnShouldRender(formatColumn, column, rowNode, cellValue) {
158
- var _a, _b, _c, _d, _e, _f;
157
+ var _a, _b, _c, _d, _e;
159
158
  // suspended is important to be first
160
159
  if (formatColumn.IsSuspended) {
161
160
  return false;
162
161
  }
163
- const isSummaryNode = (_a = rowNode === null || rowNode === void 0 ? void 0 : rowNode.data) === null || _a === void 0 ? void 0 : _a[ROW_SUMMARY_ROW_ID];
162
+ const isSummaryNode = this.getAdaptableApi().gridApi.isSummaryNode(rowNode);
164
163
  const isGroupedRowNode = this.getAdaptableApi().gridApi.isGroupRowNode(rowNode);
165
164
  // For Summary Rows cannot be excluded
166
165
  if (isSummaryNode) {
167
- if ((_b = formatColumn.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeSummaryRows) {
166
+ if ((_a = formatColumn.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeSummaryRows) {
168
167
  return false;
169
168
  }
170
169
  }
171
170
  else if (isGroupedRowNode) {
172
- if ((_c = formatColumn.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeGroupedRows) {
171
+ if ((_b = formatColumn.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupRows) {
173
172
  return false;
174
173
  }
175
174
  }
176
175
  else {
177
- if ((_d = formatColumn.RowScope) === null || _d === void 0 ? void 0 : _d.ExcludeDataRows) {
176
+ if ((_c = formatColumn.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeDataRows) {
178
177
  return false;
179
178
  }
180
179
  }
@@ -182,7 +181,7 @@ export class FormatColumnInternalApi extends ApiBase {
182
181
  return true;
183
182
  }
184
183
  // first run the predicate
185
- if (formatColumn.Rule.Predicates && ((_f = (_e = formatColumn.Rule) === null || _e === void 0 ? void 0 : _e.Predicates) === null || _f === void 0 ? void 0 : _f.length)) {
184
+ if (formatColumn.Rule.Predicates && ((_e = (_d = formatColumn.Rule) === null || _d === void 0 ? void 0 : _d.Predicates) === null || _e === void 0 ? void 0 : _e.length)) {
186
185
  const predicateDefHandlerContext = Object.assign({ value: cellValue, oldValue: null, displayValue: cellValue, node: rowNode, column: column }, this.getAdaptableApi().internalApi.buildBaseContext());
187
186
  return this.evaluatePredicate(formatColumn, predicateDefHandlerContext);
188
187
  } // then run the Expression
@@ -251,7 +250,7 @@ export class FormatColumnInternalApi extends ApiBase {
251
250
  const columnsThatNeedRefresh = new Set();
252
251
  this.getFormatColumnsDependentOnColumns(impactedColumnIds).forEach((formatColumn) => {
253
252
  this.getAdaptableApi()
254
- .scopeApi.getColumnsForScope(formatColumn.Scope)
253
+ .columnScopeApi.getColumnsForScope(formatColumn.Scope)
255
254
  .forEach((col) => {
256
255
  columnsThatNeedRefresh.add(col.columnId);
257
256
  });
@@ -274,6 +274,6 @@ export class StyledColumnInternalApi extends ApiBase {
274
274
  };
275
275
  return this.getAdaptableApi()
276
276
  .predicateApi.internalApi.getBadgeStylePredicateDefs(scope)
277
- .filter((predicate) => this.getAdaptableApi().scopeApi.isColumnInScope(column, predicate.columnScope));
277
+ .filter((predicate) => this.getAdaptableApi().columnScopeApi.isColumnInScope(column, predicate.columnScope));
278
278
  }
279
279
  }
@@ -39,7 +39,7 @@ export interface NoteApi {
39
39
  * Gets all Notes for a cell
40
40
  * @param CellAddress note position
41
41
  */
42
- getNotesForCell(CellAddress: CellAddress): AdaptableNote[];
42
+ getNoteForCell(CellAddress: CellAddress): AdaptableNote;
43
43
  /**
44
44
  * Returns a Note by uuid
45
45
  * @param uuid note uuid
@@ -54,4 +54,4 @@ export interface AdaptableBaseIcon {
54
54
  /**
55
55
  * All AdapTable System Icon names
56
56
  */
57
- export type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'chart-and-grid' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'copy' | 'comment' | 'comments' | 'contains' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'filter-off' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'interactions' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'money' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'order' | 'organisation' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'contact' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'select-all' | 'select-off' | 'select-fwd' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'resume' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold' | 'note' | 'import' | 'grid-filter' | 'grid-info' | 'rows';
57
+ export type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'chart-and-grid' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'copy' | 'comment' | 'comments' | 'contains' | 'dashboard' | 'json' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'excel' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'filter-off' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'interactions' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'money' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'order' | 'organisation' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'contact' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'select-all' | 'select-off' | 'select-fwd' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'resume' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold' | 'note' | 'import' | 'grid-filter' | 'grid-info' | 'csv' | 'rows' | 'expand-all' | 'collapse-all';
@@ -7,9 +7,9 @@ export type RowScope = {
7
7
  */
8
8
  ExcludeDataRows?: boolean;
9
9
  /**
10
- * Exclude Grouped Rows
10
+ * Exclude Group Rows
11
11
  */
12
- ExcludeGroupedRows?: boolean;
12
+ ExcludeGroupRows?: boolean;
13
13
  /**
14
14
  * Exclude Summary Rows (used in Row Summaries)
15
15
  */
@@ -46,7 +46,7 @@ export interface FormatColumn extends SuspendableObject {
46
46
  */
47
47
  RowScope?: RowScope;
48
48
  /**
49
- * @deprecated FormatColumns now apply to grouped rows by default; use RowScope for more control
49
+ * @deprecated FormatColumns now apply to Group Rows by default; use RowScope for more control
50
50
  */
51
51
  IncludeGroupedRows?: never;
52
52
  }
@@ -56,7 +56,7 @@ export interface Layout extends AdaptableObject {
56
56
  */
57
57
  ExpandedRowGroupValues?: any[];
58
58
  /**
59
- * Columns showing aggregated values in grouped rows; 1st value in record is Column name, 2nd is either aggfunc (e.g. sum, avg etc.) or 'true' (to use default aggfunc)
59
+ * Columns showing aggregated values in Group Rows; 1st value in record is Column name, 2nd is either aggfunc (e.g. sum, avg etc.) or 'true' (to use default aggfunc)
60
60
  */
61
61
  AggregationColumns?: AggregationColumns;
62
62
  /**
@@ -34,5 +34,5 @@ export declare const NoteEdit: (note: AdaptableNote) => AdaptableNoteEditAction;
34
34
  export declare const NoteDelete: (note: AdaptableNote) => AdaptableNoteDeleteAction;
35
35
  export declare const NoteReady: (note: NoteState) => NoteReadyAction;
36
36
  export declare const GetAllNotesSelector: (state: NoteState) => AdaptableNote[];
37
- export declare const GetNotesSelector: (state: NoteState, address: CellAddress) => AdaptableNote[];
37
+ export declare const GetNoteSelector: (state: NoteState, address: CellAddress) => AdaptableNote;
38
38
  export declare const NoteReducer: Redux.Reducer<NoteState>;
@@ -33,12 +33,12 @@ export const NoteReady = (note) => ({
33
33
  noteState: note,
34
34
  });
35
35
  export const GetAllNotesSelector = (state) => state.Notes;
36
- export const GetNotesSelector = (state, address) => {
36
+ export const GetNoteSelector = (state, address) => {
37
37
  var _a;
38
38
  if (!address) {
39
- return [];
39
+ return null;
40
40
  }
41
- return ((_a = state === null || state === void 0 ? void 0 : state.Notes) !== null && _a !== void 0 ? _a : []).filter((note) => {
41
+ return ((_a = state === null || state === void 0 ? void 0 : state.Notes) !== null && _a !== void 0 ? _a : []).find((note) => {
42
42
  if (note.PrimaryKeyValue === address.PrimaryKeyValue && note.ColumnId === address.ColumnId) {
43
43
  // happy check
44
44
  return true;
@@ -57,8 +57,8 @@ export class AlertModule extends AdaptableModuleBase {
57
57
  if (queryExpression) {
58
58
  return this.api.expressionApi.getColumnsFromExpression(queryExpression);
59
59
  }
60
- else if (this.api.scopeApi.scopeHasColumns(alertDefinition.Scope)) {
61
- return this.api.scopeApi
60
+ else if (this.api.columnScopeApi.scopeHasColumns(alertDefinition.Scope)) {
61
+ return this.api.columnScopeApi
62
62
  .getColumnsForScope(alertDefinition.Scope)
63
63
  .map((adaptableColumn) => adaptableColumn.columnId);
64
64
  }