@tint-ui/data-table 0.3.5 → 0.3.6

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.
@@ -16,7 +16,8 @@ const BooleanType = props => {
16
16
  const variant = value == null ? "iconNull" : value ? "iconTrue" : "iconFalse";
17
17
  const classes = useDataTableClasses();
18
18
  return /*#__PURE__*/React.createElement("span", {
19
- className: classes.booleanCellType
19
+ className: classes.booleanCellType,
20
+ "data-row-click": "off"
20
21
  }, /*#__PURE__*/React.createElement(SvgThemeIcon, {
21
22
  className: classes[variant],
22
23
  icon: props[variant] || typeIcon[variant]
@@ -21,7 +21,8 @@ const BooleanType = props => {
21
21
  const variant = value == null ? "iconNull" : value ? "iconTrue" : "iconFalse";
22
22
  const classes = (0, _classes.useDataTableClasses)();
23
23
  return /*#__PURE__*/React.createElement("span", {
24
- className: classes.booleanCellType
24
+ className: classes.booleanCellType,
25
+ "data-row-click": "off"
25
26
  }, /*#__PURE__*/React.createElement(_svgIcon.SvgThemeIcon, {
26
27
  className: classes[variant],
27
28
  icon: props[variant] || typeIcon[variant]
package/cjs/classes.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  exports.__esModule = true;
4
5
  exports.useDataTableClasses = exports.classes = void 0;
package/cjs/context.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  exports.__esModule = true;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  exports.__esModule = true;
4
5
  exports.useDataTableFilterClasses = exports.filterClasses = void 0;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  exports.__esModule = true;
4
5
  exports.useDataTablePaginationClasses = exports.paginationClasses = void 0;
@@ -18,7 +18,8 @@ const rowButtonMenu = (info, menu) => {
18
18
  } = (0, _context.useDataTableContext)();
19
19
  const rowHandler = (0, _useRowMenu.useRowMenu)(info);
20
20
  return /*#__PURE__*/React.createElement("div", {
21
- className: classes.menuGroup
21
+ className: classes.menuGroup,
22
+ "data-row-click": "off"
22
23
  }, menu.map(item => {
23
24
  const {
24
25
  icon,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  exports.__esModule = true;
4
5
  exports.useDataTableToolbarClasses = exports.toolbarClasses = void 0;
@@ -681,7 +681,7 @@ const useDataTable = function (props) {
681
681
  }
682
682
  return event => {
683
683
  const target = event.target;
684
- if ("closest" in target && !target.closest("a[href],button,input,select,textarea,[role=button]")) {
684
+ if ("closest" in target && !target.closest("a[href],button,input,select,textarea,[role=button],[data-row-click=off]")) {
685
685
  onRowClick(data);
686
686
  }
687
687
  };
@@ -15,7 +15,7 @@ const useRowMenu = info => {
15
15
  trigger,
16
16
  triggerKey,
17
17
  confirmation,
18
- enabledKey
18
+ disabledKey
19
19
  } = item;
20
20
  const clickHandler = () => {
21
21
  if (typeof onClick === "function") {
@@ -37,8 +37,14 @@ const useRowMenu = info => {
37
37
  }));
38
38
  }
39
39
  };
40
+ let disabled = false;
41
+ if (disabledKey) {
42
+ disabled = data[disabledKey] === true;
43
+ } else if (triggerKey && !trigger && !onClick && data[triggerKey] == null) {
44
+ disabled = true;
45
+ }
40
46
  return {
41
- disabled: enabledKey ? data[enabledKey] === true : false,
47
+ disabled,
42
48
  onClick() {
43
49
  if (confirmation) {
44
50
  const message = app.replace(confirmation, data);
package/classes.js CHANGED
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import { classGroup } from "@tint-ui/tools/class-group";
2
4
  import { useClasses } from "@tint-ui/theme";
3
5
  const {
package/context.js CHANGED
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import * as React from "react";
2
4
  import { invariant } from "@tint-ui/tools/proof";
3
5
  const DataTableContext = /*#__PURE__*/React.createContext(null);
package/filter-classes.js CHANGED
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import { classGroup } from "@tint-ui/tools/class-group";
2
4
  import { useClasses } from "@tint-ui/theme";
3
5
  const {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tint-ui/data-table",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
4
4
  "author": "phragon@websoftlab.com",
5
5
  "license": "MIT",
6
6
  "dependencies": {
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import { classGroup } from "@tint-ui/tools/class-group";
2
4
  import { useClasses } from "@tint-ui/theme";
3
5
  const {
@@ -14,7 +14,8 @@ const rowButtonMenu = (info, menu) => {
14
14
  } = useDataTableContext();
15
15
  const rowHandler = useRowMenu(info);
16
16
  return /*#__PURE__*/React.createElement("div", {
17
- className: classes.menuGroup
17
+ className: classes.menuGroup,
18
+ "data-row-click": "off"
18
19
  }, menu.map(item => {
19
20
  const {
20
21
  icon,
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import { classGroup } from "@tint-ui/tools/class-group";
2
4
  import { useClasses } from "@tint-ui/theme";
3
5
  const {
package/types.d.ts CHANGED
@@ -17,7 +17,7 @@ interface OptionTrigger<TData> {
17
17
  id: string;
18
18
  trigger?: TriggerProp;
19
19
  label: string;
20
- enabledKey?: keyof TData | string;
20
+ disabledKey?: keyof TData | string;
21
21
  icon?: string;
22
22
  destructive?: boolean;
23
23
  confirmation?: string | null;
package/use-data-table.js CHANGED
@@ -679,7 +679,7 @@ const useDataTable = function (props) {
679
679
  }
680
680
  return event => {
681
681
  const target = event.target;
682
- if ("closest" in target && !target.closest("a[href],button,input,select,textarea,[role=button]")) {
682
+ if ("closest" in target && !target.closest("a[href],button,input,select,textarea,[role=button],[data-row-click=off]")) {
683
683
  onRowClick(data);
684
684
  }
685
685
  };
package/use-row-menu.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { CellContext } from "@tanstack/react-table";
2
2
  import type { RowMenuOption } from "./types";
3
- declare const useRowMenu: <TData>(info: CellContext<TData, unknown>) => (item: Pick<RowMenuOption<TData>, "onClick" | "trigger" | "confirmation" | "enabledKey" | "triggerKey">) => {
3
+ declare const useRowMenu: <TData>(info: CellContext<TData, unknown>) => (item: Pick<RowMenuOption<TData>, "onClick" | "trigger" | "confirmation" | "disabledKey" | "triggerKey">) => {
4
4
  disabled: boolean;
5
5
  onClick(): void;
6
6
  };
package/use-row-menu.js CHANGED
@@ -12,7 +12,7 @@ const useRowMenu = info => {
12
12
  trigger,
13
13
  triggerKey,
14
14
  confirmation,
15
- enabledKey
15
+ disabledKey
16
16
  } = item;
17
17
  const clickHandler = () => {
18
18
  if (typeof onClick === "function") {
@@ -35,8 +35,14 @@ const useRowMenu = info => {
35
35
  });
36
36
  }
37
37
  };
38
+ let disabled = false;
39
+ if (disabledKey) {
40
+ disabled = data[disabledKey] === true;
41
+ } else if (triggerKey && !trigger && !onClick && data[triggerKey] == null) {
42
+ disabled = true;
43
+ }
38
44
  return {
39
- disabled: enabledKey ? data[enabledKey] === true : false,
45
+ disabled,
40
46
  onClick() {
41
47
  if (confirmation) {
42
48
  const message = app.replace(confirmation, data);