@adaptabletools/adaptable 20.3.0-canary.1 → 20.3.0

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 (35) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableOptions/ColumnOptions.d.ts +38 -154
  3. package/src/AdaptableOptions/DefaultAdaptableOptions.js +1 -0
  4. package/src/AdaptableOptions/FilterOptions.d.ts +7 -0
  5. package/src/AdaptableState/Common/AdaptablePredicate.js +12 -2
  6. package/src/AdaptableState/Common/CustomWindowConfig.d.ts +11 -11
  7. package/src/AdaptableState/Common/ProgressIndicatorConfig.d.ts +1 -4
  8. package/src/AdaptableState/Common/RowScope.d.ts +1 -1
  9. package/src/AdaptableState/FormatColumnState.d.ts +8 -8
  10. package/src/Api/Internal/ColumnInternalApi.js +2 -2
  11. package/src/Api/Internal/FormatColumnInternalApi.d.ts +4 -2
  12. package/src/Api/Internal/FormatColumnInternalApi.js +32 -3
  13. package/src/Strategy/FormatColumnModule.js +2 -0
  14. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.d.ts +5 -0
  15. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.js +12 -0
  16. package/src/Utilities/ObjectFactory.js +1 -0
  17. package/src/Utilities/getScopeViewItems.js +5 -2
  18. package/src/View/Components/ColumnFilter/utils.js +20 -0
  19. package/src/View/Components/NewScopeComponent.js +5 -1
  20. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
  21. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +4 -0
  22. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -40
  23. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +24 -23
  24. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.d.ts +8 -0
  25. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +31 -0
  26. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +18 -4
  27. package/src/agGrid/AdaptableAgGrid.js +5 -2
  28. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -1
  29. package/src/agGrid/AgGridColumnAdapter.js +5 -4
  30. package/src/agGrid/AgGridExportAdapter.js +1 -1
  31. package/src/env.js +2 -2
  32. package/src/metamodel/adaptable.metamodel.d.ts +102 -1
  33. package/src/metamodel/adaptable.metamodel.js +1 -1
  34. package/src/types.d.ts +1 -1
  35. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -10,6 +10,7 @@ import { AdaptableFormControlTextClear } from './Forms/AdaptableFormControlTextC
10
10
  import { useAdaptable } from '../AdaptableContext';
11
11
  import { ValueOptionsTags } from './ValueSelector';
12
12
  import { getColumnTypeFriendlyName } from '../../AdaptableState/Common/AdaptableColumn';
13
+ import StringExtensions from '../../Utilities/Extensions/StringExtensions';
13
14
  export const isScopeValid = ({ Scope }) => {
14
15
  const result = [];
15
16
  if (!Scope) {
@@ -41,6 +42,9 @@ const DATA_TYPES_MAP = {
41
42
  value: 'boolean',
42
43
  },
43
44
  };
45
+ const renderDataTypeLabel = (c) => {
46
+ return 'DataType: ' + StringExtensions.CapitaliseFirstLetter(c);
47
+ };
44
48
  export const renderScopeSummary = (scope, labels) => {
45
49
  const adaptable = useAdaptable();
46
50
  const scopeApi = adaptable.api.columnScopeApi;
@@ -53,7 +57,7 @@ export const renderScopeSummary = (scope, labels) => {
53
57
  columnsInScope.length ? (React.createElement(ValueOptionsTags, { options: columnsInScope, value: columnsInScope.map((c) => c.columnId), toLabel: (c) => c.friendlyName, allowWrap: true, readOnly: true, renderLabel: (c) => React.createElement(SummaryText, { mb: 0 }, c), toIdentifier: (c) => c.columnId })) : null)) : null),
54
58
  React.createElement(Box, null, 'DataTypes' in scope ? (React.createElement(React.Fragment, null,
55
59
  React.createElement(Text, { fontSize: 2, mb: 2 }, labels.scopeDataTypes),
56
- React.createElement(ValueOptionsTags, { readOnly: true, options: scope.DataTypes, value: scope.DataTypes, toLabel: (c) => c, allowWrap: true, renderLabel: (c) => React.createElement(Text, { fontSize: 2 }, `DataType: ${c}`), toIdentifier: (c) => c }))) : null)));
60
+ React.createElement(ValueOptionsTags, { readOnly: true, options: scope.DataTypes, value: scope.DataTypes, toLabel: (c) => c, allowWrap: true, renderLabel: (c) => React.createElement(Text, { fontSize: 2 }, renderDataTypeLabel(c)), toIdentifier: (c) => c }))) : null)));
57
61
  };
58
62
  const DATA_TYPES_OPTIONS = Object.values(DATA_TYPES_MAP);
59
63
  export const NewScopeComponent = (props) => {
@@ -453,5 +453,5 @@ export const FormatColumnFormatWizardSection = (props) => {
453
453
  return (React.createElement(HelpBlock, { margin: 3 },
454
454
  "Setting a Display Format is only possible if ",
455
455
  React.createElement("b", null, "all"),
456
- " the columns in Scope are Numeric, String or Date."));
456
+ " the columns in Scope are Numeric, String or Date"));
457
457
  };
@@ -1,8 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
3
3
  import { EntityRulesEditor } from '../../Components/EntityRulesEditor';
4
+ import HelpBlock from '../../../components/HelpBlock';
4
5
  export function FormatColumnRuleWizardSection(props) {
5
6
  const { data, api, moduleInfo } = useOnePageAdaptableWizardContext();
7
+ if (data.Target && data.Target === 'columnHeader') {
8
+ return (React.createElement(HelpBlock, { margin: 3 }, "Conditions cannot be applied if the Target of the Format Column is Column Header"));
9
+ }
6
10
  return (React.createElement(EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: props.defaultPredicateId,
7
11
  // TODO see what is this
8
12
  predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), getPredicateDefsForColId: (colId) => api.formatColumnApi.internalApi.getFormatColumnDefsForScope({ ColumnIds: [colId] }), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showQueryBuilder: true, showPredicate: !api.columnScopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
@@ -2,11 +2,7 @@ import * as React from 'react';
2
2
  import { NewScopeComponent, renderScopeSummary } from '../../Components/NewScopeComponent';
3
3
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
4
4
  import { DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN } from './constants';
5
- import { Tabs } from '../../../components/Tabs';
6
- import { Box, Flex } from 'rebass';
7
- import FormLayout, { FormRow } from '../../../components/FormLayout';
8
- import { CheckBox } from '../../../components/CheckBox';
9
- import HelpBlock from '../../../components/HelpBlock';
5
+ import { Box } from 'rebass';
10
6
  export const renderFormatColumnScopeSummary = (data) => {
11
7
  return renderScopeSummary(data.Scope, {
12
8
  scopeWholeRow: 'Matching rows will be formatted',
@@ -16,42 +12,7 @@ export const renderFormatColumnScopeSummary = (data) => {
16
12
  };
17
13
  export const FormatColumnScopeWizardSection = (props) => {
18
14
  const { data, api } = useOnePageAdaptableWizardContext();
19
- const currentTargets = data.Target?.length ? data.Target : ['cell'];
20
- const handleTargetChange = (target, checked) => {
21
- let newTargets;
22
- if (checked) {
23
- // Add the target if it's not already included
24
- newTargets = [...new Set([...currentTargets, target])];
25
- }
26
- else {
27
- // Remove the target
28
- newTargets = currentTargets.filter((t) => t !== target);
29
- }
30
- // If all checkboxes are unchecked, default to ['cell']
31
- if (newTargets.length === 0) {
32
- newTargets = ['cell'];
33
- }
34
- // Update the formatColumn object
35
- props.onChange({
36
- ...data,
37
- Target: newTargets,
38
- });
39
- };
40
15
  return (React.createElement(React.Fragment, null,
41
- React.createElement(Tabs, { mb: 3 },
42
- React.createElement(Tabs.Tab, null, "Target"),
43
- React.createElement(Tabs.Content, null,
44
- React.createElement(Flex, { flexDirection: "column" },
45
- React.createElement(FormLayout, { width: "100%" },
46
- React.createElement(FormRow, { label: "Target Column Elements: ", tooltip: "The visual elements where formatting will be applied" },
47
- React.createElement(CheckBox, { "data-name": "target-cell", checked: currentTargets.includes('cell'), onChange: (target) => {
48
- handleTargetChange('cell', target);
49
- }, ml: 2 }, "Data Cells"),
50
- React.createElement(CheckBox, { "data-name": "target-column-header", checked: currentTargets.includes('columnHeader'), onChange: (target) => {
51
- handleTargetChange('columnHeader', target);
52
- }, ml: 4 }, "Column Headers"))),
53
- React.createElement(HelpBlock, { fontSize: 2 }, 'At least one target element must be selected (defaults to Data Cells).' +
54
- ' Conditional formatting rules only apply to Data Cells, not to Headers.')))),
55
16
  React.createElement(Box, { "data-name": 'scope-heading', style: {
56
17
  borderRadius: `var(--ab__border-radius)`,
57
18
  }, padding: 2, backgroundColor: `var(--ab-color-primarylight)` }, "Scope"),
@@ -83,29 +83,30 @@ export const FormatColumnSettingsWizardSection = (props) => {
83
83
  React.createElement(Tabs.Content, null,
84
84
  React.createElement(Flex, { flexDirection: "row" },
85
85
  React.createElement(FormLayout, null,
86
- React.createElement(FormRow, { label: "Cell Alignment" },
87
- React.createElement(ToggleGroup, null,
88
- React.createElement(Toggle, { icon: "align-left", pressed: data.CellAlignment === 'Left', onPressedChange: (pressed) => pressed
89
- ? onCellAlignmentSelectChanged('Left')
90
- : onCellAlignmentSelectChanged(null) }),
91
- React.createElement(Toggle, { icon: "align-center", pressed: data.CellAlignment === 'Center', onPressedChange: (pressed) => pressed
92
- ? onCellAlignmentSelectChanged('Center')
93
- : onCellAlignmentSelectChanged(null) }),
94
- React.createElement(Toggle, { icon: "align-right", pressed: data.CellAlignment === 'Right', onPressedChange: (pressed) => pressed
95
- ? onCellAlignmentSelectChanged('Right')
96
- : onCellAlignmentSelectChanged(null) }))),
97
- React.createElement(FormRow, { label: "Exclude Data Rows:" },
98
- React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
99
- React.createElement(CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
100
- React.createElement(FormRow, { label: "Exclude Group Rows:" },
101
- React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
102
- React.createElement(CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
103
- React.createElement(FormRow, { label: "Exclude Row Summaries:" },
104
- React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
105
- React.createElement(CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))),
106
- React.createElement(FormRow, { label: "Exclude Total Rows:" },
107
- React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
108
- React.createElement(CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, mr: 2 }))),
86
+ data.Target === 'cell' && (React.createElement(React.Fragment, null,
87
+ React.createElement(FormRow, { label: "Cell Alignment" },
88
+ React.createElement(ToggleGroup, null,
89
+ React.createElement(Toggle, { icon: "align-left", pressed: data.CellAlignment === 'Left', onPressedChange: (pressed) => pressed
90
+ ? onCellAlignmentSelectChanged('Left')
91
+ : onCellAlignmentSelectChanged(null) }),
92
+ React.createElement(Toggle, { icon: "align-center", pressed: data.CellAlignment === 'Center', onPressedChange: (pressed) => pressed
93
+ ? onCellAlignmentSelectChanged('Center')
94
+ : onCellAlignmentSelectChanged(null) }),
95
+ React.createElement(Toggle, { icon: "align-right", pressed: data.CellAlignment === 'Right', onPressedChange: (pressed) => pressed
96
+ ? onCellAlignmentSelectChanged('Right')
97
+ : onCellAlignmentSelectChanged(null) }))),
98
+ React.createElement(FormRow, { label: "Exclude Data Rows:" },
99
+ React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
100
+ React.createElement(CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
101
+ React.createElement(FormRow, { label: "Exclude Group Rows:" },
102
+ React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
103
+ React.createElement(CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
104
+ React.createElement(FormRow, { label: "Exclude Row Summaries:" },
105
+ React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
106
+ React.createElement(CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))),
107
+ React.createElement(FormRow, { label: "Exclude Total Rows:" },
108
+ React.createElement(Flex, { alignItems: "center", marginLeft: 2 },
109
+ React.createElement(CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, mr: 2 }))))),
109
110
  React.createElement(FormRow, { label: "Apply on Column Group:" },
110
111
  React.createElement(RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
111
112
  props.onChange({
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { FormatColumn } from '../../../AdaptableState/FormatColumnState';
3
+ type FormatColumnScopeWizardSectionProps = {
4
+ onChange: (data: FormatColumn) => void;
5
+ };
6
+ export declare const renderFormatColumnTargetSummary: (data: FormatColumn) => "Column Header" | "Column Cells";
7
+ export declare const FormatColumnTargetWizardSection: (props: FormatColumnScopeWizardSectionProps) => React.JSX.Element;
8
+ export {};
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
3
+ import { Tabs } from '../../../components/Tabs';
4
+ import { Flex } from 'rebass';
5
+ import { TypeRadio } from '../../Wizard/TypeRadio';
6
+ export const renderFormatColumnTargetSummary = (data) => {
7
+ if (!data.Target || data.Target === 'cell') {
8
+ return 'Column Cells';
9
+ }
10
+ if (data.Target === 'columnHeader') {
11
+ return 'Column Header';
12
+ }
13
+ };
14
+ export const FormatColumnTargetWizardSection = (props) => {
15
+ const { data, api } = useOnePageAdaptableWizardContext();
16
+ const currentTarget = data.Target ? data.Target : 'cell';
17
+ const handleTargetChange = (target) => {
18
+ // Update the formatColumn object
19
+ props.onChange({
20
+ ...data,
21
+ Target: target,
22
+ });
23
+ };
24
+ return (React.createElement(React.Fragment, null,
25
+ React.createElement(Tabs, { mb: 3 },
26
+ React.createElement(Tabs.Tab, null, "Target"),
27
+ React.createElement(Tabs.Content, null,
28
+ React.createElement(Flex, { flexDirection: "column" },
29
+ React.createElement(TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "Column Cells are styled and formatted", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }),
30
+ React.createElement(TypeRadio, { "data-name": "target-column-header", text: 'Column Header', description: "The Column Header is styled (Note: Conditions are not available for Column Headers)", checked: currentTarget === 'columnHeader', onClick: () => handleTargetChange('columnHeader') }))))));
31
+ };
@@ -17,9 +17,14 @@ import { isAdaptableRuleValid } from '../../Components/EntityRulesEditor/Utiliti
17
17
  import { FormatColumnRuleWizardSection } from './FormatColumnRuleWizardSection';
18
18
  import { DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN } from './constants';
19
19
  import { isObjectEmpty } from '../../../Utilities/Extensions/ObjectExtensions';
20
- const adjustDisplayFormat = (formatColumn, api) => {
21
- formatColumn = { ...formatColumn };
22
- const formatDataType = getFormatDisplayTypeForScope(formatColumn.Scope, api);
20
+ import { FormatColumnTargetWizardSection, renderFormatColumnTargetSummary, } from './FormatColumnTargetWizardSection';
21
+ const adjustDisplayFormat = (fc, api) => {
22
+ const formatColumn = { ...fc };
23
+ let formatDataType = getFormatDisplayTypeForScope(formatColumn.Scope, api);
24
+ if (formatColumn.Target === 'columnHeader') {
25
+ // Column Headers are always text
26
+ formatDataType = 'text';
27
+ }
23
28
  if (!formatDataType && formatColumn.DisplayFormat) {
24
29
  formatColumn.DisplayFormat = undefined;
25
30
  }
@@ -88,7 +93,7 @@ export function FormatColumnWizard(props) {
88
93
  };
89
94
  return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
90
95
  {
91
- title: 'Scope & Target',
96
+ title: 'Scope',
92
97
  details: 'Select which Columns will be formatted',
93
98
  isValid: isScopeValid,
94
99
  renderSummary: renderFormatColumnScopeSummary,
@@ -97,6 +102,15 @@ export function FormatColumnWizard(props) {
97
102
  React.createElement(FormatColumnScopeWizardSection, { onChange: setFormatColumn })));
98
103
  },
99
104
  },
105
+ {
106
+ title: 'Target',
107
+ details: 'Select which Columns Elements will be formatted',
108
+ renderSummary: renderFormatColumnTargetSummary,
109
+ render: () => {
110
+ return (React.createElement(Flex, { flexDirection: "column", style: { height: '100%' }, padding: 2 },
111
+ React.createElement(FormatColumnTargetWizardSection, { onChange: setFormatColumn })));
112
+ },
113
+ },
100
114
  {
101
115
  isValid: (abObject, api, context) => {
102
116
  if (!abObject.Rule) {
@@ -640,12 +640,15 @@ You need to define at least one Layout!`);
640
640
  */
641
641
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'defaultColDef', (original_defaultColDef) => {
642
642
  if (original_defaultColDef?.headerValueGetter) {
643
- this.logger.warn(`defaultColDef.headerValueGetter and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.tableColumnHeader instead!`);
643
+ this.logger.warn(`defaultColDef.headerValueGetter and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
644
644
  return original_defaultColDef;
645
645
  }
646
+ // #customize_header
646
647
  const defaultColDef = { ...original_defaultColDef };
647
648
  defaultColDef.headerValueGetter = tagProvidedByAdaptable((params) => {
648
- return this.api.columnApi.internalApi.getColumnHeaderName(params);
649
+ const columnHeaderName = this.api.columnApi.internalApi.getColumnHeaderName(params);
650
+ const formattedHeaderName = this.api.formatColumnApi.internalApi.formatColumnHeaderName(columnHeaderName, params);
651
+ return formattedHeaderName;
649
652
  });
650
653
  return defaultColDef;
651
654
  });
@@ -29,7 +29,7 @@ export declare class AgGridColumnAdapter {
29
29
  private setupColumnAllowedAggFuncs;
30
30
  private setupColumnType;
31
31
  private setupColumnCellDataType;
32
- setupColumnHeader({ col, abColumn }: ColumnSetupInfo): void;
32
+ setupColumnHeader({ col }: ColumnSetupInfo): void;
33
33
  private setupColumnFilter;
34
34
  setupColumnFloatingFilterTemporarily(initialGridOptions: GridOptions): void;
35
35
  private setupColumnFloatingFilter;
@@ -134,8 +134,8 @@ export class AgGridColumnAdapter {
134
134
  this.setupColumnCellClass(colSetupInfo);
135
135
  this.setupColumnHeaderStyle(colSetupInfo);
136
136
  this.setupColumnHeaderClass(colSetupInfo);
137
- this.setupColumnTooltipValueGetter(colSetupInfo);
138
137
  this.setupColumnValueGetter(colSetupInfo);
138
+ this.setupColumnTooltipValueGetter(colSetupInfo);
139
139
  this.setupColumnFilter(colSetupInfo);
140
140
  this.setupColumnFloatingFilter(colSetupInfo);
141
141
  this.setupColumnValueFormatter(colSetupInfo);
@@ -503,10 +503,11 @@ export class AgGridColumnAdapter {
503
503
  return original_cellDataType ?? true;
504
504
  });
505
505
  }
506
- setupColumnHeader({ col, abColumn }) {
506
+ setupColumnHeader({ col }) {
507
507
  this.setColDefProperty(col, 'headerValueGetter', (original_headerValueGetter) => {
508
+ // see #customize_header
508
509
  if (!isProvidedByAdaptable(original_headerValueGetter)) {
509
- this.adaptableApi.logWarn(`colDef.headerValueGetter is defined for column '${col.getColId()}', and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.tableColumnHeader instead!`);
510
+ this.adaptableApi.logWarn(`colDef.headerValueGetter is defined for column '${col.getColId()}', and overrides the Adaptable custom header mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
510
511
  }
511
512
  return original_headerValueGetter;
512
513
  });
@@ -597,7 +598,7 @@ export class AgGridColumnAdapter {
597
598
  }
598
599
  setupColumnValueFormatter({ col, abColumn }) {
599
600
  this.setColDefProperty(col, 'valueFormatter', (userPropertyValue) => {
600
- const activeFormatColumnsWithDisplayFormat = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
601
+ const activeFormatColumnsWithDisplayFormat = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn, { target: 'cell' });
601
602
  if (!activeFormatColumnsWithDisplayFormat.length) {
602
603
  return;
603
604
  }
@@ -477,7 +477,7 @@ export class AgGridExportAdapter {
477
477
  return memoizedFormatColumns;
478
478
  }
479
479
  const abColumn = getAdaptableColumnWithColumnId(columnId);
480
- const formatColumns = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
480
+ const formatColumns = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn, { target: 'cell' });
481
481
  formatColumnsWithDisplayFormatMemo[columnId] = formatColumns;
482
482
  return formatColumns;
483
483
  };
package/src/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
3
- PUBLISH_TIMESTAMP: 1752759816335 || Date.now(),
4
- VERSION: "20.3.0-canary.1" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1753107517703 || Date.now(),
4
+ VERSION: "20.3.0" || '--current-version--',
5
5
  };
@@ -1480,6 +1480,16 @@ export declare const ADAPTABLE_METAMODEL: {
1480
1480
  desc: string;
1481
1481
  }[];
1482
1482
  };
1483
+ AutoGroupColumnHeaderContext: {
1484
+ name: string;
1485
+ kind: string;
1486
+ desc: string;
1487
+ props: {
1488
+ name: string;
1489
+ kind: string;
1490
+ desc: string;
1491
+ }[];
1492
+ };
1483
1493
  BadgeStyle: {
1484
1494
  name: string;
1485
1495
  kind: string;
@@ -2015,6 +2025,11 @@ export declare const ADAPTABLE_METAMODEL: {
2015
2025
  kind: string;
2016
2026
  desc: string;
2017
2027
  };
2028
+ ColumnHeaderContext: {
2029
+ name: string;
2030
+ kind: string;
2031
+ desc: string;
2032
+ };
2018
2033
  ColumnMenuContext: {
2019
2034
  name: string;
2020
2035
  kind: string;
@@ -3670,7 +3685,7 @@ export declare const ADAPTABLE_METAMODEL: {
3670
3685
  desc: string;
3671
3686
  isOpt: boolean;
3672
3687
  defVal: string;
3673
- ref?: undefined;
3688
+ ref: string;
3674
3689
  })[];
3675
3690
  };
3676
3691
  FormatColumnOptions: {
@@ -4526,6 +4541,46 @@ export declare const ADAPTABLE_METAMODEL: {
4526
4541
  kind: string;
4527
4542
  desc: string;
4528
4543
  };
4544
+ PivotAggregationTotalHeaderContext: {
4545
+ name: string;
4546
+ kind: string;
4547
+ desc: string;
4548
+ props: {
4549
+ name: string;
4550
+ kind: string;
4551
+ desc: string;
4552
+ }[];
4553
+ };
4554
+ PivotColumnGroupHeaderContext: {
4555
+ name: string;
4556
+ kind: string;
4557
+ desc: string;
4558
+ props: {
4559
+ name: string;
4560
+ kind: string;
4561
+ desc: string;
4562
+ }[];
4563
+ };
4564
+ PivotColumnTotalHeaderContext: {
4565
+ name: string;
4566
+ kind: string;
4567
+ desc: string;
4568
+ props: {
4569
+ name: string;
4570
+ kind: string;
4571
+ desc: string;
4572
+ }[];
4573
+ };
4574
+ PivotGrandTotalHeaderContext: {
4575
+ name: string;
4576
+ kind: string;
4577
+ desc: string;
4578
+ props: {
4579
+ name: string;
4580
+ kind: string;
4581
+ desc: string;
4582
+ }[];
4583
+ };
4529
4584
  PivotLayout: {
4530
4585
  name: string;
4531
4586
  kind: string;
@@ -4566,6 +4621,16 @@ export declare const ADAPTABLE_METAMODEL: {
4566
4621
  ref: string;
4567
4622
  })[];
4568
4623
  };
4624
+ PivotResultColumnHeaderContext: {
4625
+ name: string;
4626
+ kind: string;
4627
+ desc: string;
4628
+ props: {
4629
+ name: string;
4630
+ kind: string;
4631
+ desc: string;
4632
+ }[];
4633
+ };
4569
4634
  PivotTotalPosition: {
4570
4635
  name: string;
4571
4636
  kind: string;
@@ -5054,6 +5119,16 @@ export declare const ADAPTABLE_METAMODEL: {
5054
5119
  kind: string;
5055
5120
  desc: string;
5056
5121
  };
5122
+ RowGroupColumnHeaderContext: {
5123
+ name: string;
5124
+ kind: string;
5125
+ desc: string;
5126
+ props: {
5127
+ name: string;
5128
+ kind: string;
5129
+ desc: string;
5130
+ }[];
5131
+ };
5057
5132
  RowGroupValues: {
5058
5133
  name: string;
5059
5134
  kind: string;
@@ -5668,6 +5743,32 @@ export declare const ADAPTABLE_METAMODEL: {
5668
5743
  kind: string;
5669
5744
  desc: string;
5670
5745
  };
5746
+ TableColumnGroupHeaderContext: {
5747
+ name: string;
5748
+ kind: string;
5749
+ desc: string;
5750
+ props: {
5751
+ name: string;
5752
+ kind: string;
5753
+ desc: string;
5754
+ }[];
5755
+ };
5756
+ TableColumnHeaderContext: {
5757
+ name: string;
5758
+ kind: string;
5759
+ desc: string;
5760
+ props: ({
5761
+ name: string;
5762
+ kind: string;
5763
+ desc: string;
5764
+ isOpt: boolean;
5765
+ } | {
5766
+ name: string;
5767
+ kind: string;
5768
+ desc: string;
5769
+ isOpt?: undefined;
5770
+ })[];
5771
+ };
5671
5772
  TableLayout: {
5672
5773
  name: string;
5673
5774
  kind: string;