@chumsinc/sortable-tables 2.1.2 → 3.0.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/CHANGELOG.md +87 -48
- package/README.md +94 -4
- package/dist/DataTable.d.ts +6 -6
- package/dist/DataTableCell.d.ts +299 -295
- package/dist/DataTableCols.d.ts +5 -0
- package/dist/DataTableContext.d.ts +10 -0
- package/dist/DataTableHead.d.ts +2 -2
- package/dist/DataTableProvider.d.ts +12 -0
- package/dist/DataTableRow.d.ts +1 -1
- package/dist/DataTableTBody.d.ts +1 -1
- package/dist/DataTableTH.d.ts +6 -6
- package/dist/RowsPerPage.d.ts +0 -1
- package/dist/SortableTable.d.ts +6 -6
- package/dist/SortableTableHead.d.ts +6 -6
- package/dist/SortableTableHeadWrapper.d.ts +9 -0
- package/dist/SortableTableTH.d.ts +6 -6
- package/dist/StandaloneDataTable.d.ts +6 -0
- package/dist/StandaloneSortHelper.d.ts +5 -0
- package/dist/StandaloneSortableTable.d.ts +6 -0
- package/dist/Table.d.ts +6 -5
- package/dist/index.cjs.js +30 -28
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +20 -10
- package/dist/index.es.js +521 -388
- package/dist/index.es.js.map +1 -1
- package/dist/types.d.ts +104 -105
- package/dist/useField.d.ts +6 -0
- package/dist/useTableContext.d.ts +2 -0
- package/dist/useTableFields.d.ts +9 -0
- package/dist/useTableSort.d.ts +9 -0
- package/eslint.config.mjs +3 -3
- package/package.json +7 -5
- package/src/DataTable.tsx +23 -28
- package/src/DataTableCell.tsx +33 -28
- package/src/DataTableCols.tsx +18 -0
- package/src/DataTableContext.ts +13 -0
- package/src/DataTableHead.tsx +9 -9
- package/src/DataTableProvider.tsx +62 -0
- package/src/DataTableRow.tsx +10 -8
- package/src/DataTableTBody.tsx +1 -5
- package/src/DataTableTH.tsx +11 -9
- package/src/RowsPerPage.tsx +6 -9
- package/src/SortableTable.tsx +26 -28
- package/src/SortableTableHead.tsx +17 -16
- package/src/SortableTableHeadWrapper.tsx +20 -0
- package/src/SortableTableTH.tsx +11 -8
- package/src/StandaloneDataTable.tsx +16 -0
- package/src/StandaloneSortHelper.tsx +15 -0
- package/src/StandaloneSortableTable.tsx +21 -0
- package/src/Table.tsx +49 -44
- package/src/TablePagination.tsx +4 -6
- package/src/index.tsx +26 -12
- package/src/types.ts +127 -128
- package/src/useField.ts +19 -0
- package/src/useTableContext.ts +10 -0
- package/src/useTableFields.ts +20 -0
- package/src/useTableSort.ts +20 -0
- package/test/Main.tsx +37 -0
- package/test/TableColumnsHandler.tsx +28 -0
- package/test/TestTable.tsx +51 -68
- package/test/data.ts +232 -232
- package/test/index.tsx +11 -11
- package/test/tableFields.tsx +52 -0
- package/test/utils.ts +19 -0
- package/tsconfig.json +1 -0
- package/vite.config.ts +1 -2
package/test/utils.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type {SortProps} from "../src";
|
|
2
|
+
import type {ProductLine} from "./data";
|
|
3
|
+
|
|
4
|
+
export const productLineSorter = (sort: SortProps<ProductLine>) => (a: ProductLine, b: ProductLine) => {
|
|
5
|
+
const {field, ascending} = sort;
|
|
6
|
+
const sortMod = ascending === false ? -1 : 1;
|
|
7
|
+
switch (field) {
|
|
8
|
+
case 'ProductLine':
|
|
9
|
+
case 'ProductLineDesc':
|
|
10
|
+
case 'ProductType':
|
|
11
|
+
case 'Valuation':
|
|
12
|
+
return (a[field].localeCompare(b[field]) === 0
|
|
13
|
+
? a.ProductLine.localeCompare(b.ProductLine)
|
|
14
|
+
: a[field].localeCompare(b[field])
|
|
15
|
+
) * sortMod;
|
|
16
|
+
default:
|
|
17
|
+
return a.ProductLine.localeCompare(b.ProductLine) * sortMod;
|
|
18
|
+
}
|
|
19
|
+
}
|
package/tsconfig.json
CHANGED
package/vite.config.ts
CHANGED
|
@@ -16,13 +16,12 @@ export default defineConfig({
|
|
|
16
16
|
formats: ['es', 'cjs'],
|
|
17
17
|
},
|
|
18
18
|
rollupOptions: {
|
|
19
|
-
external: ['react', 'react/jsx-runtime', 'react-dom', '
|
|
19
|
+
external: ['react', 'react/jsx-runtime', 'react-dom', '@emotion/styled'],
|
|
20
20
|
output: {
|
|
21
21
|
globals:{
|
|
22
22
|
react: 'React',
|
|
23
23
|
'react-dom': 'ReactDOM',
|
|
24
24
|
'react/jsx-runtime': 'jsxRuntime',
|
|
25
|
-
classnames: 'classNames',
|
|
26
25
|
'@emotion/styled': 'styled'
|
|
27
26
|
}
|
|
28
27
|
}
|