@adaptabletools/adaptable-cjs 18.0.0-canary.30 → 18.0.0-canary.32

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 (98) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableOptions/ActionColumnOptions.d.ts +3 -2
  3. package/src/AdaptableOptions/CustomSortOptions.d.ts +2 -2
  4. package/src/AdaptableOptions/FormatColumnOptions.d.ts +2 -2
  5. package/src/AdaptableOptions/PredicateOptions.d.ts +2 -2
  6. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
  7. package/src/Api/AdaptableApi.d.ts +2 -2
  8. package/src/Api/{ScopeApi.d.ts → ColumnScopeApi.d.ts} +28 -28
  9. package/src/Api/FlashingCellApi.d.ts +2 -2
  10. package/src/Api/GridApi.d.ts +5 -0
  11. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -2
  12. package/src/Api/Implementation/AdaptableApiImpl.js +3 -3
  13. package/src/Api/Implementation/AlertApiImpl.js +3 -3
  14. package/src/Api/Implementation/ApiBase.d.ts +2 -2
  15. package/src/Api/Implementation/ApiBase.js +2 -2
  16. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -1
  17. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +33 -0
  18. package/src/Api/Implementation/{ScopeApiImpl.js → ColumnScopeApiImpl.js} +4 -4
  19. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +2 -2
  20. package/src/Api/Implementation/FlashingCellApiImpl.js +1 -1
  21. package/src/Api/Implementation/FormatColumnApiImpl.js +3 -3
  22. package/src/Api/Implementation/GridApiImpl.d.ts +1 -0
  23. package/src/Api/Implementation/GridApiImpl.js +5 -0
  24. package/src/Api/Implementation/UserInterfaceApiImpl.js +3 -3
  25. package/src/Api/Internal/AdaptableInternalApi.js +1 -1
  26. package/src/Api/Internal/AlertInternalApi.d.ts +2 -2
  27. package/src/Api/Internal/AlertInternalApi.js +3 -3
  28. package/src/Api/Internal/CustomSortInternalApi.js +1 -1
  29. package/src/Api/Internal/ExportInternalApi.js +1 -1
  30. package/src/Api/Internal/ExpressionInternalApi.js +1 -1
  31. package/src/Api/Internal/FormatColumnInternalApi.d.ts +2 -2
  32. package/src/Api/Internal/FormatColumnInternalApi.js +24 -14
  33. package/src/Api/Internal/PredicateInternalApi.d.ts +6 -6
  34. package/src/Api/Internal/StyledColumnInternalApi.d.ts +2 -2
  35. package/src/Api/Internal/StyledColumnInternalApi.js +4 -5
  36. package/src/PredefinedConfig/AlertState.d.ts +2 -2
  37. package/src/PredefinedConfig/Common/AdaptableObject.d.ts +4 -4
  38. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +2 -2
  39. package/src/PredefinedConfig/Common/{AdaptableScope.d.ts → ColumnScope.d.ts} +1 -1
  40. package/src/PredefinedConfig/Common/RowScope.d.ts +17 -0
  41. package/src/PredefinedConfig/Common/RowScope.js +2 -0
  42. package/src/PredefinedConfig/ExportState.d.ts +2 -2
  43. package/src/PredefinedConfig/FlashingCellState.d.ts +2 -2
  44. package/src/PredefinedConfig/FormatColumnState.d.ts +7 -8
  45. package/src/PredefinedConfig/PlusMinusState.d.ts +2 -2
  46. package/src/PredefinedConfig/ShortcutState.d.ts +2 -2
  47. package/src/PredefinedConfig/StyledColumnState.d.ts +5 -10
  48. package/src/Strategy/AlertModule.js +2 -2
  49. package/src/Strategy/ExportModule.js +2 -2
  50. package/src/Strategy/FlashingCellModule.js +4 -4
  51. package/src/Strategy/FormatColumnModule.js +2 -2
  52. package/src/Strategy/PlusMinusModule.js +3 -3
  53. package/src/Strategy/ShortcutModule.js +1 -1
  54. package/src/Strategy/StyledColumnModule.js +7 -5
  55. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +4 -3
  56. package/src/Strategy/Utilities/getScopeViewItems.d.ts +2 -2
  57. package/src/Utilities/ObjectFactory.js +1 -1
  58. package/src/Utilities/Services/ReportService.js +2 -2
  59. package/src/Utilities/Services/ValidationService.js +2 -2
  60. package/src/View/Alert/AlertEntityRow.js +1 -1
  61. package/src/View/Alert/Utilities/getAvailablePredicates.d.ts +2 -2
  62. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -1
  63. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
  64. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  65. package/src/View/ColumnInfo/ColumnInfo.js +1 -1
  66. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.d.ts +3 -3
  67. package/src/View/Components/EntityRulesEditor/index.d.ts +3 -3
  68. package/src/View/Components/NewScopeComponent.d.ts +5 -5
  69. package/src/View/Components/NewScopeComponent.js +2 -2
  70. package/src/View/Components/RangesComponent.d.ts +2 -2
  71. package/src/View/Components/RangesComponent.js +1 -1
  72. package/src/View/Components/SharedProps/WizardScopeState.d.ts +2 -2
  73. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +1 -1
  74. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +4 -1
  75. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +2 -2
  76. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
  77. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
  78. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
  79. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +24 -13
  80. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
  81. package/src/View/PlusMinus/PlusMinusSummary.js +2 -2
  82. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  83. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +32 -12
  84. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -1
  85. package/src/agGrid/ActionColumnRenderer.js +40 -4
  86. package/src/agGrid/AdaptableAgGrid.js +2 -3
  87. package/src/agGrid/AgGridColumnAdapter.js +11 -10
  88. package/src/agGrid/BadgeRenderer.d.ts +2 -2
  89. package/src/agGrid/BadgeRenderer.js +23 -16
  90. package/src/agGrid/PercentBarRenderer.js +0 -1
  91. package/src/env.js +2 -2
  92. package/src/metamodel/adaptable.metamodel.d.ts +19 -26
  93. package/src/metamodel/adaptable.metamodel.js +1 -1
  94. package/src/types.d.ts +3 -2
  95. package/tsconfig.cjs.tsbuildinfo +1 -1
  96. package/src/Api/Implementation/ScopeApiImpl.d.ts +0 -33
  97. /package/src/Api/{ScopeApi.js → ColumnScopeApi.js} +0 -0
  98. /package/src/PredefinedConfig/Common/{AdaptableScope.js → ColumnScope.js} +0 -0
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFormatColumnSettingsViewItems = void 0;
4
4
  const getFormatColumnSettingsViewItems = (formatColumn) => {
5
- var _a;
5
+ var _a, _b, _c, _d;
6
6
  const values = [
7
7
  `Cell alignment: ${(_a = formatColumn.CellAlignment) !== null && _a !== void 0 ? _a : 'default'}`,
8
- `Include grouped rows: ${formatColumn.IncludeGroupedRows ? 'Yes' : 'No'}`,
9
- `Include row summaries: ${formatColumn.IncludeRowSummaries ? 'Yes' : 'No'}`,
8
+ `Data Rows: ${((_b = formatColumn.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeDataRows) ? 'Yes' : 'No'}`,
9
+ `Grouped Rows: ${((_c = formatColumn.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeGroupedRows) ? 'Yes' : 'No'}`,
10
+ `Row Summaries: ${((_d = formatColumn.RowScope) === null || _d === void 0 ? void 0 : _d.ExcludeSummaryRows) ? 'Yes' : 'No'}`,
10
11
  ].filter(Boolean);
11
12
  return {
12
13
  name: 'Settings',
@@ -1,3 +1,3 @@
1
- import { AdaptableApi, AdaptableScope } from '../../../types';
1
+ import { AdaptableApi, ColumnScope } from '../../../types';
2
2
  import { AdaptableObjectItemView } from '../Interface/IModule';
3
- export declare const getScopeViewItems: (scope: AdaptableScope, api: AdaptableApi) => AdaptableObjectItemView;
3
+ export declare const getScopeViewItems: (scope: ColumnScope, api: AdaptableApi) => AdaptableObjectItemView;
@@ -260,6 +260,7 @@ function CreateEmptyFormatColumn() {
260
260
  Style: CreateEmptyStyle(),
261
261
  DisplayFormat: undefined,
262
262
  CellAlignment: undefined,
263
+ RowScope: undefined,
263
264
  };
264
265
  }
265
266
  exports.CreateEmptyFormatColumn = CreateEmptyFormatColumn;
@@ -334,7 +335,6 @@ function CreateEmptyStyledColumn() {
334
335
  return {
335
336
  Uuid: (0, Uuid_1.createUuid)(),
336
337
  ColumnId: GeneralConstants_1.EMPTY_STRING,
337
- IncludeGroupedRows: false,
338
338
  };
339
339
  }
340
340
  exports.CreateEmptyStyledColumn = CreateEmptyStyledColumn;
@@ -138,7 +138,7 @@ class ReportService {
138
138
  case 'SelectedColumns':
139
139
  return '[Selected Columns]';
140
140
  case 'ScopeColumns':
141
- return this.adaptableApi.scopeApi.getScopeDescription(report.Scope);
141
+ return this.adaptableApi.columnScopeApi.getScopeDescription(report.Scope);
142
142
  }
143
143
  }
144
144
  GetReportExpressionDescription(report, cols) {
@@ -201,7 +201,7 @@ class ReportService {
201
201
  reportColumns = report.Scope.ColumnIds.map((columnId) => this.adaptableApi.columnApi.getColumnWithColumnId(columnId)).filter((c) => c);
202
202
  }
203
203
  else {
204
- reportColumns = this.adaptableApi.scopeApi.getColumnsForScope(report.Scope);
204
+ reportColumns = this.adaptableApi.columnScopeApi.getColumnsForScope(report.Scope);
205
205
  }
206
206
  break;
207
207
  }
@@ -19,7 +19,7 @@ class ValidationService {
19
19
  }
20
20
  let editingRules = this.adaptableApi.alertApi.internalApi
21
21
  .getAlertDefinitionsWithPreventEdit()
22
- .filter((v) => this.adaptableApi.scopeApi.isColumnInScope(cellDataChangedInfo.column, v.Scope));
22
+ .filter((v) => this.adaptableApi.columnScopeApi.isColumnInScope(cellDataChangedInfo.column, v.Scope));
23
23
  let failedValidations = [];
24
24
  if (ArrayExtensions_1.ArrayExtensions.IsNotEmpty(editingRules)) {
25
25
  editingRules.forEach((alertDefinition) => {
@@ -131,7 +131,7 @@ class ValidationService {
131
131
  }
132
132
  createValidationDescription(alertDefinition) {
133
133
  var _a, _b;
134
- return (this.adaptableApi.scopeApi.getScopeDescription(alertDefinition.Scope) +
134
+ return (this.adaptableApi.columnScopeApi.getScopeDescription(alertDefinition.Scope) +
135
135
  ' ' +
136
136
  ((_b = (_a = alertDefinition.Rule) === null || _a === void 0 ? void 0 : _a.Predicates) === null || _b === void 0 ? void 0 : _b.map((predicate) => this.adaptableApi.predicateApi.predicateToString(predicate)).join(' AND ')));
137
137
  }
@@ -13,7 +13,7 @@ class AlertEntityRow extends React.Component {
13
13
  let alertDefinition = this.props.adaptableObject;
14
14
  let messageTypes = ['Info', 'Success', 'Warning', 'Error'];
15
15
  let colItems = (0, Helper_1.cloneObject)(this.props.colItems);
16
- colItems[0].Content = (React.createElement(EntityRowItem_1.EntityRowItem, { Content: this.props.api.scopeApi.getScopeToString(alertDefinition.Scope) }));
16
+ colItems[0].Content = (React.createElement(EntityRowItem_1.EntityRowItem, { Content: this.props.api.columnScopeApi.getScopeToString(alertDefinition.Scope) }));
17
17
  colItems[1].Content = (React.createElement(EntityRowItem_1.EntityRowItem, { Content: this.props.api.alertApi.internalApi.getAlertRuleDescription(alertDefinition) }));
18
18
  colItems[2].Content = (React.createElement("div", null,
19
19
  React.createElement(DropdownButton_1.default, { showClearButton: false, items: messageTypes.map((item) => ({
@@ -1,3 +1,3 @@
1
- import { AdaptableApi, AdaptablePredicateDef, AdaptableScope } from '../../../types';
1
+ import { AdaptableApi, AdaptablePredicateDef, ColumnScope } from '../../../types';
2
2
  import { AlertType } from './getAlertType';
3
- export declare const getAvailablePredicateDefinitions: (api: AdaptableApi, scope: AdaptableScope, alertType: AlertType) => AdaptablePredicateDef<string>[];
3
+ export declare const getAvailablePredicateDefinitions: (api: AdaptableApi, scope: ColumnScope, alertType: AlertType) => AdaptablePredicateDef<string>[];
@@ -6,7 +6,7 @@ import { AlertType } from './getAlertType';
6
6
  */
7
7
  export declare const getDefaultAlertDefinition: (alertDefinition: AlertDefinition, type: AlertType) => {
8
8
  Uuid: string;
9
- Scope: import("../../../types").AdaptableScope<import("../../../PredefinedConfig/Common/AdaptableScope").ScopeDataType>;
9
+ Scope: import("../../../types").ColumnScope<import("../../../PredefinedConfig/Common/ColumnScope").ScopeDataType>;
10
10
  Rule: ({
11
11
  Predicates?: never;
12
12
  } & (({
@@ -28,7 +28,7 @@ const AlertScopeWizardSection = (props) => {
28
28
  Predicates: [{ PredicateId: 'AnyChange' }],
29
29
  };
30
30
  }
31
- if (newData.Rule.ObservableExpression !== undefined && !api.scopeApi.scopeIsAll(Scope)) {
31
+ if (newData.Rule.ObservableExpression !== undefined && !api.columnScopeApi.scopeIsAll(Scope)) {
32
32
  // if it had observable expression and the scope is changed to partial
33
33
  // we need to reset to not be an observable expression, as observable is not supported
34
34
  // for partial scope
@@ -36,7 +36,7 @@ const AlertScopeWizardSection = (props) => {
36
36
  newData.Rule.BooleanExpression = '';
37
37
  }
38
38
  if (newData.Rule.AggregatedBooleanExpression !== undefined &&
39
- !api.scopeApi.scopeIsAll(Scope)) {
39
+ !api.columnScopeApi.scopeIsAll(Scope)) {
40
40
  // if it had aggregation expression and the scope is changed to partial
41
41
  // we need to reset to not be an aggregation expression, as aggregation is not supported
42
42
  // for partial scope
@@ -7,7 +7,7 @@ const rebass_1 = require("rebass");
7
7
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
8
8
  const ValueSelector_1 = require("../../Components/ValueSelector");
9
9
  const renderScopeSummary = (data) => {
10
- const { api: { scopeApi }, } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
10
+ const { api: { columnScopeApi: scopeApi }, } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
11
11
  const columnsInScope = scopeApi.getColumnsForScope(data.Scope);
12
12
  return (React.createElement(React.Fragment, null,
13
13
  React.createElement(rebass_1.Box, null,
@@ -136,7 +136,7 @@ const ModuleView = (props) => {
136
136
  var _a;
137
137
  if ('Scope' in item.abObject) {
138
138
  const abColumn = adaptable.api.columnApi.getColumnWithColumnId(props.selectedColumnId);
139
- return adaptable.api.scopeApi.isColumnInScope(abColumn, item.abObject.Scope);
139
+ return adaptable.api.columnScopeApi.isColumnInScope(abColumn, item.abObject.Scope);
140
140
  }
141
141
  if ('ColumnId' in item.abObject) {
142
142
  return ((_a = item.abObject) === null || _a === void 0 ? void 0 : _a.ColumnId) === props.selectedColumnId;
@@ -1,15 +1,15 @@
1
1
  import * as React from 'react';
2
- import { AdaptablePredicateDef, AdaptableScope } from '../../../../types';
2
+ import { AdaptablePredicateDef, ColumnScope } from '../../../../types';
3
3
  import { EntityRulesEditorProps, RuleType } from '../index';
4
4
  export interface EntityRulePredicatesEditorProps {
5
5
  descriptions: EntityRulesEditorProps<any>['descriptions'];
6
6
  data: {
7
7
  Rule: RuleType;
8
- Scope: AdaptableScope;
8
+ Scope: ColumnScope;
9
9
  };
10
10
  onChange: (data: {
11
11
  Rule: RuleType;
12
- Scope: AdaptableScope;
12
+ Scope: ColumnScope;
13
13
  }) => void;
14
14
  predicateDefs: AdaptablePredicateDef[];
15
15
  getPredicateDefsForColId?: (colId: string) => AdaptablePredicateDef[];
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { FlexProps } from 'rebass';
3
- import type { AdaptableColumnPredicate, AdaptableModule, AdaptablePredicateDef, AdaptableScope } from '../../../types';
3
+ import type { AdaptableColumnPredicate, AdaptableModule, AdaptablePredicateDef, ColumnScope } from '../../../types';
4
4
  import type { XOR } from '../../../Utilities/Extensions/TypeExtensions';
5
5
  import { AdaptableQuery } from '../../../PredefinedConfig/Common/AdaptableQuery';
6
6
  export type RuleType = XOR<{
@@ -30,7 +30,7 @@ export type EntityRulesEditorProps<T> = {
30
30
  };
31
31
  export declare const EntityRulesSummary: <T extends {
32
32
  Rule?: RuleType;
33
- Scope: AdaptableScope;
33
+ Scope: ColumnScope;
34
34
  }>(props: {
35
35
  data: T;
36
36
  renderPredicate: (content: string) => React.ReactNode;
@@ -38,5 +38,5 @@ export declare const EntityRulesSummary: <T extends {
38
38
  }) => JSX.Element;
39
39
  export declare const EntityRulesEditor: <T extends {
40
40
  Rule: RuleType;
41
- Scope: AdaptableScope;
41
+ Scope: ColumnScope;
42
42
  }>(props: EntityRulesEditorProps<T>) => JSX.Element;
@@ -1,18 +1,18 @@
1
1
  import * as React from 'react';
2
- import { ScopeDataType, AdaptableScope } from '../../PredefinedConfig/Common/AdaptableScope';
2
+ import { ScopeDataType, ColumnScope } from '../../PredefinedConfig/Common/ColumnScope';
3
3
  import { AdaptableColumn } from '../../types';
4
4
  export declare const isScopeValid: ({ Scope }: {
5
- Scope: AdaptableScope;
5
+ Scope: ColumnScope;
6
6
  }) => string | true;
7
- export declare const renderScopeSummary: (scope: AdaptableScope, labels: {
7
+ export declare const renderScopeSummary: (scope: ColumnScope, labels: {
8
8
  scopeWholeRow: string;
9
9
  scopeColumns: string;
10
10
  scopeDataTypes: string;
11
11
  }) => JSX.Element;
12
12
  export interface NewScopeComponentProps extends React.ClassAttributes<any> {
13
- scope: AdaptableScope;
13
+ scope: ColumnScope;
14
14
  scopeColumns?: AdaptableColumn[];
15
- updateScope: (scope: AdaptableScope) => void;
15
+ updateScope: (scope: ColumnScope) => void;
16
16
  availableDataTypes?: ScopeDataType[];
17
17
  hideWholeRow?: boolean;
18
18
  style?: React.CSSProperties;
@@ -47,7 +47,7 @@ const DATA_TYPES_MAP = {
47
47
  };
48
48
  const renderScopeSummary = (scope, labels) => {
49
49
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
50
- const scopeApi = adaptable.api.scopeApi;
50
+ const scopeApi = adaptable.api.columnScopeApi;
51
51
  const columnsInScope = scopeApi.getColumnsForScope(scope);
52
52
  return (React.createElement(React.Fragment, null,
53
53
  React.createElement(rebass_1.Box, null,
@@ -64,7 +64,7 @@ const DATA_TYPES_OPTIONS = Object.values(DATA_TYPES_MAP);
64
64
  const NewScopeComponent = (props) => {
65
65
  var _a, _b;
66
66
  const { api } = (0, AdaptableContext_1.useAdaptable)();
67
- const { scopeApi, columnApi } = api;
67
+ const { columnScopeApi: scopeApi, columnApi } = api;
68
68
  const [columnsSearchText, setColumnsSearchText] = (0, react_1.useState)('');
69
69
  const scopeColumns = React.useMemo(() => {
70
70
  const allColumns = props.scopeColumns || columnApi.getColumns();
@@ -1,13 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { AdaptableApi } from '../../Api/AdaptableApi';
3
3
  import { CellColorRange, ColumnComparison, NumericStyledColumn } from '../../PredefinedConfig/StyledColumnState';
4
- import { AdaptableScope } from '../../PredefinedConfig/Common/AdaptableScope';
4
+ import { ColumnScope } from '../../PredefinedConfig/Common/ColumnScope';
5
5
  export interface RangesComponentProps extends React.ClassAttributes<RangesComponent> {
6
6
  ranges: CellColorRange[];
7
7
  columnComparison?: ColumnComparison;
8
8
  rangeValueType: NumericStyledColumn['RangeValueType'];
9
9
  onRangeValueTypeChange: (rangeValueType: NumericStyledColumn['RangeValueType']) => void;
10
- scope: AdaptableScope;
10
+ scope: ColumnScope;
11
11
  api: AdaptableApi;
12
12
  showRangeDirection: boolean;
13
13
  updateRanges: (ranges: CellColorRange[]) => void;
@@ -118,7 +118,7 @@ class RangesComponent extends React.Component {
118
118
  this.props.updateColumnComparison(columnComparison);
119
119
  }
120
120
  else {
121
- const ranges = this.props.api.scopeApi.createCellColorRangesForScope(this.props.scope);
121
+ const ranges = this.props.api.columnScopeApi.createCellColorRangesForScope(this.props.scope);
122
122
  this.setState({
123
123
  rangesType: 'Standard',
124
124
  });
@@ -1,4 +1,4 @@
1
- import { AdaptableScope } from '../../../PredefinedConfig/Common/AdaptableScope';
1
+ import { ColumnScope } from '../../../PredefinedConfig/Common/ColumnScope';
2
2
  export interface WizardScopeState {
3
- scope: AdaptableScope;
3
+ scope: ColumnScope;
4
4
  }
@@ -30,7 +30,7 @@ const CustomSortColumnWizardSection = (props) => {
30
30
  const columnSortComparers = api.optionsApi.getCustomSortOptions().customSortComparers || [];
31
31
  const usedColumnIds = [
32
32
  ...customSorts.map((customSort) => customSort.ColumnId),
33
- ...columnSortComparers.map((comparer) => api.scopeApi.getColumnIdsInScope(comparer.scope)),
33
+ ...columnSortComparers.map((comparer) => api.columnScopeApi.getColumnIdsInScope(comparer.scope)),
34
34
  ];
35
35
  // filter out used colum ids, but include the current one
36
36
  return sortableColumns.filter((column) => {
@@ -99,7 +99,10 @@ const buildAdaptableOptions = (mainAdaptableInstance, gridOptions, adaptableCont
99
99
  {
100
100
  columnId: 'undoActionColumn',
101
101
  friendlyName: ' ',
102
- includeGroupedRows: true,
102
+ rowScope: {
103
+ ExcludeGroupedRows: true,
104
+ ExcludeSummaryRows: true,
105
+ },
103
106
  actionColumnSettings: { suppressMenu: true, suppressMovable: true },
104
107
  actionColumnButton,
105
108
  },
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { FormatColumn } from '../../../PredefinedConfig/FormatColumnState';
3
3
  import { AdaptableFormat } from '../../../PredefinedConfig/Common/AdaptableFormat';
4
- import { AdaptableScope } from '../../../PredefinedConfig/Common/AdaptableScope';
4
+ import { ColumnScope } from '../../../PredefinedConfig/Common/ColumnScope';
5
5
  import { AdaptableApi } from '../../../Api/AdaptableApi';
6
6
  export type FormatColumnFormatWizardSectionProps = {
7
7
  onChange: (data: FormatColumn) => void;
@@ -12,5 +12,5 @@ export interface FormatColumnFormatWizardState {
12
12
  }
13
13
  export declare const getFormatColumnFormatSummaryValue: (data: FormatColumn) => string;
14
14
  export declare const renderFormatColumnFormatSummary: (data: FormatColumn) => JSX.Element;
15
- export declare const getFormatDisplayTypeForScope: (scope: AdaptableScope, api: AdaptableApi) => 'Number' | 'Date' | 'String' | undefined;
15
+ export declare const getFormatDisplayTypeForScope: (scope: ColumnScope, api: AdaptableApi) => 'Number' | 'Date' | 'String' | undefined;
16
16
  export declare const FormatColumnFormatWizardSection: (props: FormatColumnFormatWizardSectionProps) => JSX.Element;
@@ -417,7 +417,7 @@ const FormatColumnFormatWizardSection = (props) => {
417
417
  update({ DisplayFormat });
418
418
  };
419
419
  const Type = data.DisplayFormat && data.DisplayFormat.Formatter;
420
- const customScopedFormatters = customDisplayFormatters.filter((displayFormatter) => adaptable.api.scopeApi.isScopeInScope(data.Scope, displayFormatter.scope));
420
+ const customScopedFormatters = customDisplayFormatters.filter((displayFormatter) => adaptable.api.columnScopeApi.isScopeInScope(data.Scope, displayFormatter.scope));
421
421
  if (Type === 'NumberFormatter') {
422
422
  return renderNumberFormat(data, update, setFormatOption, customScopedFormatters, formatColumnApi);
423
423
  }
@@ -9,7 +9,7 @@ function FormatColumnRuleWizardSection(props) {
9
9
  const { data, api, moduleInfo } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
10
10
  return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: props.defaultPredicateId,
11
11
  // TODO see what is this
12
- predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), getPredicateDefsForColId: (colId) => api.formatColumnApi.internalApi.getFormatColumnDefsForScope({ ColumnIds: [colId] }), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showPredicate: !api.scopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
12
+ predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), getPredicateDefsForColId: (colId) => api.formatColumnApi.internalApi.getFormatColumnDefsForScope({ ColumnIds: [colId] }), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showPredicate: !api.columnScopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
13
13
  selectPredicate: 'Create a Format Column Rule - to be applied when data changes',
14
14
  useBooleanQuery: (React.createElement(React.Fragment, null,
15
15
  "Use an BooleanQuery if ",
@@ -22,7 +22,7 @@ const FormatColumnScopeWizardSection = (props) => {
22
22
  }, scope: data.Scope, updateScope: (Scope) => {
23
23
  var _a, _b;
24
24
  const newData = Object.assign(Object.assign({}, data), { Scope });
25
- const wholeRow = api.scopeApi.scopeIsAll(Scope);
25
+ const wholeRow = api.columnScopeApi.scopeIsAll(Scope);
26
26
  if ((_b = (_a = newData.Rule) === null || _a === void 0 ? void 0 : _a.Predicates) === null || _b === void 0 ? void 0 : _b.length) {
27
27
  if (wholeRow) {
28
28
  // if scope is whole row, a predicate cannot be present, so we set the rule
@@ -12,20 +12,25 @@ const Tag_1 = require("../../../components/Tag");
12
12
  const ToggleGroup_1 = require("../../../components/Toggle/ToggleGroup");
13
13
  const Toggle_1 = require("../../../components/Toggle/Toggle");
14
14
  const renderFormatColumnSettingsSummary = (data) => {
15
- var _a;
15
+ var _a, _b, _c, _d;
16
16
  return (React.createElement(rebass_1.Box, { padding: 2 },
17
17
  React.createElement(rebass_1.Text, null,
18
18
  "Cell alignment ",
19
19
  React.createElement(Tag_1.Tag, null, (_a = data.CellAlignment) !== null && _a !== void 0 ? _a : 'default')),
20
20
  React.createElement(rebass_1.Text, { mt: 3 },
21
- "Include grouped rows ",
22
- React.createElement(Tag_1.Tag, null, data.IncludeGroupedRows ? 'yes' : 'no')),
21
+ "Data Rows ",
22
+ React.createElement(Tag_1.Tag, null, ((_b = data.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeDataRows) ? 'no' : 'yes')),
23
+ ' ',
23
24
  React.createElement(rebass_1.Text, { mt: 3 },
24
- "Include row summaries ",
25
- React.createElement(Tag_1.Tag, null, data.IncludeRowSummaries ? 'yes' : 'no'))));
25
+ "Grouped Rows ",
26
+ React.createElement(Tag_1.Tag, null, ((_c = data.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeGroupedRows) ? 'no' : 'yes')),
27
+ React.createElement(rebass_1.Text, { mt: 3 },
28
+ "Summary Rows ",
29
+ React.createElement(Tag_1.Tag, null, ((_d = data.RowScope) === null || _d === void 0 ? void 0 : _d.ExcludeSummaryRows) ? 'no' : 'yes'))));
26
30
  };
27
31
  exports.renderFormatColumnSettingsSummary = renderFormatColumnSettingsSummary;
28
32
  const FormatColumnSettingsWizardSection = (props) => {
33
+ var _a, _b, _c;
29
34
  const { data } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
30
35
  const onCellAlignmentSelectChanged = (CellAlignment) => {
31
36
  const newData = Object.assign(Object.assign({}, data), { CellAlignment });
@@ -34,11 +39,14 @@ const FormatColumnSettingsWizardSection = (props) => {
34
39
  }
35
40
  props.onChange(newData);
36
41
  };
37
- const onIncludeGroupedRowsChanged = (IncludeGroupedRows) => {
38
- props.onChange(Object.assign(Object.assign({}, data), { IncludeGroupedRows }));
42
+ const onExcludeDataRowsChanged = (ExcludeDataRows) => {
43
+ props.onChange(Object.assign(Object.assign({}, data), { RowScope: Object.assign(Object.assign({}, data.RowScope), { ExcludeDataRows }) }));
44
+ };
45
+ const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
46
+ props.onChange(Object.assign(Object.assign({}, data), { RowScope: Object.assign(Object.assign({}, data.RowScope), { ExcludeGroupedRows }) }));
39
47
  };
40
- const onIncludeRowSummariesChanged = (IncludeRowSummaries) => {
41
- props.onChange(Object.assign(Object.assign({}, data), { IncludeRowSummaries }));
48
+ const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
49
+ props.onChange(Object.assign(Object.assign({}, data), { RowScope: Object.assign(Object.assign({}, data.RowScope), { ExcludeSummaryRows }) }));
42
50
  };
43
51
  return (React.createElement(Tabs_1.Tabs, null,
44
52
  React.createElement(Tabs_1.Tabs.Tab, null, "Settings"),
@@ -56,11 +64,14 @@ const FormatColumnSettingsWizardSection = (props) => {
56
64
  React.createElement(Toggle_1.Toggle, { icon: "align-right", pressed: data.CellAlignment === 'Right', onPressedChange: (pressed) => pressed
57
65
  ? onCellAlignmentSelectChanged('Right')
58
66
  : onCellAlignmentSelectChanged(null) }))),
59
- React.createElement(FormLayout_1.FormRow, { label: "Include Grouped Rows:" },
67
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
68
+ React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
69
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: (_a = data.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
70
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Grouped Rows:" },
60
71
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
61
- React.createElement(CheckBox_1.CheckBox, { "data-name": "include-grouped-rows-checkbox", checked: data.IncludeGroupedRows, onChange: onIncludeGroupedRowsChanged, mr: 2 }))),
62
- React.createElement(FormLayout_1.FormRow, { label: "Include Row Summaries:" },
72
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: (_b = data.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupedRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
73
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
63
74
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
64
- React.createElement(CheckBox_1.CheckBox, { "data-name": "include-grouped-rows-checkbox", checked: data.IncludeRowSummaries, onChange: onIncludeRowSummariesChanged, mr: 2 }))))))));
75
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: (_c = data.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))))))));
65
76
  };
66
77
  exports.FormatColumnSettingsWizardSection = FormatColumnSettingsWizardSection;
@@ -13,7 +13,7 @@ const isFormatColumnStyleValid = (data, api) => {
13
13
  UIHelper_1.default.IsEmptyStyle(data.Style) &&
14
14
  data.DisplayFormat === undefined &&
15
15
  data.CellAlignment === undefined &&
16
- !api.scopeApi.isSingleBooleanColumnScope(data.Scope)) {
16
+ !api.columnScopeApi.isSingleBooleanColumnScope(data.Scope)) {
17
17
  return 'No format applied';
18
18
  }
19
19
  return true;
@@ -23,12 +23,12 @@ class PlusMinusSummaryComponent extends React.Component {
23
23
  render() {
24
24
  let moduleSummaries = [];
25
25
  // title row
26
- let titleRow = (React.createElement(ModuleHeader_1.ModuleHeader, { key: this.props.moduleInfo.FriendlyName, moduleInfo: this.props.moduleInfo, moduleSummary: Helper_1.Helper.returnItemCount(this.props.PlusMinusNudges.filter((item) => this.props.api.scopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)), this.props.moduleInfo.FriendlyName), onNew: () => this.onNew(), newButtonTooltip: 'Plus / Minus Rule', accessLevel: this.props.accessLevel }));
26
+ let titleRow = (React.createElement(ModuleHeader_1.ModuleHeader, { key: this.props.moduleInfo.FriendlyName, moduleInfo: this.props.moduleInfo, moduleSummary: Helper_1.Helper.returnItemCount(this.props.PlusMinusNudges.filter((item) => this.props.api.columnScopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)), this.props.moduleInfo.FriendlyName), onNew: () => this.onNew(), newButtonTooltip: 'Plus / Minus Rule', accessLevel: this.props.accessLevel }));
27
27
  moduleSummaries.push(titleRow);
28
28
  // existing items
29
29
  this.props.PlusMinusNudges.map((item, index) => {
30
30
  var _a;
31
- if (this.props.api.scopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)) {
31
+ if (this.props.api.columnScopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)) {
32
32
  let detailRow = (React.createElement(ModuleDetail_1.ModuleDetail, { key: 'PM' + index, item1: 'Nudge Value: ' + item.NudgeValue, item2: ((_a = item.Rule) === null || _a === void 0 ? void 0 : _a.BooleanExpression) ? item.Rule.BooleanExpression : 'Always', configEnity: item, showShare: this.props.teamSharingActivated, moduleInfo: this.props.moduleInfo, onEdit: () => this.onEdit(item), onShare: (config) => this.props.onShare(item, config), onDelete: PlusMinusRedux.PlusMinusNudgeDelete(item), accessLevel: this.props.accessLevel }));
33
33
  moduleSummaries.push(detailRow);
34
34
  }
@@ -61,7 +61,7 @@ const StyledColumnWizardColumnSection = (props) => {
61
61
  }, [data]);
62
62
  const handleColumnsChange = (columnIds) => {
63
63
  const columnId = columnIds[0];
64
- const emptyRanges = api.scopeApi.createCellColorRangesForScope({
64
+ const emptyRanges = api.columnScopeApi.createCellColorRangesForScope({
65
65
  ColumnIds: [columnId],
66
66
  });
67
67
  const newStyledColumn = Object.assign(Object.assign({}, data), { ColumnId: columnId });
@@ -10,33 +10,53 @@ const Tabs_1 = require("../../../components/Tabs");
10
10
  const Tag_1 = require("../../../components/Tag");
11
11
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
12
12
  const renderStyledColumnWizardSettingsSummary = (data) => {
13
+ var _a, _b, _c;
14
+ const badgeStyle = data;
13
15
  return (React.createElement(rebass_1.Box, { padding: 2 },
14
16
  React.createElement(rebass_1.Text, { mt: 3 },
15
- "Include grouped rows ",
16
- React.createElement(Tag_1.Tag, null, data.IncludeGroupedRows ? 'yes' : 'no')),
17
+ "Data Rows ",
18
+ React.createElement(Tag_1.Tag, null, ((_a = badgeStyle.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeDataRows) ? 'no' : 'yes')),
19
+ ' ',
17
20
  React.createElement(rebass_1.Text, { mt: 3 },
18
- "Include row summaries ",
19
- React.createElement(Tag_1.Tag, null, data.IncludeRowSummaries ? 'yes' : 'no'))));
21
+ "Grouped Rows ",
22
+ React.createElement(Tag_1.Tag, null, ((_b = badgeStyle.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupedRows) ? 'no' : 'yes')),
23
+ React.createElement(rebass_1.Text, { mt: 3 },
24
+ "Summary Rows ",
25
+ React.createElement(Tag_1.Tag, null, ((_c = badgeStyle.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeSummaryRows) ? 'no' : 'yes'))));
20
26
  };
21
27
  exports.renderStyledColumnWizardSettingsSummary = renderStyledColumnWizardSettingsSummary;
22
28
  const StyledColumnWizardSettingsSection = (props) => {
29
+ var _a, _b, _c;
23
30
  const { data } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
24
- const onIncludeGroupedRowsChanged = (IncludeGroupedRows) => {
25
- props.onChange(Object.assign(Object.assign({}, data), { IncludeGroupedRows }));
31
+ const onExcludeDataRowsChanged = (ExcludeDataRows) => {
32
+ props.onChange(Object.assign(Object.assign({}, data), { BadgeStyle: Object.assign(Object.assign({}, data.BadgeStyle), { RowScope: Object.assign(Object.assign({}, data.BadgeStyle.RowScope), { ExcludeDataRows }) }) }));
33
+ };
34
+ const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
35
+ props.onChange(Object.assign(Object.assign({}, data), { BadgeStyle: Object.assign(Object.assign({}, data.BadgeStyle), { RowScope: Object.assign(Object.assign({}, data.BadgeStyle.RowScope), { ExcludeGroupedRows }) }) }));
26
36
  };
27
- const onIncludeRowSummariesChanged = (IncludeRowSummaries) => {
28
- props.onChange(Object.assign(Object.assign({}, data), { IncludeRowSummaries }));
37
+ const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
38
+ props.onChange(Object.assign(Object.assign({}, data), { BadgeStyle: Object.assign(Object.assign({}, data.BadgeStyle), { RowScope: Object.assign(Object.assign({}, data.BadgeStyle.RowScope), { ExcludeSummaryRows }) }) }));
29
39
  };
30
40
  return (React.createElement(Tabs_1.Tabs, null,
31
41
  React.createElement(Tabs_1.Tabs.Tab, null, "Settings"),
32
42
  React.createElement(Tabs_1.Tabs.Content, null,
33
43
  React.createElement(rebass_1.Flex, { flexDirection: "row" },
34
44
  React.createElement(FormLayout_1.default, null,
35
- React.createElement(FormLayout_1.FormRow, { label: "Include Grouped Rows:" },
45
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
46
+ React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
47
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked:
48
+ // @ts-ignore
49
+ (_a = data.BadgeStyle.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
50
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Grouped Rows:" },
36
51
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
37
- React.createElement(CheckBox_1.CheckBox, { "data-name": "include-grouped-rows-checkbox", checked: data.IncludeGroupedRows, onChange: onIncludeGroupedRowsChanged, mr: 2 }))),
38
- React.createElement(FormLayout_1.FormRow, { label: "Include Row Summaries:" },
52
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked:
53
+ // @ts-ignore
54
+ (_b = data.BadgeStyle.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupedRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
55
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
39
56
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
40
- React.createElement(CheckBox_1.CheckBox, { "data-name": "include-grouped-rows-checkbox", checked: data.IncludeRowSummaries, onChange: onIncludeRowSummariesChanged, mr: 2 }))))))));
57
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked:
58
+ // @ts-ignore
59
+ (_c = data.BadgeStyle.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))),
60
+ ' ')))));
41
61
  };
42
62
  exports.StyledColumnWizardSettingsSection = StyledColumnWizardSettingsSection;
@@ -210,7 +210,7 @@ const StyledColumnWizardStyleSection = (props) => {
210
210
  };
211
211
  const handleRangeValueTypeChange = React.useCallback((rangeValueType) => {
212
212
  const ranges = rangeValueType === 'Number'
213
- ? api.scopeApi.createCellColorRangesForScope(scope)
213
+ ? api.columnScopeApi.createCellColorRangesForScope(scope)
214
214
  : [
215
215
  {
216
216
  Min: 0,
@@ -36,14 +36,32 @@ const ActionButtons = (props) => {
36
36
  })));
37
37
  };
38
38
  const ReactActionColumnRenderer = (props) => {
39
+ var _a, _b, _c;
39
40
  const rerender = (0, useRerender_1.useRerender)();
40
41
  const adaptable = props.context.__adaptable;
41
42
  const { actionButtons, actionColumn } = adaptable.api.internalApi.getActionButtonsAndActionColumn(props.colDef);
42
43
  if (!actionColumn || !actionButtons.length) {
43
44
  return null;
44
45
  }
45
- // TODO: see why types do not match
46
- if (adaptable.api.gridApi.isGroupRowNode(props.node) && !actionColumn.includeGroupedRows) {
46
+ const isGroupedRow = adaptable.api.gridApi.isGroupRowNode(props.node);
47
+ const isSummaryRow = adaptable.api.gridApi.isSummaryNode(props.node);
48
+ let shouldRender = true;
49
+ if (isGroupedRow) {
50
+ if ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupedRows) {
51
+ shouldRender = false;
52
+ }
53
+ }
54
+ else if (isSummaryRow) {
55
+ if ((_b = actionColumn.rowScope) === null || _b === void 0 ? void 0 : _b.ExcludeSummaryRows) {
56
+ shouldRender = false;
57
+ }
58
+ }
59
+ else {
60
+ if ((_c = actionColumn.rowScope) === null || _c === void 0 ? void 0 : _c.ExcludeDataRows) {
61
+ shouldRender = false;
62
+ }
63
+ }
64
+ if (!shouldRender) {
47
65
  return null;
48
66
  }
49
67
  const pkValue = adaptable.getPrimaryKeyValueFromRowNode(props.node, props.api);
@@ -63,6 +81,7 @@ exports.ReactActionColumnRenderer = ReactActionColumnRenderer;
63
81
  class ActionColumnRenderer {
64
82
  // gets called once before the renderer is used
65
83
  init(params) {
84
+ var _a, _b, _c;
66
85
  const adaptable = params.context.__adaptable;
67
86
  const { actionButtons, actionColumn } = adaptable.api.internalApi.getActionButtonsAndActionColumn(params.colDef);
68
87
  if (!actionColumn || !actionButtons.length) {
@@ -71,8 +90,25 @@ class ActionColumnRenderer {
71
90
  // create the cell
72
91
  this.eGui = document.createElement('div');
73
92
  this.eGui.className = 'ab-ActionColumn';
74
- // if its a group node then only show if set to do so
75
- if (adaptable.api.gridApi.isGroupRowNode(params.node) && !actionColumn.includeGroupedRows) {
93
+ const isGroupedRow = adaptable.api.gridApi.isGroupRowNode(params.node);
94
+ const isSummaryRow = adaptable.api.gridApi.isSummaryNode(params.node);
95
+ let shouldRender = true;
96
+ if (isGroupedRow) {
97
+ if ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupedRows) {
98
+ shouldRender = false;
99
+ }
100
+ }
101
+ else if (isSummaryRow) {
102
+ if ((_b = actionColumn.rowScope) === null || _b === void 0 ? void 0 : _b.ExcludeSummaryRows) {
103
+ shouldRender = false;
104
+ }
105
+ }
106
+ else {
107
+ if ((_c = actionColumn.rowScope) === null || _c === void 0 ? void 0 : _c.ExcludeDataRows) {
108
+ shouldRender = false;
109
+ }
110
+ }
111
+ if (!shouldRender) {
76
112
  this.eGui.innerHTML = '';
77
113
  return;
78
114
  }