@adaptabletools/adaptable-cjs 23.0.0-canary.1 → 23.0.0-canary.2

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.
package/index.css CHANGED
@@ -6975,93 +6975,43 @@
6975
6975
  .ab-Datepicker-Overlay .rdp-focusable {
6976
6976
  cursor: pointer;
6977
6977
  }
6978
- .ab-Datepicker-Overlay {
6979
- @keyframes rdp-slide_in_left {
6980
- 0% {
6981
- transform: translateX(-100%);
6982
- }
6983
- 100% {
6984
- transform: translateX(0);
6985
- }
6986
- }
6987
- @keyframes rdp-slide_in_right {
6988
- 0% {
6989
- transform: translateX(100%);
6990
- }
6991
- 100% {
6992
- transform: translateX(0);
6993
- }
6994
- }
6995
- @keyframes rdp-slide_out_left {
6996
- 0% {
6997
- transform: translateX(0);
6998
- }
6999
- 100% {
7000
- transform: translateX(-100%);
7001
- }
7002
- }
7003
- @keyframes rdp-slide_out_right {
7004
- 0% {
7005
- transform: translateX(0);
7006
- }
7007
- 100% {
7008
- transform: translateX(100%);
7009
- }
7010
- }
7011
- }
6978
+ .ab-Datepicker-Overlay {}
7012
6979
  .ab-Datepicker-Overlay .rdp-weeks_before_enter {
7013
- animation: rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
6980
+ animation: ab-rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7014
6981
  }
7015
6982
  .ab-Datepicker-Overlay .rdp-weeks_before_exit {
7016
- animation: rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
6983
+ animation: ab-rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7017
6984
  }
7018
6985
  .ab-Datepicker-Overlay .rdp-weeks_after_enter {
7019
- animation: rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
6986
+ animation: ab-rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7020
6987
  }
7021
6988
  .ab-Datepicker-Overlay .rdp-weeks_after_exit {
7022
- animation: rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
6989
+ animation: ab-rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7023
6990
  }
7024
6991
  .ab-Datepicker-Overlay .rdp-root[dir="rtl"] .rdp-weeks_after_enter {
7025
- animation: rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
6992
+ animation: ab-rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7026
6993
  }
7027
6994
  .ab-Datepicker-Overlay .rdp-root[dir="rtl"] .rdp-weeks_before_exit {
7028
- animation: rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
6995
+ animation: ab-rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7029
6996
  }
7030
6997
  .ab-Datepicker-Overlay .rdp-root[dir="rtl"] .rdp-weeks_before_enter {
7031
- animation: rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
6998
+ animation: ab-rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7032
6999
  }
7033
7000
  .ab-Datepicker-Overlay .rdp-root[dir="rtl"] .rdp-weeks_after_exit {
7034
- animation: rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7035
- }
7036
- .ab-Datepicker-Overlay {
7037
- @keyframes rdp-fade_in {
7038
- from {
7039
- opacity: 0;
7040
- }
7041
- to {
7042
- opacity: 1;
7043
- }
7044
- }
7045
- @keyframes rdp-fade_out {
7046
- from {
7047
- opacity: 1;
7048
- }
7049
- to {
7050
- opacity: 0;
7051
- }
7052
- }
7001
+ animation: ab-rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7053
7002
  }
7003
+ .ab-Datepicker-Overlay {}
7054
7004
  .ab-Datepicker-Overlay .rdp-caption_after_enter {
7055
- animation: rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7005
+ animation: ab-rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7056
7006
  }
7057
7007
  .ab-Datepicker-Overlay .rdp-caption_after_exit {
7058
- animation: rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7008
+ animation: ab-rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7059
7009
  }
7060
7010
  .ab-Datepicker-Overlay .rdp-caption_before_enter {
7061
- animation: rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7011
+ animation: ab-rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7062
7012
  }
7063
7013
  .ab-Datepicker-Overlay .rdp-caption_before_exit {
7064
- animation: rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7014
+ animation: ab-rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards;
7065
7015
  }
7066
7016
  .ab-Datepicker-Overlay {
7067
7017
  border: var(--ab-cmp-datepicker__border);
@@ -8701,3 +8651,51 @@
8701
8651
  }
8702
8652
  }
8703
8653
  }
8654
+ @keyframes ab-rdp-slide_in_left {
8655
+ 0% {
8656
+ transform: translateX(-100%);
8657
+ }
8658
+ 100% {
8659
+ transform: translateX(0);
8660
+ }
8661
+ }
8662
+ @keyframes ab-rdp-slide_in_right {
8663
+ 0% {
8664
+ transform: translateX(100%);
8665
+ }
8666
+ 100% {
8667
+ transform: translateX(0);
8668
+ }
8669
+ }
8670
+ @keyframes ab-rdp-slide_out_left {
8671
+ 0% {
8672
+ transform: translateX(0);
8673
+ }
8674
+ 100% {
8675
+ transform: translateX(-100%);
8676
+ }
8677
+ }
8678
+ @keyframes ab-rdp-slide_out_right {
8679
+ 0% {
8680
+ transform: translateX(0);
8681
+ }
8682
+ 100% {
8683
+ transform: translateX(100%);
8684
+ }
8685
+ }
8686
+ @keyframes ab-rdp-fade_in {
8687
+ from {
8688
+ opacity: 0;
8689
+ }
8690
+ to {
8691
+ opacity: 1;
8692
+ }
8693
+ }
8694
+ @keyframes ab-rdp-fade_out {
8695
+ from {
8696
+ opacity: 1;
8697
+ }
8698
+ to {
8699
+ opacity: 0;
8700
+ }
8701
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable-cjs",
3
- "version": "23.0.0-canary.1",
3
+ "version": "23.0.0-canary.2",
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",
@@ -44,6 +44,10 @@ export interface LayoutState extends BaseState {
44
44
  /**
45
45
  * Base object for both Table and Pivot Layouts
46
46
  */
47
+ /**
48
+ * How row groups are displayed in a Layout (maps to AG Grid `groupDisplayType`).
49
+ */
50
+ export type RowGroupDisplayType = 'single' | 'multi' | 'groupRows';
47
51
  export interface LayoutBase extends AdaptableObject {
48
52
  /**
49
53
  * Name of the Layout as it appears in the Layout toolbar and tool panel
@@ -101,10 +105,7 @@ export interface LayoutBase extends AdaptableObject {
101
105
  * Position of the Grand Total Row in the Layout
102
106
  */
103
107
  GrandTotalRow?: 'top' | 'bottom' | 'pinnedTop' | 'pinnedBottom' | boolean;
104
- /**
105
- * Display Row Grouped Columns as 'single' or 'multi' column
106
- */
107
- RowGroupDisplayType?: 'single' | 'multi';
108
+ RowGroupDisplayType?: RowGroupDisplayType;
108
109
  }
109
110
  /**
110
111
  * Defines a Table-based Layout
@@ -1,6 +1,6 @@
1
1
  import { BaseState } from './BaseState';
2
2
  import { AdaptablePredicate, AdaptableBooleanQuery, AdaptableIcon } from '../types';
3
- import { CellBoxStyle, CellFontStyle } from './Common/AdaptableStyle';
3
+ import { AdaptableStyle, CellBoxStyle, CellFontStyle } from './Common/AdaptableStyle';
4
4
  import { TypeHint } from './Common/Types';
5
5
  import { RowScope } from './Common/RowScope';
6
6
  import { AgSparklineOptions } from 'ag-charts-types';
@@ -367,23 +367,14 @@ export type SystemBadgeStylePredicateIds = SystemBadgeStylePredicateId[];
367
367
  export interface BadgeStylePredicate extends AdaptablePredicate {
368
368
  PredicateId: TypeHint<string, SystemBadgeStylePredicateId>;
369
369
  }
370
+ /** Keys copied from legacy `BadgeStyleDefinition.Style` (`AdaptableStyle`) into `PillStyle`. */
371
+ export declare const BADGE_PILL_STYLE_KEYS: readonly ["BackColor", "ForeColor", "BorderColor", "FontWeight", "FontStyle", "TextDecoration"];
370
372
  /**
371
- * Visual styling applied to a single Badge "pill" (subset of `AdaptableStyle`)
373
+ * Visual styling applied to a single Badge pill — an explicit subset of
374
+ * {@link AdaptableStyle}. Not used: `BorderRadius` ({@link BadgeShape}),
375
+ * `Alignment` / `FontSize` / `ClassName` (column-level or unsupported).
372
376
  */
373
- export interface BadgePillStyle {
374
- /** Pill background colour. */
375
- BackColor?: string;
376
- /** Pill text/icon colour. */
377
- ForeColor?: string;
378
- /** Pill border colour (a subtle 1px border is drawn when set). */
379
- BorderColor?: string;
380
- /** Whether the pill text is bold. */
381
- FontWeight?: 'Normal' | 'Bold';
382
- /** Whether the pill text is italic. */
383
- FontStyle?: 'Normal' | 'Italic';
384
- /** Optional decoration (underline / line-through / overline). */
385
- TextDecoration?: 'None' | 'Underline' | 'Overline' | 'LineThrough';
386
- }
377
+ export type BadgePillStyle = Pick<AdaptableStyle, (typeof BADGE_PILL_STYLE_KEYS)[number]>;
387
378
  /**
388
379
  * Visual shape of a Badge; convenience shorthand that resolves to a border radius without having to pick a pixel value
389
380
  */
@@ -1,2 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BADGE_PILL_STYLE_KEYS = void 0;
4
+ /** Keys copied from legacy `BadgeStyleDefinition.Style` (`AdaptableStyle`) into `PillStyle`. */
5
+ exports.BADGE_PILL_STYLE_KEYS = [
6
+ 'BackColor',
7
+ 'ForeColor',
8
+ 'BorderColor',
9
+ 'FontWeight',
10
+ 'FontStyle',
11
+ 'TextDecoration',
12
+ ];
@@ -194,7 +194,7 @@ const ColumnsSection = (props) => {
194
194
  if (layout.RowGroupDisplayType === 'single') {
195
195
  allColumns.unshift((0, ColumnApiImpl_1.generateAutoRowGroupSingleColumn)());
196
196
  }
197
- else {
197
+ else if (layout.RowGroupDisplayType === 'multi') {
198
198
  [...layout.RowGroupedColumns].reverse().forEach((col) => {
199
199
  const groupCol = (0, ColumnApiImpl_1.generateAutoRowGroupColumnForColumn)(adaptable.api.columnApi.getColumnWithColumnId(col));
200
200
  allColumns.unshift(groupCol);
@@ -79,10 +79,14 @@ const RowGroupingSection = (props) => {
79
79
  if (RowGroupDisplayType === 'single') {
80
80
  newLayout.TableColumns = (newLayout.TableColumns || []).filter((colId) => !adaptable.api.columnApi.isAutoRowGroupColumnForMulti(colId));
81
81
  }
82
- else {
82
+ else if (RowGroupDisplayType === 'multi') {
83
83
  newLayout.TableColumns = (newLayout.TableColumns || []).filter((colId) => !adaptable.api.columnApi.isAutoRowGroupColumnForSingle(colId));
84
84
  }
85
+ else {
86
+ newLayout.TableColumns = (newLayout.TableColumns || []).filter((colId) => !adaptable.api.columnApi.isAutoRowGroupColumnForSingle(colId) &&
87
+ !adaptable.api.columnApi.isAutoRowGroupColumnForMulti(colId));
88
+ }
85
89
  onChange(newLayout);
86
- }, children: [(0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { value: "single", text: "Single Column", description: "All Row Grouped Columns display in one hierarchical Column" }), (0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { value: "multi", text: "Multiple Columns", description: "Each Row Grouped Column displays in its own, separate, Column" })] }) }) })] }), (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:mt-2", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Row Grouped Columns" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: rowGroupsText }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, toListLabel: (option) => ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", children: [option.friendlyName ?? option.columnId, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: option })] })), options: sortedGroupableColumns, value: layout.RowGroupedColumns ?? [], allowReorder: true, onChange: handleColumnsChange }) }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(exports.RowGroupBehaviorSection, { layout: layout, onChange: onChange }) })] })] }));
90
+ }, children: [(0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { value: "single", text: "Single Column", description: "All Row Grouped Columns display in one hierarchical Column" }), (0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { value: "multi", text: "Multiple Columns", description: "Each Row Grouped Column displays in its own, separate, Column" }), (0, jsx_runtime_1.jsx)(TypeRadio_1.TypeRadio, { value: "groupRows", text: "Full Width Group Rows", description: "Row groups display as full-width rows (no group column and no aggregations)" })] }) }) })] }), (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:mt-2", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Row Grouped Columns" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: rowGroupsText }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, toListLabel: (option) => ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", children: [option.friendlyName ?? option.columnId, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: option })] })), options: sortedGroupableColumns, value: layout.RowGroupedColumns ?? [], allowReorder: true, onChange: handleColumnsChange }) }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsx)(exports.RowGroupBehaviorSection, { layout: layout, onChange: onChange }) })] })] }));
87
91
  };
88
92
  exports.RowGroupingSection = RowGroupingSection;
@@ -100,6 +100,7 @@ const FlashingCellService_1 = require("../Utilities/Services/FlashingCellService
100
100
  const AgGridExportAdapter_1 = require("./AgGridExportAdapter");
101
101
  const LayoutHelpers_1 = require("../Api/Implementation/LayoutHelpers");
102
102
  const src_1 = require("../layout-manager/src");
103
+ const rowGroupDisplayType_1 = require("../layout-manager/src/rowGroupDisplayType");
103
104
  const isPivotLayoutModel_1 = require("../layout-manager/src/isPivotLayoutModel");
104
105
  const AdaptableColumn_1 = require("../AdaptableState/Common/AdaptableColumn");
105
106
  const agGridDataTypeDefinitions_1 = require("./agGridDataTypeDefinitions");
@@ -465,8 +466,7 @@ class AdaptableAgGrid {
465
466
  if ((0, isPivotLayoutModel_1.isPivotLayoutModel)(layoutModel)) {
466
467
  gridOptions.pivotDefaultExpanded = layoutModel.PivotExpandLevel;
467
468
  }
468
- gridOptions.groupDisplayType =
469
- layoutModel.RowGroupDisplayType === 'multi' ? 'multipleColumns' : 'singleColumn';
469
+ gridOptions.groupDisplayType = (0, rowGroupDisplayType_1.rowGroupDisplayTypeToGridOption)(layoutModel.RowGroupDisplayType);
470
470
  // fixes issue #3053
471
471
  gridOptions.suppressAggFuncInHeader = !!layoutModel.SuppressAggFuncInHeader;
472
472
  if (!(0, isPivotLayoutModel_1.isPivotLayoutModel)(layoutModel) &&
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DayPicker } from 'react-day-picker';
3
- import { Button } from "./button";
3
+ import { Button } from './button';
4
4
  declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, locale, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
5
5
  buttonVariant?: React.ComponentProps<typeof Button>['variant'];
6
6
  }): React.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
- import { Button } from "./button";
3
+ import { Button } from './button';
4
4
  declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
5
5
  declare const inputGroupAddonVariants: (props?: {
6
6
  align?: "inline-end" | "inline-start" | "block-end" | "block-start";
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  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" || '',
5
- PUBLISH_TIMESTAMP: 1780401819925 || Date.now(),
6
- VERSION: "23.0.0-canary.1" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1780405607097 || Date.now(),
6
+ VERSION: "23.0.0-canary.2" || '--current-version--',
7
7
  };
@@ -1,4 +1,4 @@
1
- import { ColumnSizingMap, LayoutRowSelection } from '../../AdaptableState/LayoutState';
1
+ import { ColumnSizingMap, LayoutRowSelection, RowGroupDisplayType } from '../../AdaptableState/LayoutState';
2
2
  import { XOR } from '../../Utilities/Extensions/TypeExtensions';
3
3
  /**
4
4
  * Defines how a Column is sorted
@@ -17,7 +17,7 @@ export interface BaseLayoutModel {
17
17
  /**
18
18
  * @defaultValue 'single'
19
19
  */
20
- RowGroupDisplayType?: 'single' | 'multi';
20
+ RowGroupDisplayType?: RowGroupDisplayType;
21
21
  /**
22
22
  * Those are not actually used by the LayoutManager,
23
23
  * but we need to keep them here so we can give the layout
@@ -5,6 +5,7 @@ const infinite_react_1 = require("@infinite-table/infinite-react");
5
5
  const isPivotLayoutModel_1 = require("./isPivotLayoutModel");
6
6
  const LMEmitter_1 = require("./LMEmitter");
7
7
  const normalizeLayoutModel_1 = require("./normalizeLayoutModel");
8
+ const rowGroupDisplayType_1 = require("./rowGroupDisplayType");
8
9
  const isLayoutEqual_1 = require("./isLayoutEqual");
9
10
  const simplifyLayoutModel_1 = require("./simplifyLayoutModel");
10
11
  const sortColumnIdsByOrder_1 = require("./sortColumnIdsByOrder");
@@ -555,7 +556,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
555
556
  if (groupDisplayType === 'singleColumn') {
556
557
  colsInLayout.add(normalizeLayoutModel_1.AUTO_GROUP_COLUMN_ID__SINGLE);
557
558
  }
558
- else {
559
+ else if (groupDisplayType === 'multipleColumns') {
559
560
  this.currentLayout.RowGroupedColumns.forEach((colId) => {
560
561
  colsInLayout.add(`${normalizeLayoutModel_1.AUTO_GROUP_COLUMN_ID__MULTI_PREFIX}${colId}`);
561
562
  });
@@ -763,7 +764,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
763
764
  ColumnGroupValues,
764
765
  GrandTotalRow: this.gridApi.getGridOption('grandTotalRow'),
765
766
  SuppressAggFuncInHeader: this.gridApi.getGridOption('suppressAggFuncInHeader'),
766
- RowGroupDisplayType: this.gridApi.getGridOption('groupDisplayType') === 'multipleColumns' ? 'multi' : 'single',
767
+ RowGroupDisplayType: (0, rowGroupDisplayType_1.gridOptionToRowGroupDisplayType)(this.gridApi.getGridOption('groupDisplayType')),
767
768
  RowSelection: this.getRowSelectionFromGrid(),
768
769
  });
769
770
  return layout;
@@ -1317,7 +1318,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
1317
1318
  // this.gridApi.applyColumnState(state);
1318
1319
  const hasGroupedColumns = layout.RowGroupedColumns && layout.RowGroupedColumns.length;
1319
1320
  if (hasGroupedColumns) {
1320
- const displayTypeFromLayout = layout.RowGroupDisplayType === 'multi' ? 'multipleColumns' : 'singleColumn';
1321
+ const displayTypeFromLayout = (0, rowGroupDisplayType_1.rowGroupDisplayTypeToGridOption)(layout.RowGroupDisplayType);
1321
1322
  const groupDisplayType = this.gridApi.getGridOption('groupDisplayType');
1322
1323
  if (groupDisplayType !== displayTypeFromLayout) {
1323
1324
  this.gridApi.setGridOption('groupDisplayType', displayTypeFromLayout);
@@ -1680,7 +1681,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
1680
1681
  this.applyPivotTotals(layout);
1681
1682
  const hasGroupedColumns = layout.PivotGroupedColumns && !!layout.PivotGroupedColumns.length;
1682
1683
  if (hasGroupedColumns) {
1683
- const displayTypeFromLayout = layout.RowGroupDisplayType === 'multi' ? 'multipleColumns' : 'singleColumn';
1684
+ const displayTypeFromLayout = (0, rowGroupDisplayType_1.rowGroupDisplayTypeToGridOption)(layout.RowGroupDisplayType);
1684
1685
  const groupDisplayType = this.gridApi.getGridOption('groupDisplayType');
1685
1686
  if (groupDisplayType !== displayTypeFromLayout) {
1686
1687
  this.gridApi.setGridOption('groupDisplayType', displayTypeFromLayout);
@@ -5,6 +5,7 @@ exports.normalizeTableLayoutModel = normalizeTableLayoutModel;
5
5
  exports.normalizePivotLayoutModel = normalizePivotLayoutModel;
6
6
  exports.normalizeLayoutModel = normalizeLayoutModel;
7
7
  const isPivotLayoutModel_1 = require("./isPivotLayoutModel");
8
+ const rowGroupDisplayType_1 = require("./rowGroupDisplayType");
8
9
  exports.AUTO_GROUP_COLUMN_ID__SINGLE = 'ag-Grid-AutoColumn';
9
10
  exports.AUTO_GROUP_COLUMN_ID__MULTI_PREFIX = 'ag-Grid-AutoColumn-';
10
11
  function normalizeTableLayoutModel(layout, options) {
@@ -66,7 +67,10 @@ function normalizeTableLayoutModel(layout, options) {
66
67
  displayType = displayType || 'single';
67
68
  layout.RowGroupDisplayType = displayType;
68
69
  }
69
- if (displayType === 'single') {
70
+ if (displayType === 'groupRows') {
71
+ layout.TableColumns = layout.TableColumns.filter((colId) => !(0, rowGroupDisplayType_1.isRowGroupAutoColumnId)(colId));
72
+ }
73
+ else if (displayType === 'single') {
70
74
  if (!ColumnOrderSet.has(exports.AUTO_GROUP_COLUMN_ID__SINGLE)) {
71
75
  layout.TableColumns = [exports.AUTO_GROUP_COLUMN_ID__SINGLE, ...layout.TableColumns];
72
76
  }
@@ -0,0 +1,6 @@
1
+ import { GridOptions } from 'ag-grid-enterprise';
2
+ import { RowGroupDisplayType } from '../../AdaptableState/LayoutState';
3
+ export type { RowGroupDisplayType };
4
+ export declare function rowGroupDisplayTypeToGridOption(displayType: RowGroupDisplayType | undefined): GridOptions['groupDisplayType'];
5
+ export declare function gridOptionToRowGroupDisplayType(groupDisplayType: GridOptions['groupDisplayType'] | undefined): RowGroupDisplayType;
6
+ export declare function isRowGroupAutoColumnId(colId: string): boolean;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rowGroupDisplayTypeToGridOption = rowGroupDisplayTypeToGridOption;
4
+ exports.gridOptionToRowGroupDisplayType = gridOptionToRowGroupDisplayType;
5
+ exports.isRowGroupAutoColumnId = isRowGroupAutoColumnId;
6
+ const normalizeLayoutModel_1 = require("./normalizeLayoutModel");
7
+ function rowGroupDisplayTypeToGridOption(displayType) {
8
+ switch (displayType ?? 'single') {
9
+ case 'multi':
10
+ return 'multipleColumns';
11
+ case 'groupRows':
12
+ return 'groupRows';
13
+ case 'single':
14
+ default:
15
+ return 'singleColumn';
16
+ }
17
+ }
18
+ function gridOptionToRowGroupDisplayType(groupDisplayType) {
19
+ if (groupDisplayType === 'multipleColumns') {
20
+ return 'multi';
21
+ }
22
+ if (groupDisplayType === 'groupRows') {
23
+ return 'groupRows';
24
+ }
25
+ return 'single';
26
+ }
27
+ function isRowGroupAutoColumnId(colId) {
28
+ return colId === normalizeLayoutModel_1.AUTO_GROUP_COLUMN_ID__SINGLE || colId.startsWith(normalizeLayoutModel_1.AUTO_GROUP_COLUMN_ID__MULTI_PREFIX);
29
+ }
@@ -1138,11 +1138,6 @@ export declare const ADAPTABLE_METAMODEL: {
1138
1138
  };
1139
1139
  BadgePillStyle: {
1140
1140
  k: string;
1141
- p: {
1142
- n: string;
1143
- k: string;
1144
- o: boolean;
1145
- }[];
1146
1141
  };
1147
1142
  BadgeShape: {
1148
1143
  k: string;
@@ -3552,25 +3547,6 @@ export declare const ADAPTABLE_METAMODEL: {
3552
3547
  LayoutArray: {
3553
3548
  k: string;
3554
3549
  };
3555
- LayoutBase: {
3556
- k: string;
3557
- p: ({
3558
- n: string;
3559
- k: string;
3560
- o: boolean;
3561
- r?: undefined;
3562
- } | {
3563
- n: string;
3564
- k: string;
3565
- o: boolean;
3566
- r: string;
3567
- } | {
3568
- n: string;
3569
- k: string;
3570
- o?: undefined;
3571
- r?: undefined;
3572
- })[];
3573
- };
3574
3550
  LayoutChangedAction: {
3575
3551
  k: string;
3576
3552
  };