@ceed/ads 1.41.3-next.5 → 1.41.3-next.7
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/DataTable/components.d.ts +4 -4
- package/dist/components/DataTable/hooks.d.ts +4 -4
- package/dist/components/DataTable/types.d.ts +9 -7
- package/dist/components/DataTable/utils.d.ts +6 -0
- package/dist/components/IconMenuButton/IconMenuButton.type-test.d.ts +5 -0
- package/dist/components/Select/Select.d.ts +4 -0
- package/dist/components/Select/index.d.ts +2 -1
- package/dist/components/data-display/DataTable.md +1 -1
- package/dist/components/inputs/Calendar.md +17 -17
- package/dist/components/navigation/IconMenuButton.md +5 -0
- package/dist/index.browser.js +6 -6
- package/dist/index.browser.js.map +3 -3
- package/dist/index.cjs +31 -18
- package/dist/index.js +188 -175
- package/dist/libs/slot-props.d.ts +2 -2
- package/framer/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -458,16 +458,25 @@ function useSlotRef(slotProp, ref) {
|
|
|
458
458
|
const isFunctionForm = typeof slotProp === "function";
|
|
459
459
|
const slotRef = isFunctionForm ? void 0 : slotProp?.ref;
|
|
460
460
|
const mergedRef = useMergedRef(slotRef, ref);
|
|
461
|
+
const latestSlotRef = (0, import_react6.useRef)(null);
|
|
462
|
+
const stableMergedRef = (0, import_react6.useCallback)(
|
|
463
|
+
(value) => {
|
|
464
|
+
assignRef(latestSlotRef.current, value);
|
|
465
|
+
assignRef(ref, value);
|
|
466
|
+
},
|
|
467
|
+
[ref]
|
|
468
|
+
);
|
|
461
469
|
return (0, import_react6.useMemo)(() => {
|
|
462
470
|
if (isFunctionForm) {
|
|
463
471
|
return ((ownerState) => {
|
|
464
472
|
const resolved = slotProp(ownerState) ?? {};
|
|
465
|
-
const
|
|
466
|
-
|
|
473
|
+
const resolvedRef = resolved.ref;
|
|
474
|
+
latestSlotRef.current = resolvedRef ?? null;
|
|
475
|
+
return resolvedRef || ref ? { ...resolved, ref: stableMergedRef } : { ...resolved };
|
|
467
476
|
});
|
|
468
477
|
}
|
|
469
478
|
return mergedRef ? { ...slotProp, ref: mergedRef } : { ...slotProp };
|
|
470
|
-
}, [isFunctionForm, slotProp, mergedRef, ref]);
|
|
479
|
+
}, [isFunctionForm, slotProp, mergedRef, ref, stableMergedRef]);
|
|
471
480
|
}
|
|
472
481
|
|
|
473
482
|
// src/components/Autocomplete/Autocomplete.tsx
|
|
@@ -2610,7 +2619,10 @@ function computeAutoFitWidth(params) {
|
|
|
2610
2619
|
return finalWidth;
|
|
2611
2620
|
}
|
|
2612
2621
|
function getHeaderCellId(tableId, columnId) {
|
|
2613
|
-
return `${tableId}_header_${columnId}
|
|
2622
|
+
return `${tableId}_header_${columnId}`;
|
|
2623
|
+
}
|
|
2624
|
+
function sanitizeColumnId(field) {
|
|
2625
|
+
return String(field).trim().replace(/\s+/g, "_");
|
|
2614
2626
|
}
|
|
2615
2627
|
|
|
2616
2628
|
// src/components/DataTable/styled.tsx
|
|
@@ -3567,7 +3579,7 @@ var HeadCell = (props) => {
|
|
|
3567
3579
|
}, [ref]);
|
|
3568
3580
|
const [isHovered, setIsHovered] = (0, import_react26.useState)(false);
|
|
3569
3581
|
const sortable = type === "actions" ? false : _sortable;
|
|
3570
|
-
const headId = (0, import_react26.useMemo)(() => getHeaderCellId(tableId, columnId
|
|
3582
|
+
const headId = (0, import_react26.useMemo)(() => getHeaderCellId(tableId, columnId), [tableId, columnId]);
|
|
3571
3583
|
const isResizingRef = (0, import_react26.useRef)(false);
|
|
3572
3584
|
const resizer = (0, import_react26.useMemo)(
|
|
3573
3585
|
() => resizable ?? true ? Resizer(
|
|
@@ -3576,9 +3588,9 @@ var HeadCell = (props) => {
|
|
|
3576
3588
|
(isResizing) => {
|
|
3577
3589
|
isResizingRef.current = isResizing;
|
|
3578
3590
|
},
|
|
3579
|
-
onAutoFit ? () => onAutoFit(columnId
|
|
3591
|
+
onAutoFit ? () => onAutoFit(columnId) : void 0
|
|
3580
3592
|
) : null,
|
|
3581
|
-
[resizable, ref, colRef, onAutoFit, columnId
|
|
3593
|
+
[resizable, ref, colRef, onAutoFit, columnId]
|
|
3582
3594
|
);
|
|
3583
3595
|
const style = (0, import_react26.useMemo)(
|
|
3584
3596
|
() => ({
|
|
@@ -3848,7 +3860,7 @@ var BodyCell = (props) => {
|
|
|
3848
3860
|
{
|
|
3849
3861
|
ref: cellRef,
|
|
3850
3862
|
key: field,
|
|
3851
|
-
headers: getHeaderCellId(tableId, props.columnId
|
|
3863
|
+
headers: getHeaderCellId(tableId, props.columnId),
|
|
3852
3864
|
sx: {
|
|
3853
3865
|
textAlign: getTextAlign({ type }),
|
|
3854
3866
|
verticalAlign: editMode ? "top" : "middle",
|
|
@@ -3948,8 +3960,8 @@ function useColumnWidths(columnsById) {
|
|
|
3948
3960
|
});
|
|
3949
3961
|
setWidths((prev) => {
|
|
3950
3962
|
const keys = Object.keys(measured);
|
|
3951
|
-
const same = keys.
|
|
3952
|
-
return same ? prev : measured;
|
|
3963
|
+
const same = keys.every((key) => prev[key] === measured[key]);
|
|
3964
|
+
return same ? prev : { ...prev, ...measured };
|
|
3953
3965
|
});
|
|
3954
3966
|
return () => roRef.current?.disconnect();
|
|
3955
3967
|
}, [columnsById]);
|
|
@@ -4036,10 +4048,10 @@ function useDataTableRenderer({
|
|
|
4036
4048
|
[reorderedColumns]
|
|
4037
4049
|
);
|
|
4038
4050
|
const allColumnIds = (0, import_react27.useMemo)(() => {
|
|
4039
|
-
const taken = new Set(reorderedColumns.map((column) =>
|
|
4051
|
+
const taken = new Set(reorderedColumns.map((column) => sanitizeColumnId(column.field)));
|
|
4040
4052
|
const assigned = /* @__PURE__ */ new Set();
|
|
4041
4053
|
return reorderedColumns.map((column) => {
|
|
4042
|
-
const field =
|
|
4054
|
+
const field = sanitizeColumnId(column.field);
|
|
4043
4055
|
if (!assigned.has(field)) {
|
|
4044
4056
|
assigned.add(field);
|
|
4045
4057
|
return field;
|
|
@@ -4190,7 +4202,7 @@ function useDataTableRenderer({
|
|
|
4190
4202
|
field: key
|
|
4191
4203
|
}));
|
|
4192
4204
|
return baseColumns.map((column, index) => {
|
|
4193
|
-
const columnId = columnIds[index] ??
|
|
4205
|
+
const columnId = columnIds[index] ?? sanitizeColumnId(column.field);
|
|
4194
4206
|
const isLeftPinned = effectivePinnedLeft?.includes(column.field);
|
|
4195
4207
|
const isRightPinned = effectivePinnedRight?.includes(column.field);
|
|
4196
4208
|
const isPinned = isLeftPinned || isRightPinned;
|
|
@@ -5028,13 +5040,13 @@ function Component(props, apiRef) {
|
|
|
5028
5040
|
}
|
|
5029
5041
|
},
|
|
5030
5042
|
headerCheckboxElement
|
|
5031
|
-
), columns.map((c
|
|
5043
|
+
), columns.map((c) => (
|
|
5032
5044
|
// @ts-ignore
|
|
5033
5045
|
/* @__PURE__ */ import_react30.default.createElement(
|
|
5034
5046
|
HeadCell2,
|
|
5035
5047
|
{
|
|
5036
5048
|
tableId,
|
|
5037
|
-
key:
|
|
5049
|
+
key: c.columnId,
|
|
5038
5050
|
stickyHeader: props.stickyHeader,
|
|
5039
5051
|
editMode: !!c.isCellEditable,
|
|
5040
5052
|
onSortChange: handleSortChange,
|
|
@@ -5676,7 +5688,7 @@ var ModalOverflow = MotionModalOverflow;
|
|
|
5676
5688
|
ModalOverflow.displayName = "ModalOverflow";
|
|
5677
5689
|
var ModalFrame = import_react32.default.forwardRef((props, ref) => {
|
|
5678
5690
|
const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
|
|
5679
|
-
return /* @__PURE__ */ import_react32.default.createElement(StyledModalDialog, {
|
|
5691
|
+
return /* @__PURE__ */ import_react32.default.createElement(StyledModalDialog, { ...innerProps, ref }, /* @__PURE__ */ import_react32.default.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ import_react32.default.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ import_react32.default.createElement(DialogContent_default, null, children));
|
|
5680
5692
|
});
|
|
5681
5693
|
ModalFrame.displayName = "ModalFrame";
|
|
5682
5694
|
|
|
@@ -7311,7 +7323,7 @@ var import_joy60 = require("@mui/joy");
|
|
|
7311
7323
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
7312
7324
|
var import_react50 = __toESM(require("react"));
|
|
7313
7325
|
var import_joy61 = require("@mui/joy");
|
|
7314
|
-
var MenuButtonRootSlot = import_react50.default.forwardRef(function MenuButtonRootSlot2({ as, ...rest }, ref) {
|
|
7326
|
+
var MenuButtonRootSlot = import_react50.default.forwardRef(function MenuButtonRootSlot2({ as, ownerState: _ownerState, ...rest }, ref) {
|
|
7315
7327
|
return /* @__PURE__ */ import_react50.default.createElement(import_joy61.IconButton, { ...rest, component: as ?? "button", ref });
|
|
7316
7328
|
});
|
|
7317
7329
|
function IconMenuButtonInner(props, ref) {
|
|
@@ -7349,7 +7361,8 @@ function IconMenuButtonInner(props, ref) {
|
|
|
7349
7361
|
slots: { root: MenuButtonRootSlot },
|
|
7350
7362
|
slotProps: {
|
|
7351
7363
|
root: {
|
|
7352
|
-
|
|
7364
|
+
// 기본값 'button'은 MenuButtonRootSlot 한 곳에만 둔다.
|
|
7365
|
+
component: props.buttonComponent,
|
|
7353
7366
|
size,
|
|
7354
7367
|
variant,
|
|
7355
7368
|
color,
|