sevago-library 1.3.16 → 1.3.18

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.
@@ -9,4 +9,4 @@ export interface RowCollapsePartProps<R, RC> extends Omit<TableComponentProps<R>
9
9
  renderDefaultRow: (columnsOverride?: Column<R>[]) => React.ReactNode;
10
10
  renderActionsContent: (row: R, index: number) => React.ReactNode;
11
11
  }
12
- export declare function RowCollapsePart<R, RC>({ columns, row, indexRow, collapse, collapseTableWidth, renderDefaultRow, renderActionsContent, onDisabled, }: RowCollapsePartProps<R, RC>): JSX.Element;
12
+ export declare function RowCollapsePart<R, RC>({ columns, row, collapse, collapseTableWidth, renderDefaultRow, renderActionsContent, onDisabled, }: RowCollapsePartProps<R, RC>): JSX.Element;
@@ -1,8 +1,7 @@
1
1
  import { JSX } from 'react';
2
- import { Column } from '../table.interface';
2
+ import { Column, TableHeaderGroup } from '../table.interface';
3
3
  export interface TableHeadPartProps<R> {
4
4
  columns: Column<R>[];
5
+ headerGroups?: TableHeaderGroup[];
5
6
  }
6
- type TableHeadPartType = <R>(props: TableHeadPartProps<R>) => JSX.Element;
7
- export declare const TableHeadPart: TableHeadPartType;
8
- export {};
7
+ export declare function TableHeadPart<R>({ columns, headerGroups }: TableHeadPartProps<R>): JSX.Element;
@@ -1,8 +1,9 @@
1
1
  import { SxProps, Theme } from '@mui/material';
2
- import { default as React, ReactNode, JSX } from 'react';
3
- import { Column } from './table.interface';
2
+ import { default as React, JSX, ReactNode } from 'react';
3
+ import { Column, TableHeaderGroup } from './table.interface';
4
4
  export interface TableBaseProps<R> {
5
5
  columns: Column<R>[];
6
+ headerGroups?: TableHeaderGroup[];
6
7
  rows?: R[];
7
8
  loading?: boolean;
8
9
  indexLoadingRow?: number;
@@ -15,4 +15,4 @@ export interface TableRendererComponentProps<R> extends TableComponentProps<R> {
15
15
  tableRef?: React.RefObject<HTMLTableElement | null>;
16
16
  renderRow?: (params: TableRendererRowParams<R>) => React.ReactNode;
17
17
  }
18
- export declare function TableRendererComponent<R>({ loading, rows, columns: initialColumns, indexLoadingRow, isStickyActions, rowSx, rowKey, onClickSelectRow, enableTree, getChildren, onClickRow, onDisabled, selectedRows, onSelectRows, onSelectRow, onDeleteRow, onInfoRow, onCopyRow, onHistoryRow, onUpdateRow, getActionIcon, getRowMenu, extraActionCount, stickyHeader, tableSx, tableRef, renderRow, }: TableRendererComponentProps<R>): JSX.Element;
18
+ export declare function TableRendererComponent<R>({ loading, rows, columns: initialColumns, headerGroups, indexLoadingRow, isStickyActions, rowSx, rowKey, onClickSelectRow, enableTree, getChildren, onClickRow, onDisabled, selectedRows, onSelectRows, onSelectRow, onDeleteRow, onInfoRow, onCopyRow, onHistoryRow, onUpdateRow, getActionIcon, getRowMenu, extraActionCount, stickyHeader, tableSx, tableRef, renderRow, }: TableRendererComponentProps<R>): JSX.Element;
@@ -1,4 +1,4 @@
1
1
  import { JSX } from 'react';
2
2
  import { TableComponentProps } from './table.interface';
3
3
  export declare function TableComponent<R>(props: TableComponentProps<R>): JSX.Element;
4
- export type { TableComponentProps } from './table.interface';
4
+ export type { Column, TableComponentProps, TableHeaderGroup } from './table.interface';
@@ -7,6 +7,21 @@ type DemoRow = {
7
7
  role: string;
8
8
  status: string;
9
9
  };
10
+ type InventoryRow = {
11
+ id: string;
12
+ transactionDate: string;
13
+ transactionType: string;
14
+ documentCode: string;
15
+ batch: string;
16
+ inOutQty: string;
17
+ inOutCd: string;
18
+ inOutTotalWeight: string;
19
+ inOutDoneRate: string;
20
+ inOutWeight: string;
21
+ endingQty: string;
22
+ endingCd: string;
23
+ endingTotal: string;
24
+ };
10
25
  declare const meta: Meta<typeof TableComponent<DemoRow>>;
11
26
  export default meta;
12
27
  type Story = StoryObj<typeof TableComponent<DemoRow>>;
@@ -15,3 +30,4 @@ export declare const Loading: Story;
15
30
  export declare const Empty: Story;
16
31
  export declare const WithActionsAndSelect: Story;
17
32
  export declare const WithTotalRowsNoActions: Story;
33
+ export declare const WithGroupedHeader: StoryObj<typeof TableComponent<InventoryRow>>;
@@ -2,6 +2,8 @@ import { Palette, SxProps, Theme } from '@mui/material';
2
2
  import { Column } from './table.interface';
3
3
  export declare const BORDER_TABLE: string;
4
4
  export declare const DISABLED_DEFAULT: Record<"DISABLED_GET_ROW_MENU" | "HISTORY_GET_ROW_MENU" | "INFO" | "COPY" | "DELETE" | "UPDATE" | "SELECT" | "COLLAPSE" | "DISABLED_ALL_ACTIONS" | "DISABLED_ROW" | "DISABLED_CHECKBOX", boolean>;
5
+ export declare const getSxArray: (sx?: SxProps<Theme>) => SxProps<Theme>[];
6
+ export declare const mergeSxProps: (...sxList: (SxProps<Theme> | undefined)[]) => SxProps<Theme>;
5
7
  export declare const getStyleCell: (column: Column<any>, palette: Palette, disableRow?: boolean) => SxProps<Theme>;
6
8
  export declare const getStyleRow: (hasOnClick: boolean, palette: Palette, index: number, rowSx: {
7
9
  [key: number]: SxProps<Theme>;
@@ -1,4 +1,5 @@
1
1
  import { SxProps, Theme } from '@mui/material';
2
+ import { ReactNode } from 'react';
2
3
  import { TableActions } from './table.enum';
3
4
  export type OnClickRow<R> = (row: R, index: number) => void;
4
5
  export type OnDisabled<R> = (row: R, index: number) => Partial<Record<keyof typeof TableActions, boolean>>;
@@ -6,17 +7,20 @@ export type DisableRow = {
6
7
  columnId: string;
7
8
  compareWith: any;
8
9
  };
10
+ export type TableCellAlign = 'right' | 'left' | 'center';
9
11
  export interface Column<R> {
10
12
  id: string;
11
- label: string | React.ReactNode;
13
+ label: string | ReactNode;
12
14
  width?: number;
13
- align?: 'right' | 'left' | 'center';
14
- alignHead?: 'right' | 'left' | 'center';
15
- render?: (row: R, index: number) => React.ReactNode;
15
+ align?: TableCellAlign;
16
+ alignHead?: TableCellAlign;
17
+ render?: (row: R, index: number) => ReactNode;
16
18
  copyable?: boolean | {
17
19
  getValue?: (row: R, index: number) => string;
18
20
  };
19
21
  sx?: SxProps<Theme>;
22
+ headSx?: SxProps<Theme>;
23
+ cellSx?: SxProps<Theme>;
20
24
  isRowSpan?: boolean;
21
25
  stickyCss?: {
22
26
  borderLeft?: string;
@@ -26,9 +30,19 @@ export interface Column<R> {
26
30
  zIndex?: number;
27
31
  };
28
32
  }
33
+ export interface TableHeaderGroup {
34
+ id: string;
35
+ label: ReactNode;
36
+ columnIds: string[];
37
+ align?: TableCellAlign;
38
+ sx?: SxProps<Theme>;
39
+ childrenHeadSx?: SxProps<Theme>;
40
+ childrenCellSx?: SxProps<Theme>;
41
+ }
29
42
  export interface TableComponentProps<R> {
30
43
  loading?: boolean;
31
44
  columns: Column<R>[];
45
+ headerGroups?: TableHeaderGroup[];
32
46
  rows?: R[];
33
47
  indexLoadingRow?: number;
34
48
  isStickyActions?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sevago-library",
3
- "version": "1.3.16",
3
+ "version": "1.3.18",
4
4
  "description": "Sevago SSO Frontend Library - A comprehensive SSO solution with React components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",