@gobolt/genesis 0.4.17 → 0.4.19
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/components/OverflowMenu/OverflowMenu.d.ts +1 -1
- package/dist/components/Table/InfiniteScrollTable/InfiniteScrollTable.d.ts +1 -1
- package/dist/components/Table/Table.d.ts +3 -1
- package/dist/components/TableWithControls/TableWithControls.d.ts +3 -1
- package/dist/index.cjs +273 -203
- package/dist/index.js +273 -203
- package/package.json +1 -1
|
@@ -13,5 +13,5 @@ export interface OverflowMenuProps {
|
|
|
13
13
|
style?: React.CSSProperties;
|
|
14
14
|
onItemClick?: (item: OverflowMenuItemProps) => void;
|
|
15
15
|
}
|
|
16
|
-
declare const OverflowMenu: React.
|
|
16
|
+
declare const OverflowMenu: React.ForwardRefExoticComponent<OverflowMenuProps & React.RefAttributes<HTMLDivElement>>;
|
|
17
17
|
export default OverflowMenu;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InfiniteScrollTableProps } from './types';
|
|
2
|
-
declare const InfiniteScrollTable: <T>({ columns: initialColumns, fetchService, scrollHeight, scrollWidth, onChange, }: InfiniteScrollTableProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const InfiniteScrollTable: <T>({ columns: initialColumns, fetchService, scrollHeight, scrollWidth, onChange, rowSelection, onRowClick, onRowSelectionChange, onDataChange, }: InfiniteScrollTableProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default InfiniteScrollTable;
|
|
@@ -43,6 +43,8 @@ export interface TableProps<T extends Record<string, any>> {
|
|
|
43
43
|
};
|
|
44
44
|
onRowClick?: (record: T, index: number, event: React.MouseEvent) => void;
|
|
45
45
|
onChange?: (pagination: TablePaginationConfig, filters: Record<string, any>, sorter: SorterResult<T> | SorterResult<T>[], extra: any) => void;
|
|
46
|
+
onRowSelectionChange?: (setSelectedRowKeys: (keys: React.Key[]) => void) => void;
|
|
47
|
+
onDataChange?: (data: T[]) => void;
|
|
46
48
|
loading?: boolean;
|
|
47
49
|
pagination?: (TablePaginationConfig & {
|
|
48
50
|
paginationStyle?: PaginationStyle;
|
|
@@ -79,5 +81,5 @@ export type SorterResult<T> = {
|
|
|
79
81
|
field?: keyof T | string | React.Key | readonly React.Key[];
|
|
80
82
|
columnKey?: React.Key;
|
|
81
83
|
};
|
|
82
|
-
declare function Table<T extends Record<string, any>>({ columns, dataSource, rowKey, size, onChange, rowSelection, onRowClick, pagination, isMainContentCell, isInfiniteScroll, infiniteScrollConfig, enableRowKeyValidation, onRowKeyError, ...rest }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
declare function Table<T extends Record<string, any>>({ columns, dataSource, rowKey, size, onChange, rowSelection, onRowClick, onRowSelectionChange, onDataChange, pagination, isMainContentCell, isInfiniteScroll, infiniteScrollConfig, enableRowKeyValidation, onRowKeyError, ...rest }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
83
85
|
export default Table;
|
|
@@ -14,6 +14,8 @@ export interface TableWithControlsProps {
|
|
|
14
14
|
infiniteScrollConfig?: InfiniteScrollConfig<Record<string, any>>;
|
|
15
15
|
paginationStyle?: PaginationStyle;
|
|
16
16
|
onRowClick?: (record: Record<string, any>, index: number, event: React.MouseEvent) => void;
|
|
17
|
+
onRowSelectionChange?: (setSelectedRowKeys: (keys: React.Key[]) => void) => void;
|
|
18
|
+
onDataChange?: (data: Record<string, any>[]) => void;
|
|
17
19
|
}
|
|
18
|
-
declare const TableWithControls: ({ tableData, tableControlsData, onChange, onRowClick, tableType, isInfiniteScroll, infiniteScrollConfig, paginationStyle, }: TableWithControlsProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
declare const TableWithControls: ({ tableData, tableControlsData, onChange, onRowClick, onRowSelectionChange, onDataChange, tableType, isInfiniteScroll, infiniteScrollConfig, paginationStyle, }: TableWithControlsProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
21
|
export default TableWithControls;
|
package/dist/index.cjs
CHANGED
|
@@ -80966,112 +80966,136 @@ const OverflowMenuItem = ({ children: children2, onClick }) => {
|
|
|
80966
80966
|
const DefaultTrigger = () => {
|
|
80967
80967
|
return /* @__PURE__ */ jsxRuntime.jsx(Button$1, { isIconButton: true, themeType: "secondary", size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(HiDotsHorizontal, {}) });
|
|
80968
80968
|
};
|
|
80969
|
-
const OverflowMenu = (
|
|
80970
|
-
|
|
80971
|
-
|
|
80972
|
-
|
|
80973
|
-
|
|
80974
|
-
|
|
80975
|
-
|
|
80976
|
-
|
|
80977
|
-
|
|
80978
|
-
|
|
80979
|
-
|
|
80980
|
-
|
|
80981
|
-
|
|
80982
|
-
|
|
80983
|
-
|
|
80984
|
-
|
|
80985
|
-
|
|
80986
|
-
|
|
80987
|
-
|
|
80988
|
-
|
|
80989
|
-
|
|
80990
|
-
|
|
80991
|
-
onOpenChange
|
|
80992
|
-
|
|
80993
|
-
|
|
80994
|
-
|
|
80995
|
-
|
|
80996
|
-
|
|
80997
|
-
|
|
80998
|
-
|
|
80999
|
-
|
|
81000
|
-
|
|
81001
|
-
const handleClickOutside = React.useCallback(
|
|
81002
|
-
(event) => {
|
|
81003
|
-
if (triggerRef.current && menuRef.current && !triggerRef.current.contains(event.target) && !menuRef.current.contains(event.target)) {
|
|
81004
|
-
handleOpenChange(false);
|
|
81005
|
-
}
|
|
81006
|
-
},
|
|
81007
|
-
[handleOpenChange]
|
|
81008
|
-
);
|
|
81009
|
-
React.useEffect(() => {
|
|
81010
|
-
if (isOpen) {
|
|
81011
|
-
const timer2 = setTimeout(() => {
|
|
81012
|
-
setIsAnimating(true);
|
|
81013
|
-
}, 10);
|
|
81014
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
81015
|
-
return () => {
|
|
81016
|
-
clearTimeout(timer2);
|
|
81017
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
81018
|
-
};
|
|
81019
|
-
} else {
|
|
81020
|
-
setIsAnimating(false);
|
|
81021
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
81022
|
-
}
|
|
81023
|
-
}, [isOpen, handleClickOutside]);
|
|
81024
|
-
const getMenuStyle = React.useMemo(() => {
|
|
81025
|
-
const baseStyle = {
|
|
81026
|
-
position: "absolute",
|
|
81027
|
-
zIndex: 1e3,
|
|
81028
|
-
...style2
|
|
80969
|
+
const OverflowMenu = React.forwardRef(
|
|
80970
|
+
({
|
|
80971
|
+
items,
|
|
80972
|
+
children: children2,
|
|
80973
|
+
trigger = /* @__PURE__ */ jsxRuntime.jsx(DefaultTrigger, {}),
|
|
80974
|
+
isOpen: controlledIsOpen,
|
|
80975
|
+
onOpenChange,
|
|
80976
|
+
placement = "bottom",
|
|
80977
|
+
alignment = "left",
|
|
80978
|
+
offset: offset2 = 8,
|
|
80979
|
+
className,
|
|
80980
|
+
style: style2,
|
|
80981
|
+
onItemClick
|
|
80982
|
+
}, ref) => {
|
|
80983
|
+
const [internalIsOpen, setInternalIsOpen] = React.useState(false);
|
|
80984
|
+
const [isAnimating, setIsAnimating] = React.useState(false);
|
|
80985
|
+
const triggerRef = React.useRef(null);
|
|
80986
|
+
const menuRef = React.useRef(null);
|
|
80987
|
+
const { theme } = useGenesis();
|
|
80988
|
+
const isOpen = controlledIsOpen === void 0 ? internalIsOpen : controlledIsOpen;
|
|
80989
|
+
const handleOpenChange = React.useCallback(
|
|
80990
|
+
(open) => {
|
|
80991
|
+
if (onOpenChange) {
|
|
80992
|
+
onOpenChange(open);
|
|
80993
|
+
} else {
|
|
80994
|
+
setInternalIsOpen(open);
|
|
80995
|
+
}
|
|
80996
|
+
},
|
|
80997
|
+
[onOpenChange]
|
|
80998
|
+
);
|
|
80999
|
+
const handleTriggerClick = () => {
|
|
81000
|
+
handleOpenChange(!isOpen);
|
|
81029
81001
|
};
|
|
81030
|
-
|
|
81031
|
-
|
|
81032
|
-
|
|
81033
|
-
|
|
81034
|
-
|
|
81035
|
-
|
|
81036
|
-
|
|
81037
|
-
|
|
81038
|
-
|
|
81039
|
-
|
|
81040
|
-
|
|
81041
|
-
|
|
81042
|
-
|
|
81043
|
-
|
|
81044
|
-
|
|
81045
|
-
|
|
81046
|
-
|
|
81047
|
-
...baseStyle,
|
|
81048
|
-
top: 0,
|
|
81049
|
-
right: `calc(100% + ${offset2}px)`,
|
|
81050
|
-
...alignment === "right" ? { bottom: 0 } : {}
|
|
81051
|
-
};
|
|
81052
|
-
}
|
|
81053
|
-
case "right": {
|
|
81054
|
-
return {
|
|
81055
|
-
...baseStyle,
|
|
81056
|
-
top: 0,
|
|
81057
|
-
left: `calc(100% + ${offset2}px)`,
|
|
81058
|
-
...alignment === "right" ? { bottom: 0 } : {}
|
|
81002
|
+
const handleClickOutside = React.useCallback(
|
|
81003
|
+
(event) => {
|
|
81004
|
+
if (triggerRef.current && menuRef.current && !triggerRef.current.contains(event.target) && !menuRef.current.contains(event.target)) {
|
|
81005
|
+
handleOpenChange(false);
|
|
81006
|
+
}
|
|
81007
|
+
},
|
|
81008
|
+
[handleOpenChange]
|
|
81009
|
+
);
|
|
81010
|
+
React.useEffect(() => {
|
|
81011
|
+
if (isOpen) {
|
|
81012
|
+
const timer2 = setTimeout(() => {
|
|
81013
|
+
setIsAnimating(true);
|
|
81014
|
+
}, 10);
|
|
81015
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
81016
|
+
return () => {
|
|
81017
|
+
clearTimeout(timer2);
|
|
81018
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
81059
81019
|
};
|
|
81020
|
+
} else {
|
|
81021
|
+
setIsAnimating(false);
|
|
81022
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
81060
81023
|
}
|
|
81061
|
-
|
|
81062
|
-
|
|
81024
|
+
}, [isOpen, handleClickOutside]);
|
|
81025
|
+
const getMenuStyle = React.useMemo(() => {
|
|
81026
|
+
const baseStyle = {
|
|
81027
|
+
position: "absolute",
|
|
81028
|
+
zIndex: 1e3,
|
|
81029
|
+
...style2
|
|
81030
|
+
};
|
|
81031
|
+
switch (placement) {
|
|
81032
|
+
case "bottom": {
|
|
81033
|
+
return {
|
|
81034
|
+
...baseStyle,
|
|
81035
|
+
top: `calc(100% + ${offset2}px)`,
|
|
81036
|
+
...alignment === "right" ? { right: 0 } : { left: 0 }
|
|
81037
|
+
};
|
|
81038
|
+
}
|
|
81039
|
+
case "top": {
|
|
81040
|
+
return {
|
|
81041
|
+
...baseStyle,
|
|
81042
|
+
bottom: `calc(100% + ${offset2}px)`,
|
|
81043
|
+
...alignment === "right" ? { right: 0 } : { left: 0 }
|
|
81044
|
+
};
|
|
81045
|
+
}
|
|
81046
|
+
case "left": {
|
|
81047
|
+
return {
|
|
81048
|
+
...baseStyle,
|
|
81049
|
+
top: 0,
|
|
81050
|
+
right: `calc(100% + ${offset2}px)`,
|
|
81051
|
+
...alignment === "right" ? { bottom: 0 } : {}
|
|
81052
|
+
};
|
|
81053
|
+
}
|
|
81054
|
+
case "right": {
|
|
81055
|
+
return {
|
|
81056
|
+
...baseStyle,
|
|
81057
|
+
top: 0,
|
|
81058
|
+
left: `calc(100% + ${offset2}px)`,
|
|
81059
|
+
...alignment === "right" ? { bottom: 0 } : {}
|
|
81060
|
+
};
|
|
81061
|
+
}
|
|
81062
|
+
default: {
|
|
81063
|
+
return baseStyle;
|
|
81064
|
+
}
|
|
81063
81065
|
}
|
|
81066
|
+
}, [placement, alignment, offset2, style2]);
|
|
81067
|
+
const handleItemClick = React.useCallback(
|
|
81068
|
+
(item) => {
|
|
81069
|
+
onItemClick?.(item);
|
|
81070
|
+
handleOpenChange(false);
|
|
81071
|
+
},
|
|
81072
|
+
[onItemClick, handleOpenChange]
|
|
81073
|
+
);
|
|
81074
|
+
if (items && items.length > 0) {
|
|
81075
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(OverflowMenuWrapper, { ref, children: [
|
|
81076
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: triggerRef, onClick: handleTriggerClick, children: trigger }),
|
|
81077
|
+
isOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
81078
|
+
OverflowMenuContainer,
|
|
81079
|
+
{
|
|
81080
|
+
ref: menuRef,
|
|
81081
|
+
theme,
|
|
81082
|
+
className,
|
|
81083
|
+
style: getMenuStyle,
|
|
81084
|
+
$isAnimating: isAnimating,
|
|
81085
|
+
$placement: placement,
|
|
81086
|
+
children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
81087
|
+
OverflowMenuItem,
|
|
81088
|
+
{
|
|
81089
|
+
...item,
|
|
81090
|
+
onClick: () => handleItemClick(item)
|
|
81091
|
+
},
|
|
81092
|
+
item.id
|
|
81093
|
+
))
|
|
81094
|
+
}
|
|
81095
|
+
)
|
|
81096
|
+
] });
|
|
81064
81097
|
}
|
|
81065
|
-
|
|
81066
|
-
const handleItemClick = React.useCallback(
|
|
81067
|
-
(item) => {
|
|
81068
|
-
onItemClick?.(item);
|
|
81069
|
-
handleOpenChange(false);
|
|
81070
|
-
},
|
|
81071
|
-
[onItemClick, handleOpenChange]
|
|
81072
|
-
);
|
|
81073
|
-
if (items && items.length > 0) {
|
|
81074
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(OverflowMenuWrapper, { children: [
|
|
81098
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(OverflowMenuWrapper, { ref, children: [
|
|
81075
81099
|
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: triggerRef, onClick: handleTriggerClick, children: trigger }),
|
|
81076
81100
|
isOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
81077
81101
|
OverflowMenuContainer,
|
|
@@ -81082,34 +81106,13 @@ const OverflowMenu = ({
|
|
|
81082
81106
|
style: getMenuStyle,
|
|
81083
81107
|
$isAnimating: isAnimating,
|
|
81084
81108
|
$placement: placement,
|
|
81085
|
-
children:
|
|
81086
|
-
OverflowMenuItem,
|
|
81087
|
-
{
|
|
81088
|
-
...item,
|
|
81089
|
-
onClick: () => handleItemClick(item)
|
|
81090
|
-
},
|
|
81091
|
-
item.id
|
|
81092
|
-
))
|
|
81109
|
+
children: children2
|
|
81093
81110
|
}
|
|
81094
81111
|
)
|
|
81095
81112
|
] });
|
|
81096
81113
|
}
|
|
81097
|
-
|
|
81098
|
-
|
|
81099
|
-
isOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
81100
|
-
OverflowMenuContainer,
|
|
81101
|
-
{
|
|
81102
|
-
ref: menuRef,
|
|
81103
|
-
theme,
|
|
81104
|
-
className,
|
|
81105
|
-
style: getMenuStyle,
|
|
81106
|
-
$isAnimating: isAnimating,
|
|
81107
|
-
$placement: placement,
|
|
81108
|
-
children: children2
|
|
81109
|
-
}
|
|
81110
|
-
)
|
|
81111
|
-
] });
|
|
81112
|
-
};
|
|
81114
|
+
);
|
|
81115
|
+
OverflowMenu.displayName = "OverflowMenu";
|
|
81113
81116
|
const getGenesisClass$6 = (theme) => ``;
|
|
81114
81117
|
const Popover$1 = styled(Popconfirm)`
|
|
81115
81118
|
${({ theme }) => {
|
|
@@ -84482,12 +84485,37 @@ const InfiniteScrollTable = ({
|
|
|
84482
84485
|
fetchService,
|
|
84483
84486
|
scrollHeight = 600,
|
|
84484
84487
|
scrollWidth = 1300,
|
|
84485
|
-
onChange
|
|
84488
|
+
onChange,
|
|
84489
|
+
rowSelection,
|
|
84490
|
+
onRowClick,
|
|
84491
|
+
onRowSelectionChange,
|
|
84492
|
+
onDataChange
|
|
84486
84493
|
}) => {
|
|
84487
84494
|
const observer = React.useRef();
|
|
84488
84495
|
const [scrollableNode, setScrollableNode] = React.useState(
|
|
84489
84496
|
null
|
|
84490
84497
|
);
|
|
84498
|
+
const [selectedRowKeys, setSelectedRowKeys] = React.useState([]);
|
|
84499
|
+
const [selectedRows, setSelectedRows] = React.useState([]);
|
|
84500
|
+
const handleRowSelection = React.useCallback(
|
|
84501
|
+
(newSelectedRowKeys, newSelectedRows) => {
|
|
84502
|
+
setSelectedRowKeys(newSelectedRowKeys);
|
|
84503
|
+
setSelectedRows(newSelectedRows);
|
|
84504
|
+
if (rowSelection?.onChange) {
|
|
84505
|
+
rowSelection.onChange(newSelectedRowKeys, newSelectedRows);
|
|
84506
|
+
}
|
|
84507
|
+
},
|
|
84508
|
+
[rowSelection]
|
|
84509
|
+
);
|
|
84510
|
+
const defaultRowSelection2 = {
|
|
84511
|
+
type: "checkbox",
|
|
84512
|
+
selectedRowKeys,
|
|
84513
|
+
onChange: handleRowSelection,
|
|
84514
|
+
getCheckboxProps: (record) => ({
|
|
84515
|
+
name: record.id || record.key || String(record)
|
|
84516
|
+
})
|
|
84517
|
+
};
|
|
84518
|
+
const finalRowSelection = rowSelection || defaultRowSelection2;
|
|
84491
84519
|
const tableContainerRef = React.useCallback((node2) => {
|
|
84492
84520
|
if (node2 !== null) {
|
|
84493
84521
|
const scrollNode = node2.querySelector(".ant-table-body");
|
|
@@ -84541,16 +84569,40 @@ const InfiniteScrollTable = ({
|
|
|
84541
84569
|
const dataSource = data?.pages.flatMap((page) => page.docs) ?? [];
|
|
84542
84570
|
const totalDocs = data?.pages?.[0]?.totalDocs ?? 0;
|
|
84543
84571
|
React.useEffect(() => {
|
|
84544
|
-
if (
|
|
84572
|
+
if (onRowSelectionChange) {
|
|
84573
|
+
const wrappedSetSelectedRowKeys = (keys2) => {
|
|
84574
|
+
setSelectedRowKeys(keys2);
|
|
84575
|
+
};
|
|
84576
|
+
onRowSelectionChange(wrappedSetSelectedRowKeys);
|
|
84577
|
+
}
|
|
84578
|
+
}, [onRowSelectionChange]);
|
|
84579
|
+
const dataSentRef = React.useRef(false);
|
|
84580
|
+
React.useEffect(() => {
|
|
84581
|
+
if (onDataChange && dataSource.length > 0 && !dataSentRef.current) {
|
|
84582
|
+
onDataChange(dataSource);
|
|
84583
|
+
dataSentRef.current = true;
|
|
84584
|
+
}
|
|
84585
|
+
}, [dataSource, onDataChange]);
|
|
84586
|
+
const prevValuesRef = React.useRef(null);
|
|
84587
|
+
const onChangeRef = React.useRef(onChange);
|
|
84588
|
+
React.useEffect(() => {
|
|
84589
|
+
onChangeRef.current = onChange;
|
|
84590
|
+
}, [onChange]);
|
|
84591
|
+
React.useEffect(() => {
|
|
84592
|
+
if (onChangeRef.current && data && dataSource.length > 0) {
|
|
84545
84593
|
const dataChangeEvent = {
|
|
84546
|
-
totalPages: data
|
|
84547
|
-
currentPage: data
|
|
84594
|
+
totalPages: data.pages?.length ?? 0,
|
|
84595
|
+
currentPage: data.pages?.[0]?.page ?? 0,
|
|
84548
84596
|
resultsShown: dataSource.length,
|
|
84549
84597
|
totalResults: totalDocs
|
|
84550
84598
|
};
|
|
84551
|
-
|
|
84599
|
+
const prevValues = prevValuesRef.current;
|
|
84600
|
+
if (!prevValues || prevValues.resultsShown !== dataChangeEvent.resultsShown || prevValues.totalResults !== dataChangeEvent.totalResults) {
|
|
84601
|
+
prevValuesRef.current = dataChangeEvent;
|
|
84602
|
+
onChangeRef.current(dataChangeEvent);
|
|
84603
|
+
}
|
|
84552
84604
|
}
|
|
84553
|
-
}, [data]);
|
|
84605
|
+
}, [data?.pages?.length, dataSource.length, totalDocs]);
|
|
84554
84606
|
if (status === "pending") {
|
|
84555
84607
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84556
84608
|
"div",
|
|
@@ -84571,79 +84623,73 @@ const InfiniteScrollTable = ({
|
|
|
84571
84623
|
}
|
|
84572
84624
|
);
|
|
84573
84625
|
}
|
|
84574
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84575
|
-
"div",
|
|
84576
|
-
|
|
84577
|
-
style: {
|
|
84578
|
-
backgroundColor: "white",
|
|
84579
|
-
padding: "24px",
|
|
84580
|
-
borderRadius: "8px",
|
|
84581
|
-
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.1)",
|
|
84582
|
-
marginBottom: "24px"
|
|
84583
|
-
},
|
|
84584
|
-
ref: tableContainerRef,
|
|
84585
|
-
children: [
|
|
84586
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { position: "relative" }, children: [
|
|
84587
|
-
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
84626
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: tableContainerRef, children: [
|
|
84627
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { position: "relative" }, ref: tableContainerRef, children: [
|
|
84628
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
84588
84629
|
.infinite-scroll-table .ant-pagination {
|
|
84589
84630
|
display: none !important;
|
|
84590
84631
|
}
|
|
84591
84632
|
` }),
|
|
84592
|
-
|
|
84593
|
-
|
|
84594
|
-
|
|
84595
|
-
|
|
84596
|
-
|
|
84597
|
-
|
|
84598
|
-
|
|
84599
|
-
|
|
84600
|
-
|
|
84601
|
-
|
|
84602
|
-
|
|
84603
|
-
|
|
84604
|
-
|
|
84605
|
-
|
|
84606
|
-
|
|
84607
|
-
|
|
84608
|
-
|
|
84609
|
-
|
|
84610
|
-
}
|
|
84633
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "infinite-scroll-table", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
84634
|
+
ForwardTable,
|
|
84635
|
+
{
|
|
84636
|
+
dataSource,
|
|
84637
|
+
columns: resizableColumns,
|
|
84638
|
+
components: { header: { cell: ResizableTitle } },
|
|
84639
|
+
rowKey: "id",
|
|
84640
|
+
pagination: false,
|
|
84641
|
+
showSorterTooltip: false,
|
|
84642
|
+
size: "small",
|
|
84643
|
+
scroll: { y: scrollHeight, x: scrollWidth },
|
|
84644
|
+
onChange: () => {
|
|
84645
|
+
},
|
|
84646
|
+
rowSelection: finalRowSelection,
|
|
84647
|
+
onRow: (record, index2) => {
|
|
84648
|
+
const rowProps = {};
|
|
84649
|
+
if (index2 === dataSource.length - 1) {
|
|
84650
|
+
rowProps.ref = lastRowRef;
|
|
84611
84651
|
}
|
|
84612
|
-
|
|
84613
|
-
|
|
84614
|
-
|
|
84615
|
-
|
|
84616
|
-
style: {
|
|
84617
|
-
position: "absolute",
|
|
84618
|
-
bottom: 0,
|
|
84619
|
-
left: 0,
|
|
84620
|
-
width: "100%",
|
|
84621
|
-
padding: "16px",
|
|
84622
|
-
display: "flex",
|
|
84623
|
-
justifyContent: "center",
|
|
84624
|
-
alignItems: "center",
|
|
84625
|
-
backgroundColor: "rgba(255, 255, 255, 0.7)",
|
|
84626
|
-
backdropFilter: "blur(2px)",
|
|
84627
|
-
zIndex: 10
|
|
84628
|
-
},
|
|
84629
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Spin, {})
|
|
84652
|
+
if (onRowClick && index2 !== void 0) {
|
|
84653
|
+
rowProps.onClick = (event) => {
|
|
84654
|
+
onRowClick(record, index2, event);
|
|
84655
|
+
};
|
|
84630
84656
|
}
|
|
84631
|
-
|
|
84632
|
-
] }),
|
|
84633
|
-
!hasNextPage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84634
|
-
"div",
|
|
84635
|
-
{
|
|
84636
|
-
style: {
|
|
84637
|
-
textAlign: "center",
|
|
84638
|
-
padding: "20px",
|
|
84639
|
-
borderTop: "1px solid #f0f0f0"
|
|
84640
|
-
},
|
|
84641
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Typography$1.Text, { type: "secondary", children: "No more rows to load." })
|
|
84657
|
+
return rowProps;
|
|
84642
84658
|
}
|
|
84643
|
-
|
|
84644
|
-
|
|
84645
|
-
|
|
84646
|
-
|
|
84659
|
+
}
|
|
84660
|
+
) }),
|
|
84661
|
+
isFetchingNextPage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84662
|
+
"div",
|
|
84663
|
+
{
|
|
84664
|
+
style: {
|
|
84665
|
+
position: "absolute",
|
|
84666
|
+
bottom: 0,
|
|
84667
|
+
left: 0,
|
|
84668
|
+
width: "100%",
|
|
84669
|
+
padding: "16px",
|
|
84670
|
+
display: "flex",
|
|
84671
|
+
justifyContent: "center",
|
|
84672
|
+
alignItems: "center",
|
|
84673
|
+
backgroundColor: "rgba(255, 255, 255, 0.7)",
|
|
84674
|
+
backdropFilter: "blur(2px)",
|
|
84675
|
+
zIndex: 10
|
|
84676
|
+
},
|
|
84677
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Spin, {})
|
|
84678
|
+
}
|
|
84679
|
+
)
|
|
84680
|
+
] }),
|
|
84681
|
+
!hasNextPage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84682
|
+
"div",
|
|
84683
|
+
{
|
|
84684
|
+
style: {
|
|
84685
|
+
textAlign: "center",
|
|
84686
|
+
padding: "20px",
|
|
84687
|
+
borderTop: "1px solid #f0f0f0"
|
|
84688
|
+
},
|
|
84689
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Typography$1.Text, { type: "secondary", children: "No more rows to load." })
|
|
84690
|
+
}
|
|
84691
|
+
)
|
|
84692
|
+
] });
|
|
84647
84693
|
};
|
|
84648
84694
|
const getRowKey = (record, rowKey, index2, enableValidation = true) => {
|
|
84649
84695
|
try {
|
|
@@ -84695,6 +84741,8 @@ function Table({
|
|
|
84695
84741
|
onChange,
|
|
84696
84742
|
rowSelection,
|
|
84697
84743
|
onRowClick,
|
|
84744
|
+
onRowSelectionChange,
|
|
84745
|
+
onDataChange,
|
|
84698
84746
|
pagination,
|
|
84699
84747
|
isMainContentCell = false,
|
|
84700
84748
|
isInfiniteScroll = false,
|
|
@@ -84749,7 +84797,9 @@ function Table({
|
|
|
84749
84797
|
fetchService: infiniteScrollConfig.fetchService,
|
|
84750
84798
|
title: infiniteScrollConfig.title,
|
|
84751
84799
|
scrollHeight: infiniteScrollConfig.scrollHeight,
|
|
84752
|
-
scrollWidth: infiniteScrollConfig.scrollWidth
|
|
84800
|
+
scrollWidth: infiniteScrollConfig.scrollWidth,
|
|
84801
|
+
onRowSelectionChange,
|
|
84802
|
+
onDataChange
|
|
84753
84803
|
}
|
|
84754
84804
|
);
|
|
84755
84805
|
}
|
|
@@ -85370,9 +85420,10 @@ const TableWithControls = ({
|
|
|
85370
85420
|
tableControlsData: tableControlsData2,
|
|
85371
85421
|
onChange,
|
|
85372
85422
|
onRowClick,
|
|
85423
|
+
onRowSelectionChange,
|
|
85424
|
+
onDataChange,
|
|
85373
85425
|
tableType = "table",
|
|
85374
85426
|
isInfiniteScroll,
|
|
85375
|
-
// Deprecated: use tableType instead
|
|
85376
85427
|
infiniteScrollConfig,
|
|
85377
85428
|
paginationStyle
|
|
85378
85429
|
}) => {
|
|
@@ -85383,7 +85434,14 @@ const TableWithControls = ({
|
|
|
85383
85434
|
totalResults: 0
|
|
85384
85435
|
});
|
|
85385
85436
|
const { primaryTableRowData, secondaryTableRowData } = tableControlsData2;
|
|
85386
|
-
const {
|
|
85437
|
+
const {
|
|
85438
|
+
dataSource,
|
|
85439
|
+
columns,
|
|
85440
|
+
rowSelection,
|
|
85441
|
+
hasSettings,
|
|
85442
|
+
hasFilter,
|
|
85443
|
+
onRowClick: tableOnRowClick
|
|
85444
|
+
} = tableData;
|
|
85387
85445
|
const actualTableType = isInfiniteScroll ? "infiniteScroll" : tableType;
|
|
85388
85446
|
const onTableControlsChange = (event) => {
|
|
85389
85447
|
onChange(event);
|
|
@@ -85395,6 +85453,7 @@ const TableWithControls = ({
|
|
|
85395
85453
|
});
|
|
85396
85454
|
};
|
|
85397
85455
|
const onInfiniteScrollTableChange = (event) => {
|
|
85456
|
+
setInfiniteScrollData(event);
|
|
85398
85457
|
onChange({
|
|
85399
85458
|
event: "infiniteScrollTableChange",
|
|
85400
85459
|
payload: { value: "infiniteScrollTableChange", event }
|
|
@@ -85423,7 +85482,11 @@ const TableWithControls = ({
|
|
|
85423
85482
|
title: infiniteScrollConfig.title,
|
|
85424
85483
|
scrollHeight: infiniteScrollConfig.scrollHeight,
|
|
85425
85484
|
scrollWidth: infiniteScrollConfig.scrollWidth,
|
|
85426
|
-
onChange: onInfiniteScrollTableChange
|
|
85485
|
+
onChange: onInfiniteScrollTableChange,
|
|
85486
|
+
rowSelection,
|
|
85487
|
+
onRowClick: tableOnRowClick || onRowClick,
|
|
85488
|
+
onRowSelectionChange,
|
|
85489
|
+
onDataChange
|
|
85427
85490
|
}
|
|
85428
85491
|
);
|
|
85429
85492
|
}
|
|
@@ -85449,18 +85512,25 @@ const TableWithControls = ({
|
|
|
85449
85512
|
columns,
|
|
85450
85513
|
rowSelection,
|
|
85451
85514
|
onChange: onTableChange,
|
|
85452
|
-
onRowClick
|
|
85515
|
+
onRowClick,
|
|
85516
|
+
onRowSelectionChange
|
|
85453
85517
|
}
|
|
85454
85518
|
);
|
|
85455
85519
|
}
|
|
85456
85520
|
}
|
|
85457
85521
|
};
|
|
85522
|
+
const mergedSecondaryTableRowData = {
|
|
85523
|
+
...secondaryTableRowData,
|
|
85524
|
+
groups: secondaryTableRowData?.groups || null,
|
|
85525
|
+
totalRecords: secondaryTableRowData?.totalRecords || null,
|
|
85526
|
+
infiniteScrollData: infiniteScrollData.resultsShown > 0 ? infiniteScrollData : secondaryTableRowData?.infiniteScrollData || infiniteScrollData
|
|
85527
|
+
};
|
|
85458
85528
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
85459
85529
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
85460
85530
|
TableControls,
|
|
85461
85531
|
{
|
|
85462
85532
|
primaryTableRowData,
|
|
85463
|
-
secondaryTableRowData,
|
|
85533
|
+
secondaryTableRowData: mergedSecondaryTableRowData,
|
|
85464
85534
|
onChange: onTableControlsChange
|
|
85465
85535
|
}
|
|
85466
85536
|
),
|
package/dist/index.js
CHANGED
|
@@ -80948,112 +80948,136 @@ const OverflowMenuItem = ({ children: children2, onClick }) => {
|
|
|
80948
80948
|
const DefaultTrigger = () => {
|
|
80949
80949
|
return /* @__PURE__ */ jsx(Button$1, { isIconButton: true, themeType: "secondary", size: "small", children: /* @__PURE__ */ jsx(HiDotsHorizontal, {}) });
|
|
80950
80950
|
};
|
|
80951
|
-
const OverflowMenu = (
|
|
80952
|
-
|
|
80953
|
-
|
|
80954
|
-
|
|
80955
|
-
|
|
80956
|
-
|
|
80957
|
-
|
|
80958
|
-
|
|
80959
|
-
|
|
80960
|
-
|
|
80961
|
-
|
|
80962
|
-
|
|
80963
|
-
|
|
80964
|
-
|
|
80965
|
-
|
|
80966
|
-
|
|
80967
|
-
|
|
80968
|
-
|
|
80969
|
-
|
|
80970
|
-
|
|
80971
|
-
|
|
80972
|
-
|
|
80973
|
-
onOpenChange
|
|
80974
|
-
|
|
80975
|
-
|
|
80976
|
-
|
|
80977
|
-
|
|
80978
|
-
|
|
80979
|
-
|
|
80980
|
-
|
|
80981
|
-
|
|
80982
|
-
|
|
80983
|
-
const handleClickOutside = useCallback(
|
|
80984
|
-
(event) => {
|
|
80985
|
-
if (triggerRef.current && menuRef.current && !triggerRef.current.contains(event.target) && !menuRef.current.contains(event.target)) {
|
|
80986
|
-
handleOpenChange(false);
|
|
80987
|
-
}
|
|
80988
|
-
},
|
|
80989
|
-
[handleOpenChange]
|
|
80990
|
-
);
|
|
80991
|
-
useEffect(() => {
|
|
80992
|
-
if (isOpen) {
|
|
80993
|
-
const timer2 = setTimeout(() => {
|
|
80994
|
-
setIsAnimating(true);
|
|
80995
|
-
}, 10);
|
|
80996
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
80997
|
-
return () => {
|
|
80998
|
-
clearTimeout(timer2);
|
|
80999
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
81000
|
-
};
|
|
81001
|
-
} else {
|
|
81002
|
-
setIsAnimating(false);
|
|
81003
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
81004
|
-
}
|
|
81005
|
-
}, [isOpen, handleClickOutside]);
|
|
81006
|
-
const getMenuStyle = useMemo$1(() => {
|
|
81007
|
-
const baseStyle = {
|
|
81008
|
-
position: "absolute",
|
|
81009
|
-
zIndex: 1e3,
|
|
81010
|
-
...style2
|
|
80951
|
+
const OverflowMenu = forwardRef(
|
|
80952
|
+
({
|
|
80953
|
+
items,
|
|
80954
|
+
children: children2,
|
|
80955
|
+
trigger = /* @__PURE__ */ jsx(DefaultTrigger, {}),
|
|
80956
|
+
isOpen: controlledIsOpen,
|
|
80957
|
+
onOpenChange,
|
|
80958
|
+
placement = "bottom",
|
|
80959
|
+
alignment = "left",
|
|
80960
|
+
offset: offset2 = 8,
|
|
80961
|
+
className,
|
|
80962
|
+
style: style2,
|
|
80963
|
+
onItemClick
|
|
80964
|
+
}, ref) => {
|
|
80965
|
+
const [internalIsOpen, setInternalIsOpen] = useState(false);
|
|
80966
|
+
const [isAnimating, setIsAnimating] = useState(false);
|
|
80967
|
+
const triggerRef = useRef(null);
|
|
80968
|
+
const menuRef = useRef(null);
|
|
80969
|
+
const { theme } = useGenesis();
|
|
80970
|
+
const isOpen = controlledIsOpen === void 0 ? internalIsOpen : controlledIsOpen;
|
|
80971
|
+
const handleOpenChange = useCallback(
|
|
80972
|
+
(open) => {
|
|
80973
|
+
if (onOpenChange) {
|
|
80974
|
+
onOpenChange(open);
|
|
80975
|
+
} else {
|
|
80976
|
+
setInternalIsOpen(open);
|
|
80977
|
+
}
|
|
80978
|
+
},
|
|
80979
|
+
[onOpenChange]
|
|
80980
|
+
);
|
|
80981
|
+
const handleTriggerClick = () => {
|
|
80982
|
+
handleOpenChange(!isOpen);
|
|
81011
80983
|
};
|
|
81012
|
-
|
|
81013
|
-
|
|
81014
|
-
|
|
81015
|
-
|
|
81016
|
-
|
|
81017
|
-
|
|
81018
|
-
|
|
81019
|
-
|
|
81020
|
-
|
|
81021
|
-
|
|
81022
|
-
|
|
81023
|
-
|
|
81024
|
-
|
|
81025
|
-
|
|
81026
|
-
|
|
81027
|
-
|
|
81028
|
-
|
|
81029
|
-
...baseStyle,
|
|
81030
|
-
top: 0,
|
|
81031
|
-
right: `calc(100% + ${offset2}px)`,
|
|
81032
|
-
...alignment === "right" ? { bottom: 0 } : {}
|
|
81033
|
-
};
|
|
81034
|
-
}
|
|
81035
|
-
case "right": {
|
|
81036
|
-
return {
|
|
81037
|
-
...baseStyle,
|
|
81038
|
-
top: 0,
|
|
81039
|
-
left: `calc(100% + ${offset2}px)`,
|
|
81040
|
-
...alignment === "right" ? { bottom: 0 } : {}
|
|
80984
|
+
const handleClickOutside = useCallback(
|
|
80985
|
+
(event) => {
|
|
80986
|
+
if (triggerRef.current && menuRef.current && !triggerRef.current.contains(event.target) && !menuRef.current.contains(event.target)) {
|
|
80987
|
+
handleOpenChange(false);
|
|
80988
|
+
}
|
|
80989
|
+
},
|
|
80990
|
+
[handleOpenChange]
|
|
80991
|
+
);
|
|
80992
|
+
useEffect(() => {
|
|
80993
|
+
if (isOpen) {
|
|
80994
|
+
const timer2 = setTimeout(() => {
|
|
80995
|
+
setIsAnimating(true);
|
|
80996
|
+
}, 10);
|
|
80997
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
80998
|
+
return () => {
|
|
80999
|
+
clearTimeout(timer2);
|
|
81000
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
81041
81001
|
};
|
|
81002
|
+
} else {
|
|
81003
|
+
setIsAnimating(false);
|
|
81004
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
81042
81005
|
}
|
|
81043
|
-
|
|
81044
|
-
|
|
81006
|
+
}, [isOpen, handleClickOutside]);
|
|
81007
|
+
const getMenuStyle = useMemo$1(() => {
|
|
81008
|
+
const baseStyle = {
|
|
81009
|
+
position: "absolute",
|
|
81010
|
+
zIndex: 1e3,
|
|
81011
|
+
...style2
|
|
81012
|
+
};
|
|
81013
|
+
switch (placement) {
|
|
81014
|
+
case "bottom": {
|
|
81015
|
+
return {
|
|
81016
|
+
...baseStyle,
|
|
81017
|
+
top: `calc(100% + ${offset2}px)`,
|
|
81018
|
+
...alignment === "right" ? { right: 0 } : { left: 0 }
|
|
81019
|
+
};
|
|
81020
|
+
}
|
|
81021
|
+
case "top": {
|
|
81022
|
+
return {
|
|
81023
|
+
...baseStyle,
|
|
81024
|
+
bottom: `calc(100% + ${offset2}px)`,
|
|
81025
|
+
...alignment === "right" ? { right: 0 } : { left: 0 }
|
|
81026
|
+
};
|
|
81027
|
+
}
|
|
81028
|
+
case "left": {
|
|
81029
|
+
return {
|
|
81030
|
+
...baseStyle,
|
|
81031
|
+
top: 0,
|
|
81032
|
+
right: `calc(100% + ${offset2}px)`,
|
|
81033
|
+
...alignment === "right" ? { bottom: 0 } : {}
|
|
81034
|
+
};
|
|
81035
|
+
}
|
|
81036
|
+
case "right": {
|
|
81037
|
+
return {
|
|
81038
|
+
...baseStyle,
|
|
81039
|
+
top: 0,
|
|
81040
|
+
left: `calc(100% + ${offset2}px)`,
|
|
81041
|
+
...alignment === "right" ? { bottom: 0 } : {}
|
|
81042
|
+
};
|
|
81043
|
+
}
|
|
81044
|
+
default: {
|
|
81045
|
+
return baseStyle;
|
|
81046
|
+
}
|
|
81045
81047
|
}
|
|
81048
|
+
}, [placement, alignment, offset2, style2]);
|
|
81049
|
+
const handleItemClick = useCallback(
|
|
81050
|
+
(item) => {
|
|
81051
|
+
onItemClick?.(item);
|
|
81052
|
+
handleOpenChange(false);
|
|
81053
|
+
},
|
|
81054
|
+
[onItemClick, handleOpenChange]
|
|
81055
|
+
);
|
|
81056
|
+
if (items && items.length > 0) {
|
|
81057
|
+
return /* @__PURE__ */ jsxs(OverflowMenuWrapper, { ref, children: [
|
|
81058
|
+
/* @__PURE__ */ jsx("div", { ref: triggerRef, onClick: handleTriggerClick, children: trigger }),
|
|
81059
|
+
isOpen && /* @__PURE__ */ jsx(
|
|
81060
|
+
OverflowMenuContainer,
|
|
81061
|
+
{
|
|
81062
|
+
ref: menuRef,
|
|
81063
|
+
theme,
|
|
81064
|
+
className,
|
|
81065
|
+
style: getMenuStyle,
|
|
81066
|
+
$isAnimating: isAnimating,
|
|
81067
|
+
$placement: placement,
|
|
81068
|
+
children: items.map((item) => /* @__PURE__ */ jsx(
|
|
81069
|
+
OverflowMenuItem,
|
|
81070
|
+
{
|
|
81071
|
+
...item,
|
|
81072
|
+
onClick: () => handleItemClick(item)
|
|
81073
|
+
},
|
|
81074
|
+
item.id
|
|
81075
|
+
))
|
|
81076
|
+
}
|
|
81077
|
+
)
|
|
81078
|
+
] });
|
|
81046
81079
|
}
|
|
81047
|
-
|
|
81048
|
-
const handleItemClick = useCallback(
|
|
81049
|
-
(item) => {
|
|
81050
|
-
onItemClick?.(item);
|
|
81051
|
-
handleOpenChange(false);
|
|
81052
|
-
},
|
|
81053
|
-
[onItemClick, handleOpenChange]
|
|
81054
|
-
);
|
|
81055
|
-
if (items && items.length > 0) {
|
|
81056
|
-
return /* @__PURE__ */ jsxs(OverflowMenuWrapper, { children: [
|
|
81080
|
+
return /* @__PURE__ */ jsxs(OverflowMenuWrapper, { ref, children: [
|
|
81057
81081
|
/* @__PURE__ */ jsx("div", { ref: triggerRef, onClick: handleTriggerClick, children: trigger }),
|
|
81058
81082
|
isOpen && /* @__PURE__ */ jsx(
|
|
81059
81083
|
OverflowMenuContainer,
|
|
@@ -81064,34 +81088,13 @@ const OverflowMenu = ({
|
|
|
81064
81088
|
style: getMenuStyle,
|
|
81065
81089
|
$isAnimating: isAnimating,
|
|
81066
81090
|
$placement: placement,
|
|
81067
|
-
children:
|
|
81068
|
-
OverflowMenuItem,
|
|
81069
|
-
{
|
|
81070
|
-
...item,
|
|
81071
|
-
onClick: () => handleItemClick(item)
|
|
81072
|
-
},
|
|
81073
|
-
item.id
|
|
81074
|
-
))
|
|
81091
|
+
children: children2
|
|
81075
81092
|
}
|
|
81076
81093
|
)
|
|
81077
81094
|
] });
|
|
81078
81095
|
}
|
|
81079
|
-
|
|
81080
|
-
|
|
81081
|
-
isOpen && /* @__PURE__ */ jsx(
|
|
81082
|
-
OverflowMenuContainer,
|
|
81083
|
-
{
|
|
81084
|
-
ref: menuRef,
|
|
81085
|
-
theme,
|
|
81086
|
-
className,
|
|
81087
|
-
style: getMenuStyle,
|
|
81088
|
-
$isAnimating: isAnimating,
|
|
81089
|
-
$placement: placement,
|
|
81090
|
-
children: children2
|
|
81091
|
-
}
|
|
81092
|
-
)
|
|
81093
|
-
] });
|
|
81094
|
-
};
|
|
81096
|
+
);
|
|
81097
|
+
OverflowMenu.displayName = "OverflowMenu";
|
|
81095
81098
|
const getGenesisClass$6 = (theme) => ``;
|
|
81096
81099
|
const Popover$1 = styled(Popconfirm)`
|
|
81097
81100
|
${({ theme }) => {
|
|
@@ -84464,12 +84467,37 @@ const InfiniteScrollTable = ({
|
|
|
84464
84467
|
fetchService,
|
|
84465
84468
|
scrollHeight = 600,
|
|
84466
84469
|
scrollWidth = 1300,
|
|
84467
|
-
onChange
|
|
84470
|
+
onChange,
|
|
84471
|
+
rowSelection,
|
|
84472
|
+
onRowClick,
|
|
84473
|
+
onRowSelectionChange,
|
|
84474
|
+
onDataChange
|
|
84468
84475
|
}) => {
|
|
84469
84476
|
const observer = useRef();
|
|
84470
84477
|
const [scrollableNode, setScrollableNode] = useState(
|
|
84471
84478
|
null
|
|
84472
84479
|
);
|
|
84480
|
+
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
|
|
84481
|
+
const [selectedRows, setSelectedRows] = useState([]);
|
|
84482
|
+
const handleRowSelection = useCallback(
|
|
84483
|
+
(newSelectedRowKeys, newSelectedRows) => {
|
|
84484
|
+
setSelectedRowKeys(newSelectedRowKeys);
|
|
84485
|
+
setSelectedRows(newSelectedRows);
|
|
84486
|
+
if (rowSelection?.onChange) {
|
|
84487
|
+
rowSelection.onChange(newSelectedRowKeys, newSelectedRows);
|
|
84488
|
+
}
|
|
84489
|
+
},
|
|
84490
|
+
[rowSelection]
|
|
84491
|
+
);
|
|
84492
|
+
const defaultRowSelection2 = {
|
|
84493
|
+
type: "checkbox",
|
|
84494
|
+
selectedRowKeys,
|
|
84495
|
+
onChange: handleRowSelection,
|
|
84496
|
+
getCheckboxProps: (record) => ({
|
|
84497
|
+
name: record.id || record.key || String(record)
|
|
84498
|
+
})
|
|
84499
|
+
};
|
|
84500
|
+
const finalRowSelection = rowSelection || defaultRowSelection2;
|
|
84473
84501
|
const tableContainerRef = useCallback((node2) => {
|
|
84474
84502
|
if (node2 !== null) {
|
|
84475
84503
|
const scrollNode = node2.querySelector(".ant-table-body");
|
|
@@ -84523,16 +84551,40 @@ const InfiniteScrollTable = ({
|
|
|
84523
84551
|
const dataSource = data?.pages.flatMap((page) => page.docs) ?? [];
|
|
84524
84552
|
const totalDocs = data?.pages?.[0]?.totalDocs ?? 0;
|
|
84525
84553
|
useEffect(() => {
|
|
84526
|
-
if (
|
|
84554
|
+
if (onRowSelectionChange) {
|
|
84555
|
+
const wrappedSetSelectedRowKeys = (keys2) => {
|
|
84556
|
+
setSelectedRowKeys(keys2);
|
|
84557
|
+
};
|
|
84558
|
+
onRowSelectionChange(wrappedSetSelectedRowKeys);
|
|
84559
|
+
}
|
|
84560
|
+
}, [onRowSelectionChange]);
|
|
84561
|
+
const dataSentRef = useRef(false);
|
|
84562
|
+
useEffect(() => {
|
|
84563
|
+
if (onDataChange && dataSource.length > 0 && !dataSentRef.current) {
|
|
84564
|
+
onDataChange(dataSource);
|
|
84565
|
+
dataSentRef.current = true;
|
|
84566
|
+
}
|
|
84567
|
+
}, [dataSource, onDataChange]);
|
|
84568
|
+
const prevValuesRef = useRef(null);
|
|
84569
|
+
const onChangeRef = useRef(onChange);
|
|
84570
|
+
useEffect(() => {
|
|
84571
|
+
onChangeRef.current = onChange;
|
|
84572
|
+
}, [onChange]);
|
|
84573
|
+
useEffect(() => {
|
|
84574
|
+
if (onChangeRef.current && data && dataSource.length > 0) {
|
|
84527
84575
|
const dataChangeEvent = {
|
|
84528
|
-
totalPages: data
|
|
84529
|
-
currentPage: data
|
|
84576
|
+
totalPages: data.pages?.length ?? 0,
|
|
84577
|
+
currentPage: data.pages?.[0]?.page ?? 0,
|
|
84530
84578
|
resultsShown: dataSource.length,
|
|
84531
84579
|
totalResults: totalDocs
|
|
84532
84580
|
};
|
|
84533
|
-
|
|
84581
|
+
const prevValues = prevValuesRef.current;
|
|
84582
|
+
if (!prevValues || prevValues.resultsShown !== dataChangeEvent.resultsShown || prevValues.totalResults !== dataChangeEvent.totalResults) {
|
|
84583
|
+
prevValuesRef.current = dataChangeEvent;
|
|
84584
|
+
onChangeRef.current(dataChangeEvent);
|
|
84585
|
+
}
|
|
84534
84586
|
}
|
|
84535
|
-
}, [data]);
|
|
84587
|
+
}, [data?.pages?.length, dataSource.length, totalDocs]);
|
|
84536
84588
|
if (status === "pending") {
|
|
84537
84589
|
return /* @__PURE__ */ jsx(
|
|
84538
84590
|
"div",
|
|
@@ -84553,79 +84605,73 @@ const InfiniteScrollTable = ({
|
|
|
84553
84605
|
}
|
|
84554
84606
|
);
|
|
84555
84607
|
}
|
|
84556
|
-
return /* @__PURE__ */ jsxs(
|
|
84557
|
-
"div",
|
|
84558
|
-
|
|
84559
|
-
style: {
|
|
84560
|
-
backgroundColor: "white",
|
|
84561
|
-
padding: "24px",
|
|
84562
|
-
borderRadius: "8px",
|
|
84563
|
-
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.1)",
|
|
84564
|
-
marginBottom: "24px"
|
|
84565
|
-
},
|
|
84566
|
-
ref: tableContainerRef,
|
|
84567
|
-
children: [
|
|
84568
|
-
/* @__PURE__ */ jsxs("div", { style: { position: "relative" }, children: [
|
|
84569
|
-
/* @__PURE__ */ jsx("style", { children: `
|
|
84608
|
+
return /* @__PURE__ */ jsxs("div", { ref: tableContainerRef, children: [
|
|
84609
|
+
/* @__PURE__ */ jsxs("div", { style: { position: "relative" }, ref: tableContainerRef, children: [
|
|
84610
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
84570
84611
|
.infinite-scroll-table .ant-pagination {
|
|
84571
84612
|
display: none !important;
|
|
84572
84613
|
}
|
|
84573
84614
|
` }),
|
|
84574
|
-
|
|
84575
|
-
|
|
84576
|
-
|
|
84577
|
-
|
|
84578
|
-
|
|
84579
|
-
|
|
84580
|
-
|
|
84581
|
-
|
|
84582
|
-
|
|
84583
|
-
|
|
84584
|
-
|
|
84585
|
-
|
|
84586
|
-
|
|
84587
|
-
|
|
84588
|
-
|
|
84589
|
-
|
|
84590
|
-
|
|
84591
|
-
|
|
84592
|
-
}
|
|
84615
|
+
/* @__PURE__ */ jsx("div", { className: "infinite-scroll-table", children: /* @__PURE__ */ jsx(
|
|
84616
|
+
ForwardTable,
|
|
84617
|
+
{
|
|
84618
|
+
dataSource,
|
|
84619
|
+
columns: resizableColumns,
|
|
84620
|
+
components: { header: { cell: ResizableTitle } },
|
|
84621
|
+
rowKey: "id",
|
|
84622
|
+
pagination: false,
|
|
84623
|
+
showSorterTooltip: false,
|
|
84624
|
+
size: "small",
|
|
84625
|
+
scroll: { y: scrollHeight, x: scrollWidth },
|
|
84626
|
+
onChange: () => {
|
|
84627
|
+
},
|
|
84628
|
+
rowSelection: finalRowSelection,
|
|
84629
|
+
onRow: (record, index2) => {
|
|
84630
|
+
const rowProps = {};
|
|
84631
|
+
if (index2 === dataSource.length - 1) {
|
|
84632
|
+
rowProps.ref = lastRowRef;
|
|
84593
84633
|
}
|
|
84594
|
-
|
|
84595
|
-
|
|
84596
|
-
|
|
84597
|
-
|
|
84598
|
-
style: {
|
|
84599
|
-
position: "absolute",
|
|
84600
|
-
bottom: 0,
|
|
84601
|
-
left: 0,
|
|
84602
|
-
width: "100%",
|
|
84603
|
-
padding: "16px",
|
|
84604
|
-
display: "flex",
|
|
84605
|
-
justifyContent: "center",
|
|
84606
|
-
alignItems: "center",
|
|
84607
|
-
backgroundColor: "rgba(255, 255, 255, 0.7)",
|
|
84608
|
-
backdropFilter: "blur(2px)",
|
|
84609
|
-
zIndex: 10
|
|
84610
|
-
},
|
|
84611
|
-
children: /* @__PURE__ */ jsx(Spin, {})
|
|
84634
|
+
if (onRowClick && index2 !== void 0) {
|
|
84635
|
+
rowProps.onClick = (event) => {
|
|
84636
|
+
onRowClick(record, index2, event);
|
|
84637
|
+
};
|
|
84612
84638
|
}
|
|
84613
|
-
|
|
84614
|
-
] }),
|
|
84615
|
-
!hasNextPage && /* @__PURE__ */ jsx(
|
|
84616
|
-
"div",
|
|
84617
|
-
{
|
|
84618
|
-
style: {
|
|
84619
|
-
textAlign: "center",
|
|
84620
|
-
padding: "20px",
|
|
84621
|
-
borderTop: "1px solid #f0f0f0"
|
|
84622
|
-
},
|
|
84623
|
-
children: /* @__PURE__ */ jsx(Typography$1.Text, { type: "secondary", children: "No more rows to load." })
|
|
84639
|
+
return rowProps;
|
|
84624
84640
|
}
|
|
84625
|
-
|
|
84626
|
-
|
|
84627
|
-
|
|
84628
|
-
|
|
84641
|
+
}
|
|
84642
|
+
) }),
|
|
84643
|
+
isFetchingNextPage && /* @__PURE__ */ jsx(
|
|
84644
|
+
"div",
|
|
84645
|
+
{
|
|
84646
|
+
style: {
|
|
84647
|
+
position: "absolute",
|
|
84648
|
+
bottom: 0,
|
|
84649
|
+
left: 0,
|
|
84650
|
+
width: "100%",
|
|
84651
|
+
padding: "16px",
|
|
84652
|
+
display: "flex",
|
|
84653
|
+
justifyContent: "center",
|
|
84654
|
+
alignItems: "center",
|
|
84655
|
+
backgroundColor: "rgba(255, 255, 255, 0.7)",
|
|
84656
|
+
backdropFilter: "blur(2px)",
|
|
84657
|
+
zIndex: 10
|
|
84658
|
+
},
|
|
84659
|
+
children: /* @__PURE__ */ jsx(Spin, {})
|
|
84660
|
+
}
|
|
84661
|
+
)
|
|
84662
|
+
] }),
|
|
84663
|
+
!hasNextPage && /* @__PURE__ */ jsx(
|
|
84664
|
+
"div",
|
|
84665
|
+
{
|
|
84666
|
+
style: {
|
|
84667
|
+
textAlign: "center",
|
|
84668
|
+
padding: "20px",
|
|
84669
|
+
borderTop: "1px solid #f0f0f0"
|
|
84670
|
+
},
|
|
84671
|
+
children: /* @__PURE__ */ jsx(Typography$1.Text, { type: "secondary", children: "No more rows to load." })
|
|
84672
|
+
}
|
|
84673
|
+
)
|
|
84674
|
+
] });
|
|
84629
84675
|
};
|
|
84630
84676
|
const getRowKey = (record, rowKey, index2, enableValidation = true) => {
|
|
84631
84677
|
try {
|
|
@@ -84677,6 +84723,8 @@ function Table({
|
|
|
84677
84723
|
onChange,
|
|
84678
84724
|
rowSelection,
|
|
84679
84725
|
onRowClick,
|
|
84726
|
+
onRowSelectionChange,
|
|
84727
|
+
onDataChange,
|
|
84680
84728
|
pagination,
|
|
84681
84729
|
isMainContentCell = false,
|
|
84682
84730
|
isInfiniteScroll = false,
|
|
@@ -84731,7 +84779,9 @@ function Table({
|
|
|
84731
84779
|
fetchService: infiniteScrollConfig.fetchService,
|
|
84732
84780
|
title: infiniteScrollConfig.title,
|
|
84733
84781
|
scrollHeight: infiniteScrollConfig.scrollHeight,
|
|
84734
|
-
scrollWidth: infiniteScrollConfig.scrollWidth
|
|
84782
|
+
scrollWidth: infiniteScrollConfig.scrollWidth,
|
|
84783
|
+
onRowSelectionChange,
|
|
84784
|
+
onDataChange
|
|
84735
84785
|
}
|
|
84736
84786
|
);
|
|
84737
84787
|
}
|
|
@@ -85352,9 +85402,10 @@ const TableWithControls = ({
|
|
|
85352
85402
|
tableControlsData: tableControlsData2,
|
|
85353
85403
|
onChange,
|
|
85354
85404
|
onRowClick,
|
|
85405
|
+
onRowSelectionChange,
|
|
85406
|
+
onDataChange,
|
|
85355
85407
|
tableType = "table",
|
|
85356
85408
|
isInfiniteScroll,
|
|
85357
|
-
// Deprecated: use tableType instead
|
|
85358
85409
|
infiniteScrollConfig,
|
|
85359
85410
|
paginationStyle
|
|
85360
85411
|
}) => {
|
|
@@ -85365,7 +85416,14 @@ const TableWithControls = ({
|
|
|
85365
85416
|
totalResults: 0
|
|
85366
85417
|
});
|
|
85367
85418
|
const { primaryTableRowData, secondaryTableRowData } = tableControlsData2;
|
|
85368
|
-
const {
|
|
85419
|
+
const {
|
|
85420
|
+
dataSource,
|
|
85421
|
+
columns,
|
|
85422
|
+
rowSelection,
|
|
85423
|
+
hasSettings,
|
|
85424
|
+
hasFilter,
|
|
85425
|
+
onRowClick: tableOnRowClick
|
|
85426
|
+
} = tableData;
|
|
85369
85427
|
const actualTableType = isInfiniteScroll ? "infiniteScroll" : tableType;
|
|
85370
85428
|
const onTableControlsChange = (event) => {
|
|
85371
85429
|
onChange(event);
|
|
@@ -85377,6 +85435,7 @@ const TableWithControls = ({
|
|
|
85377
85435
|
});
|
|
85378
85436
|
};
|
|
85379
85437
|
const onInfiniteScrollTableChange = (event) => {
|
|
85438
|
+
setInfiniteScrollData(event);
|
|
85380
85439
|
onChange({
|
|
85381
85440
|
event: "infiniteScrollTableChange",
|
|
85382
85441
|
payload: { value: "infiniteScrollTableChange", event }
|
|
@@ -85405,7 +85464,11 @@ const TableWithControls = ({
|
|
|
85405
85464
|
title: infiniteScrollConfig.title,
|
|
85406
85465
|
scrollHeight: infiniteScrollConfig.scrollHeight,
|
|
85407
85466
|
scrollWidth: infiniteScrollConfig.scrollWidth,
|
|
85408
|
-
onChange: onInfiniteScrollTableChange
|
|
85467
|
+
onChange: onInfiniteScrollTableChange,
|
|
85468
|
+
rowSelection,
|
|
85469
|
+
onRowClick: tableOnRowClick || onRowClick,
|
|
85470
|
+
onRowSelectionChange,
|
|
85471
|
+
onDataChange
|
|
85409
85472
|
}
|
|
85410
85473
|
);
|
|
85411
85474
|
}
|
|
@@ -85431,18 +85494,25 @@ const TableWithControls = ({
|
|
|
85431
85494
|
columns,
|
|
85432
85495
|
rowSelection,
|
|
85433
85496
|
onChange: onTableChange,
|
|
85434
|
-
onRowClick
|
|
85497
|
+
onRowClick,
|
|
85498
|
+
onRowSelectionChange
|
|
85435
85499
|
}
|
|
85436
85500
|
);
|
|
85437
85501
|
}
|
|
85438
85502
|
}
|
|
85439
85503
|
};
|
|
85504
|
+
const mergedSecondaryTableRowData = {
|
|
85505
|
+
...secondaryTableRowData,
|
|
85506
|
+
groups: secondaryTableRowData?.groups || null,
|
|
85507
|
+
totalRecords: secondaryTableRowData?.totalRecords || null,
|
|
85508
|
+
infiniteScrollData: infiniteScrollData.resultsShown > 0 ? infiniteScrollData : secondaryTableRowData?.infiniteScrollData || infiniteScrollData
|
|
85509
|
+
};
|
|
85440
85510
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
85441
85511
|
/* @__PURE__ */ jsx(
|
|
85442
85512
|
TableControls,
|
|
85443
85513
|
{
|
|
85444
85514
|
primaryTableRowData,
|
|
85445
|
-
secondaryTableRowData,
|
|
85515
|
+
secondaryTableRowData: mergedSecondaryTableRowData,
|
|
85446
85516
|
onChange: onTableControlsChange
|
|
85447
85517
|
}
|
|
85448
85518
|
),
|