@ceed/ads 1.8.7 → 1.10.0
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 +38 -0
- package/dist/components/DataTable/hooks.d.ts +56 -0
- package/dist/components/DataTable/styled.d.ts +281 -0
- package/dist/components/DataTable/types.d.ts +31 -3
- package/dist/components/DataTable/utils.d.ts +16 -0
- package/dist/index.cjs +1141 -911
- package/dist/index.js +1010 -775
- package/framer/index.js +42 -42
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -85,17 +85,17 @@ __export(index_exports, {
|
|
|
85
85
|
AccordionSummary: () => AccordionSummary,
|
|
86
86
|
Accordions: () => Accordions,
|
|
87
87
|
Alert: () => Alert,
|
|
88
|
-
AspectRatio: () =>
|
|
88
|
+
AspectRatio: () => import_joy69.AspectRatio,
|
|
89
89
|
Autocomplete: () => Autocomplete,
|
|
90
|
-
AutocompleteListbox: () =>
|
|
91
|
-
AutocompleteOption: () =>
|
|
90
|
+
AutocompleteListbox: () => import_joy69.AutocompleteListbox,
|
|
91
|
+
AutocompleteOption: () => import_joy69.AutocompleteOption,
|
|
92
92
|
Avatar: () => Avatar,
|
|
93
93
|
AvatarGroup: () => import_joy11.AvatarGroup,
|
|
94
|
-
Badge: () =>
|
|
94
|
+
Badge: () => import_joy69.Badge,
|
|
95
95
|
Box: () => Box,
|
|
96
96
|
Breadcrumbs: () => Breadcrumbs,
|
|
97
97
|
Button: () => Button,
|
|
98
|
-
ButtonGroup: () =>
|
|
98
|
+
ButtonGroup: () => import_joy69.ButtonGroup,
|
|
99
99
|
Calendar: () => Calendar,
|
|
100
100
|
Card: () => Card,
|
|
101
101
|
CardActions: () => CardActions,
|
|
@@ -104,9 +104,9 @@ __export(index_exports, {
|
|
|
104
104
|
CardOverflow: () => CardOverflow,
|
|
105
105
|
Checkbox: () => Checkbox,
|
|
106
106
|
Chip: () => Chip,
|
|
107
|
-
CircularProgress: () =>
|
|
107
|
+
CircularProgress: () => import_joy69.CircularProgress,
|
|
108
108
|
Container: () => Container,
|
|
109
|
-
CssBaseline: () =>
|
|
109
|
+
CssBaseline: () => import_joy68.CssBaseline,
|
|
110
110
|
CurrencyInput: () => CurrencyInput,
|
|
111
111
|
DataTable: () => DataTable,
|
|
112
112
|
DatePicker: () => DatePicker,
|
|
@@ -116,27 +116,27 @@ __export(index_exports, {
|
|
|
116
116
|
DialogFrame: () => DialogFrame,
|
|
117
117
|
DialogTitle: () => DialogTitle,
|
|
118
118
|
Divider: () => Divider,
|
|
119
|
-
Drawer: () =>
|
|
119
|
+
Drawer: () => import_joy69.Drawer,
|
|
120
120
|
Dropdown: () => import_joy14.Dropdown,
|
|
121
121
|
FilterMenu: () => FilterMenu,
|
|
122
122
|
FormControl: () => FormControl,
|
|
123
123
|
FormHelperText: () => FormHelperText,
|
|
124
124
|
FormLabel: () => FormLabel,
|
|
125
|
-
Grid: () =>
|
|
125
|
+
Grid: () => import_joy55.Grid,
|
|
126
126
|
IconButton: () => IconButton,
|
|
127
127
|
IconMenuButton: () => IconMenuButton,
|
|
128
128
|
InfoSign: () => InfoSign,
|
|
129
129
|
Input: () => Input,
|
|
130
130
|
InsetDrawer: () => InsetDrawer,
|
|
131
|
-
LinearProgress: () =>
|
|
132
|
-
Link: () =>
|
|
133
|
-
List: () =>
|
|
134
|
-
ListDivider: () =>
|
|
135
|
-
ListItem: () =>
|
|
136
|
-
ListItemButton: () =>
|
|
137
|
-
ListItemContent: () =>
|
|
138
|
-
ListItemDecorator: () =>
|
|
139
|
-
ListSubheader: () =>
|
|
131
|
+
LinearProgress: () => import_joy69.LinearProgress,
|
|
132
|
+
Link: () => import_joy69.Link,
|
|
133
|
+
List: () => import_joy69.List,
|
|
134
|
+
ListDivider: () => import_joy69.ListDivider,
|
|
135
|
+
ListItem: () => import_joy69.ListItem,
|
|
136
|
+
ListItemButton: () => import_joy69.ListItemButton,
|
|
137
|
+
ListItemContent: () => import_joy69.ListItemContent,
|
|
138
|
+
ListItemDecorator: () => import_joy69.ListItemDecorator,
|
|
139
|
+
ListSubheader: () => import_joy69.ListSubheader,
|
|
140
140
|
Markdown: () => Markdown,
|
|
141
141
|
Menu: () => Menu,
|
|
142
142
|
MenuButton: () => MenuButton,
|
|
@@ -160,11 +160,11 @@ __export(index_exports, {
|
|
|
160
160
|
RadioList: () => RadioList,
|
|
161
161
|
Select: () => Select,
|
|
162
162
|
Sheet: () => Sheet,
|
|
163
|
-
Skeleton: () =>
|
|
164
|
-
Slider: () =>
|
|
163
|
+
Skeleton: () => import_joy69.Skeleton,
|
|
164
|
+
Slider: () => import_joy69.Slider,
|
|
165
165
|
Stack: () => import_joy3.Stack,
|
|
166
166
|
Step: () => Step,
|
|
167
|
-
StepButton: () =>
|
|
167
|
+
StepButton: () => import_joy69.StepButton,
|
|
168
168
|
StepIndicator: () => StepIndicator,
|
|
169
169
|
Stepper: () => Stepper,
|
|
170
170
|
Switch: () => Switch,
|
|
@@ -180,84 +180,84 @@ __export(index_exports, {
|
|
|
180
180
|
Tooltip: () => Tooltip,
|
|
181
181
|
Typography: () => Typography,
|
|
182
182
|
Uploader: () => Uploader,
|
|
183
|
-
accordionClasses: () =>
|
|
184
|
-
accordionDetailsClasses: () =>
|
|
185
|
-
accordionSummaryClasses: () =>
|
|
186
|
-
accordionsClasses: () =>
|
|
187
|
-
alertClasses: () =>
|
|
188
|
-
aspectRatioClasses: () =>
|
|
189
|
-
autocompleteClasses: () =>
|
|
190
|
-
autocompleteListboxClasses: () =>
|
|
191
|
-
autocompleteOptionClasses: () =>
|
|
192
|
-
avatarClasses: () =>
|
|
193
|
-
avatarGroupClasses: () =>
|
|
194
|
-
badgeClasses: () =>
|
|
195
|
-
boxClasses: () =>
|
|
196
|
-
breadcrumbsClasses: () =>
|
|
197
|
-
buttonClasses: () =>
|
|
198
|
-
cardActionsClasses: () =>
|
|
199
|
-
cardClasses: () =>
|
|
200
|
-
cardContentClasses: () =>
|
|
201
|
-
cardCoverClasses: () =>
|
|
202
|
-
cardOverflowClasses: () =>
|
|
203
|
-
checkboxClasses: () =>
|
|
204
|
-
chipClasses: () =>
|
|
205
|
-
circularProgressClasses: () =>
|
|
206
|
-
dialogActionsClasses: () =>
|
|
207
|
-
dialogContentClasses: () =>
|
|
208
|
-
dialogTitleClasses: () =>
|
|
209
|
-
dividerClasses: () =>
|
|
210
|
-
drawerClasses: () =>
|
|
211
|
-
extendTheme: () =>
|
|
212
|
-
formControlClasses: () =>
|
|
213
|
-
formHelperTextClasses: () =>
|
|
214
|
-
formLabelClasses: () =>
|
|
215
|
-
gridClasses: () =>
|
|
216
|
-
iconButtonClasses: () =>
|
|
217
|
-
inputClasses: () =>
|
|
218
|
-
linearProgressClasses: () =>
|
|
219
|
-
linkClasses: () =>
|
|
220
|
-
listClasses: () =>
|
|
221
|
-
listDividerClasses: () =>
|
|
222
|
-
listItemButtonClasses: () =>
|
|
223
|
-
listItemClasses: () =>
|
|
224
|
-
listItemContentClasses: () =>
|
|
225
|
-
listItemDecoratorClasses: () =>
|
|
226
|
-
listSubheaderClasses: () =>
|
|
227
|
-
menuButtonClasses: () =>
|
|
228
|
-
menuClasses: () =>
|
|
229
|
-
menuItemClasses: () =>
|
|
230
|
-
modalClasses: () =>
|
|
231
|
-
modalCloseClasses: () =>
|
|
232
|
-
modalDialogClasses: () =>
|
|
233
|
-
modalOverflowClasses: () =>
|
|
234
|
-
optionClasses: () =>
|
|
235
|
-
radioClasses: () =>
|
|
236
|
-
radioGroupClasses: () =>
|
|
237
|
-
selectClasses: () =>
|
|
238
|
-
sheetClasses: () =>
|
|
239
|
-
skeletonClasses: () =>
|
|
240
|
-
sliderClasses: () =>
|
|
241
|
-
stackClasses: () =>
|
|
242
|
-
stepButtonClasses: () =>
|
|
243
|
-
stepClasses: () =>
|
|
244
|
-
stepperClasses: () =>
|
|
245
|
-
styled: () =>
|
|
246
|
-
switchClasses: () =>
|
|
247
|
-
tabListClasses: () =>
|
|
248
|
-
tabPanelClasses: () =>
|
|
249
|
-
tableClasses: () =>
|
|
250
|
-
tabsClasses: () =>
|
|
251
|
-
textareaClasses: () =>
|
|
183
|
+
accordionClasses: () => import_joy69.accordionClasses,
|
|
184
|
+
accordionDetailsClasses: () => import_joy69.accordionDetailsClasses,
|
|
185
|
+
accordionSummaryClasses: () => import_joy69.accordionSummaryClasses,
|
|
186
|
+
accordionsClasses: () => import_joy69.accordionGroupClasses,
|
|
187
|
+
alertClasses: () => import_joy69.alertClasses,
|
|
188
|
+
aspectRatioClasses: () => import_joy69.aspectRatioClasses,
|
|
189
|
+
autocompleteClasses: () => import_joy69.autocompleteClasses,
|
|
190
|
+
autocompleteListboxClasses: () => import_joy69.autocompleteListboxClasses,
|
|
191
|
+
autocompleteOptionClasses: () => import_joy69.autocompleteOptionClasses,
|
|
192
|
+
avatarClasses: () => import_joy69.avatarClasses,
|
|
193
|
+
avatarGroupClasses: () => import_joy69.avatarGroupClasses,
|
|
194
|
+
badgeClasses: () => import_joy69.badgeClasses,
|
|
195
|
+
boxClasses: () => import_joy69.boxClasses,
|
|
196
|
+
breadcrumbsClasses: () => import_joy69.breadcrumbsClasses,
|
|
197
|
+
buttonClasses: () => import_joy69.buttonClasses,
|
|
198
|
+
cardActionsClasses: () => import_joy69.cardActionsClasses,
|
|
199
|
+
cardClasses: () => import_joy69.cardClasses,
|
|
200
|
+
cardContentClasses: () => import_joy69.cardContentClasses,
|
|
201
|
+
cardCoverClasses: () => import_joy69.cardCoverClasses,
|
|
202
|
+
cardOverflowClasses: () => import_joy69.cardOverflowClasses,
|
|
203
|
+
checkboxClasses: () => import_joy69.checkboxClasses,
|
|
204
|
+
chipClasses: () => import_joy69.chipClasses,
|
|
205
|
+
circularProgressClasses: () => import_joy69.circularProgressClasses,
|
|
206
|
+
dialogActionsClasses: () => import_joy69.dialogActionsClasses,
|
|
207
|
+
dialogContentClasses: () => import_joy69.dialogContentClasses,
|
|
208
|
+
dialogTitleClasses: () => import_joy69.dialogTitleClasses,
|
|
209
|
+
dividerClasses: () => import_joy69.dividerClasses,
|
|
210
|
+
drawerClasses: () => import_joy69.drawerClasses,
|
|
211
|
+
extendTheme: () => import_joy68.extendTheme,
|
|
212
|
+
formControlClasses: () => import_joy69.formControlClasses,
|
|
213
|
+
formHelperTextClasses: () => import_joy69.formHelperTextClasses,
|
|
214
|
+
formLabelClasses: () => import_joy69.formLabelClasses,
|
|
215
|
+
gridClasses: () => import_joy69.gridClasses,
|
|
216
|
+
iconButtonClasses: () => import_joy69.iconButtonClasses,
|
|
217
|
+
inputClasses: () => import_joy69.inputClasses,
|
|
218
|
+
linearProgressClasses: () => import_joy69.linearProgressClasses,
|
|
219
|
+
linkClasses: () => import_joy69.linkClasses,
|
|
220
|
+
listClasses: () => import_joy69.listClasses,
|
|
221
|
+
listDividerClasses: () => import_joy69.listDividerClasses,
|
|
222
|
+
listItemButtonClasses: () => import_joy69.listItemButtonClasses,
|
|
223
|
+
listItemClasses: () => import_joy69.listItemClasses,
|
|
224
|
+
listItemContentClasses: () => import_joy69.listItemContentClasses,
|
|
225
|
+
listItemDecoratorClasses: () => import_joy69.listItemDecoratorClasses,
|
|
226
|
+
listSubheaderClasses: () => import_joy69.listSubheaderClasses,
|
|
227
|
+
menuButtonClasses: () => import_joy69.menuButtonClasses,
|
|
228
|
+
menuClasses: () => import_joy69.menuClasses,
|
|
229
|
+
menuItemClasses: () => import_joy69.menuItemClasses,
|
|
230
|
+
modalClasses: () => import_joy69.modalClasses,
|
|
231
|
+
modalCloseClasses: () => import_joy69.modalCloseClasses,
|
|
232
|
+
modalDialogClasses: () => import_joy69.modalDialogClasses,
|
|
233
|
+
modalOverflowClasses: () => import_joy69.modalOverflowClasses,
|
|
234
|
+
optionClasses: () => import_joy69.optionClasses,
|
|
235
|
+
radioClasses: () => import_joy69.radioClasses,
|
|
236
|
+
radioGroupClasses: () => import_joy69.radioGroupClasses,
|
|
237
|
+
selectClasses: () => import_joy69.selectClasses,
|
|
238
|
+
sheetClasses: () => import_joy69.sheetClasses,
|
|
239
|
+
skeletonClasses: () => import_joy69.skeletonClasses,
|
|
240
|
+
sliderClasses: () => import_joy69.sliderClasses,
|
|
241
|
+
stackClasses: () => import_joy69.stackClasses,
|
|
242
|
+
stepButtonClasses: () => import_joy69.stepButtonClasses,
|
|
243
|
+
stepClasses: () => import_joy69.stepClasses,
|
|
244
|
+
stepperClasses: () => import_joy69.stepperClasses,
|
|
245
|
+
styled: () => import_joy69.styled,
|
|
246
|
+
switchClasses: () => import_joy69.switchClasses,
|
|
247
|
+
tabListClasses: () => import_joy69.tabListClasses,
|
|
248
|
+
tabPanelClasses: () => import_joy69.tabPanelClasses,
|
|
249
|
+
tableClasses: () => import_joy69.tableClasses,
|
|
250
|
+
tabsClasses: () => import_joy69.tabsClasses,
|
|
251
|
+
textareaClasses: () => import_joy69.textareaClasses,
|
|
252
252
|
theme: () => defaultTheme,
|
|
253
|
-
tooltipClasses: () =>
|
|
254
|
-
typographyClasses: () =>
|
|
255
|
-
useColorScheme: () =>
|
|
256
|
-
useTheme: () =>
|
|
257
|
-
useThemeProps: () =>
|
|
253
|
+
tooltipClasses: () => import_joy69.tooltipClasses,
|
|
254
|
+
typographyClasses: () => import_joy69.typographyClasses,
|
|
255
|
+
useColorScheme: () => import_joy69.useColorScheme,
|
|
256
|
+
useTheme: () => import_joy69.useTheme,
|
|
257
|
+
useThemeProps: () => import_joy69.useThemeProps
|
|
258
258
|
});
|
|
259
259
|
module.exports = __toCommonJS(index_exports);
|
|
260
|
-
var
|
|
260
|
+
var import_joy69 = require("@mui/joy");
|
|
261
261
|
|
|
262
262
|
// src/components/Accordions/Accordions.tsx
|
|
263
263
|
var import_react = __toESM(require("react"));
|
|
@@ -1922,91 +1922,261 @@ var CurrencyInput = import_react17.default.forwardRef(function CurrencyInput2(in
|
|
|
1922
1922
|
var CurrencyInput_default = CurrencyInput;
|
|
1923
1923
|
|
|
1924
1924
|
// src/components/DataTable/DataTable.tsx
|
|
1925
|
-
var
|
|
1925
|
+
var import_react28 = __toESM(require("react"));
|
|
1926
1926
|
var import_react_virtual2 = require("@tanstack/react-virtual");
|
|
1927
|
-
var import_joy33 = require("@mui/joy");
|
|
1928
|
-
var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
|
|
1929
|
-
|
|
1930
|
-
// src/components/Sheet/Sheet.tsx
|
|
1931
|
-
var import_joy24 = require("@mui/joy");
|
|
1932
|
-
var import_framer_motion16 = require("framer-motion");
|
|
1933
|
-
var MotionSheet = (0, import_framer_motion16.motion)(import_joy24.Sheet);
|
|
1934
|
-
var Sheet = MotionSheet;
|
|
1935
|
-
Sheet.displayName = "Sheet";
|
|
1936
|
-
|
|
1937
|
-
// src/components/Sheet/index.ts
|
|
1938
|
-
var Sheet_default = Sheet;
|
|
1939
1927
|
|
|
1940
|
-
// src/components/
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
1954
|
-
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
1955
|
-
} = props;
|
|
1956
|
-
return /* @__PURE__ */ import_react18.default.createElement("thead", null, /* @__PURE__ */ import_react18.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react18.default.createElement(
|
|
1957
|
-
"th",
|
|
1958
|
-
{
|
|
1959
|
-
style: {
|
|
1960
|
-
width: "40px",
|
|
1961
|
-
textAlign: "center"
|
|
1962
|
-
}
|
|
1963
|
-
},
|
|
1964
|
-
/* @__PURE__ */ import_react18.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
|
|
1965
|
-
), headCells.map((headCell) => /* @__PURE__ */ import_react18.default.createElement(
|
|
1966
|
-
"th",
|
|
1967
|
-
{
|
|
1968
|
-
key: headCell.label,
|
|
1969
|
-
style: {
|
|
1970
|
-
width: headCell.width,
|
|
1971
|
-
minWidth: headCell.minWidth,
|
|
1972
|
-
maxWidth: headCell.maxWidth,
|
|
1973
|
-
textAlign: headCell.numeric ? "right" : "left"
|
|
1974
|
-
}
|
|
1975
|
-
},
|
|
1976
|
-
headCell.label
|
|
1977
|
-
))));
|
|
1928
|
+
// src/components/DataTable/utils.ts
|
|
1929
|
+
function extractFieldsFromGroupingModel(items) {
|
|
1930
|
+
const fields = /* @__PURE__ */ new Set();
|
|
1931
|
+
for (const item of items) {
|
|
1932
|
+
if ("groupId" in item) {
|
|
1933
|
+
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
1934
|
+
const childFields = extractFieldsFromGroupingModel(children);
|
|
1935
|
+
childFields.forEach((field) => fields.add(field));
|
|
1936
|
+
} else {
|
|
1937
|
+
fields.add(item.field);
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
return fields;
|
|
1978
1941
|
}
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
const
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
"td",
|
|
1992
|
-
{
|
|
1993
|
-
style: {
|
|
1994
|
-
textAlign: "center"
|
|
1942
|
+
function reorderColumnsByGroupingModel(columns, columnGroupingModel) {
|
|
1943
|
+
const fieldsInGroupingModel = extractFieldsFromGroupingModel(columnGroupingModel);
|
|
1944
|
+
const orderedFields = [];
|
|
1945
|
+
function collectFieldsInOrder(items) {
|
|
1946
|
+
for (const item of items) {
|
|
1947
|
+
if ("groupId" in item) {
|
|
1948
|
+
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
1949
|
+
collectFieldsInOrder(children);
|
|
1950
|
+
} else {
|
|
1951
|
+
if (!orderedFields.includes(item.field)) {
|
|
1952
|
+
orderedFields.push(item.field);
|
|
1953
|
+
}
|
|
1995
1954
|
}
|
|
1996
|
-
}
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
collectFieldsInOrder(columnGroupingModel);
|
|
1958
|
+
const columnMap = new Map(columns.map((col) => [col.field, col]));
|
|
1959
|
+
const reorderedColumns = [];
|
|
1960
|
+
for (const field of orderedFields) {
|
|
1961
|
+
const column = columnMap.get(field);
|
|
1962
|
+
if (column) {
|
|
1963
|
+
reorderedColumns.push(column);
|
|
1964
|
+
}
|
|
1965
|
+
}
|
|
1966
|
+
for (const column of columns) {
|
|
1967
|
+
if (!fieldsInGroupingModel.has(column.field)) {
|
|
1968
|
+
reorderedColumns.push(column);
|
|
1969
|
+
}
|
|
1970
|
+
}
|
|
1971
|
+
return reorderedColumns;
|
|
1972
|
+
}
|
|
1973
|
+
function flattenColumnGroups(items, groupPath = [], columnIndex = { current: 0 }) {
|
|
1974
|
+
const result = [];
|
|
1975
|
+
for (const item of items) {
|
|
1976
|
+
if ("groupId" in item) {
|
|
1977
|
+
const newPath = [...groupPath, item.groupId];
|
|
1978
|
+
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
1979
|
+
result.push(...flattenColumnGroups(children, newPath, columnIndex));
|
|
1980
|
+
} else {
|
|
1981
|
+
result.push({
|
|
1982
|
+
...item,
|
|
1983
|
+
groupPath,
|
|
1984
|
+
columnIndex: columnIndex.current++
|
|
1985
|
+
});
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
return result;
|
|
1989
|
+
}
|
|
1990
|
+
function calculateColumnGroups(columnGroupingModel, columns) {
|
|
1991
|
+
const fieldsInGroupingModel = extractFieldsFromGroupingModel(columnGroupingModel);
|
|
1992
|
+
const flattenedColumns = flattenColumnGroups(columnGroupingModel);
|
|
1993
|
+
const columnIndexMap = new Map(flattenedColumns.map((col) => [col.field, col.columnIndex]));
|
|
1994
|
+
const processedGroups = /* @__PURE__ */ new Map();
|
|
1995
|
+
const groupsByLevel = [];
|
|
1996
|
+
let maxLevel = 0;
|
|
1997
|
+
function processGroup(items, level, parentGroupId) {
|
|
1998
|
+
let minIndex = Infinity;
|
|
1999
|
+
let maxIndex = -Infinity;
|
|
2000
|
+
for (const item of items) {
|
|
2001
|
+
if ("groupId" in item) {
|
|
2002
|
+
const groupKey = parentGroupId ? `${parentGroupId}.${item.groupId}` : item.groupId;
|
|
2003
|
+
if (!processedGroups.has(groupKey)) {
|
|
2004
|
+
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
2005
|
+
const { startIndex, colspan } = processGroup(children, level + 1, groupKey);
|
|
2006
|
+
const group = {
|
|
2007
|
+
groupId: item.groupId,
|
|
2008
|
+
headerName: item.headerName,
|
|
2009
|
+
headerClassName: item.headerClassName,
|
|
2010
|
+
colspan,
|
|
2011
|
+
level,
|
|
2012
|
+
startIndex
|
|
2013
|
+
};
|
|
2014
|
+
processedGroups.set(groupKey, group);
|
|
2015
|
+
if (!groupsByLevel[level]) {
|
|
2016
|
+
groupsByLevel[level] = [];
|
|
2017
|
+
}
|
|
2018
|
+
groupsByLevel[level].push(group);
|
|
2019
|
+
maxLevel = Math.max(maxLevel, level);
|
|
2020
|
+
minIndex = Math.min(minIndex, startIndex);
|
|
2021
|
+
maxIndex = Math.max(maxIndex, startIndex + colspan - 1);
|
|
2022
|
+
}
|
|
2023
|
+
} else {
|
|
2024
|
+
const columnIndex = columnIndexMap.get(item.field);
|
|
2025
|
+
if (columnIndex !== void 0) {
|
|
2026
|
+
minIndex = Math.min(minIndex, columnIndex);
|
|
2027
|
+
maxIndex = Math.max(maxIndex, columnIndex);
|
|
2028
|
+
}
|
|
2004
2029
|
}
|
|
2005
|
-
}
|
|
2006
|
-
|
|
2007
|
-
|
|
2030
|
+
}
|
|
2031
|
+
return {
|
|
2032
|
+
startIndex: minIndex === Infinity ? 0 : minIndex,
|
|
2033
|
+
colspan: maxIndex === -Infinity ? 0 : maxIndex - minIndex + 1
|
|
2034
|
+
};
|
|
2035
|
+
}
|
|
2036
|
+
processGroup(columnGroupingModel, 0);
|
|
2037
|
+
groupsByLevel.forEach((level) => {
|
|
2038
|
+
level.sort((a, b) => a.startIndex - b.startIndex);
|
|
2039
|
+
});
|
|
2040
|
+
return { groups: groupsByLevel, maxLevel, fieldsInGroupingModel };
|
|
2008
2041
|
}
|
|
2009
|
-
|
|
2042
|
+
function getTextAlign(props) {
|
|
2043
|
+
return !props.editMode && ["number", "date", "currency"].includes(props.type || "") ? "end" : "start";
|
|
2044
|
+
}
|
|
2045
|
+
var numberFormatter = (value) => "Intl" in window ? new Intl.NumberFormat().format(value) : value;
|
|
2046
|
+
|
|
2047
|
+
// src/components/DataTable/styled.tsx
|
|
2048
|
+
var import_react18 = __toESM(require("react"));
|
|
2049
|
+
var import_joy24 = require("@mui/joy");
|
|
2050
|
+
var import_framer_motion16 = require("framer-motion");
|
|
2051
|
+
var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
|
|
2052
|
+
var EllipsisDiv = (0, import_joy24.styled)("div", {
|
|
2053
|
+
name: "DataTable",
|
|
2054
|
+
slot: "textEllipsis"
|
|
2055
|
+
})({
|
|
2056
|
+
overflow: "hidden",
|
|
2057
|
+
textOverflow: "ellipsis",
|
|
2058
|
+
whiteSpace: "nowrap"
|
|
2059
|
+
});
|
|
2060
|
+
var OverlayWrapper = (0, import_joy24.styled)("tr", {
|
|
2061
|
+
name: "DataTable",
|
|
2062
|
+
slot: "overlayWrapper"
|
|
2063
|
+
})({
|
|
2064
|
+
position: "sticky",
|
|
2065
|
+
top: `calc(var(--unstable_TableCell-height, 32px))`,
|
|
2066
|
+
left: 0,
|
|
2067
|
+
right: 0,
|
|
2068
|
+
zIndex: 1,
|
|
2069
|
+
"& > td": {
|
|
2070
|
+
height: 0,
|
|
2071
|
+
padding: 0,
|
|
2072
|
+
border: "none !important"
|
|
2073
|
+
}
|
|
2074
|
+
});
|
|
2075
|
+
var VirtualizedTableBody = (0, import_joy24.styled)("tbody", {
|
|
2076
|
+
name: "DataTable",
|
|
2077
|
+
slot: "tableBody"
|
|
2078
|
+
})({
|
|
2079
|
+
"&::after": {
|
|
2080
|
+
content: "''",
|
|
2081
|
+
display: "block",
|
|
2082
|
+
height: "0.01em"
|
|
2083
|
+
},
|
|
2084
|
+
[`& .${import_joy24.buttonClasses.root}`]: {
|
|
2085
|
+
"--Button-minHeight": "26px",
|
|
2086
|
+
"--Button-paddingBlock": "0.25rem",
|
|
2087
|
+
lineHeight: 1,
|
|
2088
|
+
marginTop: "-2px",
|
|
2089
|
+
marginBottom: "-2px"
|
|
2090
|
+
},
|
|
2091
|
+
[`& .${import_joy24.iconButtonClasses.root}`]: {
|
|
2092
|
+
"--IconButton-size": "26px",
|
|
2093
|
+
verticalAlign: "middle",
|
|
2094
|
+
marginTop: "-2px",
|
|
2095
|
+
marginBottom: "-2px"
|
|
2096
|
+
}
|
|
2097
|
+
});
|
|
2098
|
+
var StyledTableRow = (0, import_joy24.styled)("tr", {
|
|
2099
|
+
name: "DataTable",
|
|
2100
|
+
slot: "tableRow",
|
|
2101
|
+
shouldForwardProp: (prop) => prop !== "striped"
|
|
2102
|
+
})(({ striped }) => ({
|
|
2103
|
+
...striped && {
|
|
2104
|
+
backgroundColor: "var(--TableRow-stripeBackground, var(--ceed-palette-background-level2))",
|
|
2105
|
+
color: "var(--ceed-palette-text-primary)",
|
|
2106
|
+
"& td": {
|
|
2107
|
+
backgroundColor: "background.surface"
|
|
2108
|
+
}
|
|
2109
|
+
},
|
|
2110
|
+
"&:hover": {
|
|
2111
|
+
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))",
|
|
2112
|
+
"& td": {
|
|
2113
|
+
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))"
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
}));
|
|
2117
|
+
var Asterisk = (0, import_joy24.styled)("span", {
|
|
2118
|
+
name: "DataTable",
|
|
2119
|
+
slot: "headCellAsterisk"
|
|
2120
|
+
})(({ theme }) => ({
|
|
2121
|
+
color: "var(--ceed-palette-danger-500)",
|
|
2122
|
+
marginLeft: theme.spacing(0.5)
|
|
2123
|
+
}));
|
|
2124
|
+
var StyledTh = (0, import_joy24.styled)(import_framer_motion16.motion.th)(({ theme }) => ({
|
|
2125
|
+
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2126
|
+
}));
|
|
2127
|
+
var StyledTd = (0, import_joy24.styled)("td")(({ theme }) => ({
|
|
2128
|
+
transition: `box-shadow 0.3s`,
|
|
2129
|
+
"&:not(.is-last-left):not(.is-last-right)": {
|
|
2130
|
+
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2131
|
+
},
|
|
2132
|
+
".ScrollableRight &": {
|
|
2133
|
+
"&.is-last-left": {
|
|
2134
|
+
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2135
|
+
}
|
|
2136
|
+
},
|
|
2137
|
+
".ScrollableLeft &": {
|
|
2138
|
+
"&.is-last-right": {
|
|
2139
|
+
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
}));
|
|
2143
|
+
var MotionSortIcon = (0, import_framer_motion16.motion)(import_ArrowUpwardRounded.default);
|
|
2144
|
+
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react18.default.createElement(import_joy24.LinearProgress, { value: 8, variant: "plain" });
|
|
2145
|
+
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react18.default.createElement(
|
|
2146
|
+
Box_default,
|
|
2147
|
+
{
|
|
2148
|
+
sx: {
|
|
2149
|
+
position: "absolute",
|
|
2150
|
+
top: 0,
|
|
2151
|
+
right: 0,
|
|
2152
|
+
bottom: 0,
|
|
2153
|
+
width: "4px",
|
|
2154
|
+
cursor: "col-resize"
|
|
2155
|
+
},
|
|
2156
|
+
onClick: (e) => e.stopPropagation(),
|
|
2157
|
+
onMouseDown: (e) => {
|
|
2158
|
+
const initialX = e.clientX;
|
|
2159
|
+
const initialWidth = ref.current?.getBoundingClientRect().width;
|
|
2160
|
+
const onMouseMove = (e2) => {
|
|
2161
|
+
if (initialWidth && initialX) {
|
|
2162
|
+
ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
2163
|
+
targetRef.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
2164
|
+
}
|
|
2165
|
+
};
|
|
2166
|
+
const onMouseUp = () => {
|
|
2167
|
+
document.removeEventListener("mousemove", onMouseMove);
|
|
2168
|
+
document.removeEventListener("mouseup", onMouseUp);
|
|
2169
|
+
};
|
|
2170
|
+
document.addEventListener("mousemove", onMouseMove);
|
|
2171
|
+
document.addEventListener("mouseup", onMouseUp);
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2174
|
+
);
|
|
2175
|
+
|
|
2176
|
+
// src/components/DataTable/components.tsx
|
|
2177
|
+
var import_react24 = __toESM(require("react"));
|
|
2178
|
+
var import_joy32 = require("@mui/joy");
|
|
2179
|
+
var import_framer_motion22 = require("framer-motion");
|
|
2010
2180
|
|
|
2011
2181
|
// src/components/DatePicker/DatePicker.tsx
|
|
2012
2182
|
var import_react19 = __toESM(require("react"));
|
|
@@ -2015,10 +2185,20 @@ var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"))
|
|
|
2015
2185
|
var import_joy27 = require("@mui/joy");
|
|
2016
2186
|
var import_base2 = require("@mui/base");
|
|
2017
2187
|
|
|
2188
|
+
// src/components/Sheet/Sheet.tsx
|
|
2189
|
+
var import_joy25 = require("@mui/joy");
|
|
2190
|
+
var import_framer_motion17 = require("framer-motion");
|
|
2191
|
+
var MotionSheet = (0, import_framer_motion17.motion)(import_joy25.Sheet);
|
|
2192
|
+
var Sheet = MotionSheet;
|
|
2193
|
+
Sheet.displayName = "Sheet";
|
|
2194
|
+
|
|
2195
|
+
// src/components/Sheet/index.ts
|
|
2196
|
+
var Sheet_default = Sheet;
|
|
2197
|
+
|
|
2018
2198
|
// src/components/DialogActions/DialogActions.tsx
|
|
2019
2199
|
var import_joy26 = require("@mui/joy");
|
|
2020
|
-
var
|
|
2021
|
-
var MotionDialogActions = (0,
|
|
2200
|
+
var import_framer_motion18 = require("framer-motion");
|
|
2201
|
+
var MotionDialogActions = (0, import_framer_motion18.motion)(import_joy26.DialogActions);
|
|
2022
2202
|
var StyledDialogActions = (0, import_joy26.styled)(MotionDialogActions)(({ theme }) => ({
|
|
2023
2203
|
padding: theme.spacing(2),
|
|
2024
2204
|
gap: theme.spacing(2),
|
|
@@ -2374,8 +2554,8 @@ var DatePicker_default = DatePicker;
|
|
|
2374
2554
|
// src/components/Textarea/Textarea.tsx
|
|
2375
2555
|
var import_react20 = __toESM(require("react"));
|
|
2376
2556
|
var import_joy28 = require("@mui/joy");
|
|
2377
|
-
var
|
|
2378
|
-
var MotionTextarea = (0,
|
|
2557
|
+
var import_framer_motion19 = require("framer-motion");
|
|
2558
|
+
var MotionTextarea = (0, import_framer_motion19.motion)(import_joy28.Textarea);
|
|
2379
2559
|
var Textarea = (props) => {
|
|
2380
2560
|
const {
|
|
2381
2561
|
label,
|
|
@@ -2428,8 +2608,8 @@ var Textarea_default = Textarea;
|
|
|
2428
2608
|
// src/components/Select/Select.tsx
|
|
2429
2609
|
var import_react21 = __toESM(require("react"));
|
|
2430
2610
|
var import_joy29 = require("@mui/joy");
|
|
2431
|
-
var
|
|
2432
|
-
var MotionOption = (0,
|
|
2611
|
+
var import_framer_motion20 = require("framer-motion");
|
|
2612
|
+
var MotionOption = (0, import_framer_motion20.motion)(import_joy29.Option);
|
|
2433
2613
|
var Option = MotionOption;
|
|
2434
2614
|
Option.displayName = "Option";
|
|
2435
2615
|
function Select(props) {
|
|
@@ -2505,11 +2685,14 @@ Select.displayName = "Select";
|
|
|
2505
2685
|
// src/components/Select/index.ts
|
|
2506
2686
|
var Select_default = Select;
|
|
2507
2687
|
|
|
2688
|
+
// src/components/DataTable/components.tsx
|
|
2689
|
+
var import_joy33 = require("@mui/joy");
|
|
2690
|
+
|
|
2508
2691
|
// src/components/Tooltip/Tooltip.tsx
|
|
2509
2692
|
var import_react22 = __toESM(require("react"));
|
|
2510
2693
|
var import_joy30 = require("@mui/joy");
|
|
2511
|
-
var
|
|
2512
|
-
var MotionTooltip = (0,
|
|
2694
|
+
var import_framer_motion21 = require("framer-motion");
|
|
2695
|
+
var MotionTooltip = (0, import_framer_motion21.motion)(import_joy30.Tooltip);
|
|
2513
2696
|
var Tooltip = (props) => {
|
|
2514
2697
|
return /* @__PURE__ */ import_react22.default.createElement(MotionTooltip, { ...props });
|
|
2515
2698
|
};
|
|
@@ -2518,151 +2701,11 @@ Tooltip.displayName = "Tooltip";
|
|
|
2518
2701
|
// src/components/Tooltip/index.ts
|
|
2519
2702
|
var Tooltip_default = Tooltip;
|
|
2520
2703
|
|
|
2521
|
-
// src/components/
|
|
2522
|
-
var import_framer_motion21 = require("framer-motion");
|
|
2523
|
-
|
|
2524
|
-
// src/components/Pagination/Pagination.tsx
|
|
2704
|
+
// src/components/InfoSign/InfoSign.tsx
|
|
2525
2705
|
var import_react23 = __toESM(require("react"));
|
|
2526
|
-
var import_ChevronLeft2 = __toESM(require("@mui/icons-material/ChevronLeft"));
|
|
2527
|
-
var import_ChevronRight2 = __toESM(require("@mui/icons-material/ChevronRight"));
|
|
2528
2706
|
var import_joy31 = require("@mui/joy");
|
|
2529
|
-
var PaginationButton = (0, import_joy31.styled)(Button_default, {
|
|
2530
|
-
name: "Pagination",
|
|
2531
|
-
slot: "button"
|
|
2532
|
-
})(({ theme, active, size }) => ({
|
|
2533
|
-
"--Button-size": {
|
|
2534
|
-
sm: "32px",
|
|
2535
|
-
md: "40px",
|
|
2536
|
-
lg: "48px"
|
|
2537
|
-
}[size],
|
|
2538
|
-
width: "var(--Button-size)",
|
|
2539
|
-
height: "var(--Button-size)",
|
|
2540
|
-
backgroundColor: active ? theme.vars.palette.primary.softHoverBg : "transparent",
|
|
2541
|
-
color: active ? theme.vars.palette.primary.softColor : theme.vars.palette.neutral.plainColor,
|
|
2542
|
-
"&:hover": {
|
|
2543
|
-
color: active ? theme.vars.palette.primary.softColor : theme.vars.palette.neutral.softColor,
|
|
2544
|
-
backgroundColor: active ? theme.vars.palette.primary.softActiveBg : theme.vars.palette.neutral.softHoverBg
|
|
2545
|
-
}
|
|
2546
|
-
}));
|
|
2547
|
-
var PaginationIconButton = (0, import_joy31.styled)(IconButton_default, {
|
|
2548
|
-
name: "Pagination",
|
|
2549
|
-
slot: "button"
|
|
2550
|
-
})(({ theme, size }) => ({
|
|
2551
|
-
"--IconButton-size": {
|
|
2552
|
-
sm: "32px",
|
|
2553
|
-
md: "40px",
|
|
2554
|
-
lg: "48px"
|
|
2555
|
-
}[size],
|
|
2556
|
-
"--Icon-fontSize": "20px",
|
|
2557
|
-
width: "var(--IconButton-size)",
|
|
2558
|
-
height: "var(--IconButton-size)",
|
|
2559
|
-
color: theme.vars.palette.neutral.plainColor,
|
|
2560
|
-
"&:hover": {
|
|
2561
|
-
color: theme.vars.palette.neutral.softColor,
|
|
2562
|
-
backgroundColor: theme.vars.palette.neutral.softHoverBg
|
|
2563
|
-
}
|
|
2564
|
-
}));
|
|
2565
|
-
var PaginationRoot = (0, import_joy31.styled)(Stack_default, {
|
|
2566
|
-
name: "Pagination",
|
|
2567
|
-
slot: "root"
|
|
2568
|
-
})({});
|
|
2569
|
-
var PaginationContainer = (0, import_joy31.styled)(Stack_default, {
|
|
2570
|
-
name: "Pagination",
|
|
2571
|
-
slot: "container"
|
|
2572
|
-
})(({ theme, size }) => ({
|
|
2573
|
-
gap: {
|
|
2574
|
-
sm: theme.spacing(1),
|
|
2575
|
-
md: theme.spacing(1.5),
|
|
2576
|
-
lg: theme.spacing(2)
|
|
2577
|
-
}[size]
|
|
2578
|
-
}));
|
|
2579
|
-
function Pagination(props) {
|
|
2580
|
-
const {
|
|
2581
|
-
paginationModel: _paginationModel,
|
|
2582
|
-
defaultPaginationModel = { page: 1, pageSize: 25 },
|
|
2583
|
-
onPageChange,
|
|
2584
|
-
rowCount,
|
|
2585
|
-
size = "md",
|
|
2586
|
-
...innerProps
|
|
2587
|
-
} = props;
|
|
2588
|
-
const [paginationModel, setPaginationModel] = useControlledState(
|
|
2589
|
-
_paginationModel,
|
|
2590
|
-
defaultPaginationModel,
|
|
2591
|
-
(0, import_react23.useCallback)(
|
|
2592
|
-
(newPage) => {
|
|
2593
|
-
onPageChange(newPage.page);
|
|
2594
|
-
},
|
|
2595
|
-
[onPageChange]
|
|
2596
|
-
)
|
|
2597
|
-
);
|
|
2598
|
-
const handlePageChange = (newPage) => {
|
|
2599
|
-
setPaginationModel({ ...paginationModel, page: newPage });
|
|
2600
|
-
};
|
|
2601
|
-
const firstPage = 1;
|
|
2602
|
-
const lastPage = Math.max(firstPage, Math.ceil(rowCount / paginationModel.pageSize));
|
|
2603
|
-
const beforePages = [paginationModel.page - 2, paginationModel.page - 1].filter((p) => p > 1);
|
|
2604
|
-
const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
|
|
2605
|
-
const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
|
|
2606
|
-
const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
|
|
2607
|
-
(0, import_react23.useEffect)(() => {
|
|
2608
|
-
if (paginationModel.page > lastPage) {
|
|
2609
|
-
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
2610
|
-
}
|
|
2611
|
-
}, [rowCount, paginationModel, lastPage, setPaginationModel]);
|
|
2612
|
-
return /* @__PURE__ */ import_react23.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react23.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react23.default.createElement(
|
|
2613
|
-
PaginationIconButton,
|
|
2614
|
-
{
|
|
2615
|
-
size,
|
|
2616
|
-
variant: "plain",
|
|
2617
|
-
color: "neutral",
|
|
2618
|
-
onClick: () => handlePageChange(paginationModel.page - 1),
|
|
2619
|
-
disabled: paginationModel.page === firstPage,
|
|
2620
|
-
"aria-label": "Previous page"
|
|
2621
|
-
},
|
|
2622
|
-
/* @__PURE__ */ import_react23.default.createElement(import_ChevronLeft2.default, null)
|
|
2623
|
-
), paginationModel.page !== firstPage && /* @__PURE__ */ import_react23.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ import_react23.default.createElement(
|
|
2624
|
-
PaginationButton,
|
|
2625
|
-
{
|
|
2626
|
-
size,
|
|
2627
|
-
variant: "plain",
|
|
2628
|
-
color: "neutral",
|
|
2629
|
-
onClick: () => handlePageChange(paginationModel.page - 3),
|
|
2630
|
-
"aria-label": "More previous pages"
|
|
2631
|
-
},
|
|
2632
|
-
"..."
|
|
2633
|
-
), beforePages.map((p) => /* @__PURE__ */ import_react23.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ import_react23.default.createElement(PaginationButton, { active: "true", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ import_react23.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ import_react23.default.createElement(
|
|
2634
|
-
PaginationButton,
|
|
2635
|
-
{
|
|
2636
|
-
size,
|
|
2637
|
-
variant: "plain",
|
|
2638
|
-
color: "neutral",
|
|
2639
|
-
"aria-label": "More next pages",
|
|
2640
|
-
onClick: () => handlePageChange(paginationModel.page + 3)
|
|
2641
|
-
},
|
|
2642
|
-
"..."
|
|
2643
|
-
), paginationModel.page !== lastPage && /* @__PURE__ */ import_react23.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react23.default.createElement(
|
|
2644
|
-
PaginationIconButton,
|
|
2645
|
-
{
|
|
2646
|
-
size,
|
|
2647
|
-
variant: "plain",
|
|
2648
|
-
color: "neutral",
|
|
2649
|
-
onClick: () => handlePageChange(paginationModel.page + 1),
|
|
2650
|
-
disabled: paginationModel.page === lastPage,
|
|
2651
|
-
"aria-label": "Next page"
|
|
2652
|
-
},
|
|
2653
|
-
/* @__PURE__ */ import_react23.default.createElement(import_ChevronRight2.default, null)
|
|
2654
|
-
)));
|
|
2655
|
-
}
|
|
2656
|
-
Pagination.displayName = "Pagination";
|
|
2657
|
-
|
|
2658
|
-
// src/components/Pagination/index.ts
|
|
2659
|
-
var Pagination_default = Pagination;
|
|
2660
|
-
|
|
2661
|
-
// src/components/InfoSign/InfoSign.tsx
|
|
2662
|
-
var import_react24 = __toESM(require("react"));
|
|
2663
|
-
var import_joy32 = require("@mui/joy");
|
|
2664
2707
|
var import_Info = __toESM(require("@mui/icons-material/Info"));
|
|
2665
|
-
var InfoIcon = (0,
|
|
2708
|
+
var InfoIcon = (0, import_joy31.styled)(import_Info.default, {
|
|
2666
2709
|
name: "InfoSign",
|
|
2667
2710
|
slot: "InfoSign"
|
|
2668
2711
|
})(({ theme }) => ({
|
|
@@ -2672,67 +2715,55 @@ var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
|
2672
2715
|
}));
|
|
2673
2716
|
function InfoSign(props) {
|
|
2674
2717
|
const { message, placement } = props;
|
|
2675
|
-
return /* @__PURE__ */
|
|
2718
|
+
return /* @__PURE__ */ import_react23.default.createElement(
|
|
2676
2719
|
Tooltip_default,
|
|
2677
2720
|
{
|
|
2678
2721
|
arrow: true,
|
|
2679
2722
|
placement,
|
|
2680
2723
|
sx: {
|
|
2681
|
-
[`&.${
|
|
2724
|
+
[`&.${import_joy31.tooltipClasses.root}`]: {
|
|
2682
2725
|
maxWidth: "320px"
|
|
2683
2726
|
}
|
|
2684
2727
|
},
|
|
2685
|
-
title: message?.split("\n").map((line, i) => /* @__PURE__ */
|
|
2728
|
+
title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react23.default.createElement("div", { key: `info-sign-${i}` }, line))
|
|
2686
2729
|
},
|
|
2687
|
-
/* @__PURE__ */
|
|
2730
|
+
/* @__PURE__ */ import_react23.default.createElement(InfoIcon, null)
|
|
2688
2731
|
);
|
|
2689
2732
|
}
|
|
2690
2733
|
|
|
2691
2734
|
// src/components/InfoSign/index.ts
|
|
2692
2735
|
var InfoSign_default = InfoSign;
|
|
2693
2736
|
|
|
2694
|
-
// src/components/DataTable/
|
|
2695
|
-
function getTextAlign(props) {
|
|
2696
|
-
return !props.editMode && ["number", "date", "currency"].includes(props.type || "") ? "end" : "start";
|
|
2697
|
-
}
|
|
2698
|
-
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react25.default.createElement(import_joy33.LinearProgress, { value: 8, variant: "plain" });
|
|
2699
|
-
var EllipsisDiv = (0, import_joy33.styled)("div", {
|
|
2700
|
-
name: "DataTable",
|
|
2701
|
-
slot: "textEllipsis"
|
|
2702
|
-
})({
|
|
2703
|
-
overflow: "hidden",
|
|
2704
|
-
textOverflow: "ellipsis",
|
|
2705
|
-
whiteSpace: "nowrap"
|
|
2706
|
-
});
|
|
2737
|
+
// src/components/DataTable/components.tsx
|
|
2707
2738
|
var TextEllipsis = ({ children }) => {
|
|
2708
|
-
const textRef = (0,
|
|
2709
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
2710
|
-
(0,
|
|
2739
|
+
const textRef = (0, import_react24.useRef)(null);
|
|
2740
|
+
const [showTooltip, setShowTooltip] = (0, import_react24.useState)(false);
|
|
2741
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
2711
2742
|
const element = textRef.current;
|
|
2712
2743
|
if (element) {
|
|
2713
2744
|
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
2714
2745
|
setShowTooltip(isTextTruncated);
|
|
2715
2746
|
}
|
|
2716
2747
|
}, [children]);
|
|
2717
|
-
const content = /* @__PURE__ */
|
|
2748
|
+
const content = /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
2718
2749
|
if (showTooltip) {
|
|
2719
|
-
return /* @__PURE__ */
|
|
2750
|
+
return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: children, placement: "top", onClick: (e) => e.stopPropagation() }, content);
|
|
2720
2751
|
}
|
|
2721
2752
|
return content;
|
|
2722
2753
|
};
|
|
2723
2754
|
var CellTextEllipsis = ({ children }) => {
|
|
2724
|
-
const textRef = (0,
|
|
2725
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
2726
|
-
(0,
|
|
2755
|
+
const textRef = (0, import_react24.useRef)(null);
|
|
2756
|
+
const [showTooltip, setShowTooltip] = (0, import_react24.useState)(false);
|
|
2757
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
2727
2758
|
const element = textRef.current;
|
|
2728
2759
|
if (element) {
|
|
2729
2760
|
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
2730
2761
|
setShowTooltip(isTextTruncated);
|
|
2731
2762
|
}
|
|
2732
2763
|
}, [children]);
|
|
2733
|
-
const content = /* @__PURE__ */
|
|
2764
|
+
const content = /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
2734
2765
|
if (showTooltip) {
|
|
2735
|
-
return /* @__PURE__ */
|
|
2766
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
2736
2767
|
Tooltip_default,
|
|
2737
2768
|
{
|
|
2738
2769
|
title: children,
|
|
@@ -2746,129 +2777,6 @@ var CellTextEllipsis = ({ children }) => {
|
|
|
2746
2777
|
}
|
|
2747
2778
|
return content;
|
|
2748
2779
|
};
|
|
2749
|
-
var OverlayWrapper = (0, import_joy33.styled)("tr", {
|
|
2750
|
-
name: "DataTable",
|
|
2751
|
-
slot: "overlayWrapper"
|
|
2752
|
-
})({
|
|
2753
|
-
position: "sticky",
|
|
2754
|
-
top: `calc(var(--unstable_TableCell-height, 32px))`,
|
|
2755
|
-
left: 0,
|
|
2756
|
-
right: 0,
|
|
2757
|
-
zIndex: 1,
|
|
2758
|
-
"& > td": {
|
|
2759
|
-
height: 0,
|
|
2760
|
-
padding: 0,
|
|
2761
|
-
border: "none !important"
|
|
2762
|
-
}
|
|
2763
|
-
});
|
|
2764
|
-
var numberFormatter = (value) => "Intl" in window ? new Intl.NumberFormat().format(value) : value;
|
|
2765
|
-
var Resizer = (ref) => /* @__PURE__ */ import_react25.default.createElement(
|
|
2766
|
-
Box_default,
|
|
2767
|
-
{
|
|
2768
|
-
sx: {
|
|
2769
|
-
position: "absolute",
|
|
2770
|
-
top: 0,
|
|
2771
|
-
right: 0,
|
|
2772
|
-
bottom: 0,
|
|
2773
|
-
width: "4px",
|
|
2774
|
-
cursor: "col-resize"
|
|
2775
|
-
},
|
|
2776
|
-
onClick: (e) => e.stopPropagation(),
|
|
2777
|
-
onMouseDown: (e) => {
|
|
2778
|
-
const initialX = e.clientX;
|
|
2779
|
-
const initialWidth = ref.current?.getBoundingClientRect().width;
|
|
2780
|
-
const onMouseMove = (e2) => {
|
|
2781
|
-
if (initialWidth && initialX) {
|
|
2782
|
-
ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
2783
|
-
}
|
|
2784
|
-
};
|
|
2785
|
-
const onMouseUp = () => {
|
|
2786
|
-
document.removeEventListener("mousemove", onMouseMove);
|
|
2787
|
-
document.removeEventListener("mouseup", onMouseUp);
|
|
2788
|
-
};
|
|
2789
|
-
document.addEventListener("mousemove", onMouseMove);
|
|
2790
|
-
document.addEventListener("mouseup", onMouseUp);
|
|
2791
|
-
}
|
|
2792
|
-
}
|
|
2793
|
-
);
|
|
2794
|
-
var VirtualizedTableBody = (0, import_joy33.styled)("tbody", {
|
|
2795
|
-
name: "DataTable",
|
|
2796
|
-
slot: "tableBody"
|
|
2797
|
-
})({
|
|
2798
|
-
// HACK: for virtualization: tbody의 height를 렌더링 된 tr의 총 높이 보다 높은 값으로 지정하고도 tr의 size를 유지하기 위한 꼼수
|
|
2799
|
-
"&::after": {
|
|
2800
|
-
content: "''",
|
|
2801
|
-
display: "block",
|
|
2802
|
-
height: "0.01em"
|
|
2803
|
-
},
|
|
2804
|
-
// NOTE: 테이블 안에 버튼을 넣을 때 버튼의 높이가 테이블의 높이를 넘어가지 않도록 설정
|
|
2805
|
-
[`& .${import_joy33.buttonClasses.root}`]: {
|
|
2806
|
-
"--Button-minHeight": "26px",
|
|
2807
|
-
"--Button-paddingBlock": "0.25rem",
|
|
2808
|
-
lineHeight: 1,
|
|
2809
|
-
marginTop: "-2px",
|
|
2810
|
-
marginBottom: "-2px"
|
|
2811
|
-
},
|
|
2812
|
-
[`& .${import_joy33.iconButtonClasses.root}`]: {
|
|
2813
|
-
"--IconButton-size": "26px",
|
|
2814
|
-
verticalAlign: "middle",
|
|
2815
|
-
marginTop: "-2px",
|
|
2816
|
-
marginBottom: "-2px"
|
|
2817
|
-
}
|
|
2818
|
-
});
|
|
2819
|
-
var StyledTableRow = (0, import_joy33.styled)("tr", {
|
|
2820
|
-
name: "DataTable",
|
|
2821
|
-
slot: "tableRow",
|
|
2822
|
-
shouldForwardProp: (prop) => prop !== "striped"
|
|
2823
|
-
})(({ striped }) => ({
|
|
2824
|
-
...striped && {
|
|
2825
|
-
backgroundColor: "var(--TableRow-stripeBackground, var(--ceed-palette-background-level2))",
|
|
2826
|
-
color: "var(--ceed-palette-text-primary)",
|
|
2827
|
-
"& td": {
|
|
2828
|
-
backgroundColor: "background.surface"
|
|
2829
|
-
}
|
|
2830
|
-
},
|
|
2831
|
-
"&:hover": {
|
|
2832
|
-
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))",
|
|
2833
|
-
"& td": {
|
|
2834
|
-
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))"
|
|
2835
|
-
}
|
|
2836
|
-
}
|
|
2837
|
-
}));
|
|
2838
|
-
var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow, (prevProps, nextProps) => {
|
|
2839
|
-
return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
|
|
2840
|
-
prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
|
|
2841
|
-
prevProps["data-index"] === nextProps["data-index"] && prevProps.tabIndex === nextProps.tabIndex && prevProps["aria-checked"] === nextProps["aria-checked"] && // Include children check to handle isCellEditable changes
|
|
2842
|
-
prevProps.children === nextProps.children;
|
|
2843
|
-
});
|
|
2844
|
-
var Asterisk = (0, import_joy33.styled)("span", {
|
|
2845
|
-
name: "DataTable",
|
|
2846
|
-
slot: "headCellAsterisk"
|
|
2847
|
-
})(({ theme }) => ({
|
|
2848
|
-
color: "var(--ceed-palette-danger-500)",
|
|
2849
|
-
marginLeft: theme.spacing(0.5)
|
|
2850
|
-
}));
|
|
2851
|
-
var StyledTh = (0, import_joy33.styled)(import_framer_motion21.motion.th)(({ theme }) => ({
|
|
2852
|
-
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2853
|
-
// border 대신 box-shadow를 사용하여 stickyHeader와 함께 사용할 때 border가 겹치는 문제를 해결
|
|
2854
|
-
}));
|
|
2855
|
-
var StyledTd = (0, import_joy33.styled)("td")(({ theme }) => ({
|
|
2856
|
-
transition: `box-shadow 0.3s`,
|
|
2857
|
-
"&:not(.is-last-left):not(.is-last-right)": {
|
|
2858
|
-
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2859
|
-
},
|
|
2860
|
-
".ScrollableRight &": {
|
|
2861
|
-
"&.is-last-left": {
|
|
2862
|
-
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2863
|
-
}
|
|
2864
|
-
},
|
|
2865
|
-
".ScrollableLeft &": {
|
|
2866
|
-
"&.is-last-right": {
|
|
2867
|
-
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2868
|
-
}
|
|
2869
|
-
}
|
|
2870
|
-
}));
|
|
2871
|
-
var MotionSortIcon = (0, import_framer_motion21.motion)(import_ArrowUpwardRounded.default);
|
|
2872
2780
|
var HeadCell = (props) => {
|
|
2873
2781
|
const {
|
|
2874
2782
|
width,
|
|
@@ -2890,18 +2798,21 @@ var HeadCell = (props) => {
|
|
|
2890
2798
|
isPinned,
|
|
2891
2799
|
pinnedStartPosition,
|
|
2892
2800
|
pinnedEndPosition,
|
|
2893
|
-
headerRef
|
|
2801
|
+
headerRef,
|
|
2802
|
+
tableColRef,
|
|
2803
|
+
headerClassName
|
|
2894
2804
|
} = props;
|
|
2895
|
-
const theme = (0,
|
|
2805
|
+
const theme = (0, import_joy32.useTheme)();
|
|
2896
2806
|
const ref = headerRef;
|
|
2897
|
-
const
|
|
2807
|
+
const colRef = tableColRef;
|
|
2808
|
+
const [isHovered, setIsHovered] = (0, import_react24.useState)(false);
|
|
2898
2809
|
const sortable = type === "actions" ? false : _sortable;
|
|
2899
|
-
const headId = (0,
|
|
2810
|
+
const headId = (0, import_react24.useMemo)(
|
|
2900
2811
|
() => `${tableId}_header_${headerName ?? field}`.trim(),
|
|
2901
2812
|
[tableId, headerName, field]
|
|
2902
2813
|
);
|
|
2903
|
-
const resizer = (0,
|
|
2904
|
-
const style = (0,
|
|
2814
|
+
const resizer = (0, import_react24.useMemo)(() => resizable ?? true ? Resizer(ref, colRef) : null, [resizable, ref, colRef]);
|
|
2815
|
+
const style = (0, import_react24.useMemo)(
|
|
2905
2816
|
() => ({
|
|
2906
2817
|
width,
|
|
2907
2818
|
minWidth: minWidth ?? "50px",
|
|
@@ -2919,10 +2830,10 @@ var HeadCell = (props) => {
|
|
|
2919
2830
|
);
|
|
2920
2831
|
const textAlign = getTextAlign(props);
|
|
2921
2832
|
const initialSort = sortOrder[0];
|
|
2922
|
-
const sortIcon = (0,
|
|
2833
|
+
const sortIcon = (0, import_react24.useMemo)(() => {
|
|
2923
2834
|
const isSorted = !!sort;
|
|
2924
2835
|
const isVisible = sortable && (isSorted || isHovered);
|
|
2925
|
-
return /* @__PURE__ */
|
|
2836
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_framer_motion22.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react24.default.createElement(
|
|
2926
2837
|
MotionSortIcon,
|
|
2927
2838
|
{
|
|
2928
2839
|
key: "sort-icon",
|
|
@@ -2950,11 +2861,21 @@ var HeadCell = (props) => {
|
|
|
2950
2861
|
}
|
|
2951
2862
|
));
|
|
2952
2863
|
}, [headId, initialSort, sort, sortable, isHovered]);
|
|
2953
|
-
const infoSign = (0,
|
|
2954
|
-
() => description ? /* @__PURE__ */
|
|
2864
|
+
const infoSign = (0, import_react24.useMemo)(
|
|
2865
|
+
() => description ? /* @__PURE__ */ import_react24.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
|
|
2955
2866
|
[description]
|
|
2956
2867
|
);
|
|
2957
|
-
|
|
2868
|
+
const params = (0, import_react24.useMemo)(
|
|
2869
|
+
() => ({
|
|
2870
|
+
field
|
|
2871
|
+
}),
|
|
2872
|
+
[field]
|
|
2873
|
+
);
|
|
2874
|
+
const computedHeaderClassName = (0, import_react24.useMemo)(
|
|
2875
|
+
() => (typeof headerClassName === "function" ? headerClassName(params) : headerClassName) || void 0,
|
|
2876
|
+
[headerClassName, params]
|
|
2877
|
+
);
|
|
2878
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
2958
2879
|
StyledTh,
|
|
2959
2880
|
{
|
|
2960
2881
|
id: headId,
|
|
@@ -2963,16 +2884,17 @@ var HeadCell = (props) => {
|
|
|
2963
2884
|
ref,
|
|
2964
2885
|
key: field,
|
|
2965
2886
|
style,
|
|
2966
|
-
onClick: (0,
|
|
2887
|
+
onClick: (0, import_react24.useCallback)(
|
|
2967
2888
|
(e) => sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey }),
|
|
2968
2889
|
[field, onSortChange, sort, sortable]
|
|
2969
2890
|
),
|
|
2970
2891
|
onMouseEnter: () => setIsHovered(true),
|
|
2971
2892
|
onMouseLeave: () => setIsHovered(false),
|
|
2972
2893
|
whileHover: "hover",
|
|
2973
|
-
initial: "initial"
|
|
2894
|
+
initial: "initial",
|
|
2895
|
+
className: computedHeaderClassName
|
|
2974
2896
|
},
|
|
2975
|
-
/* @__PURE__ */
|
|
2897
|
+
/* @__PURE__ */ import_react24.default.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center" }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ import_react24.default.createElement(TextEllipsis, null, headerName ?? field, editMode && required && /* @__PURE__ */ import_react24.default.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
|
|
2976
2898
|
resizer
|
|
2977
2899
|
);
|
|
2978
2900
|
};
|
|
@@ -2996,10 +2918,10 @@ var BodyCell = (props) => {
|
|
|
2996
2918
|
onCellEditStart,
|
|
2997
2919
|
onCellEditStop
|
|
2998
2920
|
} = props;
|
|
2999
|
-
const theme = (0,
|
|
3000
|
-
const [value, setValue] = (0,
|
|
3001
|
-
const cellRef = (0,
|
|
3002
|
-
const params = (0,
|
|
2921
|
+
const theme = (0, import_joy32.useTheme)();
|
|
2922
|
+
const [value, setValue] = (0, import_react24.useState)(row[field]);
|
|
2923
|
+
const cellRef = (0, import_react24.useRef)(null);
|
|
2924
|
+
const params = (0, import_react24.useMemo)(
|
|
3003
2925
|
() => ({
|
|
3004
2926
|
row,
|
|
3005
2927
|
value,
|
|
@@ -3008,19 +2930,19 @@ var BodyCell = (props) => {
|
|
|
3008
2930
|
}),
|
|
3009
2931
|
[row, rowId, value, field]
|
|
3010
2932
|
);
|
|
3011
|
-
const editMode = (0,
|
|
2933
|
+
const editMode = (0, import_react24.useMemo)(
|
|
3012
2934
|
() => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
|
|
3013
2935
|
[props.editMode, isCellEditable, params]
|
|
3014
2936
|
);
|
|
3015
2937
|
const propsComponentProps = "componentProps" in props ? props.componentProps : null;
|
|
3016
|
-
const componentProps = (0,
|
|
2938
|
+
const componentProps = (0, import_react24.useMemo)(
|
|
3017
2939
|
() => ({
|
|
3018
2940
|
..."componentProps" in props && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
|
|
3019
2941
|
size: "sm"
|
|
3020
2942
|
}),
|
|
3021
2943
|
[props, propsComponentProps, params]
|
|
3022
2944
|
);
|
|
3023
|
-
const editModeComponentProps = (0,
|
|
2945
|
+
const editModeComponentProps = (0, import_react24.useMemo)(
|
|
3024
2946
|
() => ({
|
|
3025
2947
|
...componentProps,
|
|
3026
2948
|
onChange: (e) => {
|
|
@@ -3082,23 +3004,23 @@ var BodyCell = (props) => {
|
|
|
3082
3004
|
}),
|
|
3083
3005
|
[params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
|
|
3084
3006
|
);
|
|
3085
|
-
const EditModeComponent = (0,
|
|
3007
|
+
const EditModeComponent = (0, import_react24.useMemo)(() => {
|
|
3086
3008
|
if (renderEditCell) {
|
|
3087
|
-
return (0,
|
|
3009
|
+
return (0, import_react24.createElement)((0, import_react24.memo)(renderEditCell), params);
|
|
3088
3010
|
}
|
|
3089
3011
|
return {
|
|
3090
|
-
date: /* @__PURE__ */
|
|
3091
|
-
currency: /* @__PURE__ */
|
|
3012
|
+
date: /* @__PURE__ */ import_react24.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
|
|
3013
|
+
currency: /* @__PURE__ */ import_react24.default.createElement(
|
|
3092
3014
|
CurrencyInput_default,
|
|
3093
3015
|
{
|
|
3094
3016
|
value,
|
|
3095
3017
|
...editModeComponentProps
|
|
3096
3018
|
}
|
|
3097
3019
|
),
|
|
3098
|
-
number: /* @__PURE__ */
|
|
3099
|
-
text: /* @__PURE__ */
|
|
3100
|
-
longText: /* @__PURE__ */
|
|
3101
|
-
autocomplete: /* @__PURE__ */
|
|
3020
|
+
number: /* @__PURE__ */ import_react24.default.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
|
|
3021
|
+
text: /* @__PURE__ */ import_react24.default.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
|
|
3022
|
+
longText: /* @__PURE__ */ import_react24.default.createElement(Textarea_default, { value, ...editModeComponentProps }),
|
|
3023
|
+
autocomplete: /* @__PURE__ */ import_react24.default.createElement(
|
|
3102
3024
|
Autocomplete_default,
|
|
3103
3025
|
{
|
|
3104
3026
|
value,
|
|
@@ -3106,7 +3028,7 @@ var BodyCell = (props) => {
|
|
|
3106
3028
|
...editModeComponentProps
|
|
3107
3029
|
}
|
|
3108
3030
|
),
|
|
3109
|
-
select: /* @__PURE__ */
|
|
3031
|
+
select: /* @__PURE__ */ import_react24.default.createElement(
|
|
3110
3032
|
Select_default,
|
|
3111
3033
|
{
|
|
3112
3034
|
value,
|
|
@@ -3117,13 +3039,13 @@ var BodyCell = (props) => {
|
|
|
3117
3039
|
}[type || "text"];
|
|
3118
3040
|
}, [value, editModeComponentProps, type, renderEditCell, params]);
|
|
3119
3041
|
const linkComponentFromProps = props.component;
|
|
3120
|
-
const ReadModeComponent = (0,
|
|
3042
|
+
const ReadModeComponent = (0, import_react24.useMemo)(() => {
|
|
3121
3043
|
if (renderCell) {
|
|
3122
|
-
return (0,
|
|
3044
|
+
return (0, import_react24.createElement)((0, import_react24.memo)(renderCell), params);
|
|
3123
3045
|
}
|
|
3124
3046
|
const innerText = value;
|
|
3125
3047
|
const typedComponent = {
|
|
3126
|
-
link:
|
|
3048
|
+
link: import_react24.default.createElement(linkComponentFromProps || import_joy33.Link, {
|
|
3127
3049
|
children: innerText,
|
|
3128
3050
|
...componentProps
|
|
3129
3051
|
})
|
|
@@ -3131,22 +3053,22 @@ var BodyCell = (props) => {
|
|
|
3131
3053
|
return typedComponent || innerText;
|
|
3132
3054
|
}, [value, renderCell, params, type, componentProps, linkComponentFromProps]);
|
|
3133
3055
|
const getActions = props.getActions;
|
|
3134
|
-
const CellComponent = (0,
|
|
3056
|
+
const CellComponent = (0, import_react24.useMemo)(() => {
|
|
3135
3057
|
if (type === "actions") {
|
|
3136
|
-
return /* @__PURE__ */
|
|
3058
|
+
return /* @__PURE__ */ import_react24.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
|
|
3137
3059
|
}
|
|
3138
3060
|
return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
|
|
3139
3061
|
}, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
|
|
3140
|
-
const showTooltip = (0,
|
|
3062
|
+
const showTooltip = (0, import_react24.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
|
|
3141
3063
|
const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
|
|
3142
|
-
const computedCellClassName = (0,
|
|
3064
|
+
const computedCellClassName = (0, import_react24.useMemo)(
|
|
3143
3065
|
() => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
|
|
3144
3066
|
[cellClassName, params]
|
|
3145
3067
|
);
|
|
3146
|
-
(0,
|
|
3068
|
+
(0, import_react24.useEffect)(() => {
|
|
3147
3069
|
setValue(row[field]);
|
|
3148
3070
|
}, [row, field]);
|
|
3149
|
-
return /* @__PURE__ */
|
|
3071
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
3150
3072
|
StyledTd,
|
|
3151
3073
|
{
|
|
3152
3074
|
ref: cellRef,
|
|
@@ -3163,16 +3085,16 @@ var BodyCell = (props) => {
|
|
|
3163
3085
|
},
|
|
3164
3086
|
className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
|
|
3165
3087
|
},
|
|
3166
|
-
(0,
|
|
3167
|
-
() => showTooltip ? /* @__PURE__ */
|
|
3088
|
+
(0, import_react24.useMemo)(
|
|
3089
|
+
() => showTooltip ? /* @__PURE__ */ import_react24.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
|
|
3168
3090
|
[CellComponent, showTooltip]
|
|
3169
3091
|
)
|
|
3170
3092
|
);
|
|
3171
3093
|
};
|
|
3172
|
-
var BodyRow = (0,
|
|
3094
|
+
var BodyRow = (0, import_react24.memo)(
|
|
3173
3095
|
(props) => {
|
|
3174
3096
|
const { tableId, columns, rowId, editMode, noWrap, row } = props;
|
|
3175
|
-
return /* @__PURE__ */
|
|
3097
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react24.default.createElement(
|
|
3176
3098
|
BodyCell,
|
|
3177
3099
|
{
|
|
3178
3100
|
key: `${rowId}_${column.field.toString()}_${i}`,
|
|
@@ -3186,6 +3108,34 @@ var BodyRow = (0, import_react25.memo)(
|
|
|
3186
3108
|
)));
|
|
3187
3109
|
}
|
|
3188
3110
|
);
|
|
3111
|
+
var StyledTableRow2 = (0, import_joy32.styled)("tr", {
|
|
3112
|
+
name: "DataTable",
|
|
3113
|
+
slot: "tableRow",
|
|
3114
|
+
shouldForwardProp: (prop) => prop !== "striped"
|
|
3115
|
+
})(({ striped }) => ({
|
|
3116
|
+
...striped && {
|
|
3117
|
+
backgroundColor: "var(--TableRow-stripeBackground, var(--ceed-palette-background-level2))",
|
|
3118
|
+
color: "var(--ceed-palette-text-primary)",
|
|
3119
|
+
"& td": {
|
|
3120
|
+
backgroundColor: "background.surface"
|
|
3121
|
+
}
|
|
3122
|
+
},
|
|
3123
|
+
"&:hover": {
|
|
3124
|
+
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))",
|
|
3125
|
+
"& td": {
|
|
3126
|
+
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))"
|
|
3127
|
+
}
|
|
3128
|
+
}
|
|
3129
|
+
}));
|
|
3130
|
+
var VirtualizedTableRow = (0, import_react24.memo)(StyledTableRow2, (prevProps, nextProps) => {
|
|
3131
|
+
return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
|
|
3132
|
+
prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
|
|
3133
|
+
prevProps["data-index"] === nextProps["data-index"] && prevProps.tabIndex === nextProps.tabIndex && prevProps["aria-checked"] === nextProps["aria-checked"] && // Include children check to handle isCellEditable changes
|
|
3134
|
+
prevProps.children === nextProps.children;
|
|
3135
|
+
});
|
|
3136
|
+
|
|
3137
|
+
// src/components/DataTable/hooks.ts
|
|
3138
|
+
var import_react25 = require("react");
|
|
3189
3139
|
function useColumnWidths(columnsByField) {
|
|
3190
3140
|
const [widths, setWidths] = (0, import_react25.useState)({});
|
|
3191
3141
|
const roRef = (0, import_react25.useRef)();
|
|
@@ -3235,8 +3185,14 @@ function useDataTableRenderer({
|
|
|
3235
3185
|
editMode,
|
|
3236
3186
|
getId: _getId,
|
|
3237
3187
|
isTotalSelected: _isTotalSelected,
|
|
3238
|
-
isRowSelectable
|
|
3188
|
+
isRowSelectable,
|
|
3189
|
+
columnGroupingModel
|
|
3239
3190
|
}) {
|
|
3191
|
+
if (pinnedColumns && columnGroupingModel) {
|
|
3192
|
+
throw new Error(
|
|
3193
|
+
"You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
|
|
3194
|
+
);
|
|
3195
|
+
}
|
|
3240
3196
|
const onSelectionModelChangeRef = (0, import_react25.useRef)(onSelectionModelChange);
|
|
3241
3197
|
onSelectionModelChangeRef.current = onSelectionModelChange;
|
|
3242
3198
|
const [focusedRowId, setFocusedRowId] = (0, import_react25.useState)(null);
|
|
@@ -3245,18 +3201,23 @@ function useDataTableRenderer({
|
|
|
3245
3201
|
initialState?.sorting?.sortModel ?? [],
|
|
3246
3202
|
(0, import_react25.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
|
|
3247
3203
|
);
|
|
3204
|
+
const reorderedColumns = (0, import_react25.useMemo)(() => {
|
|
3205
|
+
if (!columnGroupingModel) return columnsProp;
|
|
3206
|
+
return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
|
|
3207
|
+
}, [columnsProp, columnGroupingModel]);
|
|
3248
3208
|
const columnsByField = (0, import_react25.useMemo)(
|
|
3249
|
-
() =>
|
|
3209
|
+
() => reorderedColumns.reduce(
|
|
3250
3210
|
(acc, curr) => ({
|
|
3251
3211
|
...acc,
|
|
3252
3212
|
[curr.field]: {
|
|
3253
3213
|
...curr,
|
|
3254
|
-
headerRef: import_react25.
|
|
3214
|
+
headerRef: (0, import_react25.createRef)(),
|
|
3215
|
+
tableColRef: (0, import_react25.createRef)()
|
|
3255
3216
|
}
|
|
3256
3217
|
}),
|
|
3257
3218
|
{}
|
|
3258
3219
|
),
|
|
3259
|
-
[
|
|
3220
|
+
[reorderedColumns]
|
|
3260
3221
|
);
|
|
3261
3222
|
const sortComparator = (0, import_react25.useCallback)(
|
|
3262
3223
|
(rowA, rowB) => {
|
|
@@ -3291,7 +3252,6 @@ function useDataTableRenderer({
|
|
|
3291
3252
|
[_rows, sortModel, sortComparator]
|
|
3292
3253
|
);
|
|
3293
3254
|
const sortOrder = (0, import_react25.useMemo)(
|
|
3294
|
-
// NOTE: default value를 props destructuring에서 할당하면 렌더링 시점에 초기화가 되어버린다.
|
|
3295
3255
|
() => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
|
|
3296
3256
|
[_sortOrder]
|
|
3297
3257
|
);
|
|
@@ -3301,11 +3261,7 @@ function useDataTableRenderer({
|
|
|
3301
3261
|
(row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
|
|
3302
3262
|
[_getId, page, pageSize]
|
|
3303
3263
|
);
|
|
3304
|
-
const selectedModelSet = (0, import_react25.useMemo)(
|
|
3305
|
-
// NOTE: default value를 props destructuring에서 할당하면 렌더링 시점에 초기화가 되어버린다.
|
|
3306
|
-
() => new Set(selectionModel || []),
|
|
3307
|
-
[selectionModel]
|
|
3308
|
-
);
|
|
3264
|
+
const selectedModelSet = (0, import_react25.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
|
|
3309
3265
|
const dataInPage = (0, import_react25.useMemo)(
|
|
3310
3266
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
3311
3267
|
[rows, page, pageSize, paginationMode, pagination]
|
|
@@ -3336,9 +3292,12 @@ function useDataTableRenderer({
|
|
|
3336
3292
|
columnsByField[f].minWidth ?? 0,
|
|
3337
3293
|
[columnWidths, columnsByField]
|
|
3338
3294
|
);
|
|
3295
|
+
const processedColumnGroups = (0, import_react25.useMemo)(() => {
|
|
3296
|
+
if (!columnGroupingModel) return null;
|
|
3297
|
+
return calculateColumnGroups(columnGroupingModel, reorderedColumns);
|
|
3298
|
+
}, [columnGroupingModel, reorderedColumns]);
|
|
3339
3299
|
const columns = (0, import_react25.useMemo)(() => {
|
|
3340
|
-
const baseColumns =
|
|
3341
|
-
Object.keys(rows[0] || {}).map((key) => ({
|
|
3300
|
+
const baseColumns = reorderedColumns.length > 0 ? reorderedColumns : Object.keys(rows[0] || {}).map((key) => ({
|
|
3342
3301
|
field: key
|
|
3343
3302
|
}));
|
|
3344
3303
|
return baseColumns.map((column) => {
|
|
@@ -3348,19 +3307,19 @@ function useDataTableRenderer({
|
|
|
3348
3307
|
return {
|
|
3349
3308
|
...column,
|
|
3350
3309
|
headerRef: columnsByField[column.field].headerRef,
|
|
3310
|
+
tableColRef: columnsByField[column.field].tableColRef,
|
|
3351
3311
|
isCellEditable: editMode && (typeof column.isCellEditable === "function" ? column.isCellEditable : column.isCellEditable ?? true),
|
|
3352
3312
|
sort: sortModel.find((sort) => sort.field === column.field)?.sort,
|
|
3353
3313
|
sortOrder: columnsByField[column.field]?.sortOrder || sortOrder,
|
|
3354
3314
|
isPinned,
|
|
3355
3315
|
isLastStartPinnedColumn: isLeftPinned && [...pinnedColumns?.left || []].pop() === column.field,
|
|
3356
3316
|
isLastEndPinnedColumn: isRightPinned && (pinnedColumns?.right?.[0] ?? null) === column.field,
|
|
3357
|
-
// pinned 관련 계산부
|
|
3358
3317
|
pinnedStartPosition: pinnedColumns?.left?.slice(0, isLeftPinned ? pinnedColumns.left.indexOf(column.field) : pinnedColumns.left.length).reduce((acc, curr) => acc + getWidth(curr), 0),
|
|
3359
3318
|
pinnedEndPosition: pinnedColumns?.right?.slice(isRightPinned ? pinnedColumns.right.indexOf(column.field) + 1 : 0).reduce((acc, curr) => acc + getWidth(curr), 0)
|
|
3360
3319
|
};
|
|
3361
3320
|
});
|
|
3362
3321
|
}, [
|
|
3363
|
-
|
|
3322
|
+
reorderedColumns,
|
|
3364
3323
|
rows,
|
|
3365
3324
|
pinnedColumns?.left,
|
|
3366
3325
|
pinnedColumns?.right,
|
|
@@ -3426,7 +3385,6 @@ function useDataTableRenderer({
|
|
|
3426
3385
|
dataInPage,
|
|
3427
3386
|
handleSortChange,
|
|
3428
3387
|
isAllSelected,
|
|
3429
|
-
// all rows are selected on this page
|
|
3430
3388
|
isTotalSelected,
|
|
3431
3389
|
isSelectedRow: (0, import_react25.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
|
|
3432
3390
|
isRowSelectable: (0, import_react25.useCallback)(
|
|
@@ -3453,18 +3411,229 @@ function useDataTableRenderer({
|
|
|
3453
3411
|
onSelectionModelChange?.(newSelectionModel);
|
|
3454
3412
|
}
|
|
3455
3413
|
},
|
|
3456
|
-
[selectionModel, onSelectionModelChange, selectedModelSet]
|
|
3457
|
-
),
|
|
3458
|
-
columns,
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3414
|
+
[selectionModel, onSelectionModelChange, selectedModelSet]
|
|
3415
|
+
),
|
|
3416
|
+
columns,
|
|
3417
|
+
processedColumnGroups,
|
|
3418
|
+
onTotalSelect: (0, import_react25.useCallback)(() => {
|
|
3419
|
+
const selectableRows = rows.filter((row, i) => {
|
|
3420
|
+
if (!isRowSelectable) return true;
|
|
3421
|
+
return isRowSelectable({ row, id: getId(row, i) });
|
|
3422
|
+
});
|
|
3423
|
+
onSelectionModelChange?.(isTotalSelected ? [] : selectableRows.map(getId), !isTotalSelected);
|
|
3424
|
+
}, [isTotalSelected, rows, onSelectionModelChange, getId, isRowSelectable])
|
|
3425
|
+
};
|
|
3426
|
+
}
|
|
3427
|
+
|
|
3428
|
+
// src/components/Table/Table.tsx
|
|
3429
|
+
var import_react26 = __toESM(require("react"));
|
|
3430
|
+
var import_joy34 = require("@mui/joy");
|
|
3431
|
+
var Table = (props) => {
|
|
3432
|
+
const { children, ...inheritProps } = props;
|
|
3433
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_joy34.Table, { ...inheritProps }, children);
|
|
3434
|
+
};
|
|
3435
|
+
Table.displayName = "Table";
|
|
3436
|
+
function TableHead(props) {
|
|
3437
|
+
const {
|
|
3438
|
+
headCells,
|
|
3439
|
+
showCheckbox,
|
|
3440
|
+
onCheckboxChange,
|
|
3441
|
+
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
3442
|
+
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
3443
|
+
} = props;
|
|
3444
|
+
return /* @__PURE__ */ import_react26.default.createElement("thead", null, /* @__PURE__ */ import_react26.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react26.default.createElement(
|
|
3445
|
+
"th",
|
|
3446
|
+
{
|
|
3447
|
+
style: {
|
|
3448
|
+
width: "40px",
|
|
3449
|
+
textAlign: "center"
|
|
3450
|
+
}
|
|
3451
|
+
},
|
|
3452
|
+
/* @__PURE__ */ import_react26.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
|
|
3453
|
+
), headCells.map((headCell) => /* @__PURE__ */ import_react26.default.createElement(
|
|
3454
|
+
"th",
|
|
3455
|
+
{
|
|
3456
|
+
key: headCell.label,
|
|
3457
|
+
style: {
|
|
3458
|
+
width: headCell.width,
|
|
3459
|
+
minWidth: headCell.minWidth,
|
|
3460
|
+
maxWidth: headCell.maxWidth,
|
|
3461
|
+
textAlign: headCell.numeric ? "right" : "left"
|
|
3462
|
+
}
|
|
3463
|
+
},
|
|
3464
|
+
headCell.label
|
|
3465
|
+
))));
|
|
3466
|
+
}
|
|
3467
|
+
TableHead.displayName = "TableHead";
|
|
3468
|
+
function TableBody(props) {
|
|
3469
|
+
const {
|
|
3470
|
+
rows,
|
|
3471
|
+
cellOrder,
|
|
3472
|
+
rowOptions,
|
|
3473
|
+
showCheckbox,
|
|
3474
|
+
onCheckboxChange,
|
|
3475
|
+
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
3476
|
+
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
3477
|
+
} = props;
|
|
3478
|
+
return /* @__PURE__ */ import_react26.default.createElement("tbody", null, rows.map((row, rowIndex) => /* @__PURE__ */ import_react26.default.createElement("tr", { key: `table-row-${rowIndex}` }, showCheckbox && /* @__PURE__ */ import_react26.default.createElement(
|
|
3479
|
+
"td",
|
|
3480
|
+
{
|
|
3481
|
+
style: {
|
|
3482
|
+
textAlign: "center"
|
|
3483
|
+
}
|
|
3484
|
+
},
|
|
3485
|
+
/* @__PURE__ */ import_react26.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
|
|
3486
|
+
), cellOrder.map((cellKey) => /* @__PURE__ */ import_react26.default.createElement(
|
|
3487
|
+
"td",
|
|
3488
|
+
{
|
|
3489
|
+
key: cellKey,
|
|
3490
|
+
style: {
|
|
3491
|
+
textAlign: rowOptions?.[cellKey]?.numeric ? "right" : "left"
|
|
3492
|
+
}
|
|
3493
|
+
},
|
|
3494
|
+
row[cellKey]
|
|
3495
|
+
)))));
|
|
3496
|
+
}
|
|
3497
|
+
TableBody.displayName = "TableBody";
|
|
3498
|
+
|
|
3499
|
+
// src/components/Pagination/Pagination.tsx
|
|
3500
|
+
var import_react27 = __toESM(require("react"));
|
|
3501
|
+
var import_ChevronLeft2 = __toESM(require("@mui/icons-material/ChevronLeft"));
|
|
3502
|
+
var import_ChevronRight2 = __toESM(require("@mui/icons-material/ChevronRight"));
|
|
3503
|
+
var import_joy35 = require("@mui/joy");
|
|
3504
|
+
var PaginationButton = (0, import_joy35.styled)(Button_default, {
|
|
3505
|
+
name: "Pagination",
|
|
3506
|
+
slot: "button"
|
|
3507
|
+
})(({ theme, active, size }) => ({
|
|
3508
|
+
"--Button-size": {
|
|
3509
|
+
sm: "32px",
|
|
3510
|
+
md: "40px",
|
|
3511
|
+
lg: "48px"
|
|
3512
|
+
}[size],
|
|
3513
|
+
width: "var(--Button-size)",
|
|
3514
|
+
height: "var(--Button-size)",
|
|
3515
|
+
backgroundColor: active ? theme.vars.palette.primary.softHoverBg : "transparent",
|
|
3516
|
+
color: active ? theme.vars.palette.primary.softColor : theme.vars.palette.neutral.plainColor,
|
|
3517
|
+
"&:hover": {
|
|
3518
|
+
color: active ? theme.vars.palette.primary.softColor : theme.vars.palette.neutral.softColor,
|
|
3519
|
+
backgroundColor: active ? theme.vars.palette.primary.softActiveBg : theme.vars.palette.neutral.softHoverBg
|
|
3520
|
+
}
|
|
3521
|
+
}));
|
|
3522
|
+
var PaginationIconButton = (0, import_joy35.styled)(IconButton_default, {
|
|
3523
|
+
name: "Pagination",
|
|
3524
|
+
slot: "button"
|
|
3525
|
+
})(({ theme, size }) => ({
|
|
3526
|
+
"--IconButton-size": {
|
|
3527
|
+
sm: "32px",
|
|
3528
|
+
md: "40px",
|
|
3529
|
+
lg: "48px"
|
|
3530
|
+
}[size],
|
|
3531
|
+
"--Icon-fontSize": "20px",
|
|
3532
|
+
width: "var(--IconButton-size)",
|
|
3533
|
+
height: "var(--IconButton-size)",
|
|
3534
|
+
color: theme.vars.palette.neutral.plainColor,
|
|
3535
|
+
"&:hover": {
|
|
3536
|
+
color: theme.vars.palette.neutral.softColor,
|
|
3537
|
+
backgroundColor: theme.vars.palette.neutral.softHoverBg
|
|
3538
|
+
}
|
|
3539
|
+
}));
|
|
3540
|
+
var PaginationRoot = (0, import_joy35.styled)(Stack_default, {
|
|
3541
|
+
name: "Pagination",
|
|
3542
|
+
slot: "root"
|
|
3543
|
+
})({});
|
|
3544
|
+
var PaginationContainer = (0, import_joy35.styled)(Stack_default, {
|
|
3545
|
+
name: "Pagination",
|
|
3546
|
+
slot: "container"
|
|
3547
|
+
})(({ theme, size }) => ({
|
|
3548
|
+
gap: {
|
|
3549
|
+
sm: theme.spacing(1),
|
|
3550
|
+
md: theme.spacing(1.5),
|
|
3551
|
+
lg: theme.spacing(2)
|
|
3552
|
+
}[size]
|
|
3553
|
+
}));
|
|
3554
|
+
function Pagination(props) {
|
|
3555
|
+
const {
|
|
3556
|
+
paginationModel: _paginationModel,
|
|
3557
|
+
defaultPaginationModel = { page: 1, pageSize: 25 },
|
|
3558
|
+
onPageChange,
|
|
3559
|
+
rowCount,
|
|
3560
|
+
size = "md",
|
|
3561
|
+
...innerProps
|
|
3562
|
+
} = props;
|
|
3563
|
+
const [paginationModel, setPaginationModel] = useControlledState(
|
|
3564
|
+
_paginationModel,
|
|
3565
|
+
defaultPaginationModel,
|
|
3566
|
+
(0, import_react27.useCallback)(
|
|
3567
|
+
(newPage) => {
|
|
3568
|
+
onPageChange(newPage.page);
|
|
3569
|
+
},
|
|
3570
|
+
[onPageChange]
|
|
3571
|
+
)
|
|
3572
|
+
);
|
|
3573
|
+
const handlePageChange = (newPage) => {
|
|
3574
|
+
setPaginationModel({ ...paginationModel, page: newPage });
|
|
3466
3575
|
};
|
|
3576
|
+
const firstPage = 1;
|
|
3577
|
+
const lastPage = Math.max(firstPage, Math.ceil(rowCount / paginationModel.pageSize));
|
|
3578
|
+
const beforePages = [paginationModel.page - 2, paginationModel.page - 1].filter((p) => p > 1);
|
|
3579
|
+
const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
|
|
3580
|
+
const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
|
|
3581
|
+
const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
|
|
3582
|
+
(0, import_react27.useEffect)(() => {
|
|
3583
|
+
if (paginationModel.page > lastPage) {
|
|
3584
|
+
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
3585
|
+
}
|
|
3586
|
+
}, [rowCount, paginationModel, lastPage, setPaginationModel]);
|
|
3587
|
+
return /* @__PURE__ */ import_react27.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react27.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react27.default.createElement(
|
|
3588
|
+
PaginationIconButton,
|
|
3589
|
+
{
|
|
3590
|
+
size,
|
|
3591
|
+
variant: "plain",
|
|
3592
|
+
color: "neutral",
|
|
3593
|
+
onClick: () => handlePageChange(paginationModel.page - 1),
|
|
3594
|
+
disabled: paginationModel.page === firstPage,
|
|
3595
|
+
"aria-label": "Previous page"
|
|
3596
|
+
},
|
|
3597
|
+
/* @__PURE__ */ import_react27.default.createElement(import_ChevronLeft2.default, null)
|
|
3598
|
+
), paginationModel.page !== firstPage && /* @__PURE__ */ import_react27.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ import_react27.default.createElement(
|
|
3599
|
+
PaginationButton,
|
|
3600
|
+
{
|
|
3601
|
+
size,
|
|
3602
|
+
variant: "plain",
|
|
3603
|
+
color: "neutral",
|
|
3604
|
+
onClick: () => handlePageChange(paginationModel.page - 3),
|
|
3605
|
+
"aria-label": "More previous pages"
|
|
3606
|
+
},
|
|
3607
|
+
"..."
|
|
3608
|
+
), beforePages.map((p) => /* @__PURE__ */ import_react27.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ import_react27.default.createElement(PaginationButton, { active: "true", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ import_react27.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ import_react27.default.createElement(
|
|
3609
|
+
PaginationButton,
|
|
3610
|
+
{
|
|
3611
|
+
size,
|
|
3612
|
+
variant: "plain",
|
|
3613
|
+
color: "neutral",
|
|
3614
|
+
"aria-label": "More next pages",
|
|
3615
|
+
onClick: () => handlePageChange(paginationModel.page + 3)
|
|
3616
|
+
},
|
|
3617
|
+
"..."
|
|
3618
|
+
), paginationModel.page !== lastPage && /* @__PURE__ */ import_react27.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react27.default.createElement(
|
|
3619
|
+
PaginationIconButton,
|
|
3620
|
+
{
|
|
3621
|
+
size,
|
|
3622
|
+
variant: "plain",
|
|
3623
|
+
color: "neutral",
|
|
3624
|
+
onClick: () => handlePageChange(paginationModel.page + 1),
|
|
3625
|
+
disabled: paginationModel.page === lastPage,
|
|
3626
|
+
"aria-label": "Next page"
|
|
3627
|
+
},
|
|
3628
|
+
/* @__PURE__ */ import_react27.default.createElement(import_ChevronRight2.default, null)
|
|
3629
|
+
)));
|
|
3467
3630
|
}
|
|
3631
|
+
Pagination.displayName = "Pagination";
|
|
3632
|
+
|
|
3633
|
+
// src/components/Pagination/index.ts
|
|
3634
|
+
var Pagination_default = Pagination;
|
|
3635
|
+
|
|
3636
|
+
// src/components/DataTable/DataTable.tsx
|
|
3468
3637
|
function Component(props, apiRef) {
|
|
3469
3638
|
const {
|
|
3470
3639
|
rows,
|
|
@@ -3498,6 +3667,8 @@ function Component(props, apiRef) {
|
|
|
3498
3667
|
getId: ____________,
|
|
3499
3668
|
// getId is used in useDataTableRenderer
|
|
3500
3669
|
loading,
|
|
3670
|
+
columnGroupingModel: _________________,
|
|
3671
|
+
// columnGroupingModel is used in useDataTableRenderer
|
|
3501
3672
|
slots: {
|
|
3502
3673
|
checkbox: RenderCheckbox = Checkbox_default,
|
|
3503
3674
|
toolbar: Toolbar,
|
|
@@ -3509,11 +3680,12 @@ function Component(props, apiRef) {
|
|
|
3509
3680
|
isTotalSelected: ___________,
|
|
3510
3681
|
...innerProps
|
|
3511
3682
|
} = props;
|
|
3512
|
-
const tableId = (0,
|
|
3513
|
-
const parentRef = (0,
|
|
3514
|
-
const tableBodyRef = (0,
|
|
3683
|
+
const tableId = (0, import_react28.useId)();
|
|
3684
|
+
const parentRef = (0, import_react28.useRef)(null);
|
|
3685
|
+
const tableBodyRef = (0, import_react28.useRef)(null);
|
|
3515
3686
|
const {
|
|
3516
3687
|
columns,
|
|
3688
|
+
processedColumnGroups,
|
|
3517
3689
|
isAllSelected,
|
|
3518
3690
|
isSelectedRow,
|
|
3519
3691
|
isRowSelectable: isRowSelectableCheck,
|
|
@@ -3541,29 +3713,29 @@ function Component(props, apiRef) {
|
|
|
3541
3713
|
measureElement: (element) => element.clientHeight,
|
|
3542
3714
|
overscan: 10
|
|
3543
3715
|
});
|
|
3544
|
-
const paginationModel = (0,
|
|
3716
|
+
const paginationModel = (0, import_react28.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
|
|
3545
3717
|
const totalSize = virtualizer.getTotalSize();
|
|
3546
3718
|
const virtualizedItems = virtualizer.getVirtualItems();
|
|
3547
|
-
const getRowClickHandler = (0,
|
|
3719
|
+
const getRowClickHandler = (0, import_react28.useCallback)(
|
|
3548
3720
|
(row, rowId) => (e) => {
|
|
3549
3721
|
onRowClick?.({ row, rowId }, e);
|
|
3550
3722
|
checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
|
|
3551
3723
|
},
|
|
3552
3724
|
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
|
|
3553
3725
|
);
|
|
3554
|
-
const getRowFocusHandler = (0,
|
|
3726
|
+
const getRowFocusHandler = (0, import_react28.useCallback)(
|
|
3555
3727
|
(rowId) => () => {
|
|
3556
3728
|
onRowFocus(rowId);
|
|
3557
3729
|
},
|
|
3558
3730
|
[onRowFocus]
|
|
3559
3731
|
);
|
|
3560
|
-
const getCheckboxClickHandler = (0,
|
|
3732
|
+
const getCheckboxClickHandler = (0, import_react28.useCallback)(
|
|
3561
3733
|
() => (e) => {
|
|
3562
3734
|
e.stopPropagation();
|
|
3563
3735
|
},
|
|
3564
3736
|
[]
|
|
3565
3737
|
);
|
|
3566
|
-
const getCheckboxChangeHandler = (0,
|
|
3738
|
+
const getCheckboxChangeHandler = (0, import_react28.useCallback)(
|
|
3567
3739
|
(rowId, row) => (e) => {
|
|
3568
3740
|
if (isRowSelectableCheck(rowId, row)) {
|
|
3569
3741
|
onCheckboxChange(e, rowId);
|
|
@@ -3571,7 +3743,7 @@ function Component(props, apiRef) {
|
|
|
3571
3743
|
},
|
|
3572
3744
|
[onCheckboxChange, isRowSelectableCheck]
|
|
3573
3745
|
);
|
|
3574
|
-
(0,
|
|
3746
|
+
(0, import_react28.useImperativeHandle)(apiRef, () => ({
|
|
3575
3747
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
3576
3748
|
return dataInPage.findIndex((row) => String(getId(row)) === rowId);
|
|
3577
3749
|
},
|
|
@@ -3587,7 +3759,7 @@ function Component(props, apiRef) {
|
|
|
3587
3759
|
});
|
|
3588
3760
|
}
|
|
3589
3761
|
}));
|
|
3590
|
-
return /* @__PURE__ */
|
|
3762
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
3591
3763
|
Box_default,
|
|
3592
3764
|
{
|
|
3593
3765
|
sx: {
|
|
@@ -3597,7 +3769,7 @@ function Component(props, apiRef) {
|
|
|
3597
3769
|
flexDirection: "column"
|
|
3598
3770
|
}
|
|
3599
3771
|
},
|
|
3600
|
-
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */
|
|
3772
|
+
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react28.default.createElement(
|
|
3601
3773
|
Stack_default,
|
|
3602
3774
|
{
|
|
3603
3775
|
direction: "row",
|
|
@@ -3607,10 +3779,10 @@ function Component(props, apiRef) {
|
|
|
3607
3779
|
justifyContent: "space-between",
|
|
3608
3780
|
alignItems: "center"
|
|
3609
3781
|
},
|
|
3610
|
-
!!checkboxSelection && /* @__PURE__ */
|
|
3611
|
-
Toolbar && /* @__PURE__ */
|
|
3782
|
+
!!checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ import_react28.default.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react28.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ import_react28.default.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(selectableRowCount), " items")), isTotalSelected && /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react28.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectableRowCount), " items are selected."), /* @__PURE__ */ import_react28.default.createElement(Button_default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))),
|
|
3783
|
+
Toolbar && /* @__PURE__ */ import_react28.default.createElement(Toolbar, { ...toolbarProps || {} })
|
|
3612
3784
|
),
|
|
3613
|
-
/* @__PURE__ */
|
|
3785
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3614
3786
|
Sheet_default,
|
|
3615
3787
|
{
|
|
3616
3788
|
variant: "outlined",
|
|
@@ -3621,7 +3793,8 @@ function Component(props, apiRef) {
|
|
|
3621
3793
|
boxShadow: "sm",
|
|
3622
3794
|
borderRadius: "sm",
|
|
3623
3795
|
"--DataTableSheet-width": parentRef.current?.clientWidth + "px",
|
|
3624
|
-
backgroundColor: "white"
|
|
3796
|
+
backgroundColor: "white",
|
|
3797
|
+
"--TableCell-cornerRadius": "0px"
|
|
3625
3798
|
},
|
|
3626
3799
|
className: [
|
|
3627
3800
|
...(parentRef.current?.scrollLeft || 0) > 0 ? ["ScrollableRight"] : [],
|
|
@@ -3630,15 +3803,33 @@ function Component(props, apiRef) {
|
|
|
3630
3803
|
ref: parentRef,
|
|
3631
3804
|
...backgroundProps
|
|
3632
3805
|
},
|
|
3633
|
-
/* @__PURE__ */
|
|
3806
|
+
/* @__PURE__ */ import_react28.default.createElement(Table, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(
|
|
3807
|
+
"col",
|
|
3808
|
+
{
|
|
3809
|
+
style: {
|
|
3810
|
+
width: "40px"
|
|
3811
|
+
}
|
|
3812
|
+
}
|
|
3813
|
+
), columns.map((c) => /* @__PURE__ */ import_react28.default.createElement(
|
|
3814
|
+
"col",
|
|
3815
|
+
{
|
|
3816
|
+
ref: c.tableColRef,
|
|
3817
|
+
key: `${c.field.toString()}_${c.width}`,
|
|
3818
|
+
style: {
|
|
3819
|
+
width: c.width
|
|
3820
|
+
}
|
|
3821
|
+
}
|
|
3822
|
+
))), /* @__PURE__ */ import_react28.default.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ import_react28.default.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ import_react28.default.createElement(
|
|
3634
3823
|
"th",
|
|
3635
3824
|
{
|
|
3825
|
+
rowSpan: processedColumnGroups.maxLevel + 2,
|
|
3636
3826
|
style: {
|
|
3637
3827
|
width: "40px",
|
|
3638
|
-
textAlign: "center"
|
|
3828
|
+
textAlign: "center",
|
|
3829
|
+
verticalAlign: "middle"
|
|
3639
3830
|
}
|
|
3640
3831
|
},
|
|
3641
|
-
/* @__PURE__ */
|
|
3832
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3642
3833
|
RenderCheckbox,
|
|
3643
3834
|
{
|
|
3644
3835
|
onChange: onAllCheckboxChange,
|
|
@@ -3648,17 +3839,56 @@ function Component(props, apiRef) {
|
|
|
3648
3839
|
...checkboxProps
|
|
3649
3840
|
}
|
|
3650
3841
|
)
|
|
3651
|
-
),
|
|
3652
|
-
|
|
3842
|
+
), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */ import_react28.default.createElement("th", { key: `empty-${level}-${i}` })), levelGroups.map((group, groupIndex) => {
|
|
3843
|
+
const nextGroup = levelGroups[groupIndex + 1];
|
|
3844
|
+
const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
|
|
3845
|
+
const params = { groupId: group.groupId };
|
|
3846
|
+
const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
|
|
3847
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react28.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react28.default.createElement(
|
|
3848
|
+
"th",
|
|
3849
|
+
{
|
|
3850
|
+
colSpan: group.colspan,
|
|
3851
|
+
style: {
|
|
3852
|
+
textAlign: "center",
|
|
3853
|
+
fontWeight: "bold",
|
|
3854
|
+
verticalAlign: "middle"
|
|
3855
|
+
},
|
|
3856
|
+
className: computedHeaderClassName
|
|
3857
|
+
},
|
|
3858
|
+
group.headerName ?? group.groupId
|
|
3859
|
+
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react28.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
|
|
3860
|
+
}))), /* @__PURE__ */ import_react28.default.createElement("tr", null, !processedColumnGroups && checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(
|
|
3861
|
+
"th",
|
|
3653
3862
|
{
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3863
|
+
style: {
|
|
3864
|
+
width: "40px",
|
|
3865
|
+
textAlign: "center"
|
|
3866
|
+
}
|
|
3867
|
+
},
|
|
3868
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3869
|
+
RenderCheckbox,
|
|
3870
|
+
{
|
|
3871
|
+
onChange: onAllCheckboxChange,
|
|
3872
|
+
checked: isAllSelected,
|
|
3873
|
+
indeterminate: (selectionModel || []).length > 0 && !isAllSelected,
|
|
3874
|
+
disabled: dataInPage.length > 0 && !selectableRowCount,
|
|
3875
|
+
...checkboxProps
|
|
3876
|
+
}
|
|
3877
|
+
)
|
|
3878
|
+
), columns.map((c, i) => (
|
|
3879
|
+
// @ts-ignore
|
|
3880
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3881
|
+
HeadCell2,
|
|
3882
|
+
{
|
|
3883
|
+
tableId,
|
|
3884
|
+
key: `${c.field.toString()}_${i}`,
|
|
3885
|
+
stickyHeader: props.stickyHeader,
|
|
3886
|
+
editMode: !!c.isCellEditable,
|
|
3887
|
+
onSortChange: handleSortChange,
|
|
3888
|
+
...c
|
|
3889
|
+
}
|
|
3890
|
+
)
|
|
3891
|
+
)))), /* @__PURE__ */ import_react28.default.createElement(
|
|
3662
3892
|
VirtualizedTableBody,
|
|
3663
3893
|
{
|
|
3664
3894
|
ref: tableBodyRef,
|
|
@@ -3668,7 +3898,7 @@ function Component(props, apiRef) {
|
|
|
3668
3898
|
role: "rowgroup",
|
|
3669
3899
|
"aria-label": "DataTableBody"
|
|
3670
3900
|
},
|
|
3671
|
-
!!loading && /* @__PURE__ */
|
|
3901
|
+
!!loading && /* @__PURE__ */ import_react28.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react28.default.createElement(
|
|
3672
3902
|
"td",
|
|
3673
3903
|
{
|
|
3674
3904
|
style: {
|
|
@@ -3677,7 +3907,7 @@ function Component(props, apiRef) {
|
|
|
3677
3907
|
overflow: "visible"
|
|
3678
3908
|
}
|
|
3679
3909
|
},
|
|
3680
|
-
/* @__PURE__ */
|
|
3910
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3681
3911
|
Box_default,
|
|
3682
3912
|
{
|
|
3683
3913
|
sx: {
|
|
@@ -3687,7 +3917,7 @@ function Component(props, apiRef) {
|
|
|
3687
3917
|
right: 0
|
|
3688
3918
|
}
|
|
3689
3919
|
},
|
|
3690
|
-
/* @__PURE__ */
|
|
3920
|
+
/* @__PURE__ */ import_react28.default.createElement(LoadingOverlay, null)
|
|
3691
3921
|
)
|
|
3692
3922
|
)),
|
|
3693
3923
|
virtualizedItems.map((virtualizedRow, index) => {
|
|
@@ -3695,7 +3925,7 @@ function Component(props, apiRef) {
|
|
|
3695
3925
|
const row = dataInPage[rowIndex];
|
|
3696
3926
|
const rowId = getId(row, rowIndex);
|
|
3697
3927
|
const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
|
|
3698
|
-
return /* @__PURE__ */
|
|
3928
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
3699
3929
|
VirtualizedTableRow,
|
|
3700
3930
|
{
|
|
3701
3931
|
key: virtualizedRow.key,
|
|
@@ -3713,7 +3943,7 @@ function Component(props, apiRef) {
|
|
|
3713
3943
|
transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
|
|
3714
3944
|
}
|
|
3715
3945
|
},
|
|
3716
|
-
checkboxSelection && /* @__PURE__ */
|
|
3946
|
+
checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(
|
|
3717
3947
|
"th",
|
|
3718
3948
|
{
|
|
3719
3949
|
scope: "row",
|
|
@@ -3721,7 +3951,7 @@ function Component(props, apiRef) {
|
|
|
3721
3951
|
textAlign: "center"
|
|
3722
3952
|
}
|
|
3723
3953
|
},
|
|
3724
|
-
/* @__PURE__ */
|
|
3954
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3725
3955
|
RenderCheckbox,
|
|
3726
3956
|
{
|
|
3727
3957
|
onClick: getCheckboxClickHandler(),
|
|
@@ -3732,7 +3962,7 @@ function Component(props, apiRef) {
|
|
|
3732
3962
|
}
|
|
3733
3963
|
)
|
|
3734
3964
|
),
|
|
3735
|
-
/* @__PURE__ */
|
|
3965
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3736
3966
|
BodyRow2,
|
|
3737
3967
|
{
|
|
3738
3968
|
tableId,
|
|
@@ -3745,9 +3975,9 @@ function Component(props, apiRef) {
|
|
|
3745
3975
|
)
|
|
3746
3976
|
);
|
|
3747
3977
|
})
|
|
3748
|
-
), Footer && /* @__PURE__ */
|
|
3978
|
+
), Footer && /* @__PURE__ */ import_react28.default.createElement(Footer, null))
|
|
3749
3979
|
),
|
|
3750
|
-
pagination && /* @__PURE__ */
|
|
3980
|
+
pagination && /* @__PURE__ */ import_react28.default.createElement(
|
|
3751
3981
|
Pagination_default,
|
|
3752
3982
|
{
|
|
3753
3983
|
pt: 2,
|
|
@@ -3760,16 +3990,16 @@ function Component(props, apiRef) {
|
|
|
3760
3990
|
)
|
|
3761
3991
|
);
|
|
3762
3992
|
}
|
|
3763
|
-
var DataTable = (0,
|
|
3993
|
+
var DataTable = (0, import_react28.forwardRef)(Component);
|
|
3764
3994
|
DataTable.displayName = "DataTable";
|
|
3765
3995
|
|
|
3766
3996
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
3767
|
-
var
|
|
3997
|
+
var import_react29 = __toESM(require("react"));
|
|
3768
3998
|
var import_react_imask2 = require("react-imask");
|
|
3769
3999
|
var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
3770
|
-
var
|
|
4000
|
+
var import_joy36 = require("@mui/joy");
|
|
3771
4001
|
var import_base3 = require("@mui/base");
|
|
3772
|
-
var CalendarButton2 = (0,
|
|
4002
|
+
var CalendarButton2 = (0, import_joy36.styled)(IconButton_default, {
|
|
3773
4003
|
name: "DateRangePicker",
|
|
3774
4004
|
slot: "calendarButton"
|
|
3775
4005
|
})(({ theme }) => ({
|
|
@@ -3779,13 +4009,13 @@ var CalendarButton2 = (0, import_joy34.styled)(IconButton_default, {
|
|
|
3779
4009
|
outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
|
|
3780
4010
|
}
|
|
3781
4011
|
}));
|
|
3782
|
-
var StyledPopper2 = (0,
|
|
4012
|
+
var StyledPopper2 = (0, import_joy36.styled)(import_base3.Popper, {
|
|
3783
4013
|
name: "DateRangePicker",
|
|
3784
4014
|
slot: "popper"
|
|
3785
4015
|
})(({ theme }) => ({
|
|
3786
4016
|
zIndex: theme.zIndex.tooltip
|
|
3787
4017
|
}));
|
|
3788
|
-
var CalendarSheet2 = (0,
|
|
4018
|
+
var CalendarSheet2 = (0, import_joy36.styled)(Sheet_default, {
|
|
3789
4019
|
name: "DateRangePicker",
|
|
3790
4020
|
slot: "sheet",
|
|
3791
4021
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -3795,7 +4025,7 @@ var CalendarSheet2 = (0, import_joy34.styled)(Sheet_default, {
|
|
|
3795
4025
|
boxShadow: theme.shadow.md,
|
|
3796
4026
|
borderRadius: theme.radius.md
|
|
3797
4027
|
}));
|
|
3798
|
-
var DateRangePickerRoot = (0,
|
|
4028
|
+
var DateRangePickerRoot = (0, import_joy36.styled)("div", {
|
|
3799
4029
|
name: "DateRangePicker",
|
|
3800
4030
|
slot: "root",
|
|
3801
4031
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -3865,9 +4095,9 @@ var parseDates = (str, format) => {
|
|
|
3865
4095
|
var formatToPattern2 = (format) => {
|
|
3866
4096
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
3867
4097
|
};
|
|
3868
|
-
var TextMaskAdapter5 =
|
|
4098
|
+
var TextMaskAdapter5 = import_react29.default.forwardRef(function TextMaskAdapter6(props, ref) {
|
|
3869
4099
|
const { onChange, format, ...other } = props;
|
|
3870
|
-
return /* @__PURE__ */
|
|
4100
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
3871
4101
|
import_react_imask2.IMaskInput,
|
|
3872
4102
|
{
|
|
3873
4103
|
...other,
|
|
@@ -3901,8 +4131,8 @@ var TextMaskAdapter5 = import_react26.default.forwardRef(function TextMaskAdapte
|
|
|
3901
4131
|
}
|
|
3902
4132
|
);
|
|
3903
4133
|
});
|
|
3904
|
-
var DateRangePicker = (0,
|
|
3905
|
-
const props = (0,
|
|
4134
|
+
var DateRangePicker = (0, import_react29.forwardRef)((inProps, ref) => {
|
|
4135
|
+
const props = (0, import_joy36.useThemeProps)({ props: inProps, name: "DateRangePicker" });
|
|
3906
4136
|
const {
|
|
3907
4137
|
onChange,
|
|
3908
4138
|
disabled,
|
|
@@ -3925,23 +4155,23 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
3925
4155
|
readOnly,
|
|
3926
4156
|
...innerProps
|
|
3927
4157
|
} = props;
|
|
3928
|
-
const innerRef = (0,
|
|
3929
|
-
const buttonRef = (0,
|
|
4158
|
+
const innerRef = (0, import_react29.useRef)(null);
|
|
4159
|
+
const buttonRef = (0, import_react29.useRef)(null);
|
|
3930
4160
|
const [value, setValue] = useControlledState(
|
|
3931
4161
|
props.value,
|
|
3932
4162
|
props.defaultValue || "",
|
|
3933
|
-
(0,
|
|
4163
|
+
(0, import_react29.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
3934
4164
|
);
|
|
3935
|
-
const [displayValue, setDisplayValue] = (0,
|
|
4165
|
+
const [displayValue, setDisplayValue] = (0, import_react29.useState)(
|
|
3936
4166
|
() => value ? formatValueString2(parseDates(value, format), displayFormat) : ""
|
|
3937
4167
|
);
|
|
3938
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
4168
|
+
const [anchorEl, setAnchorEl] = (0, import_react29.useState)(null);
|
|
3939
4169
|
const open = Boolean(anchorEl);
|
|
3940
|
-
const calendarValue = (0,
|
|
4170
|
+
const calendarValue = (0, import_react29.useMemo)(
|
|
3941
4171
|
() => value ? parseDates(value, format) : void 0,
|
|
3942
4172
|
[value, format]
|
|
3943
4173
|
);
|
|
3944
|
-
(0,
|
|
4174
|
+
(0, import_react29.useEffect)(() => {
|
|
3945
4175
|
if (value) {
|
|
3946
4176
|
try {
|
|
3947
4177
|
const dates = parseDates(value, format);
|
|
@@ -3953,13 +4183,13 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
3953
4183
|
setDisplayValue("");
|
|
3954
4184
|
}
|
|
3955
4185
|
}, [displayFormat, value, format]);
|
|
3956
|
-
(0,
|
|
4186
|
+
(0, import_react29.useEffect)(() => {
|
|
3957
4187
|
if (!anchorEl) {
|
|
3958
4188
|
innerRef.current?.blur();
|
|
3959
4189
|
}
|
|
3960
4190
|
}, [anchorEl, innerRef]);
|
|
3961
|
-
(0,
|
|
3962
|
-
const handleChange = (0,
|
|
4191
|
+
(0, import_react29.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
4192
|
+
const handleChange = (0, import_react29.useCallback)(
|
|
3963
4193
|
(event) => {
|
|
3964
4194
|
const value2 = event.target.value;
|
|
3965
4195
|
setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat) : value2);
|
|
@@ -3967,7 +4197,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
3967
4197
|
},
|
|
3968
4198
|
[displayFormat, format, setValue]
|
|
3969
4199
|
);
|
|
3970
|
-
const handleDisplayInputChange = (0,
|
|
4200
|
+
const handleDisplayInputChange = (0, import_react29.useCallback)(
|
|
3971
4201
|
(event) => {
|
|
3972
4202
|
if (event.target.value === "") {
|
|
3973
4203
|
handleChange({
|
|
@@ -3992,14 +4222,14 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
3992
4222
|
},
|
|
3993
4223
|
[displayFormat, format, handleChange, props.name]
|
|
3994
4224
|
);
|
|
3995
|
-
const handleCalendarToggle = (0,
|
|
4225
|
+
const handleCalendarToggle = (0, import_react29.useCallback)(
|
|
3996
4226
|
(event) => {
|
|
3997
4227
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
3998
4228
|
innerRef.current?.focus();
|
|
3999
4229
|
},
|
|
4000
4230
|
[anchorEl, setAnchorEl, innerRef]
|
|
4001
4231
|
);
|
|
4002
|
-
const handleCalendarChange = (0,
|
|
4232
|
+
const handleCalendarChange = (0, import_react29.useCallback)(
|
|
4003
4233
|
([date1, date2]) => {
|
|
4004
4234
|
if (!date1 || !date2) return;
|
|
4005
4235
|
const formattedValue = formatValueString2([date1, date2], format);
|
|
@@ -4013,7 +4243,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4013
4243
|
},
|
|
4014
4244
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat]
|
|
4015
4245
|
);
|
|
4016
|
-
const handleInputMouseDown = (0,
|
|
4246
|
+
const handleInputMouseDown = (0, import_react29.useCallback)(
|
|
4017
4247
|
(event) => {
|
|
4018
4248
|
if (inputReadOnly) {
|
|
4019
4249
|
event.preventDefault();
|
|
@@ -4022,7 +4252,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4022
4252
|
},
|
|
4023
4253
|
[inputReadOnly, buttonRef]
|
|
4024
4254
|
);
|
|
4025
|
-
return /* @__PURE__ */
|
|
4255
|
+
return /* @__PURE__ */ import_react29.default.createElement(DateRangePickerRoot, null, /* @__PURE__ */ import_react29.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
4026
4256
|
Input_default,
|
|
4027
4257
|
{
|
|
4028
4258
|
...innerProps,
|
|
@@ -4050,7 +4280,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4050
4280
|
error,
|
|
4051
4281
|
className,
|
|
4052
4282
|
sx,
|
|
4053
|
-
endDecorator: /* @__PURE__ */
|
|
4283
|
+
endDecorator: /* @__PURE__ */ import_react29.default.createElement(
|
|
4054
4284
|
CalendarButton2,
|
|
4055
4285
|
{
|
|
4056
4286
|
ref: buttonRef,
|
|
@@ -4062,13 +4292,13 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4062
4292
|
"aria-expanded": open,
|
|
4063
4293
|
disabled
|
|
4064
4294
|
},
|
|
4065
|
-
/* @__PURE__ */
|
|
4295
|
+
/* @__PURE__ */ import_react29.default.createElement(import_CalendarToday2.default, null)
|
|
4066
4296
|
),
|
|
4067
4297
|
label,
|
|
4068
4298
|
helperText,
|
|
4069
4299
|
readOnly: readOnly || inputReadOnly
|
|
4070
4300
|
}
|
|
4071
|
-
), open && /* @__PURE__ */
|
|
4301
|
+
), open && /* @__PURE__ */ import_react29.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4072
4302
|
StyledPopper2,
|
|
4073
4303
|
{
|
|
4074
4304
|
id: "date-range-picker-popper",
|
|
@@ -4087,7 +4317,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4087
4317
|
"aria-label": "Calendar Tooltip",
|
|
4088
4318
|
"aria-expanded": open
|
|
4089
4319
|
},
|
|
4090
|
-
/* @__PURE__ */
|
|
4320
|
+
/* @__PURE__ */ import_react29.default.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4091
4321
|
Calendar_default,
|
|
4092
4322
|
{
|
|
4093
4323
|
rangeSelection: true,
|
|
@@ -4098,14 +4328,14 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4098
4328
|
disableFuture,
|
|
4099
4329
|
disablePast
|
|
4100
4330
|
}
|
|
4101
|
-
), !hideClearButton && /* @__PURE__ */
|
|
4331
|
+
), !hideClearButton && /* @__PURE__ */ import_react29.default.createElement(
|
|
4102
4332
|
DialogActions_default,
|
|
4103
4333
|
{
|
|
4104
4334
|
sx: {
|
|
4105
4335
|
p: 1
|
|
4106
4336
|
}
|
|
4107
4337
|
},
|
|
4108
|
-
/* @__PURE__ */
|
|
4338
|
+
/* @__PURE__ */ import_react29.default.createElement(
|
|
4109
4339
|
Button_default,
|
|
4110
4340
|
{
|
|
4111
4341
|
size,
|
|
@@ -4125,10 +4355,10 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4125
4355
|
DateRangePicker.displayName = "DateRangePicker";
|
|
4126
4356
|
|
|
4127
4357
|
// src/components/DialogContent/DialogContent.tsx
|
|
4128
|
-
var
|
|
4129
|
-
var
|
|
4130
|
-
var MotionDialogContent = (0,
|
|
4131
|
-
var StyledDialogContent = (0,
|
|
4358
|
+
var import_joy37 = require("@mui/joy");
|
|
4359
|
+
var import_framer_motion23 = require("framer-motion");
|
|
4360
|
+
var MotionDialogContent = (0, import_framer_motion23.motion)(import_joy37.DialogContent);
|
|
4361
|
+
var StyledDialogContent = (0, import_joy37.styled)(MotionDialogContent)(({ theme }) => ({
|
|
4132
4362
|
padding: theme.spacing(0, 6, 5)
|
|
4133
4363
|
}));
|
|
4134
4364
|
var DialogContent = StyledDialogContent;
|
|
@@ -4138,10 +4368,10 @@ DialogContent.displayName = "DialogContent";
|
|
|
4138
4368
|
var DialogContent_default = DialogContent;
|
|
4139
4369
|
|
|
4140
4370
|
// src/components/DialogTitle/DialogTitle.tsx
|
|
4141
|
-
var
|
|
4142
|
-
var
|
|
4143
|
-
var MotionDialogTitle = (0,
|
|
4144
|
-
var StyledDialogTitle = (0,
|
|
4371
|
+
var import_joy38 = require("@mui/joy");
|
|
4372
|
+
var import_framer_motion24 = require("framer-motion");
|
|
4373
|
+
var MotionDialogTitle = (0, import_framer_motion24.motion)(import_joy38.DialogTitle);
|
|
4374
|
+
var StyledDialogTitle = (0, import_joy38.styled)(MotionDialogTitle)(({ theme }) => ({
|
|
4145
4375
|
padding: theme.spacing(4, 6)
|
|
4146
4376
|
}));
|
|
4147
4377
|
var DialogTitle = StyledDialogTitle;
|
|
@@ -4151,58 +4381,58 @@ DialogTitle.displayName = "DialogTitle";
|
|
|
4151
4381
|
var DialogTitle_default = DialogTitle;
|
|
4152
4382
|
|
|
4153
4383
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
4154
|
-
var
|
|
4384
|
+
var import_react31 = __toESM(require("react"));
|
|
4155
4385
|
|
|
4156
4386
|
// src/components/Modal/Modal.tsx
|
|
4157
|
-
var
|
|
4158
|
-
var
|
|
4159
|
-
var
|
|
4160
|
-
var MotionModal = (0,
|
|
4387
|
+
var import_react30 = __toESM(require("react"));
|
|
4388
|
+
var import_joy39 = require("@mui/joy");
|
|
4389
|
+
var import_framer_motion25 = require("framer-motion");
|
|
4390
|
+
var MotionModal = (0, import_framer_motion25.motion)(import_joy39.Modal);
|
|
4161
4391
|
var Modal = MotionModal;
|
|
4162
4392
|
Modal.displayName = "Modal";
|
|
4163
|
-
var StyledModalDialog = (0,
|
|
4393
|
+
var StyledModalDialog = (0, import_joy39.styled)(import_joy39.ModalDialog)({
|
|
4164
4394
|
padding: 0
|
|
4165
4395
|
});
|
|
4166
4396
|
var ModalDialog = StyledModalDialog;
|
|
4167
4397
|
ModalDialog.displayName = "ModalDialog";
|
|
4168
|
-
var ModalClose =
|
|
4169
|
-
var MotionModalOverflow = (0,
|
|
4398
|
+
var ModalClose = import_joy39.ModalClose;
|
|
4399
|
+
var MotionModalOverflow = (0, import_framer_motion25.motion)(import_joy39.ModalOverflow);
|
|
4170
4400
|
var ModalOverflow = MotionModalOverflow;
|
|
4171
4401
|
ModalOverflow.displayName = "ModalOverflow";
|
|
4172
4402
|
function ModalFrame(props) {
|
|
4173
4403
|
const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
|
|
4174
|
-
return /* @__PURE__ */
|
|
4404
|
+
return /* @__PURE__ */ import_react30.default.createElement(StyledModalDialog, { ...innerProps }, /* @__PURE__ */ import_react30.default.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ import_react30.default.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ import_react30.default.createElement(DialogContent_default, null, children));
|
|
4175
4405
|
}
|
|
4176
4406
|
ModalFrame.displayName = "ModalFrame";
|
|
4177
4407
|
|
|
4178
4408
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
4179
|
-
var
|
|
4180
|
-
var StyledDialogFrame = (0,
|
|
4409
|
+
var import_joy40 = require("@mui/joy");
|
|
4410
|
+
var StyledDialogFrame = (0, import_joy40.styled)(ModalDialog, {
|
|
4181
4411
|
name: "Dialog",
|
|
4182
4412
|
slot: "Root"
|
|
4183
4413
|
})({
|
|
4184
4414
|
padding: 0
|
|
4185
4415
|
});
|
|
4186
|
-
var DialogFrame =
|
|
4416
|
+
var DialogFrame = import_react31.default.forwardRef((props, ref) => {
|
|
4187
4417
|
const { title, children, actions, fullscreen, ...innerProps } = props;
|
|
4188
|
-
return /* @__PURE__ */
|
|
4418
|
+
return /* @__PURE__ */ import_react31.default.createElement(StyledDialogFrame, { layout: fullscreen ? "fullscreen" : "center", ref, ...innerProps }, /* @__PURE__ */ import_react31.default.createElement(DialogTitle_default, null, title), /* @__PURE__ */ import_react31.default.createElement(DialogContent_default, null, children), /* @__PURE__ */ import_react31.default.createElement(DialogActions_default, null, actions));
|
|
4189
4419
|
});
|
|
4190
4420
|
DialogFrame.displayName = "DialogFrame";
|
|
4191
4421
|
|
|
4192
4422
|
// src/components/Divider/Divider.tsx
|
|
4193
|
-
var
|
|
4194
|
-
var
|
|
4195
|
-
var
|
|
4196
|
-
var MotionDivider = (0,
|
|
4423
|
+
var import_react32 = __toESM(require("react"));
|
|
4424
|
+
var import_joy41 = require("@mui/joy");
|
|
4425
|
+
var import_framer_motion26 = require("framer-motion");
|
|
4426
|
+
var MotionDivider = (0, import_framer_motion26.motion)(import_joy41.Divider);
|
|
4197
4427
|
var Divider = (props) => {
|
|
4198
|
-
return /* @__PURE__ */
|
|
4428
|
+
return /* @__PURE__ */ import_react32.default.createElement(MotionDivider, { ...props });
|
|
4199
4429
|
};
|
|
4200
4430
|
Divider.displayName = "Divider";
|
|
4201
4431
|
|
|
4202
4432
|
// src/components/InsetDrawer/InsetDrawer.tsx
|
|
4203
|
-
var
|
|
4204
|
-
var InsetDrawer = (0,
|
|
4205
|
-
[`& .${
|
|
4433
|
+
var import_joy42 = require("@mui/joy");
|
|
4434
|
+
var InsetDrawer = (0, import_joy42.styled)(import_joy42.Drawer)(({ theme }) => ({
|
|
4435
|
+
[`& .${import_joy42.drawerClasses.content}`]: {
|
|
4206
4436
|
backgroundColor: "transparent",
|
|
4207
4437
|
boxShadow: "none",
|
|
4208
4438
|
[theme.breakpoints.down("md")]: {
|
|
@@ -4216,16 +4446,16 @@ var InsetDrawer = (0, import_joy40.styled)(import_joy40.Drawer)(({ theme }) => (
|
|
|
4216
4446
|
}));
|
|
4217
4447
|
|
|
4218
4448
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
4219
|
-
var
|
|
4220
|
-
var
|
|
4449
|
+
var import_react42 = __toESM(require("react"));
|
|
4450
|
+
var import_joy53 = require("@mui/joy");
|
|
4221
4451
|
|
|
4222
4452
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
4223
|
-
var
|
|
4224
|
-
var
|
|
4453
|
+
var import_react33 = __toESM(require("react"));
|
|
4454
|
+
var import_joy43 = require("@mui/joy");
|
|
4225
4455
|
function CheckboxGroup(props) {
|
|
4226
4456
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4227
4457
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
4228
|
-
const handleCheckboxChange = (0,
|
|
4458
|
+
const handleCheckboxChange = (0, import_react33.useCallback)(
|
|
4229
4459
|
(optionValue) => (event) => {
|
|
4230
4460
|
const checked = event.target.checked;
|
|
4231
4461
|
let newValue;
|
|
@@ -4241,7 +4471,7 @@ function CheckboxGroup(props) {
|
|
|
4241
4471
|
if (hidden) {
|
|
4242
4472
|
return null;
|
|
4243
4473
|
}
|
|
4244
|
-
return /* @__PURE__ */
|
|
4474
|
+
return /* @__PURE__ */ import_react33.default.createElement(import_joy43.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react33.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), options.map((option) => /* @__PURE__ */ import_react33.default.createElement(
|
|
4245
4475
|
Checkbox_default,
|
|
4246
4476
|
{
|
|
4247
4477
|
key: `${id}-${option.value}`,
|
|
@@ -4254,24 +4484,24 @@ function CheckboxGroup(props) {
|
|
|
4254
4484
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
4255
4485
|
|
|
4256
4486
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4257
|
-
var
|
|
4487
|
+
var import_react34 = __toESM(require("react"));
|
|
4258
4488
|
|
|
4259
4489
|
// src/components/Radio/Radio.tsx
|
|
4260
|
-
var
|
|
4261
|
-
var
|
|
4262
|
-
var MotionRadio = (0,
|
|
4490
|
+
var import_joy44 = require("@mui/joy");
|
|
4491
|
+
var import_framer_motion27 = require("framer-motion");
|
|
4492
|
+
var MotionRadio = (0, import_framer_motion27.motion)(import_joy44.Radio);
|
|
4263
4493
|
var Radio = MotionRadio;
|
|
4264
4494
|
Radio.displayName = "Radio";
|
|
4265
|
-
var MotionRadioGroup = (0,
|
|
4495
|
+
var MotionRadioGroup = (0, import_framer_motion27.motion)(import_joy44.RadioGroup);
|
|
4266
4496
|
var RadioGroup = MotionRadioGroup;
|
|
4267
4497
|
RadioGroup.displayName = "RadioGroup";
|
|
4268
4498
|
|
|
4269
4499
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4270
|
-
var
|
|
4500
|
+
var import_joy45 = require("@mui/joy");
|
|
4271
4501
|
function RadioGroup2(props) {
|
|
4272
4502
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4273
4503
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
4274
|
-
const handleRadioChange = (0,
|
|
4504
|
+
const handleRadioChange = (0, import_react34.useCallback)(
|
|
4275
4505
|
(event) => {
|
|
4276
4506
|
const newValue = event.target.value;
|
|
4277
4507
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -4283,13 +4513,13 @@ function RadioGroup2(props) {
|
|
|
4283
4513
|
if (hidden) {
|
|
4284
4514
|
return null;
|
|
4285
4515
|
}
|
|
4286
|
-
return /* @__PURE__ */
|
|
4516
|
+
return /* @__PURE__ */ import_react34.default.createElement(import_joy45.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react34.default.createElement(import_joy45.Stack, { spacing: 1 }, /* @__PURE__ */ import_react34.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label)), /* @__PURE__ */ import_react34.default.createElement(RadioGroup, { name: id, value: internalValue?.toString(), onChange: handleRadioChange }, options.map((option) => /* @__PURE__ */ import_react34.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value.toString(), label: option.label }))));
|
|
4287
4517
|
}
|
|
4288
4518
|
RadioGroup2.displayName = "RadioGroup";
|
|
4289
4519
|
|
|
4290
4520
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
4291
|
-
var
|
|
4292
|
-
var
|
|
4521
|
+
var import_react35 = __toESM(require("react"));
|
|
4522
|
+
var import_joy46 = require("@mui/joy");
|
|
4293
4523
|
function DateRange(props) {
|
|
4294
4524
|
const {
|
|
4295
4525
|
id,
|
|
@@ -4307,8 +4537,8 @@ function DateRange(props) {
|
|
|
4307
4537
|
hideClearButton
|
|
4308
4538
|
} = props;
|
|
4309
4539
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
4310
|
-
const [selectedOption, setSelectedOption] = (0,
|
|
4311
|
-
const dateRangeOptions = (0,
|
|
4540
|
+
const [selectedOption, setSelectedOption] = (0, import_react35.useState)("all-time");
|
|
4541
|
+
const dateRangeOptions = (0, import_react35.useMemo)(
|
|
4312
4542
|
() => [
|
|
4313
4543
|
{ label: "All Time", value: "all-time" },
|
|
4314
4544
|
{ label: "This Month", value: "this-month" },
|
|
@@ -4318,7 +4548,7 @@ function DateRange(props) {
|
|
|
4318
4548
|
],
|
|
4319
4549
|
[]
|
|
4320
4550
|
);
|
|
4321
|
-
const getDateRangeForOption = (0,
|
|
4551
|
+
const getDateRangeForOption = (0, import_react35.useCallback)(
|
|
4322
4552
|
(option) => {
|
|
4323
4553
|
const now = /* @__PURE__ */ new Date();
|
|
4324
4554
|
const currentYear = now.getFullYear();
|
|
@@ -4357,7 +4587,7 @@ function DateRange(props) {
|
|
|
4357
4587
|
},
|
|
4358
4588
|
[internalValue]
|
|
4359
4589
|
);
|
|
4360
|
-
const determineOptionFromValue = (0,
|
|
4590
|
+
const determineOptionFromValue = (0, import_react35.useCallback)(
|
|
4361
4591
|
(value2) => {
|
|
4362
4592
|
if (!value2) {
|
|
4363
4593
|
return "all-time";
|
|
@@ -4373,17 +4603,17 @@ function DateRange(props) {
|
|
|
4373
4603
|
},
|
|
4374
4604
|
[getDateRangeForOption]
|
|
4375
4605
|
);
|
|
4376
|
-
const customDateRangeValue = (0,
|
|
4606
|
+
const customDateRangeValue = (0, import_react35.useMemo)(() => {
|
|
4377
4607
|
if (selectedOption === "custom" && internalValue) {
|
|
4378
4608
|
return `${internalValue[0]} - ${internalValue[1]}`;
|
|
4379
4609
|
}
|
|
4380
4610
|
return "";
|
|
4381
4611
|
}, [selectedOption, internalValue]);
|
|
4382
|
-
(0,
|
|
4612
|
+
(0, import_react35.useEffect)(() => {
|
|
4383
4613
|
const newOption = determineOptionFromValue(internalValue);
|
|
4384
4614
|
setSelectedOption(newOption);
|
|
4385
4615
|
}, [internalValue, determineOptionFromValue]);
|
|
4386
|
-
const handleOptionChange = (0,
|
|
4616
|
+
const handleOptionChange = (0, import_react35.useCallback)(
|
|
4387
4617
|
(event) => {
|
|
4388
4618
|
const newOption = event.target.value;
|
|
4389
4619
|
setSelectedOption(newOption);
|
|
@@ -4392,7 +4622,7 @@ function DateRange(props) {
|
|
|
4392
4622
|
},
|
|
4393
4623
|
[getDateRangeForOption, setInternalValue]
|
|
4394
4624
|
);
|
|
4395
|
-
const handleCustomDateChange = (0,
|
|
4625
|
+
const handleCustomDateChange = (0, import_react35.useCallback)(
|
|
4396
4626
|
(event) => {
|
|
4397
4627
|
const dateRangeString = event.target.value;
|
|
4398
4628
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
@@ -4410,7 +4640,7 @@ function DateRange(props) {
|
|
|
4410
4640
|
if (hidden) {
|
|
4411
4641
|
return null;
|
|
4412
4642
|
}
|
|
4413
|
-
return /* @__PURE__ */
|
|
4643
|
+
return /* @__PURE__ */ import_react35.default.createElement(import_joy46.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react35.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react35.default.createElement(RadioGroup, { name: `${id}-options`, value: selectedOption, onChange: handleOptionChange }, dateRangeOptions.map((option) => /* @__PURE__ */ import_react35.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value, label: option.label }))), selectedOption === "custom" && /* @__PURE__ */ import_react35.default.createElement(
|
|
4414
4644
|
DateRangePicker,
|
|
4415
4645
|
{
|
|
4416
4646
|
value: customDateRangeValue,
|
|
@@ -4429,12 +4659,12 @@ function DateRange(props) {
|
|
|
4429
4659
|
DateRange.displayName = "DateRange";
|
|
4430
4660
|
|
|
4431
4661
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
4432
|
-
var
|
|
4433
|
-
var
|
|
4662
|
+
var import_react36 = __toESM(require("react"));
|
|
4663
|
+
var import_joy47 = require("@mui/joy");
|
|
4434
4664
|
function CurrencyInput3(props) {
|
|
4435
4665
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4436
4666
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
4437
|
-
const handleCurrencyChange = (0,
|
|
4667
|
+
const handleCurrencyChange = (0, import_react36.useCallback)(
|
|
4438
4668
|
(event) => {
|
|
4439
4669
|
const newValue = event.target.value;
|
|
4440
4670
|
setInternalValue(newValue);
|
|
@@ -4444,7 +4674,7 @@ function CurrencyInput3(props) {
|
|
|
4444
4674
|
if (hidden) {
|
|
4445
4675
|
return null;
|
|
4446
4676
|
}
|
|
4447
|
-
return /* @__PURE__ */
|
|
4677
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_joy47.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react36.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react36.default.createElement(
|
|
4448
4678
|
CurrencyInput,
|
|
4449
4679
|
{
|
|
4450
4680
|
value: internalValue,
|
|
@@ -4460,14 +4690,14 @@ function CurrencyInput3(props) {
|
|
|
4460
4690
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
4461
4691
|
|
|
4462
4692
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
4463
|
-
var
|
|
4464
|
-
var
|
|
4693
|
+
var import_react37 = __toESM(require("react"));
|
|
4694
|
+
var import_joy48 = require("@mui/joy");
|
|
4465
4695
|
function CurrencyRange(props) {
|
|
4466
4696
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4467
4697
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
4468
4698
|
const minValue = internalValue?.[0];
|
|
4469
4699
|
const maxValue = internalValue?.[1];
|
|
4470
|
-
const handleMinChange = (0,
|
|
4700
|
+
const handleMinChange = (0, import_react37.useCallback)(
|
|
4471
4701
|
(event) => {
|
|
4472
4702
|
const newMinValue = event.target.value;
|
|
4473
4703
|
const currentMaxValue = maxValue;
|
|
@@ -4481,7 +4711,7 @@ function CurrencyRange(props) {
|
|
|
4481
4711
|
},
|
|
4482
4712
|
[maxValue, setInternalValue]
|
|
4483
4713
|
);
|
|
4484
|
-
const handleMaxChange = (0,
|
|
4714
|
+
const handleMaxChange = (0, import_react37.useCallback)(
|
|
4485
4715
|
(event) => {
|
|
4486
4716
|
const newMaxValue = event.target.value;
|
|
4487
4717
|
const currentMinValue = minValue;
|
|
@@ -4498,7 +4728,7 @@ function CurrencyRange(props) {
|
|
|
4498
4728
|
if (hidden) {
|
|
4499
4729
|
return null;
|
|
4500
4730
|
}
|
|
4501
|
-
return /* @__PURE__ */
|
|
4731
|
+
return /* @__PURE__ */ import_react37.default.createElement(import_joy48.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react37.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react37.default.createElement(import_joy48.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react37.default.createElement(
|
|
4502
4732
|
CurrencyInput,
|
|
4503
4733
|
{
|
|
4504
4734
|
label: "Minimum",
|
|
@@ -4511,7 +4741,7 @@ function CurrencyRange(props) {
|
|
|
4511
4741
|
"aria-labelledby": label ? id : void 0,
|
|
4512
4742
|
"aria-label": "Minimum amount"
|
|
4513
4743
|
}
|
|
4514
|
-
), /* @__PURE__ */
|
|
4744
|
+
), /* @__PURE__ */ import_react37.default.createElement(
|
|
4515
4745
|
CurrencyInput,
|
|
4516
4746
|
{
|
|
4517
4747
|
label: "Maximum",
|
|
@@ -4529,20 +4759,20 @@ function CurrencyRange(props) {
|
|
|
4529
4759
|
CurrencyRange.displayName = "CurrencyRange";
|
|
4530
4760
|
|
|
4531
4761
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
4532
|
-
var
|
|
4533
|
-
var
|
|
4762
|
+
var import_react39 = __toESM(require("react"));
|
|
4763
|
+
var import_joy50 = require("@mui/joy");
|
|
4534
4764
|
|
|
4535
4765
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
4536
|
-
var
|
|
4766
|
+
var import_react38 = __toESM(require("react"));
|
|
4537
4767
|
var import_react_number_format2 = require("react-number-format");
|
|
4538
|
-
var
|
|
4768
|
+
var import_joy49 = require("@mui/joy");
|
|
4539
4769
|
var padDecimal = (value, decimalScale) => {
|
|
4540
4770
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
4541
4771
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
4542
4772
|
};
|
|
4543
|
-
var TextMaskAdapter7 =
|
|
4773
|
+
var TextMaskAdapter7 = import_react38.default.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
4544
4774
|
const { onChange, min, max, ...innerProps } = props;
|
|
4545
|
-
return /* @__PURE__ */
|
|
4775
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
4546
4776
|
import_react_number_format2.NumericFormat,
|
|
4547
4777
|
{
|
|
4548
4778
|
...innerProps,
|
|
@@ -4562,14 +4792,14 @@ var TextMaskAdapter7 = import_react35.default.forwardRef(function TextMaskAdapte
|
|
|
4562
4792
|
}
|
|
4563
4793
|
);
|
|
4564
4794
|
});
|
|
4565
|
-
var PercentageInputRoot = (0,
|
|
4795
|
+
var PercentageInputRoot = (0, import_joy49.styled)(Input_default, {
|
|
4566
4796
|
name: "PercentageInput",
|
|
4567
4797
|
slot: "Root",
|
|
4568
4798
|
overridesResolver: (props, styles) => styles.root
|
|
4569
4799
|
})({});
|
|
4570
|
-
var PercentageInput =
|
|
4800
|
+
var PercentageInput = import_react38.default.forwardRef(
|
|
4571
4801
|
function PercentageInput2(inProps, ref) {
|
|
4572
|
-
const props = (0,
|
|
4802
|
+
const props = (0, import_joy49.useThemeProps)({ props: inProps, name: "PercentageInput" });
|
|
4573
4803
|
const {
|
|
4574
4804
|
name,
|
|
4575
4805
|
onChange,
|
|
@@ -4590,18 +4820,18 @@ var PercentageInput = import_react35.default.forwardRef(
|
|
|
4590
4820
|
const [_value, setValue] = useControlledState(
|
|
4591
4821
|
props.value,
|
|
4592
4822
|
props.defaultValue,
|
|
4593
|
-
(0,
|
|
4823
|
+
(0, import_react38.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
4594
4824
|
);
|
|
4595
|
-
const [internalError, setInternalError] = (0,
|
|
4825
|
+
const [internalError, setInternalError] = (0, import_react38.useState)(
|
|
4596
4826
|
max && _value && _value > max || min && _value && _value < min
|
|
4597
4827
|
);
|
|
4598
|
-
const value = (0,
|
|
4828
|
+
const value = (0, import_react38.useMemo)(() => {
|
|
4599
4829
|
if (_value && useMinorUnit) {
|
|
4600
4830
|
return _value / Math.pow(10, maxDecimalScale);
|
|
4601
4831
|
}
|
|
4602
4832
|
return _value;
|
|
4603
4833
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
4604
|
-
const handleChange = (0,
|
|
4834
|
+
const handleChange = (0, import_react38.useCallback)(
|
|
4605
4835
|
(event) => {
|
|
4606
4836
|
if (event.target.value === "") {
|
|
4607
4837
|
setValue(void 0);
|
|
@@ -4618,7 +4848,7 @@ var PercentageInput = import_react35.default.forwardRef(
|
|
|
4618
4848
|
},
|
|
4619
4849
|
[setValue, useMinorUnit, maxDecimalScale, min, max]
|
|
4620
4850
|
);
|
|
4621
|
-
return /* @__PURE__ */
|
|
4851
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
4622
4852
|
PercentageInputRoot,
|
|
4623
4853
|
{
|
|
4624
4854
|
...innerProps,
|
|
@@ -4665,7 +4895,7 @@ var PercentageInput3 = ({
|
|
|
4665
4895
|
if (hidden) {
|
|
4666
4896
|
return null;
|
|
4667
4897
|
}
|
|
4668
|
-
return /* @__PURE__ */
|
|
4898
|
+
return /* @__PURE__ */ import_react39.default.createElement(import_joy50.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react39.default.createElement(import_joy50.Typography, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react39.default.createElement(
|
|
4669
4899
|
PercentageInput,
|
|
4670
4900
|
{
|
|
4671
4901
|
value: _value,
|
|
@@ -4680,8 +4910,8 @@ var PercentageInput3 = ({
|
|
|
4680
4910
|
};
|
|
4681
4911
|
|
|
4682
4912
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
4683
|
-
var
|
|
4684
|
-
var
|
|
4913
|
+
var import_react40 = __toESM(require("react"));
|
|
4914
|
+
var import_joy51 = require("@mui/joy");
|
|
4685
4915
|
function PercentageRange(props) {
|
|
4686
4916
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
4687
4917
|
const [internalValue, setInternalValue] = useControlledState(
|
|
@@ -4691,7 +4921,7 @@ function PercentageRange(props) {
|
|
|
4691
4921
|
);
|
|
4692
4922
|
const minValue = internalValue?.[0];
|
|
4693
4923
|
const maxValue = internalValue?.[1];
|
|
4694
|
-
const handleMinChange = (0,
|
|
4924
|
+
const handleMinChange = (0, import_react40.useCallback)(
|
|
4695
4925
|
(event) => {
|
|
4696
4926
|
const newMinValue = event.target.value;
|
|
4697
4927
|
const currentMaxValue = maxValue;
|
|
@@ -4703,7 +4933,7 @@ function PercentageRange(props) {
|
|
|
4703
4933
|
},
|
|
4704
4934
|
[maxValue, setInternalValue]
|
|
4705
4935
|
);
|
|
4706
|
-
const handleMaxChange = (0,
|
|
4936
|
+
const handleMaxChange = (0, import_react40.useCallback)(
|
|
4707
4937
|
(event) => {
|
|
4708
4938
|
const newMaxValue = event.target.value;
|
|
4709
4939
|
const currentMinValue = minValue;
|
|
@@ -4718,7 +4948,7 @@ function PercentageRange(props) {
|
|
|
4718
4948
|
if (hidden) {
|
|
4719
4949
|
return null;
|
|
4720
4950
|
}
|
|
4721
|
-
return /* @__PURE__ */
|
|
4951
|
+
return /* @__PURE__ */ import_react40.default.createElement(import_joy51.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react40.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react40.default.createElement(import_joy51.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react40.default.createElement(
|
|
4722
4952
|
PercentageInput,
|
|
4723
4953
|
{
|
|
4724
4954
|
label: "Minimum",
|
|
@@ -4732,7 +4962,7 @@ function PercentageRange(props) {
|
|
|
4732
4962
|
"aria-label": "Minimum percentage",
|
|
4733
4963
|
placeholder: "0%"
|
|
4734
4964
|
}
|
|
4735
|
-
), /* @__PURE__ */
|
|
4965
|
+
), /* @__PURE__ */ import_react40.default.createElement(
|
|
4736
4966
|
PercentageInput,
|
|
4737
4967
|
{
|
|
4738
4968
|
label: "Maximum",
|
|
@@ -4751,13 +4981,13 @@ function PercentageRange(props) {
|
|
|
4751
4981
|
PercentageRange.displayName = "PercentageRange";
|
|
4752
4982
|
|
|
4753
4983
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
4754
|
-
var
|
|
4755
|
-
var
|
|
4984
|
+
var import_react41 = __toESM(require("react"));
|
|
4985
|
+
var import_joy52 = require("@mui/joy");
|
|
4756
4986
|
function Autocomplete2(props) {
|
|
4757
4987
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
4758
4988
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
4759
4989
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
4760
|
-
const handleChange = (0,
|
|
4990
|
+
const handleChange = (0, import_react41.useCallback)(
|
|
4761
4991
|
(event) => {
|
|
4762
4992
|
const val = event.target.value;
|
|
4763
4993
|
if (val) {
|
|
@@ -4772,7 +5002,7 @@ function Autocomplete2(props) {
|
|
|
4772
5002
|
if (hidden) {
|
|
4773
5003
|
return null;
|
|
4774
5004
|
}
|
|
4775
|
-
return /* @__PURE__ */
|
|
5005
|
+
return /* @__PURE__ */ import_react41.default.createElement(import_joy52.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react41.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react41.default.createElement(
|
|
4776
5006
|
Autocomplete,
|
|
4777
5007
|
{
|
|
4778
5008
|
value: autocompleteValue,
|
|
@@ -4805,7 +5035,7 @@ function FilterMenu(props) {
|
|
|
4805
5035
|
void 0
|
|
4806
5036
|
// onChange는 Apply 버튼에서만 호출
|
|
4807
5037
|
);
|
|
4808
|
-
const handleFilterChange = (0,
|
|
5038
|
+
const handleFilterChange = (0, import_react42.useCallback)(
|
|
4809
5039
|
(filterId, value) => {
|
|
4810
5040
|
setInternalValues((prev) => ({
|
|
4811
5041
|
...prev,
|
|
@@ -4814,17 +5044,17 @@ function FilterMenu(props) {
|
|
|
4814
5044
|
},
|
|
4815
5045
|
[setInternalValues]
|
|
4816
5046
|
);
|
|
4817
|
-
const handleApply = (0,
|
|
5047
|
+
const handleApply = (0, import_react42.useCallback)(() => {
|
|
4818
5048
|
onChange?.(internalValues);
|
|
4819
5049
|
onClose?.();
|
|
4820
5050
|
}, [onChange, onClose, internalValues]);
|
|
4821
|
-
const handleClear = (0,
|
|
5051
|
+
const handleClear = (0, import_react42.useCallback)(() => {
|
|
4822
5052
|
const clearedValues = resetValues || {};
|
|
4823
5053
|
setInternalValues(clearedValues);
|
|
4824
5054
|
onChange?.(clearedValues);
|
|
4825
5055
|
onClose?.();
|
|
4826
5056
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
4827
|
-
return /* @__PURE__ */
|
|
5057
|
+
return /* @__PURE__ */ import_react42.default.createElement(
|
|
4828
5058
|
ModalDialog,
|
|
4829
5059
|
{
|
|
4830
5060
|
sx: {
|
|
@@ -4834,9 +5064,9 @@ function FilterMenu(props) {
|
|
|
4834
5064
|
top: "initial"
|
|
4835
5065
|
}
|
|
4836
5066
|
},
|
|
4837
|
-
/* @__PURE__ */
|
|
5067
|
+
/* @__PURE__ */ import_react42.default.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ import_react42.default.createElement(import_joy53.Stack, { spacing: 6 }, filters?.map((filter) => {
|
|
4838
5068
|
const FilterComponent = componentMap[filter.type];
|
|
4839
|
-
return FilterComponent ? /* @__PURE__ */
|
|
5069
|
+
return FilterComponent ? /* @__PURE__ */ import_react42.default.createElement(
|
|
4840
5070
|
FilterComponent,
|
|
4841
5071
|
{
|
|
4842
5072
|
key: filter.id,
|
|
@@ -4848,14 +5078,14 @@ function FilterMenu(props) {
|
|
|
4848
5078
|
}
|
|
4849
5079
|
) : null;
|
|
4850
5080
|
}))),
|
|
4851
|
-
/* @__PURE__ */
|
|
5081
|
+
/* @__PURE__ */ import_react42.default.createElement(DialogActions, { sx: { justifyContent: "space-between" } }, useClear && filters?.length === 1 && /* @__PURE__ */ import_react42.default.createElement(import_joy53.Button, { variant: "plain", color: "neutral", size: "md", onClick: handleClear }, "Clear"), useReset && !useClear && /* @__PURE__ */ import_react42.default.createElement(import_joy53.Button, { variant: "plain", color: "neutral", size: "md", onClick: handleClear }, "Reset"), /* @__PURE__ */ import_react42.default.createElement(import_joy53.Button, { variant: "solid", color: "primary", size: "md", onClick: handleApply }, "Apply"))
|
|
4852
5082
|
);
|
|
4853
5083
|
}
|
|
4854
5084
|
FilterMenu.displayName = "FilterMenu";
|
|
4855
5085
|
|
|
4856
5086
|
// src/components/Uploader/Uploader.tsx
|
|
4857
|
-
var
|
|
4858
|
-
var
|
|
5087
|
+
var import_react43 = __toESM(require("react"));
|
|
5088
|
+
var import_joy54 = require("@mui/joy");
|
|
4859
5089
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
4860
5090
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
4861
5091
|
var import_ClearRounded = __toESM(require("@mui/icons-material/ClearRounded"));
|
|
@@ -4877,7 +5107,7 @@ var esmFiles = {
|
|
|
4877
5107
|
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/prevent-unhandled.js"
|
|
4878
5108
|
)
|
|
4879
5109
|
};
|
|
4880
|
-
var VisuallyHiddenInput = (0,
|
|
5110
|
+
var VisuallyHiddenInput = (0, import_joy54.styled)(import_joy54.Input)({
|
|
4881
5111
|
width: "1px",
|
|
4882
5112
|
height: "1px",
|
|
4883
5113
|
overflow: "hidden",
|
|
@@ -4886,18 +5116,18 @@ var VisuallyHiddenInput = (0, import_joy52.styled)(import_joy52.Input)({
|
|
|
4886
5116
|
clipPath: "inset(50%)",
|
|
4887
5117
|
position: "absolute"
|
|
4888
5118
|
});
|
|
4889
|
-
var PreviewRoot = (0,
|
|
5119
|
+
var PreviewRoot = (0, import_joy54.styled)(Stack_default, {
|
|
4890
5120
|
name: "Uploader",
|
|
4891
5121
|
slot: "PreviewRoot"
|
|
4892
5122
|
})({});
|
|
4893
|
-
var UploadCard = (0,
|
|
5123
|
+
var UploadCard = (0, import_joy54.styled)(Card, {
|
|
4894
5124
|
name: "Uploader",
|
|
4895
5125
|
slot: "UploadCard"
|
|
4896
5126
|
})(({ theme }) => ({
|
|
4897
5127
|
padding: theme.spacing(2.5),
|
|
4898
5128
|
border: `1px solid ${theme.palette.neutral.outlinedBorder}`
|
|
4899
5129
|
}));
|
|
4900
|
-
var UploadFileIcon = (0,
|
|
5130
|
+
var UploadFileIcon = (0, import_joy54.styled)(import_UploadFileRounded.default, {
|
|
4901
5131
|
name: "Uploader",
|
|
4902
5132
|
slot: "UploadFileIcon"
|
|
4903
5133
|
})(({ theme }) => ({
|
|
@@ -4905,7 +5135,7 @@ var UploadFileIcon = (0, import_joy52.styled)(import_UploadFileRounded.default,
|
|
|
4905
5135
|
width: "32px",
|
|
4906
5136
|
height: "32px"
|
|
4907
5137
|
}));
|
|
4908
|
-
var ClearIcon2 = (0,
|
|
5138
|
+
var ClearIcon2 = (0, import_joy54.styled)(import_ClearRounded.default, {
|
|
4909
5139
|
name: "Uploader",
|
|
4910
5140
|
slot: "ClearIcon"
|
|
4911
5141
|
})(({ theme }) => ({
|
|
@@ -4931,15 +5161,15 @@ var getFileSize = (n) => {
|
|
|
4931
5161
|
};
|
|
4932
5162
|
var Preview = (props) => {
|
|
4933
5163
|
const { files, uploaded, onDelete } = props;
|
|
4934
|
-
return /* @__PURE__ */
|
|
5164
|
+
return /* @__PURE__ */ import_react43.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react43.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react43.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react43.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react43.default.createElement(Stack_default, { flex: "1" }, /* @__PURE__ */ import_react43.default.createElement(Typography_default, { level: "body-sm", textColor: "common.black" }, file.name), !!file.size && /* @__PURE__ */ import_react43.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react43.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react43.default.createElement(ClearIcon2, null))))));
|
|
4935
5165
|
};
|
|
4936
|
-
var UploaderRoot = (0,
|
|
5166
|
+
var UploaderRoot = (0, import_joy54.styled)(Stack_default, {
|
|
4937
5167
|
name: "Uploader",
|
|
4938
5168
|
slot: "root"
|
|
4939
5169
|
})(({ theme }) => ({
|
|
4940
5170
|
gap: theme.spacing(2)
|
|
4941
5171
|
}));
|
|
4942
|
-
var FileDropZone = (0,
|
|
5172
|
+
var FileDropZone = (0, import_joy54.styled)(Sheet_default, {
|
|
4943
5173
|
name: "Uploader",
|
|
4944
5174
|
slot: "dropZone",
|
|
4945
5175
|
shouldForwardProp: (prop) => prop !== "error"
|
|
@@ -4955,7 +5185,7 @@ var FileDropZone = (0, import_joy52.styled)(Sheet_default, {
|
|
|
4955
5185
|
backgroundColor: theme.palette.background.surface,
|
|
4956
5186
|
border: error ? `1px solid ${theme.palette.danger.outlinedBorder}` : state === "idle" ? `1px solid ${theme.palette.neutral.outlinedBorder}` : `1px solid ${theme.palette.primary.outlinedBorder}`
|
|
4957
5187
|
}));
|
|
4958
|
-
var UploaderIcon = (0,
|
|
5188
|
+
var UploaderIcon = (0, import_joy54.styled)(import_CloudUploadRounded.default, {
|
|
4959
5189
|
name: "Uploader",
|
|
4960
5190
|
slot: "iconContainer",
|
|
4961
5191
|
shouldForwardProp: (prop) => prop !== "error"
|
|
@@ -4964,7 +5194,7 @@ var UploaderIcon = (0, import_joy52.styled)(import_CloudUploadRounded.default, {
|
|
|
4964
5194
|
width: "32px",
|
|
4965
5195
|
height: "32px"
|
|
4966
5196
|
}));
|
|
4967
|
-
var Uploader =
|
|
5197
|
+
var Uploader = import_react43.default.memo(
|
|
4968
5198
|
(props) => {
|
|
4969
5199
|
const {
|
|
4970
5200
|
accept,
|
|
@@ -4979,14 +5209,14 @@ var Uploader = import_react40.default.memo(
|
|
|
4979
5209
|
disabled,
|
|
4980
5210
|
onDelete
|
|
4981
5211
|
} = props;
|
|
4982
|
-
const dropZoneRef = (0,
|
|
4983
|
-
const inputRef = (0,
|
|
4984
|
-
const [errorText, setErrorText] = (0,
|
|
4985
|
-
const [files, setFiles] = (0,
|
|
4986
|
-
const [uploaded, setUploaded] = (0,
|
|
4987
|
-
const [previewState, setPreviewState] = (0,
|
|
4988
|
-
const accepts = (0,
|
|
4989
|
-
const parsedAccepts = (0,
|
|
5212
|
+
const dropZoneRef = (0, import_react43.useRef)(null);
|
|
5213
|
+
const inputRef = (0, import_react43.useRef)(null);
|
|
5214
|
+
const [errorText, setErrorText] = (0, import_react43.useState)();
|
|
5215
|
+
const [files, setFiles] = (0, import_react43.useState)([]);
|
|
5216
|
+
const [uploaded, setUploaded] = (0, import_react43.useState)(props.uploaded || []);
|
|
5217
|
+
const [previewState, setPreviewState] = (0, import_react43.useState)("idle");
|
|
5218
|
+
const accepts = (0, import_react43.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
5219
|
+
const parsedAccepts = (0, import_react43.useMemo)(
|
|
4990
5220
|
() => accepts.flatMap((type) => {
|
|
4991
5221
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
4992
5222
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -4995,7 +5225,7 @@ var Uploader = import_react40.default.memo(
|
|
|
4995
5225
|
}),
|
|
4996
5226
|
[accepts]
|
|
4997
5227
|
);
|
|
4998
|
-
const helperText = (0,
|
|
5228
|
+
const helperText = (0, import_react43.useMemo)(() => {
|
|
4999
5229
|
const [allAcceptedTypes, acceptedTypes] = [
|
|
5000
5230
|
accepts.filter((accept2) => ["image/*", "video/*", "audio/*"].includes(accept2)).map((accept2) => {
|
|
5001
5231
|
const [type] = accept2.split("/");
|
|
@@ -5022,12 +5252,12 @@ var Uploader = import_react40.default.memo(
|
|
|
5022
5252
|
}
|
|
5023
5253
|
return helperTexts.join(", ");
|
|
5024
5254
|
}, [accepts, maxFileTotalSize, maxCount]);
|
|
5025
|
-
const error = (0,
|
|
5026
|
-
const showDropZone = (0,
|
|
5255
|
+
const error = (0, import_react43.useMemo)(() => !!errorText || props.error, [props.error, errorText]);
|
|
5256
|
+
const showDropZone = (0, import_react43.useMemo)(
|
|
5027
5257
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
5028
5258
|
[files, maxCount, uploaded]
|
|
5029
5259
|
);
|
|
5030
|
-
const addFiles = (0,
|
|
5260
|
+
const addFiles = (0, import_react43.useCallback)(
|
|
5031
5261
|
(uploads) => {
|
|
5032
5262
|
try {
|
|
5033
5263
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -5072,7 +5302,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5072
5302
|
},
|
|
5073
5303
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
5074
5304
|
);
|
|
5075
|
-
(0,
|
|
5305
|
+
(0, import_react43.useEffect)(() => {
|
|
5076
5306
|
if (!dropZoneRef.current || disabled) {
|
|
5077
5307
|
return;
|
|
5078
5308
|
}
|
|
@@ -5110,7 +5340,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5110
5340
|
);
|
|
5111
5341
|
return () => cleanup?.();
|
|
5112
5342
|
}, [disabled, addFiles]);
|
|
5113
|
-
(0,
|
|
5343
|
+
(0, import_react43.useEffect)(() => {
|
|
5114
5344
|
if (inputRef.current && minCount) {
|
|
5115
5345
|
if (files.length < minCount) {
|
|
5116
5346
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -5119,14 +5349,14 @@ var Uploader = import_react40.default.memo(
|
|
|
5119
5349
|
}
|
|
5120
5350
|
}
|
|
5121
5351
|
}, [inputRef, files, minCount]);
|
|
5122
|
-
const handleFileChanged = (0,
|
|
5352
|
+
const handleFileChanged = (0, import_react43.useCallback)(
|
|
5123
5353
|
(event) => {
|
|
5124
5354
|
const files2 = Array.from(event.target.files || []);
|
|
5125
5355
|
addFiles(files2);
|
|
5126
5356
|
},
|
|
5127
5357
|
[addFiles]
|
|
5128
5358
|
);
|
|
5129
|
-
const handleDeleteFile = (0,
|
|
5359
|
+
const handleDeleteFile = (0, import_react43.useCallback)(
|
|
5130
5360
|
(deletedFile) => {
|
|
5131
5361
|
if (deletedFile instanceof File) {
|
|
5132
5362
|
setFiles((current) => {
|
|
@@ -5146,10 +5376,10 @@ var Uploader = import_react40.default.memo(
|
|
|
5146
5376
|
},
|
|
5147
5377
|
[name, onChange, onDelete]
|
|
5148
5378
|
);
|
|
5149
|
-
const handleUploaderButtonClick = (0,
|
|
5379
|
+
const handleUploaderButtonClick = (0, import_react43.useCallback)(() => {
|
|
5150
5380
|
inputRef.current?.click();
|
|
5151
5381
|
}, []);
|
|
5152
|
-
const uploader = /* @__PURE__ */
|
|
5382
|
+
const uploader = /* @__PURE__ */ import_react43.default.createElement(
|
|
5153
5383
|
FileDropZone,
|
|
5154
5384
|
{
|
|
5155
5385
|
state: previewState,
|
|
@@ -5157,8 +5387,8 @@ var Uploader = import_react40.default.memo(
|
|
|
5157
5387
|
ref: dropZoneRef,
|
|
5158
5388
|
onClick: handleUploaderButtonClick
|
|
5159
5389
|
},
|
|
5160
|
-
/* @__PURE__ */
|
|
5161
|
-
/* @__PURE__ */
|
|
5390
|
+
/* @__PURE__ */ import_react43.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react43.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText) })),
|
|
5391
|
+
/* @__PURE__ */ import_react43.default.createElement(
|
|
5162
5392
|
VisuallyHiddenInput,
|
|
5163
5393
|
{
|
|
5164
5394
|
disabled,
|
|
@@ -5181,17 +5411,17 @@ var Uploader = import_react40.default.memo(
|
|
|
5181
5411
|
}
|
|
5182
5412
|
)
|
|
5183
5413
|
);
|
|
5184
|
-
return /* @__PURE__ */
|
|
5414
|
+
return /* @__PURE__ */ import_react43.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react43.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react43.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react43.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react43.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react43.default.createElement("div", null, errorText), /* @__PURE__ */ import_react43.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react43.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
5185
5415
|
}
|
|
5186
5416
|
);
|
|
5187
5417
|
Uploader.displayName = "Uploader";
|
|
5188
5418
|
|
|
5189
5419
|
// src/components/Grid/Grid.tsx
|
|
5190
|
-
var
|
|
5420
|
+
var import_joy55 = require("@mui/joy");
|
|
5191
5421
|
|
|
5192
5422
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
5193
|
-
var
|
|
5194
|
-
var
|
|
5423
|
+
var import_react44 = __toESM(require("react"));
|
|
5424
|
+
var import_joy56 = require("@mui/joy");
|
|
5195
5425
|
function IconMenuButton(props) {
|
|
5196
5426
|
const {
|
|
5197
5427
|
size,
|
|
@@ -5204,8 +5434,8 @@ function IconMenuButton(props) {
|
|
|
5204
5434
|
placement = "bottom"
|
|
5205
5435
|
} = props;
|
|
5206
5436
|
if (!items.length) {
|
|
5207
|
-
return /* @__PURE__ */
|
|
5208
|
-
|
|
5437
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
5438
|
+
import_joy56.IconButton,
|
|
5209
5439
|
{
|
|
5210
5440
|
component: props.buttonComponent ?? "button",
|
|
5211
5441
|
size,
|
|
@@ -5218,10 +5448,10 @@ function IconMenuButton(props) {
|
|
|
5218
5448
|
icon
|
|
5219
5449
|
);
|
|
5220
5450
|
}
|
|
5221
|
-
return /* @__PURE__ */
|
|
5222
|
-
|
|
5451
|
+
return /* @__PURE__ */ import_react44.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react44.default.createElement(
|
|
5452
|
+
import_joy56.MenuButton,
|
|
5223
5453
|
{
|
|
5224
|
-
slots: { root:
|
|
5454
|
+
slots: { root: import_joy56.IconButton },
|
|
5225
5455
|
slotProps: {
|
|
5226
5456
|
root: {
|
|
5227
5457
|
component: props.buttonComponent ?? "button",
|
|
@@ -5235,19 +5465,19 @@ function IconMenuButton(props) {
|
|
|
5235
5465
|
}
|
|
5236
5466
|
},
|
|
5237
5467
|
icon
|
|
5238
|
-
), /* @__PURE__ */
|
|
5468
|
+
), /* @__PURE__ */ import_react44.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react44.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5239
5469
|
}
|
|
5240
5470
|
IconMenuButton.displayName = "IconMenuButton";
|
|
5241
5471
|
|
|
5242
5472
|
// src/components/Markdown/Markdown.tsx
|
|
5243
|
-
var
|
|
5244
|
-
var
|
|
5245
|
-
var
|
|
5473
|
+
var import_react45 = __toESM(require("react"));
|
|
5474
|
+
var import_joy57 = require("@mui/joy");
|
|
5475
|
+
var import_joy58 = require("@mui/joy");
|
|
5246
5476
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
5247
|
-
var LazyReactMarkdown = (0,
|
|
5477
|
+
var LazyReactMarkdown = (0, import_react45.lazy)(() => import("react-markdown"));
|
|
5248
5478
|
var Markdown = (props) => {
|
|
5249
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
5250
|
-
(0,
|
|
5479
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react45.useState)(null);
|
|
5480
|
+
(0, import_react45.useEffect)(() => {
|
|
5251
5481
|
const loadRehypeAccent = async () => {
|
|
5252
5482
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
5253
5483
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -5269,12 +5499,12 @@ var Markdown = (props) => {
|
|
|
5269
5499
|
if (!rehypeAccent2) {
|
|
5270
5500
|
return null;
|
|
5271
5501
|
}
|
|
5272
|
-
return /* @__PURE__ */
|
|
5273
|
-
|
|
5502
|
+
return /* @__PURE__ */ import_react45.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react45.default.createElement(
|
|
5503
|
+
import_react45.Suspense,
|
|
5274
5504
|
{
|
|
5275
|
-
fallback: fallback || /* @__PURE__ */
|
|
5505
|
+
fallback: fallback || /* @__PURE__ */ import_react45.default.createElement(Typography, null, /* @__PURE__ */ import_react45.default.createElement(import_joy57.Skeleton, null, content || ""))
|
|
5276
5506
|
},
|
|
5277
|
-
/* @__PURE__ */
|
|
5507
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
5278
5508
|
LazyReactMarkdown,
|
|
5279
5509
|
{
|
|
5280
5510
|
...markdownOptions,
|
|
@@ -5282,15 +5512,15 @@ var Markdown = (props) => {
|
|
|
5282
5512
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
5283
5513
|
remarkPlugins: [import_remark_gfm.default],
|
|
5284
5514
|
components: {
|
|
5285
|
-
h1: ({ children }) => /* @__PURE__ */
|
|
5286
|
-
h2: ({ children }) => /* @__PURE__ */
|
|
5287
|
-
h3: ({ children }) => /* @__PURE__ */
|
|
5288
|
-
h4: ({ children }) => /* @__PURE__ */
|
|
5289
|
-
p: ({ children, node }) => /* @__PURE__ */
|
|
5290
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
5291
|
-
hr: () => /* @__PURE__ */
|
|
5292
|
-
b: ({ children }) => /* @__PURE__ */
|
|
5293
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
5515
|
+
h1: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
5516
|
+
h2: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
5517
|
+
h3: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
5518
|
+
h4: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
5519
|
+
p: ({ children, node }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
5520
|
+
a: ({ children, href }) => /* @__PURE__ */ import_react45.default.createElement(import_joy58.Link, { href, target: defaultLinkAction }, children),
|
|
5521
|
+
hr: () => /* @__PURE__ */ import_react45.default.createElement(Divider, null),
|
|
5522
|
+
b: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5523
|
+
strong: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5294
5524
|
...markdownOptions?.components
|
|
5295
5525
|
}
|
|
5296
5526
|
}
|
|
@@ -5300,8 +5530,8 @@ var Markdown = (props) => {
|
|
|
5300
5530
|
Markdown.displayName = "Markdown";
|
|
5301
5531
|
|
|
5302
5532
|
// src/components/MenuButton/MenuButton.tsx
|
|
5303
|
-
var
|
|
5304
|
-
var
|
|
5533
|
+
var import_react46 = __toESM(require("react"));
|
|
5534
|
+
var import_joy59 = require("@mui/joy");
|
|
5305
5535
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
5306
5536
|
function MenuButton(props) {
|
|
5307
5537
|
const {
|
|
@@ -5318,8 +5548,8 @@ function MenuButton(props) {
|
|
|
5318
5548
|
placement = "bottom"
|
|
5319
5549
|
} = props;
|
|
5320
5550
|
if (!items.length) {
|
|
5321
|
-
return /* @__PURE__ */
|
|
5322
|
-
|
|
5551
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
5552
|
+
import_joy59.Button,
|
|
5323
5553
|
{
|
|
5324
5554
|
component: props.buttonComponent ?? "button",
|
|
5325
5555
|
size,
|
|
@@ -5329,13 +5559,13 @@ function MenuButton(props) {
|
|
|
5329
5559
|
loading,
|
|
5330
5560
|
startDecorator,
|
|
5331
5561
|
...props.buttonComponentProps ?? {},
|
|
5332
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5562
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react46.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator)
|
|
5333
5563
|
},
|
|
5334
5564
|
buttonText
|
|
5335
5565
|
);
|
|
5336
5566
|
}
|
|
5337
|
-
return /* @__PURE__ */
|
|
5338
|
-
|
|
5567
|
+
return /* @__PURE__ */ import_react46.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react46.default.createElement(
|
|
5568
|
+
import_joy59.MenuButton,
|
|
5339
5569
|
{
|
|
5340
5570
|
component: props.buttonComponent ?? "button",
|
|
5341
5571
|
size,
|
|
@@ -5345,25 +5575,25 @@ function MenuButton(props) {
|
|
|
5345
5575
|
loading,
|
|
5346
5576
|
startDecorator,
|
|
5347
5577
|
...props.buttonComponentProps ?? {},
|
|
5348
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5578
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react46.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator)
|
|
5349
5579
|
},
|
|
5350
5580
|
buttonText
|
|
5351
|
-
), /* @__PURE__ */
|
|
5581
|
+
), /* @__PURE__ */ import_react46.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react46.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5352
5582
|
}
|
|
5353
5583
|
MenuButton.displayName = "MenuButton";
|
|
5354
5584
|
|
|
5355
5585
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
5356
|
-
var
|
|
5586
|
+
var import_react47 = __toESM(require("react"));
|
|
5357
5587
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5358
|
-
var
|
|
5588
|
+
var import_joy60 = require("@mui/joy");
|
|
5359
5589
|
var import_base4 = require("@mui/base");
|
|
5360
|
-
var StyledPopper3 = (0,
|
|
5590
|
+
var StyledPopper3 = (0, import_joy60.styled)(import_base4.Popper, {
|
|
5361
5591
|
name: "MonthPicker",
|
|
5362
5592
|
slot: "popper"
|
|
5363
5593
|
})(({ theme }) => ({
|
|
5364
5594
|
zIndex: theme.zIndex.tooltip
|
|
5365
5595
|
}));
|
|
5366
|
-
var CalendarSheet3 = (0,
|
|
5596
|
+
var CalendarSheet3 = (0, import_joy60.styled)(Sheet_default, {
|
|
5367
5597
|
name: "MonthPicker",
|
|
5368
5598
|
slot: "sheet",
|
|
5369
5599
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5372,7 +5602,7 @@ var CalendarSheet3 = (0, import_joy58.styled)(Sheet_default, {
|
|
|
5372
5602
|
boxShadow: theme.shadow.md,
|
|
5373
5603
|
borderRadius: theme.radius.md
|
|
5374
5604
|
}));
|
|
5375
|
-
var MonthPickerRoot = (0,
|
|
5605
|
+
var MonthPickerRoot = (0, import_joy60.styled)("div", {
|
|
5376
5606
|
name: "MonthPicker",
|
|
5377
5607
|
slot: "root",
|
|
5378
5608
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5408,8 +5638,8 @@ function parseDate3(dateString, format) {
|
|
|
5408
5638
|
const result = new Date(year, month, day);
|
|
5409
5639
|
return result;
|
|
5410
5640
|
}
|
|
5411
|
-
var MonthPicker = (0,
|
|
5412
|
-
const props = (0,
|
|
5641
|
+
var MonthPicker = (0, import_react47.forwardRef)((inProps, ref) => {
|
|
5642
|
+
const props = (0, import_joy60.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
5413
5643
|
const {
|
|
5414
5644
|
onChange,
|
|
5415
5645
|
disabled,
|
|
@@ -5435,14 +5665,14 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5435
5665
|
locale,
|
|
5436
5666
|
...innerProps
|
|
5437
5667
|
} = props;
|
|
5438
|
-
const innerRef = (0,
|
|
5439
|
-
const buttonRef = (0,
|
|
5668
|
+
const innerRef = (0, import_react47.useRef)(null);
|
|
5669
|
+
const buttonRef = (0, import_react47.useRef)(null);
|
|
5440
5670
|
const [value, setValue, isControlled] = useControlledState(
|
|
5441
5671
|
props.value,
|
|
5442
5672
|
props.defaultValue || "",
|
|
5443
|
-
(0,
|
|
5673
|
+
(0, import_react47.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5444
5674
|
);
|
|
5445
|
-
const getFormattedDisplayValue = (0,
|
|
5675
|
+
const getFormattedDisplayValue = (0, import_react47.useCallback)(
|
|
5446
5676
|
(inputValue) => {
|
|
5447
5677
|
if (!inputValue) return "";
|
|
5448
5678
|
try {
|
|
@@ -5453,19 +5683,19 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5453
5683
|
},
|
|
5454
5684
|
[format, displayFormat, locale]
|
|
5455
5685
|
);
|
|
5456
|
-
const [displayValue, setDisplayValue] = (0,
|
|
5457
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5686
|
+
const [displayValue, setDisplayValue] = (0, import_react47.useState)(() => getFormattedDisplayValue(value));
|
|
5687
|
+
const [anchorEl, setAnchorEl] = (0, import_react47.useState)(null);
|
|
5458
5688
|
const open = Boolean(anchorEl);
|
|
5459
|
-
(0,
|
|
5689
|
+
(0, import_react47.useEffect)(() => {
|
|
5460
5690
|
if (!anchorEl) {
|
|
5461
5691
|
innerRef.current?.blur();
|
|
5462
5692
|
}
|
|
5463
5693
|
}, [anchorEl, innerRef]);
|
|
5464
|
-
(0,
|
|
5465
|
-
(0,
|
|
5694
|
+
(0, import_react47.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5695
|
+
(0, import_react47.useEffect)(() => {
|
|
5466
5696
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
5467
5697
|
}, [value, getFormattedDisplayValue]);
|
|
5468
|
-
const handleChange = (0,
|
|
5698
|
+
const handleChange = (0, import_react47.useCallback)(
|
|
5469
5699
|
(event) => {
|
|
5470
5700
|
const newValue = event.target.value;
|
|
5471
5701
|
setValue(newValue);
|
|
@@ -5475,21 +5705,21 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5475
5705
|
},
|
|
5476
5706
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
5477
5707
|
);
|
|
5478
|
-
const handleCalendarToggle = (0,
|
|
5708
|
+
const handleCalendarToggle = (0, import_react47.useCallback)(
|
|
5479
5709
|
(event) => {
|
|
5480
5710
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5481
5711
|
innerRef.current?.focus();
|
|
5482
5712
|
},
|
|
5483
5713
|
[anchorEl, setAnchorEl, innerRef]
|
|
5484
5714
|
);
|
|
5485
|
-
const handleInputMouseDown = (0,
|
|
5715
|
+
const handleInputMouseDown = (0, import_react47.useCallback)(
|
|
5486
5716
|
(event) => {
|
|
5487
5717
|
event.preventDefault();
|
|
5488
5718
|
buttonRef.current?.focus();
|
|
5489
5719
|
},
|
|
5490
5720
|
[buttonRef]
|
|
5491
5721
|
);
|
|
5492
|
-
return /* @__PURE__ */
|
|
5722
|
+
return /* @__PURE__ */ import_react47.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react47.default.createElement(import_base4.FocusTrap, { open: true }, /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(
|
|
5493
5723
|
Input_default,
|
|
5494
5724
|
{
|
|
5495
5725
|
...innerProps,
|
|
@@ -5519,7 +5749,7 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5519
5749
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5520
5750
|
fontFamily: "monospace"
|
|
5521
5751
|
},
|
|
5522
|
-
endDecorator: /* @__PURE__ */
|
|
5752
|
+
endDecorator: /* @__PURE__ */ import_react47.default.createElement(
|
|
5523
5753
|
IconButton_default,
|
|
5524
5754
|
{
|
|
5525
5755
|
ref: buttonRef,
|
|
@@ -5531,12 +5761,12 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5531
5761
|
"aria-expanded": open,
|
|
5532
5762
|
disabled
|
|
5533
5763
|
},
|
|
5534
|
-
/* @__PURE__ */
|
|
5764
|
+
/* @__PURE__ */ import_react47.default.createElement(import_CalendarToday3.default, null)
|
|
5535
5765
|
),
|
|
5536
5766
|
label,
|
|
5537
5767
|
helperText
|
|
5538
5768
|
}
|
|
5539
|
-
), open && /* @__PURE__ */
|
|
5769
|
+
), open && /* @__PURE__ */ import_react47.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react47.default.createElement(
|
|
5540
5770
|
StyledPopper3,
|
|
5541
5771
|
{
|
|
5542
5772
|
id: "month-picker-popper",
|
|
@@ -5555,7 +5785,7 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5555
5785
|
"aria-label": "Calendar Tooltip",
|
|
5556
5786
|
"aria-expanded": open
|
|
5557
5787
|
},
|
|
5558
|
-
/* @__PURE__ */
|
|
5788
|
+
/* @__PURE__ */ import_react47.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react47.default.createElement(
|
|
5559
5789
|
Calendar_default,
|
|
5560
5790
|
{
|
|
5561
5791
|
view: "month",
|
|
@@ -5576,14 +5806,14 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5576
5806
|
disablePast,
|
|
5577
5807
|
locale
|
|
5578
5808
|
}
|
|
5579
|
-
), /* @__PURE__ */
|
|
5809
|
+
), /* @__PURE__ */ import_react47.default.createElement(
|
|
5580
5810
|
DialogActions_default,
|
|
5581
5811
|
{
|
|
5582
5812
|
sx: {
|
|
5583
5813
|
p: 1
|
|
5584
5814
|
}
|
|
5585
5815
|
},
|
|
5586
|
-
/* @__PURE__ */
|
|
5816
|
+
/* @__PURE__ */ import_react47.default.createElement(
|
|
5587
5817
|
Button_default,
|
|
5588
5818
|
{
|
|
5589
5819
|
size,
|
|
@@ -5606,18 +5836,18 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5606
5836
|
});
|
|
5607
5837
|
|
|
5608
5838
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
5609
|
-
var
|
|
5839
|
+
var import_react48 = __toESM(require("react"));
|
|
5610
5840
|
var import_react_imask3 = require("react-imask");
|
|
5611
5841
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5612
|
-
var
|
|
5842
|
+
var import_joy61 = require("@mui/joy");
|
|
5613
5843
|
var import_base5 = require("@mui/base");
|
|
5614
|
-
var StyledPopper4 = (0,
|
|
5844
|
+
var StyledPopper4 = (0, import_joy61.styled)(import_base5.Popper, {
|
|
5615
5845
|
name: "MonthRangePicker",
|
|
5616
5846
|
slot: "popper"
|
|
5617
5847
|
})(({ theme }) => ({
|
|
5618
5848
|
zIndex: theme.zIndex.tooltip
|
|
5619
5849
|
}));
|
|
5620
|
-
var CalendarSheet4 = (0,
|
|
5850
|
+
var CalendarSheet4 = (0, import_joy61.styled)(Sheet_default, {
|
|
5621
5851
|
name: "MonthRangePicker",
|
|
5622
5852
|
slot: "sheet",
|
|
5623
5853
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5627,7 +5857,7 @@ var CalendarSheet4 = (0, import_joy59.styled)(Sheet_default, {
|
|
|
5627
5857
|
boxShadow: theme.shadow.md,
|
|
5628
5858
|
borderRadius: theme.radius.md
|
|
5629
5859
|
}));
|
|
5630
|
-
var MonthRangePickerRoot = (0,
|
|
5860
|
+
var MonthRangePickerRoot = (0, import_joy61.styled)("div", {
|
|
5631
5861
|
name: "MonthRangePicker",
|
|
5632
5862
|
slot: "root",
|
|
5633
5863
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5664,9 +5894,9 @@ var parseDates2 = (str) => {
|
|
|
5664
5894
|
var formatToPattern3 = (format) => {
|
|
5665
5895
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
5666
5896
|
};
|
|
5667
|
-
var TextMaskAdapter9 =
|
|
5897
|
+
var TextMaskAdapter9 = import_react48.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
5668
5898
|
const { onChange, format, ...other } = props;
|
|
5669
|
-
return /* @__PURE__ */
|
|
5899
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
5670
5900
|
import_react_imask3.IMaskInput,
|
|
5671
5901
|
{
|
|
5672
5902
|
...other,
|
|
@@ -5694,8 +5924,8 @@ var TextMaskAdapter9 = import_react45.default.forwardRef(function TextMaskAdapte
|
|
|
5694
5924
|
}
|
|
5695
5925
|
);
|
|
5696
5926
|
});
|
|
5697
|
-
var MonthRangePicker = (0,
|
|
5698
|
-
const props = (0,
|
|
5927
|
+
var MonthRangePicker = (0, import_react48.forwardRef)((inProps, ref) => {
|
|
5928
|
+
const props = (0, import_joy61.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
5699
5929
|
const {
|
|
5700
5930
|
onChange,
|
|
5701
5931
|
disabled,
|
|
@@ -5714,35 +5944,35 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5714
5944
|
size,
|
|
5715
5945
|
...innerProps
|
|
5716
5946
|
} = props;
|
|
5717
|
-
const innerRef = (0,
|
|
5947
|
+
const innerRef = (0, import_react48.useRef)(null);
|
|
5718
5948
|
const [value, setValue] = useControlledState(
|
|
5719
5949
|
props.value,
|
|
5720
5950
|
props.defaultValue || "",
|
|
5721
|
-
(0,
|
|
5951
|
+
(0, import_react48.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5722
5952
|
);
|
|
5723
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5953
|
+
const [anchorEl, setAnchorEl] = (0, import_react48.useState)(null);
|
|
5724
5954
|
const open = Boolean(anchorEl);
|
|
5725
|
-
const calendarValue = (0,
|
|
5726
|
-
(0,
|
|
5955
|
+
const calendarValue = (0, import_react48.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
5956
|
+
(0, import_react48.useEffect)(() => {
|
|
5727
5957
|
if (!anchorEl) {
|
|
5728
5958
|
innerRef.current?.blur();
|
|
5729
5959
|
}
|
|
5730
5960
|
}, [anchorEl, innerRef]);
|
|
5731
|
-
(0,
|
|
5732
|
-
const handleChange = (0,
|
|
5961
|
+
(0, import_react48.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5962
|
+
const handleChange = (0, import_react48.useCallback)(
|
|
5733
5963
|
(event) => {
|
|
5734
5964
|
setValue(event.target.value);
|
|
5735
5965
|
},
|
|
5736
5966
|
[setValue]
|
|
5737
5967
|
);
|
|
5738
|
-
const handleCalendarToggle = (0,
|
|
5968
|
+
const handleCalendarToggle = (0, import_react48.useCallback)(
|
|
5739
5969
|
(event) => {
|
|
5740
5970
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5741
5971
|
innerRef.current?.focus();
|
|
5742
5972
|
},
|
|
5743
5973
|
[anchorEl, setAnchorEl, innerRef]
|
|
5744
5974
|
);
|
|
5745
|
-
const handleCalendarChange = (0,
|
|
5975
|
+
const handleCalendarChange = (0, import_react48.useCallback)(
|
|
5746
5976
|
([date1, date2]) => {
|
|
5747
5977
|
if (!date1 || !date2) return;
|
|
5748
5978
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -5750,7 +5980,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5750
5980
|
},
|
|
5751
5981
|
[setValue, setAnchorEl, format]
|
|
5752
5982
|
);
|
|
5753
|
-
return /* @__PURE__ */
|
|
5983
|
+
return /* @__PURE__ */ import_react48.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react48.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(
|
|
5754
5984
|
Input_default,
|
|
5755
5985
|
{
|
|
5756
5986
|
...innerProps,
|
|
@@ -5772,7 +6002,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5772
6002
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5773
6003
|
fontFamily: "monospace"
|
|
5774
6004
|
},
|
|
5775
|
-
endDecorator: /* @__PURE__ */
|
|
6005
|
+
endDecorator: /* @__PURE__ */ import_react48.default.createElement(
|
|
5776
6006
|
IconButton_default,
|
|
5777
6007
|
{
|
|
5778
6008
|
variant: "plain",
|
|
@@ -5782,12 +6012,12 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5782
6012
|
"aria-haspopup": "dialog",
|
|
5783
6013
|
"aria-expanded": open
|
|
5784
6014
|
},
|
|
5785
|
-
/* @__PURE__ */
|
|
6015
|
+
/* @__PURE__ */ import_react48.default.createElement(import_CalendarToday4.default, null)
|
|
5786
6016
|
),
|
|
5787
6017
|
label,
|
|
5788
6018
|
helperText
|
|
5789
6019
|
}
|
|
5790
|
-
), open && /* @__PURE__ */
|
|
6020
|
+
), open && /* @__PURE__ */ import_react48.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react48.default.createElement(
|
|
5791
6021
|
StyledPopper4,
|
|
5792
6022
|
{
|
|
5793
6023
|
id: "month-range-picker-popper",
|
|
@@ -5806,7 +6036,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5806
6036
|
"aria-label": "Calendar Tooltip",
|
|
5807
6037
|
"aria-expanded": open
|
|
5808
6038
|
},
|
|
5809
|
-
/* @__PURE__ */
|
|
6039
|
+
/* @__PURE__ */ import_react48.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react48.default.createElement(
|
|
5810
6040
|
Calendar_default,
|
|
5811
6041
|
{
|
|
5812
6042
|
view: "month",
|
|
@@ -5819,14 +6049,14 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5819
6049
|
disableFuture,
|
|
5820
6050
|
disablePast
|
|
5821
6051
|
}
|
|
5822
|
-
), /* @__PURE__ */
|
|
6052
|
+
), /* @__PURE__ */ import_react48.default.createElement(
|
|
5823
6053
|
DialogActions_default,
|
|
5824
6054
|
{
|
|
5825
6055
|
sx: {
|
|
5826
6056
|
p: 1
|
|
5827
6057
|
}
|
|
5828
6058
|
},
|
|
5829
|
-
/* @__PURE__ */
|
|
6059
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
5830
6060
|
Button_default,
|
|
5831
6061
|
{
|
|
5832
6062
|
size,
|
|
@@ -5845,22 +6075,22 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5845
6075
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
5846
6076
|
|
|
5847
6077
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
5848
|
-
var
|
|
5849
|
-
var
|
|
5850
|
-
var AccordionSummary2 = (0,
|
|
6078
|
+
var import_react49 = __toESM(require("react"));
|
|
6079
|
+
var import_joy62 = require("@mui/joy");
|
|
6080
|
+
var AccordionSummary2 = (0, import_joy62.styled)(import_joy62.AccordionSummary, {
|
|
5851
6081
|
name: "NavigationGroup",
|
|
5852
6082
|
slot: "Summary",
|
|
5853
6083
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
5854
6084
|
})(({ theme, useIcon, level }) => ({
|
|
5855
|
-
[`& .${
|
|
6085
|
+
[`& .${import_joy62.accordionSummaryClasses.button}`]: {
|
|
5856
6086
|
padding: theme.spacing(4, 6, 4, (useIcon ? 6 : 8) + (level || 0) * 8),
|
|
5857
|
-
[`&.${
|
|
6087
|
+
[`&.${import_joy62.accordionSummaryClasses.expanded}`]: {
|
|
5858
6088
|
color: theme.palette.primary.plainColor,
|
|
5859
6089
|
"--Icon-color": theme.palette.primary.plainColor
|
|
5860
6090
|
}
|
|
5861
6091
|
}
|
|
5862
6092
|
}));
|
|
5863
|
-
var AccordionDetails2 = (0,
|
|
6093
|
+
var AccordionDetails2 = (0, import_joy62.styled)(import_joy62.AccordionDetails, {
|
|
5864
6094
|
name: "NavigationGroup",
|
|
5865
6095
|
slot: "Details"
|
|
5866
6096
|
})(({ theme }) => ({
|
|
@@ -5869,13 +6099,13 @@ var AccordionDetails2 = (0, import_joy60.styled)(import_joy60.AccordionDetails,
|
|
|
5869
6099
|
}));
|
|
5870
6100
|
function NavigationGroup(props) {
|
|
5871
6101
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
5872
|
-
return /* @__PURE__ */
|
|
6102
|
+
return /* @__PURE__ */ import_react49.default.createElement(import_joy62.Accordion, { ...rest }, /* @__PURE__ */ import_react49.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react49.default.createElement(import_joy62.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react49.default.createElement(AccordionDetails2, null, children));
|
|
5873
6103
|
}
|
|
5874
6104
|
|
|
5875
6105
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
5876
|
-
var
|
|
5877
|
-
var
|
|
5878
|
-
var ListItemButton = (0,
|
|
6106
|
+
var import_react50 = __toESM(require("react"));
|
|
6107
|
+
var import_joy63 = require("@mui/joy");
|
|
6108
|
+
var ListItemButton = (0, import_joy63.styled)(import_joy63.ListItemButton, {
|
|
5879
6109
|
name: "NavigationItem",
|
|
5880
6110
|
slot: "Button",
|
|
5881
6111
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
@@ -5889,7 +6119,7 @@ var ListItemButton = (0, import_joy61.styled)(import_joy61.ListItemButton, {
|
|
|
5889
6119
|
"&:active": {
|
|
5890
6120
|
backgroundColor: theme.palette.neutral.plainActiveBg
|
|
5891
6121
|
},
|
|
5892
|
-
[`&.${
|
|
6122
|
+
[`&.${import_joy63.listItemButtonClasses.selected}`]: {
|
|
5893
6123
|
color: theme.palette.primary.plainColor,
|
|
5894
6124
|
"--Icon-color": theme.palette.primary.plainColor,
|
|
5895
6125
|
"&:not(:hover):not(:active)": {
|
|
@@ -5902,7 +6132,7 @@ function NavigationItem(props) {
|
|
|
5902
6132
|
const handleClick = () => {
|
|
5903
6133
|
onClick?.(id);
|
|
5904
6134
|
};
|
|
5905
|
-
return /* @__PURE__ */
|
|
6135
|
+
return /* @__PURE__ */ import_react50.default.createElement(import_joy63.ListItem, { ...rest }, /* @__PURE__ */ import_react50.default.createElement(
|
|
5906
6136
|
ListItemButton,
|
|
5907
6137
|
{
|
|
5908
6138
|
level,
|
|
@@ -5911,21 +6141,21 @@ function NavigationItem(props) {
|
|
|
5911
6141
|
"aria-current": selected,
|
|
5912
6142
|
onClick: handleClick
|
|
5913
6143
|
},
|
|
5914
|
-
startDecorator && /* @__PURE__ */
|
|
6144
|
+
startDecorator && /* @__PURE__ */ import_react50.default.createElement(import_joy63.ListItemDecorator, null, startDecorator),
|
|
5915
6145
|
children
|
|
5916
6146
|
));
|
|
5917
6147
|
}
|
|
5918
6148
|
|
|
5919
6149
|
// src/components/Navigator/Navigator.tsx
|
|
5920
|
-
var
|
|
6150
|
+
var import_react51 = __toESM(require("react"));
|
|
5921
6151
|
function Navigator(props) {
|
|
5922
6152
|
const { items, level = 0, onSelect } = props;
|
|
5923
6153
|
const handleItemClick = (id) => {
|
|
5924
6154
|
onSelect?.(id);
|
|
5925
6155
|
};
|
|
5926
|
-
return /* @__PURE__ */
|
|
6156
|
+
return /* @__PURE__ */ import_react51.default.createElement("div", null, items.map((item, index) => {
|
|
5927
6157
|
if (item.type === "item") {
|
|
5928
|
-
return /* @__PURE__ */
|
|
6158
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5929
6159
|
NavigationItem,
|
|
5930
6160
|
{
|
|
5931
6161
|
key: item.id,
|
|
@@ -5938,7 +6168,7 @@ function Navigator(props) {
|
|
|
5938
6168
|
item.title
|
|
5939
6169
|
);
|
|
5940
6170
|
} else if (item.type === "group") {
|
|
5941
|
-
return /* @__PURE__ */
|
|
6171
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5942
6172
|
NavigationGroup,
|
|
5943
6173
|
{
|
|
5944
6174
|
key: `${item.title}-${index}`,
|
|
@@ -5956,22 +6186,22 @@ function Navigator(props) {
|
|
|
5956
6186
|
Navigator.displayName = "Navigator";
|
|
5957
6187
|
|
|
5958
6188
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
5959
|
-
var
|
|
5960
|
-
var
|
|
6189
|
+
var import_react52 = __toESM(require("react"));
|
|
6190
|
+
var import_joy64 = require("@mui/joy");
|
|
5961
6191
|
var import_base6 = require("@mui/base");
|
|
5962
6192
|
var import_ArrowDropDown = __toESM(require("@mui/icons-material/ArrowDropDown"));
|
|
5963
|
-
var StyledProfileCard = (0,
|
|
6193
|
+
var StyledProfileCard = (0, import_joy64.styled)(import_joy3.Stack, {
|
|
5964
6194
|
name: "ProfileMenu",
|
|
5965
6195
|
slot: "item"
|
|
5966
6196
|
})({});
|
|
5967
6197
|
function ProfileCard(props) {
|
|
5968
6198
|
const { children, chip, caption, size } = props;
|
|
5969
|
-
const captionLevel = (0,
|
|
5970
|
-
const nameLevel = (0,
|
|
5971
|
-
return /* @__PURE__ */
|
|
6199
|
+
const captionLevel = (0, import_react52.useMemo)(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
6200
|
+
const nameLevel = (0, import_react52.useMemo)(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
6201
|
+
return /* @__PURE__ */ import_react52.default.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ import_react52.default.createElement(import_joy3.Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ import_react52.default.createElement(Typography, { level: nameLevel, fontWeight: "bold", textColor: "text.primary" }, children), chip && /* @__PURE__ */ import_react52.default.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ import_react52.default.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
|
|
5972
6202
|
}
|
|
5973
6203
|
ProfileCard.displayName = "ProfileCard";
|
|
5974
|
-
var StyledProfileMenuButton = (0,
|
|
6204
|
+
var StyledProfileMenuButton = (0, import_joy64.styled)(import_joy64.MenuButton, {
|
|
5975
6205
|
name: "ProfileMenu",
|
|
5976
6206
|
slot: "button"
|
|
5977
6207
|
})(({ theme }) => ({
|
|
@@ -5980,26 +6210,26 @@ var StyledProfileMenuButton = (0, import_joy62.styled)(import_joy62.MenuButton,
|
|
|
5980
6210
|
}));
|
|
5981
6211
|
function ProfileMenuButton(props) {
|
|
5982
6212
|
const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
|
|
5983
|
-
return /* @__PURE__ */
|
|
6213
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5984
6214
|
StyledProfileMenuButton,
|
|
5985
6215
|
{
|
|
5986
6216
|
variant: "plain",
|
|
5987
6217
|
color: "neutral",
|
|
5988
6218
|
size,
|
|
5989
|
-
endDecorator: /* @__PURE__ */
|
|
6219
|
+
endDecorator: /* @__PURE__ */ import_react52.default.createElement(import_ArrowDropDown.default, null),
|
|
5990
6220
|
...innerProps
|
|
5991
6221
|
},
|
|
5992
|
-
/* @__PURE__ */
|
|
6222
|
+
/* @__PURE__ */ import_react52.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
5993
6223
|
);
|
|
5994
6224
|
}
|
|
5995
6225
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
5996
|
-
var ProfileMenuRoot = (0,
|
|
6226
|
+
var ProfileMenuRoot = (0, import_joy64.styled)(Menu, {
|
|
5997
6227
|
name: "ProfileMenu",
|
|
5998
6228
|
slot: "root"
|
|
5999
6229
|
})(({ theme }) => ({
|
|
6000
6230
|
border: "none",
|
|
6001
6231
|
"--ListItem-paddingX": theme.spacing(4),
|
|
6002
|
-
[`.${
|
|
6232
|
+
[`.${import_joy64.menuItemClasses.root}`]: {
|
|
6003
6233
|
border: "none"
|
|
6004
6234
|
}
|
|
6005
6235
|
}));
|
|
@@ -6008,9 +6238,9 @@ function ProfileMenu(props) {
|
|
|
6008
6238
|
const [open, setOpen] = useControlledState(
|
|
6009
6239
|
_open,
|
|
6010
6240
|
defaultOpen ?? false,
|
|
6011
|
-
(0,
|
|
6241
|
+
(0, import_react52.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
|
|
6012
6242
|
);
|
|
6013
|
-
return /* @__PURE__ */
|
|
6243
|
+
return /* @__PURE__ */ import_react52.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ import_react52.default.createElement("div", null, /* @__PURE__ */ import_react52.default.createElement(import_joy64.Dropdown, { open }, /* @__PURE__ */ import_react52.default.createElement(
|
|
6014
6244
|
ProfileMenuButton,
|
|
6015
6245
|
{
|
|
6016
6246
|
size,
|
|
@@ -6020,7 +6250,7 @@ function ProfileMenu(props) {
|
|
|
6020
6250
|
getInitial
|
|
6021
6251
|
},
|
|
6022
6252
|
profile.name
|
|
6023
|
-
), /* @__PURE__ */
|
|
6253
|
+
), /* @__PURE__ */ import_react52.default.createElement(ProfileMenuRoot, { size, placement: "bottom-end", ...innerProps, onClose: () => setOpen(false) }, /* @__PURE__ */ import_react52.default.createElement(ProfileCard, { size, caption: profile.caption, chip: profile.chip }, profile.name), !!menuItems.length && /* @__PURE__ */ import_react52.default.createElement(import_joy64.ListDivider, null), menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ import_react52.default.createElement(
|
|
6024
6254
|
MenuItem,
|
|
6025
6255
|
{
|
|
6026
6256
|
key: label,
|
|
@@ -6036,31 +6266,31 @@ function ProfileMenu(props) {
|
|
|
6036
6266
|
ProfileMenu.displayName = "ProfileMenu";
|
|
6037
6267
|
|
|
6038
6268
|
// src/components/RadioList/RadioList.tsx
|
|
6039
|
-
var
|
|
6269
|
+
var import_react53 = __toESM(require("react"));
|
|
6040
6270
|
function RadioList(props) {
|
|
6041
6271
|
const { items, ...innerProps } = props;
|
|
6042
|
-
return /* @__PURE__ */
|
|
6272
|
+
return /* @__PURE__ */ import_react53.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react53.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
6043
6273
|
}
|
|
6044
6274
|
RadioList.displayName = "RadioList";
|
|
6045
6275
|
|
|
6046
6276
|
// src/components/Stepper/Stepper.tsx
|
|
6047
|
-
var
|
|
6048
|
-
var
|
|
6277
|
+
var import_react54 = __toESM(require("react"));
|
|
6278
|
+
var import_joy65 = require("@mui/joy");
|
|
6049
6279
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
6050
|
-
var
|
|
6051
|
-
var Step = (0,
|
|
6280
|
+
var import_framer_motion28 = require("framer-motion");
|
|
6281
|
+
var Step = (0, import_joy65.styled)(import_joy65.Step)({});
|
|
6052
6282
|
Step.displayName = "Step";
|
|
6053
|
-
var StepIndicator = (0,
|
|
6283
|
+
var StepIndicator = (0, import_joy65.styled)(import_joy65.StepIndicator)({});
|
|
6054
6284
|
StepIndicator.displayName = "StepIndicator";
|
|
6055
|
-
var StyledStepper = (0,
|
|
6285
|
+
var StyledStepper = (0, import_joy65.styled)(import_joy65.Stepper)(({ theme }) => ({
|
|
6056
6286
|
"--StepIndicator-size": "24px",
|
|
6057
6287
|
"--Step-gap": theme.spacing(2),
|
|
6058
6288
|
"--joy-palette-success-solidBg": "var(--joy-palette-success-400)",
|
|
6059
|
-
[`& .${
|
|
6289
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6060
6290
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
6061
6291
|
}
|
|
6062
6292
|
}));
|
|
6063
|
-
var MotionStepper = (0,
|
|
6293
|
+
var MotionStepper = (0, import_framer_motion28.motion)(StyledStepper);
|
|
6064
6294
|
function Stepper(props) {
|
|
6065
6295
|
const {
|
|
6066
6296
|
steps,
|
|
@@ -6070,30 +6300,30 @@ function Stepper(props) {
|
|
|
6070
6300
|
inactiveLineColor = "neutral.300",
|
|
6071
6301
|
activeStep
|
|
6072
6302
|
} = props;
|
|
6073
|
-
return /* @__PURE__ */
|
|
6303
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
6074
6304
|
MotionStepper,
|
|
6075
6305
|
{
|
|
6076
6306
|
sx: (theme) => ({
|
|
6077
6307
|
"--StepIndicator-size": "24px",
|
|
6078
6308
|
"--Step-gap": theme.spacing(2),
|
|
6079
|
-
[`& .${
|
|
6309
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6080
6310
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
6081
6311
|
},
|
|
6082
|
-
[`& .${
|
|
6312
|
+
[`& .${import_joy65.stepClasses.completed}`]: {
|
|
6083
6313
|
"&::after": { bgcolor: activeLineColor },
|
|
6084
|
-
[`& .${
|
|
6314
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6085
6315
|
bgcolor: activeColor
|
|
6086
6316
|
}
|
|
6087
6317
|
},
|
|
6088
|
-
[`& .${
|
|
6318
|
+
[`& .${import_joy65.stepClasses.active}`]: {
|
|
6089
6319
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6090
|
-
[`& .${
|
|
6320
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6091
6321
|
bgcolor: activeColor
|
|
6092
6322
|
}
|
|
6093
6323
|
},
|
|
6094
|
-
[`& .${
|
|
6324
|
+
[`& .${import_joy65.stepClasses.disabled}`]: {
|
|
6095
6325
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6096
|
-
[`& .${
|
|
6326
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6097
6327
|
bgcolor: inactiveColor
|
|
6098
6328
|
}
|
|
6099
6329
|
}
|
|
@@ -6104,16 +6334,16 @@ function Stepper(props) {
|
|
|
6104
6334
|
const completed = activeStep > i + 1;
|
|
6105
6335
|
const disabled = activeStep < i + 1;
|
|
6106
6336
|
const hasContent = step.label || step.extraContent;
|
|
6107
|
-
return /* @__PURE__ */
|
|
6337
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
6108
6338
|
Step,
|
|
6109
6339
|
{
|
|
6110
6340
|
key: `step-${i}`,
|
|
6111
|
-
indicator: /* @__PURE__ */
|
|
6341
|
+
indicator: /* @__PURE__ */ import_react54.default.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ import_react54.default.createElement(import_Check.default, null) : step.indicatorContent),
|
|
6112
6342
|
active,
|
|
6113
6343
|
completed,
|
|
6114
6344
|
disabled
|
|
6115
6345
|
},
|
|
6116
|
-
hasContent && /* @__PURE__ */
|
|
6346
|
+
hasContent && /* @__PURE__ */ import_react54.default.createElement(Stack_default, null, step.label && /* @__PURE__ */ import_react54.default.createElement(Typography_default, { level: "title-sm" }, step.label), step.extraContent && /* @__PURE__ */ import_react54.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent))
|
|
6117
6347
|
);
|
|
6118
6348
|
})
|
|
6119
6349
|
);
|
|
@@ -6121,11 +6351,11 @@ function Stepper(props) {
|
|
|
6121
6351
|
Stepper.displayName = "Stepper";
|
|
6122
6352
|
|
|
6123
6353
|
// src/components/Switch/Switch.tsx
|
|
6124
|
-
var
|
|
6125
|
-
var
|
|
6126
|
-
var
|
|
6127
|
-
var MotionSwitch = (0,
|
|
6128
|
-
var StyledThumb = (0,
|
|
6354
|
+
var import_react55 = __toESM(require("react"));
|
|
6355
|
+
var import_joy66 = require("@mui/joy");
|
|
6356
|
+
var import_framer_motion29 = require("framer-motion");
|
|
6357
|
+
var MotionSwitch = (0, import_framer_motion29.motion)(import_joy66.Switch);
|
|
6358
|
+
var StyledThumb = (0, import_joy66.styled)(import_framer_motion29.motion.div)({
|
|
6129
6359
|
"--Icon-fontSize": "calc(var(--Switch-thumbSize) * 0.75)",
|
|
6130
6360
|
display: "inline-flex",
|
|
6131
6361
|
justifyContent: "center",
|
|
@@ -6138,19 +6368,19 @@ var StyledThumb = (0, import_joy64.styled)(import_framer_motion28.motion.div)({
|
|
|
6138
6368
|
boxShadow: "var(--Switch-thumbShadow)",
|
|
6139
6369
|
color: "var(--Switch-thumbColor)",
|
|
6140
6370
|
backgroundColor: "var(--Switch-thumbBackground)",
|
|
6141
|
-
[`&.${
|
|
6371
|
+
[`&.${import_joy66.switchClasses.checked}`]: {
|
|
6142
6372
|
left: "unset",
|
|
6143
6373
|
right: "var(--Switch-thumbOffset)"
|
|
6144
6374
|
}
|
|
6145
6375
|
});
|
|
6146
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
6376
|
+
var Thumb = (props) => /* @__PURE__ */ import_react55.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
6147
6377
|
var spring = {
|
|
6148
6378
|
type: "spring",
|
|
6149
6379
|
stiffness: 700,
|
|
6150
6380
|
damping: 30
|
|
6151
6381
|
};
|
|
6152
6382
|
var Switch = (props) => {
|
|
6153
|
-
return /* @__PURE__ */
|
|
6383
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
6154
6384
|
MotionSwitch,
|
|
6155
6385
|
{
|
|
6156
6386
|
...props,
|
|
@@ -6164,32 +6394,32 @@ var Switch = (props) => {
|
|
|
6164
6394
|
Switch.displayName = "Switch";
|
|
6165
6395
|
|
|
6166
6396
|
// src/components/Tabs/Tabs.tsx
|
|
6167
|
-
var
|
|
6168
|
-
var
|
|
6169
|
-
var StyledTabs = (0,
|
|
6397
|
+
var import_react56 = __toESM(require("react"));
|
|
6398
|
+
var import_joy67 = require("@mui/joy");
|
|
6399
|
+
var StyledTabs = (0, import_joy67.styled)(import_joy67.Tabs)(({ theme }) => ({
|
|
6170
6400
|
backgroundColor: theme.palette.background.body
|
|
6171
6401
|
}));
|
|
6172
6402
|
var Tabs = StyledTabs;
|
|
6173
6403
|
Tabs.displayName = "Tabs";
|
|
6174
|
-
var StyledTab = (0,
|
|
6404
|
+
var StyledTab = (0, import_joy67.styled)(import_joy67.Tab)(({ theme }) => ({
|
|
6175
6405
|
gap: theme.spacing(2),
|
|
6176
|
-
[`&:not(.${
|
|
6406
|
+
[`&:not(.${import_joy67.tabClasses.selected})`]: {
|
|
6177
6407
|
color: theme.palette.neutral[700]
|
|
6178
6408
|
},
|
|
6179
|
-
[`&.${
|
|
6409
|
+
[`&.${import_joy67.tabClasses.variantPlain}`]: {
|
|
6180
6410
|
backgroundColor: theme.palette.background.body
|
|
6181
6411
|
}
|
|
6182
6412
|
}));
|
|
6183
|
-
var Tab = (0,
|
|
6184
|
-
return /* @__PURE__ */
|
|
6413
|
+
var Tab = (0, import_react56.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
6414
|
+
return /* @__PURE__ */ import_react56.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
6185
6415
|
});
|
|
6186
6416
|
Tab.displayName = "Tab";
|
|
6187
|
-
var TabList =
|
|
6188
|
-
var TabPanel =
|
|
6417
|
+
var TabList = import_joy67.TabList;
|
|
6418
|
+
var TabPanel = import_joy67.TabPanel;
|
|
6189
6419
|
|
|
6190
6420
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
6191
|
-
var
|
|
6192
|
-
var
|
|
6421
|
+
var import_react57 = __toESM(require("react"));
|
|
6422
|
+
var import_joy68 = require("@mui/joy");
|
|
6193
6423
|
var colorScheme = {
|
|
6194
6424
|
palette: {
|
|
6195
6425
|
danger: {
|
|
@@ -6242,7 +6472,7 @@ var colorScheme = {
|
|
|
6242
6472
|
}
|
|
6243
6473
|
}
|
|
6244
6474
|
};
|
|
6245
|
-
var defaultTheme = (0,
|
|
6475
|
+
var defaultTheme = (0, import_joy68.extendTheme)({
|
|
6246
6476
|
cssVarPrefix: "ceed",
|
|
6247
6477
|
spacing: 4,
|
|
6248
6478
|
breakpoints: {
|
|
@@ -6269,7 +6499,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6269
6499
|
},
|
|
6270
6500
|
styleOverrides: {
|
|
6271
6501
|
root: {
|
|
6272
|
-
[`.${
|
|
6502
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6273
6503
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6274
6504
|
"font-family": "monospace"
|
|
6275
6505
|
}
|
|
@@ -6282,7 +6512,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6282
6512
|
},
|
|
6283
6513
|
styleOverrides: {
|
|
6284
6514
|
root: {
|
|
6285
|
-
[`.${
|
|
6515
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6286
6516
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6287
6517
|
"font-family": "monospace"
|
|
6288
6518
|
}
|
|
@@ -6295,7 +6525,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6295
6525
|
},
|
|
6296
6526
|
styleOverrides: {
|
|
6297
6527
|
root: {
|
|
6298
|
-
[`.${
|
|
6528
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6299
6529
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6300
6530
|
"font-family": "monospace"
|
|
6301
6531
|
}
|
|
@@ -6308,7 +6538,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6308
6538
|
},
|
|
6309
6539
|
styleOverrides: {
|
|
6310
6540
|
root: {
|
|
6311
|
-
[`.${
|
|
6541
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6312
6542
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6313
6543
|
"font-family": "monospace"
|
|
6314
6544
|
}
|
|
@@ -6321,7 +6551,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6321
6551
|
},
|
|
6322
6552
|
styleOverrides: {
|
|
6323
6553
|
root: {
|
|
6324
|
-
[`.${
|
|
6554
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6325
6555
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6326
6556
|
"font-family": "monospace"
|
|
6327
6557
|
}
|
|
@@ -6334,7 +6564,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6334
6564
|
},
|
|
6335
6565
|
styleOverrides: {
|
|
6336
6566
|
root: {
|
|
6337
|
-
[`.${
|
|
6567
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6338
6568
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6339
6569
|
"font-family": "monospace"
|
|
6340
6570
|
}
|
|
@@ -6412,7 +6642,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6412
6642
|
outline: `${theme.palette.primary[500]} solid 2px`,
|
|
6413
6643
|
outlineOffset: "-2px"
|
|
6414
6644
|
},
|
|
6415
|
-
[`& .${
|
|
6645
|
+
[`& .${import_joy68.checkboxClasses.root}`]: {
|
|
6416
6646
|
verticalAlign: "middle"
|
|
6417
6647
|
}
|
|
6418
6648
|
})
|
|
@@ -6467,6 +6697,6 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6467
6697
|
});
|
|
6468
6698
|
function ThemeProvider(props) {
|
|
6469
6699
|
const theme = props.theme || defaultTheme;
|
|
6470
|
-
return /* @__PURE__ */
|
|
6700
|
+
return /* @__PURE__ */ import_react57.default.createElement(import_react57.default.Fragment, null, /* @__PURE__ */ import_react57.default.createElement(import_joy68.CssVarsProvider, { theme }, /* @__PURE__ */ import_react57.default.createElement(import_joy68.CssBaseline, null), props.children));
|
|
6471
6701
|
}
|
|
6472
6702
|
ThemeProvider.displayName = "ThemeProvider";
|