@bioturing/components 0.15.3 → 0.15.4
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/Table/component.js +81 -49
- package/dist/components/Table/component.js.map +1 -1
- package/dist/components/Table/style.css +1 -1
- package/dist/components/utils/antdUtils.js +31 -28
- package/dist/components/utils/antdUtils.js.map +1 -1
- package/dist/index.d.ts +11 -1
- package/package.json +1 -1
|
@@ -1,68 +1,100 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { Empty as
|
|
1
|
+
import { jsx as e, jsxs as g, Fragment as _ } from "react/jsx-runtime";
|
|
2
|
+
import t from "antd/es/table";
|
|
3
|
+
import { FunnelIcon as h, CaretUpIcon as p, CaretDownIcon as E } from "@bioturing/assets";
|
|
4
|
+
import { Empty as w } from "../Empty/component.js";
|
|
5
|
+
import { forwardRef as x, useState as j, useRef as A, useEffect as U, useCallback as M } from "react";
|
|
5
6
|
import './style.css';/* empty css */
|
|
6
|
-
import { useCls as
|
|
7
|
-
const
|
|
8
|
-
columns:
|
|
9
|
-
locale:
|
|
10
|
-
emptyDescription:
|
|
11
|
-
loading:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
import { useCls as R } from "../utils/antdUtils.js";
|
|
8
|
+
const D = ({
|
|
9
|
+
columns: f,
|
|
10
|
+
locale: N,
|
|
11
|
+
emptyDescription: C,
|
|
12
|
+
loading: l,
|
|
13
|
+
virtual: i,
|
|
14
|
+
scroll: I = {},
|
|
15
|
+
...b
|
|
16
|
+
}, r) => {
|
|
17
|
+
const c = R(), [L, d] = j(
|
|
18
|
+
i ? {} : {
|
|
19
|
+
x: "fit-content",
|
|
20
|
+
y: "fit-content"
|
|
21
|
+
}
|
|
22
|
+
), s = A(null);
|
|
23
|
+
U(() => {
|
|
24
|
+
var u;
|
|
25
|
+
if (!s.current) return;
|
|
26
|
+
const n = (u = s.current) == null ? void 0 : u.nativeElement.querySelector(
|
|
27
|
+
"." + c("table-tbody")
|
|
28
|
+
), o = new ResizeObserver((S) => {
|
|
29
|
+
for (const m of S)
|
|
30
|
+
m.target && d({
|
|
31
|
+
y: m.target.clientHeight,
|
|
32
|
+
x: m.target.clientWidth
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return n && i && o.observe(n), () => {
|
|
36
|
+
n && i && o.disconnect();
|
|
37
|
+
};
|
|
38
|
+
}, [i, c]);
|
|
39
|
+
const T = f ? f.map((n) => ({
|
|
40
|
+
sortIcon: ({ sortOrder: o }) => /* @__PURE__ */ e(
|
|
17
41
|
"span",
|
|
18
42
|
{
|
|
19
|
-
className:
|
|
43
|
+
className: c(
|
|
20
44
|
"table-column-sort-icon",
|
|
21
45
|
o ? `table-column-sort-icon-${o}` : "table-column-sort-icon-none"
|
|
22
46
|
),
|
|
23
|
-
children: o ? o === "ascend" ? /* @__PURE__ */
|
|
24
|
-
/* @__PURE__ */
|
|
47
|
+
children: o ? o === "ascend" ? /* @__PURE__ */ e(p, { weight: "fill" }) : /* @__PURE__ */ e(E, { weight: "fill" }) : /* @__PURE__ */ g(_, { children: [
|
|
48
|
+
/* @__PURE__ */ e(p, { weight: "fill" }),
|
|
25
49
|
" ",
|
|
26
|
-
/* @__PURE__ */
|
|
50
|
+
/* @__PURE__ */ e(E, { weight: "fill" })
|
|
27
51
|
] })
|
|
28
52
|
}
|
|
29
53
|
),
|
|
30
|
-
filterIcon: (o) => /* @__PURE__ */
|
|
31
|
-
...
|
|
32
|
-
})) : void 0,
|
|
33
|
-
emptyText: /* @__PURE__ */
|
|
34
|
-
...
|
|
54
|
+
filterIcon: (o) => /* @__PURE__ */ e("span", { className: c("table-column-filter-icon"), children: /* @__PURE__ */ e(h, { weight: "fill" }) }),
|
|
55
|
+
...n
|
|
56
|
+
})) : void 0, y = {
|
|
57
|
+
emptyText: /* @__PURE__ */ e(w, { description: C }),
|
|
58
|
+
...N
|
|
35
59
|
};
|
|
36
|
-
let
|
|
37
|
-
|
|
38
|
-
spinning:
|
|
39
|
-
indicator: /* @__PURE__ */
|
|
40
|
-
} : typeof
|
|
60
|
+
let a;
|
|
61
|
+
typeof l == "boolean" ? a = {
|
|
62
|
+
spinning: l,
|
|
63
|
+
indicator: /* @__PURE__ */ e("span", { className: c("spin-loader") })
|
|
64
|
+
} : typeof l == "object" && (a = {
|
|
41
65
|
spinning: !0,
|
|
42
|
-
indicator: /* @__PURE__ */
|
|
43
|
-
...
|
|
44
|
-
})
|
|
45
|
-
|
|
66
|
+
indicator: /* @__PURE__ */ e("span", { className: c("spin-loader") }),
|
|
67
|
+
...l
|
|
68
|
+
});
|
|
69
|
+
const O = M(
|
|
70
|
+
(n) => {
|
|
71
|
+
n && (typeof r == "function" && r(n), r && typeof r == "object" && "current" in r && (r.current = n), s.current = n);
|
|
72
|
+
},
|
|
73
|
+
[r]
|
|
74
|
+
);
|
|
75
|
+
return /* @__PURE__ */ e(
|
|
76
|
+
t,
|
|
46
77
|
{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
78
|
+
ref: O,
|
|
79
|
+
columns: T,
|
|
80
|
+
loading: a,
|
|
81
|
+
locale: y,
|
|
82
|
+
virtual: i,
|
|
83
|
+
scroll: { ...L, ...I },
|
|
84
|
+
...b
|
|
52
85
|
}
|
|
53
86
|
);
|
|
54
|
-
},
|
|
55
|
-
Column:
|
|
56
|
-
ColumnGroup:
|
|
57
|
-
SELECTION_COLUMN:
|
|
58
|
-
EXPAND_COLUMN:
|
|
59
|
-
SELECTION_ALL:
|
|
60
|
-
SELECTION_INVERT:
|
|
61
|
-
SELECTION_NONE:
|
|
62
|
-
Summary:
|
|
87
|
+
}, P = x(D), v = Object.assign(P, {
|
|
88
|
+
Column: t.Column,
|
|
89
|
+
ColumnGroup: t.ColumnGroup,
|
|
90
|
+
SELECTION_COLUMN: t.SELECTION_COLUMN,
|
|
91
|
+
EXPAND_COLUMN: t.EXPAND_COLUMN,
|
|
92
|
+
SELECTION_ALL: t.SELECTION_ALL,
|
|
93
|
+
SELECTION_INVERT: t.SELECTION_INVERT,
|
|
94
|
+
SELECTION_NONE: t.SELECTION_NONE,
|
|
95
|
+
Summary: t.Summary
|
|
63
96
|
});
|
|
64
97
|
export {
|
|
65
|
-
|
|
66
|
-
y as default
|
|
98
|
+
v as Table
|
|
67
99
|
};
|
|
68
100
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/Table/component.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/Table/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntTable,\n type ColumnType,\n type TableProps as AntTableProps,\n type TableRef,\n} from \"antd/es/table\";\nimport { CaretDownIcon, CaretUpIcon, FunnelIcon } from \"@bioturing/assets\";\nimport { useCls } from \"../utils\";\nimport Empty from \"../Empty/component\";\nimport { SpinProps } from \"antd/es/spin\";\nimport {\n useState,\n useEffect,\n forwardRef,\n Ref,\n ForwardedRef,\n useCallback,\n useRef,\n} from \"react\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Define interface with all the generic type parameters from AntTable without any\nexport interface TableProps<RecordType extends object = object>\n extends AntTableProps<RecordType> {\n /**\n * Add empty description for the table\n */\n emptyDescription?: React.ReactNode;\n /**\n * Table ref\n */\n tableRef?: React.Ref<HTMLDivElement>;\n}\n\n// Simple wrapper component with proper generics\nconst InnerInternalTable = <RecordType extends object = object>(\n {\n columns,\n locale,\n emptyDescription,\n loading,\n virtual,\n scroll: scrollProp = {},\n ...rest\n }: TableProps<RecordType>,\n ref: Ref<TableRef>\n) => {\n const cls = useCls();\n const [scroll, setScroll] = useState<TableProps[\"scroll\"]>(\n virtual\n ? {}\n : {\n x: \"fit-content\",\n y: \"fit-content\",\n }\n );\n\n const innerRef = useRef<TableRef>(null);\n\n useEffect(() => {\n if (!innerRef.current) return;\n const tbody = innerRef.current?.nativeElement.querySelector(\n \".\" + cls(\"table-tbody\")\n ) as HTMLElement;\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target) {\n setScroll({\n y: entry.target.clientHeight,\n x: entry.target.clientWidth,\n });\n }\n }\n });\n if (tbody && virtual) {\n resizeObserver.observe(tbody);\n }\n\n return () => {\n if (tbody && virtual) {\n resizeObserver.disconnect();\n }\n };\n }, [virtual, cls]);\n const modifiedColumns = columns\n ? columns.map((column: ColumnType<RecordType>): ColumnType<RecordType> => {\n return {\n sortIcon: ({ sortOrder }) => {\n return (\n <span\n className={cls(\n \"table-column-sort-icon\",\n sortOrder\n ? `table-column-sort-icon-${sortOrder}`\n : `table-column-sort-icon-none`\n )}\n >\n {!sortOrder ? (\n <>\n <CaretUpIcon weight=\"fill\" />{\" \"}\n <CaretDownIcon weight=\"fill\" />\n </>\n ) : sortOrder === \"ascend\" ? (\n <CaretUpIcon weight=\"fill\" />\n ) : (\n <CaretDownIcon weight=\"fill\" />\n )}\n </span>\n );\n },\n filterIcon: (_filtered) => {\n return (\n <span className={cls(\"table-column-filter-icon\")}>\n <FunnelIcon weight=\"fill\" />\n </span>\n );\n },\n ...column,\n };\n })\n : undefined;\n const modifiedLocale = {\n emptyText: <Empty description={emptyDescription} />,\n ...locale,\n };\n let spinProps: SpinProps | undefined;\n if (typeof loading === \"boolean\") {\n spinProps = {\n spinning: loading,\n indicator: <span className={cls(\"spin-loader\")} />,\n };\n } else if (typeof loading === \"object\") {\n spinProps = {\n spinning: true,\n indicator: <span className={cls(\"spin-loader\")} />,\n ...loading,\n };\n }\n const callbackRef = useCallback(\n (tableRef: TableRef) => {\n if (tableRef) {\n if (typeof ref === \"function\") {\n ref(tableRef);\n }\n if (ref && typeof ref === \"object\" && \"current\" in ref) {\n ref.current = tableRef;\n }\n innerRef.current = tableRef;\n }\n },\n [ref]\n );\n\n return (\n <AntTable\n ref={callbackRef}\n columns={modifiedColumns}\n loading={spinProps}\n locale={modifiedLocale}\n virtual={virtual}\n scroll={{ ...scroll, ...scrollProp }}\n {...rest}\n />\n );\n};\n\nconst InternalTable = forwardRef(InnerInternalTable) as <\n RecordType extends object = object\n>(\n props: TableProps<RecordType> & { ref?: ForwardedRef<TableRef> }\n) => ReturnType<typeof InnerInternalTable>;\n\n// Create the final component with all static properties\nexport const Table = Object.assign(InternalTable, {\n Column: AntTable.Column,\n ColumnGroup: AntTable.ColumnGroup,\n SELECTION_COLUMN: AntTable.SELECTION_COLUMN,\n EXPAND_COLUMN: AntTable.EXPAND_COLUMN,\n SELECTION_ALL: AntTable.SELECTION_ALL,\n SELECTION_INVERT: AntTable.SELECTION_INVERT,\n SELECTION_NONE: AntTable.SELECTION_NONE,\n Summary: AntTable.Summary,\n}) as typeof InternalTable & {\n Column: typeof AntTable.Column;\n ColumnGroup: typeof AntTable.ColumnGroup;\n SELECTION_COLUMN: typeof AntTable.SELECTION_COLUMN;\n EXPAND_COLUMN: typeof AntTable.EXPAND_COLUMN;\n SELECTION_ALL: typeof AntTable.SELECTION_ALL;\n SELECTION_INVERT: typeof AntTable.SELECTION_INVERT;\n SELECTION_NONE: typeof AntTable.SELECTION_NONE;\n Summary: typeof AntTable.Summary;\n};\n"],"names":["InnerInternalTable","columns","locale","emptyDescription","loading","virtual","scrollProp","rest","ref","cls","useCls","scroll","setScroll","useState","innerRef","useRef","useEffect","tbody","_a","resizeObserver","entries","entry","modifiedColumns","column","sortOrder","jsx","CaretUpIcon","CaretDownIcon","jsxs","Fragment","_filtered","FunnelIcon","modifiedLocale","Empty","spinProps","callbackRef","useCallback","tableRef","AntTable","InternalTable","forwardRef","Table"],"mappings":";;;;;;;AAsCA,MAAMA,IAAqB,CACzB;AAAA,EACE,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAQC,IAAa,CAAC;AAAA,EACtB,GAAGC;AACL,GACAC,MACG;AACH,QAAMC,IAAMC,EAAO,GACb,CAACC,GAAQC,CAAS,IAAIC;AAAA,IAC1BR,IACI,CAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EAEX,GAEMS,IAAWC,EAAiB,IAAI;AAEtC,EAAAC,EAAU,MAAM;;AACV,QAAA,CAACF,EAAS,QAAS;AACjB,UAAAG,KAAQC,IAAAJ,EAAS,YAAT,gBAAAI,EAAkB,cAAc;AAAA,MAC5C,MAAMT,EAAI,aAAa;AAAA,OAEnBU,IAAiB,IAAI,eAAe,CAACC,MAAY;AACrD,iBAAWC,KAASD;AAClB,QAAIC,EAAM,UACET,EAAA;AAAA,UACR,GAAGS,EAAM,OAAO;AAAA,UAChB,GAAGA,EAAM,OAAO;AAAA,QAAA,CACjB;AAAA,IAEL,CACD;AACD,WAAIJ,KAASZ,KACXc,EAAe,QAAQF,CAAK,GAGvB,MAAM;AACX,MAAIA,KAASZ,KACXc,EAAe,WAAW;AAAA,IAE9B;AAAA,EAAA,GACC,CAACd,GAASI,CAAG,CAAC;AACjB,QAAMa,IAAkBrB,IACpBA,EAAQ,IAAI,CAACsB,OACJ;AAAA,IACL,UAAU,CAAC,EAAE,WAAAC,QAET,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWhB;AAAA,UACT;AAAA,UACAe,IACI,0BAA0BA,CAAS,KACnC;AAAA,QACN;AAAA,QAEC,UAACA,IAKEA,MAAc,WACf,gBAAAC,EAAAC,GAAA,EAAY,QAAO,OAAA,CAAO,IAE3B,gBAAAD,EAACE,GAAc,EAAA,QAAO,OAAO,CAAA,IAN3B,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,UAAC,gBAAAJ,EAAAC,GAAA,EAAY,QAAO,OAAO,CAAA;AAAA,UAAG;AAAA,UAC9B,gBAAAD,EAACE,GAAc,EAAA,QAAO,OAAO,CAAA;AAAA,QAC/B,EAAA,CAAA;AAAA,MAI6B;AAAA,IAEjC;AAAA,IAGJ,YAAY,CAACG,MAET,gBAAAL,EAAC,QAAK,EAAA,WAAWhB,EAAI,0BAA0B,GAC7C,UAAC,gBAAAgB,EAAAM,GAAA,EAAW,QAAO,OAAA,CAAO,EAC5B,CAAA;AAAA,IAGJ,GAAGR;AAAA,EACL,EACD,IACD,QACES,IAAiB;AAAA,IACrB,WAAW,gBAAAP,EAACQ,GAAM,EAAA,aAAa9B,EAAkB,CAAA;AAAA,IACjD,GAAGD;AAAA,EACL;AACI,MAAAgC;AACA,EAAA,OAAO9B,KAAY,YACT8B,IAAA;AAAA,IACV,UAAU9B;AAAA,IACV,WAAY,gBAAAqB,EAAA,QAAA,EAAK,WAAWhB,EAAI,aAAa,EAAG,CAAA;AAAA,EAClD,IACS,OAAOL,KAAY,aAChB8B,IAAA;AAAA,IACV,UAAU;AAAA,IACV,WAAY,gBAAAT,EAAA,QAAA,EAAK,WAAWhB,EAAI,aAAa,GAAG;AAAA,IAChD,GAAGL;AAAA,EACL;AAEF,QAAM+B,IAAcC;AAAA,IAClB,CAACC,MAAuB;AACtB,MAAIA,MACE,OAAO7B,KAAQ,cACjBA,EAAI6B,CAAQ,GAEV7B,KAAO,OAAOA,KAAQ,YAAY,aAAaA,MACjDA,EAAI,UAAU6B,IAEhBvB,EAAS,UAAUuB;AAAA,IAEvB;AAAA,IACA,CAAC7B,CAAG;AAAA,EACN;AAGE,SAAA,gBAAAiB;AAAA,IAACa;AAAA,IAAA;AAAA,MACC,KAAKH;AAAA,MACL,SAASb;AAAA,MACT,SAASY;AAAA,MACT,QAAQF;AAAA,MACR,SAAA3B;AAAA,MACA,QAAQ,EAAE,GAAGM,GAAQ,GAAGL,EAAW;AAAA,MAClC,GAAGC;AAAA,IAAA;AAAA,EACN;AAEJ,GAEMgC,IAAgBC,EAAWxC,CAAkB,GAOtCyC,IAAQ,OAAO,OAAOF,GAAe;AAAA,EAChD,QAAQD,EAAS;AAAA,EACjB,aAAaA,EAAS;AAAA,EACtB,kBAAkBA,EAAS;AAAA,EAC3B,eAAeA,EAAS;AAAA,EACxB,eAAeA,EAAS;AAAA,EACxB,kBAAkBA,EAAS;AAAA,EAC3B,gBAAgBA,EAAS;AAAA,EACzB,SAASA,EAAS;AACpB,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{.ds-table-column-sort-icon{display:flex;flex-direction:column}.ds-table-column-sort-icon svg{color:var(--ds-color-text-disabled);font-size:1rem}:is(.ds-table-column-sort-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-sort-icon.ds-table-column-sort-icon-none svg{font-size:.75rem}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:first-child{margin-bottom:-2px}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:last-child{margin-top:-2px}.ds-table-column-filter-icon{display:flex;flex-direction:column}.ds-table-column-filter-icon svg{color:var(--ds-color-text-disabled);font-size:.875rem}:is(.ds-table-column-filter-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-filter-icon.ds-table-column-filter-icon-active svg{color:var(--ds-color-primary)}.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-first:after,.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-last:after{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-first:after,.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-last:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right:not(.ds-table-has-fix-right) .ds-table-container:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-left:not(.ds-table-has-fix-left) .ds-table-container:before{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper{display:flex;flex-direction:column}.ds-table-wrapper .ds-spin-nested-loading,.ds-table-wrapper .ds-spin-container{display:flex;flex-direction:column;flex-shrink:1;flex-grow:1;min-height:0}:is(.ds-table-wrapper .ds-spin-container) .ds-table{flex-shrink:1;flex-grow:1;min-height:0}.ds-table{display:flex;flex-direction:column}.ds-table-container{flex-shrink:1;min-height:0;display:flex;flex-direction:column}.ds-table-header{flex-shrink:0}.ds-table-body{flex-shrink:1}}
|
|
1
|
+
@layer components{.ds-table-column-sort-icon{display:flex;flex-direction:column}.ds-table-column-sort-icon svg{color:var(--ds-color-text-disabled);font-size:1rem}:is(.ds-table-column-sort-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-sort-icon.ds-table-column-sort-icon-none svg{font-size:.75rem}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:first-child{margin-bottom:-2px}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:last-child{margin-top:-2px}.ds-table-column-filter-icon{display:flex;flex-direction:column}.ds-table-column-filter-icon svg{color:var(--ds-color-text-disabled);font-size:.875rem}:is(.ds-table-column-filter-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-filter-icon.ds-table-column-filter-icon-active svg{color:var(--ds-color-primary)}.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-first:after,.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-last:after{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-first:after,.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-last:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right:not(.ds-table-has-fix-right) .ds-table-container:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-left:not(.ds-table-has-fix-left) .ds-table-container:before{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper{display:flex;flex-direction:column}.ds-table-wrapper .ds-spin-nested-loading,.ds-table-wrapper .ds-spin-container{display:flex;flex-direction:column;flex-shrink:1;flex-grow:1;min-height:0}:is(.ds-table-wrapper .ds-spin-container) .ds-table{flex-shrink:1;flex-grow:1;min-height:0}.ds-table{display:flex;flex-direction:column}.ds-table-container{flex-shrink:1;min-height:0;display:flex;flex-direction:column}.ds-table-header{flex-shrink:0}.ds-table-body{flex-shrink:1;min-height:0;min-width:0}}
|
|
@@ -1,58 +1,61 @@
|
|
|
1
1
|
import n from "antd/es/config-provider";
|
|
2
|
-
import
|
|
3
|
-
import { useContext as i } from "react";
|
|
4
|
-
import { cx as
|
|
5
|
-
const
|
|
6
|
-
const { getPrefixCls:
|
|
7
|
-
return { getPrefixCls:
|
|
2
|
+
import c from "antd/es/theme/useToken";
|
|
3
|
+
import { useContext as i, useCallback as a } from "react";
|
|
4
|
+
import { cx as l } from "./cn.js";
|
|
5
|
+
const b = () => {
|
|
6
|
+
const { getPrefixCls: s } = i(n.ConfigContext);
|
|
7
|
+
return { getPrefixCls: s };
|
|
8
8
|
}, g = () => {
|
|
9
9
|
var t;
|
|
10
|
-
return (t =
|
|
11
|
-
},
|
|
12
|
-
const { getPrefixCls:
|
|
13
|
-
return (
|
|
10
|
+
return (t = c()[4]) == null ? void 0 : t.key;
|
|
11
|
+
}, k = () => {
|
|
12
|
+
const { getPrefixCls: s } = i(n.ConfigContext);
|
|
13
|
+
return a(
|
|
14
|
+
(...e) => l(...e).map((o) => s(o)).join(" "),
|
|
15
|
+
[s]
|
|
16
|
+
);
|
|
14
17
|
};
|
|
15
|
-
function f(
|
|
18
|
+
function f(s) {
|
|
16
19
|
const t = [];
|
|
17
20
|
let e = "";
|
|
18
|
-
for (const
|
|
19
|
-
|
|
20
|
-
return e && t.push(e), t.length > 0 ? t : [
|
|
21
|
+
for (const o of s)
|
|
22
|
+
o >= "A" && o <= "Z" ? (e && t.push(e), e = o.toLowerCase()) : e += o;
|
|
23
|
+
return e && t.push(e), t.length > 0 ? t : [s];
|
|
21
24
|
}
|
|
22
|
-
const h = (
|
|
23
|
-
const [t, e] = f(
|
|
24
|
-
let
|
|
25
|
+
const h = (s = "bottomLeft") => {
|
|
26
|
+
const [t, e] = f(s);
|
|
27
|
+
let o, r = "center";
|
|
25
28
|
if (t === "top" || t === "bottom") {
|
|
26
|
-
if (
|
|
29
|
+
if (o = t, e)
|
|
27
30
|
switch (e) {
|
|
28
31
|
case "left":
|
|
29
|
-
|
|
32
|
+
r = "start";
|
|
30
33
|
break;
|
|
31
34
|
case "right":
|
|
32
|
-
|
|
35
|
+
r = "end";
|
|
33
36
|
break;
|
|
34
37
|
}
|
|
35
38
|
} else if (t === "left" || t === "right") {
|
|
36
|
-
if (
|
|
39
|
+
if (o = t, e)
|
|
37
40
|
switch (e) {
|
|
38
41
|
case "top":
|
|
39
|
-
|
|
42
|
+
r = "start";
|
|
40
43
|
break;
|
|
41
44
|
case "bottom":
|
|
42
|
-
|
|
45
|
+
r = "end";
|
|
43
46
|
break;
|
|
44
47
|
}
|
|
45
48
|
} else
|
|
46
|
-
|
|
49
|
+
o = "bottom";
|
|
47
50
|
return {
|
|
48
|
-
placement:
|
|
49
|
-
align:
|
|
51
|
+
placement: o,
|
|
52
|
+
align: r
|
|
50
53
|
};
|
|
51
54
|
};
|
|
52
55
|
export {
|
|
53
56
|
h as parseAntdPlacement,
|
|
54
57
|
g as useAntdCssVarClassname,
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
k as useCls,
|
|
59
|
+
b as useGetPrefixCls
|
|
57
60
|
};
|
|
58
61
|
//# sourceMappingURL=antdUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antdUtils.js","sources":["../../../src/components/utils/antdUtils.ts"],"sourcesContent":["\"use client\";\nimport { default as ConfigProvider } from \"antd/es/config-provider\";\nimport useToken from \"antd/es/theme/useToken\";\nimport { useContext } from \"react\";\nimport type { ClassValue } from \"./types\";\nimport { cx } from \"./cn\";\nimport { PopoverProps } from \"antd/es/popover\";\n\nexport const useGetPrefixCls = () => {\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n return { getPrefixCls };\n};\n\n/**\n *\n * @returns the antd classname providing css variables\n */\nexport const useAntdCssVarClassname = () => {\n const token = useToken();\n return token[4]?.key;\n};\n\nexport const useCls = () => {\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n
|
|
1
|
+
{"version":3,"file":"antdUtils.js","sources":["../../../src/components/utils/antdUtils.ts"],"sourcesContent":["\"use client\";\nimport { default as ConfigProvider } from \"antd/es/config-provider\";\nimport useToken from \"antd/es/theme/useToken\";\nimport { useCallback, useContext } from \"react\";\nimport type { ClassValue } from \"./types\";\nimport { cx } from \"./cn\";\nimport { PopoverProps } from \"antd/es/popover\";\n\nexport const useGetPrefixCls = () => {\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n return { getPrefixCls };\n};\n\n/**\n *\n * @returns the antd classname providing css variables\n */\nexport const useAntdCssVarClassname = () => {\n const token = useToken();\n return token[4]?.key;\n};\n\nexport const useCls = () => {\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n const cls = useCallback(\n (...args: ClassValue[]) => {\n return cx(...args)\n .map((cls) => getPrefixCls(cls))\n .join(\" \");\n },\n [getPrefixCls]\n );\n return cls;\n};\n\nfunction splitCamelCase(text: string): string[] {\n const result: string[] = [];\n let currentWord = \"\";\n\n for (const char of text) {\n if (char >= \"A\" && char <= \"Z\") {\n if (currentWord) {\n result.push(currentWord);\n }\n currentWord = char.toLowerCase();\n } else {\n currentWord += char;\n }\n }\n\n if (currentWord) {\n result.push(currentWord);\n }\n\n return result.length > 0 ? result : [text];\n}\n\nexport const parseAntdPlacement = (\n placement: PopoverProps[\"placement\"] = \"bottomLeft\"\n): {\n placement: \"top\" | \"bottom\" | \"left\" | \"right\";\n align: \"start\" | \"end\" | \"center\";\n} => {\n const [position1, position2] = splitCamelCase(placement);\n\n // Determine primary placement\n let primaryPlacement: \"top\" | \"bottom\" | \"left\" | \"right\";\n let align: \"start\" | \"end\" | \"center\" = \"center\";\n\n // First check if it's a vertical or horizontal primary placement\n if (position1 === \"top\" || position1 === \"bottom\") {\n primaryPlacement = position1;\n if (position2) {\n switch (position2) {\n case \"left\":\n align = \"start\";\n break;\n case \"right\":\n align = \"end\";\n break;\n // \"top\" or \"bottom\" as second position is invalid, defaults to center\n }\n }\n } else if (position1 === \"left\" || position1 === \"right\") {\n primaryPlacement = position1;\n if (position2) {\n switch (position2) {\n case \"top\":\n align = \"start\";\n break;\n case \"bottom\":\n align = \"end\";\n break;\n // \"left\" or \"right\" as second position is invalid, defaults to center\n }\n }\n } else {\n // Fallback for invalid placement\n primaryPlacement = \"bottom\";\n }\n\n return {\n placement: primaryPlacement,\n align,\n };\n};\n"],"names":["useGetPrefixCls","getPrefixCls","useContext","ConfigProvider","useAntdCssVarClassname","_a","useToken","useCls","useCallback","args","cx","cls","splitCamelCase","text","result","currentWord","char","parseAntdPlacement","placement","position1","position2","primaryPlacement","align"],"mappings":";;;;AAQO,MAAMA,IAAkB,MAAM;AACnC,QAAM,EAAE,cAAAC,EAAiB,IAAAC,EAAWC,EAAe,aAAa;AAChE,SAAO,EAAE,cAAAF,EAAa;AACxB,GAMaG,IAAyB,MAAM;;AAEnC,UAAAC,IADOC,EAAS,EACV,CAAC,MAAP,gBAAAD,EAAU;AACnB,GAEaE,IAAS,MAAM;AAC1B,QAAM,EAAE,cAAAN,EAAiB,IAAAC,EAAWC,EAAe,aAAa;AASzD,SARKK;AAAA,IACV,IAAIC,MACKC,EAAG,GAAGD,CAAI,EACd,IAAI,CAACE,MAAQV,EAAaU,CAAG,CAAC,EAC9B,KAAK,GAAG;AAAA,IAEb,CAACV,CAAY;AAAA,EACf;AAEF;AAEA,SAASW,EAAeC,GAAwB;AAC9C,QAAMC,IAAmB,CAAC;AAC1B,MAAIC,IAAc;AAElB,aAAWC,KAAQH;AACb,IAAAG,KAAQ,OAAOA,KAAQ,OACrBD,KACFD,EAAO,KAAKC,CAAW,GAEzBA,IAAcC,EAAK,YAAY,KAEhBD,KAAAC;AAInB,SAAID,KACFD,EAAO,KAAKC,CAAW,GAGlBD,EAAO,SAAS,IAAIA,IAAS,CAACD,CAAI;AAC3C;AAEa,MAAAI,IAAqB,CAChCC,IAAuC,iBAIpC;AACH,QAAM,CAACC,GAAWC,CAAS,IAAIR,EAAeM,CAAS;AAGnD,MAAAG,GACAC,IAAoC;AAGpC,MAAAH,MAAc,SAASA,MAAc;AAEvC,QADmBE,IAAAF,GACfC;AACF,cAAQA,GAAW;AAAA,QACjB,KAAK;AACK,UAAAE,IAAA;AACR;AAAA,QACF,KAAK;AACK,UAAAA,IAAA;AACR;AAAA,MAAA;AAAA,aAIGH,MAAc,UAAUA,MAAc;AAE/C,QADmBE,IAAAF,GACfC;AACF,cAAQA,GAAW;AAAA,QACjB,KAAK;AACK,UAAAE,IAAA;AACR;AAAA,QACF,KAAK;AACK,UAAAA,IAAA;AACR;AAAA,MAAA;AAAA;AAMa,IAAAD,IAAA;AAGd,SAAA;AAAA,IACL,WAAWA;AAAA,IACX,OAAAC;AAAA,EACF;AACF;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -160,6 +160,7 @@ import { RcFile } from 'antd/es/upload';
|
|
|
160
160
|
import * as React_2 from 'react';
|
|
161
161
|
import { ReactElement } from 'react';
|
|
162
162
|
import { ReactNode } from 'react';
|
|
163
|
+
import { Ref } from 'react';
|
|
163
164
|
import { RefAttributes } from 'react';
|
|
164
165
|
import { RefObject } from 'react';
|
|
165
166
|
import { RefSelectProps } from 'antd';
|
|
@@ -200,6 +201,7 @@ import { TableColumnType } from 'antd';
|
|
|
200
201
|
import { TablePaginationConfig } from 'antd';
|
|
201
202
|
import { TableProps } from 'antd';
|
|
202
203
|
import { TableProps as TableProps_3 } from 'antd/es/table';
|
|
204
|
+
import { TableRef } from 'antd/es/table';
|
|
203
205
|
import { TabPaneProps } from 'antd';
|
|
204
206
|
import { Tabs } from 'antd';
|
|
205
207
|
import { TabsProps } from 'antd';
|
|
@@ -1107,6 +1109,8 @@ declare type IconButtonOwnProps<E extends ElementType = ElementType> = WithHrefP
|
|
|
1107
1109
|
|
|
1108
1110
|
export declare type IconButtonProps<E extends ElementType = "button"> = IconButtonOwnProps<E> & Omit<ComponentPropsWithoutRef<E>, keyof IconButtonOwnProps<E>>;
|
|
1109
1111
|
|
|
1112
|
+
declare const InnerInternalTable: <RecordType extends object = object>({ columns, locale, emptyDescription, loading, virtual, scroll: scrollProp, ...rest }: TableProps_2<RecordType>, ref: Ref<TableRef>) => JSX.Element;
|
|
1113
|
+
|
|
1110
1114
|
declare function InnerToast({ toast, }: {
|
|
1111
1115
|
toast: Toast_2.Root.ToastObject<ToastData>;
|
|
1112
1116
|
}): JSX.Element;
|
|
@@ -1140,7 +1144,9 @@ export declare interface InputProps extends InputProps_2 {
|
|
|
1140
1144
|
declare interface InternalFormProps<Values = any> extends React_2.ComponentProps<typeof default_8<Values>> {
|
|
1141
1145
|
}
|
|
1142
1146
|
|
|
1143
|
-
declare const InternalTable: <RecordType extends object = object>(
|
|
1147
|
+
declare const InternalTable: <RecordType extends object = object>(props: TableProps_2<RecordType> & {
|
|
1148
|
+
ref?: ForwardedRef<TableRef>;
|
|
1149
|
+
}) => ReturnType<typeof InnerInternalTable>;
|
|
1144
1150
|
|
|
1145
1151
|
declare type IntrinsicElement = keyof JSX_2.IntrinsicElements | JSXElementConstructor<any>;
|
|
1146
1152
|
|
|
@@ -2162,6 +2168,10 @@ declare interface TableProps_2<RecordType extends object = object> extends Table
|
|
|
2162
2168
|
* Add empty description for the table
|
|
2163
2169
|
*/
|
|
2164
2170
|
emptyDescription?: React.ReactNode;
|
|
2171
|
+
/**
|
|
2172
|
+
* Table ref
|
|
2173
|
+
*/
|
|
2174
|
+
tableRef?: React.Ref<HTMLDivElement>;
|
|
2165
2175
|
}
|
|
2166
2176
|
|
|
2167
2177
|
export { TabPaneProps }
|