@stella-source/stellasource-dsl 4.0.0 → 5.1.1
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/dist/cjs/index.js +108 -46
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/RadioButton/RadioButton.d.ts +4 -0
- package/dist/cjs/types/components/RadioButton/RadioButton.stories.d.ts +14 -0
- package/dist/cjs/types/components/RadioButton/styles.d.ts +38 -0
- package/dist/cjs/types/components/RadioButton/types.d.ts +13 -0
- package/dist/cjs/types/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
- package/dist/cjs/types/components/RadioButtonGroup/RadioButtonGroup.stories.d.ts +87 -0
- package/dist/cjs/types/components/RadioButtonGroup/styles.d.ts +8 -0
- package/dist/cjs/types/components/RadioButtonGroup/types.d.ts +22 -0
- package/dist/cjs/types/components/Table/Table.d.ts +1 -1
- package/dist/cjs/types/components/Table/Table.stories.d.ts +8 -0
- package/dist/cjs/types/components/Table/styles.d.ts +15 -3
- package/dist/cjs/types/components/Table/types.d.ts +4 -5
- package/dist/esm/index.esm.js +108 -46
- package/dist/esm/index.esm.js.map +1 -1
- package/dist/esm/types/components/RadioButton/RadioButton.d.ts +4 -0
- package/dist/esm/types/components/RadioButton/RadioButton.stories.d.ts +14 -0
- package/dist/esm/types/components/RadioButton/styles.d.ts +38 -0
- package/dist/esm/types/components/RadioButton/types.d.ts +13 -0
- package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
- package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.stories.d.ts +87 -0
- package/dist/esm/types/components/RadioButtonGroup/styles.d.ts +8 -0
- package/dist/esm/types/components/RadioButtonGroup/types.d.ts +22 -0
- package/dist/esm/types/components/Table/Table.d.ts +1 -1
- package/dist/esm/types/components/Table/Table.stories.d.ts +8 -0
- package/dist/esm/types/components/Table/styles.d.ts +15 -3
- package/dist/esm/types/components/Table/types.d.ts +4 -5
- package/dist/index.d.ts +5 -6
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: ({ id, name, value, className, label, checked, disabled, align, onChange, htmlProps, }: import("./types").RadioButtonProps) => React.JSX.Element;
|
|
5
|
+
tags: string[];
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
args: {
|
|
10
|
+
label: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export default _default;
|
|
14
|
+
export declare const Default: {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type RadioState = "selected" | "unselected" | "disabled";
|
|
2
|
+
interface RadioStateProps {
|
|
3
|
+
$state: RadioState;
|
|
4
|
+
}
|
|
5
|
+
export declare const RadioContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
6
|
+
export declare const RadioLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$state"> & RadioStateProps, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$state"> & RadioStateProps, never>>> & string;
|
|
7
|
+
export declare const RadioOuter: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never>>> & string;
|
|
8
|
+
export declare const RadioDot: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never>>> & string;
|
|
9
|
+
export declare const RadioInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>> & string;
|
|
10
|
+
declare const IconWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel"> & {
|
|
11
|
+
$disabled?: boolean;
|
|
12
|
+
$hasLabel?: boolean;
|
|
13
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel"> & {
|
|
14
|
+
$disabled?: boolean;
|
|
15
|
+
$hasLabel?: boolean;
|
|
16
|
+
}, never>>> & string;
|
|
17
|
+
declare const RadioButtonWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$align" | "$disabled" | "$fontSize"> & {
|
|
18
|
+
$disabled?: boolean;
|
|
19
|
+
$align?: "top" | "center";
|
|
20
|
+
$fontSize?: string | null;
|
|
21
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$align" | "$disabled" | "$fontSize"> & {
|
|
22
|
+
$disabled?: boolean;
|
|
23
|
+
$align?: "top" | "center";
|
|
24
|
+
$fontSize?: string | null;
|
|
25
|
+
}, never>>> & string;
|
|
26
|
+
declare const RadioIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel" | "$checked"> & {
|
|
27
|
+
$checked?: boolean;
|
|
28
|
+
$disabled?: boolean;
|
|
29
|
+
$hasLabel?: boolean;
|
|
30
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel" | "$checked"> & {
|
|
31
|
+
$checked?: boolean;
|
|
32
|
+
$disabled?: boolean;
|
|
33
|
+
$hasLabel?: boolean;
|
|
34
|
+
}, never>>> & string;
|
|
35
|
+
declare const HiddenInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, keyof import("react").ClassAttributes<HTMLInputElement> | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & import("react").ClassAttributes<HTMLInputElement> & import("react").InputHTMLAttributes<HTMLInputElement>, "type"> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, keyof import("react").ClassAttributes<HTMLInputElement> | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & import("react").ClassAttributes<HTMLInputElement> & import("react").InputHTMLAttributes<HTMLInputElement>, "type">>> & string;
|
|
36
|
+
declare const LabelGroup: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
37
|
+
declare const MainLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
|
|
38
|
+
export { RadioButtonWrapper, HiddenInput, LabelGroup, MainLabel, IconWrapper, RadioIcon, };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactElement } from "react";
|
|
2
|
+
export interface RadioButtonProps {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
value?: string;
|
|
6
|
+
label?: string | ReactElement;
|
|
7
|
+
checked?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
align?: "top" | "center";
|
|
11
|
+
onChange?: (id: string, value?: string, label?: string) => void;
|
|
12
|
+
htmlProps?: HTMLAttributes<HTMLInputElement>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RadioButtonGroupProps } from "./types";
|
|
3
|
+
declare const RadioButtonGroup: ({ name, id, options, onChange, defaultSelectedId, heading, required, tooltipText, disabled, className, isViewOnly, showError, errorMessage, }: RadioButtonGroupProps) => React.JSX.Element;
|
|
4
|
+
export default RadioButtonGroup;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CheckBoxFontSizeVariant } from "../CheckBox/types";
|
|
3
|
+
declare const _default: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: ({ name, id, options, onChange, defaultSelectedId, heading, required, tooltipText, disabled, className, isViewOnly, showError, errorMessage, }: import("./types").RadioButtonGroupProps) => React.JSX.Element;
|
|
6
|
+
tags: string[];
|
|
7
|
+
argTypes: {
|
|
8
|
+
heading: {
|
|
9
|
+
control: string;
|
|
10
|
+
};
|
|
11
|
+
disabled: {
|
|
12
|
+
control: string;
|
|
13
|
+
};
|
|
14
|
+
required: {
|
|
15
|
+
control: string;
|
|
16
|
+
};
|
|
17
|
+
tooltipText: {
|
|
18
|
+
control: string;
|
|
19
|
+
};
|
|
20
|
+
onChange: {
|
|
21
|
+
action: string;
|
|
22
|
+
};
|
|
23
|
+
isViewOnly: {
|
|
24
|
+
control: string;
|
|
25
|
+
};
|
|
26
|
+
showError: {
|
|
27
|
+
control: string;
|
|
28
|
+
};
|
|
29
|
+
errorMessage: {
|
|
30
|
+
control: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
args: {
|
|
34
|
+
name: string;
|
|
35
|
+
heading: string;
|
|
36
|
+
disabled: boolean;
|
|
37
|
+
required: boolean;
|
|
38
|
+
fontSize: CheckBoxFontSizeVariant;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export default _default;
|
|
42
|
+
type StoryArgs = {
|
|
43
|
+
name?: string;
|
|
44
|
+
heading?: string;
|
|
45
|
+
defaultSelectedId?: string;
|
|
46
|
+
disabled?: boolean;
|
|
47
|
+
required?: boolean;
|
|
48
|
+
tooltipText?: string;
|
|
49
|
+
fontSize?: string;
|
|
50
|
+
isViewOnly?: boolean;
|
|
51
|
+
showError?: boolean;
|
|
52
|
+
errorMessage?: string;
|
|
53
|
+
};
|
|
54
|
+
export declare const Default: {
|
|
55
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
56
|
+
};
|
|
57
|
+
export declare const WithDefaultSelected: {
|
|
58
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
59
|
+
};
|
|
60
|
+
export declare const AllDisabled: {
|
|
61
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
62
|
+
args: {
|
|
63
|
+
disabled: boolean;
|
|
64
|
+
defaultSelectedId: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export declare const RequiredWithTooltip: {
|
|
68
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
69
|
+
args: {
|
|
70
|
+
heading: string;
|
|
71
|
+
required: boolean;
|
|
72
|
+
showError: boolean;
|
|
73
|
+
disabled: boolean;
|
|
74
|
+
tooltipText: string;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
export declare const ViewOnlyMode: {
|
|
78
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
79
|
+
args: {
|
|
80
|
+
heading: string;
|
|
81
|
+
required: boolean;
|
|
82
|
+
showError: boolean;
|
|
83
|
+
isViewOnly: boolean;
|
|
84
|
+
defaultSelectedId: string;
|
|
85
|
+
tooltipText: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HelperTextProps } from "../HelperText/types";
|
|
2
|
+
declare const GroupWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>, never>>> & string;
|
|
3
|
+
declare const HeadingRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
4
|
+
declare const Legend: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLLegendElement>, HTMLLegendElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLLegendElement>, HTMLLegendElement>, never>>> & string;
|
|
5
|
+
declare const CustomHelperText: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<HelperTextProps, keyof HelperTextProps> & HelperTextProps, never> & Partial<Pick<import("styled-components").FastOmit<HelperTextProps, keyof HelperTextProps> & HelperTextProps, never>>> & string & Omit<({ id, className, affectLayout, text, type, htmlProps, }: HelperTextProps) => import("react").JSX.Element, keyof import("react").Component<any, {}, any>>;
|
|
6
|
+
declare const SelectedLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
|
|
7
|
+
declare const OptionsWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
8
|
+
export { GroupWrapper, HeadingRow, Legend, CustomHelperText, SelectedLabel, OptionsWrapper, };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
export interface RadioButtonGroupOption {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string | ReactElement;
|
|
5
|
+
value: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface RadioButtonGroupProps {
|
|
9
|
+
name: string;
|
|
10
|
+
id?: string;
|
|
11
|
+
options: RadioButtonGroupOption[];
|
|
12
|
+
onChange: (payload: RadioButtonGroupOption) => void;
|
|
13
|
+
defaultSelectedId?: string;
|
|
14
|
+
heading?: string;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
tooltipText?: string;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
isViewOnly?: boolean;
|
|
20
|
+
showError?: boolean;
|
|
21
|
+
errorMessage?: string;
|
|
22
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { TableProps } from "./types";
|
|
3
|
-
declare function Table<T>({ columns, data, isLoading, serverSide, onPageChange, onSortChange, onFilterChange, onRowSelect, onRowClick, rowStatuses, showSelection, showRowOptions, showPagination, variant, paginationDetails, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, }: TableProps<T>): React.JSX.Element;
|
|
3
|
+
declare function Table<T>({ columns, data, isLoading, serverSide, onPageChange, onSortChange, onFilterChange, onRowSelect, onRowClick, rowStatuses, showSelection, showRowOptions, showPagination, variant, paginationDetails, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, showExpandedRowToggle, renderExpandedRow, }: TableProps<T>): React.JSX.Element;
|
|
4
4
|
export default Table;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import TableComponent from "./Table";
|
|
2
3
|
import { TableProps } from "./types";
|
|
3
4
|
interface Person {
|
|
@@ -21,3 +22,10 @@ export declare const Table: {
|
|
|
21
22
|
variant: string;
|
|
22
23
|
};
|
|
23
24
|
};
|
|
25
|
+
export declare const ExpandedRows: {
|
|
26
|
+
args: {
|
|
27
|
+
id: string;
|
|
28
|
+
renderExpandedRow: (row: any) => React.JSX.Element | null;
|
|
29
|
+
showExpandedRowToggle: boolean;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -5,6 +5,7 @@ interface HeaderIconButtonProps {
|
|
|
5
5
|
}
|
|
6
6
|
interface PaginationProps {
|
|
7
7
|
$hasData?: boolean;
|
|
8
|
+
$isEmpty: boolean;
|
|
8
9
|
}
|
|
9
10
|
declare const HeaderCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, "$isPinnedLeft" | "$isPinnedRight" | "$columnInfo" | "$filterMenuOpen"> & {
|
|
10
11
|
$isPinnedLeft?: boolean;
|
|
@@ -33,7 +34,11 @@ declare const SortButton: import("styled-components/dist/types").IStyledComponen
|
|
|
33
34
|
as?: import("styled-components").WebTarget | undefined;
|
|
34
35
|
forwardedAs?: import("styled-components").WebTarget | undefined;
|
|
35
36
|
}, keyof HeaderIconButtonProps> & HeaderIconButtonProps, never>>> & string;
|
|
36
|
-
declare const HeaderRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("
|
|
37
|
+
declare const HeaderRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isEmpty"> & {
|
|
38
|
+
$isEmpty: boolean;
|
|
39
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isEmpty"> & {
|
|
40
|
+
$isEmpty: boolean;
|
|
41
|
+
}, never>>> & string;
|
|
37
42
|
declare const CellRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isClickable"> & {
|
|
38
43
|
$isClickable: boolean;
|
|
39
44
|
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isClickable"> & {
|
|
@@ -69,7 +74,7 @@ declare const LoadingShimmer: import("styled-components/dist/types").IStyledComp
|
|
|
69
74
|
$width?: string;
|
|
70
75
|
$height?: string;
|
|
71
76
|
}, never>>> & string;
|
|
72
|
-
declare const CustomPagination: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("../Pagination/types").PaginationProps,
|
|
77
|
+
declare const CustomPagination: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("../Pagination/types").PaginationProps, keyof PaginationProps> & PaginationProps, never> & Partial<Pick<import("styled-components").FastOmit<import("../Pagination/types").PaginationProps, keyof PaginationProps> & PaginationProps, never>>> & string & Omit<({ isLoading, rowsPerPage, totalRows, ariaLabel, onPageChange, startingPage, id, className, htmlProps, }: import("../Pagination/types").PaginationProps) => import("react").JSX.Element, keyof import("react").Component<any, {}, any>>;
|
|
73
78
|
declare const KebabAlign: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
74
79
|
declare const EmptyTableCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never>>> & string;
|
|
75
80
|
declare const EmptyTableSection: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "$size"> & {
|
|
@@ -80,6 +85,13 @@ declare const EmptyTableSection: import("styled-components/dist/types").IStyledC
|
|
|
80
85
|
declare const EmptyTableHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never>>> & string;
|
|
81
86
|
declare const EmptyTableSubHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never>>> & string;
|
|
82
87
|
declare const ClearFilterButtonRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
88
|
+
declare const ExpandedContentRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, never>>> & string;
|
|
89
|
+
declare const ExpandedContentCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never>>> & string;
|
|
90
|
+
declare const ExpandChevronButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$expanded"> & {
|
|
91
|
+
$expanded: boolean;
|
|
92
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$expanded"> & {
|
|
93
|
+
$expanded: boolean;
|
|
94
|
+
}, never>>> & string;
|
|
83
95
|
declare const ActionBar: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
84
96
|
declare const GlobalActionWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
85
|
-
export { HeaderCell, TableWrapper, TableWrapperScroll, StyledTable, CustomIconButton, SortButton, HeaderRow, FilterMenu, Checkbox, BodyCell, HeaderCellPosition, MenuButton, MenuItem, FilterBoxLabel, LoadingShimmer, FilterLabelTransparent, CustomPagination, CellRow, MenuItemGroup, KebabAlign, MenuItemOption, EmptyTableCell, EmptyTableSection, EmptyTableHeader, EmptyTableSubHeader, ClearFilterButtonRow, ActionBar, GlobalActionWrapper, };
|
|
97
|
+
export { HeaderCell, TableWrapper, TableWrapperScroll, StyledTable, CustomIconButton, SortButton, HeaderRow, FilterMenu, Checkbox, BodyCell, HeaderCellPosition, MenuButton, MenuItem, FilterBoxLabel, LoadingShimmer, FilterLabelTransparent, CustomPagination, CellRow, MenuItemGroup, KebabAlign, MenuItemOption, EmptyTableCell, EmptyTableSection, EmptyTableHeader, EmptyTableSubHeader, ClearFilterButtonRow, ActionBar, GlobalActionWrapper, ExpandedContentRow, ExpandedContentCell, ExpandChevronButton, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ColumnDef, ColumnFiltersState, Row, Table } from "@tanstack/react-table";
|
|
2
|
-
import { HTMLAttributes, ReactElement } from "react";
|
|
2
|
+
import React, { HTMLAttributes, ReactElement } from "react";
|
|
3
3
|
declare enum TableVariant {
|
|
4
4
|
PRIMARY = "Primary",
|
|
5
5
|
SECONDARY = "Secondary"
|
|
@@ -13,6 +13,8 @@ export interface TableProps<T> {
|
|
|
13
13
|
columns: ColumnDef<T, any>[];
|
|
14
14
|
data: T[];
|
|
15
15
|
isLoading?: boolean;
|
|
16
|
+
showExpandedRowToggle?: boolean;
|
|
17
|
+
renderExpandedRow?: (row: Row<T>) => React.ReactNode | null;
|
|
16
18
|
serverSide?: boolean;
|
|
17
19
|
onPageChange?: (page: number, pageSize: number) => void;
|
|
18
20
|
onSortChange?: (sort: {
|
|
@@ -54,10 +56,7 @@ export interface TableProps<T> {
|
|
|
54
56
|
value: unknown;
|
|
55
57
|
}[];
|
|
56
58
|
enableShowHide?: boolean;
|
|
57
|
-
globalActions?:
|
|
58
|
-
element: ReactElement;
|
|
59
|
-
onChange?: (table?: Table<T>) => void;
|
|
60
|
-
}[];
|
|
59
|
+
globalActions?: (table: Table<T>) => ReactElement;
|
|
61
60
|
}
|
|
62
61
|
export interface CustomColumnMeta {
|
|
63
62
|
headerAlign?: "left" | "right";
|
package/dist/esm/index.esm.js
CHANGED
|
@@ -22095,6 +22095,7 @@ const HeaderRow = styled.tr `
|
|
|
22095
22095
|
background-color: ${Styles.color.grey.pale};
|
|
22096
22096
|
min-height: 50px;
|
|
22097
22097
|
height: 50px;
|
|
22098
|
+
display: ${({ $isEmpty }) => ($isEmpty ? "none" : "table-row")};
|
|
22098
22099
|
`;
|
|
22099
22100
|
const CellRow = styled.tr `
|
|
22100
22101
|
min-height: 50px;
|
|
@@ -22308,6 +22309,7 @@ const LoadingShimmer = styled.div `
|
|
|
22308
22309
|
`;
|
|
22309
22310
|
const CustomPagination = styled(Pagination) `
|
|
22310
22311
|
border-top: ${({ $hasData }) => $hasData ? "0px" : `1px solid ${Styles.color.grey.light}`};
|
|
22312
|
+
display: ${({ $isEmpty }) => ($isEmpty ? "none" : "flex")};
|
|
22311
22313
|
`;
|
|
22312
22314
|
const KebabAlign = styled.div `
|
|
22313
22315
|
display: flex;
|
|
@@ -22324,12 +22326,8 @@ const EmptyTableSection = styled.section `
|
|
|
22324
22326
|
flex-direction: column;
|
|
22325
22327
|
justify-content: center;
|
|
22326
22328
|
align-items: center;
|
|
22327
|
-
position: absolute;
|
|
22328
22329
|
gap: 20px;
|
|
22329
|
-
|
|
22330
|
-
left: 0;
|
|
22331
|
-
right: 0;
|
|
22332
|
-
margin: 80px auto 0;
|
|
22330
|
+
margin: 0 auto;
|
|
22333
22331
|
`;
|
|
22334
22332
|
const EmptyTableHeader = styled.p `
|
|
22335
22333
|
display: flex;
|
|
@@ -22358,6 +22356,37 @@ const ClearFilterButtonRow = styled.div `
|
|
|
22358
22356
|
align-items: "center";
|
|
22359
22357
|
text-align: "center";
|
|
22360
22358
|
`;
|
|
22359
|
+
const ExpandedContentRow = styled.tr `
|
|
22360
|
+
background-color: ${Styles.color.grey.pale};
|
|
22361
|
+
`;
|
|
22362
|
+
const ExpandedContentCell = styled.td `
|
|
22363
|
+
padding: 12px 16px;
|
|
22364
|
+
border-bottom: 1px solid ${Styles.color.grey.light};
|
|
22365
|
+
background-color: ${Styles.color.grey.pale};
|
|
22366
|
+
`;
|
|
22367
|
+
const ExpandChevronButton = styled.button `
|
|
22368
|
+
display: flex;
|
|
22369
|
+
align-items: center;
|
|
22370
|
+
justify-content: center;
|
|
22371
|
+
background: none;
|
|
22372
|
+
border: none;
|
|
22373
|
+
cursor: pointer;
|
|
22374
|
+
padding: 4px;
|
|
22375
|
+
border-radius: 4px;
|
|
22376
|
+
transition:
|
|
22377
|
+
transform 0.2s ease,
|
|
22378
|
+
background-color 0.15s ease;
|
|
22379
|
+
|
|
22380
|
+
& > svg {
|
|
22381
|
+
transition: transform 0.2s ease;
|
|
22382
|
+
transform: ${({ $expanded }) => $expanded ? "rotate(90deg)" : "rotate(0deg)"};
|
|
22383
|
+
fill: ${Styles.color.grey.charcoal};
|
|
22384
|
+
}
|
|
22385
|
+
|
|
22386
|
+
&:hover {
|
|
22387
|
+
background-color: ${Styles.color.grey.light};
|
|
22388
|
+
}
|
|
22389
|
+
`;
|
|
22361
22390
|
const ActionBar = styled.div `
|
|
22362
22391
|
display: flex;
|
|
22363
22392
|
justify-content: space-between;
|
|
@@ -22598,7 +22627,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22598
22627
|
startingPage: 1,
|
|
22599
22628
|
rowsPerPage: 10,
|
|
22600
22629
|
totalRows: data.length,
|
|
22601
|
-
}, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, }) {
|
|
22630
|
+
}, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, showExpandedRowToggle = false, renderExpandedRow, }) {
|
|
22602
22631
|
const [rowSelection, setRowSelection] = useState({});
|
|
22603
22632
|
const [selectedRows] = useState({});
|
|
22604
22633
|
const [pageIndex, setPageIndex] = useState(paginationDetails?.startingPage);
|
|
@@ -22658,6 +22687,14 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22658
22687
|
});
|
|
22659
22688
|
const [rowStatusesState, setRowStatusesState] = useState(rowStatuses || {});
|
|
22660
22689
|
const [filterMenuOpen, setFilterMenuOpen] = useState({});
|
|
22690
|
+
const [expandedRows, setExpandedRows] = useState(new Set());
|
|
22691
|
+
const toggleRowExpanded = (rowId) => {
|
|
22692
|
+
setExpandedRows((prev) => {
|
|
22693
|
+
const next = new Set(prev);
|
|
22694
|
+
next.has(rowId) ? next.delete(rowId) : next.add(rowId);
|
|
22695
|
+
return next;
|
|
22696
|
+
});
|
|
22697
|
+
};
|
|
22661
22698
|
useEffect(() => {
|
|
22662
22699
|
setRowStatusesState(rowStatuses || {});
|
|
22663
22700
|
}, [rowStatuses]);
|
|
@@ -22731,6 +22768,18 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22731
22768
|
};
|
|
22732
22769
|
const enhancedColumns = useMemo$1(() => {
|
|
22733
22770
|
const cols = [];
|
|
22771
|
+
if (showExpandedRowToggle) {
|
|
22772
|
+
cols.push({
|
|
22773
|
+
id: "expand",
|
|
22774
|
+
header: "",
|
|
22775
|
+
cell: ({ row }) => !!renderExpandedRow?.(row) ? (a__default.createElement(ExpandChevronButton, { "$expanded": expandedRows.has(row.id), onClick: (e) => {
|
|
22776
|
+
e.stopPropagation();
|
|
22777
|
+
toggleRowExpanded(row.id);
|
|
22778
|
+
}, "aria-label": expandedRows.has(row.id) ? "Collapse row" : "Expand row" },
|
|
22779
|
+
a__default.createElement(StellaIcon, { iconName: "chevron-right", size: 14 }))) : (a__default.createElement(a__default.Fragment, null)),
|
|
22780
|
+
size: 36,
|
|
22781
|
+
});
|
|
22782
|
+
}
|
|
22734
22783
|
if (showSelection) {
|
|
22735
22784
|
cols.push({
|
|
22736
22785
|
id: "select",
|
|
@@ -22762,6 +22811,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22762
22811
|
onRowSelect,
|
|
22763
22812
|
showSelection,
|
|
22764
22813
|
showRowOptions,
|
|
22814
|
+
expandedRows,
|
|
22765
22815
|
]);
|
|
22766
22816
|
const table = useReactTable({
|
|
22767
22817
|
data: localData,
|
|
@@ -22867,7 +22917,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22867
22917
|
};
|
|
22868
22918
|
return (a__default.createElement(a__default.Fragment, null,
|
|
22869
22919
|
!isLoading && (a__default.createElement(ActionBar, null,
|
|
22870
|
-
a__default.createElement(GlobalActionWrapper, null, globalActions?.
|
|
22920
|
+
a__default.createElement(GlobalActionWrapper, null, globalActions?.(table)),
|
|
22871
22921
|
a__default.createElement(GlobalActionWrapper, null, enableShowHide && (a__default.createElement(a__default.Fragment, null,
|
|
22872
22922
|
a__default.createElement(IconButton, { ref: visibilityButtonRef, ariaLabel: "Column show hide button", variant: "tertiary", iconName: "table", onClick: () => {
|
|
22873
22923
|
const rect = visibilityButtonRef.current?.getBoundingClientRect();
|
|
@@ -22929,7 +22979,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22929
22979
|
}, key: index + "loading-row" }, Array.from({
|
|
22930
22980
|
length: 10,
|
|
22931
22981
|
}).map((_, i) => (a__default.createElement(LoadingShimmer, { key: `${i}-loading`, "$width": "110px", "$height": "25px" }))))))))) : (a__default.createElement(StyledTable, { id: `${id}-table`, ...htmlProps },
|
|
22932
|
-
a__default.createElement("thead", null, table.getHeaderGroups().map((headerGroup) => (a__default.createElement(HeaderRow, { key: headerGroup.id }, headerGroup.headers.map((header, i) => {
|
|
22982
|
+
a__default.createElement("thead", null, table.getHeaderGroups().map((headerGroup) => (a__default.createElement(HeaderRow, { key: headerGroup.id, "$isEmpty": table.getRowModel().rows.length === 0 }, headerGroup.headers.map((header, i) => {
|
|
22933
22983
|
return (a__default.createElement(TableHeaderCell, { key: header.id, serverSide: serverSide, header: header, filters: filters, sorting: sorting, scrollPosition: scrollState, onFilterMenuInteraction: (id, active) => {
|
|
22934
22984
|
setFilterMenuOpen((prev) => ({
|
|
22935
22985
|
...prev,
|
|
@@ -22945,45 +22995,57 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22945
22995
|
}))))),
|
|
22946
22996
|
a__default.createElement("tbody", null,
|
|
22947
22997
|
table.getRowModel().rows.length === 0 && (a__default.createElement(EmptyTableState, { header: emptyTableState?.header || "No data available.", subHeader: emptyTableState?.subHeader, showClearFilterButton: emptyTableState?.showClearFilterButton, onClearFilters: resetTable, colSpan: table.getVisibleLeafColumns().length, size: "large" })),
|
|
22948
|
-
table.getRowModel().rows.map((row) => (a__default.createElement(
|
|
22949
|
-
|
|
22950
|
-
|
|
22951
|
-
|
|
22952
|
-
|
|
22953
|
-
|
|
22954
|
-
|
|
22955
|
-
.
|
|
22956
|
-
|
|
22957
|
-
|
|
22958
|
-
|
|
22959
|
-
|
|
22960
|
-
|
|
22961
|
-
|
|
22962
|
-
|
|
22963
|
-
|
|
22964
|
-
|
|
22965
|
-
|
|
22966
|
-
|
|
22967
|
-
|
|
22998
|
+
table.getRowModel().rows.map((row) => (a__default.createElement(a__default.Fragment, { key: row.id },
|
|
22999
|
+
a__default.createElement(CellRow, { onClick: () => {
|
|
23000
|
+
if (!showExpandedRowToggle &&
|
|
23001
|
+
!!renderExpandedRow?.(row))
|
|
23002
|
+
toggleRowExpanded(row.id);
|
|
23003
|
+
onRowClick?.(row.original);
|
|
23004
|
+
}, "$isClickable": !!onRowClick }, row.getVisibleCells().map((cell) => {
|
|
23005
|
+
const value = flexRender(cell.column.columnDef.cell, {
|
|
23006
|
+
...cell.getContext(),
|
|
23007
|
+
localValue: rowState[row.id]?.[cell.column.id],
|
|
23008
|
+
onLocalChange: (val) => handleInputChange(row.id, cell.column.id, val),
|
|
23009
|
+
});
|
|
23010
|
+
const meta = cell.column.columnDef
|
|
23011
|
+
.meta;
|
|
23012
|
+
return (a__default.createElement(BodyCell, { key: cell.id, style: {
|
|
23013
|
+
width: cell.column.getSize(),
|
|
23014
|
+
textAlign: meta?.cellAlign ||
|
|
23015
|
+
(typeof cell.getValue() === "number" ||
|
|
23016
|
+
meta?.dataType === "number"
|
|
23017
|
+
? "right"
|
|
23018
|
+
: "left"),
|
|
23019
|
+
boxShadow: scrollState.atLeft &&
|
|
23020
|
+
cell.column.getIsPinned() === "left"
|
|
22968
23021
|
? "none"
|
|
22969
|
-
:
|
|
22970
|
-
|
|
22971
|
-
|
|
22972
|
-
|
|
22973
|
-
|
|
22974
|
-
|
|
22975
|
-
|
|
22976
|
-
|
|
22977
|
-
|
|
22978
|
-
|
|
22979
|
-
|
|
22980
|
-
|
|
22981
|
-
|
|
22982
|
-
|
|
22983
|
-
|
|
22984
|
-
|
|
22985
|
-
|
|
22986
|
-
|
|
23022
|
+
: scrollState.atRight &&
|
|
23023
|
+
cell.column.getIsPinned() === "right"
|
|
23024
|
+
? "none"
|
|
23025
|
+
: undefined,
|
|
23026
|
+
backgroundColor: table
|
|
23027
|
+
.getSelectedRowModel()
|
|
23028
|
+
.rows.find((r) => r.id === row.id)
|
|
23029
|
+
? "#EBF0FA"
|
|
23030
|
+
: rowStatusesState?.[row.id] ===
|
|
23031
|
+
"action-pending"
|
|
23032
|
+
? "#FFFDEB"
|
|
23033
|
+
: rowStatusesState?.[row.id] === "completed"
|
|
23034
|
+
? "#F5F5F5"
|
|
23035
|
+
: "",
|
|
23036
|
+
}, "$isPinnedLeft": cell.column.getIsPinned() === "left", "$isPinnedRight": cell.column.getIsPinned() === "right", "$columnInfo": cell.column, "$isLastRow": serverSide
|
|
23037
|
+
? row.index ===
|
|
23038
|
+
table.getRowModel().rows.length - 1
|
|
23039
|
+
: row.index -
|
|
23040
|
+
pagination.pageSize *
|
|
23041
|
+
pagination.pageIndex ===
|
|
23042
|
+
table.getRowModel().rows.length - 1 }, value));
|
|
23043
|
+
})),
|
|
23044
|
+
expandedRows.has(row.id) &&
|
|
23045
|
+
renderExpandedRow &&
|
|
23046
|
+
!!renderExpandedRow(row) && (a__default.createElement(ExpandedContentRow, null,
|
|
23047
|
+
a__default.createElement(ExpandedContentCell, { colSpan: table.getVisibleLeafColumns().length }, renderExpandedRow(row))))))))))),
|
|
23048
|
+
showPagination && paginationDetails?.totalRows > 0 && (a__default.createElement(CustomPagination, { "$hasData": table.getRowModel().rows.length > 0, "$isEmpty": table.getRowModel().rows.length === 0, totalRows: serverSide ? totalData : table.getFilteredRowModel().rows.length, isLoading: isLoading, rowsPerPage: paginationDetails?.rowsPerPage, startingPage: pageIndex, onPageChange: (page, pageSize) => {
|
|
22987
23049
|
table.toggleAllRowsSelected(false);
|
|
22988
23050
|
setPageIndex(page);
|
|
22989
23051
|
setPagination((prev) => ({
|