+ {popinDisplay !== AnalyticalTablePopinDisplay.WithoutHeader && column?.Header && (
+
+ {renderHeader()}:
+
+ )}
{popInInstanceProps && renderCell()}
);
diff --git a/packages/main/src/components/AnalyticalTable/defaults/Column/index.tsx b/packages/main/src/components/AnalyticalTable/defaults/Column/index.tsx
index 13748fb5e2a..17248a3c118 100644
--- a/packages/main/src/components/AnalyticalTable/defaults/Column/index.tsx
+++ b/packages/main/src/components/AnalyticalTable/defaults/Column/index.tsx
@@ -1,4 +1,6 @@
-import { VerticalAlign } from '../../../../enums/index.js';
+import { AnalyticalTablePopinDisplay } from '../../../../enums/AnalyticalTablePopinDisplay.js';
+import { VerticalAlign } from '../../../../enums/VerticalAlign.js';
+import type { AnalyticalTableColumnDefinition } from '../../types/index.js';
import { DefaultFilterComponent } from '../FilterComponent/index.js';
import { Cell } from './Cell.js';
import { ColumnHeaderModal } from './ColumnHeaderModal.js';
@@ -9,7 +11,7 @@ import { RepeatedValue } from './RepeatedValue.js';
export const DEFAULT_COLUMN_WIDTH = 60;
-export const DefaultColumn = {
+export const DefaultColumn: AnalyticalTableColumnDefinition = {
Filter: DefaultFilterComponent,
minWidth: DEFAULT_COLUMN_WIDTH,
vAlign: VerticalAlign.Middle,
@@ -18,5 +20,6 @@ export const DefaultColumn = {
Expandable: Expandable,
RepeatedValue: RepeatedValue,
PopIn: PopIn,
- Popover: ColumnHeaderModal
+ Popover: ColumnHeaderModal,
+ popinDisplay: AnalyticalTablePopinDisplay.Block
};
diff --git a/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts b/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts
index 9f776c03b69..527428e0a7e 100644
--- a/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts
+++ b/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts
@@ -1,20 +1,28 @@
-import type { ReactTableHooks, TableInstance } from '../types/index.js';
+import { AnalyticalTablePopinDisplay } from '../../../enums/AnalyticalTablePopinDisplay.js';
+import type { AnalyticalTableState, ReactTableHooks } from '../types/index.js';
-const popInVisibleColumnsDeps = (deps, { instance: { state } }: { instance: TableInstance }) => [
+const popInVisibleColumnsDeps: ReactTableHooks['visibleColumnsDeps'][0] = (deps, { instance: { state } }) => [
...deps,
state.tableClientWidth
];
-const popInVisibleColumns = (cols, { instance }: { instance: TableInstance }) => {
+const popInVisibleColumns: ReactTableHooks['visibleColumns'][0] = (cols, { instance }) => {
const { state, dispatch } = instance;
const tableClientWidth = state.isScrollable
? state?.tableClientWidth + 13 /*scrollbar width*/
: state?.tableClientWidth;
- const popInColumns = cols
- .filter((item) => item.responsivePopIn && tableClientWidth < item.responsiveMinWidth)
- .map((item) => ({ id: item.id ?? item.accessor, column: item }));
+ const popInColumns: AnalyticalTableState['popInColumns'] = cols
+ .filter((item) => {
+ return item.responsivePopIn && tableClientWidth < item.responsiveMinWidth;
+ })
+ .map((item) => ({
+ id: item.id ?? item.accessor,
+ column: item,
+ // initially visibleColumns don't include the defaults
+ popinDisplay: item.popinDisplay || AnalyticalTablePopinDisplay.Block
+ }));
dispatch({ type: 'SET_POPIN_COLUMNS', payload: popInColumns });
@@ -31,3 +39,5 @@ export const usePopIn = (hooks: ReactTableHooks) => {
hooks.visibleColumns.push(popInVisibleColumns);
hooks.visibleColumnsDeps.push(popInVisibleColumnsDeps);
};
+
+usePopIn.pluginName = 'usePopIn';
diff --git a/packages/main/src/components/AnalyticalTable/index.tsx b/packages/main/src/components/AnalyticalTable/index.tsx
index 7720619cf30..04bcee8baae 100644
--- a/packages/main/src/components/AnalyticalTable/index.tsx
+++ b/packages/main/src/components/AnalyticalTable/index.tsx
@@ -25,6 +25,7 @@ import {
useTable
} from 'react-table';
import {
+ AnalyticalTablePopinDisplay,
AnalyticalTableScaleWidthMode,
AnalyticalTableSelectionBehavior,
AnalyticalTableSelectionMode,
@@ -43,10 +44,10 @@ import {
LIST_NO_DATA,
NO_DATA_FILTERED,
SELECT_ALL,
- SELECT_PRESS_SPACE,
- UNSELECT_PRESS_SPACE,
SELECT_ALL_PRESS_SPACE,
- UNSELECT_ALL_PRESS_SPACE
+ SELECT_PRESS_SPACE,
+ UNSELECT_ALL_PRESS_SPACE,
+ UNSELECT_PRESS_SPACE
} from '../../i18n/i18n-defaults.js';
import { BusyIndicator } from '../../webComponents/BusyIndicator/index.js';
import { Text } from '../../webComponents/Text/index.js';
@@ -278,7 +279,7 @@ const AnalyticalTable = forwardRef