@xanui/ui 1.1.18 → 1.1.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/Datatable/index.js +1 -0
- package/Datatable/index.js.map +1 -1
- package/Datatable/index.mjs +1 -0
- package/Datatable/index.mjs.map +1 -1
- package/Datatable/types.d.ts +12 -2
- package/package.json +2 -2
package/Datatable/index.js
CHANGED
|
@@ -25,6 +25,7 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
25
25
|
},
|
|
26
26
|
tab: tabs ? ((defaultState === null || defaultState === void 0 ? void 0 : defaultState.tab) || tabs[0].value || tabs[0].label.toLowerCase()) : "",
|
|
27
27
|
search: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.search) || "",
|
|
28
|
+
sortable: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.sortable) || {},
|
|
28
29
|
});
|
|
29
30
|
const update = (s) => setState(o => (Object.assign(Object.assign({}, o), s)));
|
|
30
31
|
React.useEffect(() => {
|
package/Datatable/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [_props] = useInterface<any>(\"Datatable\", props, {})\n let {\n rows,\n tabs,\n totalCount,\n\n pagination: { perpages = [30, 50, 100] } = {},\n defaultState = {},\n onStateChange,\n\n fixedHeader,\n disablePagination,\n slotProps,\n } = _props\n\n const [state, setState] = useState<DatatableState>({\n selected: defaultState?.selected || [],\n selectAll: defaultState?.selectAll || false,\n pagination: {\n page: defaultState?.page || 1,\n perpage: perpages && perpages.length > 0 ? perpages[0] : 10,\n from: defaultState?.from || 1,\n to: defaultState?.to || (perpages && perpages.length > 0 ? perpages[0] : 10),\n },\n tab: tabs ? (defaultState?.tab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: defaultState?.search || \"\",\n })\n\n const update = (s: Partial<DatatableState>) => setState(o => ({ ...o, ...s }))\n\n useEffect(() => {\n if (onStateChange) {\n onStateChange(state)\n }\n }, [state])\n\n return (\n <ViewBox\n baseClass='datatable'\n ref={ref as any}\n height=\"100%\"\n sx={{\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!disablePagination && <TablePagination\n {...slotProps?.pagination}\n total={totalCount || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;;;AAYA;AACI;AACA;AAcA;;;AAGI;;AAEI;;AAEA;AACH;AACD
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [_props] = useInterface<any>(\"Datatable\", props, {})\n let {\n rows,\n tabs,\n totalCount,\n\n pagination: { perpages = [30, 50, 100] } = {},\n defaultState = {},\n onStateChange,\n\n fixedHeader,\n disablePagination,\n slotProps,\n } = _props\n\n const [state, setState] = useState<DatatableState>({\n selected: defaultState?.selected || [],\n selectAll: defaultState?.selectAll || false,\n pagination: {\n page: defaultState?.page || 1,\n perpage: perpages && perpages.length > 0 ? perpages[0] : 10,\n from: defaultState?.from || 1,\n to: defaultState?.to || (perpages && perpages.length > 0 ? perpages[0] : 10),\n },\n tab: tabs ? (defaultState?.tab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: defaultState?.search || \"\",\n sortable: defaultState?.sortable || {},\n })\n\n const update = (s: Partial<DatatableState>) => setState(o => ({ ...o, ...s }))\n\n useEffect(() => {\n if (onStateChange) {\n onStateChange(state)\n }\n }, [state])\n\n return (\n <ViewBox\n baseClass='datatable'\n ref={ref as any}\n height=\"100%\"\n sx={{\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!disablePagination && <TablePagination\n {...slotProps?.pagination}\n total={totalCount || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;;;AAYA;AACI;AACA;AAcA;;;AAGI;;AAEI;;AAEA;AACH;AACD;;;AAGH;AAED;;;;;AAMA;AAEA;AAMY;AACI;AACA;AACA;AACA;;;AAOI;AACA;AACA;;AAwBA;AACJ;AAKpB;;"}
|
package/Datatable/index.mjs
CHANGED
|
@@ -23,6 +23,7 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
23
23
|
},
|
|
24
24
|
tab: tabs ? ((defaultState === null || defaultState === void 0 ? void 0 : defaultState.tab) || tabs[0].value || tabs[0].label.toLowerCase()) : "",
|
|
25
25
|
search: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.search) || "",
|
|
26
|
+
sortable: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.sortable) || {},
|
|
26
27
|
});
|
|
27
28
|
const update = (s) => setState(o => (Object.assign(Object.assign({}, o), s)));
|
|
28
29
|
useEffect(() => {
|
package/Datatable/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [_props] = useInterface<any>(\"Datatable\", props, {})\n let {\n rows,\n tabs,\n totalCount,\n\n pagination: { perpages = [30, 50, 100] } = {},\n defaultState = {},\n onStateChange,\n\n fixedHeader,\n disablePagination,\n slotProps,\n } = _props\n\n const [state, setState] = useState<DatatableState>({\n selected: defaultState?.selected || [],\n selectAll: defaultState?.selectAll || false,\n pagination: {\n page: defaultState?.page || 1,\n perpage: perpages && perpages.length > 0 ? perpages[0] : 10,\n from: defaultState?.from || 1,\n to: defaultState?.to || (perpages && perpages.length > 0 ? perpages[0] : 10),\n },\n tab: tabs ? (defaultState?.tab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: defaultState?.search || \"\",\n })\n\n const update = (s: Partial<DatatableState>) => setState(o => ({ ...o, ...s }))\n\n useEffect(() => {\n if (onStateChange) {\n onStateChange(state)\n }\n }, [state])\n\n return (\n <ViewBox\n baseClass='datatable'\n ref={ref as any}\n height=\"100%\"\n sx={{\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!disablePagination && <TablePagination\n {...slotProps?.pagination}\n total={totalCount || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;AAYA;AACI;AACA;AAcA;;;AAGI;;AAEI;;AAEA;AACH;AACD
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [_props] = useInterface<any>(\"Datatable\", props, {})\n let {\n rows,\n tabs,\n totalCount,\n\n pagination: { perpages = [30, 50, 100] } = {},\n defaultState = {},\n onStateChange,\n\n fixedHeader,\n disablePagination,\n slotProps,\n } = _props\n\n const [state, setState] = useState<DatatableState>({\n selected: defaultState?.selected || [],\n selectAll: defaultState?.selectAll || false,\n pagination: {\n page: defaultState?.page || 1,\n perpage: perpages && perpages.length > 0 ? perpages[0] : 10,\n from: defaultState?.from || 1,\n to: defaultState?.to || (perpages && perpages.length > 0 ? perpages[0] : 10),\n },\n tab: tabs ? (defaultState?.tab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: defaultState?.search || \"\",\n sortable: defaultState?.sortable || {},\n })\n\n const update = (s: Partial<DatatableState>) => setState(o => ({ ...o, ...s }))\n\n useEffect(() => {\n if (onStateChange) {\n onStateChange(state)\n }\n }, [state])\n\n return (\n <ViewBox\n baseClass='datatable'\n ref={ref as any}\n height=\"100%\"\n sx={{\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!disablePagination && <TablePagination\n {...slotProps?.pagination}\n total={totalCount || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;AAYA;AACI;AACA;AAcA;;;AAGI;;AAEI;;AAEA;AACH;AACD;;;AAGH;AAED;;;;;AAMA;AAEA;AAMY;AACI;AACA;AACA;AACA;;;AAOI;AACA;AACA;;AAwBA;AACJ;AAKpB;;"}
|
package/Datatable/types.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ type DatatableProps = {
|
|
|
40
40
|
total?: number;
|
|
41
41
|
perpages?: number[];
|
|
42
42
|
};
|
|
43
|
-
defaultState?:
|
|
43
|
+
defaultState?: DatatableStatePartial;
|
|
44
44
|
onStateChange?: (state: DatatableState) => void;
|
|
45
45
|
filters?: {
|
|
46
46
|
[key: string]: DatatableFilter[];
|
|
@@ -61,9 +61,19 @@ type DatatableState = {
|
|
|
61
61
|
pagination: TablePaginationState;
|
|
62
62
|
tab: string;
|
|
63
63
|
search: string;
|
|
64
|
+
sortable: {
|
|
65
|
+
[field: string]: 'asc' | 'desc';
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
type DatatableStatePartial = {
|
|
69
|
+
selected?: number[];
|
|
70
|
+
selectAll?: boolean;
|
|
71
|
+
pagination?: Partial<TablePaginationState>;
|
|
72
|
+
tab?: string;
|
|
73
|
+
search?: string;
|
|
64
74
|
sortable?: {
|
|
65
75
|
[field: string]: 'asc' | 'desc';
|
|
66
76
|
};
|
|
67
77
|
};
|
|
68
78
|
|
|
69
|
-
export type { ColumnType, DataTableDefaultRow, DatatableFilter, DatatableProps, DatatableState, RowActionType, TabsProps };
|
|
79
|
+
export type { ColumnType, DataTableDefaultRow, DatatableFilter, DatatableProps, DatatableState, DatatableStatePartial, RowActionType, TabsProps };
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xanui/ui",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.19",
|
|
4
4
|
"description": "",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "./index.js",
|
|
7
7
|
"module": "./index.mjs",
|
|
8
8
|
"types": "./index.d.ts",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@xanui/core": "^1.2.
|
|
10
|
+
"@xanui/core": "^1.2.37",
|
|
11
11
|
"@xanui/icons": "^1.1.10",
|
|
12
12
|
"pretty-class": "^1.0.8",
|
|
13
13
|
"react-state-bucket": "^1.2.6"
|