@join-x5/react-data-grid 1.1.1-nightly → 1.1.2-nightly
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/dist/DataGrid.d.ts +3 -0
- package/dist/DataGrid.es.js +67 -0
- package/dist/DataGrid.es.js.map +1 -0
- package/dist/DataGridContext.d.ts +10 -0
- package/dist/DataGridContext.es.js +23 -0
- package/dist/DataGridContext.es.js.map +1 -0
- package/dist/Table/index.d.ts +25 -0
- package/dist/Table/index.es.js +93 -0
- package/dist/Table/index.es.js.map +1 -0
- package/dist/Table/types.d.ts +3 -0
- package/dist/TableBody/index.d.ts +11 -0
- package/dist/TableBody/index.es.js +26 -0
- package/dist/TableBody/index.es.js.map +1 -0
- package/dist/TableCell/hook.d.ts +4 -0
- package/dist/TableCell/hook.es.js +42 -0
- package/dist/TableCell/hook.es.js.map +1 -0
- package/dist/TableCell/index.d.ts +9 -0
- package/dist/TableCell/index.es.js +234 -0
- package/dist/TableCell/index.es.js.map +1 -0
- package/dist/TableCell/types.d.ts +46 -0
- package/dist/TableDropdown/index.d.ts +8 -0
- package/dist/TableDropdown/index.es.js +26 -0
- package/dist/TableDropdown/index.es.js.map +1 -0
- package/dist/TableHead/index.d.ts +6 -0
- package/dist/TableHead/index.es.js +31 -0
- package/dist/TableHead/index.es.js.map +1 -0
- package/dist/TableHeadCell/index.d.ts +14 -0
- package/dist/TableHeadCell/index.es.js +146 -0
- package/dist/TableHeadCell/index.es.js.map +1 -0
- package/dist/TableHeadCell/types.d.ts +37 -0
- package/dist/TableHeadCell/types.es.js +5 -0
- package/dist/TableHeadCell/types.es.js.map +1 -0
- package/dist/TableHeadRow/index.d.ts +3 -0
- package/dist/TableHeadRow/index.es.js +14 -0
- package/dist/TableHeadRow/index.es.js.map +1 -0
- package/dist/TableHeadRow/types.d.ts +2 -0
- package/dist/TableInputCell/button.d.ts +8 -0
- package/dist/TableInputCell/button.es.js +30 -0
- package/dist/TableInputCell/button.es.js.map +1 -0
- package/dist/TableInputCell/checkbox.d.ts +11 -0
- package/dist/TableInputCell/checkbox.es.js +32 -0
- package/dist/TableInputCell/checkbox.es.js.map +1 -0
- package/dist/TableInputCell/date.d.ts +18 -0
- package/dist/TableInputCell/date.es.js +40 -0
- package/dist/TableInputCell/date.es.js.map +1 -0
- package/dist/TableInputCell/dropdown.d.ts +19 -0
- package/dist/TableInputCell/dropdown.es.js +40 -0
- package/dist/TableInputCell/dropdown.es.js.map +1 -0
- package/dist/TableInputCell/expanding.d.ts +11 -0
- package/dist/TableInputCell/expanding.es.js +58 -0
- package/dist/TableInputCell/expanding.es.js.map +1 -0
- package/dist/TableInputCell/hook.d.ts +611 -0
- package/dist/TableInputCell/hook.es.js +52 -0
- package/dist/TableInputCell/hook.es.js.map +1 -0
- package/dist/TableInputCell/icon.d.ts +8 -0
- package/dist/TableInputCell/icon.es.js +30 -0
- package/dist/TableInputCell/icon.es.js.map +1 -0
- package/dist/TableInputCell/index.d.ts +10 -0
- package/dist/TableInputCell/label.d.ts +8 -0
- package/dist/TableInputCell/label.es.js +30 -0
- package/dist/TableInputCell/label.es.js.map +1 -0
- package/dist/TableInputCell/switch.d.ts +11 -0
- package/dist/TableInputCell/switch.es.js +32 -0
- package/dist/TableInputCell/switch.es.js.map +1 -0
- package/dist/TableInputCell/text.d.ts +22 -0
- package/dist/TableInputCell/text.es.js +91 -0
- package/dist/TableInputCell/text.es.js.map +1 -0
- package/dist/TableInputCell/textarea.d.ts +23 -0
- package/dist/TableInputCell/textarea.es.js +83 -0
- package/dist/TableInputCell/textarea.es.js.map +1 -0
- package/dist/TableInputCell/types.d.ts +4 -0
- package/dist/TableRow/index.d.ts +5 -0
- package/dist/TableRow/index.es.js +25 -0
- package/dist/TableRow/index.es.js.map +1 -0
- package/dist/TableRow/types.d.ts +2 -0
- package/dist/hook.d.ts +3 -0
- package/dist/hook.es.js +23 -0
- package/dist/hook.es.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.es.js +72 -0
- package/dist/index.es.js.map +1 -0
- package/dist/types.d.ts +54 -0
- package/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useContext as d, useRef as f } from "react";
|
|
3
|
+
import { useRefMerge as C } from "@join-x5/react-theme";
|
|
4
|
+
import { DataGridContext as m } from "../DataGridContext.es.js";
|
|
5
|
+
import { useDataGridTableCell as D } from "../TableCell/hook.es.js";
|
|
6
|
+
const w = (t, u) => {
|
|
7
|
+
const {
|
|
8
|
+
isDisabled: o,
|
|
9
|
+
isActive: c,
|
|
10
|
+
setIsActive: i
|
|
11
|
+
} = t, l = C(u), s = f(null), r = () => {
|
|
12
|
+
const e = s.current;
|
|
13
|
+
o || !e || (i == null || i(!0), setTimeout(() => {
|
|
14
|
+
e.selectionStart = e.value.length, e.focus();
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
cellProps: {
|
|
19
|
+
...t,
|
|
20
|
+
ref: l,
|
|
21
|
+
onClick: (e) => {
|
|
22
|
+
var n;
|
|
23
|
+
c || e.currentTarget.focus(), (n = t.onClick) == null || n.call(t, e);
|
|
24
|
+
},
|
|
25
|
+
onDoubleClick: (e) => {
|
|
26
|
+
var n;
|
|
27
|
+
r(), (n = t.onDoubleClick) == null || n.call(t, e);
|
|
28
|
+
},
|
|
29
|
+
onKeyDown: (e) => {
|
|
30
|
+
var a;
|
|
31
|
+
(a = t.onKeyDown) == null || a.call(t, e);
|
|
32
|
+
const n = e.code === "Enter" || e.code === "NumpadEnter";
|
|
33
|
+
!c && n && r();
|
|
34
|
+
},
|
|
35
|
+
"data-editable": o ? void 0 : !0
|
|
36
|
+
},
|
|
37
|
+
ref: l,
|
|
38
|
+
inputRef: s
|
|
39
|
+
};
|
|
40
|
+
}, y = (t) => {
|
|
41
|
+
const u = D(t), o = d(m), c = t.id === o.activeCell;
|
|
42
|
+
return {
|
|
43
|
+
...u,
|
|
44
|
+
isActive: c,
|
|
45
|
+
setIsActive: (l) => o.setActiveCell(l ? t.id : null)
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export {
|
|
49
|
+
y as useDataGridInputCell,
|
|
50
|
+
w as useTableCellTextInput
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=hook.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.es.js","sources":["../../src/TableInputCell/hook.ts"],"sourcesContent":["'use client';\n\nimport {useContext, useRef} from 'react';\nimport {useRefMerge} from '@join-x5/react-theme';\n\nimport {DataGridContext} from '../DataGridContext';\nimport {useDataGridTableCell} from '../TableCell/hook';\n\nimport type {KeyboardEventHandler, MouseEventHandler, Ref} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {TableCellProps} from 'TableCell';\n\nexport const useTableCellTextInput = <T extends HTMLInputElement | HTMLTextAreaElement>(\n props: TableCellProps,\n baseRef: Ref<HTMLTableCellElement>\n) => {\n const {isDisabled, isActive, setIsActive} = props;\n\n const ref = useRefMerge(baseRef);\n const inputRef = useRef<T>(null);\n\n const onEdit = () => {\n const input = inputRef.current;\n if (isDisabled || !input) {\n return;\n }\n\n setIsActive?.(true);\n\n setTimeout(() => {\n input.selectionStart = input.value.length;\n input.focus();\n });\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = e => {\n if (!isActive) {\n e.currentTarget.focus();\n }\n\n props.onClick?.(e);\n };\n\n const onDoubleClick: MouseEventHandler<HTMLTableCellElement> = e => {\n onEdit();\n\n props.onDoubleClick?.(e);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (!isActive && isEnterCode) {\n onEdit();\n }\n };\n\n const cellProps = {\n ...props,\n\n ref,\n onClick,\n onDoubleClick,\n onKeyDown,\n\n 'data-editable': !isDisabled ? true : undefined,\n };\n\n return {cellProps, ref, inputRef};\n};\n\nexport const useDataGridInputCell = (cell: ReactTableCell<unknown, unknown>) => {\n const props = useDataGridTableCell(cell);\n const context = useContext(DataGridContext);\n\n const isActive = cell.id === context.activeCell;\n const setIsActive = newIsActive => context.setActiveCell(newIsActive ? cell.id : null);\n\n return {...props, isActive, setIsActive};\n};\n"],"names":["useTableCellTextInput","isDisabled","isActive","setIsActive","selectionStart","props","ref","e","inputRef"],"mappings":";;;;;AAYaA;AAIL;AAAA;AAACC;AAAYC;AAAUC;AAM3B;AACIF;AAOIG;AACM;AACb;AAsCI;AAAA;AAXW;AACbC;AAEHC;;AA1BA;AAIgBC;AAClB;;AAGS;AAEeA;AACxB;;AAGEF;AAEA;AAEI;AACK;AAEX;AAUiC;AACjC;AAEmBC;AAAKE;AAC1B;AAGQH;AAMC;AAAA;AAAIA;AAAOH;AAFmE;AAGvF;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FRC, PropsWithChildren } from '@join-x5/react-theme';
|
|
2
|
+
import { DataGridTableCellProps, TableCellProps } from '../TableCell';
|
|
3
|
+
type DefaultAny = any;
|
|
4
|
+
type TIconCell = FRC<HTMLTableCellElement, TableCellProps>;
|
|
5
|
+
export declare const IconCell: TIconCell;
|
|
6
|
+
export type DataGridIconCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;
|
|
7
|
+
export declare const DataGridIconCell: FRC<HTMLTableCellElement, DataGridIconCellProps>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as n } from "@emotion/react/jsx-runtime";
|
|
3
|
+
import { SizeTokenValue as e, forwardRef as a } from "@join-x5/react-theme";
|
|
4
|
+
import { TableCell as m } from "../TableCell/index.es.js";
|
|
5
|
+
import { useDataGridInputCell as c } from "./hook.es.js";
|
|
6
|
+
const s = {
|
|
7
|
+
[e.XXSmall]: 8,
|
|
8
|
+
[e.XSmall]: 8,
|
|
9
|
+
[e.Small]: 8,
|
|
10
|
+
[e.Medium]: 12,
|
|
11
|
+
[e.Large]: 14,
|
|
12
|
+
[e.XLarge]: 14
|
|
13
|
+
}, d = a((l, r) => {
|
|
14
|
+
const {
|
|
15
|
+
padding: o = s[l.size ?? e.Medium],
|
|
16
|
+
...t
|
|
17
|
+
} = l;
|
|
18
|
+
return /* @__PURE__ */ n(m, { ref: r, padding: o, ...t });
|
|
19
|
+
}), C = a((l, r) => {
|
|
20
|
+
const {
|
|
21
|
+
cell: o,
|
|
22
|
+
children: t
|
|
23
|
+
} = l, i = c(o);
|
|
24
|
+
return /* @__PURE__ */ n(d, { ref: r, ...i, children: t });
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
C as DataGridIconCell,
|
|
28
|
+
d as IconCell
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=icon.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.es.js","sources":["../../src/TableInputCell/icon.tsx"],"sourcesContent":["'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TIconCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, number> = {\n [SizeTokenValue.XXSmall]: 8,\n [SizeTokenValue.XSmall]: 8,\n [SizeTokenValue.Small]: 8,\n [SizeTokenValue.Medium]: 12,\n [SizeTokenValue.Large]: 14,\n [SizeTokenValue.XLarge]: 14,\n};\n\nexport const IconCell: TIconCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridIconCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridIconCell: FRC<HTMLTableCellElement, DataGridIconCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <IconCell ref={ref} {...cellProps}>\n {children}\n </IconCell>\n );\n});\n"],"names":["rest","cell","children"],"mappings":";;;;;AAgBA;AAAoD;AACxB;AACD;AACD;AACC;AACD;AAE1B;AAGQ;AAAA;AAA0D;AAAMA;AAEtE;AACF;AAKQ;AAAA;AAACC;AAAMC;AAIb;AAKF;;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './button';
|
|
2
|
+
export * from './checkbox';
|
|
3
|
+
export * from './date';
|
|
4
|
+
export * from './dropdown';
|
|
5
|
+
export * from './expanding';
|
|
6
|
+
export * from './icon';
|
|
7
|
+
export * from './label';
|
|
8
|
+
export * from './switch';
|
|
9
|
+
export * from './text';
|
|
10
|
+
export * from './textarea';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FRC, PropsWithChildren } from '@join-x5/react-theme';
|
|
2
|
+
import { DataGridTableCellProps, TableCellProps } from '../TableCell';
|
|
3
|
+
type DefaultAny = any;
|
|
4
|
+
type TLabelCell = FRC<HTMLTableCellElement, TableCellProps>;
|
|
5
|
+
export declare const LabelCell: TLabelCell;
|
|
6
|
+
export type DataGridLabelCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;
|
|
7
|
+
export declare const DataGridLabelCell: FRC<HTMLTableCellElement, DataGridLabelCellProps>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as a } from "@emotion/react/jsx-runtime";
|
|
3
|
+
import { SizeTokenValue as e, forwardRef as p } from "@join-x5/react-theme";
|
|
4
|
+
import { TableCell as m } from "../TableCell/index.es.js";
|
|
5
|
+
import { useDataGridInputCell as n } from "./hook.es.js";
|
|
6
|
+
const x = {
|
|
7
|
+
[e.XXSmall]: "6px 8px",
|
|
8
|
+
[e.XSmall]: "6px 8px",
|
|
9
|
+
[e.Small]: "6px 8px",
|
|
10
|
+
[e.Medium]: "10px 12px",
|
|
11
|
+
[e.Large]: "12px",
|
|
12
|
+
[e.XLarge]: "12px"
|
|
13
|
+
}, s = p((l, r) => {
|
|
14
|
+
const {
|
|
15
|
+
padding: o = x[l.size ?? e.Medium],
|
|
16
|
+
...t
|
|
17
|
+
} = l;
|
|
18
|
+
return /* @__PURE__ */ a(m, { ref: r, padding: o, ...t });
|
|
19
|
+
}), g = p((l, r) => {
|
|
20
|
+
const {
|
|
21
|
+
cell: o,
|
|
22
|
+
children: t
|
|
23
|
+
} = l, i = n(o);
|
|
24
|
+
return /* @__PURE__ */ a(s, { ref: r, ...i, children: t });
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
g as DataGridLabelCell,
|
|
28
|
+
s as LabelCell
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=label.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.es.js","sources":["../../src/TableInputCell/label.tsx"],"sourcesContent":["'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TLabelCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, string> = {\n [SizeTokenValue.XXSmall]: '6px 8px',\n [SizeTokenValue.XSmall]: '6px 8px',\n [SizeTokenValue.Small]: '6px 8px',\n [SizeTokenValue.Medium]: '10px 12px',\n [SizeTokenValue.Large]: '12px',\n [SizeTokenValue.XLarge]: '12px',\n};\n\nexport const LabelCell: TLabelCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridLabelCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridLabelCell: FRC<HTMLTableCellElement, DataGridLabelCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <LabelCell ref={ref} {...cellProps}>\n {children}\n </LabelCell>\n );\n});\n"],"names":["rest","cell","children"],"mappings":";;;;;AAgBA;AAAoD;AACxB;AACD;AACD;AACC;AACD;AAE1B;AAGQ;AAAA;AAA0D;AAAMA;AAEtE;AACF;AAKQ;AAAA;AAACC;AAAMC;AAIb;AAKF;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SwitchProps } from '@join-x5/react';
|
|
2
|
+
import { FRC } from '@join-x5/react-theme';
|
|
3
|
+
import { DataGridTableCellProps, TableCellProps } from '../TableCell';
|
|
4
|
+
type DefaultAny = any;
|
|
5
|
+
type TSwitchCell = FRC<HTMLTableCellElement, {
|
|
6
|
+
inputProps: SwitchProps;
|
|
7
|
+
} & Omit<TableCellProps, 'value' | 'onChange'>>;
|
|
8
|
+
export declare const SwitchCell: TSwitchCell;
|
|
9
|
+
export type DataGridSwitchCellProps<T = DefaultAny, V = DefaultAny> = SwitchProps & DataGridTableCellProps<T, V>;
|
|
10
|
+
export declare const DataGridSwitchCell: FRC<HTMLTableCellElement, DataGridSwitchCellProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as p } from "@emotion/react/jsx-runtime";
|
|
3
|
+
import { SizeTokenValue as t, forwardRef as a } from "@join-x5/react-theme";
|
|
4
|
+
import { Switch as n } from "@join-x5/react";
|
|
5
|
+
import { TableCell as s } from "../TableCell/index.es.js";
|
|
6
|
+
import { useDataGridInputCell as m } from "./hook.es.js";
|
|
7
|
+
const d = {
|
|
8
|
+
[t.XXSmall]: "8px",
|
|
9
|
+
[t.XSmall]: "8px",
|
|
10
|
+
[t.Small]: "8px",
|
|
11
|
+
[t.Medium]: "12px",
|
|
12
|
+
[t.Large]: "14px 12px 14px 14px",
|
|
13
|
+
[t.XLarge]: "14px 12px 14px 14px"
|
|
14
|
+
}, x = a((e, r) => {
|
|
15
|
+
const {
|
|
16
|
+
inputProps: i,
|
|
17
|
+
padding: l = d[e.size ?? t.Medium],
|
|
18
|
+
...o
|
|
19
|
+
} = e;
|
|
20
|
+
return /* @__PURE__ */ p(s, { ref: r, padding: l, ...o, children: /* @__PURE__ */ p(n, { "data-action": !0, tabIndex: -1, disabled: e.isDisabled, size: t.Small, ...i }) });
|
|
21
|
+
}), g = a((e, r) => {
|
|
22
|
+
const {
|
|
23
|
+
cell: i,
|
|
24
|
+
...l
|
|
25
|
+
} = e, o = m(i);
|
|
26
|
+
return /* @__PURE__ */ p(x, { ref: r, ...o, inputProps: l });
|
|
27
|
+
});
|
|
28
|
+
export {
|
|
29
|
+
g as DataGridSwitchCell,
|
|
30
|
+
x as SwitchCell
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=switch.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.es.js","sources":["../../src/TableInputCell/switch.tsx"],"sourcesContent":["'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\nimport {Switch} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {SwitchProps} from '@join-x5/react';\nimport type {FRC, CSSProperties} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TSwitchCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: SwitchProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nconst sizePadding: Record<SizeTokenValue, CSSProperties['padding']> = {\n [SizeTokenValue.XXSmall]: '8px',\n [SizeTokenValue.XSmall]: '8px',\n [SizeTokenValue.Small]: '8px',\n [SizeTokenValue.Medium]: '12px',\n [SizeTokenValue.Large]: '14px 12px 14px 14px',\n [SizeTokenValue.XLarge]: '14px 12px 14px 14px',\n};\n\nexport const SwitchCell: TSwitchCell = forwardRef((props, ref) => {\n const {inputProps, padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return (\n <TableCell ref={ref} padding={padding} {...rest}>\n <Switch data-action tabIndex={-1} disabled={props.isDisabled} size={SizeTokenValue.Small} {...inputProps} />\n </TableCell>\n );\n});\n\nexport type DataGridSwitchCellProps<T = DefaultAny, V = DefaultAny> = SwitchProps & DataGridTableCellProps<T, V>;\n\nexport const DataGridSwitchCell: FRC<HTMLTableCellElement, DataGridSwitchCellProps> = forwardRef((props, ref) => {\n const {cell, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as SwitchProps;\n\n return <SwitchCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n"],"names":["inputProps","rest","cell"],"mappings":";;;;;;AAuBA;AAAsE;AAC1C;AACD;AACD;AACC;AACD;AAE1B;AAGQ;AAAA;AAACA;AAAqE;AAAMC;AAGhF;AAIJ;AAKQ;AAAA;AAACC;AAASD;AAMhB;AACF;;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FocusEvent, InputHTMLAttributes } from 'react';
|
|
2
|
+
import { Cell as ReactTableCell } from '@tanstack/react-table';
|
|
3
|
+
import { FRC, PropsWithChildren } from '@join-x5/react-theme';
|
|
4
|
+
import { DataGridTableCellProps, TableCellProps } from '../TableCell';
|
|
5
|
+
import { ColumnDefTemplate } from './types';
|
|
6
|
+
type DefaultAny = any;
|
|
7
|
+
export type TextInputProps = {
|
|
8
|
+
value: string;
|
|
9
|
+
onChange: (newValue: string, e: FocusEvent<HTMLInputElement>) => void;
|
|
10
|
+
} & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;
|
|
11
|
+
type TTextInputCell = FRC<HTMLTableCellElement, {
|
|
12
|
+
inputProps: TextInputProps;
|
|
13
|
+
} & Omit<TableCellProps, 'value' | 'onChange'>>;
|
|
14
|
+
export declare const TextInputCell: TTextInputCell;
|
|
15
|
+
export type DataGridTextInputCellProps<T = DefaultAny, V = DefaultAny> = {
|
|
16
|
+
getValue: (cell: ReactTableCell<T, V>) => string;
|
|
17
|
+
onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLInputElement>) => void;
|
|
18
|
+
} & Omit<TextInputProps, 'value' | 'onChange'> & DataGridTableCellProps<T, V> & PropsWithChildren;
|
|
19
|
+
export declare const DataGridTextInputCell: FRC<HTMLTableCellElement, DataGridTextInputCellProps>;
|
|
20
|
+
export type GetDataGridTextInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<DataGridTextInputCellProps<T, V>, 'cell' | 'children'>;
|
|
21
|
+
export declare const getDataGridTextInputCell: <T, V>(args: GetDataGridTextInputCellArgs<T, V>) => ColumnDefTemplate<T, V>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as g, jsxs as e } from "@emotion/react/jsx-runtime";
|
|
3
|
+
import m from "@emotion/styled/base";
|
|
4
|
+
import { useState as h, useEffect as A } from "react";
|
|
5
|
+
import { forwardRef as t } from "@join-x5/react-theme";
|
|
6
|
+
import { TableCell as a, TableCellContent as F } from "../TableCell/index.es.js";
|
|
7
|
+
import { useTableCellTextInput as J, useDataGridInputCell as Y } from "./hook.es.js";
|
|
8
|
+
function X() {
|
|
9
|
+
return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
|
|
10
|
+
}
|
|
11
|
+
const U = /* @__PURE__ */ m("div", process.env.NODE_ENV === "production" ? {
|
|
12
|
+
target: "ewl8o3j1"
|
|
13
|
+
} : {
|
|
14
|
+
target: "ewl8o3j1",
|
|
15
|
+
label: "ChildContent"
|
|
16
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
17
|
+
name: "1juk05q",
|
|
18
|
+
styles: "&[data-hidden]{visibility:hidden;pointer-events:none;}"
|
|
19
|
+
} : {
|
|
20
|
+
name: "1juk05q",
|
|
21
|
+
styles: "&[data-hidden]{visibility:hidden;pointer-events:none;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVJbnB1dENlbGwvdGV4dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0IrQiIsImZpbGUiOiIvaG9tZS9zYWR5a292c2Qvam9pbi14NS9wYWNrYWdlcy9kYXRhLWdyaWQvc3JjL1RhYmxlSW5wdXRDZWxsL3RleHQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtmb3J3YXJkUmVmfSBmcm9tICdAam9pbi14NS9yZWFjdC10aGVtZSc7XG5cbmltcG9ydCB7VGFibGVDZWxsLCBUYWJsZUNlbGxDb250ZW50fSBmcm9tICcuLi9UYWJsZUNlbGwnO1xuXG5pbXBvcnQge3VzZURhdGFHcmlkSW5wdXRDZWxsLCB1c2VUYWJsZUNlbGxUZXh0SW5wdXR9IGZyb20gJy4vaG9vayc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBGb2N1c0V2ZW50LFxuICBGb2N1c0V2ZW50SGFuZGxlcixcbiAgSW5wdXRIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0NlbGwgYXMgUmVhY3RUYWJsZUNlbGx9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC10YWJsZSc7XG5pbXBvcnQgdHlwZSB7RlJDLCBQcm9wc1dpdGhDaGlsZHJlbn0gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHR5cGUge0RhdGFHcmlkVGFibGVDZWxsUHJvcHMsIFRhYmxlQ2VsbFByb3BzfSBmcm9tICcuLi9UYWJsZUNlbGwnO1xuaW1wb3J0IHR5cGUge0NvbHVtbkRlZlRlbXBsYXRlfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgQ2hpbGRDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgSW5wdXQgPSBzdHlsZWQuaW5wdXRgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRGVmYXVsdEFueSA9IGFueTtcblxuZXhwb3J0IHR5cGUgVGV4dElucHV0UHJvcHMgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAobmV3VmFsdWU6IHN0cmluZywgZTogRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbn0gJiBPbWl0PElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4sICd2YWx1ZScgfCAnb25DaGFuZ2UnPjtcblxudHlwZSBUVGV4dElucHV0Q2VsbCA9IEZSQzxcbiAgSFRNTFRhYmxlQ2VsbEVsZW1lbnQsXG4gIHtcbiAgICBpbnB1dFByb3BzOiBUZXh0SW5wdXRQcm9wcztcbiAgfSAmIE9taXQ8VGFibGVDZWxsUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPlxuPjtcblxuZXhwb3J0IGNvbnN0IFRleHRJbnB1dENlbGw6IFRUZXh0SW5wdXRDZWxsID0gZm9yd2FyZFJlZigoe2lucHV0UHJvcHMsIC4uLnByb3BzfSwgYmFzZVJlZikgPT4ge1xuICBjb25zdCB7Y2VsbFByb3BzLCByZWYsIGlucHV0UmVmfSA9IHVzZVRhYmxlQ2VsbFRleHRJbnB1dDxIVE1MSW5wdXRFbGVtZW50Pihwcm9wcywgYmFzZVJlZik7XG5cbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShpbnB1dFByb3BzLnZhbHVlID8/ICcnKTtcblxuICBjb25zdCBvbkNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gZSA9PiB7XG4gICAgc2V0VmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSBlID0+IHtcbiAgICBjb25zdCBpc0VudGVyQ29kZSA9IGUuY29kZSA9PT0gJ0VudGVyJyB8fCBlLmNvZGUgPT09ICdOdW1wYWRFbnRlcic7XG5cbiAgICBpZiAoZS5jb2RlID09PSAnRXNjYXBlJyB8fCBpc0VudGVyQ29kZSkge1xuICAgICAgcHJvcHMuc2V0SXNBY3RpdmU/LihmYWxzZSk7XG4gICAgICBlLmN1cnJlbnRUYXJnZXQuYmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gZSA9PiB7XG4gICAgcHJvcHMuc2V0SXNBY3RpdmU/LihmYWxzZSk7XG5cbiAgICBpbnB1dFByb3BzLm9uQ2hhbmdlKHZhbHVlLCBlKTtcbiAgICBpbnB1dFByb3BzLm9uQmx1cj8uKGUpO1xuICAgIHJlZi5jdXJyZW50Py5ibHVyKCk7XG4gIH07XG5cbiAgY29uc3QgaXNDaGlsZEhpZGRlbiA9IHByb3BzLmlzQWN0aXZlID8gdHJ1ZSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCByZXN1bHRQcm9wcyA9IHtcbiAgICAuLi5pbnB1dFByb3BzLFxuXG4gICAgdmFsdWUsXG4gICAgb25DaGFuZ2UsXG4gICAgb25LZXlEb3duLFxuICAgIG9uQmx1cixcblxuICAgIHNpemU6IDAsXG4gICAgJ2RhdGEtaGlkZGVuJzogcHJvcHMuaXNBY3RpdmUgPyB1bmRlZmluZWQgOiB0cnVlLFxuICB9O1xuXG4gIGNvbnN0IGNvbnRlbnRQcm9wcyA9IHtcbiAgICBpc011bHRpbGluZTogY2VsbFByb3BzLmlzTXVsdGlsaW5lLFxuICAgIHdoaXRlU3BhY2U6IGNlbGxQcm9wcy53aGl0ZVNwYWNlLFxuICAgIHdvcmRCcmVhazogY2VsbFByb3BzLndvcmRCcmVhayxcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFZhbHVlKGlucHV0UHJvcHMudmFsdWUpO1xuICB9LCBbaW5wdXRQcm9wcy52YWx1ZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFRhYmxlQ2VsbCB7Li4uY2VsbFByb3BzfT5cbiAgICAgIDxUYWJsZUNlbGxDb250ZW50IHsuLi5jb250ZW50UHJvcHN9PlxuICAgICAgICA8Q2hpbGRDb250ZW50IGRhdGEtaGlkZGVuPXtpc0NoaWxkSGlkZGVufT57cHJvcHMuY2hpbGRyZW59PC9DaGlsZENvbnRlbnQ+XG4gICAgICAgIDxJbnB1dCByZWY9e2lucHV0UmVmfSB7Li4ucmVzdWx0UHJvcHN9IC8+XG4gICAgICA8L1RhYmxlQ2VsbENvbnRlbnQ+XG4gICAgPC9UYWJsZUNlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgRGF0YUdyaWRUZXh0SW5wdXRDZWxsUHJvcHM8VCA9IERlZmF1bHRBbnksIFYgPSBEZWZhdWx0QW55PiA9IHtcbiAgZ2V0VmFsdWU6IChjZWxsOiBSZWFjdFRhYmxlQ2VsbDxULCBWPikgPT4gc3RyaW5nO1xuICBvbkNoYW5nZTogKGNlbGw6IFJlYWN0VGFibGVDZWxsPFQsIFY+LCBuZXdWYWx1ZTogc3RyaW5nLCBlOiBGb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xufSAmIE9taXQ8VGV4dElucHV0UHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPiAmXG4gIERhdGFHcmlkVGFibGVDZWxsUHJvcHM8VCwgVj4gJlxuICBQcm9wc1dpdGhDaGlsZHJlbjtcblxuZXhwb3J0IGNvbnN0IERhdGFHcmlkVGV4dElucHV0Q2VsbDogRlJDPEhUTUxUYWJsZUNlbGxFbGVtZW50LCBEYXRhR3JpZFRleHRJbnB1dENlbGxQcm9wcz4gPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIGNoaWxkcmVuLCAuLi5yZXN0fSA9IHByb3BzO1xuXG4gIGNvbnN0IGNlbGxQcm9wcyA9IHVzZURhdGFHcmlkSW5wdXRDZWxsKGNlbGwpO1xuXG4gIGNvbnN0IGlucHV0UHJvcHMgPSByZXN0IGFzIFRleHRJbnB1dFByb3BzO1xuICBpbnB1dFByb3BzLnZhbHVlID0gZ2V0VmFsdWUoY2VsbCk7XG4gIGlucHV0UHJvcHMub25DaGFuZ2UgPSAobmV3VmFsdWUsIGUpID0+IG9uQ2hhbmdlKGNlbGwsIG5ld1ZhbHVlLCBlKTtcblxuICByZXR1cm4gKFxuICAgIDxUZXh0SW5wdXRDZWxsIHJlZj17cmVmfSB7Li4uY2VsbFByb3BzfSBpbnB1dFByb3BzPXtpbnB1dFByb3BzfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1RleHRJbnB1dENlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgR2V0RGF0YUdyaWRUZXh0SW5wdXRDZWxsQXJnczxUID0gRGVmYXVsdEFueSwgViA9IERlZmF1bHRBbnk+ID0gT21pdDxcbiAgRGF0YUdyaWRUZXh0SW5wdXRDZWxsUHJvcHM8VCwgVj4sXG4gICdjZWxsJyB8ICdjaGlsZHJlbidcbj47XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhR3JpZFRleHRJbnB1dENlbGwgPSA8VCwgVj4oYXJnczogR2V0RGF0YUdyaWRUZXh0SW5wdXRDZWxsQXJnczxULCBWPik6IENvbHVtbkRlZlRlbXBsYXRlPFQsIFY+ID0+IHtcbiAgcmV0dXJuICh7Y2VsbH0pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gKGNlbGwuZ2V0VmFsdWUoKSA/PyBudWxsKSBhcyBSZWFjdE5vZGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFHcmlkVGV4dElucHV0Q2VsbCBrZXk9e2NlbGwuaWR9IGNlbGw9e2NlbGx9IHsuLi5hcmdzfT5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L0RhdGFHcmlkVGV4dElucHV0Q2VsbD5cbiAgICApO1xuICB9O1xufTtcbiJdfQ== */",
|
|
22
|
+
toString: X
|
|
23
|
+
}), N = /* @__PURE__ */ m("input", process.env.NODE_ENV === "production" ? {
|
|
24
|
+
target: "ewl8o3j0"
|
|
25
|
+
} : {
|
|
26
|
+
target: "ewl8o3j0",
|
|
27
|
+
label: "Input"
|
|
28
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
29
|
+
name: "kvz3z7",
|
|
30
|
+
styles: "position:absolute;top:0;left:0;width:100%;min-width:10px;padding:0;background-color:transparent;border:none;outline:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;&[data-hidden]{visibility:hidden;pointer-events:none;}"
|
|
31
|
+
} : {
|
|
32
|
+
name: "kvz3z7",
|
|
33
|
+
styles: "position:absolute;top:0;left:0;width:100%;min-width:10px;padding:0;background-color:transparent;border:none;outline:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;&[data-hidden]{visibility:hidden;pointer-events:none;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVJbnB1dENlbGwvdGV4dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0IwQiIsImZpbGUiOiIvaG9tZS9zYWR5a292c2Qvam9pbi14NS9wYWNrYWdlcy9kYXRhLWdyaWQvc3JjL1RhYmxlSW5wdXRDZWxsL3RleHQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtmb3J3YXJkUmVmfSBmcm9tICdAam9pbi14NS9yZWFjdC10aGVtZSc7XG5cbmltcG9ydCB7VGFibGVDZWxsLCBUYWJsZUNlbGxDb250ZW50fSBmcm9tICcuLi9UYWJsZUNlbGwnO1xuXG5pbXBvcnQge3VzZURhdGFHcmlkSW5wdXRDZWxsLCB1c2VUYWJsZUNlbGxUZXh0SW5wdXR9IGZyb20gJy4vaG9vayc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBGb2N1c0V2ZW50LFxuICBGb2N1c0V2ZW50SGFuZGxlcixcbiAgSW5wdXRIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0NlbGwgYXMgUmVhY3RUYWJsZUNlbGx9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC10YWJsZSc7XG5pbXBvcnQgdHlwZSB7RlJDLCBQcm9wc1dpdGhDaGlsZHJlbn0gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHR5cGUge0RhdGFHcmlkVGFibGVDZWxsUHJvcHMsIFRhYmxlQ2VsbFByb3BzfSBmcm9tICcuLi9UYWJsZUNlbGwnO1xuaW1wb3J0IHR5cGUge0NvbHVtbkRlZlRlbXBsYXRlfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgQ2hpbGRDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgSW5wdXQgPSBzdHlsZWQuaW5wdXRgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRGVmYXVsdEFueSA9IGFueTtcblxuZXhwb3J0IHR5cGUgVGV4dElucHV0UHJvcHMgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAobmV3VmFsdWU6IHN0cmluZywgZTogRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbn0gJiBPbWl0PElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4sICd2YWx1ZScgfCAnb25DaGFuZ2UnPjtcblxudHlwZSBUVGV4dElucHV0Q2VsbCA9IEZSQzxcbiAgSFRNTFRhYmxlQ2VsbEVsZW1lbnQsXG4gIHtcbiAgICBpbnB1dFByb3BzOiBUZXh0SW5wdXRQcm9wcztcbiAgfSAmIE9taXQ8VGFibGVDZWxsUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPlxuPjtcblxuZXhwb3J0IGNvbnN0IFRleHRJbnB1dENlbGw6IFRUZXh0SW5wdXRDZWxsID0gZm9yd2FyZFJlZigoe2lucHV0UHJvcHMsIC4uLnByb3BzfSwgYmFzZVJlZikgPT4ge1xuICBjb25zdCB7Y2VsbFByb3BzLCByZWYsIGlucHV0UmVmfSA9IHVzZVRhYmxlQ2VsbFRleHRJbnB1dDxIVE1MSW5wdXRFbGVtZW50Pihwcm9wcywgYmFzZVJlZik7XG5cbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShpbnB1dFByb3BzLnZhbHVlID8/ICcnKTtcblxuICBjb25zdCBvbkNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gZSA9PiB7XG4gICAgc2V0VmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSBlID0+IHtcbiAgICBjb25zdCBpc0VudGVyQ29kZSA9IGUuY29kZSA9PT0gJ0VudGVyJyB8fCBlLmNvZGUgPT09ICdOdW1wYWRFbnRlcic7XG5cbiAgICBpZiAoZS5jb2RlID09PSAnRXNjYXBlJyB8fCBpc0VudGVyQ29kZSkge1xuICAgICAgcHJvcHMuc2V0SXNBY3RpdmU/LihmYWxzZSk7XG4gICAgICBlLmN1cnJlbnRUYXJnZXQuYmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gZSA9PiB7XG4gICAgcHJvcHMuc2V0SXNBY3RpdmU/LihmYWxzZSk7XG5cbiAgICBpbnB1dFByb3BzLm9uQ2hhbmdlKHZhbHVlLCBlKTtcbiAgICBpbnB1dFByb3BzLm9uQmx1cj8uKGUpO1xuICAgIHJlZi5jdXJyZW50Py5ibHVyKCk7XG4gIH07XG5cbiAgY29uc3QgaXNDaGlsZEhpZGRlbiA9IHByb3BzLmlzQWN0aXZlID8gdHJ1ZSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCByZXN1bHRQcm9wcyA9IHtcbiAgICAuLi5pbnB1dFByb3BzLFxuXG4gICAgdmFsdWUsXG4gICAgb25DaGFuZ2UsXG4gICAgb25LZXlEb3duLFxuICAgIG9uQmx1cixcblxuICAgIHNpemU6IDAsXG4gICAgJ2RhdGEtaGlkZGVuJzogcHJvcHMuaXNBY3RpdmUgPyB1bmRlZmluZWQgOiB0cnVlLFxuICB9O1xuXG4gIGNvbnN0IGNvbnRlbnRQcm9wcyA9IHtcbiAgICBpc011bHRpbGluZTogY2VsbFByb3BzLmlzTXVsdGlsaW5lLFxuICAgIHdoaXRlU3BhY2U6IGNlbGxQcm9wcy53aGl0ZVNwYWNlLFxuICAgIHdvcmRCcmVhazogY2VsbFByb3BzLndvcmRCcmVhayxcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFZhbHVlKGlucHV0UHJvcHMudmFsdWUpO1xuICB9LCBbaW5wdXRQcm9wcy52YWx1ZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFRhYmxlQ2VsbCB7Li4uY2VsbFByb3BzfT5cbiAgICAgIDxUYWJsZUNlbGxDb250ZW50IHsuLi5jb250ZW50UHJvcHN9PlxuICAgICAgICA8Q2hpbGRDb250ZW50IGRhdGEtaGlkZGVuPXtpc0NoaWxkSGlkZGVufT57cHJvcHMuY2hpbGRyZW59PC9DaGlsZENvbnRlbnQ+XG4gICAgICAgIDxJbnB1dCByZWY9e2lucHV0UmVmfSB7Li4ucmVzdWx0UHJvcHN9IC8+XG4gICAgICA8L1RhYmxlQ2VsbENvbnRlbnQ+XG4gICAgPC9UYWJsZUNlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgRGF0YUdyaWRUZXh0SW5wdXRDZWxsUHJvcHM8VCA9IERlZmF1bHRBbnksIFYgPSBEZWZhdWx0QW55PiA9IHtcbiAgZ2V0VmFsdWU6IChjZWxsOiBSZWFjdFRhYmxlQ2VsbDxULCBWPikgPT4gc3RyaW5nO1xuICBvbkNoYW5nZTogKGNlbGw6IFJlYWN0VGFibGVDZWxsPFQsIFY+LCBuZXdWYWx1ZTogc3RyaW5nLCBlOiBGb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xufSAmIE9taXQ8VGV4dElucHV0UHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPiAmXG4gIERhdGFHcmlkVGFibGVDZWxsUHJvcHM8VCwgVj4gJlxuICBQcm9wc1dpdGhDaGlsZHJlbjtcblxuZXhwb3J0IGNvbnN0IERhdGFHcmlkVGV4dElucHV0Q2VsbDogRlJDPEhUTUxUYWJsZUNlbGxFbGVtZW50LCBEYXRhR3JpZFRleHRJbnB1dENlbGxQcm9wcz4gPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIGNoaWxkcmVuLCAuLi5yZXN0fSA9IHByb3BzO1xuXG4gIGNvbnN0IGNlbGxQcm9wcyA9IHVzZURhdGFHcmlkSW5wdXRDZWxsKGNlbGwpO1xuXG4gIGNvbnN0IGlucHV0UHJvcHMgPSByZXN0IGFzIFRleHRJbnB1dFByb3BzO1xuICBpbnB1dFByb3BzLnZhbHVlID0gZ2V0VmFsdWUoY2VsbCk7XG4gIGlucHV0UHJvcHMub25DaGFuZ2UgPSAobmV3VmFsdWUsIGUpID0+IG9uQ2hhbmdlKGNlbGwsIG5ld1ZhbHVlLCBlKTtcblxuICByZXR1cm4gKFxuICAgIDxUZXh0SW5wdXRDZWxsIHJlZj17cmVmfSB7Li4uY2VsbFByb3BzfSBpbnB1dFByb3BzPXtpbnB1dFByb3BzfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1RleHRJbnB1dENlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgR2V0RGF0YUdyaWRUZXh0SW5wdXRDZWxsQXJnczxUID0gRGVmYXVsdEFueSwgViA9IERlZmF1bHRBbnk+ID0gT21pdDxcbiAgRGF0YUdyaWRUZXh0SW5wdXRDZWxsUHJvcHM8VCwgVj4sXG4gICdjZWxsJyB8ICdjaGlsZHJlbidcbj47XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhR3JpZFRleHRJbnB1dENlbGwgPSA8VCwgVj4oYXJnczogR2V0RGF0YUdyaWRUZXh0SW5wdXRDZWxsQXJnczxULCBWPik6IENvbHVtbkRlZlRlbXBsYXRlPFQsIFY+ID0+IHtcbiAgcmV0dXJuICh7Y2VsbH0pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gKGNlbGwuZ2V0VmFsdWUoKSA/PyBudWxsKSBhcyBSZWFjdE5vZGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFHcmlkVGV4dElucHV0Q2VsbCBrZXk9e2NlbGwuaWR9IGNlbGw9e2NlbGx9IHsuLi5hcmdzfT5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L0RhdGFHcmlkVGV4dElucHV0Q2VsbD5cbiAgICApO1xuICB9O1xufTtcbiJdfQ== */",
|
|
34
|
+
toString: X
|
|
35
|
+
}), y = t(({
|
|
36
|
+
inputProps: c,
|
|
37
|
+
...b
|
|
38
|
+
}, G) => {
|
|
39
|
+
const {
|
|
40
|
+
cellProps: I,
|
|
41
|
+
ref: n,
|
|
42
|
+
inputRef: i
|
|
43
|
+
} = J(b, G), [u, V] = h(c.value ?? ""), d = (l) => {
|
|
44
|
+
V(l.target.value);
|
|
45
|
+
}, W = (l) => {
|
|
46
|
+
var Z;
|
|
47
|
+
const B = l.code === "Enter" || l.code === "NumpadEnter";
|
|
48
|
+
(l.code === "Escape" || B) && ((Z = b.setIsActive) == null || Z.call(b, !1), l.currentTarget.blur());
|
|
49
|
+
}, C = (l) => {
|
|
50
|
+
var B, Z, R;
|
|
51
|
+
(B = b.setIsActive) == null || B.call(b, !1), c.onChange(u, l), (Z = c.onBlur) == null || Z.call(c, l), (R = n.current) == null || R.blur();
|
|
52
|
+
}, x = b.isActive ? !0 : void 0, s = {
|
|
53
|
+
...c,
|
|
54
|
+
value: u,
|
|
55
|
+
onChange: d,
|
|
56
|
+
onKeyDown: W,
|
|
57
|
+
onBlur: C,
|
|
58
|
+
size: 0,
|
|
59
|
+
"data-hidden": b.isActive ? void 0 : !0
|
|
60
|
+
}, H = {
|
|
61
|
+
isMultiline: I.isMultiline,
|
|
62
|
+
whiteSpace: I.whiteSpace,
|
|
63
|
+
wordBreak: I.wordBreak
|
|
64
|
+
};
|
|
65
|
+
return A(() => {
|
|
66
|
+
V(c.value);
|
|
67
|
+
}, [c.value]), /* @__PURE__ */ g(a, { ...I, children: /* @__PURE__ */ e(F, { ...H, children: [
|
|
68
|
+
/* @__PURE__ */ g(U, { "data-hidden": x, children: b.children }),
|
|
69
|
+
/* @__PURE__ */ g(N, { ref: i, ...s })
|
|
70
|
+
] }) });
|
|
71
|
+
}), o = t((c, b) => {
|
|
72
|
+
const {
|
|
73
|
+
cell: G,
|
|
74
|
+
getValue: I,
|
|
75
|
+
onChange: n,
|
|
76
|
+
children: i,
|
|
77
|
+
...u
|
|
78
|
+
} = c, V = Y(G), d = u;
|
|
79
|
+
return d.value = I(G), d.onChange = (W, C) => n(G, W, C), /* @__PURE__ */ g(y, { ref: b, ...V, inputProps: d, children: i });
|
|
80
|
+
}), D = (c) => ({
|
|
81
|
+
cell: b
|
|
82
|
+
}) => {
|
|
83
|
+
const G = b.getValue() ?? null;
|
|
84
|
+
return /* @__PURE__ */ g(o, { cell: b, ...c, children: G }, b.id);
|
|
85
|
+
};
|
|
86
|
+
export {
|
|
87
|
+
o as DataGridTextInputCell,
|
|
88
|
+
y as TextInputCell,
|
|
89
|
+
D as getDataGridTextInputCell
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=text.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.es.js","sources":["../../src/TableInputCell/text.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst Input = styled.input`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;\n\ntype TTextInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextInputCell: TTextInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLInputElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLInputElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || isEnterCode) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLInputElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{props.children}</ChildContent>\n <Input ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<TextInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\nexport const DataGridTextInputCell: FRC<HTMLTableCellElement, DataGridTextInputCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, children, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as TextInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {children}\n </TextInputCell>\n );\n});\n\nexport type GetDataGridTextInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextInputCell = <T, V>(args: GetDataGridTextInputCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextInputCell>\n );\n };\n};\n"],"names":["inputProps","cellProps","ref","inputRef","e","props","blur","value","onChange","onKeyDown","onBlur","isMultiline","whiteSpace","wordBreak","useEffect","setValue","cell","getValue","children","rest","content"],"mappings":";;;;;;;AAAa;AAAA;AAAA;AAwBb;AAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoC8C;AAACA;AAAoB;AACtE;AAAA;AAACC;AAAWC;AAAKC;AAKZC;AAAc;;AAIvB;AAEIA;AAEmB;;AAKvBC;AAIaC;AAKK;AACfN;AAEHO;AACAC;AACAC;AACAC;AAEM;AACsC;AAGzB;AACIC;AACDC;AACDC;AAGvBC;AACEC;AAAyB;AAMrB;AAA0D;AACpB;AAI9C;AAUQ;AAAA;AAACC;AAAMC;AAAUT;AAAUU;AAAaC;AAKnCZ;AAQb;AAQU;AAACS;AACDI;AAEN;AAKF;;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FocusEvent, InputHTMLAttributes } from 'react';
|
|
2
|
+
import { Cell as ReactTableCell } from '@tanstack/react-table';
|
|
3
|
+
import { FRC, PropsWithChildren } from '@join-x5/react-theme';
|
|
4
|
+
import { DataGridTableCellProps, TableCellProps } from '../TableCell';
|
|
5
|
+
import { ColumnDefTemplate } from './types';
|
|
6
|
+
type DefaultAny = any;
|
|
7
|
+
export type TextAreaInputProps = {
|
|
8
|
+
value: string;
|
|
9
|
+
onChange: (newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;
|
|
10
|
+
} & Omit<InputHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange'>;
|
|
11
|
+
type TTextAreaInputCell = FRC<HTMLTableCellElement, {
|
|
12
|
+
inputProps: TextAreaInputProps;
|
|
13
|
+
} & Omit<TableCellProps, 'value' | 'onChange'>>;
|
|
14
|
+
export declare const TextAreaInputCell: TTextAreaInputCell;
|
|
15
|
+
export type DataGridTextAreaInputCellProps<T = DefaultAny, V = DefaultAny> = {
|
|
16
|
+
getValue: (cell: ReactTableCell<T, V>) => string;
|
|
17
|
+
onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;
|
|
18
|
+
} & Omit<TextAreaInputProps, 'value' | 'onChange'> & DataGridTableCellProps<T, V> & PropsWithChildren;
|
|
19
|
+
type TDataGridTextAreaInputCell = FRC<HTMLTableCellElement, DataGridTextAreaInputCellProps>;
|
|
20
|
+
export declare const DataGridTextAreaInputCell: TDataGridTextAreaInputCell;
|
|
21
|
+
export type GetDataGridTextAreaInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<DataGridTextAreaInputCellProps<T, V>, 'cell' | 'children'>;
|
|
22
|
+
export declare const getDataGridTextAreaInputCell: <T, V>(args: GetDataGridTextAreaInputCellArgs<T, V>) => ColumnDefTemplate<T, V>;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as V, jsxs as s } from "@emotion/react/jsx-runtime";
|
|
3
|
+
import m from "@emotion/styled/base";
|
|
4
|
+
import { useState as F, useEffect as h } from "react";
|
|
5
|
+
import J, { forwardRef as i } from "@join-x5/react-theme";
|
|
6
|
+
import { TableCell as A, TableCellContent as Y } from "../TableCell/index.es.js";
|
|
7
|
+
import { useTableCellTextInput as U, useDataGridInputCell as a } from "./hook.es.js";
|
|
8
|
+
function N() {
|
|
9
|
+
return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
|
|
10
|
+
}
|
|
11
|
+
const y = /* @__PURE__ */ m("div", process.env.NODE_ENV === "production" ? {
|
|
12
|
+
target: "e1dalyc21"
|
|
13
|
+
} : {
|
|
14
|
+
target: "e1dalyc21",
|
|
15
|
+
label: "ChildContent"
|
|
16
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
17
|
+
name: "1akleb8",
|
|
18
|
+
styles: "min-height:100%;&[data-hidden]{visibility:hidden;pointer-events:none;}"
|
|
19
|
+
} : {
|
|
20
|
+
name: "1akleb8",
|
|
21
|
+
styles: "min-height:100%;&[data-hidden]{visibility:hidden;pointer-events:none;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVJbnB1dENlbGwvdGV4dGFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCK0IiLCJmaWxlIjoiL2hvbWUvc2FkeWtvdnNkL2pvaW4teDUvcGFja2FnZXMvZGF0YS1ncmlkL3NyYy9UYWJsZUlucHV0Q2VsbC90ZXh0YXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYmFzZVRoZW1lLCB7Zm9yd2FyZFJlZn0gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuXG5pbXBvcnQge1RhYmxlQ2VsbCwgVGFibGVDZWxsQ29udGVudH0gZnJvbSAnLi4vVGFibGVDZWxsJztcblxuaW1wb3J0IHt1c2VEYXRhR3JpZElucHV0Q2VsbCwgdXNlVGFibGVDZWxsVGV4dElucHV0fSBmcm9tICcuL2hvb2snO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgRm9jdXNFdmVudCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIElucHV0SFRNTEF0dHJpYnV0ZXMsXG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtDZWxsIGFzIFJlYWN0VGFibGVDZWxsfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtdGFibGUnO1xuaW1wb3J0IHR5cGUge0ZSQywgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcbmltcG9ydCB0eXBlIHtEYXRhR3JpZFRhYmxlQ2VsbFByb3BzLCBUYWJsZUNlbGxQcm9wc30gZnJvbSAnLi4vVGFibGVDZWxsJztcbmltcG9ydCB0eXBlIHtDb2x1bW5EZWZUZW1wbGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IENoaWxkQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICZbZGF0YS1oaWRkZW5dIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IFRleHRBcmVhID0gc3R5bGVkLnRleHRhcmVhYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHJlc2l6ZTogbm9uZTtcblxuICAke2Jhc2VUaGVtZS5zY3JvbGx9XG5cbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRGVmYXVsdEFueSA9IGFueTtcblxuZXhwb3J0IHR5cGUgVGV4dEFyZWFJbnB1dFByb3BzID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBzdHJpbmcsIGU6IEZvY3VzRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHZvaWQ7XG59ICYgT21pdDxJbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+LCAndmFsdWUnIHwgJ29uQ2hhbmdlJz47XG5cbnR5cGUgVFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPFxuICBIVE1MVGFibGVDZWxsRWxlbWVudCxcbiAge1xuICAgIGlucHV0UHJvcHM6IFRleHRBcmVhSW5wdXRQcm9wcztcbiAgfSAmIE9taXQ8VGFibGVDZWxsUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPlxuPjtcblxuZXhwb3J0IGNvbnN0IFRleHRBcmVhSW5wdXRDZWxsOiBUVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKCh7aW5wdXRQcm9wcywgLi4ucHJvcHN9LCBiYXNlUmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsUHJvcHMsIHJlZiwgaW5wdXRSZWZ9ID0gdXNlVGFibGVDZWxsVGV4dElucHV0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KHByb3BzLCBiYXNlUmVmKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGlucHV0UHJvcHMudmFsdWUgPz8gJycpO1xuXG4gIGNvbnN0IG9uQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBzZXRWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IGUgPT4ge1xuICAgIGNvbnN0IGlzRW50ZXJDb2RlID0gZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ051bXBhZEVudGVyJztcblxuICAgIGlmIChlLmNvZGUgPT09ICdFc2NhcGUnIHx8IChpc0VudGVyQ29kZSAmJiBlLmN0cmxLZXkpKSB7XG4gICAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcbiAgICAgIGUuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcblxuICAgIGlucHV0UHJvcHMub25DaGFuZ2UodmFsdWUsIGUpO1xuICAgIGlucHV0UHJvcHMub25CbHVyPy4oZSk7XG4gICAgcmVmLmN1cnJlbnQ/LmJsdXIoKTtcbiAgfTtcblxuICBjb25zdCBpc0NoaWxkSGlkZGVuID0gcHJvcHMuaXNBY3RpdmUgPyB0cnVlIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHJlc3VsdFByb3BzID0ge1xuICAgIC4uLmlucHV0UHJvcHMsXG5cbiAgICB2YWx1ZSxcbiAgICBvbkNoYW5nZSxcbiAgICBvbktleURvd24sXG4gICAgb25CbHVyLFxuXG4gICAgc2l6ZTogMCxcbiAgICAnZGF0YS1oaWRkZW4nOiBwcm9wcy5pc0FjdGl2ZSA/IHVuZGVmaW5lZCA6IHRydWUsXG4gIH07XG5cbiAgY29uc3QgY29udGVudCA9IHByb3BzLmlzQWN0aXZlID8gdmFsdWUgOiBwcm9wcy5jaGlsZHJlbjtcblxuICBjb25zdCBjb250ZW50UHJvcHMgPSB7XG4gICAgaXNNdWx0aWxpbmU6IGNlbGxQcm9wcy5pc011bHRpbGluZSxcbiAgICB3aGl0ZVNwYWNlOiBjZWxsUHJvcHMud2hpdGVTcGFjZSxcbiAgICB3b3JkQnJlYWs6IGNlbGxQcm9wcy53b3JkQnJlYWssXG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWYWx1ZShpbnB1dFByb3BzLnZhbHVlKTtcbiAgfSwgW2lucHV0UHJvcHMudmFsdWVdKTtcblxuICByZXR1cm4gKFxuICAgIDxUYWJsZUNlbGwgey4uLmNlbGxQcm9wc30+XG4gICAgICA8VGFibGVDZWxsQ29udGVudCB7Li4uY29udGVudFByb3BzfT5cbiAgICAgICAgPENoaWxkQ29udGVudCBkYXRhLWhpZGRlbj17aXNDaGlsZEhpZGRlbn0+e2NvbnRlbnR9PC9DaGlsZENvbnRlbnQ+XG4gICAgICAgIDxUZXh0QXJlYSByZWY9e2lucHV0UmVmfSB7Li4ucmVzdWx0UHJvcHN9IC8+XG4gICAgICA8L1RhYmxlQ2VsbENvbnRlbnQ+XG4gICAgPC9UYWJsZUNlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQgPSBEZWZhdWx0QW55LCBWID0gRGVmYXVsdEFueT4gPSB7XG4gIGdldFZhbHVlOiAoY2VsbDogUmVhY3RUYWJsZUNlbGw8VCwgVj4pID0+IHN0cmluZztcbiAgb25DaGFuZ2U6IChjZWxsOiBSZWFjdFRhYmxlQ2VsbDxULCBWPiwgbmV3VmFsdWU6IHN0cmluZywgZTogRm9jdXNFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4gdm9pZDtcbn0gJiBPbWl0PFRleHRBcmVhSW5wdXRQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+ICZcbiAgRGF0YUdyaWRUYWJsZUNlbGxQcm9wczxULCBWPiAmXG4gIFByb3BzV2l0aENoaWxkcmVuO1xuXG50eXBlIFREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPEhUTUxUYWJsZUNlbGxFbGVtZW50LCBEYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsUHJvcHM+O1xuXG5leHBvcnQgY29uc3QgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbDogVERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIC4uLnJlc3R9ID0gcHJvcHM7XG5cbiAgY29uc3QgY2VsbFByb3BzID0gdXNlRGF0YUdyaWRJbnB1dENlbGwoY2VsbCk7XG5cbiAgY29uc3QgY29udGVudCA9IChjZWxsLmdldFZhbHVlKCkgPz8gbnVsbCkgYXMgUmVhY3ROb2RlO1xuXG4gIGNvbnN0IGlucHV0UHJvcHMgPSByZXN0IGFzIFRleHRBcmVhSW5wdXRQcm9wcztcbiAgaW5wdXRQcm9wcy52YWx1ZSA9IGdldFZhbHVlKGNlbGwpO1xuICBpbnB1dFByb3BzLm9uQ2hhbmdlID0gKG5ld1ZhbHVlLCBlKSA9PiBvbkNoYW5nZShjZWxsLCBuZXdWYWx1ZSwgZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VGV4dEFyZWFJbnB1dENlbGwgcmVmPXtyZWZ9IHsuLi5jZWxsUHJvcHN9IGlucHV0UHJvcHM9e2lucHV0UHJvcHN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9UZXh0QXJlYUlucHV0Q2VsbD5cbiAgKTtcbn0pO1xuXG5leHBvcnQgdHlwZSBHZXREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsQXJnczxUID0gRGVmYXVsdEFueSwgViA9IERlZmF1bHRBbnk+ID0gT21pdDxcbiAgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQsIFY+LFxuICAnY2VsbCcgfCAnY2hpbGRyZW4nXG4+O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbCA9IDxULCBWPihcbiAgYXJnczogR2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbEFyZ3M8VCwgVj5cbik6IENvbHVtbkRlZlRlbXBsYXRlPFQsIFY+ID0+IHtcbiAgcmV0dXJuICh7Y2VsbH0pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gKGNlbGwuZ2V0VmFsdWUoKSA/PyBudWxsKSBhcyBSZWFjdE5vZGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwga2V5PXtjZWxsLmlkfSBjZWxsPXtjZWxsfSB7Li4uYXJnc30+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9EYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsPlxuICAgICk7XG4gIH07XG59O1xuIl19 */",
|
|
22
|
+
toString: N
|
|
23
|
+
}), o = /* @__PURE__ */ m("textarea", process.env.NODE_ENV === "production" ? {
|
|
24
|
+
target: "e1dalyc20"
|
|
25
|
+
} : {
|
|
26
|
+
target: "e1dalyc20",
|
|
27
|
+
label: "TextArea"
|
|
28
|
+
})("position:absolute;top:0;left:0;width:100%;height:100%;min-width:10px;padding:0;background-color:transparent;border:none;outline:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;resize:none;", J.scroll, " &[data-hidden]{visibility:hidden;pointer-events:none;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVJbnB1dENlbGwvdGV4dGFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDZ0MiLCJmaWxlIjoiL2hvbWUvc2FkeWtvdnNkL2pvaW4teDUvcGFja2FnZXMvZGF0YS1ncmlkL3NyYy9UYWJsZUlucHV0Q2VsbC90ZXh0YXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYmFzZVRoZW1lLCB7Zm9yd2FyZFJlZn0gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuXG5pbXBvcnQge1RhYmxlQ2VsbCwgVGFibGVDZWxsQ29udGVudH0gZnJvbSAnLi4vVGFibGVDZWxsJztcblxuaW1wb3J0IHt1c2VEYXRhR3JpZElucHV0Q2VsbCwgdXNlVGFibGVDZWxsVGV4dElucHV0fSBmcm9tICcuL2hvb2snO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgRm9jdXNFdmVudCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIElucHV0SFRNTEF0dHJpYnV0ZXMsXG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtDZWxsIGFzIFJlYWN0VGFibGVDZWxsfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtdGFibGUnO1xuaW1wb3J0IHR5cGUge0ZSQywgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcbmltcG9ydCB0eXBlIHtEYXRhR3JpZFRhYmxlQ2VsbFByb3BzLCBUYWJsZUNlbGxQcm9wc30gZnJvbSAnLi4vVGFibGVDZWxsJztcbmltcG9ydCB0eXBlIHtDb2x1bW5EZWZUZW1wbGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IENoaWxkQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICZbZGF0YS1oaWRkZW5dIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IFRleHRBcmVhID0gc3R5bGVkLnRleHRhcmVhYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHJlc2l6ZTogbm9uZTtcblxuICAke2Jhc2VUaGVtZS5zY3JvbGx9XG5cbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRGVmYXVsdEFueSA9IGFueTtcblxuZXhwb3J0IHR5cGUgVGV4dEFyZWFJbnB1dFByb3BzID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBzdHJpbmcsIGU6IEZvY3VzRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHZvaWQ7XG59ICYgT21pdDxJbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+LCAndmFsdWUnIHwgJ29uQ2hhbmdlJz47XG5cbnR5cGUgVFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPFxuICBIVE1MVGFibGVDZWxsRWxlbWVudCxcbiAge1xuICAgIGlucHV0UHJvcHM6IFRleHRBcmVhSW5wdXRQcm9wcztcbiAgfSAmIE9taXQ8VGFibGVDZWxsUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPlxuPjtcblxuZXhwb3J0IGNvbnN0IFRleHRBcmVhSW5wdXRDZWxsOiBUVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKCh7aW5wdXRQcm9wcywgLi4ucHJvcHN9LCBiYXNlUmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsUHJvcHMsIHJlZiwgaW5wdXRSZWZ9ID0gdXNlVGFibGVDZWxsVGV4dElucHV0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KHByb3BzLCBiYXNlUmVmKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGlucHV0UHJvcHMudmFsdWUgPz8gJycpO1xuXG4gIGNvbnN0IG9uQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBzZXRWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IGUgPT4ge1xuICAgIGNvbnN0IGlzRW50ZXJDb2RlID0gZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ051bXBhZEVudGVyJztcblxuICAgIGlmIChlLmNvZGUgPT09ICdFc2NhcGUnIHx8IChpc0VudGVyQ29kZSAmJiBlLmN0cmxLZXkpKSB7XG4gICAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcbiAgICAgIGUuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcblxuICAgIGlucHV0UHJvcHMub25DaGFuZ2UodmFsdWUsIGUpO1xuICAgIGlucHV0UHJvcHMub25CbHVyPy4oZSk7XG4gICAgcmVmLmN1cnJlbnQ/LmJsdXIoKTtcbiAgfTtcblxuICBjb25zdCBpc0NoaWxkSGlkZGVuID0gcHJvcHMuaXNBY3RpdmUgPyB0cnVlIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHJlc3VsdFByb3BzID0ge1xuICAgIC4uLmlucHV0UHJvcHMsXG5cbiAgICB2YWx1ZSxcbiAgICBvbkNoYW5nZSxcbiAgICBvbktleURvd24sXG4gICAgb25CbHVyLFxuXG4gICAgc2l6ZTogMCxcbiAgICAnZGF0YS1oaWRkZW4nOiBwcm9wcy5pc0FjdGl2ZSA/IHVuZGVmaW5lZCA6IHRydWUsXG4gIH07XG5cbiAgY29uc3QgY29udGVudCA9IHByb3BzLmlzQWN0aXZlID8gdmFsdWUgOiBwcm9wcy5jaGlsZHJlbjtcblxuICBjb25zdCBjb250ZW50UHJvcHMgPSB7XG4gICAgaXNNdWx0aWxpbmU6IGNlbGxQcm9wcy5pc011bHRpbGluZSxcbiAgICB3aGl0ZVNwYWNlOiBjZWxsUHJvcHMud2hpdGVTcGFjZSxcbiAgICB3b3JkQnJlYWs6IGNlbGxQcm9wcy53b3JkQnJlYWssXG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWYWx1ZShpbnB1dFByb3BzLnZhbHVlKTtcbiAgfSwgW2lucHV0UHJvcHMudmFsdWVdKTtcblxuICByZXR1cm4gKFxuICAgIDxUYWJsZUNlbGwgey4uLmNlbGxQcm9wc30+XG4gICAgICA8VGFibGVDZWxsQ29udGVudCB7Li4uY29udGVudFByb3BzfT5cbiAgICAgICAgPENoaWxkQ29udGVudCBkYXRhLWhpZGRlbj17aXNDaGlsZEhpZGRlbn0+e2NvbnRlbnR9PC9DaGlsZENvbnRlbnQ+XG4gICAgICAgIDxUZXh0QXJlYSByZWY9e2lucHV0UmVmfSB7Li4ucmVzdWx0UHJvcHN9IC8+XG4gICAgICA8L1RhYmxlQ2VsbENvbnRlbnQ+XG4gICAgPC9UYWJsZUNlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQgPSBEZWZhdWx0QW55LCBWID0gRGVmYXVsdEFueT4gPSB7XG4gIGdldFZhbHVlOiAoY2VsbDogUmVhY3RUYWJsZUNlbGw8VCwgVj4pID0+IHN0cmluZztcbiAgb25DaGFuZ2U6IChjZWxsOiBSZWFjdFRhYmxlQ2VsbDxULCBWPiwgbmV3VmFsdWU6IHN0cmluZywgZTogRm9jdXNFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4gdm9pZDtcbn0gJiBPbWl0PFRleHRBcmVhSW5wdXRQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+ICZcbiAgRGF0YUdyaWRUYWJsZUNlbGxQcm9wczxULCBWPiAmXG4gIFByb3BzV2l0aENoaWxkcmVuO1xuXG50eXBlIFREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPEhUTUxUYWJsZUNlbGxFbGVtZW50LCBEYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsUHJvcHM+O1xuXG5leHBvcnQgY29uc3QgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbDogVERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIC4uLnJlc3R9ID0gcHJvcHM7XG5cbiAgY29uc3QgY2VsbFByb3BzID0gdXNlRGF0YUdyaWRJbnB1dENlbGwoY2VsbCk7XG5cbiAgY29uc3QgY29udGVudCA9IChjZWxsLmdldFZhbHVlKCkgPz8gbnVsbCkgYXMgUmVhY3ROb2RlO1xuXG4gIGNvbnN0IGlucHV0UHJvcHMgPSByZXN0IGFzIFRleHRBcmVhSW5wdXRQcm9wcztcbiAgaW5wdXRQcm9wcy52YWx1ZSA9IGdldFZhbHVlKGNlbGwpO1xuICBpbnB1dFByb3BzLm9uQ2hhbmdlID0gKG5ld1ZhbHVlLCBlKSA9PiBvbkNoYW5nZShjZWxsLCBuZXdWYWx1ZSwgZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VGV4dEFyZWFJbnB1dENlbGwgcmVmPXtyZWZ9IHsuLi5jZWxsUHJvcHN9IGlucHV0UHJvcHM9e2lucHV0UHJvcHN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9UZXh0QXJlYUlucHV0Q2VsbD5cbiAgKTtcbn0pO1xuXG5leHBvcnQgdHlwZSBHZXREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsQXJnczxUID0gRGVmYXVsdEFueSwgViA9IERlZmF1bHRBbnk+ID0gT21pdDxcbiAgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQsIFY+LFxuICAnY2VsbCcgfCAnY2hpbGRyZW4nXG4+O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbCA9IDxULCBWPihcbiAgYXJnczogR2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbEFyZ3M8VCwgVj5cbik6IENvbHVtbkRlZlRlbXBsYXRlPFQsIFY+ID0+IHtcbiAgcmV0dXJuICh7Y2VsbH0pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gKGNlbGwuZ2V0VmFsdWUoKSA/PyBudWxsKSBhcyBSZWFjdE5vZGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwga2V5PXtjZWxsLmlkfSBjZWxsPXtjZWxsfSB7Li4uYXJnc30+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9EYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsPlxuICAgICk7XG4gIH07XG59O1xuIl19 */")), v = i(({
|
|
29
|
+
inputProps: c,
|
|
30
|
+
...b
|
|
31
|
+
}, G) => {
|
|
32
|
+
const {
|
|
33
|
+
cellProps: Z,
|
|
34
|
+
ref: X,
|
|
35
|
+
inputRef: n
|
|
36
|
+
} = U(b, G), [I, W] = F(c.value ?? ""), g = (l) => {
|
|
37
|
+
W(l.target.value);
|
|
38
|
+
}, R = (l) => {
|
|
39
|
+
var d;
|
|
40
|
+
const u = l.code === "Enter" || l.code === "NumpadEnter";
|
|
41
|
+
(l.code === "Escape" || u && l.ctrlKey) && ((d = b.setIsActive) == null || d.call(b, !1), l.currentTarget.blur());
|
|
42
|
+
}, C = (l) => {
|
|
43
|
+
var u, d, B;
|
|
44
|
+
(u = b.setIsActive) == null || u.call(b, !1), c.onChange(I, l), (d = c.onBlur) == null || d.call(c, l), (B = X.current) == null || B.blur();
|
|
45
|
+
}, H = b.isActive ? !0 : void 0, t = {
|
|
46
|
+
...c,
|
|
47
|
+
value: I,
|
|
48
|
+
onChange: g,
|
|
49
|
+
onKeyDown: R,
|
|
50
|
+
onBlur: C,
|
|
51
|
+
size: 0,
|
|
52
|
+
"data-hidden": b.isActive ? void 0 : !0
|
|
53
|
+
}, e = b.isActive ? I : b.children, x = {
|
|
54
|
+
isMultiline: Z.isMultiline,
|
|
55
|
+
whiteSpace: Z.whiteSpace,
|
|
56
|
+
wordBreak: Z.wordBreak
|
|
57
|
+
};
|
|
58
|
+
return h(() => {
|
|
59
|
+
W(c.value);
|
|
60
|
+
}, [c.value]), /* @__PURE__ */ V(A, { ...Z, children: /* @__PURE__ */ s(Y, { ...x, children: [
|
|
61
|
+
/* @__PURE__ */ V(y, { "data-hidden": H, children: e }),
|
|
62
|
+
/* @__PURE__ */ V(o, { ref: n, ...t })
|
|
63
|
+
] }) });
|
|
64
|
+
}), D = i((c, b) => {
|
|
65
|
+
const {
|
|
66
|
+
cell: G,
|
|
67
|
+
getValue: Z,
|
|
68
|
+
onChange: X,
|
|
69
|
+
...n
|
|
70
|
+
} = c, I = a(G), W = G.getValue() ?? null, g = n;
|
|
71
|
+
return g.value = Z(G), g.onChange = (R, C) => X(G, R, C), /* @__PURE__ */ V(v, { ref: b, ...I, inputProps: g, children: W });
|
|
72
|
+
}), p = (c) => ({
|
|
73
|
+
cell: b
|
|
74
|
+
}) => {
|
|
75
|
+
const G = b.getValue() ?? null;
|
|
76
|
+
return /* @__PURE__ */ V(D, { cell: b, ...c, children: G }, b.id);
|
|
77
|
+
};
|
|
78
|
+
export {
|
|
79
|
+
D as DataGridTextAreaInputCell,
|
|
80
|
+
v as TextAreaInputCell,
|
|
81
|
+
p as getDataGridTextAreaInputCell
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=textarea.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.es.js","sources":["../../src/TableInputCell/textarea.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport baseTheme, {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n min-height: 100%;\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst TextArea = styled.textarea`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n resize: none;\n\n ${baseTheme.scroll}\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextAreaInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange'>;\n\ntype TTextAreaInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextAreaInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextAreaInputCell: TTextAreaInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLTextAreaElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLTextAreaElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTextAreaElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || (isEnterCode && e.ctrlKey)) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLTextAreaElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const content = props.isActive ? value : props.children;\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{content}</ChildContent>\n <TextArea ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextAreaInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<TextAreaInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\ntype TDataGridTextAreaInputCell = FRC<HTMLTableCellElement, DataGridTextAreaInputCellProps>;\n\nexport const DataGridTextAreaInputCell: TDataGridTextAreaInputCell = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const content = (cell.getValue() ?? null) as ReactNode;\n\n const inputProps = rest as TextAreaInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextAreaInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {content}\n </TextAreaInputCell>\n );\n});\n\nexport type GetDataGridTextAreaInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextAreaInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextAreaInputCell = <T, V>(\n args: GetDataGridTextAreaInputCellArgs<T, V>\n): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextAreaInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextAreaInputCell>\n );\n };\n};\n"],"names":["inputProps","cellProps","ref","inputRef","e","props","blur","value","onChange","onKeyDown","onBlur","isMultiline","whiteSpace","wordBreak","useEffect","setValue","cell","getValue","rest","content"],"mappings":";;;;;;;AAAa;AAAA;AAAA;AAwBb;AAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQJ;AAAA;AAAA;AAAA;AAAA;AAwCmD;AAACA;AAAoB;AAC9E;AAAA;AAACC;AAAWC;AAAKC;AAKZC;AAAc;;AAIvB;AAEA;AAEuB;;AAKvBC;AAIaC;AAKK;AACfN;AAEHO;AACAC;AACAC;AACAC;AAEM;AACsC;AAKzB;AACIC;AACDC;AACDC;AAGvBC;AACEC;AAAyB;AAMrB;AAAmD;AACV;AAIjD;AAYQ;AAAA;AAACC;AAAMC;AAAUT;AAAaU;AAOzBX;AAQb;AAUU;AAACS;AACDG;AAEN;AAKF;;;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FRC } from '@join-x5/react-theme';
|
|
2
|
+
import { GetDataGridTableRow } from '../types';
|
|
3
|
+
import { TableRowProps } from './types';
|
|
4
|
+
export declare const TableRow: FRC<HTMLTableRowElement, TableRowProps>;
|
|
5
|
+
export declare const getDataGridTableRow: GetDataGridTableRow;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as t } from "@emotion/react/jsx-runtime";
|
|
3
|
+
import G from "@emotion/styled/base";
|
|
4
|
+
import { forwardRef as d } from "@join-x5/react-theme";
|
|
5
|
+
import { getDataGridTableCell as i } from "../TableCell/index.es.js";
|
|
6
|
+
const I = /* @__PURE__ */ G("tr", process.env.NODE_ENV === "production" ? {
|
|
7
|
+
target: "ewtrhmz0"
|
|
8
|
+
} : {
|
|
9
|
+
target: "ewtrhmz0",
|
|
10
|
+
label: "Container"
|
|
11
|
+
})(":hover [data-cell]{:not([data-focused], [data-active], [data-disabled]) [data-edit-icon]{visibility:visible;}:not([data-focused], [data-active]):not(:focus){", (c) => ({
|
|
12
|
+
"--background-color": c.theme.colors.grey[10],
|
|
13
|
+
"--border-color": c.theme.colors.grey[20]
|
|
14
|
+
}), ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVSb3cvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWEyQiIsImZpbGUiOiIvaG9tZS9zYWR5a292c2Qvam9pbi14NS9wYWNrYWdlcy9kYXRhLWdyaWQvc3JjL1RhYmxlUm93L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQge2ZvcndhcmRSZWZ9IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcblxuaW1wb3J0IHtnZXREYXRhR3JpZFRhYmxlQ2VsbH0gZnJvbSAnVGFibGVDZWxsJztcblxuaW1wb3J0IHR5cGUge0ZSQ30gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHR5cGUge1Jvd30gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXRhYmxlJztcbmltcG9ydCB0eXBlIHtHZXREYXRhR3JpZFRhYmxlUm93fSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7VGFibGVSb3dQcm9wc30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC50cmBcbiAgOmhvdmVyIFtkYXRhLWNlbGxdIHtcbiAgICA6bm90KFtkYXRhLWZvY3VzZWRdLCBbZGF0YS1hY3RpdmVdLCBbZGF0YS1kaXNhYmxlZF0pIFtkYXRhLWVkaXQtaWNvbl0ge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICA6bm90KFtkYXRhLWZvY3VzZWRdLCBbZGF0YS1hY3RpdmVdKTpub3QoOmZvY3VzKSB7XG4gICAgICAke3Byb3BzID0+ICh7XG4gICAgICAgICctLWJhY2tncm91bmQtY29sb3InOiBwcm9wcy50aGVtZS5jb2xvcnMuZ3JleVsxMF0sXG4gICAgICAgICctLWJvcmRlci1jb2xvcic6IHByb3BzLnRoZW1lLmNvbG9ycy5ncmV5WzIwXSxcbiAgICAgIH0pfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFRhYmxlUm93OiBGUkM8SFRNTFRhYmxlUm93RWxlbWVudCwgVGFibGVSb3dQcm9wcz4gPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiA8Q29udGFpbmVyIHJlZj17cmVmfSB7Li4ucHJvcHN9IC8+O1xufSk7XG5cbnR5cGUgRGF0YUdyaWRUYWJsZVJvd1Byb3BzID0ge3JvdzogUm93PHVua25vd24+fSAmIFRhYmxlUm93UHJvcHM7XG5cbmNvbnN0IERhdGFHcmlkVGFibGVSb3c6IFJlYWN0LkZDPERhdGFHcmlkVGFibGVSb3dQcm9wcz4gPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHtyb3csIC4uLnJlc3R9ID0gcHJvcHM7XG5cbiAgY29uc3QgY29udGVudCA9IHJvdy5nZXRWaXNpYmxlQ2VsbHMoKS5tYXAoZ2V0RGF0YUdyaWRUYWJsZUNlbGwpO1xuXG4gIHJldHVybiA8VGFibGVSb3cgey4uLnJlc3R9Pntjb250ZW50fTwvVGFibGVSb3c+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGFHcmlkVGFibGVSb3c6IEdldERhdGFHcmlkVGFibGVSb3cgPSByb3cgPT4ge1xuICByZXR1cm4gPERhdGFHcmlkVGFibGVSb3cga2V5PXtyb3cuaWR9IHJvdz17cm93fSAvPjtcbn07XG4iXX0= */")), e = d((c, b) => /* @__PURE__ */ t(I, { ref: b, ...c })), a = (c) => {
|
|
15
|
+
const {
|
|
16
|
+
row: b,
|
|
17
|
+
...l
|
|
18
|
+
} = c, m = b.getVisibleCells().map(i);
|
|
19
|
+
return /* @__PURE__ */ t(e, { ...l, children: m });
|
|
20
|
+
}, V = (c) => /* @__PURE__ */ t(a, { row: c }, c.id);
|
|
21
|
+
export {
|
|
22
|
+
e as TableRow,
|
|
23
|
+
V as getDataGridTableRow
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../src/TableRow/index.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {getDataGridTableCell} from 'TableCell';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {Row} from '@tanstack/react-table';\nimport type {GetDataGridTableRow} from '../types';\nimport type {TableRowProps} from './types';\n\nconst Container = styled.tr`\n :hover [data-cell] {\n :not([data-focused], [data-active], [data-disabled]) [data-edit-icon] {\n visibility: visible;\n }\n\n :not([data-focused], [data-active]):not(:focus) {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n }\n`;\n\nexport const TableRow: FRC<HTMLTableRowElement, TableRowProps> = forwardRef((props, ref) => {\n return <Container ref={ref} {...props} />;\n});\n\ntype DataGridTableRowProps = {row: Row<unknown>} & TableRowProps;\n\nconst DataGridTableRow: React.FC<DataGridTableRowProps> = props => {\n const {row, ...rest} = props;\n\n const content = row.getVisibleCells().map(getDataGridTableCell);\n\n return <TableRow {...rest}>{content}</TableRow>;\n};\n\nexport const getDataGridTableRow: GetDataGridTableRow = row => {\n return <DataGridTableRow key={row.id} row={row} />;\n};\n"],"names":["row","rest"],"mappings":";;;;;AAaA;AAAe;AAAA;AAAA;AAAA;AAAA;AAOG;AACsC;AAElD;AAYE;AAAA;AAACA;AAAQC;AAIf;AACF;;;;;"}
|
package/dist/hook.d.ts
ADDED
package/dist/hook.es.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState as u, useMemo as N } from "react";
|
|
3
|
+
import { useUpdateEffect as V } from "@join-x5/react-theme";
|
|
4
|
+
import { ColumnArea as h } from "@join-x5/react-data-grid-settings";
|
|
5
|
+
const y = (r) => !r || !r.length ? {} : r.reduce((n, i) => (n[i.id] = i.isVisible, n), {}), O = (r) => !r || !r.length ? [] : r.sort((n, i) => n.sort - i.sort).map((n) => String(n.id)), s = (r) => !r || !r.length ? {} : r.reduce((n, i) => {
|
|
6
|
+
var t, o;
|
|
7
|
+
return i.area === h.FixedLeft ? (n.left ?? (n.left = []), (t = n.left) == null || t.push(String(i.id))) : i.area === h.FixedRight && (n.right ?? (n.right = []), (o = n.right) == null || o.push(String(i.id))), n;
|
|
8
|
+
}, {}), w = (r, n) => {
|
|
9
|
+
const [i, t] = u(y(r)), [o, S] = u(O(r)), [f, C] = u(s(r)), l = n == null ? void 0 : n.state, J = N(() => ({
|
|
10
|
+
columnVisibility: i,
|
|
11
|
+
columnOrder: o,
|
|
12
|
+
columnPinning: f,
|
|
13
|
+
...l
|
|
14
|
+
}), [l, i, o, f]);
|
|
15
|
+
return V(() => {
|
|
16
|
+
const m = y(r), d = O(r), g = s(r);
|
|
17
|
+
t((e) => JSON.stringify(e) === JSON.stringify(m) ? e : m), S((e) => JSON.stringify(e) === JSON.stringify(d) ? e : d), C((e) => JSON.stringify(e) === JSON.stringify(g) ? e : g);
|
|
18
|
+
}, [r]), J;
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
w as useDataGridColumnSettings
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=hook.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.es.js","sources":["../src/hook.ts"],"sourcesContent":["'use client';\n\nimport {useMemo, useState} from 'react';\n\nimport {useUpdateEffect} from '@join-x5/react-theme';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport type {ColumnOrderState, ColumnPinningState, TableState, VisibilityState} from '@tanstack/react-table';\nimport type {ColumnItem} from '@join-x5/react-data-grid-settings';\nimport type {DataGridProps} from 'types';\n\nconst convertVisibility = (settings?: ColumnItem[]): VisibilityState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n acc[item.id] = item.isVisible;\n return acc;\n }, {} as VisibilityState);\n};\n\nconst convertOrder = (settings?: ColumnItem[]): ColumnOrderState => {\n if (!settings || !settings.length) {\n return [];\n }\n\n return settings.sort((a, b) => a.sort - b.sort).map(item => String(item.id));\n};\n\nconst convertPinning = (settings?: ColumnItem[]): ColumnPinningState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n if (item.area === ColumnArea.FixedLeft) {\n acc.left ??= [];\n acc.left?.push(String(item.id));\n } else if (item.area === ColumnArea.FixedRight) {\n acc.right ??= [];\n acc.right?.push(String(item.id));\n }\n\n return acc;\n }, {} as ColumnPinningState);\n};\n\nexport const useDataGridColumnSettings = (\n settings?: DataGridProps['columnSettings'],\n tableProps?: DataGridProps['tableProps']\n) => {\n const [columnVisibility, onColumnVisibilityChange] = useState<VisibilityState>(convertVisibility(settings));\n const [columnOrder, onColumnOrderChange] = useState<ColumnOrderState>(convertOrder(settings));\n const [columnPinning, onColumnPinningChange] = useState<ColumnPinningState>(convertPinning(settings));\n\n const externalState = tableProps?.state;\n\n const state = useMemo((): Partial<TableState> => {\n return {columnVisibility, columnOrder, columnPinning, ...externalState};\n }, [externalState, columnVisibility, columnOrder, columnPinning]);\n\n useUpdateEffect(() => {\n const newVisibility = convertVisibility(settings);\n const newOrder = convertOrder(settings);\n const newPinning = convertPinning(settings);\n\n onColumnVisibilityChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newVisibility) ? oldState : newVisibility\n );\n\n onColumnOrderChange(oldState => (JSON.stringify(oldState) === JSON.stringify(newOrder) ? oldState : newOrder));\n\n onColumnPinningChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newPinning) ? oldState : newPinning\n );\n }, [settings]);\n\n return state;\n};\n"],"names":["item","columnVisibility","columnOrder","columnPinning","externalState","useUpdateEffect","newVisibility","oldState"],"mappings":";;;;AAWA;;AAyBQA;AASN;AAOA;AAOS;AAACC;AAAkBC;AAAaC;AAAkBC;AAG3DC;AACQC;AAImBC;AAQzB;AAIJ;;;;"}
|