mod-arch-shared 1.4.0 → 1.6.0
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/table/Table.d.ts +9 -2
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/components/table/Table.js +49 -10
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/useTableColumnSort.d.ts +7 -1
- package/dist/components/table/useTableColumnSort.d.ts.map +1 -1
- package/dist/components/table/useTableColumnSort.js +26 -5
- package/dist/components/table/useTableColumnSort.js.map +1 -1
- package/package.json +6 -6
|
@@ -2,13 +2,20 @@ import * as React from 'react';
|
|
|
2
2
|
import { TbodyProps } from '@patternfly/react-table';
|
|
3
3
|
import { EitherNotBoth } from '../../types/typeHelpers';
|
|
4
4
|
import TableBase from './TableBase';
|
|
5
|
+
import { ControlledSortProps } from './useTableColumnSort';
|
|
6
|
+
type ControlledPaginationProps = {
|
|
7
|
+
page?: number;
|
|
8
|
+
pageSize?: number;
|
|
9
|
+
onPageChange?: (page: number) => void;
|
|
10
|
+
onPageSizeChange?: (pageSize: number, page: number) => void;
|
|
11
|
+
};
|
|
5
12
|
type TableProps<DataType> = Omit<React.ComponentProps<typeof TableBase<DataType>>, 'itemCount' | 'onPerPageSelect' | 'onSetPage' | 'page' | 'perPage'> & EitherNotBoth<{
|
|
6
13
|
disableRowRenderSupport?: boolean;
|
|
7
14
|
}, {
|
|
8
15
|
tbodyProps?: TbodyProps & {
|
|
9
16
|
ref?: React.Ref<HTMLTableSectionElement>;
|
|
10
17
|
};
|
|
11
|
-
}>;
|
|
12
|
-
declare const Table: <T>({ data: allData, columns, subColumns, enablePagination, defaultSortColumn, truncateRenderingAt, ...props }: TableProps<T>) => React.ReactElement;
|
|
18
|
+
}> & Partial<ControlledSortProps> & Partial<ControlledPaginationProps>;
|
|
19
|
+
declare const Table: <T>({ data: allData, columns, subColumns, enablePagination, defaultSortColumn, truncateRenderingAt, sortIndex: controlledSortIndex, sortDirection: controlledSortDirection, onSortIndexChange, onSortDirectionChange, page: controlledPage, pageSize: controlledPageSize, onPageChange, onPageSizeChange, ...props }: TableProps<T>) => React.ReactElement;
|
|
13
20
|
export default Table;
|
|
14
21
|
//# sourceMappingURL=Table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../components/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,SAA4B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../components/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,SAA4B,MAAM,aAAa,CAAC;AACvD,OAA2B,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,KAAK,yBAAyB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,KAAK,UAAU,CAAC,QAAQ,IAAI,IAAI,CAC9B,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,EAChD,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CACnE,GACC,aAAa,CACX;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,EACrC;IAAE,UAAU,CAAC,EAAE,UAAU,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;KAAE,CAAA;CAAE,CAC3E,GACD,OAAO,CAAC,mBAAmB,CAAC,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAErC,QAAA,MAAM,KAAK,GAAI,CAAC,EAAG,kTAgBhB,UAAU,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YA2FxB,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import TableBase, { MIN_PAGE_SIZE } from './TableBase';
|
|
3
3
|
import useTableColumnSort from './useTableColumnSort';
|
|
4
|
-
const Table = ({ data: allData, columns, subColumns, enablePagination, defaultSortColumn = 0, truncateRenderingAt = 0, ...props }) => {
|
|
5
|
-
|
|
6
|
-
const [
|
|
7
|
-
const
|
|
4
|
+
const Table = ({ data: allData, columns, subColumns, enablePagination, defaultSortColumn = 0, truncateRenderingAt = 0, sortIndex: controlledSortIndex, sortDirection: controlledSortDirection, onSortIndexChange, onSortDirectionChange, page: controlledPage, pageSize: controlledPageSize, onPageChange, onPageSizeChange, ...props }) => {
|
|
5
|
+
// Internal state (used when not controlled)
|
|
6
|
+
const [internalPage, setInternalPage] = React.useState(1);
|
|
7
|
+
const [internalPageSize, setInternalPageSize] = React.useState(MIN_PAGE_SIZE);
|
|
8
|
+
// Store callback in ref
|
|
9
|
+
const onPageChangeRef = React.useRef(onPageChange);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
onPageChangeRef.current = onPageChange;
|
|
12
|
+
}, [onPageChange]);
|
|
13
|
+
// Use controlled props if provided, otherwise use internal state
|
|
14
|
+
const page = controlledPage !== undefined ? controlledPage : internalPage;
|
|
15
|
+
const pageSize = controlledPageSize !== undefined ? controlledPageSize : internalPageSize;
|
|
16
|
+
const controlledSortProps = controlledSortIndex !== undefined ||
|
|
17
|
+
controlledSortDirection !== undefined ||
|
|
18
|
+
onSortIndexChange ||
|
|
19
|
+
onSortDirectionChange
|
|
20
|
+
? {
|
|
21
|
+
sortIndex: controlledSortIndex,
|
|
22
|
+
sortDirection: controlledSortDirection,
|
|
23
|
+
onSortIndexChange,
|
|
24
|
+
onSortDirectionChange,
|
|
25
|
+
}
|
|
26
|
+
: undefined;
|
|
27
|
+
const sort = useTableColumnSort(columns, subColumns || [], defaultSortColumn, controlledSortProps);
|
|
8
28
|
const sortedData = sort.transformData(allData);
|
|
9
29
|
let data;
|
|
10
30
|
if (truncateRenderingAt) {
|
|
@@ -18,14 +38,33 @@ const Table = ({ data: allData, columns, subColumns, enablePagination, defaultSo
|
|
|
18
38
|
}
|
|
19
39
|
// update page to 1 if data changes (common when filter is applied)
|
|
20
40
|
React.useEffect(() => {
|
|
41
|
+
const isPageControlled = controlledPage !== undefined;
|
|
21
42
|
if (data.length === 0) {
|
|
22
|
-
|
|
43
|
+
onPageChangeRef.current?.(1);
|
|
44
|
+
if (!isPageControlled) {
|
|
45
|
+
setInternalPage(1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}, [data.length, controlledPage]);
|
|
49
|
+
const handlePageChange = (_e, newPage) => {
|
|
50
|
+
const isPageControlled = controlledPage !== undefined;
|
|
51
|
+
onPageChange?.(newPage);
|
|
52
|
+
if (!isPageControlled) {
|
|
53
|
+
setInternalPage(newPage);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const handlePageSizeChange = (_e, newSize, newPage) => {
|
|
57
|
+
const isPageControlled = controlledPage !== undefined;
|
|
58
|
+
const isPageSizeControlled = controlledPageSize !== undefined;
|
|
59
|
+
onPageSizeChange?.(newSize, newPage);
|
|
60
|
+
if (!isPageSizeControlled) {
|
|
61
|
+
setInternalPageSize(newSize);
|
|
62
|
+
}
|
|
63
|
+
if (!isPageControlled) {
|
|
64
|
+
setInternalPage(newPage);
|
|
23
65
|
}
|
|
24
|
-
}
|
|
25
|
-
return (React.createElement(TableBase, { data: data, columns: columns, subColumns: subColumns, enablePagination: enablePagination, itemCount: allData.length, perPage: pageSize, page: page, onSetPage:
|
|
26
|
-
setPageSize(newSize);
|
|
27
|
-
setPage(newPage);
|
|
28
|
-
}, getColumnSort: sort.getColumnSort, ...props }));
|
|
66
|
+
};
|
|
67
|
+
return (React.createElement(TableBase, { data: data, columns: columns, subColumns: subColumns, enablePagination: enablePagination, itemCount: allData.length, perPage: pageSize, page: page, onSetPage: handlePageChange, onPerPageSelect: handlePageSizeChange, getColumnSort: sort.getColumnSort, ...props }));
|
|
29
68
|
};
|
|
30
69
|
export default Table;
|
|
31
70
|
//# sourceMappingURL=Table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../components/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,SAAS,EAAE,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../components/table/Table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,12 @@ type TableColumnSortProps<DataType> = {
|
|
|
5
5
|
sortDirection?: 'asc' | 'desc';
|
|
6
6
|
setSortDirection: (dir: 'asc' | 'desc') => void;
|
|
7
7
|
};
|
|
8
|
+
export type ControlledSortProps = {
|
|
9
|
+
sortIndex?: number | undefined;
|
|
10
|
+
sortDirection?: 'asc' | 'desc' | undefined;
|
|
11
|
+
onSortIndexChange?: (index: number) => void;
|
|
12
|
+
onSortDirectionChange?: (direction: 'asc' | 'desc') => void;
|
|
13
|
+
};
|
|
8
14
|
type TableColumnSortByFieldProps<DataType> = TableColumnSortProps<DataType> & {
|
|
9
15
|
sortField?: string;
|
|
10
16
|
setSortField: (field: string) => void;
|
|
@@ -18,7 +24,7 @@ export declare const getTableColumnSort: <T>({ columns, subColumns, sortField, s
|
|
|
18
24
|
*
|
|
19
25
|
* @see https://www.patternfly.org/v4/components/table
|
|
20
26
|
*/
|
|
21
|
-
declare const useTableColumnSort: <T>(columns: SortableData<T>[], subColumns: SortableData<T>[], defaultSortColIndex?: number) => {
|
|
27
|
+
declare const useTableColumnSort: <T>(columns: SortableData<T>[], subColumns: SortableData<T>[], defaultSortColIndex?: number, controlledSortProps?: ControlledSortProps) => {
|
|
22
28
|
transformData: (data: T[]) => T[];
|
|
23
29
|
getColumnSort: GetColumnSort;
|
|
24
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableColumnSort.d.ts","sourceRoot":"","sources":["../../../components/table/useTableColumnSort.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD,KAAK,oBAAoB,CAAC,QAAQ,IAAI;IACpC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,KAAK,2BAA2B,CAAC,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAOF,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,gEAMnC,2BAA2B,CAAC,CAAC,CAAC,KAAG,aAOhC,CAAC;AA6BL;;;;;;;GAOG;AACH,QAAA,MAAM,kBAAkB,GAAI,CAAC,EAC3B,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,EAC1B,YAAY,YAAY,CAAC,CAAC,CAAC,EAAE,EAC7B,sBAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"useTableColumnSort.d.ts","sourceRoot":"","sources":["../../../components/table/useTableColumnSort.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD,KAAK,oBAAoB,CAAC,QAAQ,IAAI;IACpC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,KAAK,2BAA2B,CAAC,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAOF,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,gEAMnC,2BAA2B,CAAC,CAAC,CAAC,KAAG,aAOhC,CAAC;AA6BL;;;;;;;GAOG;AACH,QAAA,MAAM,kBAAkB,GAAI,CAAC,EAC3B,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,EAC1B,YAAY,YAAY,CAAC,CAAC,CAAC,EAAE,EAC7B,sBAAsB,MAAM,EAC5B,sBAAsB,mBAAmB,KACxC;IACD,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;CAkF9B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -30,9 +30,30 @@ const getTableColumnSortByIndex = ({ columns, subColumns, sortIndex, sortDirecti
|
|
|
30
30
|
*
|
|
31
31
|
* @see https://www.patternfly.org/v4/components/table
|
|
32
32
|
*/
|
|
33
|
-
const useTableColumnSort = (columns, subColumns, defaultSortColIndex) => {
|
|
34
|
-
const [
|
|
35
|
-
const [
|
|
33
|
+
const useTableColumnSort = (columns, subColumns, defaultSortColIndex, controlledSortProps) => {
|
|
34
|
+
const [internalSortIndex, setInternalSortIndex] = React.useState(defaultSortColIndex);
|
|
35
|
+
const [internalSortDirection, setInternalSortDirection] = React.useState('asc');
|
|
36
|
+
// Use controlled props if provided, otherwise use internal state
|
|
37
|
+
const activeSortIndex = controlledSortProps?.sortIndex !== undefined
|
|
38
|
+
? controlledSortProps.sortIndex
|
|
39
|
+
: internalSortIndex;
|
|
40
|
+
const activeSortDirection = controlledSortProps?.sortDirection !== undefined
|
|
41
|
+
? controlledSortProps.sortDirection
|
|
42
|
+
: internalSortDirection;
|
|
43
|
+
const isSortIndexControlled = controlledSortProps?.sortIndex !== undefined;
|
|
44
|
+
const isSortDirectionControlled = controlledSortProps?.sortDirection !== undefined;
|
|
45
|
+
const handleSortIndexChange = (index) => {
|
|
46
|
+
controlledSortProps?.onSortIndexChange?.(index);
|
|
47
|
+
if (!isSortIndexControlled) {
|
|
48
|
+
setInternalSortIndex(index);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const handleSortDirectionChange = (direction) => {
|
|
52
|
+
controlledSortProps?.onSortDirectionChange?.(direction);
|
|
53
|
+
if (!isSortDirectionControlled) {
|
|
54
|
+
setInternalSortDirection(direction);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
36
57
|
return {
|
|
37
58
|
transformData: (data) => {
|
|
38
59
|
if (activeSortIndex === undefined) {
|
|
@@ -69,9 +90,9 @@ const useTableColumnSort = (columns, subColumns, defaultSortColIndex) => {
|
|
|
69
90
|
columns,
|
|
70
91
|
subColumns,
|
|
71
92
|
sortDirection: activeSortDirection,
|
|
72
|
-
setSortDirection:
|
|
93
|
+
setSortDirection: handleSortDirectionChange,
|
|
73
94
|
sortIndex: activeSortIndex,
|
|
74
|
-
setSortIndex:
|
|
95
|
+
setSortIndex: handleSortIndexChange,
|
|
75
96
|
}),
|
|
76
97
|
};
|
|
77
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableColumnSort.js","sourceRoot":"","sources":["../../../components/table/useTableColumnSort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useTableColumnSort.js","sourceRoot":"","sources":["../../../components/table/useTableColumnSort.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mod-arch-shared",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Shared UI components and utilities for modular architecture micro-frontend projects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
"@types/react": "^18.3.1",
|
|
71
71
|
"@types/react-dom": "^18.3.1",
|
|
72
72
|
"@types/showdown": "^2.0.3",
|
|
73
|
-
"@patternfly/react-core": "^6.
|
|
74
|
-
"@patternfly/react-icons": "^6.
|
|
75
|
-
"@patternfly/react-styles": "^6.
|
|
76
|
-
"@patternfly/react-table": "^6.
|
|
73
|
+
"@patternfly/react-core": "^6.4.0",
|
|
74
|
+
"@patternfly/react-icons": "^6.4.0",
|
|
75
|
+
"@patternfly/react-styles": "^6.4.0",
|
|
76
|
+
"@patternfly/react-table": "^6.4.0",
|
|
77
77
|
"core-js": "^3.40.0",
|
|
78
78
|
"expect": "^29.7.0",
|
|
79
79
|
"jest": "^29.7.0",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"typescript": "^5.0.4"
|
|
89
89
|
},
|
|
90
90
|
"dependencies": {
|
|
91
|
-
"@patternfly/patternfly": "^6.
|
|
91
|
+
"@patternfly/patternfly": "^6.4.0",
|
|
92
92
|
"classnames": "^2.2.6",
|
|
93
93
|
"dompurify": "^3.2.4",
|
|
94
94
|
"lodash-es": "^4.17.15",
|