@ceed/cds 1.27.0 → 1.27.2
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/index.cjs
CHANGED
|
@@ -2322,7 +2322,7 @@ var StyledTd = (0, import_joy25.styled)("td")(({ theme }) => ({
|
|
|
2322
2322
|
var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
|
|
2323
2323
|
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react19.default.createElement(import_joy25.LinearProgress, { value: 8, variant: "plain" });
|
|
2324
2324
|
var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react19.default.createElement(import_joy25.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
|
|
2325
|
-
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react19.default.createElement(
|
|
2325
|
+
var Resizer = (ref, targetRef = ref, onResizeStateChange) => /* @__PURE__ */ import_react19.default.createElement(
|
|
2326
2326
|
Box_default,
|
|
2327
2327
|
{
|
|
2328
2328
|
sx: {
|
|
@@ -2337,6 +2337,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react19.default.c
|
|
|
2337
2337
|
onMouseDown: (e) => {
|
|
2338
2338
|
const initialX = e.clientX;
|
|
2339
2339
|
const initialWidth = ref.current?.getBoundingClientRect().width;
|
|
2340
|
+
onResizeStateChange?.(true);
|
|
2340
2341
|
const onMouseMove = (e2) => {
|
|
2341
2342
|
if (initialWidth && initialX) {
|
|
2342
2343
|
ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
@@ -2346,6 +2347,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react19.default.c
|
|
|
2346
2347
|
const onMouseUp = () => {
|
|
2347
2348
|
document.removeEventListener("mousemove", onMouseMove);
|
|
2348
2349
|
document.removeEventListener("mouseup", onMouseUp);
|
|
2350
|
+
requestAnimationFrame(() => onResizeStateChange?.(false));
|
|
2349
2351
|
};
|
|
2350
2352
|
document.addEventListener("mousemove", onMouseMove);
|
|
2351
2353
|
document.addEventListener("mouseup", onMouseUp);
|
|
@@ -2933,7 +2935,7 @@ var TextEllipsis = ({ children, lineClamp }) => {
|
|
|
2933
2935
|
ro.observe(element);
|
|
2934
2936
|
return () => ro.disconnect();
|
|
2935
2937
|
}, [children, lineClamp]);
|
|
2936
|
-
return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top"
|
|
2938
|
+
return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef, lineClamp }, children));
|
|
2937
2939
|
};
|
|
2938
2940
|
var CellTextEllipsis = ({ children }) => {
|
|
2939
2941
|
const textRef = (0, import_react24.useRef)(null);
|
|
@@ -2990,13 +2992,23 @@ var HeadCell = (props) => {
|
|
|
2990
2992
|
const theme = (0, import_joy32.useTheme)();
|
|
2991
2993
|
const ref = headerRef;
|
|
2992
2994
|
const colRef = tableColRef;
|
|
2995
|
+
const localRef = (0, import_react24.useRef)(null);
|
|
2996
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
2997
|
+
ref.current = localRef.current;
|
|
2998
|
+
}, [ref]);
|
|
2993
2999
|
const [isHovered, setIsHovered] = (0, import_react24.useState)(false);
|
|
2994
3000
|
const sortable = type === "actions" ? false : _sortable;
|
|
2995
3001
|
const headId = (0, import_react24.useMemo)(
|
|
2996
3002
|
() => `${tableId}_header_${headerName ?? field}`.trim(),
|
|
2997
3003
|
[tableId, headerName, field]
|
|
2998
3004
|
);
|
|
2999
|
-
const
|
|
3005
|
+
const isResizingRef = (0, import_react24.useRef)(false);
|
|
3006
|
+
const resizer = (0, import_react24.useMemo)(
|
|
3007
|
+
() => resizable ?? true ? Resizer(ref, colRef, (isResizing) => {
|
|
3008
|
+
isResizingRef.current = isResizing;
|
|
3009
|
+
}) : null,
|
|
3010
|
+
[resizable, ref, colRef]
|
|
3011
|
+
);
|
|
3000
3012
|
const style = (0, import_react24.useMemo)(
|
|
3001
3013
|
() => ({
|
|
3002
3014
|
width,
|
|
@@ -3066,11 +3078,15 @@ var HeadCell = (props) => {
|
|
|
3066
3078
|
id: headId,
|
|
3067
3079
|
"aria-label": headerName ?? field,
|
|
3068
3080
|
"aria-sort": sort ? { asc: "ascending", desc: "descending" }[sort] : "none",
|
|
3069
|
-
ref,
|
|
3081
|
+
ref: localRef,
|
|
3070
3082
|
key: field,
|
|
3071
3083
|
style,
|
|
3072
3084
|
onClick: (0, import_react24.useCallback)(
|
|
3073
|
-
(e) =>
|
|
3085
|
+
(e) => {
|
|
3086
|
+
if (isResizingRef.current) return;
|
|
3087
|
+
if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
|
|
3088
|
+
sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey });
|
|
3089
|
+
},
|
|
3074
3090
|
[field, onSortChange, sort, sortable]
|
|
3075
3091
|
),
|
|
3076
3092
|
onMouseEnter: () => setIsHovered(true),
|
package/dist/index.js
CHANGED
|
@@ -2196,7 +2196,7 @@ var StyledTd = styled8("td")(({ theme }) => ({
|
|
|
2196
2196
|
var MotionSortIcon = motion17(SortIcon);
|
|
2197
2197
|
var DefaultLoadingOverlay = () => /* @__PURE__ */ React17.createElement(LinearProgress, { value: 8, variant: "plain" });
|
|
2198
2198
|
var DefaultNoRowsOverlay = () => /* @__PURE__ */ React17.createElement(Typography3, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
|
|
2199
|
-
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React17.createElement(
|
|
2199
|
+
var Resizer = (ref, targetRef = ref, onResizeStateChange) => /* @__PURE__ */ React17.createElement(
|
|
2200
2200
|
Box_default,
|
|
2201
2201
|
{
|
|
2202
2202
|
sx: {
|
|
@@ -2211,6 +2211,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React17.createElement(
|
|
|
2211
2211
|
onMouseDown: (e) => {
|
|
2212
2212
|
const initialX = e.clientX;
|
|
2213
2213
|
const initialWidth = ref.current?.getBoundingClientRect().width;
|
|
2214
|
+
onResizeStateChange?.(true);
|
|
2214
2215
|
const onMouseMove = (e2) => {
|
|
2215
2216
|
if (initialWidth && initialX) {
|
|
2216
2217
|
ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
@@ -2220,6 +2221,7 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React17.createElement(
|
|
|
2220
2221
|
const onMouseUp = () => {
|
|
2221
2222
|
document.removeEventListener("mousemove", onMouseMove);
|
|
2222
2223
|
document.removeEventListener("mouseup", onMouseUp);
|
|
2224
|
+
requestAnimationFrame(() => onResizeStateChange?.(false));
|
|
2223
2225
|
};
|
|
2224
2226
|
document.addEventListener("mousemove", onMouseMove);
|
|
2225
2227
|
document.addEventListener("mouseup", onMouseUp);
|
|
@@ -2816,7 +2818,7 @@ var TextEllipsis = ({ children, lineClamp }) => {
|
|
|
2816
2818
|
ro.observe(element);
|
|
2817
2819
|
return () => ro.disconnect();
|
|
2818
2820
|
}, [children, lineClamp]);
|
|
2819
|
-
return /* @__PURE__ */ React22.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top"
|
|
2821
|
+
return /* @__PURE__ */ React22.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ React22.createElement(EllipsisDiv, { ref: textRef, lineClamp }, children));
|
|
2820
2822
|
};
|
|
2821
2823
|
var CellTextEllipsis = ({ children }) => {
|
|
2822
2824
|
const textRef = useRef5(null);
|
|
@@ -2873,13 +2875,23 @@ var HeadCell = (props) => {
|
|
|
2873
2875
|
const theme = useTheme();
|
|
2874
2876
|
const ref = headerRef;
|
|
2875
2877
|
const colRef = tableColRef;
|
|
2878
|
+
const localRef = useRef5(null);
|
|
2879
|
+
useLayoutEffect(() => {
|
|
2880
|
+
ref.current = localRef.current;
|
|
2881
|
+
}, [ref]);
|
|
2876
2882
|
const [isHovered, setIsHovered] = useState8(false);
|
|
2877
2883
|
const sortable = type === "actions" ? false : _sortable;
|
|
2878
2884
|
const headId = useMemo8(
|
|
2879
2885
|
() => `${tableId}_header_${headerName ?? field}`.trim(),
|
|
2880
2886
|
[tableId, headerName, field]
|
|
2881
2887
|
);
|
|
2882
|
-
const
|
|
2888
|
+
const isResizingRef = useRef5(false);
|
|
2889
|
+
const resizer = useMemo8(
|
|
2890
|
+
() => resizable ?? true ? Resizer(ref, colRef, (isResizing) => {
|
|
2891
|
+
isResizingRef.current = isResizing;
|
|
2892
|
+
}) : null,
|
|
2893
|
+
[resizable, ref, colRef]
|
|
2894
|
+
);
|
|
2883
2895
|
const style = useMemo8(
|
|
2884
2896
|
() => ({
|
|
2885
2897
|
width,
|
|
@@ -2949,11 +2961,15 @@ var HeadCell = (props) => {
|
|
|
2949
2961
|
id: headId,
|
|
2950
2962
|
"aria-label": headerName ?? field,
|
|
2951
2963
|
"aria-sort": sort ? { asc: "ascending", desc: "descending" }[sort] : "none",
|
|
2952
|
-
ref,
|
|
2964
|
+
ref: localRef,
|
|
2953
2965
|
key: field,
|
|
2954
2966
|
style,
|
|
2955
2967
|
onClick: useCallback9(
|
|
2956
|
-
(e) =>
|
|
2968
|
+
(e) => {
|
|
2969
|
+
if (isResizingRef.current) return;
|
|
2970
|
+
if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
|
|
2971
|
+
sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey });
|
|
2972
|
+
},
|
|
2957
2973
|
[field, onSortChange, sort, sortable]
|
|
2958
2974
|
),
|
|
2959
2975
|
onMouseEnter: () => setIsHovered(true),
|