@chumsinc/sortable-tables 2.0.8 → 2.0.10

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 CHANGED
@@ -7,7 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
9
9
 
10
- #### [v2.0.8](https://github.com/ChumsInc/sortable-tables/compare/v2.0.7...v2.0.8)
10
+ #### [v2.0.10](https://github.com/ChumsInc/sortable-tables/compare/v2.0.9...v2.0.10)
11
+
12
+ > 2025-07-07
13
+
14
+
15
+
16
+
17
+ ### Commits
18
+
19
+ - [`8f314f4`](https://github.com/ChumsInc/sortable-tables/commit/8f314f4f89a0f47382de3a678b8ec124ac44ebdf) fix: allow key modifiers to be passed on onSelectRow
20
+ - [`7267ff2`](https://github.com/ChumsInc/sortable-tables/commit/7267ff20a6a233043919c53e46113f5300dea9af) fix: allow key modifiers to be passed on onSelectRow
21
+
22
+ #### [v2.0.9](https://github.com/ChumsInc/sortable-tables/compare/v2.0.8...v2.0.9) - 2025-05-21
23
+
24
+ > 2025-05-21
25
+
26
+
27
+
28
+
29
+ ### Commits
30
+
31
+ - [`08001a6`](https://github.com/ChumsInc/sortable-tables/commit/08001a6604fea9ae723147f36a54261d798153c8) fix: add correct fields type for SortableTableProps, npm updates
32
+
33
+ #### [v2.0.8](https://github.com/ChumsInc/sortable-tables/compare/v2.0.7...v2.0.8) - 2025-03-13
11
34
 
12
35
  > 2025-03-13
13
36
 
@@ -63,6 +63,8 @@ export default function DataTableCell<T = unknown>({ field, row, className, as,
63
63
  inert?: boolean | undefined;
64
64
  inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
65
65
  is?: string | undefined;
66
+ exportparts?: string | undefined;
67
+ part?: string | undefined;
66
68
  "aria-activedescendant"?: string | undefined;
67
69
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
68
70
  "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
@@ -137,7 +139,7 @@ export default function DataTableCell<T = unknown>({ field, row, className, as,
137
139
  onBlurCapture?: React.FocusEventHandler<HTMLTableCellElement> | undefined;
138
140
  onChange?: React.FormEventHandler<HTMLTableCellElement> | undefined;
139
141
  onChangeCapture?: React.FormEventHandler<HTMLTableCellElement> | undefined;
140
- onBeforeInput?: React.FormEventHandler<HTMLTableCellElement> | undefined;
142
+ onBeforeInput?: React.InputEventHandler<HTMLTableCellElement> | undefined;
141
143
  onBeforeInputCapture?: React.FormEventHandler<HTMLTableCellElement> | undefined;
142
144
  onInput?: React.FormEventHandler<HTMLTableCellElement> | undefined;
143
145
  onInputCapture?: React.FormEventHandler<HTMLTableCellElement> | undefined;
@@ -187,8 +189,6 @@ export default function DataTableCell<T = unknown>({ field, row, className, as,
187
189
  onProgressCapture?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
188
190
  onRateChange?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
189
191
  onRateChangeCapture?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
190
- onResize?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
191
- onResizeCapture?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
192
192
  onSeeked?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
193
193
  onSeekedCapture?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
194
194
  onSeeking?: React.ReactEventHandler<HTMLTableCellElement> | undefined;
@@ -269,6 +269,8 @@ export default function DataTableCell<T = unknown>({ field, row, className, as,
269
269
  onLostPointerCaptureCapture?: React.PointerEventHandler<HTMLTableCellElement> | undefined;
270
270
  onScroll?: React.UIEventHandler<HTMLTableCellElement> | undefined;
271
271
  onScrollCapture?: React.UIEventHandler<HTMLTableCellElement> | undefined;
272
+ onScrollEnd?: React.UIEventHandler<HTMLTableCellElement> | undefined;
273
+ onScrollEndCapture?: React.UIEventHandler<HTMLTableCellElement> | undefined;
272
274
  onWheel?: React.WheelEventHandler<HTMLTableCellElement> | undefined;
273
275
  onWheelCapture?: React.WheelEventHandler<HTMLTableCellElement> | undefined;
274
276
  onAnimationStart?: React.AnimationEventHandler<HTMLTableCellElement> | undefined;
@@ -3,8 +3,8 @@ import classNames from "classnames";
3
3
  import { noop } from "./utils";
4
4
  import DataTableCell from "./DataTableCell";
5
5
  function DataTableRow({ className, rowClassName, selected, fields, row, trRef, onClick = noop, ...rest }) {
6
- const clickHandler = () => {
7
- return onClick ? onClick() : noop();
6
+ const clickHandler = (ev) => {
7
+ return onClick ? onClick(ev) : noop();
8
8
  };
9
9
  const _className = typeof rowClassName === 'function' ? rowClassName(row) : rowClassName;
10
10
  if (!row) {
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableRow.js","sourceRoot":"","sources":["../src/DataTableRow.tsx"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,SAAS,YAAY,CAAc,EACmB,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,GAAG,IAAI,EACd,GAAG,IAAI,EACY;IACrE,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACzF,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,aAAI,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,UAAU,CAAC,EAAC,cAAc,EAAE,QAAQ,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EACxE,OAAO,EAAE,YAAY,KACjB,IAAI,YACP,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAC,aAAa,IAAa,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAA7B,KAAK,CAA4B,CAAC,CAAC,GACrF,CACR,CAAA;AACL,CAAC;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAC1C,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"DataTableRow.js","sourceRoot":"","sources":["../src/DataTableRow.tsx"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,SAAS,YAAY,CAAc,EACmB,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,GAAG,IAAI,EACd,GAAG,IAAI,EACY;IACrE,MAAM,YAAY,GAAG,CAAC,EAAa,EAAE,EAAE;QACnC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACzF,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,aAAI,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,UAAU,CAAC,EAAC,cAAc,EAAE,QAAQ,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EACxE,OAAO,EAAE,YAAY,KACjB,IAAI,YACP,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAC,aAAa,IAAa,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAA7B,KAAK,CAA4B,CAAC,CAAC,GACrF,CACR,CAAA;AACL,CAAC;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAC1C,eAAe,YAAY,CAAC"}
@@ -8,7 +8,7 @@ function DataTableTBody({ fields, data, keyField, rowClassName, renderRow, onSel
8
8
  if (renderRow) {
9
9
  return renderRow(row);
10
10
  }
11
- return (_jsx(DataTableRow, { onClick: () => onSelectRow(row), rowClassName: rowClassName, fields: fields, row: row, selected: isSelected }, keyValue));
11
+ return (_jsx(DataTableRow, { onClick: (ev) => onSelectRow(row, ev), rowClassName: rowClassName, fields: fields, row: row, selected: isSelected }, keyValue));
12
12
  }), children] }));
13
13
  }
14
14
  DataTableTBody.displayName = 'DataTableTBody';
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableTBody.js","sourceRoot":"","sources":["../src/DataTableTBody.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAK7B,SAAS,cAAc,CAAc,EACT,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,GAAG,IAAI,EAClB,QAAQ,GAAG,EAAE,EACb,QAAQ,EACR,GAAG,IAAI,EACc;IAE7C,OAAO,CACH,oBAAW,IAAI,aACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxF,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;gBAC1F,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBACD,OAAO,CACH,KAAC,YAAY,IAAgB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAC9C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,IAHzB,QAAQ,CAGoB,CAClD,CAAA;YACL,CAAC,CAAC,EACD,QAAQ,IACD,CACX,CAAA;AACL,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAC9C,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"DataTableTBody.js","sourceRoot":"","sources":["../src/DataTableTBody.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAK7B,SAAS,cAAc,CAAc,EACT,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,GAAG,IAAI,EAClB,QAAQ,GAAG,EAAE,EACb,QAAQ,EACR,GAAG,IAAI,EACc;IAE7C,OAAO,CACH,oBAAW,IAAI,aACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxF,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;gBAC1F,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBACD,OAAO,CACH,KAAC,YAAY,IAAgB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EACpD,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,IAHzB,QAAQ,CAGoB,CAClD,CAAA;YACL,CAAC,CAAC,EACD,QAAQ,IACD,CACX,CAAA;AACL,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAC9C,eAAe,cAAc,CAAA"}
package/dist/index.d.ts CHANGED
@@ -7,4 +7,4 @@ export { default as SortableTableHead } from './SortableTableHead';
7
7
  export { default as SortableTableTH } from './SortableTableTH';
8
8
  export { default as RowsPerPage, defaultRowsPerPageValues } from './RowsPerPage';
9
9
  export { default as TablePagination } from './TablePagination';
10
- export type { DataTableHeadProps, DataTableField, DataTableTHProps, DataTableClassNames, DataTableProps, SortableTableField, DataTableRowProps, DataTableTBodyProps, SortableTableTHProps, SortableTableHeadProps, SortProps, SortableTableProps, UISize, UIFlexAlign, TablePaginationProps, RowsPerPageProps } from './types';
10
+ export type { DataTableHeadProps, DataTableField, DataTableTHProps, DataTableClassNames, DataTableProps, SortableTableField, DataTableRowProps, DataTableTBodyProps, SortableTableTHProps, SortableTableHeadProps, SortProps, SortableTableProps, UISize, UIFlexAlign, TablePaginationProps, RowsPerPageProps, UITableSize, DataTableCellProps } from './types';
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React, { HTMLAttributes, ReactNode, TableHTMLAttributes } from 'react';
1
+ import React, { HTMLAttributes, ReactNode, TableHTMLAttributes, MouseEvent } from 'react';
2
2
  import classNames from "classnames";
3
3
  export interface SortProps<T = unknown> {
4
4
  field: keyof T;
@@ -32,7 +32,7 @@ export interface DataTableProps<T = unknown> extends TableHTMLAttributes<HTMLTab
32
32
  responsive?: boolean | "sm" | "md" | "lg" | "xl" | 'xxl';
33
33
  rowClassName?: DataTableClassNames<T>;
34
34
  renderRow?: (row: T) => React.ReactNode;
35
- onSelectRow?: (row: T) => T | void;
35
+ onSelectRow?: (row: T, ev?: MouseEvent) => T | void;
36
36
  selected?: string | number | ((row: T) => boolean);
37
37
  tfoot?: React.ReactElement<HTMLTableSectionElement>;
38
38
  tableHeadProps?: DataTableHeadProps<T>;
@@ -57,7 +57,7 @@ export interface DataTableTBodyProps<T = unknown> extends TableHTMLAttributes<HT
57
57
  keyField: keyof T | ((row: T) => string | number);
58
58
  rowClassName?: DataTableClassNames<T>;
59
59
  renderRow?: (row: T) => React.ReactNode;
60
- onSelectRow?: (row: T) => T | void;
60
+ onSelectRow?: (row: T, ev?: MouseEvent) => T | void;
61
61
  selected?: string | number | ((row: T) => boolean);
62
62
  children?: ReactNode;
63
63
  }
@@ -67,9 +67,10 @@ export interface DataTableRowProps<T = unknown> extends Omit<TableHTMLAttributes
67
67
  fields: DataTableField<T>[];
68
68
  row: T;
69
69
  trRef?: React.Ref<HTMLTableRowElement>;
70
- onClick?: (row?: T) => T | void;
70
+ onClick?: (ev?: MouseEvent) => void;
71
71
  }
72
72
  export interface SortableTableProps<T = unknown> extends DataTableProps<T> {
73
+ fields: SortableTableField<T>[];
73
74
  currentSort: SortProps<T>;
74
75
  onChangeSort: (sort: SortProps<T>) => void;
75
76
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chumsinc/sortable-tables",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "main": "./dist/index.js",
5
5
  "source": "./src/index.tsx",
6
6
  "types": "./dist/index.d.ts",
@@ -1,4 +1,4 @@
1
- import React, {ReactNode} from 'react';
1
+ import React, {ReactNode, MouseEvent} from 'react';
2
2
  import classNames from "classnames";
3
3
  import {noop} from "./utils";
4
4
  import {DataTableRowProps} from "./types";
@@ -15,8 +15,8 @@ function DataTableRow<T = unknown>({
15
15
  onClick = noop,
16
16
  ...rest
17
17
  }: DataTableRowProps<T>) {
18
- const clickHandler = () => {
19
- return onClick ? onClick() : noop();
18
+ const clickHandler = (ev:MouseEvent) => {
19
+ return onClick ? onClick(ev) : noop();
20
20
  }
21
21
 
22
22
  const _className = typeof rowClassName === 'function' ? rowClassName(row) : rowClassName;
@@ -26,7 +26,7 @@ function DataTableTBody<T = unknown>({
26
26
  return renderRow(row);
27
27
  }
28
28
  return (
29
- <DataTableRow key={keyValue} onClick={() => onSelectRow(row)}
29
+ <DataTableRow key={keyValue} onClick={(ev) => onSelectRow(row, ev)}
30
30
  rowClassName={rowClassName}
31
31
  fields={fields}
32
32
  row={row} selected={isSelected}/>
package/src/index.tsx CHANGED
@@ -8,7 +8,22 @@ export {default as SortableTableTH} from './SortableTableTH';
8
8
  export {default as RowsPerPage, defaultRowsPerPageValues} from './RowsPerPage';
9
9
  export {default as TablePagination} from './TablePagination';
10
10
  export type {
11
- DataTableHeadProps, DataTableField, DataTableTHProps, DataTableClassNames, DataTableProps,
12
- SortableTableField, DataTableRowProps, DataTableTBodyProps, SortableTableTHProps, SortableTableHeadProps,
13
- SortProps, SortableTableProps, UISize, UIFlexAlign, TablePaginationProps, RowsPerPageProps
11
+ DataTableHeadProps,
12
+ DataTableField,
13
+ DataTableTHProps,
14
+ DataTableClassNames,
15
+ DataTableProps,
16
+ SortableTableField,
17
+ DataTableRowProps,
18
+ DataTableTBodyProps,
19
+ SortableTableTHProps,
20
+ SortableTableHeadProps,
21
+ SortProps,
22
+ SortableTableProps,
23
+ UISize,
24
+ UIFlexAlign,
25
+ TablePaginationProps,
26
+ RowsPerPageProps,
27
+ UITableSize,
28
+ DataTableCellProps
14
29
  } from './types';
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React, {HTMLAttributes, ReactNode, TableHTMLAttributes} from 'react'
1
+ import React, {HTMLAttributes, ReactNode, TableHTMLAttributes, MouseEvent} from 'react'
2
2
  import classNames from "classnames";
3
3
 
4
4
 
@@ -44,7 +44,7 @@ export interface DataTableProps<T = unknown> extends TableHTMLAttributes<HTMLTab
44
44
  responsive?: boolean|"sm" | "md" | "lg" | "xl" | 'xxl';
45
45
  rowClassName?: DataTableClassNames<T>;
46
46
  renderRow?: (row: T) => React.ReactNode;
47
- onSelectRow?: (row: T) => T | void;
47
+ onSelectRow?: (row: T, ev?:MouseEvent) => T | void;
48
48
  selected?: string | number | ((row: T) => boolean);
49
49
  tfoot?: React.ReactElement<HTMLTableSectionElement>;
50
50
  tableHeadProps?: DataTableHeadProps<T>;
@@ -73,7 +73,7 @@ export interface DataTableTBodyProps<T = unknown> extends TableHTMLAttributes<HT
73
73
  keyField: keyof T | ((row: T) => string|number);
74
74
  rowClassName?: DataTableClassNames<T>;
75
75
  renderRow?: (row: T) => React.ReactNode;
76
- onSelectRow?: (row: T) => T | void;
76
+ onSelectRow?: (row: T, ev?:MouseEvent) => T | void;
77
77
  selected?: string | number | ((row: T) => boolean);
78
78
  children?: ReactNode;
79
79
  }
@@ -84,10 +84,11 @@ export interface DataTableRowProps<T = unknown> extends Omit <TableHTMLAttribute
84
84
  fields: DataTableField<T>[];
85
85
  row: T;
86
86
  trRef?: React.Ref<HTMLTableRowElement>;
87
- onClick?: (row?: T) => T | void;
87
+ onClick?: (ev?:MouseEvent) => void;
88
88
  }
89
89
 
90
90
  export interface SortableTableProps<T = unknown> extends DataTableProps<T> {
91
+ fields: SortableTableField<T>[];
91
92
  currentSort: SortProps<T>;
92
93
  onChangeSort: (sort: SortProps<T>) => void;
93
94
  }