@chumsinc/sortable-tables 2.0.9 → 2.0.11

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.9](https://github.com/ChumsInc/sortable-tables/compare/v2.0.8...v2.0.9)
10
+ #### [v2.0.11](https://github.com/ChumsInc/sortable-tables/compare/v2.0.10...v2.0.11)
11
+
12
+ > 2025-07-08
13
+
14
+
15
+
16
+
17
+ ### Commits
18
+
19
+ - [`83848ad`](https://github.com/ChumsInc/sortable-tables/commit/83848ad28bad0dcd659f3a4bcf2a9ee1ab44d860) fix: add stricter typing for onSelectRow MouseEvent<HTMLTableRowElement>
20
+
21
+ #### [v2.0.10](https://github.com/ChumsInc/sortable-tables/compare/v2.0.9...v2.0.10) - 2025-07-07
22
+
23
+ > 2025-07-07
24
+
25
+
26
+
27
+
28
+ ### Commits
29
+
30
+ - [`8f314f4`](https://github.com/ChumsInc/sortable-tables/commit/8f314f4f89a0f47382de3a678b8ec124ac44ebdf) fix: allow key modifiers to be passed on onSelectRow
31
+ - [`7267ff2`](https://github.com/ChumsInc/sortable-tables/commit/7267ff20a6a233043919c53e46113f5300dea9af) fix: allow key modifiers to be passed on onSelectRow
32
+
33
+ #### [v2.0.9](https://github.com/ChumsInc/sortable-tables/compare/v2.0.8...v2.0.9) - 2025-05-21
11
34
 
12
35
  > 2025-05-21
13
36
 
@@ -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,EAAkC,EAAE,EAAE;QACxD,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/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,7 +67,7 @@ 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
73
  fields: SortableTableField<T>[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chumsinc/sortable-tables",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
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<HTMLTableRowElement>) => {
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/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<HTMLTableRowElement>) => 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<HTMLTableRowElement>) => T | void;
77
77
  selected?: string | number | ((row: T) => boolean);
78
78
  children?: ReactNode;
79
79
  }
@@ -84,7 +84,7 @@ 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<HTMLTableRowElement>) => void;
88
88
  }
89
89
 
90
90
  export interface SortableTableProps<T = unknown> extends DataTableProps<T> {