@bioturing/components 0.32.3 → 0.33.1
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/components/code-block/component.d.ts.map +1 -1
- package/dist/components/code-block/component.js +41 -42
- package/dist/components/code-block/component.js.map +1 -1
- package/dist/components/command-palette/component.d.ts.map +1 -1
- package/dist/components/command-palette/component.js +18 -18
- package/dist/components/command-palette/component.js.map +1 -1
- package/dist/components/data-table/component.d.ts +8 -0
- package/dist/components/data-table/component.d.ts.map +1 -0
- package/dist/components/data-table/component.js +112 -0
- package/dist/components/data-table/component.js.map +1 -0
- package/dist/components/data-table/components/TableBody.d.ts +15 -0
- package/dist/components/data-table/components/TableBody.d.ts.map +1 -0
- package/dist/components/data-table/components/TableBody.js +114 -0
- package/dist/components/data-table/components/TableBody.js.map +1 -0
- package/dist/components/data-table/components/TableHeader.d.ts +11 -0
- package/dist/components/data-table/components/TableHeader.d.ts.map +1 -0
- package/dist/components/data-table/components/TableHeader.js +103 -0
- package/dist/components/data-table/components/TableHeader.js.map +1 -0
- package/dist/components/data-table/components/TablePagination.d.ts +10 -0
- package/dist/components/data-table/components/TablePagination.d.ts.map +1 -0
- package/dist/components/data-table/components/TablePagination.js +38 -0
- package/dist/components/data-table/components/TablePagination.js.map +1 -0
- package/dist/components/data-table/components/index.d.ts +4 -0
- package/dist/components/data-table/components/index.d.ts.map +1 -0
- package/dist/components/data-table/hooks.d.ts +14 -0
- package/dist/components/data-table/hooks.d.ts.map +1 -0
- package/dist/components/data-table/hooks.js +120 -0
- package/dist/components/data-table/hooks.js.map +1 -0
- package/dist/components/data-table/index.d.ts +4 -0
- package/dist/components/data-table/index.d.ts.map +1 -0
- package/dist/components/data-table/style.css +1 -0
- package/dist/components/data-table/types.d.ts +108 -0
- package/dist/components/data-table/types.d.ts.map +1 -0
- package/dist/components/data-table/utils.d.ts +39 -0
- package/dist/components/data-table/utils.d.ts.map +1 -0
- package/dist/components/data-table/utils.js +71 -0
- package/dist/components/data-table/utils.js.map +1 -0
- package/dist/components/dropdown-menu/component.d.ts.map +1 -1
- package/dist/components/dropdown-menu/component.js +60 -56
- package/dist/components/dropdown-menu/component.js.map +1 -1
- package/dist/components/ds-root/component.d.ts.map +1 -1
- package/dist/components/ds-root/component.js +15 -16
- package/dist/components/ds-root/component.js.map +1 -1
- package/dist/components/ds-root/hook.d.ts +5 -0
- package/dist/components/ds-root/hook.d.ts.map +1 -0
- package/dist/components/ds-root/hook.js +7 -0
- package/dist/components/ds-root/hook.js.map +1 -0
- package/dist/components/ds-root/index.d.ts +1 -1
- package/dist/components/ds-root/index.d.ts.map +1 -1
- package/dist/components/field/component.d.ts.map +1 -1
- package/dist/components/field/component.js +22 -21
- package/dist/components/field/component.js.map +1 -1
- package/dist/components/hooks/useBreakpoint.d.ts.map +1 -1
- package/dist/components/hooks/useBreakpoint.js +30 -8
- package/dist/components/hooks/useBreakpoint.js.map +1 -1
- package/dist/components/hooks/useCharts.js +1 -1
- package/dist/components/hooks/useCharts.js.map +1 -1
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/modal/Modal.d.ts +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +59 -55
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/index.d.ts +1 -1
- package/dist/components/popover/component.d.ts.map +1 -1
- package/dist/components/popover/component.js +22 -9
- package/dist/components/popover/component.js.map +1 -1
- package/dist/components/popup-panel/component.d.ts.map +1 -1
- package/dist/components/popup-panel/component.js +61 -56
- package/dist/components/popup-panel/component.js.map +1 -1
- package/dist/components/scroll-area/component.d.ts.map +1 -1
- package/dist/components/scroll-area/component.js +28 -28
- package/dist/components/scroll-area/component.js.map +1 -1
- package/dist/components/table/component.d.ts.map +1 -1
- package/dist/components/table/component.js.map +1 -1
- package/dist/components/theme-provider/component.d.ts +6 -2
- package/dist/components/theme-provider/component.d.ts.map +1 -1
- package/dist/components/theme-provider/component.js +32 -28
- package/dist/components/theme-provider/component.js.map +1 -1
- package/dist/components/theme-provider/context/index.d.ts +3 -0
- package/dist/components/theme-provider/context/index.d.ts.map +1 -0
- package/dist/components/theme-provider/context/provider.d.ts +7 -0
- package/dist/components/theme-provider/context/provider.d.ts.map +1 -0
- package/dist/components/theme-provider/context/provider.js +11 -0
- package/dist/components/theme-provider/context/provider.js.map +1 -0
- package/dist/components/theme-provider/context/themeStore.d.ts +11 -0
- package/dist/components/theme-provider/context/themeStore.d.ts.map +1 -0
- package/dist/components/theme-provider/context/themeStore.js +15 -0
- package/dist/components/theme-provider/context/themeStore.js.map +1 -0
- package/dist/components/theme-provider/index.d.ts +1 -0
- package/dist/components/theme-provider/index.d.ts.map +1 -1
- package/dist/components/tree/useTreeCommon.d.ts +10 -10
- package/dist/components/tree/useTreeCommon.d.ts.map +1 -1
- package/dist/components/utils/client.d.ts +0 -1
- package/dist/components/utils/client.d.ts.map +1 -1
- package/dist/index.js +223 -219
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +9 -0
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +18 -0
- package/dist/metadata.js.map +1 -1
- package/dist/stats.html +1 -1
- package/package.json +3 -2
- package/dist/components/ds-root/context.d.ts +0 -8
- package/dist/components/ds-root/context.d.ts.map +0 -1
- package/dist/components/ds-root/context.js +0 -10
- package/dist/components/ds-root/context.js.map +0 -1
- package/dist/components/utils/WithAntdTokens.d.ts +0 -8
- package/dist/components/utils/WithAntdTokens.d.ts.map +0 -1
- package/dist/components/utils/WithAntdTokens.js +0 -25
- package/dist/components/utils/WithAntdTokens.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/component.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,OAAO,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/component.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,OAAO,aAAa,CAAC;AAGrB,eAAO,MAAM,SAAS,GAAI,+MAgBvB,cAAc,4CA4HhB,CAAC"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as e, jsxs as
|
|
3
|
-
import { CheckIcon as
|
|
4
|
-
import { Highlight as
|
|
5
|
-
import { useState as a, useEffect as
|
|
6
|
-
import { ThemeProvider as
|
|
2
|
+
import { jsx as e, jsxs as q } from "react/jsx-runtime";
|
|
3
|
+
import { CheckIcon as z, CopyIcon as G } from "@bioturing/assets";
|
|
4
|
+
import { Highlight as J, themes as K } from "prism-react-renderer";
|
|
5
|
+
import { useState as a, useEffect as Q, useCallback as S } from "react";
|
|
6
|
+
import { ThemeProvider as R } from "../theme-provider/component.js";
|
|
7
7
|
import './style.css';/* empty css */
|
|
8
|
-
import { Segmented as
|
|
9
|
-
import { useControlledState as
|
|
10
|
-
import { reactNodeToString as
|
|
8
|
+
import { Segmented as U } from "../segmented/component.js";
|
|
9
|
+
import { useControlledState as V } from "../hooks/useControlledState.js";
|
|
10
|
+
import { reactNodeToString as W } from "../utils/reactToString.js";
|
|
11
11
|
import { useCls as X } from "../utils/antdUtils.js";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
code: u,
|
|
12
|
+
import { clsx as Y } from "../utils/cn.js";
|
|
13
|
+
import { IconButton as Z } from "../icon-button/component.js";
|
|
14
|
+
import { ScrollArea as H } from "../scroll-area/component.js";
|
|
15
|
+
const he = ({
|
|
16
|
+
code: f,
|
|
18
17
|
children: i,
|
|
19
18
|
// initial,
|
|
20
19
|
lang: m = "tsx",
|
|
@@ -24,54 +23,54 @@ const fe = ({
|
|
|
24
23
|
defaultActiveOption: v = 0,
|
|
25
24
|
onActiveOptionChange: I,
|
|
26
25
|
copyText: d = "Copy",
|
|
27
|
-
copySuccessText:
|
|
26
|
+
copySuccessText: b = "Copied",
|
|
28
27
|
classNames: p,
|
|
29
28
|
maxHeight: c,
|
|
30
29
|
onCopy: h,
|
|
31
30
|
...O
|
|
32
31
|
}) => {
|
|
33
|
-
const [l,
|
|
32
|
+
const [l, g] = V(
|
|
34
33
|
w,
|
|
35
34
|
I,
|
|
36
35
|
v
|
|
37
|
-
), [n, j] = a(
|
|
38
|
-
|
|
36
|
+
), [n, j] = a(f || ""), [x, B] = a(m), C = t && t.length > 0;
|
|
37
|
+
Q(() => {
|
|
39
38
|
if (C) {
|
|
40
39
|
const o = t[l]?.code || "", r = t[l]?.lang || m;
|
|
41
|
-
j(o),
|
|
40
|
+
j(o), B(r);
|
|
42
41
|
}
|
|
43
42
|
}, [
|
|
44
|
-
|
|
43
|
+
f,
|
|
45
44
|
l,
|
|
46
45
|
v,
|
|
47
46
|
t,
|
|
48
47
|
m,
|
|
49
48
|
C,
|
|
50
|
-
|
|
49
|
+
g
|
|
51
50
|
]);
|
|
52
|
-
const [
|
|
53
|
-
const o = n ||
|
|
51
|
+
const [L, u] = a(d), [M, k] = a(!1), T = S(() => {
|
|
52
|
+
const o = n || W(i);
|
|
54
53
|
try {
|
|
55
54
|
navigator.clipboard.writeText(o).then(() => {
|
|
56
|
-
|
|
55
|
+
u(b), k(!0), h && h(o);
|
|
57
56
|
});
|
|
58
57
|
} catch {
|
|
59
|
-
|
|
58
|
+
u("Failed to copy");
|
|
60
59
|
}
|
|
61
|
-
}, [n, i,
|
|
62
|
-
|
|
60
|
+
}, [n, i, b, h]), A = S(() => {
|
|
61
|
+
u(d), k(!1);
|
|
63
62
|
}, [d]), s = X();
|
|
64
|
-
return /* @__PURE__ */ e(
|
|
65
|
-
|
|
63
|
+
return /* @__PURE__ */ e(R, { theme: "dark", appendClassesToChildren: !0, children: /* @__PURE__ */ q(
|
|
64
|
+
"div",
|
|
66
65
|
{
|
|
67
|
-
className:
|
|
66
|
+
className: Y(s("code-block"), N, p?.root),
|
|
68
67
|
...O,
|
|
69
68
|
children: [
|
|
70
69
|
C && /* @__PURE__ */ e("div", { className: s("code-block-header", p?.header), children: /* @__PURE__ */ e(
|
|
71
|
-
|
|
70
|
+
U,
|
|
72
71
|
{
|
|
73
72
|
value: l,
|
|
74
|
-
onChange:
|
|
73
|
+
onChange: g,
|
|
75
74
|
options: t.map((o, r) => ({
|
|
76
75
|
label: o.label,
|
|
77
76
|
value: r
|
|
@@ -79,12 +78,12 @@ const fe = ({
|
|
|
79
78
|
}
|
|
80
79
|
) }),
|
|
81
80
|
/* @__PURE__ */ e("div", { className: s("code-block-copy"), children: /* @__PURE__ */ e(
|
|
82
|
-
|
|
81
|
+
Z,
|
|
83
82
|
{
|
|
84
|
-
onClick:
|
|
85
|
-
label:
|
|
86
|
-
onMouseLeave:
|
|
87
|
-
children:
|
|
83
|
+
onClick: T,
|
|
84
|
+
label: L,
|
|
85
|
+
onMouseLeave: A,
|
|
86
|
+
children: M ? /* @__PURE__ */ e(z, {}) : /* @__PURE__ */ e(G, {})
|
|
88
87
|
}
|
|
89
88
|
) }),
|
|
90
89
|
/* @__PURE__ */ e(
|
|
@@ -94,12 +93,12 @@ const fe = ({
|
|
|
94
93
|
style: {
|
|
95
94
|
maxHeight: c && (typeof c == "number" ? `${c}px` : c)
|
|
96
95
|
},
|
|
97
|
-
children: /* @__PURE__ */ e(
|
|
98
|
-
|
|
96
|
+
children: /* @__PURE__ */ e(H, { children: n ? /* @__PURE__ */ e(
|
|
97
|
+
J,
|
|
99
98
|
{
|
|
100
99
|
language: x,
|
|
101
100
|
code: n,
|
|
102
|
-
theme:
|
|
101
|
+
theme: K.vsDark,
|
|
103
102
|
children: ({
|
|
104
103
|
className: o,
|
|
105
104
|
style: r,
|
|
@@ -111,7 +110,7 @@ const fe = ({
|
|
|
111
110
|
{
|
|
112
111
|
style: { ...r, backgroundColor: "transparent" },
|
|
113
112
|
className: o,
|
|
114
|
-
children: D.map((y, P) => /* @__PURE__ */ e("div", { ...E({ line: y }), children: y.map((
|
|
113
|
+
children: D.map((y, P) => /* @__PURE__ */ e("div", { ...E({ line: y }), children: y.map((_, $) => /* @__PURE__ */ e("span", { ...F({ token: _ }) }, $)) }, P))
|
|
115
114
|
}
|
|
116
115
|
)
|
|
117
116
|
}
|
|
@@ -123,6 +122,6 @@ const fe = ({
|
|
|
123
122
|
) });
|
|
124
123
|
};
|
|
125
124
|
export {
|
|
126
|
-
|
|
125
|
+
he as CodeBlock
|
|
127
126
|
};
|
|
128
127
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/code-block/component.tsx"],"sourcesContent":["\"use client\";\nimport { CheckIcon, CopyIcon } from \"@bioturing/assets\";\nimport { Highlight, themes } from \"prism-react-renderer\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useControlledState } from \"../hooks\";\nimport { IconButton } from \"../icon-button\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { Segmented } from \"../segmented\";\nimport { ThemeProvider } from \"../theme-provider/component\";\nimport { clsx, reactNodeToString, useCls
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/code-block/component.tsx"],"sourcesContent":["\"use client\";\nimport { CheckIcon, CopyIcon } from \"@bioturing/assets\";\nimport { Highlight, themes } from \"prism-react-renderer\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useControlledState } from \"../hooks\";\nimport { IconButton } from \"../icon-button\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { Segmented } from \"../segmented\";\nimport { ThemeProvider } from \"../theme-provider/component\";\nimport { clsx, reactNodeToString, useCls } from \"../utils\";\nimport type { CodeBlockProps } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\nimport { useTheme } from \"../theme-provider\";\n\nexport const CodeBlock = ({\n code,\n children,\n // initial,\n lang: defaultLang = \"tsx\",\n className,\n options,\n activeOption: controlledActiveOption,\n defaultActiveOption = 0,\n onActiveOptionChange,\n copyText = \"Copy\",\n copySuccessText = \"Copied\",\n classNames,\n maxHeight,\n onCopy,\n ...rest\n}: CodeBlockProps) => {\n const [activeOption, setActiveOption] = useControlledState(\n controlledActiveOption,\n onActiveOptionChange,\n defaultActiveOption\n );\n\n const [currentCode, setCurrentCode] = useState(code || \"\");\n\n const [lang, setLang] = useState(defaultLang);\n\n const hasOptions = options && options.length > 0;\n\n useEffect(() => {\n if (hasOptions) {\n const newCode = options[activeOption]?.code || \"\";\n const newLang = options[activeOption]?.lang || defaultLang;\n setCurrentCode(newCode);\n setLang(newLang);\n }\n }, [\n code,\n activeOption,\n defaultActiveOption,\n options,\n defaultLang,\n hasOptions,\n setActiveOption,\n ]);\n\n const [tooltipContent, setTooltipContent] = useState(copyText);\n const [copySuccess, setCopySuccess] = useState(false);\n\n const handleCopy = useCallback(() => {\n const codeContent = currentCode ? currentCode : reactNodeToString(children);\n try {\n navigator.clipboard.writeText(codeContent).then(() => {\n setTooltipContent(copySuccessText);\n setCopySuccess(true);\n if (onCopy) onCopy(codeContent);\n });\n } catch (_) {\n setTooltipContent(\"Failed to copy\");\n }\n }, [currentCode, children, copySuccessText, onCopy]);\n\n const handleMouseLeave = useCallback(() => {\n setTooltipContent(copyText);\n setCopySuccess(false);\n }, [copyText]);\n\n const cls = useCls();\n\n return (\n <ThemeProvider theme={\"dark\"} appendClassesToChildren>\n <div\n className={clsx(cls(\"code-block\"), className, classNames?.root)}\n {...rest}\n >\n {hasOptions && (\n <div className={cls(\"code-block-header\", classNames?.header)}>\n <Segmented\n value={activeOption}\n onChange={setActiveOption}\n options={options.map((opt, index) => ({\n label: opt.label,\n value: index,\n }))}\n />\n </div>\n )}\n <div className={cls(\"code-block-copy\")}>\n <IconButton\n onClick={handleCopy}\n label={tooltipContent}\n onMouseLeave={handleMouseLeave}\n >\n {copySuccess ? <CheckIcon /> : <CopyIcon />}\n </IconButton>\n </div>\n <div\n className={cls(\"code-block-content\", classNames?.content)}\n style={{\n maxHeight:\n maxHeight &&\n (typeof maxHeight === \"number\" ? `${maxHeight}px` : maxHeight),\n }}\n >\n <ScrollArea>\n {currentCode ? (\n <Highlight\n language={lang}\n code={currentCode}\n theme={themes.vsDark}\n >\n {({\n className,\n style,\n tokens,\n getLineProps,\n getTokenProps,\n }) => (\n <pre\n style={{ ...style, backgroundColor: \"transparent\" }}\n className={className}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n ) : (\n children\n )}\n </ScrollArea>\n </div>\n </div>\n </ThemeProvider>\n );\n};\n"],"names":["CodeBlock","code","children","defaultLang","className","options","controlledActiveOption","defaultActiveOption","onActiveOptionChange","copyText","copySuccessText","classNames","maxHeight","onCopy","rest","activeOption","setActiveOption","useControlledState","currentCode","setCurrentCode","useState","lang","setLang","hasOptions","useEffect","newCode","newLang","tooltipContent","setTooltipContent","copySuccess","setCopySuccess","handleCopy","useCallback","codeContent","reactNodeToString","handleMouseLeave","cls","useCls","jsx","ThemeProvider","jsxs","clsx","Segmented","opt","index","IconButton","CheckIcon","CopyIcon","ScrollArea","Highlight","themes","style","tokens","getLineProps","getTokenProps","line","i","token","key"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/command-palette/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/command-palette/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,aAAa,CAAC;AAGrB,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AA0CD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2ExD,CAAC"}
|
|
@@ -2,28 +2,28 @@
|
|
|
2
2
|
import { jsxs as f, Fragment as S, jsx as n } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect as E, useCallback as L } from "react";
|
|
4
4
|
import { Command as r } from "../cmdk/index.js";
|
|
5
|
-
import { useDropdownMenu as
|
|
5
|
+
import { useDropdownMenu as D } from "../dropdown-menu/useDropdownMenu.js";
|
|
6
6
|
import './style.css';/* empty css */
|
|
7
|
-
import { WithAntdTokens as D } from "../utils/WithAntdTokens.js";
|
|
8
7
|
import { useCls as b } from "../utils/antdUtils.js";
|
|
9
8
|
import { useControlledState as x } from "../hooks/useControlledState.js";
|
|
9
|
+
import { useTheme as j } from "../theme-provider/context/themeStore.js";
|
|
10
10
|
import { ScrollArea as A } from "../scroll-area/component.js";
|
|
11
|
-
const
|
|
11
|
+
const G = [
|
|
12
12
|
{ key: "k", metaKey: !0 },
|
|
13
13
|
{ key: "k", ctrlKey: !0 }
|
|
14
14
|
];
|
|
15
|
-
function
|
|
15
|
+
function I(t, e) {
|
|
16
16
|
return t.key.toLowerCase() === e.key.toLowerCase() && !!t.metaKey == !!e.metaKey && !!t.ctrlKey == !!e.ctrlKey && !!t.altKey == !!e.altKey && !!t.shiftKey == !!e.shiftKey;
|
|
17
17
|
}
|
|
18
|
-
const
|
|
18
|
+
const J = ({
|
|
19
19
|
open: t,
|
|
20
20
|
onOpenChange: e,
|
|
21
21
|
defaultOpen: h,
|
|
22
|
-
items:
|
|
23
|
-
shortcuts: s =
|
|
22
|
+
items: C = [],
|
|
23
|
+
shortcuts: s = G,
|
|
24
24
|
placeholder: c = "Type a command or search...",
|
|
25
25
|
emptyText: l = "No results found.",
|
|
26
|
-
label:
|
|
26
|
+
label: k = "Command Palette",
|
|
27
27
|
className: K,
|
|
28
28
|
classNames: d
|
|
29
29
|
}) => {
|
|
@@ -35,16 +35,16 @@ const B = ({
|
|
|
35
35
|
E(() => {
|
|
36
36
|
const p = (y) => {
|
|
37
37
|
s.find(
|
|
38
|
-
(g) =>
|
|
38
|
+
(g) => I(y, g)
|
|
39
39
|
) && (y.preventDefault(), a(!m));
|
|
40
40
|
};
|
|
41
41
|
return document.addEventListener("keydown", p), () => document.removeEventListener("keydown", p);
|
|
42
42
|
}, [s, m, a]);
|
|
43
|
-
const { renderGroup: i, itemGroups: u } =
|
|
44
|
-
items:
|
|
43
|
+
const { renderGroup: i, itemGroups: u } = D({
|
|
44
|
+
items: C,
|
|
45
45
|
inCombobox: !0,
|
|
46
46
|
onOpenChange: e
|
|
47
|
-
}), w = L(
|
|
47
|
+
}), { className: w } = j(), N = L(
|
|
48
48
|
() => /* @__PURE__ */ f(S, { children: [
|
|
49
49
|
/* @__PURE__ */ n(r.Input, { placeholder: c }),
|
|
50
50
|
/* @__PURE__ */ n(A, { fadeEdges: !0, children: /* @__PURE__ */ f(
|
|
@@ -60,20 +60,20 @@ const B = ({
|
|
|
60
60
|
] }),
|
|
61
61
|
[o, l, u, c, i]
|
|
62
62
|
);
|
|
63
|
-
return /* @__PURE__ */ n(
|
|
63
|
+
return /* @__PURE__ */ n(
|
|
64
64
|
r.Dialog,
|
|
65
65
|
{
|
|
66
66
|
open: m,
|
|
67
67
|
onOpenChange: a,
|
|
68
|
-
label:
|
|
68
|
+
label: k,
|
|
69
69
|
overlayClassName: o("command-palette-overlay", d?.mask),
|
|
70
70
|
contentClassName: o("command-palette-content", d?.content),
|
|
71
|
-
className: o("command-palette", K),
|
|
72
|
-
children:
|
|
71
|
+
className: o("command-palette", w, K),
|
|
72
|
+
children: N()
|
|
73
73
|
}
|
|
74
|
-
)
|
|
74
|
+
);
|
|
75
75
|
};
|
|
76
76
|
export {
|
|
77
|
-
|
|
77
|
+
J as CommandPalette
|
|
78
78
|
};
|
|
79
79
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/command-palette/component.tsx"],"sourcesContent":["\"use client\";\nimport React, { useCallback, useEffect } from \"react\";\nimport { Command } from \"../cmdk\";\nimport { DropdownMenuItemType } from \"../dropdown-menu/types\";\nimport { useDropdownMenu } from \"../dropdown-menu/useDropdownMenu\";\nimport { useControlledState } from \"../hooks\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { useCls
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/command-palette/component.tsx"],"sourcesContent":["\"use client\";\nimport React, { useCallback, useEffect } from \"react\";\nimport { Command } from \"../cmdk\";\nimport { DropdownMenuItemType } from \"../dropdown-menu/types\";\nimport { useDropdownMenu } from \"../dropdown-menu/useDropdownMenu\";\nimport { useControlledState } from \"../hooks\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { useCls } from \"../utils\";\nimport \"./style.css\";\nimport { useTheme } from \"../theme-provider\";\n\nexport type CommandPaletteShortcut = {\n key: string;\n metaKey?: boolean;\n ctrlKey?: boolean;\n altKey?: boolean;\n shiftKey?: boolean;\n};\n\nexport interface CommandPaletteProps {\n /** Whether the command palette is open */\n open?: boolean;\n /** Callback fired when the open state changes */\n onOpenChange?: (open: boolean) => void;\n /**\n * Default open state\n */\n defaultOpen?: boolean;\n /** Items to display in the command palette */\n items?: DropdownMenuItemType[];\n /** Keyboard shortcuts to open the palette */\n shortcuts?: CommandPaletteShortcut[];\n /** Placeholder text for the search input */\n placeholder?: string;\n /** Text to show when no results are found */\n emptyText?: string;\n /** Accessible label for the command palette */\n label?: string;\n /** Additional CSS class names */\n className?: string;\n classNames?: {\n root?: string;\n mask?: string;\n content?: string;\n group?: string;\n item?: string;\n groupLabel?: string;\n };\n}\n\nconst defaultShortcuts: CommandPaletteShortcut[] = [\n { key: \"k\", metaKey: true },\n { key: \"k\", ctrlKey: true },\n];\n\nfunction matchesShortcut(\n event: KeyboardEvent,\n shortcut: CommandPaletteShortcut\n): boolean {\n return (\n event.key.toLowerCase() === shortcut.key.toLowerCase() &&\n !!event.metaKey === !!shortcut.metaKey &&\n !!event.ctrlKey === !!shortcut.ctrlKey &&\n !!event.altKey === !!shortcut.altKey &&\n !!event.shiftKey === !!shortcut.shiftKey\n );\n}\n\n// Default items for testing/demo purposes\n// const defaultItems: DropdownMenuItemType[] = [\n// {\n// type: \"item\",\n// key: \"search\",\n// label: \"Search files\",\n// onClick: () => console.log(\"Search files\"),\n// },\n// {\n// type: \"item\",\n// key: \"new-file\",\n// label: \"New file\",\n// onClick: () => console.log(\"New file\"),\n// },\n// {\n// type: \"item\",\n// key: \"settings\",\n// label: \"Open settings\",\n// onClick: () => console.log(\"Open settings\"),\n// },\n// ];\n\nexport const CommandPalette: React.FC<CommandPaletteProps> = ({\n open,\n onOpenChange,\n defaultOpen,\n items = [],\n shortcuts = defaultShortcuts,\n placeholder = \"Type a command or search...\",\n emptyText = \"No results found.\",\n label = \"Command Palette\",\n className,\n classNames,\n}) => {\n const cls = useCls();\n const [actualOpen, setActualOpen] = useControlledState(\n open,\n onOpenChange,\n defaultOpen\n );\n\n // Set up keyboard shortcuts\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n const matchingShortcut = shortcuts.find((shortcut) =>\n matchesShortcut(event, shortcut)\n );\n\n if (matchingShortcut) {\n event.preventDefault();\n setActualOpen(!actualOpen);\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [shortcuts, actualOpen, setActualOpen]);\n\n const { renderGroup, itemGroups } = useDropdownMenu({\n items,\n inCombobox: true,\n onOpenChange,\n });\n\n const { className: themeClassName } = useTheme();\n const renderMenuInner = useCallback(\n () => (\n <>\n <Command.Input placeholder={placeholder} />\n {/*{beforeList}*/}\n <ScrollArea fadeEdges>\n <Command.List\n className={cls(\"dropdown-menu-list\", \"command-palette-list\")}\n >\n <Command.Empty className={cls(\"dropdown-menu-empty\")}>\n {emptyText}\n </Command.Empty>\n {itemGroups.map(renderGroup)}\n </Command.List>\n </ScrollArea>\n {/*{afterList}*/}\n </>\n ),\n [cls, emptyText, itemGroups, placeholder, renderGroup]\n );\n return (\n <Command.Dialog\n open={actualOpen}\n onOpenChange={setActualOpen}\n label={label}\n overlayClassName={cls(\"command-palette-overlay\", classNames?.mask)}\n contentClassName={cls(\"command-palette-content\", classNames?.content)}\n className={cls(\"command-palette\", themeClassName, className)}\n >\n {renderMenuInner()}\n </Command.Dialog>\n );\n};\n"],"names":["defaultShortcuts","matchesShortcut","event","shortcut","CommandPalette","open","onOpenChange","defaultOpen","items","shortcuts","placeholder","emptyText","label","className","classNames","cls","useCls","actualOpen","setActualOpen","useControlledState","useEffect","handleKeyDown","renderGroup","itemGroups","useDropdownMenu","themeClassName","useTheme","renderMenuInner","useCallback","jsxs","Fragment","jsx","Command","ScrollArea"],"mappings":";;;;;;;;;;AAkDA,MAAMA,IAA6C;AAAA,EACjD,EAAE,KAAK,KAAK,SAAS,GAAA;AAAA,EACrB,EAAE,KAAK,KAAK,SAAS,GAAA;AACvB;AAEA,SAASC,EACPC,GACAC,GACS;AACT,SACED,EAAM,IAAI,YAAA,MAAkBC,EAAS,IAAI,YAAA,KACzC,CAAC,CAACD,EAAM,WAAY,CAAC,CAACC,EAAS,WAC/B,CAAC,CAACD,EAAM,WAAY,CAAC,CAACC,EAAS,WAC/B,CAAC,CAACD,EAAM,UAAW,CAAC,CAACC,EAAS,UAC9B,CAAC,CAACD,EAAM,YAAa,CAAC,CAACC,EAAS;AAEpC;AAwBO,MAAMC,IAAgD,CAAC;AAAA,EAC5D,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC,IAAQ,CAAA;AAAA,EACR,WAAAC,IAAYT;AAAA,EACZ,aAAAU,IAAc;AAAA,EACd,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ;AAAA,EACR,WAAAC;AAAA,EACA,YAAAC;AACF,MAAM;AACJ,QAAMC,IAAMC,EAAA,GACN,CAACC,GAAYC,CAAa,IAAIC;AAAA,IAClCd;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAIF,EAAAa,EAAU,MAAM;AACd,UAAMC,IAAgB,CAACnB,MAAyB;AAK9C,MAJyBO,EAAU;AAAA,QAAK,CAACN,MACvCF,EAAgBC,GAAOC,CAAQ;AAAA,MAAA,MAI/BD,EAAM,eAAA,GACNgB,EAAc,CAACD,CAAU;AAAA,IAE7B;AAEA,oBAAS,iBAAiB,WAAWI,CAAa,GAC3C,MAAM,SAAS,oBAAoB,WAAWA,CAAa;AAAA,EACpE,GAAG,CAACZ,GAAWQ,GAAYC,CAAa,CAAC;AAEzC,QAAM,EAAE,aAAAI,GAAa,YAAAC,EAAA,IAAeC,EAAgB;AAAA,IAClD,OAAAhB;AAAA,IACA,YAAY;AAAA,IACZ,cAAAF;AAAA,EAAA,CACD,GAEK,EAAE,WAAWmB,EAAA,IAAmBC,EAAA,GAChCC,IAAkBC;AAAA,IACtB,MACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAC,EAACC,EAAQ,OAAR,EAAc,aAAAtB,EAAA,CAA0B;AAAA,MAEzC,gBAAAqB,EAACE,GAAA,EAAW,WAAS,IACnB,UAAA,gBAAAJ;AAAA,QAACG,EAAQ;AAAA,QAAR;AAAA,UACC,WAAWjB,EAAI,sBAAsB,sBAAsB;AAAA,UAE3D,UAAA;AAAA,YAAA,gBAAAgB,EAACC,EAAQ,OAAR,EAAc,WAAWjB,EAAI,qBAAqB,GAChD,UAAAJ,GACH;AAAA,YACCY,EAAW,IAAID,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,EAC7B,CACF;AAAA,IAAA,GAEF;AAAA,IAEF,CAACP,GAAKJ,GAAWY,GAAYb,GAAaY,CAAW;AAAA,EAAA;AAEvD,SACE,gBAAAS;AAAA,IAACC,EAAQ;AAAA,IAAR;AAAA,MACC,MAAMf;AAAA,MACN,cAAcC;AAAA,MACd,OAAAN;AAAA,MACA,kBAAkBG,EAAI,2BAA2BD,GAAY,IAAI;AAAA,MACjE,kBAAkBC,EAAI,2BAA2BD,GAAY,OAAO;AAAA,MACpE,WAAWC,EAAI,mBAAmBU,GAAgBZ,CAAS;AAAA,MAE1D,UAAAc,EAAA;AAAA,IAAgB;AAAA,EAAA;AAGvB;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
import { DataTableProps, DataTableRef } from './types';
|
|
3
|
+
declare const InnerDataTable: <RecordType extends Record<string, any> = Record<string, unknown>>(props: DataTableProps<RecordType>, ref: Ref<DataTableRef>) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare const DataTable: <RecordType extends Record<string, any> = Record<string, unknown>>(props: DataTableProps<RecordType> & {
|
|
5
|
+
ref?: Ref<DataTableRef>;
|
|
6
|
+
}) => ReturnType<typeof InnerDataTable>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/component.tsx"],"names":[],"mappings":"AACA,OAAc,EAAsB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAO5D,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,aAAa,CAAC;AAUrB,QAAA,MAAM,cAAc,GAClB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,OAAO,cAAc,CAAC,UAAU,CAAC,EACjC,KAAK,GAAG,CAAC,YAAY,CAAC,4CAgIvB,CAAC;AAQF,eAAO,MAAM,SAAS,GALpB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,mCAE/B,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;CAAE,KAC5D,UAAU,CAAC,OAAO,cAAc,CAEK,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as e, jsxs as s } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as R, useRef as T } from "react";
|
|
4
|
+
import { Spin as C } from "../spin/component.js";
|
|
5
|
+
import { useDataTable as D } from "./hooks.js";
|
|
6
|
+
import { convertSelectionToAntFormat as x } from "./utils.js";
|
|
7
|
+
import './style.css';/* empty css */
|
|
8
|
+
import { TableHeader as K } from "./components/TableHeader.js";
|
|
9
|
+
import { TableBody as N } from "./components/TableBody.js";
|
|
10
|
+
import { TablePagination as z } from "./components/TablePagination.js";
|
|
11
|
+
import { useCls as P } from "../utils/antdUtils.js";
|
|
12
|
+
import { clsx as m } from "../utils/cn.js";
|
|
13
|
+
const k = (n, W) => {
|
|
14
|
+
const {
|
|
15
|
+
dataSource: i = [],
|
|
16
|
+
className: d,
|
|
17
|
+
size: f = "large",
|
|
18
|
+
variant: p = "default",
|
|
19
|
+
emptyDescription: b,
|
|
20
|
+
rowKey: g
|
|
21
|
+
} = n, o = P(), u = T(null), {
|
|
22
|
+
table: a,
|
|
23
|
+
isLoading: w,
|
|
24
|
+
spinProps: h,
|
|
25
|
+
hasRowSelection: c,
|
|
26
|
+
hasPagination: S,
|
|
27
|
+
paginationConfig: y,
|
|
28
|
+
rowSelectionConfig: r
|
|
29
|
+
} = D(n), v = (t) => {
|
|
30
|
+
if (c && (t.toggleSelected(), r?.onSelect)) {
|
|
31
|
+
const { selectedRows: l } = x(
|
|
32
|
+
a.getState().rowSelection,
|
|
33
|
+
i,
|
|
34
|
+
g
|
|
35
|
+
);
|
|
36
|
+
r.onSelect(
|
|
37
|
+
t.original,
|
|
38
|
+
!t.getIsSelected(),
|
|
39
|
+
l,
|
|
40
|
+
new Event("click")
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
return /* @__PURE__ */ e(
|
|
45
|
+
"div",
|
|
46
|
+
{
|
|
47
|
+
ref: u,
|
|
48
|
+
className: m(
|
|
49
|
+
o("table-wrapper", "data-table"),
|
|
50
|
+
o(`table-${f}`),
|
|
51
|
+
p === "zebra" ? o("table-zebra") : "",
|
|
52
|
+
"css-var-«r3»",
|
|
53
|
+
d
|
|
54
|
+
),
|
|
55
|
+
children: /* @__PURE__ */ s(C, { spinning: w, ...h, children: [
|
|
56
|
+
/* @__PURE__ */ e("div", { className: m(o("table")), children: /* @__PURE__ */ e("div", { className: o("table-container"), children: /* @__PURE__ */ e("div", { className: o("table-content"), children: /* @__PURE__ */ s("table", { children: [
|
|
57
|
+
/* @__PURE__ */ e("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((t) => {
|
|
58
|
+
let l;
|
|
59
|
+
if (t.id === "select")
|
|
60
|
+
l = r?.columnWidth || 32;
|
|
61
|
+
else
|
|
62
|
+
try {
|
|
63
|
+
l = `${t.getSize()}px`;
|
|
64
|
+
} catch {
|
|
65
|
+
l = t.column.columnDef.meta?.width;
|
|
66
|
+
}
|
|
67
|
+
return /* @__PURE__ */ e(
|
|
68
|
+
"col",
|
|
69
|
+
{
|
|
70
|
+
style: { width: l }
|
|
71
|
+
},
|
|
72
|
+
t.id
|
|
73
|
+
);
|
|
74
|
+
}) }),
|
|
75
|
+
/* @__PURE__ */ e(
|
|
76
|
+
K,
|
|
77
|
+
{
|
|
78
|
+
table: a,
|
|
79
|
+
rowSelectionConfig: r,
|
|
80
|
+
dataSource: i,
|
|
81
|
+
rowKey: n.rowKey
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
/* @__PURE__ */ e(
|
|
85
|
+
N,
|
|
86
|
+
{
|
|
87
|
+
table: a,
|
|
88
|
+
dataSource: i,
|
|
89
|
+
emptyDescription: b,
|
|
90
|
+
hasRowSelection: c,
|
|
91
|
+
onRowClick: v,
|
|
92
|
+
rowSelectionConfig: r,
|
|
93
|
+
rowKey: n.rowKey
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
] }) }) }) }),
|
|
97
|
+
S && /* @__PURE__ */ e(
|
|
98
|
+
z,
|
|
99
|
+
{
|
|
100
|
+
table: a,
|
|
101
|
+
paginationConfig: y,
|
|
102
|
+
totalCount: a.getPreFilteredRowModel().rows.length
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
] })
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
}, I = R(k), O = I;
|
|
109
|
+
export {
|
|
110
|
+
O as DataTable
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/data-table/component.tsx"],"sourcesContent":["\"use client\";\nimport React, { forwardRef, useRef, type Ref } from \"react\";\nimport { type Row } from \"@tanstack/react-table\";\nimport { clsx, useCls } from \"../utils\";\nimport { Spin } from \"../spin/component\";\nimport { TableHeader, TableBody, TablePagination } from \"./components\";\nimport { useDataTable } from \"./hooks\";\nimport { convertSelectionToAntFormat } from \"./utils\";\nimport { type DataTableProps, type DataTableRef } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: 'left' | 'center' | 'right';\n width?: string | number;\n fixed?: 'left' | 'right' | boolean;\n ellipsis?: boolean;\n}\n\nconst InnerDataTable = <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType>,\n ref: Ref<DataTableRef>\n) => {\n const {\n dataSource = [],\n columns = [],\n className,\n size = \"large\",\n variant = \"default\",\n emptyDescription,\n rowSelection,\n pagination,\n loading,\n enableSorting = true,\n enableFiltering = false,\n onSortingChange,\n onFilteringChange,\n rowKey,\n ...restProps\n } = props;\n\n const cls = useCls();\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n // Use the custom hook for table logic\n const {\n table,\n isLoading,\n spinProps,\n hasRowSelection,\n hasPagination,\n paginationConfig,\n rowSelectionConfig,\n } = useDataTable(props);\n\n // Handle row click for selection\n const handleRowClick = (row: Row<RecordType>) => {\n if (hasRowSelection) {\n row.toggleSelected();\n if (rowSelectionConfig?.onSelect) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey\n );\n rowSelectionConfig.onSelect(\n row.original,\n !row.getIsSelected(),\n selectedRows,\n new Event(\"click\")\n );\n }\n }\n };\n\n // cls(\"table-scroll-horizontal\"))\n\n return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"table-wrapper\", \"data-table\"),\n cls(`table-${size}`),\n variant === \"zebra\" ? cls(\"table-zebra\") : \"\",\n \"css-var-«r3»\",\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={clsx(cls(\"table\"))}>\n <div className={cls(\"table-container\")}>\n <div className={cls(\"table-content\")}>\n <table>\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) => {\n let columnWidth: string | number | undefined;\n \n if (header.id === \"select\") {\n columnWidth = rowSelectionConfig?.columnWidth || 32;\n } else {\n // Try to get the current size from TanStack, fallback to meta width\n try {\n columnWidth = `${header.getSize()}px`;\n } catch (error) {\n // Fallback to static width from column meta\n columnWidth = (header.column.columnDef.meta as ExtendedColumnMeta)?.width;\n }\n }\n \n return (\n <col\n key={header.id}\n style={{ width: columnWidth }}\n />\n );\n })}\n </colgroup>\n\n <TableHeader\n table={table}\n rowSelectionConfig={rowSelectionConfig}\n dataSource={dataSource}\n rowKey={props.rowKey}\n />\n\n <TableBody\n table={table}\n dataSource={dataSource}\n emptyDescription={emptyDescription}\n hasRowSelection={hasRowSelection}\n onRowClick={handleRowClick}\n rowSelectionConfig={rowSelectionConfig}\n rowKey={props.rowKey}\n />\n </table>\n </div>\n </div>\n </div>\n\n {hasPagination && (\n <TablePagination\n table={table}\n paginationConfig={paginationConfig}\n totalCount={table.getPreFilteredRowModel().rows.length}\n />\n )}\n </Spin>\n </div>\n );\n};\n\nconst InternalDataTable = forwardRef(InnerDataTable) as <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType> & { ref?: Ref<DataTableRef> }\n) => ReturnType<typeof InnerDataTable>;\n\nexport const DataTable = InternalDataTable;\n"],"names":["InnerDataTable","props","ref","dataSource","className","size","variant","emptyDescription","rowKey","cls","useCls","tableWrapperRef","useRef","table","isLoading","spinProps","hasRowSelection","hasPagination","paginationConfig","rowSelectionConfig","useDataTable","handleRowClick","row","selectedRows","convertSelectionToAntFormat","jsx","clsx","jsxs","Spin","header","columnWidth","TableHeader","TableBody","TablePagination","InternalDataTable","forwardRef","DataTable"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { Table, Row } from '@tanstack/react-table';
|
|
3
|
+
import { DataTableRowSelection, RowKey } from '../types';
|
|
4
|
+
interface TableBodyProps<RecordType extends Record<string, any> = Record<string, unknown>> {
|
|
5
|
+
table: Table<RecordType>;
|
|
6
|
+
dataSource: RecordType[];
|
|
7
|
+
emptyDescription?: React.ReactNode;
|
|
8
|
+
hasRowSelection?: boolean;
|
|
9
|
+
onRowClick?: (row: Row<RecordType>) => void;
|
|
10
|
+
rowSelectionConfig?: DataTableRowSelection<RecordType>;
|
|
11
|
+
rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey);
|
|
12
|
+
}
|
|
13
|
+
export declare const TableBody: <RecordType extends Record<string, any> = Record<string, unknown>>({ table, dataSource, emptyDescription, hasRowSelection, onRowClick, rowSelectionConfig, rowKey }: TableBodyProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=TableBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TableBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,KAAK,EAAE,KAAK,GAAG,EAA0B,MAAM,uBAAuB,CAAC;AAKjG,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAWnE,UAAU,cAAc,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC5C,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,kGAQzF,cAAc,CAAC,UAAU,CAAC,4CAkH5B,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsxs as x, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { flexRender as f } from "@tanstack/react-table";
|
|
3
|
+
import { Checkbox as k } from "antd";
|
|
4
|
+
import { convertSelectionToAntFormat as h, getAlignmentClass as w } from "../utils.js";
|
|
5
|
+
import { Empty as S } from "../../empty/component.js";
|
|
6
|
+
import { useCls as y } from "../../utils/antdUtils.js";
|
|
7
|
+
import { clsx as g } from "../../utils/cn.js";
|
|
8
|
+
const j = ({
|
|
9
|
+
table: c,
|
|
10
|
+
dataSource: a,
|
|
11
|
+
emptyDescription: p,
|
|
12
|
+
hasRowSelection: b,
|
|
13
|
+
onRowClick: u,
|
|
14
|
+
rowSelectionConfig: s,
|
|
15
|
+
rowKey: m
|
|
16
|
+
}) => {
|
|
17
|
+
const d = y();
|
|
18
|
+
return /* @__PURE__ */ x("tbody", { className: d("table-tbody"), children: [
|
|
19
|
+
/* @__PURE__ */ t(
|
|
20
|
+
"tr",
|
|
21
|
+
{
|
|
22
|
+
"aria-hidden": "true",
|
|
23
|
+
className: d("table-measure-row"),
|
|
24
|
+
style: { height: "0px", fontSize: "0px" },
|
|
25
|
+
children: c.getHeaderGroups()[0]?.headers.map((o) => /* @__PURE__ */ t(
|
|
26
|
+
"td",
|
|
27
|
+
{
|
|
28
|
+
style: {
|
|
29
|
+
padding: "0px",
|
|
30
|
+
border: "0px",
|
|
31
|
+
height: "0px",
|
|
32
|
+
width: o.id === "select" ? 32 : o.column.columnDef.meta?.width
|
|
33
|
+
},
|
|
34
|
+
children: /* @__PURE__ */ t("div", { style: { height: "0px", overflow: "hidden" }, children: " " })
|
|
35
|
+
},
|
|
36
|
+
o.id
|
|
37
|
+
))
|
|
38
|
+
}
|
|
39
|
+
),
|
|
40
|
+
a.length === 0 ? /* @__PURE__ */ t("tr", { children: /* @__PURE__ */ t("td", { colSpan: c.getHeaderGroups()[0]?.headers.length || 1, children: /* @__PURE__ */ t(S, { description: p }) }) }) : c.getRowModel().rows.map((o) => /* @__PURE__ */ t(
|
|
41
|
+
"tr",
|
|
42
|
+
{
|
|
43
|
+
className: g(
|
|
44
|
+
d("table-row"),
|
|
45
|
+
d("table-row-level-0"),
|
|
46
|
+
o.getIsSelected() ? d("table-row-selected") : ""
|
|
47
|
+
),
|
|
48
|
+
"data-row-key": o.id,
|
|
49
|
+
"data-selectable": b ? "true" : "false",
|
|
50
|
+
onClick: () => u?.(o),
|
|
51
|
+
children: o.getVisibleCells().map((e) => /* @__PURE__ */ t(
|
|
52
|
+
"td",
|
|
53
|
+
{
|
|
54
|
+
className: g(
|
|
55
|
+
d("table-cell"),
|
|
56
|
+
e.column.id === "select" ? d("table-selection-column") : "",
|
|
57
|
+
w(e.column.columnDef.meta?.align)
|
|
58
|
+
),
|
|
59
|
+
children: e.column.id === "select" ? (
|
|
60
|
+
// Handle selection column cells
|
|
61
|
+
(() => {
|
|
62
|
+
const l = e.row.original, n = s?.getCheckboxProps?.(l) || {};
|
|
63
|
+
return s?.type === "radio" ? /* @__PURE__ */ t(
|
|
64
|
+
"input",
|
|
65
|
+
{
|
|
66
|
+
type: "radio",
|
|
67
|
+
name: "table-radio",
|
|
68
|
+
checked: e.row.getIsSelected(),
|
|
69
|
+
disabled: !e.row.getCanSelect(),
|
|
70
|
+
onChange: (r) => {
|
|
71
|
+
if (e.row.toggleSelected(r.target.checked), s.onSelect) {
|
|
72
|
+
const { selectedRows: i } = h(
|
|
73
|
+
c.getState().rowSelection,
|
|
74
|
+
a,
|
|
75
|
+
m
|
|
76
|
+
);
|
|
77
|
+
s.onSelect(l, r.target.checked, i, r.nativeEvent);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
disabled: n.disabled,
|
|
81
|
+
className: n.className
|
|
82
|
+
}
|
|
83
|
+
) : /* @__PURE__ */ t(
|
|
84
|
+
k,
|
|
85
|
+
{
|
|
86
|
+
checked: e.row.getIsSelected(),
|
|
87
|
+
disabled: !e.row.getCanSelect(),
|
|
88
|
+
onChange: (r) => {
|
|
89
|
+
if (e.row.toggleSelected(r.target.checked), s?.onSelect) {
|
|
90
|
+
const { selectedRows: i } = h(
|
|
91
|
+
c.getState().rowSelection,
|
|
92
|
+
a,
|
|
93
|
+
m
|
|
94
|
+
);
|
|
95
|
+
s.onSelect(l, r.target.checked, i, r.nativeEvent);
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
...n
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
})()
|
|
102
|
+
) : f(e.column.columnDef.cell, e.getContext())
|
|
103
|
+
},
|
|
104
|
+
e.id
|
|
105
|
+
))
|
|
106
|
+
},
|
|
107
|
+
o.id
|
|
108
|
+
))
|
|
109
|
+
] });
|
|
110
|
+
};
|
|
111
|
+
export {
|
|
112
|
+
j as TableBody
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=TableBody.js.map
|