@ceed/ads 1.9.0 → 1.11.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/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 +13 -3
- package/dist/components/DataTable/utils.d.ts +16 -0
- package/dist/index.cjs +1608 -1560
- package/dist/index.js +1191 -1139
- package/framer/index.js +42 -42
- package/package.json +3 -2
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,1066 +1922,861 @@ 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"
|
|
1995
|
-
}
|
|
1996
|
-
},
|
|
1997
|
-
/* @__PURE__ */ import_react18.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
|
|
1998
|
-
), cellOrder.map((cellKey) => /* @__PURE__ */ import_react18.default.createElement(
|
|
1999
|
-
"td",
|
|
2000
|
-
{
|
|
2001
|
-
key: cellKey,
|
|
2002
|
-
style: {
|
|
2003
|
-
textAlign: rowOptions?.[cellKey]?.numeric ? "right" : "left"
|
|
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
|
+
}
|
|
2004
1954
|
}
|
|
2005
|
-
},
|
|
2006
|
-
row[cellKey]
|
|
2007
|
-
)))));
|
|
2008
|
-
}
|
|
2009
|
-
TableBody.displayName = "TableBody";
|
|
2010
|
-
|
|
2011
|
-
// src/components/DatePicker/DatePicker.tsx
|
|
2012
|
-
var import_react19 = __toESM(require("react"));
|
|
2013
|
-
var import_react_imask = require("react-imask");
|
|
2014
|
-
var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
2015
|
-
var import_joy27 = require("@mui/joy");
|
|
2016
|
-
var import_base2 = require("@mui/base");
|
|
2017
|
-
|
|
2018
|
-
// src/components/DialogActions/DialogActions.tsx
|
|
2019
|
-
var import_joy26 = require("@mui/joy");
|
|
2020
|
-
var import_framer_motion17 = require("framer-motion");
|
|
2021
|
-
var MotionDialogActions = (0, import_framer_motion17.motion)(import_joy26.DialogActions);
|
|
2022
|
-
var StyledDialogActions = (0, import_joy26.styled)(MotionDialogActions)(({ theme }) => ({
|
|
2023
|
-
padding: theme.spacing(2),
|
|
2024
|
-
gap: theme.spacing(2),
|
|
2025
|
-
flexDirection: "row",
|
|
2026
|
-
justifyContent: "flex-end"
|
|
2027
|
-
}));
|
|
2028
|
-
var DialogActions = StyledDialogActions;
|
|
2029
|
-
DialogActions.displayName = "DialogActions";
|
|
2030
|
-
|
|
2031
|
-
// src/components/DialogActions/index.ts
|
|
2032
|
-
var DialogActions_default = DialogActions;
|
|
2033
|
-
|
|
2034
|
-
// src/components/DatePicker/DatePicker.tsx
|
|
2035
|
-
var CalendarButton = (0, import_joy27.styled)(IconButton_default, {
|
|
2036
|
-
name: "DatePicker",
|
|
2037
|
-
slot: "calendarButton"
|
|
2038
|
-
})(({ theme }) => ({
|
|
2039
|
-
"&:focus": {
|
|
2040
|
-
"--Icon-color": "currentColor",
|
|
2041
|
-
outlineOffset: `${theme.getCssVar("focus-thickness")}`,
|
|
2042
|
-
outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
|
|
2043
|
-
}
|
|
2044
|
-
}));
|
|
2045
|
-
var StyledPopper = (0, import_joy27.styled)(import_base2.Popper, {
|
|
2046
|
-
name: "DatePicker",
|
|
2047
|
-
slot: "popper"
|
|
2048
|
-
})(({ theme }) => ({
|
|
2049
|
-
zIndex: theme.zIndex.tooltip
|
|
2050
|
-
}));
|
|
2051
|
-
var CalendarSheet = (0, import_joy27.styled)(Sheet_default, {
|
|
2052
|
-
name: "DatePicker",
|
|
2053
|
-
slot: "sheet",
|
|
2054
|
-
overridesResolver: (props, styles) => styles.root
|
|
2055
|
-
})(({ theme }) => ({
|
|
2056
|
-
width: "264px",
|
|
2057
|
-
boxShadow: theme.shadow.md,
|
|
2058
|
-
borderRadius: theme.radius.md
|
|
2059
|
-
}));
|
|
2060
|
-
var DatePickerRoot = (0, import_joy27.styled)("div", {
|
|
2061
|
-
name: "DatePicker",
|
|
2062
|
-
slot: "root",
|
|
2063
|
-
overridesResolver: (props, styles) => styles.root
|
|
2064
|
-
})({
|
|
2065
|
-
width: "100%"
|
|
2066
|
-
});
|
|
2067
|
-
var validValueFormat = (value, format) => {
|
|
2068
|
-
try {
|
|
2069
|
-
const parsedValue = parseDate(value, format);
|
|
2070
|
-
if (parsedValue.toString() === "Invalid Date") {
|
|
2071
|
-
return false;
|
|
2072
1955
|
}
|
|
2073
|
-
|
|
2074
|
-
|
|
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);
|
|
2075
1964
|
}
|
|
2076
|
-
const regex = new RegExp(`^${format.replace(/Y/g, "\\d").replace(/M/g, "\\d").replace(/D/g, "\\d")}$`);
|
|
2077
|
-
return regex.test(value);
|
|
2078
|
-
} catch (e) {
|
|
2079
|
-
return false;
|
|
2080
1965
|
}
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
const year = date.getFullYear();
|
|
2086
|
-
if (Number(day) < 10) day = "0" + day;
|
|
2087
|
-
if (Number(month) < 10) month = "0" + month;
|
|
2088
|
-
return format.replace(/YYYY/g, year.toString()).replace(/MM/g, month).replace(/DD/g, day);
|
|
2089
|
-
};
|
|
2090
|
-
function parseDate(dateString, format) {
|
|
2091
|
-
const formatParts = format.split(/[-./\s]/);
|
|
2092
|
-
const dateParts = dateString.split(/[-./\s]/);
|
|
2093
|
-
if (formatParts.length !== dateParts.length) {
|
|
2094
|
-
throw new Error("Invalid date string or format");
|
|
1966
|
+
for (const column of columns) {
|
|
1967
|
+
if (!fieldsInGroupingModel.has(column.field)) {
|
|
1968
|
+
reorderedColumns.push(column);
|
|
1969
|
+
}
|
|
2095
1970
|
}
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
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
|
+
});
|
|
2109
1986
|
}
|
|
2110
1987
|
}
|
|
2111
|
-
const result = new Date(year, month, day);
|
|
2112
1988
|
return result;
|
|
2113
1989
|
}
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
const
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
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
|
+
}
|
|
2029
|
+
}
|
|
2151
2030
|
}
|
|
2152
|
-
|
|
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 };
|
|
2041
|
+
}
|
|
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"
|
|
2153
2059
|
});
|
|
2154
|
-
var
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
}
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
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"
|
|
2194
2108
|
}
|
|
2195
|
-
},
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
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))"
|
|
2200
2114
|
}
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
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}`
|
|
2204
2135
|
}
|
|
2205
|
-
},
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
return;
|
|
2225
|
-
}
|
|
2226
|
-
const isValidDisplayValue = validValueFormat(event.target.value, displayFormat);
|
|
2227
|
-
if (isValidDisplayValue) {
|
|
2228
|
-
const parsedDate = parseDate(event.target.value, displayFormat);
|
|
2229
|
-
const formattedValue = formatValueString(parsedDate, format);
|
|
2230
|
-
handleChange({
|
|
2231
|
-
target: {
|
|
2232
|
-
name: props.name,
|
|
2233
|
-
value: formattedValue
|
|
2234
|
-
}
|
|
2235
|
-
});
|
|
2236
|
-
}
|
|
2237
|
-
},
|
|
2238
|
-
[displayFormat, format, handleChange, props.name]
|
|
2239
|
-
);
|
|
2240
|
-
const handleCalendarToggle = (0, import_react19.useCallback)(
|
|
2241
|
-
(event) => {
|
|
2242
|
-
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
2243
|
-
setTimeout(() => {
|
|
2244
|
-
innerRef.current?.focus();
|
|
2245
|
-
}, 0);
|
|
2246
|
-
},
|
|
2247
|
-
[anchorEl, setAnchorEl, innerRef]
|
|
2248
|
-
);
|
|
2249
|
-
const handleInputMouseDown = (0, import_react19.useCallback)(
|
|
2250
|
-
(event) => {
|
|
2251
|
-
if (inputReadOnly) {
|
|
2252
|
-
event.preventDefault();
|
|
2253
|
-
buttonRef.current?.focus();
|
|
2254
|
-
}
|
|
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"
|
|
2255
2155
|
},
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
size,
|
|
2265
|
-
value: displayValue,
|
|
2266
|
-
onChange: handleDisplayInputChange,
|
|
2267
|
-
placeholder: displayFormat,
|
|
2268
|
-
disabled,
|
|
2269
|
-
required,
|
|
2270
|
-
error,
|
|
2271
|
-
slotProps: {
|
|
2272
|
-
input: {
|
|
2273
|
-
component: TextMaskAdapter3,
|
|
2274
|
-
ref: innerRef,
|
|
2275
|
-
format: displayFormat,
|
|
2276
|
-
sx: {
|
|
2277
|
-
"&:hover": {
|
|
2278
|
-
cursor: inputReadOnly || readOnly ? "default" : "text"
|
|
2279
|
-
}
|
|
2280
|
-
},
|
|
2281
|
-
onMouseDown: handleInputMouseDown
|
|
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`;
|
|
2282
2164
|
}
|
|
2283
|
-
}
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
variant: "plain",
|
|
2291
|
-
onClick: readOnly ? void 0 : handleCalendarToggle,
|
|
2292
|
-
"aria-label": "Toggle Calendar",
|
|
2293
|
-
"aria-controls": "date-picker-popper",
|
|
2294
|
-
"aria-haspopup": "dialog",
|
|
2295
|
-
"aria-expanded": open,
|
|
2296
|
-
disabled
|
|
2297
|
-
},
|
|
2298
|
-
/* @__PURE__ */ import_react19.default.createElement(import_CalendarToday.default, null)
|
|
2299
|
-
),
|
|
2300
|
-
label,
|
|
2301
|
-
helperText,
|
|
2302
|
-
readOnly: readOnly || inputReadOnly
|
|
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);
|
|
2303
2172
|
}
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
{
|
|
2307
|
-
id: "date-picker-popper",
|
|
2308
|
-
open: true,
|
|
2309
|
-
anchorEl,
|
|
2310
|
-
placement: "bottom-end",
|
|
2311
|
-
onMouseDown: (e) => e.preventDefault(),
|
|
2312
|
-
modifiers: [
|
|
2313
|
-
{
|
|
2314
|
-
name: "offset",
|
|
2315
|
-
options: {
|
|
2316
|
-
offset: [4, 4]
|
|
2317
|
-
}
|
|
2318
|
-
}
|
|
2319
|
-
],
|
|
2320
|
-
"aria-label": "Calendar Tooltip",
|
|
2321
|
-
"aria-expanded": open
|
|
2322
|
-
},
|
|
2323
|
-
/* @__PURE__ */ import_react19.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react19.default.createElement(
|
|
2324
|
-
Calendar_default,
|
|
2325
|
-
{
|
|
2326
|
-
value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
|
|
2327
|
-
onChange: ([date]) => {
|
|
2328
|
-
handleChange({
|
|
2329
|
-
target: {
|
|
2330
|
-
name: props.name,
|
|
2331
|
-
value: formatValueString(date, format)
|
|
2332
|
-
}
|
|
2333
|
-
});
|
|
2334
|
-
setAnchorEl(null);
|
|
2335
|
-
},
|
|
2336
|
-
minDate: minDate ? new Date(minDate) : void 0,
|
|
2337
|
-
maxDate: maxDate ? new Date(maxDate) : void 0,
|
|
2338
|
-
disableFuture,
|
|
2339
|
-
disablePast,
|
|
2340
|
-
shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0
|
|
2341
|
-
}
|
|
2342
|
-
), !hideClearButton && /* @__PURE__ */ import_react19.default.createElement(
|
|
2343
|
-
DialogActions_default,
|
|
2344
|
-
{
|
|
2345
|
-
sx: {
|
|
2346
|
-
p: 1
|
|
2347
|
-
}
|
|
2348
|
-
},
|
|
2349
|
-
/* @__PURE__ */ import_react19.default.createElement(
|
|
2350
|
-
Button_default,
|
|
2351
|
-
{
|
|
2352
|
-
size,
|
|
2353
|
-
variant: "plain",
|
|
2354
|
-
color: "neutral",
|
|
2355
|
-
onClick: () => {
|
|
2356
|
-
handleChange({
|
|
2357
|
-
target: {
|
|
2358
|
-
name: props.name,
|
|
2359
|
-
value: ""
|
|
2360
|
-
}
|
|
2361
|
-
});
|
|
2362
|
-
setAnchorEl(null);
|
|
2363
|
-
}
|
|
2364
|
-
},
|
|
2365
|
-
"Clear"
|
|
2366
|
-
)
|
|
2367
|
-
))
|
|
2368
|
-
)))));
|
|
2369
|
-
});
|
|
2173
|
+
}
|
|
2174
|
+
);
|
|
2370
2175
|
|
|
2371
|
-
// src/components/
|
|
2372
|
-
var
|
|
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");
|
|
2373
2180
|
|
|
2374
|
-
// src/components/
|
|
2375
|
-
var
|
|
2376
|
-
var
|
|
2181
|
+
// src/components/DatePicker/DatePicker.tsx
|
|
2182
|
+
var import_react19 = __toESM(require("react"));
|
|
2183
|
+
var import_react_imask = require("react-imask");
|
|
2184
|
+
var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
2185
|
+
var import_joy27 = require("@mui/joy");
|
|
2186
|
+
var import_base2 = require("@mui/base");
|
|
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
|
+
|
|
2198
|
+
// src/components/DialogActions/DialogActions.tsx
|
|
2199
|
+
var import_joy26 = require("@mui/joy");
|
|
2377
2200
|
var import_framer_motion18 = require("framer-motion");
|
|
2378
|
-
var
|
|
2379
|
-
var
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
required,
|
|
2388
|
-
minRows = 2,
|
|
2389
|
-
maxRows = 4,
|
|
2390
|
-
// NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
|
|
2391
|
-
sx,
|
|
2392
|
-
className,
|
|
2393
|
-
...innerProps
|
|
2394
|
-
} = props;
|
|
2395
|
-
const textarea = /* @__PURE__ */ import_react20.default.createElement(
|
|
2396
|
-
MotionTextarea,
|
|
2397
|
-
{
|
|
2398
|
-
required,
|
|
2399
|
-
disabled,
|
|
2400
|
-
color: error ? "danger" : color,
|
|
2401
|
-
size,
|
|
2402
|
-
minRows,
|
|
2403
|
-
maxRows,
|
|
2404
|
-
...innerProps
|
|
2405
|
-
}
|
|
2406
|
-
);
|
|
2407
|
-
return /* @__PURE__ */ import_react20.default.createElement(
|
|
2408
|
-
FormControl_default,
|
|
2409
|
-
{
|
|
2410
|
-
required,
|
|
2411
|
-
disabled,
|
|
2412
|
-
color,
|
|
2413
|
-
size,
|
|
2414
|
-
error,
|
|
2415
|
-
sx,
|
|
2416
|
-
className
|
|
2417
|
-
},
|
|
2418
|
-
label && /* @__PURE__ */ import_react20.default.createElement(FormLabel_default, null, label),
|
|
2419
|
-
textarea,
|
|
2420
|
-
helperText && /* @__PURE__ */ import_react20.default.createElement(FormHelperText_default, null, helperText)
|
|
2421
|
-
);
|
|
2422
|
-
};
|
|
2423
|
-
Textarea.displayName = "Textarea";
|
|
2201
|
+
var MotionDialogActions = (0, import_framer_motion18.motion)(import_joy26.DialogActions);
|
|
2202
|
+
var StyledDialogActions = (0, import_joy26.styled)(MotionDialogActions)(({ theme }) => ({
|
|
2203
|
+
padding: theme.spacing(2),
|
|
2204
|
+
gap: theme.spacing(2),
|
|
2205
|
+
flexDirection: "row",
|
|
2206
|
+
justifyContent: "flex-end"
|
|
2207
|
+
}));
|
|
2208
|
+
var DialogActions = StyledDialogActions;
|
|
2209
|
+
DialogActions.displayName = "DialogActions";
|
|
2424
2210
|
|
|
2425
|
-
// src/components/
|
|
2426
|
-
var
|
|
2211
|
+
// src/components/DialogActions/index.ts
|
|
2212
|
+
var DialogActions_default = DialogActions;
|
|
2427
2213
|
|
|
2428
|
-
// src/components/
|
|
2429
|
-
var
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
label,
|
|
2438
|
-
helperText,
|
|
2439
|
-
error,
|
|
2440
|
-
size,
|
|
2441
|
-
color,
|
|
2442
|
-
disabled,
|
|
2443
|
-
required,
|
|
2444
|
-
onChange,
|
|
2445
|
-
// NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
|
|
2446
|
-
sx,
|
|
2447
|
-
className,
|
|
2448
|
-
...innerProps
|
|
2449
|
-
} = props;
|
|
2450
|
-
const options = (0, import_react21.useMemo)(
|
|
2451
|
-
() => props.options.map((option) => {
|
|
2452
|
-
if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
|
|
2453
|
-
return option;
|
|
2454
|
-
}
|
|
2455
|
-
return {
|
|
2456
|
-
value: option,
|
|
2457
|
-
label: option
|
|
2458
|
-
};
|
|
2459
|
-
}),
|
|
2460
|
-
[props.options]
|
|
2461
|
-
);
|
|
2462
|
-
const handleChange = (event, newValue) => {
|
|
2463
|
-
const _event = event || { target: {} };
|
|
2464
|
-
const newEvent = {
|
|
2465
|
-
..._event,
|
|
2466
|
-
target: {
|
|
2467
|
-
..._event.target,
|
|
2468
|
-
// @ts-expect-error target에 name이 있을 수 있다.
|
|
2469
|
-
name: _event.target?.name || props.name,
|
|
2470
|
-
value: newValue
|
|
2471
|
-
}
|
|
2472
|
-
};
|
|
2473
|
-
onChange?.(newEvent, newValue);
|
|
2474
|
-
};
|
|
2475
|
-
const select = /* @__PURE__ */ import_react21.default.createElement(
|
|
2476
|
-
import_joy29.Select,
|
|
2477
|
-
{
|
|
2478
|
-
...innerProps,
|
|
2479
|
-
required,
|
|
2480
|
-
disabled,
|
|
2481
|
-
size,
|
|
2482
|
-
color: error ? "danger" : color,
|
|
2483
|
-
onChange: handleChange
|
|
2484
|
-
},
|
|
2485
|
-
options.map((option) => /* @__PURE__ */ import_react21.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.label))
|
|
2486
|
-
);
|
|
2487
|
-
return /* @__PURE__ */ import_react21.default.createElement(
|
|
2488
|
-
FormControl_default,
|
|
2489
|
-
{
|
|
2490
|
-
required,
|
|
2491
|
-
disabled,
|
|
2492
|
-
size,
|
|
2493
|
-
color,
|
|
2494
|
-
error,
|
|
2495
|
-
sx,
|
|
2496
|
-
className
|
|
2497
|
-
},
|
|
2498
|
-
label && /* @__PURE__ */ import_react21.default.createElement(FormLabel_default, null, label),
|
|
2499
|
-
select,
|
|
2500
|
-
helperText && /* @__PURE__ */ import_react21.default.createElement(FormHelperText_default, null, helperText)
|
|
2501
|
-
);
|
|
2502
|
-
}
|
|
2503
|
-
Select.displayName = "Select";
|
|
2504
|
-
|
|
2505
|
-
// src/components/Select/index.ts
|
|
2506
|
-
var Select_default = Select;
|
|
2507
|
-
|
|
2508
|
-
// src/components/Tooltip/Tooltip.tsx
|
|
2509
|
-
var import_react22 = __toESM(require("react"));
|
|
2510
|
-
var import_joy30 = require("@mui/joy");
|
|
2511
|
-
var import_framer_motion20 = require("framer-motion");
|
|
2512
|
-
var MotionTooltip = (0, import_framer_motion20.motion)(import_joy30.Tooltip);
|
|
2513
|
-
var Tooltip = (props) => {
|
|
2514
|
-
return /* @__PURE__ */ import_react22.default.createElement(MotionTooltip, { ...props });
|
|
2515
|
-
};
|
|
2516
|
-
Tooltip.displayName = "Tooltip";
|
|
2517
|
-
|
|
2518
|
-
// src/components/Tooltip/index.ts
|
|
2519
|
-
var Tooltip_default = Tooltip;
|
|
2520
|
-
|
|
2521
|
-
// src/components/DataTable/DataTable.tsx
|
|
2522
|
-
var import_framer_motion21 = require("framer-motion");
|
|
2523
|
-
|
|
2524
|
-
// src/components/Pagination/Pagination.tsx
|
|
2525
|
-
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
|
-
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
|
|
2214
|
+
// src/components/DatePicker/DatePicker.tsx
|
|
2215
|
+
var CalendarButton = (0, import_joy27.styled)(IconButton_default, {
|
|
2216
|
+
name: "DatePicker",
|
|
2217
|
+
slot: "calendarButton"
|
|
2218
|
+
})(({ theme }) => ({
|
|
2219
|
+
"&:focus": {
|
|
2220
|
+
"--Icon-color": "currentColor",
|
|
2221
|
+
outlineOffset: `${theme.getCssVar("focus-thickness")}`,
|
|
2222
|
+
outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
|
|
2563
2223
|
}
|
|
2564
2224
|
}));
|
|
2565
|
-
var
|
|
2566
|
-
name: "
|
|
2567
|
-
slot: "
|
|
2568
|
-
})({})
|
|
2569
|
-
|
|
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]
|
|
2225
|
+
var StyledPopper = (0, import_joy27.styled)(import_base2.Popper, {
|
|
2226
|
+
name: "DatePicker",
|
|
2227
|
+
slot: "popper"
|
|
2228
|
+
})(({ theme }) => ({
|
|
2229
|
+
zIndex: theme.zIndex.tooltip
|
|
2578
2230
|
}));
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
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
|
-
var import_Info = __toESM(require("@mui/icons-material/Info"));
|
|
2665
|
-
var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
2666
|
-
name: "InfoSign",
|
|
2667
|
-
slot: "InfoSign"
|
|
2231
|
+
var CalendarSheet = (0, import_joy27.styled)(Sheet_default, {
|
|
2232
|
+
name: "DatePicker",
|
|
2233
|
+
slot: "sheet",
|
|
2234
|
+
overridesResolver: (props, styles) => styles.root
|
|
2668
2235
|
})(({ theme }) => ({
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2236
|
+
width: "264px",
|
|
2237
|
+
boxShadow: theme.shadow.md,
|
|
2238
|
+
borderRadius: theme.radius.md
|
|
2672
2239
|
}));
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react24.default.createElement("div", { key: `info-sign-${i}` }, line))
|
|
2686
|
-
},
|
|
2687
|
-
/* @__PURE__ */ import_react24.default.createElement(InfoIcon, null)
|
|
2688
|
-
);
|
|
2689
|
-
}
|
|
2690
|
-
|
|
2691
|
-
// src/components/InfoSign/index.ts
|
|
2692
|
-
var InfoSign_default = InfoSign;
|
|
2693
|
-
|
|
2694
|
-
// src/components/DataTable/DataTable.tsx
|
|
2695
|
-
function extractFieldsFromGroupingModel(items) {
|
|
2696
|
-
const fields = /* @__PURE__ */ new Set();
|
|
2697
|
-
for (const item of items) {
|
|
2698
|
-
if ("groupId" in item) {
|
|
2699
|
-
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
2700
|
-
const childFields = extractFieldsFromGroupingModel(children);
|
|
2701
|
-
childFields.forEach((field) => fields.add(field));
|
|
2702
|
-
} else {
|
|
2703
|
-
fields.add(item.field);
|
|
2240
|
+
var DatePickerRoot = (0, import_joy27.styled)("div", {
|
|
2241
|
+
name: "DatePicker",
|
|
2242
|
+
slot: "root",
|
|
2243
|
+
overridesResolver: (props, styles) => styles.root
|
|
2244
|
+
})({
|
|
2245
|
+
width: "100%"
|
|
2246
|
+
});
|
|
2247
|
+
var validValueFormat = (value, format) => {
|
|
2248
|
+
try {
|
|
2249
|
+
const parsedValue = parseDate(value, format);
|
|
2250
|
+
if (parsedValue.toString() === "Invalid Date") {
|
|
2251
|
+
return false;
|
|
2704
2252
|
}
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
}
|
|
2708
|
-
function reorderColumnsByGroupingModel(columns, columnGroupingModel) {
|
|
2709
|
-
const fieldsInGroupingModel = extractFieldsFromGroupingModel(columnGroupingModel);
|
|
2710
|
-
const orderedFields = [];
|
|
2711
|
-
function collectFieldsInOrder(items) {
|
|
2712
|
-
for (const item of items) {
|
|
2713
|
-
if ("groupId" in item) {
|
|
2714
|
-
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
2715
|
-
collectFieldsInOrder(children);
|
|
2716
|
-
} else {
|
|
2717
|
-
if (!orderedFields.includes(item.field)) {
|
|
2718
|
-
orderedFields.push(item.field);
|
|
2719
|
-
}
|
|
2720
|
-
}
|
|
2253
|
+
if (value !== formatValueString(parsedValue, format)) {
|
|
2254
|
+
return false;
|
|
2721
2255
|
}
|
|
2256
|
+
const regex = new RegExp(`^${format.replace(/Y/g, "\\d").replace(/M/g, "\\d").replace(/D/g, "\\d")}$`);
|
|
2257
|
+
return regex.test(value);
|
|
2258
|
+
} catch (e) {
|
|
2259
|
+
return false;
|
|
2722
2260
|
}
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2261
|
+
};
|
|
2262
|
+
var formatValueString = (date, format) => {
|
|
2263
|
+
let day = `${date.getDate()}`;
|
|
2264
|
+
let month = `${date.getMonth() + 1}`;
|
|
2265
|
+
const year = date.getFullYear();
|
|
2266
|
+
if (Number(day) < 10) day = "0" + day;
|
|
2267
|
+
if (Number(month) < 10) month = "0" + month;
|
|
2268
|
+
return format.replace(/YYYY/g, year.toString()).replace(/MM/g, month).replace(/DD/g, day);
|
|
2269
|
+
};
|
|
2270
|
+
function parseDate(dateString, format) {
|
|
2271
|
+
const formatParts = format.split(/[-./\s]/);
|
|
2272
|
+
const dateParts = dateString.split(/[-./\s]/);
|
|
2273
|
+
if (formatParts.length !== dateParts.length) {
|
|
2274
|
+
throw new Error("Invalid date string or format");
|
|
2736
2275
|
}
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
columnIndex: columnIndex.current++
|
|
2751
|
-
});
|
|
2276
|
+
let day, month, year;
|
|
2277
|
+
for (let i = 0; i < formatParts.length; i++) {
|
|
2278
|
+
const value = parseInt(dateParts[i], 10);
|
|
2279
|
+
switch (formatParts[i]) {
|
|
2280
|
+
case "DD":
|
|
2281
|
+
day = value;
|
|
2282
|
+
break;
|
|
2283
|
+
case "MM":
|
|
2284
|
+
month = value - 1;
|
|
2285
|
+
break;
|
|
2286
|
+
case "YYYY":
|
|
2287
|
+
year = value;
|
|
2288
|
+
break;
|
|
2752
2289
|
}
|
|
2753
2290
|
}
|
|
2291
|
+
const result = new Date(year, month, day);
|
|
2754
2292
|
return result;
|
|
2755
2293
|
}
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
const
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
}
|
|
2788
|
-
} else {
|
|
2789
|
-
const columnIndex = columnIndexMap.get(item.field);
|
|
2790
|
-
if (columnIndex !== void 0) {
|
|
2791
|
-
minIndex = Math.min(minIndex, columnIndex);
|
|
2792
|
-
maxIndex = Math.max(maxIndex, columnIndex);
|
|
2294
|
+
var formatToPattern = (format) => {
|
|
2295
|
+
return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
2296
|
+
};
|
|
2297
|
+
var TextMaskAdapter3 = import_react19.default.forwardRef(function TextMaskAdapter4(props, ref) {
|
|
2298
|
+
const { onChange, format, ...other } = props;
|
|
2299
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
2300
|
+
import_react_imask.IMaskInput,
|
|
2301
|
+
{
|
|
2302
|
+
...other,
|
|
2303
|
+
inputRef: ref,
|
|
2304
|
+
onAccept: (value) => onChange({ target: { name: props.name, value } }),
|
|
2305
|
+
mask: Date,
|
|
2306
|
+
pattern: formatToPattern(format),
|
|
2307
|
+
blocks: {
|
|
2308
|
+
D: {
|
|
2309
|
+
mask: import_react_imask.IMask.MaskedRange,
|
|
2310
|
+
from: 1,
|
|
2311
|
+
to: 31,
|
|
2312
|
+
maxLength: 2
|
|
2313
|
+
},
|
|
2314
|
+
M: {
|
|
2315
|
+
mask: import_react_imask.IMask.MaskedRange,
|
|
2316
|
+
from: 1,
|
|
2317
|
+
to: 12,
|
|
2318
|
+
maxLength: 2
|
|
2319
|
+
},
|
|
2320
|
+
Y: {
|
|
2321
|
+
mask: import_react_imask.IMask.MaskedRange,
|
|
2322
|
+
from: 1900,
|
|
2323
|
+
to: 9999,
|
|
2324
|
+
maxLength: 4
|
|
2793
2325
|
}
|
|
2794
|
-
}
|
|
2326
|
+
},
|
|
2327
|
+
format: (date) => formatValueString(date, format),
|
|
2328
|
+
parse: (str) => parseDate(str, format),
|
|
2329
|
+
autofix: "pad",
|
|
2330
|
+
overwrite: true
|
|
2795
2331
|
}
|
|
2796
|
-
|
|
2797
|
-
startIndex: minIndex === Infinity ? 0 : minIndex,
|
|
2798
|
-
colspan: maxIndex === -Infinity ? 0 : maxIndex - minIndex + 1
|
|
2799
|
-
};
|
|
2800
|
-
}
|
|
2801
|
-
processGroup(columnGroupingModel, 0);
|
|
2802
|
-
groupsByLevel.forEach((level) => {
|
|
2803
|
-
level.sort((a, b) => a.startIndex - b.startIndex);
|
|
2804
|
-
});
|
|
2805
|
-
return { groups: groupsByLevel, maxLevel, fieldsInGroupingModel };
|
|
2806
|
-
}
|
|
2807
|
-
function getTextAlign(props) {
|
|
2808
|
-
return !props.editMode && ["number", "date", "currency"].includes(props.type || "") ? "end" : "start";
|
|
2809
|
-
}
|
|
2810
|
-
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react25.default.createElement(import_joy33.LinearProgress, { value: 8, variant: "plain" });
|
|
2811
|
-
var EllipsisDiv = (0, import_joy33.styled)("div", {
|
|
2812
|
-
name: "DataTable",
|
|
2813
|
-
slot: "textEllipsis"
|
|
2814
|
-
})({
|
|
2815
|
-
overflow: "hidden",
|
|
2816
|
-
textOverflow: "ellipsis",
|
|
2817
|
-
whiteSpace: "nowrap"
|
|
2332
|
+
);
|
|
2818
2333
|
});
|
|
2819
|
-
var
|
|
2820
|
-
const
|
|
2821
|
-
const
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2334
|
+
var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
2335
|
+
const props = (0, import_joy27.useThemeProps)({ props: inProps, name: "DatePicker" });
|
|
2336
|
+
const {
|
|
2337
|
+
onChange,
|
|
2338
|
+
disabled,
|
|
2339
|
+
label,
|
|
2340
|
+
error,
|
|
2341
|
+
helperText,
|
|
2342
|
+
minDate,
|
|
2343
|
+
maxDate,
|
|
2344
|
+
disableFuture,
|
|
2345
|
+
disablePast,
|
|
2346
|
+
required,
|
|
2347
|
+
// NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
|
|
2348
|
+
sx,
|
|
2349
|
+
className,
|
|
2350
|
+
format = "YYYY/MM/DD",
|
|
2351
|
+
displayFormat = "YYYY/MM/DD",
|
|
2352
|
+
size,
|
|
2353
|
+
inputReadOnly,
|
|
2354
|
+
hideClearButton,
|
|
2355
|
+
readOnly,
|
|
2356
|
+
shouldDisableDate,
|
|
2357
|
+
...innerProps
|
|
2358
|
+
} = props;
|
|
2359
|
+
const innerRef = (0, import_react19.useRef)(null);
|
|
2360
|
+
const buttonRef = (0, import_react19.useRef)(null);
|
|
2361
|
+
const [value, setValue] = useControlledState(
|
|
2362
|
+
props.value,
|
|
2363
|
+
props.defaultValue || "",
|
|
2364
|
+
(0, import_react19.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
2365
|
+
);
|
|
2366
|
+
const [displayValue, setDisplayValue] = (0, import_react19.useState)(
|
|
2367
|
+
() => value ? formatValueString(parseDate(value, format), displayFormat) : ""
|
|
2368
|
+
);
|
|
2369
|
+
const [anchorEl, setAnchorEl] = (0, import_react19.useState)(null);
|
|
2370
|
+
const open = Boolean(anchorEl);
|
|
2371
|
+
(0, import_react19.useEffect)(() => {
|
|
2372
|
+
if (!anchorEl) {
|
|
2373
|
+
innerRef.current?.blur();
|
|
2827
2374
|
}
|
|
2828
|
-
}, [
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
return content;
|
|
2834
|
-
};
|
|
2835
|
-
var CellTextEllipsis = ({ children }) => {
|
|
2836
|
-
const textRef = (0, import_react25.useRef)(null);
|
|
2837
|
-
const [showTooltip, setShowTooltip] = (0, import_react25.useState)(false);
|
|
2838
|
-
(0, import_react25.useLayoutEffect)(() => {
|
|
2839
|
-
const element = textRef.current;
|
|
2840
|
-
if (element) {
|
|
2841
|
-
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
2842
|
-
setShowTooltip(isTextTruncated);
|
|
2375
|
+
}, [anchorEl, innerRef]);
|
|
2376
|
+
(0, import_react19.useEffect)(() => {
|
|
2377
|
+
if (value === "") {
|
|
2378
|
+
setDisplayValue("");
|
|
2379
|
+
return;
|
|
2843
2380
|
}
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2381
|
+
const formattedValue = formatValueString(parseDate(value, format), displayFormat);
|
|
2382
|
+
if (validValueFormat(formattedValue, displayFormat) && formattedValue !== displayValue) {
|
|
2383
|
+
setDisplayValue(formattedValue);
|
|
2384
|
+
}
|
|
2385
|
+
}, [displayFormat, displayValue, format, value]);
|
|
2386
|
+
(0, import_react19.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
2387
|
+
const handleChange = (0, import_react19.useCallback)(
|
|
2388
|
+
(event) => {
|
|
2389
|
+
const value2 = event.target.value;
|
|
2390
|
+
setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat) : value2);
|
|
2391
|
+
setValue(value2);
|
|
2392
|
+
},
|
|
2393
|
+
[displayFormat, format, setValue]
|
|
2394
|
+
);
|
|
2395
|
+
const handleDisplayInputChange = (0, import_react19.useCallback)(
|
|
2396
|
+
(event) => {
|
|
2397
|
+
if (event.target.value === "") {
|
|
2398
|
+
handleChange({
|
|
2399
|
+
target: {
|
|
2400
|
+
name: props.name,
|
|
2401
|
+
value: ""
|
|
2402
|
+
}
|
|
2403
|
+
});
|
|
2404
|
+
return;
|
|
2405
|
+
}
|
|
2406
|
+
const isValidDisplayValue = validValueFormat(event.target.value, displayFormat);
|
|
2407
|
+
if (isValidDisplayValue) {
|
|
2408
|
+
const parsedDate = parseDate(event.target.value, displayFormat);
|
|
2409
|
+
const formattedValue = formatValueString(parsedDate, format);
|
|
2410
|
+
handleChange({
|
|
2411
|
+
target: {
|
|
2412
|
+
name: props.name,
|
|
2413
|
+
value: formattedValue
|
|
2414
|
+
}
|
|
2415
|
+
});
|
|
2416
|
+
}
|
|
2417
|
+
},
|
|
2418
|
+
[displayFormat, format, handleChange, props.name]
|
|
2419
|
+
);
|
|
2420
|
+
const handleCalendarToggle = (0, import_react19.useCallback)(
|
|
2421
|
+
(event) => {
|
|
2422
|
+
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
2423
|
+
setTimeout(() => {
|
|
2424
|
+
innerRef.current?.focus();
|
|
2425
|
+
}, 0);
|
|
2426
|
+
},
|
|
2427
|
+
[anchorEl, setAnchorEl, innerRef]
|
|
2428
|
+
);
|
|
2429
|
+
const handleInputMouseDown = (0, import_react19.useCallback)(
|
|
2430
|
+
(event) => {
|
|
2431
|
+
if (inputReadOnly) {
|
|
2432
|
+
event.preventDefault();
|
|
2433
|
+
buttonRef.current?.focus();
|
|
2434
|
+
}
|
|
2435
|
+
},
|
|
2436
|
+
[inputReadOnly, buttonRef]
|
|
2437
|
+
);
|
|
2438
|
+
return /* @__PURE__ */ import_react19.default.createElement(DatePickerRoot, null, /* @__PURE__ */ import_react19.default.createElement(import_base2.FocusTrap, { open: true }, /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
2439
|
+
Input_default,
|
|
2440
|
+
{
|
|
2441
|
+
...innerProps,
|
|
2442
|
+
color: error ? "danger" : innerProps.color,
|
|
2443
|
+
ref: innerRef,
|
|
2444
|
+
size,
|
|
2445
|
+
value: displayValue,
|
|
2446
|
+
onChange: handleDisplayInputChange,
|
|
2447
|
+
placeholder: displayFormat,
|
|
2448
|
+
disabled,
|
|
2449
|
+
required,
|
|
2450
|
+
error,
|
|
2451
|
+
slotProps: {
|
|
2452
|
+
input: {
|
|
2453
|
+
component: TextMaskAdapter3,
|
|
2454
|
+
ref: innerRef,
|
|
2455
|
+
format: displayFormat,
|
|
2456
|
+
sx: {
|
|
2457
|
+
"&:hover": {
|
|
2458
|
+
cursor: inputReadOnly || readOnly ? "default" : "text"
|
|
2459
|
+
}
|
|
2460
|
+
},
|
|
2461
|
+
onMouseDown: handleInputMouseDown
|
|
2896
2462
|
}
|
|
2897
|
-
}
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2463
|
+
},
|
|
2464
|
+
className,
|
|
2465
|
+
sx,
|
|
2466
|
+
endDecorator: /* @__PURE__ */ import_react19.default.createElement(
|
|
2467
|
+
CalendarButton,
|
|
2468
|
+
{
|
|
2469
|
+
ref: buttonRef,
|
|
2470
|
+
variant: "plain",
|
|
2471
|
+
onClick: readOnly ? void 0 : handleCalendarToggle,
|
|
2472
|
+
"aria-label": "Toggle Calendar",
|
|
2473
|
+
"aria-controls": "date-picker-popper",
|
|
2474
|
+
"aria-haspopup": "dialog",
|
|
2475
|
+
"aria-expanded": open,
|
|
2476
|
+
disabled
|
|
2477
|
+
},
|
|
2478
|
+
/* @__PURE__ */ import_react19.default.createElement(import_CalendarToday.default, null)
|
|
2479
|
+
),
|
|
2480
|
+
label,
|
|
2481
|
+
helperText,
|
|
2482
|
+
readOnly: readOnly || inputReadOnly
|
|
2904
2483
|
}
|
|
2905
|
-
}
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2484
|
+
), open && /* @__PURE__ */ import_react19.default.createElement(import_base2.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react19.default.createElement(
|
|
2485
|
+
StyledPopper,
|
|
2486
|
+
{
|
|
2487
|
+
id: "date-picker-popper",
|
|
2488
|
+
open: true,
|
|
2489
|
+
anchorEl,
|
|
2490
|
+
placement: "bottom-end",
|
|
2491
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
2492
|
+
modifiers: [
|
|
2493
|
+
{
|
|
2494
|
+
name: "offset",
|
|
2495
|
+
options: {
|
|
2496
|
+
offset: [4, 4]
|
|
2497
|
+
}
|
|
2498
|
+
}
|
|
2499
|
+
],
|
|
2500
|
+
"aria-label": "Calendar Tooltip",
|
|
2501
|
+
"aria-expanded": open
|
|
2502
|
+
},
|
|
2503
|
+
/* @__PURE__ */ import_react19.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react19.default.createElement(
|
|
2504
|
+
Calendar_default,
|
|
2505
|
+
{
|
|
2506
|
+
value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
|
|
2507
|
+
onChange: ([date]) => {
|
|
2508
|
+
handleChange({
|
|
2509
|
+
target: {
|
|
2510
|
+
name: props.name,
|
|
2511
|
+
value: formatValueString(date, format)
|
|
2512
|
+
}
|
|
2513
|
+
});
|
|
2514
|
+
setAnchorEl(null);
|
|
2515
|
+
},
|
|
2516
|
+
minDate: minDate ? new Date(minDate) : void 0,
|
|
2517
|
+
maxDate: maxDate ? new Date(maxDate) : void 0,
|
|
2518
|
+
disableFuture,
|
|
2519
|
+
disablePast,
|
|
2520
|
+
shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0
|
|
2521
|
+
}
|
|
2522
|
+
), !hideClearButton && /* @__PURE__ */ import_react19.default.createElement(
|
|
2523
|
+
DialogActions_default,
|
|
2524
|
+
{
|
|
2525
|
+
sx: {
|
|
2526
|
+
p: 1
|
|
2527
|
+
}
|
|
2528
|
+
},
|
|
2529
|
+
/* @__PURE__ */ import_react19.default.createElement(
|
|
2530
|
+
Button_default,
|
|
2531
|
+
{
|
|
2532
|
+
size,
|
|
2533
|
+
variant: "plain",
|
|
2534
|
+
color: "neutral",
|
|
2535
|
+
onClick: () => {
|
|
2536
|
+
handleChange({
|
|
2537
|
+
target: {
|
|
2538
|
+
name: props.name,
|
|
2539
|
+
value: ""
|
|
2540
|
+
}
|
|
2541
|
+
});
|
|
2542
|
+
setAnchorEl(null);
|
|
2543
|
+
}
|
|
2544
|
+
},
|
|
2545
|
+
"Clear"
|
|
2546
|
+
)
|
|
2547
|
+
))
|
|
2548
|
+
)))));
|
|
2931
2549
|
});
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2550
|
+
|
|
2551
|
+
// src/components/DatePicker/index.ts
|
|
2552
|
+
var DatePicker_default = DatePicker;
|
|
2553
|
+
|
|
2554
|
+
// src/components/Textarea/Textarea.tsx
|
|
2555
|
+
var import_react20 = __toESM(require("react"));
|
|
2556
|
+
var import_joy28 = require("@mui/joy");
|
|
2557
|
+
var import_framer_motion19 = require("framer-motion");
|
|
2558
|
+
var MotionTextarea = (0, import_framer_motion19.motion)(import_joy28.Textarea);
|
|
2559
|
+
var Textarea = (props) => {
|
|
2560
|
+
const {
|
|
2561
|
+
label,
|
|
2562
|
+
error,
|
|
2563
|
+
helperText,
|
|
2564
|
+
color,
|
|
2565
|
+
size,
|
|
2566
|
+
disabled,
|
|
2567
|
+
required,
|
|
2568
|
+
minRows = 2,
|
|
2569
|
+
maxRows = 4,
|
|
2570
|
+
// NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
|
|
2571
|
+
sx,
|
|
2572
|
+
className,
|
|
2573
|
+
...innerProps
|
|
2574
|
+
} = props;
|
|
2575
|
+
const textarea = /* @__PURE__ */ import_react20.default.createElement(
|
|
2576
|
+
MotionTextarea,
|
|
2577
|
+
{
|
|
2578
|
+
required,
|
|
2579
|
+
disabled,
|
|
2580
|
+
color: error ? "danger" : color,
|
|
2581
|
+
size,
|
|
2582
|
+
minRows,
|
|
2583
|
+
maxRows,
|
|
2584
|
+
...innerProps
|
|
2948
2585
|
}
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2586
|
+
);
|
|
2587
|
+
return /* @__PURE__ */ import_react20.default.createElement(
|
|
2588
|
+
FormControl_default,
|
|
2589
|
+
{
|
|
2590
|
+
required,
|
|
2591
|
+
disabled,
|
|
2592
|
+
color,
|
|
2593
|
+
size,
|
|
2594
|
+
error,
|
|
2595
|
+
sx,
|
|
2596
|
+
className
|
|
2597
|
+
},
|
|
2598
|
+
label && /* @__PURE__ */ import_react20.default.createElement(FormLabel_default, null, label),
|
|
2599
|
+
textarea,
|
|
2600
|
+
helperText && /* @__PURE__ */ import_react20.default.createElement(FormHelperText_default, null, helperText)
|
|
2601
|
+
);
|
|
2602
|
+
};
|
|
2603
|
+
Textarea.displayName = "Textarea";
|
|
2604
|
+
|
|
2605
|
+
// src/components/Textarea/index.ts
|
|
2606
|
+
var Textarea_default = Textarea;
|
|
2607
|
+
|
|
2608
|
+
// src/components/Select/Select.tsx
|
|
2609
|
+
var import_react21 = __toESM(require("react"));
|
|
2610
|
+
var import_joy29 = require("@mui/joy");
|
|
2611
|
+
var import_framer_motion20 = require("framer-motion");
|
|
2612
|
+
var MotionOption = (0, import_framer_motion20.motion)(import_joy29.Option);
|
|
2613
|
+
var Option = MotionOption;
|
|
2614
|
+
Option.displayName = "Option";
|
|
2615
|
+
function Select(props) {
|
|
2616
|
+
const {
|
|
2617
|
+
label,
|
|
2618
|
+
helperText,
|
|
2619
|
+
error,
|
|
2620
|
+
size,
|
|
2621
|
+
color,
|
|
2622
|
+
disabled,
|
|
2623
|
+
required,
|
|
2624
|
+
onChange,
|
|
2625
|
+
// NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
|
|
2626
|
+
sx,
|
|
2627
|
+
className,
|
|
2628
|
+
...innerProps
|
|
2629
|
+
} = props;
|
|
2630
|
+
const options = (0, import_react21.useMemo)(
|
|
2631
|
+
() => props.options.map((option) => {
|
|
2632
|
+
if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
|
|
2633
|
+
return option;
|
|
2634
|
+
}
|
|
2635
|
+
return {
|
|
2636
|
+
value: option,
|
|
2637
|
+
label: option
|
|
2638
|
+
};
|
|
2639
|
+
}),
|
|
2640
|
+
[props.options]
|
|
2641
|
+
);
|
|
2642
|
+
const handleChange = (event, newValue) => {
|
|
2643
|
+
const _event = event || { target: {} };
|
|
2644
|
+
const newEvent = {
|
|
2645
|
+
..._event,
|
|
2646
|
+
target: {
|
|
2647
|
+
..._event.target,
|
|
2648
|
+
// @ts-expect-error target에 name이 있을 수 있다.
|
|
2649
|
+
name: _event.target?.name || props.name,
|
|
2650
|
+
value: newValue
|
|
2651
|
+
}
|
|
2652
|
+
};
|
|
2653
|
+
onChange?.(newEvent, newValue);
|
|
2654
|
+
};
|
|
2655
|
+
const select = /* @__PURE__ */ import_react21.default.createElement(
|
|
2656
|
+
import_joy29.Select,
|
|
2657
|
+
{
|
|
2658
|
+
...innerProps,
|
|
2659
|
+
required,
|
|
2660
|
+
disabled,
|
|
2661
|
+
size,
|
|
2662
|
+
color: error ? "danger" : color,
|
|
2663
|
+
onChange: handleChange
|
|
2664
|
+
},
|
|
2665
|
+
options.map((option) => /* @__PURE__ */ import_react21.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.label))
|
|
2666
|
+
);
|
|
2667
|
+
return /* @__PURE__ */ import_react21.default.createElement(
|
|
2668
|
+
FormControl_default,
|
|
2669
|
+
{
|
|
2670
|
+
required,
|
|
2671
|
+
disabled,
|
|
2672
|
+
size,
|
|
2673
|
+
color,
|
|
2674
|
+
error,
|
|
2675
|
+
sx,
|
|
2676
|
+
className
|
|
2677
|
+
},
|
|
2678
|
+
label && /* @__PURE__ */ import_react21.default.createElement(FormLabel_default, null, label),
|
|
2679
|
+
select,
|
|
2680
|
+
helperText && /* @__PURE__ */ import_react21.default.createElement(FormHelperText_default, null, helperText)
|
|
2681
|
+
);
|
|
2682
|
+
}
|
|
2683
|
+
Select.displayName = "Select";
|
|
2684
|
+
|
|
2685
|
+
// src/components/Select/index.ts
|
|
2686
|
+
var Select_default = Select;
|
|
2687
|
+
|
|
2688
|
+
// src/components/DataTable/components.tsx
|
|
2689
|
+
var import_joy33 = require("@mui/joy");
|
|
2690
|
+
|
|
2691
|
+
// src/components/Tooltip/Tooltip.tsx
|
|
2692
|
+
var import_react22 = __toESM(require("react"));
|
|
2693
|
+
var import_joy30 = require("@mui/joy");
|
|
2694
|
+
var import_framer_motion21 = require("framer-motion");
|
|
2695
|
+
var MotionTooltip = (0, import_framer_motion21.motion)(import_joy30.Tooltip);
|
|
2696
|
+
var Tooltip = (props) => {
|
|
2697
|
+
return /* @__PURE__ */ import_react22.default.createElement(MotionTooltip, { ...props });
|
|
2698
|
+
};
|
|
2699
|
+
Tooltip.displayName = "Tooltip";
|
|
2700
|
+
|
|
2701
|
+
// src/components/Tooltip/index.ts
|
|
2702
|
+
var Tooltip_default = Tooltip;
|
|
2703
|
+
|
|
2704
|
+
// src/components/InfoSign/InfoSign.tsx
|
|
2705
|
+
var import_react23 = __toESM(require("react"));
|
|
2706
|
+
var import_joy31 = require("@mui/joy");
|
|
2707
|
+
var import_Info = __toESM(require("@mui/icons-material/Info"));
|
|
2708
|
+
var InfoIcon = (0, import_joy31.styled)(import_Info.default, {
|
|
2709
|
+
name: "InfoSign",
|
|
2710
|
+
slot: "InfoSign"
|
|
2960
2711
|
})(({ theme }) => ({
|
|
2961
|
-
color:
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
var StyledTh = (0, import_joy33.styled)(import_framer_motion21.motion.th)(({ theme }) => ({
|
|
2965
|
-
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2966
|
-
// border 대신 box-shadow를 사용하여 stickyHeader와 함께 사용할 때 border가 겹치는 문제를 해결
|
|
2712
|
+
color: theme.palette.text.icon,
|
|
2713
|
+
width: "14px",
|
|
2714
|
+
height: "14px"
|
|
2967
2715
|
}));
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2716
|
+
function InfoSign(props) {
|
|
2717
|
+
const { message, placement } = props;
|
|
2718
|
+
return /* @__PURE__ */ import_react23.default.createElement(
|
|
2719
|
+
Tooltip_default,
|
|
2720
|
+
{
|
|
2721
|
+
arrow: true,
|
|
2722
|
+
placement,
|
|
2723
|
+
sx: {
|
|
2724
|
+
[`&.${import_joy31.tooltipClasses.root}`]: {
|
|
2725
|
+
maxWidth: "320px"
|
|
2726
|
+
}
|
|
2727
|
+
},
|
|
2728
|
+
title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react23.default.createElement("div", { key: `info-sign-${i}` }, line))
|
|
2729
|
+
},
|
|
2730
|
+
/* @__PURE__ */ import_react23.default.createElement(InfoIcon, null)
|
|
2731
|
+
);
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
// src/components/InfoSign/index.ts
|
|
2735
|
+
var InfoSign_default = InfoSign;
|
|
2736
|
+
|
|
2737
|
+
// src/components/DataTable/components.tsx
|
|
2738
|
+
var TextEllipsis = ({ children }) => {
|
|
2739
|
+
const textRef = (0, import_react24.useRef)(null);
|
|
2740
|
+
const [showTooltip, setShowTooltip] = (0, import_react24.useState)(false);
|
|
2741
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
2742
|
+
const element = textRef.current;
|
|
2743
|
+
if (element) {
|
|
2744
|
+
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
2745
|
+
setShowTooltip(isTextTruncated);
|
|
2976
2746
|
}
|
|
2977
|
-
},
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2747
|
+
}, [children]);
|
|
2748
|
+
const content = /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
2749
|
+
if (showTooltip) {
|
|
2750
|
+
return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: children, placement: "top", onClick: (e) => e.stopPropagation() }, content);
|
|
2751
|
+
}
|
|
2752
|
+
return content;
|
|
2753
|
+
};
|
|
2754
|
+
var CellTextEllipsis = ({ children }) => {
|
|
2755
|
+
const textRef = (0, import_react24.useRef)(null);
|
|
2756
|
+
const [showTooltip, setShowTooltip] = (0, import_react24.useState)(false);
|
|
2757
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
2758
|
+
const element = textRef.current;
|
|
2759
|
+
if (element) {
|
|
2760
|
+
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
2761
|
+
setShowTooltip(isTextTruncated);
|
|
2981
2762
|
}
|
|
2763
|
+
}, [children]);
|
|
2764
|
+
const content = /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
2765
|
+
if (showTooltip) {
|
|
2766
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
2767
|
+
Tooltip_default,
|
|
2768
|
+
{
|
|
2769
|
+
title: children,
|
|
2770
|
+
placement: "top",
|
|
2771
|
+
enterDelay: 800,
|
|
2772
|
+
enterNextDelay: 200,
|
|
2773
|
+
onClick: (e) => e.stopPropagation()
|
|
2774
|
+
},
|
|
2775
|
+
content
|
|
2776
|
+
);
|
|
2982
2777
|
}
|
|
2983
|
-
|
|
2984
|
-
|
|
2778
|
+
return content;
|
|
2779
|
+
};
|
|
2985
2780
|
var HeadCell = (props) => {
|
|
2986
2781
|
const {
|
|
2987
2782
|
width,
|
|
@@ -3004,19 +2799,20 @@ var HeadCell = (props) => {
|
|
|
3004
2799
|
pinnedStartPosition,
|
|
3005
2800
|
pinnedEndPosition,
|
|
3006
2801
|
headerRef,
|
|
3007
|
-
tableColRef
|
|
2802
|
+
tableColRef,
|
|
2803
|
+
headerClassName
|
|
3008
2804
|
} = props;
|
|
3009
|
-
const theme = (0,
|
|
2805
|
+
const theme = (0, import_joy32.useTheme)();
|
|
3010
2806
|
const ref = headerRef;
|
|
3011
2807
|
const colRef = tableColRef;
|
|
3012
|
-
const [isHovered, setIsHovered] = (0,
|
|
2808
|
+
const [isHovered, setIsHovered] = (0, import_react24.useState)(false);
|
|
3013
2809
|
const sortable = type === "actions" ? false : _sortable;
|
|
3014
|
-
const headId = (0,
|
|
2810
|
+
const headId = (0, import_react24.useMemo)(
|
|
3015
2811
|
() => `${tableId}_header_${headerName ?? field}`.trim(),
|
|
3016
2812
|
[tableId, headerName, field]
|
|
3017
2813
|
);
|
|
3018
|
-
const resizer = (0,
|
|
3019
|
-
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)(
|
|
3020
2816
|
() => ({
|
|
3021
2817
|
width,
|
|
3022
2818
|
minWidth: minWidth ?? "50px",
|
|
@@ -3034,10 +2830,10 @@ var HeadCell = (props) => {
|
|
|
3034
2830
|
);
|
|
3035
2831
|
const textAlign = getTextAlign(props);
|
|
3036
2832
|
const initialSort = sortOrder[0];
|
|
3037
|
-
const sortIcon = (0,
|
|
2833
|
+
const sortIcon = (0, import_react24.useMemo)(() => {
|
|
3038
2834
|
const isSorted = !!sort;
|
|
3039
2835
|
const isVisible = sortable && (isSorted || isHovered);
|
|
3040
|
-
return /* @__PURE__ */
|
|
2836
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_framer_motion22.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react24.default.createElement(
|
|
3041
2837
|
MotionSortIcon,
|
|
3042
2838
|
{
|
|
3043
2839
|
key: "sort-icon",
|
|
@@ -3065,11 +2861,21 @@ var HeadCell = (props) => {
|
|
|
3065
2861
|
}
|
|
3066
2862
|
));
|
|
3067
2863
|
}, [headId, initialSort, sort, sortable, isHovered]);
|
|
3068
|
-
const infoSign = (0,
|
|
3069
|
-
() => description ? /* @__PURE__ */
|
|
2864
|
+
const infoSign = (0, import_react24.useMemo)(
|
|
2865
|
+
() => description ? /* @__PURE__ */ import_react24.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
|
|
3070
2866
|
[description]
|
|
3071
2867
|
);
|
|
3072
|
-
|
|
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(
|
|
3073
2879
|
StyledTh,
|
|
3074
2880
|
{
|
|
3075
2881
|
id: headId,
|
|
@@ -3078,16 +2884,17 @@ var HeadCell = (props) => {
|
|
|
3078
2884
|
ref,
|
|
3079
2885
|
key: field,
|
|
3080
2886
|
style,
|
|
3081
|
-
onClick: (0,
|
|
2887
|
+
onClick: (0, import_react24.useCallback)(
|
|
3082
2888
|
(e) => sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey }),
|
|
3083
2889
|
[field, onSortChange, sort, sortable]
|
|
3084
2890
|
),
|
|
3085
2891
|
onMouseEnter: () => setIsHovered(true),
|
|
3086
2892
|
onMouseLeave: () => setIsHovered(false),
|
|
3087
2893
|
whileHover: "hover",
|
|
3088
|
-
initial: "initial"
|
|
2894
|
+
initial: "initial",
|
|
2895
|
+
className: computedHeaderClassName
|
|
3089
2896
|
},
|
|
3090
|
-
/* @__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),
|
|
3091
2898
|
resizer
|
|
3092
2899
|
);
|
|
3093
2900
|
};
|
|
@@ -3111,10 +2918,10 @@ var BodyCell = (props) => {
|
|
|
3111
2918
|
onCellEditStart,
|
|
3112
2919
|
onCellEditStop
|
|
3113
2920
|
} = props;
|
|
3114
|
-
const theme = (0,
|
|
3115
|
-
const [value, setValue] = (0,
|
|
3116
|
-
const cellRef = (0,
|
|
3117
|
-
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)(
|
|
3118
2925
|
() => ({
|
|
3119
2926
|
row,
|
|
3120
2927
|
value,
|
|
@@ -3123,19 +2930,19 @@ var BodyCell = (props) => {
|
|
|
3123
2930
|
}),
|
|
3124
2931
|
[row, rowId, value, field]
|
|
3125
2932
|
);
|
|
3126
|
-
const editMode = (0,
|
|
2933
|
+
const editMode = (0, import_react24.useMemo)(
|
|
3127
2934
|
() => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
|
|
3128
2935
|
[props.editMode, isCellEditable, params]
|
|
3129
2936
|
);
|
|
3130
2937
|
const propsComponentProps = "componentProps" in props ? props.componentProps : null;
|
|
3131
|
-
const componentProps = (0,
|
|
2938
|
+
const componentProps = (0, import_react24.useMemo)(
|
|
3132
2939
|
() => ({
|
|
3133
2940
|
..."componentProps" in props && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
|
|
3134
2941
|
size: "sm"
|
|
3135
2942
|
}),
|
|
3136
2943
|
[props, propsComponentProps, params]
|
|
3137
2944
|
);
|
|
3138
|
-
const editModeComponentProps = (0,
|
|
2945
|
+
const editModeComponentProps = (0, import_react24.useMemo)(
|
|
3139
2946
|
() => ({
|
|
3140
2947
|
...componentProps,
|
|
3141
2948
|
onChange: (e) => {
|
|
@@ -3197,23 +3004,23 @@ var BodyCell = (props) => {
|
|
|
3197
3004
|
}),
|
|
3198
3005
|
[params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
|
|
3199
3006
|
);
|
|
3200
|
-
const EditModeComponent = (0,
|
|
3007
|
+
const EditModeComponent = (0, import_react24.useMemo)(() => {
|
|
3201
3008
|
if (renderEditCell) {
|
|
3202
|
-
return (0,
|
|
3009
|
+
return (0, import_react24.createElement)((0, import_react24.memo)(renderEditCell), params);
|
|
3203
3010
|
}
|
|
3204
3011
|
return {
|
|
3205
|
-
date: /* @__PURE__ */
|
|
3206
|
-
currency: /* @__PURE__ */
|
|
3012
|
+
date: /* @__PURE__ */ import_react24.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
|
|
3013
|
+
currency: /* @__PURE__ */ import_react24.default.createElement(
|
|
3207
3014
|
CurrencyInput_default,
|
|
3208
3015
|
{
|
|
3209
3016
|
value,
|
|
3210
3017
|
...editModeComponentProps
|
|
3211
3018
|
}
|
|
3212
3019
|
),
|
|
3213
|
-
number: /* @__PURE__ */
|
|
3214
|
-
text: /* @__PURE__ */
|
|
3215
|
-
longText: /* @__PURE__ */
|
|
3216
|
-
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(
|
|
3217
3024
|
Autocomplete_default,
|
|
3218
3025
|
{
|
|
3219
3026
|
value,
|
|
@@ -3221,7 +3028,7 @@ var BodyCell = (props) => {
|
|
|
3221
3028
|
...editModeComponentProps
|
|
3222
3029
|
}
|
|
3223
3030
|
),
|
|
3224
|
-
select: /* @__PURE__ */
|
|
3031
|
+
select: /* @__PURE__ */ import_react24.default.createElement(
|
|
3225
3032
|
Select_default,
|
|
3226
3033
|
{
|
|
3227
3034
|
value,
|
|
@@ -3232,13 +3039,13 @@ var BodyCell = (props) => {
|
|
|
3232
3039
|
}[type || "text"];
|
|
3233
3040
|
}, [value, editModeComponentProps, type, renderEditCell, params]);
|
|
3234
3041
|
const linkComponentFromProps = props.component;
|
|
3235
|
-
const ReadModeComponent = (0,
|
|
3042
|
+
const ReadModeComponent = (0, import_react24.useMemo)(() => {
|
|
3236
3043
|
if (renderCell) {
|
|
3237
|
-
return (0,
|
|
3044
|
+
return (0, import_react24.createElement)((0, import_react24.memo)(renderCell), params);
|
|
3238
3045
|
}
|
|
3239
3046
|
const innerText = value;
|
|
3240
3047
|
const typedComponent = {
|
|
3241
|
-
link:
|
|
3048
|
+
link: import_react24.default.createElement(linkComponentFromProps || import_joy33.Link, {
|
|
3242
3049
|
children: innerText,
|
|
3243
3050
|
...componentProps
|
|
3244
3051
|
})
|
|
@@ -3246,22 +3053,22 @@ var BodyCell = (props) => {
|
|
|
3246
3053
|
return typedComponent || innerText;
|
|
3247
3054
|
}, [value, renderCell, params, type, componentProps, linkComponentFromProps]);
|
|
3248
3055
|
const getActions = props.getActions;
|
|
3249
|
-
const CellComponent = (0,
|
|
3056
|
+
const CellComponent = (0, import_react24.useMemo)(() => {
|
|
3250
3057
|
if (type === "actions") {
|
|
3251
|
-
return /* @__PURE__ */
|
|
3058
|
+
return /* @__PURE__ */ import_react24.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
|
|
3252
3059
|
}
|
|
3253
3060
|
return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
|
|
3254
3061
|
}, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
|
|
3255
|
-
const showTooltip = (0,
|
|
3062
|
+
const showTooltip = (0, import_react24.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
|
|
3256
3063
|
const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
|
|
3257
|
-
const computedCellClassName = (0,
|
|
3064
|
+
const computedCellClassName = (0, import_react24.useMemo)(
|
|
3258
3065
|
() => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
|
|
3259
3066
|
[cellClassName, params]
|
|
3260
3067
|
);
|
|
3261
|
-
(0,
|
|
3068
|
+
(0, import_react24.useEffect)(() => {
|
|
3262
3069
|
setValue(row[field]);
|
|
3263
3070
|
}, [row, field]);
|
|
3264
|
-
return /* @__PURE__ */
|
|
3071
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
3265
3072
|
StyledTd,
|
|
3266
3073
|
{
|
|
3267
3074
|
ref: cellRef,
|
|
@@ -3278,16 +3085,16 @@ var BodyCell = (props) => {
|
|
|
3278
3085
|
},
|
|
3279
3086
|
className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
|
|
3280
3087
|
},
|
|
3281
|
-
(0,
|
|
3282
|
-
() => showTooltip ? /* @__PURE__ */
|
|
3088
|
+
(0, import_react24.useMemo)(
|
|
3089
|
+
() => showTooltip ? /* @__PURE__ */ import_react24.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
|
|
3283
3090
|
[CellComponent, showTooltip]
|
|
3284
3091
|
)
|
|
3285
3092
|
);
|
|
3286
3093
|
};
|
|
3287
|
-
var BodyRow = (0,
|
|
3094
|
+
var BodyRow = (0, import_react24.memo)(
|
|
3288
3095
|
(props) => {
|
|
3289
3096
|
const { tableId, columns, rowId, editMode, noWrap, row } = props;
|
|
3290
|
-
return /* @__PURE__ */
|
|
3097
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react24.default.createElement(
|
|
3291
3098
|
BodyCell,
|
|
3292
3099
|
{
|
|
3293
3100
|
key: `${rowId}_${column.field.toString()}_${i}`,
|
|
@@ -3301,6 +3108,34 @@ var BodyRow = (0, import_react25.memo)(
|
|
|
3301
3108
|
)));
|
|
3302
3109
|
}
|
|
3303
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");
|
|
3304
3139
|
function useColumnWidths(columnsByField) {
|
|
3305
3140
|
const [widths, setWidths] = (0, import_react25.useState)({});
|
|
3306
3141
|
const roRef = (0, import_react25.useRef)();
|
|
@@ -3352,7 +3187,6 @@ function useDataTableRenderer({
|
|
|
3352
3187
|
isTotalSelected: _isTotalSelected,
|
|
3353
3188
|
isRowSelectable,
|
|
3354
3189
|
columnGroupingModel
|
|
3355
|
-
// Add this prop
|
|
3356
3190
|
}) {
|
|
3357
3191
|
if (pinnedColumns && columnGroupingModel) {
|
|
3358
3192
|
throw new Error(
|
|
@@ -3377,8 +3211,8 @@ function useDataTableRenderer({
|
|
|
3377
3211
|
...acc,
|
|
3378
3212
|
[curr.field]: {
|
|
3379
3213
|
...curr,
|
|
3380
|
-
headerRef: import_react25.
|
|
3381
|
-
tableColRef: import_react25.
|
|
3214
|
+
headerRef: (0, import_react25.createRef)(),
|
|
3215
|
+
tableColRef: (0, import_react25.createRef)()
|
|
3382
3216
|
}
|
|
3383
3217
|
}),
|
|
3384
3218
|
{}
|
|
@@ -3418,7 +3252,6 @@ function useDataTableRenderer({
|
|
|
3418
3252
|
[_rows, sortModel, sortComparator]
|
|
3419
3253
|
);
|
|
3420
3254
|
const sortOrder = (0, import_react25.useMemo)(
|
|
3421
|
-
// NOTE: default value를 props destructuring에서 할당하면 렌더링 시점에 초기화가 되어버린다.
|
|
3422
3255
|
() => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
|
|
3423
3256
|
[_sortOrder]
|
|
3424
3257
|
);
|
|
@@ -3428,11 +3261,7 @@ function useDataTableRenderer({
|
|
|
3428
3261
|
(row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
|
|
3429
3262
|
[_getId, page, pageSize]
|
|
3430
3263
|
);
|
|
3431
|
-
const selectedModelSet = (0, import_react25.useMemo)(
|
|
3432
|
-
// NOTE: default value를 props destructuring에서 할당하면 렌더링 시점에 초기화가 되어버린다.
|
|
3433
|
-
() => new Set(selectionModel || []),
|
|
3434
|
-
[selectionModel]
|
|
3435
|
-
);
|
|
3264
|
+
const selectedModelSet = (0, import_react25.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
|
|
3436
3265
|
const dataInPage = (0, import_react25.useMemo)(
|
|
3437
3266
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
3438
3267
|
[rows, page, pageSize, paginationMode, pagination]
|
|
@@ -3468,12 +3297,9 @@ function useDataTableRenderer({
|
|
|
3468
3297
|
return calculateColumnGroups(columnGroupingModel, reorderedColumns);
|
|
3469
3298
|
}, [columnGroupingModel, reorderedColumns]);
|
|
3470
3299
|
const columns = (0, import_react25.useMemo)(() => {
|
|
3471
|
-
const baseColumns = reorderedColumns.length > 0 ? reorderedColumns : (
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
field: key
|
|
3475
|
-
}))
|
|
3476
|
-
);
|
|
3300
|
+
const baseColumns = reorderedColumns.length > 0 ? reorderedColumns : Object.keys(rows[0] || {}).map((key) => ({
|
|
3301
|
+
field: key
|
|
3302
|
+
}));
|
|
3477
3303
|
return baseColumns.map((column) => {
|
|
3478
3304
|
const isLeftPinned = pinnedColumns?.left?.includes(column.field);
|
|
3479
3305
|
const isRightPinned = pinnedColumns?.right?.includes(column.field);
|
|
@@ -3488,7 +3314,6 @@ function useDataTableRenderer({
|
|
|
3488
3314
|
isPinned,
|
|
3489
3315
|
isLastStartPinnedColumn: isLeftPinned && [...pinnedColumns?.left || []].pop() === column.field,
|
|
3490
3316
|
isLastEndPinnedColumn: isRightPinned && (pinnedColumns?.right?.[0] ?? null) === column.field,
|
|
3491
|
-
// pinned 관련 계산부
|
|
3492
3317
|
pinnedStartPosition: pinnedColumns?.left?.slice(0, isLeftPinned ? pinnedColumns.left.indexOf(column.field) : pinnedColumns.left.length).reduce((acc, curr) => acc + getWidth(curr), 0),
|
|
3493
3318
|
pinnedEndPosition: pinnedColumns?.right?.slice(isRightPinned ? pinnedColumns.right.indexOf(column.field) + 1 : 0).reduce((acc, curr) => acc + getWidth(curr), 0)
|
|
3494
3319
|
};
|
|
@@ -3560,7 +3385,6 @@ function useDataTableRenderer({
|
|
|
3560
3385
|
dataInPage,
|
|
3561
3386
|
handleSortChange,
|
|
3562
3387
|
isAllSelected,
|
|
3563
|
-
// all rows are selected on this page
|
|
3564
3388
|
isTotalSelected,
|
|
3565
3389
|
isSelectedRow: (0, import_react25.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
|
|
3566
3390
|
isRowSelectable: (0, import_react25.useCallback)(
|
|
@@ -3587,19 +3411,229 @@ function useDataTableRenderer({
|
|
|
3587
3411
|
onSelectionModelChange?.(newSelectionModel);
|
|
3588
3412
|
}
|
|
3589
3413
|
},
|
|
3590
|
-
[selectionModel, onSelectionModelChange, selectedModelSet]
|
|
3591
|
-
),
|
|
3592
|
-
columns,
|
|
3593
|
-
processedColumnGroups,
|
|
3594
|
-
onTotalSelect: (0, import_react25.useCallback)(() => {
|
|
3595
|
-
const selectableRows = rows.filter((row, i) => {
|
|
3596
|
-
if (!isRowSelectable) return true;
|
|
3597
|
-
return isRowSelectable({ row, id: getId(row, i) });
|
|
3598
|
-
});
|
|
3599
|
-
onSelectionModelChange?.(isTotalSelected ? [] : selectableRows.map(getId), !isTotalSelected);
|
|
3600
|
-
}, [isTotalSelected, rows, onSelectionModelChange, getId, isRowSelectable])
|
|
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 });
|
|
3601
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
|
+
)));
|
|
3602
3630
|
}
|
|
3631
|
+
Pagination.displayName = "Pagination";
|
|
3632
|
+
|
|
3633
|
+
// src/components/Pagination/index.ts
|
|
3634
|
+
var Pagination_default = Pagination;
|
|
3635
|
+
|
|
3636
|
+
// src/components/DataTable/DataTable.tsx
|
|
3603
3637
|
function Component(props, apiRef) {
|
|
3604
3638
|
const {
|
|
3605
3639
|
rows,
|
|
@@ -3646,9 +3680,9 @@ function Component(props, apiRef) {
|
|
|
3646
3680
|
isTotalSelected: ___________,
|
|
3647
3681
|
...innerProps
|
|
3648
3682
|
} = props;
|
|
3649
|
-
const tableId = (0,
|
|
3650
|
-
const parentRef = (0,
|
|
3651
|
-
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);
|
|
3652
3686
|
const {
|
|
3653
3687
|
columns,
|
|
3654
3688
|
processedColumnGroups,
|
|
@@ -3679,29 +3713,29 @@ function Component(props, apiRef) {
|
|
|
3679
3713
|
measureElement: (element) => element.clientHeight,
|
|
3680
3714
|
overscan: 10
|
|
3681
3715
|
});
|
|
3682
|
-
const paginationModel = (0,
|
|
3716
|
+
const paginationModel = (0, import_react28.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
|
|
3683
3717
|
const totalSize = virtualizer.getTotalSize();
|
|
3684
3718
|
const virtualizedItems = virtualizer.getVirtualItems();
|
|
3685
|
-
const getRowClickHandler = (0,
|
|
3719
|
+
const getRowClickHandler = (0, import_react28.useCallback)(
|
|
3686
3720
|
(row, rowId) => (e) => {
|
|
3687
3721
|
onRowClick?.({ row, rowId }, e);
|
|
3688
3722
|
checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
|
|
3689
3723
|
},
|
|
3690
3724
|
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
|
|
3691
3725
|
);
|
|
3692
|
-
const getRowFocusHandler = (0,
|
|
3726
|
+
const getRowFocusHandler = (0, import_react28.useCallback)(
|
|
3693
3727
|
(rowId) => () => {
|
|
3694
3728
|
onRowFocus(rowId);
|
|
3695
3729
|
},
|
|
3696
3730
|
[onRowFocus]
|
|
3697
3731
|
);
|
|
3698
|
-
const getCheckboxClickHandler = (0,
|
|
3732
|
+
const getCheckboxClickHandler = (0, import_react28.useCallback)(
|
|
3699
3733
|
() => (e) => {
|
|
3700
3734
|
e.stopPropagation();
|
|
3701
3735
|
},
|
|
3702
3736
|
[]
|
|
3703
3737
|
);
|
|
3704
|
-
const getCheckboxChangeHandler = (0,
|
|
3738
|
+
const getCheckboxChangeHandler = (0, import_react28.useCallback)(
|
|
3705
3739
|
(rowId, row) => (e) => {
|
|
3706
3740
|
if (isRowSelectableCheck(rowId, row)) {
|
|
3707
3741
|
onCheckboxChange(e, rowId);
|
|
@@ -3709,7 +3743,7 @@ function Component(props, apiRef) {
|
|
|
3709
3743
|
},
|
|
3710
3744
|
[onCheckboxChange, isRowSelectableCheck]
|
|
3711
3745
|
);
|
|
3712
|
-
(0,
|
|
3746
|
+
(0, import_react28.useImperativeHandle)(apiRef, () => ({
|
|
3713
3747
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
3714
3748
|
return dataInPage.findIndex((row) => String(getId(row)) === rowId);
|
|
3715
3749
|
},
|
|
@@ -3725,7 +3759,7 @@ function Component(props, apiRef) {
|
|
|
3725
3759
|
});
|
|
3726
3760
|
}
|
|
3727
3761
|
}));
|
|
3728
|
-
return /* @__PURE__ */
|
|
3762
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
3729
3763
|
Box_default,
|
|
3730
3764
|
{
|
|
3731
3765
|
sx: {
|
|
@@ -3735,7 +3769,7 @@ function Component(props, apiRef) {
|
|
|
3735
3769
|
flexDirection: "column"
|
|
3736
3770
|
}
|
|
3737
3771
|
},
|
|
3738
|
-
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */
|
|
3772
|
+
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react28.default.createElement(
|
|
3739
3773
|
Stack_default,
|
|
3740
3774
|
{
|
|
3741
3775
|
direction: "row",
|
|
@@ -3745,10 +3779,10 @@ function Component(props, apiRef) {
|
|
|
3745
3779
|
justifyContent: "space-between",
|
|
3746
3780
|
alignItems: "center"
|
|
3747
3781
|
},
|
|
3748
|
-
!!checkboxSelection && /* @__PURE__ */
|
|
3749
|
-
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 || {} })
|
|
3750
3784
|
),
|
|
3751
|
-
/* @__PURE__ */
|
|
3785
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3752
3786
|
Sheet_default,
|
|
3753
3787
|
{
|
|
3754
3788
|
variant: "outlined",
|
|
@@ -3769,14 +3803,14 @@ function Component(props, apiRef) {
|
|
|
3769
3803
|
ref: parentRef,
|
|
3770
3804
|
...backgroundProps
|
|
3771
3805
|
},
|
|
3772
|
-
/* @__PURE__ */
|
|
3806
|
+
/* @__PURE__ */ import_react28.default.createElement(Table, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(
|
|
3773
3807
|
"col",
|
|
3774
3808
|
{
|
|
3775
3809
|
style: {
|
|
3776
3810
|
width: "40px"
|
|
3777
3811
|
}
|
|
3778
3812
|
}
|
|
3779
|
-
), columns.map((c) => /* @__PURE__ */
|
|
3813
|
+
), columns.map((c) => /* @__PURE__ */ import_react28.default.createElement(
|
|
3780
3814
|
"col",
|
|
3781
3815
|
{
|
|
3782
3816
|
ref: c.tableColRef,
|
|
@@ -3785,7 +3819,7 @@ function Component(props, apiRef) {
|
|
|
3785
3819
|
width: c.width
|
|
3786
3820
|
}
|
|
3787
3821
|
}
|
|
3788
|
-
))), /* @__PURE__ */
|
|
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(
|
|
3789
3823
|
"th",
|
|
3790
3824
|
{
|
|
3791
3825
|
rowSpan: processedColumnGroups.maxLevel + 2,
|
|
@@ -3795,7 +3829,7 @@ function Component(props, apiRef) {
|
|
|
3795
3829
|
verticalAlign: "middle"
|
|
3796
3830
|
}
|
|
3797
3831
|
},
|
|
3798
|
-
/* @__PURE__ */
|
|
3832
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3799
3833
|
RenderCheckbox,
|
|
3800
3834
|
{
|
|
3801
3835
|
onChange: onAllCheckboxChange,
|
|
@@ -3805,10 +3839,12 @@ function Component(props, apiRef) {
|
|
|
3805
3839
|
...checkboxProps
|
|
3806
3840
|
}
|
|
3807
3841
|
)
|
|
3808
|
-
), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */
|
|
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) => {
|
|
3809
3843
|
const nextGroup = levelGroups[groupIndex + 1];
|
|
3810
3844
|
const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
|
|
3811
|
-
|
|
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(
|
|
3812
3848
|
"th",
|
|
3813
3849
|
{
|
|
3814
3850
|
colSpan: group.colspan,
|
|
@@ -3816,11 +3852,12 @@ function Component(props, apiRef) {
|
|
|
3816
3852
|
textAlign: "center",
|
|
3817
3853
|
fontWeight: "bold",
|
|
3818
3854
|
verticalAlign: "middle"
|
|
3819
|
-
}
|
|
3855
|
+
},
|
|
3856
|
+
className: computedHeaderClassName
|
|
3820
3857
|
},
|
|
3821
3858
|
group.headerName ?? group.groupId
|
|
3822
|
-
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */
|
|
3823
|
-
}))), /* @__PURE__ */
|
|
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(
|
|
3824
3861
|
"th",
|
|
3825
3862
|
{
|
|
3826
3863
|
style: {
|
|
@@ -3828,7 +3865,7 @@ function Component(props, apiRef) {
|
|
|
3828
3865
|
textAlign: "center"
|
|
3829
3866
|
}
|
|
3830
3867
|
},
|
|
3831
|
-
/* @__PURE__ */
|
|
3868
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3832
3869
|
RenderCheckbox,
|
|
3833
3870
|
{
|
|
3834
3871
|
onChange: onAllCheckboxChange,
|
|
@@ -3840,7 +3877,7 @@ function Component(props, apiRef) {
|
|
|
3840
3877
|
)
|
|
3841
3878
|
), columns.map((c, i) => (
|
|
3842
3879
|
// @ts-ignore
|
|
3843
|
-
/* @__PURE__ */
|
|
3880
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3844
3881
|
HeadCell2,
|
|
3845
3882
|
{
|
|
3846
3883
|
tableId,
|
|
@@ -3851,7 +3888,7 @@ function Component(props, apiRef) {
|
|
|
3851
3888
|
...c
|
|
3852
3889
|
}
|
|
3853
3890
|
)
|
|
3854
|
-
)))), /* @__PURE__ */
|
|
3891
|
+
)))), /* @__PURE__ */ import_react28.default.createElement(
|
|
3855
3892
|
VirtualizedTableBody,
|
|
3856
3893
|
{
|
|
3857
3894
|
ref: tableBodyRef,
|
|
@@ -3861,7 +3898,7 @@ function Component(props, apiRef) {
|
|
|
3861
3898
|
role: "rowgroup",
|
|
3862
3899
|
"aria-label": "DataTableBody"
|
|
3863
3900
|
},
|
|
3864
|
-
!!loading && /* @__PURE__ */
|
|
3901
|
+
!!loading && /* @__PURE__ */ import_react28.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react28.default.createElement(
|
|
3865
3902
|
"td",
|
|
3866
3903
|
{
|
|
3867
3904
|
style: {
|
|
@@ -3870,7 +3907,7 @@ function Component(props, apiRef) {
|
|
|
3870
3907
|
overflow: "visible"
|
|
3871
3908
|
}
|
|
3872
3909
|
},
|
|
3873
|
-
/* @__PURE__ */
|
|
3910
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3874
3911
|
Box_default,
|
|
3875
3912
|
{
|
|
3876
3913
|
sx: {
|
|
@@ -3880,7 +3917,7 @@ function Component(props, apiRef) {
|
|
|
3880
3917
|
right: 0
|
|
3881
3918
|
}
|
|
3882
3919
|
},
|
|
3883
|
-
/* @__PURE__ */
|
|
3920
|
+
/* @__PURE__ */ import_react28.default.createElement(LoadingOverlay, null)
|
|
3884
3921
|
)
|
|
3885
3922
|
)),
|
|
3886
3923
|
virtualizedItems.map((virtualizedRow, index) => {
|
|
@@ -3888,7 +3925,7 @@ function Component(props, apiRef) {
|
|
|
3888
3925
|
const row = dataInPage[rowIndex];
|
|
3889
3926
|
const rowId = getId(row, rowIndex);
|
|
3890
3927
|
const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
|
|
3891
|
-
return /* @__PURE__ */
|
|
3928
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
3892
3929
|
VirtualizedTableRow,
|
|
3893
3930
|
{
|
|
3894
3931
|
key: virtualizedRow.key,
|
|
@@ -3906,7 +3943,7 @@ function Component(props, apiRef) {
|
|
|
3906
3943
|
transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
|
|
3907
3944
|
}
|
|
3908
3945
|
},
|
|
3909
|
-
checkboxSelection && /* @__PURE__ */
|
|
3946
|
+
checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(
|
|
3910
3947
|
"th",
|
|
3911
3948
|
{
|
|
3912
3949
|
scope: "row",
|
|
@@ -3914,7 +3951,7 @@ function Component(props, apiRef) {
|
|
|
3914
3951
|
textAlign: "center"
|
|
3915
3952
|
}
|
|
3916
3953
|
},
|
|
3917
|
-
/* @__PURE__ */
|
|
3954
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3918
3955
|
RenderCheckbox,
|
|
3919
3956
|
{
|
|
3920
3957
|
onClick: getCheckboxClickHandler(),
|
|
@@ -3925,7 +3962,7 @@ function Component(props, apiRef) {
|
|
|
3925
3962
|
}
|
|
3926
3963
|
)
|
|
3927
3964
|
),
|
|
3928
|
-
/* @__PURE__ */
|
|
3965
|
+
/* @__PURE__ */ import_react28.default.createElement(
|
|
3929
3966
|
BodyRow2,
|
|
3930
3967
|
{
|
|
3931
3968
|
tableId,
|
|
@@ -3938,9 +3975,9 @@ function Component(props, apiRef) {
|
|
|
3938
3975
|
)
|
|
3939
3976
|
);
|
|
3940
3977
|
})
|
|
3941
|
-
), Footer && /* @__PURE__ */
|
|
3978
|
+
), Footer && /* @__PURE__ */ import_react28.default.createElement(Footer, null))
|
|
3942
3979
|
),
|
|
3943
|
-
pagination && /* @__PURE__ */
|
|
3980
|
+
pagination && /* @__PURE__ */ import_react28.default.createElement(
|
|
3944
3981
|
Pagination_default,
|
|
3945
3982
|
{
|
|
3946
3983
|
pt: 2,
|
|
@@ -3953,16 +3990,16 @@ function Component(props, apiRef) {
|
|
|
3953
3990
|
)
|
|
3954
3991
|
);
|
|
3955
3992
|
}
|
|
3956
|
-
var DataTable = (0,
|
|
3993
|
+
var DataTable = (0, import_react28.forwardRef)(Component);
|
|
3957
3994
|
DataTable.displayName = "DataTable";
|
|
3958
3995
|
|
|
3959
3996
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
3960
|
-
var
|
|
3997
|
+
var import_react29 = __toESM(require("react"));
|
|
3961
3998
|
var import_react_imask2 = require("react-imask");
|
|
3962
3999
|
var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
3963
|
-
var
|
|
4000
|
+
var import_joy36 = require("@mui/joy");
|
|
3964
4001
|
var import_base3 = require("@mui/base");
|
|
3965
|
-
var CalendarButton2 = (0,
|
|
4002
|
+
var CalendarButton2 = (0, import_joy36.styled)(IconButton_default, {
|
|
3966
4003
|
name: "DateRangePicker",
|
|
3967
4004
|
slot: "calendarButton"
|
|
3968
4005
|
})(({ theme }) => ({
|
|
@@ -3972,13 +4009,13 @@ var CalendarButton2 = (0, import_joy34.styled)(IconButton_default, {
|
|
|
3972
4009
|
outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
|
|
3973
4010
|
}
|
|
3974
4011
|
}));
|
|
3975
|
-
var StyledPopper2 = (0,
|
|
4012
|
+
var StyledPopper2 = (0, import_joy36.styled)(import_base3.Popper, {
|
|
3976
4013
|
name: "DateRangePicker",
|
|
3977
4014
|
slot: "popper"
|
|
3978
4015
|
})(({ theme }) => ({
|
|
3979
4016
|
zIndex: theme.zIndex.tooltip
|
|
3980
4017
|
}));
|
|
3981
|
-
var CalendarSheet2 = (0,
|
|
4018
|
+
var CalendarSheet2 = (0, import_joy36.styled)(Sheet_default, {
|
|
3982
4019
|
name: "DateRangePicker",
|
|
3983
4020
|
slot: "sheet",
|
|
3984
4021
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -3988,7 +4025,7 @@ var CalendarSheet2 = (0, import_joy34.styled)(Sheet_default, {
|
|
|
3988
4025
|
boxShadow: theme.shadow.md,
|
|
3989
4026
|
borderRadius: theme.radius.md
|
|
3990
4027
|
}));
|
|
3991
|
-
var DateRangePickerRoot = (0,
|
|
4028
|
+
var DateRangePickerRoot = (0, import_joy36.styled)("div", {
|
|
3992
4029
|
name: "DateRangePicker",
|
|
3993
4030
|
slot: "root",
|
|
3994
4031
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -4058,9 +4095,9 @@ var parseDates = (str, format) => {
|
|
|
4058
4095
|
var formatToPattern2 = (format) => {
|
|
4059
4096
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
4060
4097
|
};
|
|
4061
|
-
var TextMaskAdapter5 =
|
|
4098
|
+
var TextMaskAdapter5 = import_react29.default.forwardRef(function TextMaskAdapter6(props, ref) {
|
|
4062
4099
|
const { onChange, format, ...other } = props;
|
|
4063
|
-
return /* @__PURE__ */
|
|
4100
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
4064
4101
|
import_react_imask2.IMaskInput,
|
|
4065
4102
|
{
|
|
4066
4103
|
...other,
|
|
@@ -4094,8 +4131,8 @@ var TextMaskAdapter5 = import_react26.default.forwardRef(function TextMaskAdapte
|
|
|
4094
4131
|
}
|
|
4095
4132
|
);
|
|
4096
4133
|
});
|
|
4097
|
-
var DateRangePicker = (0,
|
|
4098
|
-
const props = (0,
|
|
4134
|
+
var DateRangePicker = (0, import_react29.forwardRef)((inProps, ref) => {
|
|
4135
|
+
const props = (0, import_joy36.useThemeProps)({ props: inProps, name: "DateRangePicker" });
|
|
4099
4136
|
const {
|
|
4100
4137
|
onChange,
|
|
4101
4138
|
disabled,
|
|
@@ -4118,23 +4155,23 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4118
4155
|
readOnly,
|
|
4119
4156
|
...innerProps
|
|
4120
4157
|
} = props;
|
|
4121
|
-
const innerRef = (0,
|
|
4122
|
-
const buttonRef = (0,
|
|
4158
|
+
const innerRef = (0, import_react29.useRef)(null);
|
|
4159
|
+
const buttonRef = (0, import_react29.useRef)(null);
|
|
4123
4160
|
const [value, setValue] = useControlledState(
|
|
4124
4161
|
props.value,
|
|
4125
4162
|
props.defaultValue || "",
|
|
4126
|
-
(0,
|
|
4163
|
+
(0, import_react29.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
4127
4164
|
);
|
|
4128
|
-
const [displayValue, setDisplayValue] = (0,
|
|
4165
|
+
const [displayValue, setDisplayValue] = (0, import_react29.useState)(
|
|
4129
4166
|
() => value ? formatValueString2(parseDates(value, format), displayFormat) : ""
|
|
4130
4167
|
);
|
|
4131
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
4168
|
+
const [anchorEl, setAnchorEl] = (0, import_react29.useState)(null);
|
|
4132
4169
|
const open = Boolean(anchorEl);
|
|
4133
|
-
const calendarValue = (0,
|
|
4170
|
+
const calendarValue = (0, import_react29.useMemo)(
|
|
4134
4171
|
() => value ? parseDates(value, format) : void 0,
|
|
4135
4172
|
[value, format]
|
|
4136
4173
|
);
|
|
4137
|
-
(0,
|
|
4174
|
+
(0, import_react29.useEffect)(() => {
|
|
4138
4175
|
if (value) {
|
|
4139
4176
|
try {
|
|
4140
4177
|
const dates = parseDates(value, format);
|
|
@@ -4146,13 +4183,13 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4146
4183
|
setDisplayValue("");
|
|
4147
4184
|
}
|
|
4148
4185
|
}, [displayFormat, value, format]);
|
|
4149
|
-
(0,
|
|
4186
|
+
(0, import_react29.useEffect)(() => {
|
|
4150
4187
|
if (!anchorEl) {
|
|
4151
4188
|
innerRef.current?.blur();
|
|
4152
4189
|
}
|
|
4153
4190
|
}, [anchorEl, innerRef]);
|
|
4154
|
-
(0,
|
|
4155
|
-
const handleChange = (0,
|
|
4191
|
+
(0, import_react29.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
4192
|
+
const handleChange = (0, import_react29.useCallback)(
|
|
4156
4193
|
(event) => {
|
|
4157
4194
|
const value2 = event.target.value;
|
|
4158
4195
|
setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat) : value2);
|
|
@@ -4160,7 +4197,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4160
4197
|
},
|
|
4161
4198
|
[displayFormat, format, setValue]
|
|
4162
4199
|
);
|
|
4163
|
-
const handleDisplayInputChange = (0,
|
|
4200
|
+
const handleDisplayInputChange = (0, import_react29.useCallback)(
|
|
4164
4201
|
(event) => {
|
|
4165
4202
|
if (event.target.value === "") {
|
|
4166
4203
|
handleChange({
|
|
@@ -4185,14 +4222,14 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4185
4222
|
},
|
|
4186
4223
|
[displayFormat, format, handleChange, props.name]
|
|
4187
4224
|
);
|
|
4188
|
-
const handleCalendarToggle = (0,
|
|
4225
|
+
const handleCalendarToggle = (0, import_react29.useCallback)(
|
|
4189
4226
|
(event) => {
|
|
4190
4227
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
4191
4228
|
innerRef.current?.focus();
|
|
4192
4229
|
},
|
|
4193
4230
|
[anchorEl, setAnchorEl, innerRef]
|
|
4194
4231
|
);
|
|
4195
|
-
const handleCalendarChange = (0,
|
|
4232
|
+
const handleCalendarChange = (0, import_react29.useCallback)(
|
|
4196
4233
|
([date1, date2]) => {
|
|
4197
4234
|
if (!date1 || !date2) return;
|
|
4198
4235
|
const formattedValue = formatValueString2([date1, date2], format);
|
|
@@ -4206,7 +4243,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4206
4243
|
},
|
|
4207
4244
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat]
|
|
4208
4245
|
);
|
|
4209
|
-
const handleInputMouseDown = (0,
|
|
4246
|
+
const handleInputMouseDown = (0, import_react29.useCallback)(
|
|
4210
4247
|
(event) => {
|
|
4211
4248
|
if (inputReadOnly) {
|
|
4212
4249
|
event.preventDefault();
|
|
@@ -4215,7 +4252,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4215
4252
|
},
|
|
4216
4253
|
[inputReadOnly, buttonRef]
|
|
4217
4254
|
);
|
|
4218
|
-
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(
|
|
4219
4256
|
Input_default,
|
|
4220
4257
|
{
|
|
4221
4258
|
...innerProps,
|
|
@@ -4243,7 +4280,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4243
4280
|
error,
|
|
4244
4281
|
className,
|
|
4245
4282
|
sx,
|
|
4246
|
-
endDecorator: /* @__PURE__ */
|
|
4283
|
+
endDecorator: /* @__PURE__ */ import_react29.default.createElement(
|
|
4247
4284
|
CalendarButton2,
|
|
4248
4285
|
{
|
|
4249
4286
|
ref: buttonRef,
|
|
@@ -4255,13 +4292,13 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4255
4292
|
"aria-expanded": open,
|
|
4256
4293
|
disabled
|
|
4257
4294
|
},
|
|
4258
|
-
/* @__PURE__ */
|
|
4295
|
+
/* @__PURE__ */ import_react29.default.createElement(import_CalendarToday2.default, null)
|
|
4259
4296
|
),
|
|
4260
4297
|
label,
|
|
4261
4298
|
helperText,
|
|
4262
4299
|
readOnly: readOnly || inputReadOnly
|
|
4263
4300
|
}
|
|
4264
|
-
), open && /* @__PURE__ */
|
|
4301
|
+
), open && /* @__PURE__ */ import_react29.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4265
4302
|
StyledPopper2,
|
|
4266
4303
|
{
|
|
4267
4304
|
id: "date-range-picker-popper",
|
|
@@ -4280,7 +4317,7 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4280
4317
|
"aria-label": "Calendar Tooltip",
|
|
4281
4318
|
"aria-expanded": open
|
|
4282
4319
|
},
|
|
4283
|
-
/* @__PURE__ */
|
|
4320
|
+
/* @__PURE__ */ import_react29.default.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4284
4321
|
Calendar_default,
|
|
4285
4322
|
{
|
|
4286
4323
|
rangeSelection: true,
|
|
@@ -4291,14 +4328,14 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4291
4328
|
disableFuture,
|
|
4292
4329
|
disablePast
|
|
4293
4330
|
}
|
|
4294
|
-
), !hideClearButton && /* @__PURE__ */
|
|
4331
|
+
), !hideClearButton && /* @__PURE__ */ import_react29.default.createElement(
|
|
4295
4332
|
DialogActions_default,
|
|
4296
4333
|
{
|
|
4297
4334
|
sx: {
|
|
4298
4335
|
p: 1
|
|
4299
4336
|
}
|
|
4300
4337
|
},
|
|
4301
|
-
/* @__PURE__ */
|
|
4338
|
+
/* @__PURE__ */ import_react29.default.createElement(
|
|
4302
4339
|
Button_default,
|
|
4303
4340
|
{
|
|
4304
4341
|
size,
|
|
@@ -4318,10 +4355,10 @@ var DateRangePicker = (0, import_react26.forwardRef)((inProps, ref) => {
|
|
|
4318
4355
|
DateRangePicker.displayName = "DateRangePicker";
|
|
4319
4356
|
|
|
4320
4357
|
// src/components/DialogContent/DialogContent.tsx
|
|
4321
|
-
var
|
|
4322
|
-
var
|
|
4323
|
-
var MotionDialogContent = (0,
|
|
4324
|
-
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 }) => ({
|
|
4325
4362
|
padding: theme.spacing(0, 6, 5)
|
|
4326
4363
|
}));
|
|
4327
4364
|
var DialogContent = StyledDialogContent;
|
|
@@ -4331,10 +4368,10 @@ DialogContent.displayName = "DialogContent";
|
|
|
4331
4368
|
var DialogContent_default = DialogContent;
|
|
4332
4369
|
|
|
4333
4370
|
// src/components/DialogTitle/DialogTitle.tsx
|
|
4334
|
-
var
|
|
4335
|
-
var
|
|
4336
|
-
var MotionDialogTitle = (0,
|
|
4337
|
-
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 }) => ({
|
|
4338
4375
|
padding: theme.spacing(4, 6)
|
|
4339
4376
|
}));
|
|
4340
4377
|
var DialogTitle = StyledDialogTitle;
|
|
@@ -4344,58 +4381,58 @@ DialogTitle.displayName = "DialogTitle";
|
|
|
4344
4381
|
var DialogTitle_default = DialogTitle;
|
|
4345
4382
|
|
|
4346
4383
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
4347
|
-
var
|
|
4384
|
+
var import_react31 = __toESM(require("react"));
|
|
4348
4385
|
|
|
4349
4386
|
// src/components/Modal/Modal.tsx
|
|
4350
|
-
var
|
|
4351
|
-
var
|
|
4352
|
-
var
|
|
4353
|
-
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);
|
|
4354
4391
|
var Modal = MotionModal;
|
|
4355
4392
|
Modal.displayName = "Modal";
|
|
4356
|
-
var StyledModalDialog = (0,
|
|
4393
|
+
var StyledModalDialog = (0, import_joy39.styled)(import_joy39.ModalDialog)({
|
|
4357
4394
|
padding: 0
|
|
4358
4395
|
});
|
|
4359
4396
|
var ModalDialog = StyledModalDialog;
|
|
4360
4397
|
ModalDialog.displayName = "ModalDialog";
|
|
4361
|
-
var ModalClose =
|
|
4362
|
-
var MotionModalOverflow = (0,
|
|
4398
|
+
var ModalClose = import_joy39.ModalClose;
|
|
4399
|
+
var MotionModalOverflow = (0, import_framer_motion25.motion)(import_joy39.ModalOverflow);
|
|
4363
4400
|
var ModalOverflow = MotionModalOverflow;
|
|
4364
4401
|
ModalOverflow.displayName = "ModalOverflow";
|
|
4365
4402
|
function ModalFrame(props) {
|
|
4366
4403
|
const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
|
|
4367
|
-
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));
|
|
4368
4405
|
}
|
|
4369
4406
|
ModalFrame.displayName = "ModalFrame";
|
|
4370
4407
|
|
|
4371
4408
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
4372
|
-
var
|
|
4373
|
-
var StyledDialogFrame = (0,
|
|
4409
|
+
var import_joy40 = require("@mui/joy");
|
|
4410
|
+
var StyledDialogFrame = (0, import_joy40.styled)(ModalDialog, {
|
|
4374
4411
|
name: "Dialog",
|
|
4375
4412
|
slot: "Root"
|
|
4376
4413
|
})({
|
|
4377
4414
|
padding: 0
|
|
4378
4415
|
});
|
|
4379
|
-
var DialogFrame =
|
|
4416
|
+
var DialogFrame = import_react31.default.forwardRef((props, ref) => {
|
|
4380
4417
|
const { title, children, actions, fullscreen, ...innerProps } = props;
|
|
4381
|
-
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));
|
|
4382
4419
|
});
|
|
4383
4420
|
DialogFrame.displayName = "DialogFrame";
|
|
4384
4421
|
|
|
4385
4422
|
// src/components/Divider/Divider.tsx
|
|
4386
|
-
var
|
|
4387
|
-
var
|
|
4388
|
-
var
|
|
4389
|
-
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);
|
|
4390
4427
|
var Divider = (props) => {
|
|
4391
|
-
return /* @__PURE__ */
|
|
4428
|
+
return /* @__PURE__ */ import_react32.default.createElement(MotionDivider, { ...props });
|
|
4392
4429
|
};
|
|
4393
4430
|
Divider.displayName = "Divider";
|
|
4394
4431
|
|
|
4395
4432
|
// src/components/InsetDrawer/InsetDrawer.tsx
|
|
4396
|
-
var
|
|
4397
|
-
var InsetDrawer = (0,
|
|
4398
|
-
[`& .${
|
|
4433
|
+
var import_joy42 = require("@mui/joy");
|
|
4434
|
+
var InsetDrawer = (0, import_joy42.styled)(import_joy42.Drawer)(({ theme }) => ({
|
|
4435
|
+
[`& .${import_joy42.drawerClasses.content}`]: {
|
|
4399
4436
|
backgroundColor: "transparent",
|
|
4400
4437
|
boxShadow: "none",
|
|
4401
4438
|
[theme.breakpoints.down("md")]: {
|
|
@@ -4409,16 +4446,16 @@ var InsetDrawer = (0, import_joy40.styled)(import_joy40.Drawer)(({ theme }) => (
|
|
|
4409
4446
|
}));
|
|
4410
4447
|
|
|
4411
4448
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
4412
|
-
var
|
|
4413
|
-
var
|
|
4449
|
+
var import_react42 = __toESM(require("react"));
|
|
4450
|
+
var import_joy53 = require("@mui/joy");
|
|
4414
4451
|
|
|
4415
4452
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
4416
|
-
var
|
|
4417
|
-
var
|
|
4453
|
+
var import_react33 = __toESM(require("react"));
|
|
4454
|
+
var import_joy43 = require("@mui/joy");
|
|
4418
4455
|
function CheckboxGroup(props) {
|
|
4419
4456
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4420
4457
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
4421
|
-
const handleCheckboxChange = (0,
|
|
4458
|
+
const handleCheckboxChange = (0, import_react33.useCallback)(
|
|
4422
4459
|
(optionValue) => (event) => {
|
|
4423
4460
|
const checked = event.target.checked;
|
|
4424
4461
|
let newValue;
|
|
@@ -4434,7 +4471,7 @@ function CheckboxGroup(props) {
|
|
|
4434
4471
|
if (hidden) {
|
|
4435
4472
|
return null;
|
|
4436
4473
|
}
|
|
4437
|
-
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(
|
|
4438
4475
|
Checkbox_default,
|
|
4439
4476
|
{
|
|
4440
4477
|
key: `${id}-${option.value}`,
|
|
@@ -4447,24 +4484,24 @@ function CheckboxGroup(props) {
|
|
|
4447
4484
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
4448
4485
|
|
|
4449
4486
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4450
|
-
var
|
|
4487
|
+
var import_react34 = __toESM(require("react"));
|
|
4451
4488
|
|
|
4452
4489
|
// src/components/Radio/Radio.tsx
|
|
4453
|
-
var
|
|
4454
|
-
var
|
|
4455
|
-
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);
|
|
4456
4493
|
var Radio = MotionRadio;
|
|
4457
4494
|
Radio.displayName = "Radio";
|
|
4458
|
-
var MotionRadioGroup = (0,
|
|
4495
|
+
var MotionRadioGroup = (0, import_framer_motion27.motion)(import_joy44.RadioGroup);
|
|
4459
4496
|
var RadioGroup = MotionRadioGroup;
|
|
4460
4497
|
RadioGroup.displayName = "RadioGroup";
|
|
4461
4498
|
|
|
4462
4499
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4463
|
-
var
|
|
4500
|
+
var import_joy45 = require("@mui/joy");
|
|
4464
4501
|
function RadioGroup2(props) {
|
|
4465
4502
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4466
4503
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
4467
|
-
const handleRadioChange = (0,
|
|
4504
|
+
const handleRadioChange = (0, import_react34.useCallback)(
|
|
4468
4505
|
(event) => {
|
|
4469
4506
|
const newValue = event.target.value;
|
|
4470
4507
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -4476,13 +4513,13 @@ function RadioGroup2(props) {
|
|
|
4476
4513
|
if (hidden) {
|
|
4477
4514
|
return null;
|
|
4478
4515
|
}
|
|
4479
|
-
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 }))));
|
|
4480
4517
|
}
|
|
4481
4518
|
RadioGroup2.displayName = "RadioGroup";
|
|
4482
4519
|
|
|
4483
4520
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
4484
|
-
var
|
|
4485
|
-
var
|
|
4521
|
+
var import_react35 = __toESM(require("react"));
|
|
4522
|
+
var import_joy46 = require("@mui/joy");
|
|
4486
4523
|
function DateRange(props) {
|
|
4487
4524
|
const {
|
|
4488
4525
|
id,
|
|
@@ -4500,8 +4537,8 @@ function DateRange(props) {
|
|
|
4500
4537
|
hideClearButton
|
|
4501
4538
|
} = props;
|
|
4502
4539
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
4503
|
-
const [selectedOption, setSelectedOption] = (0,
|
|
4504
|
-
const dateRangeOptions = (0,
|
|
4540
|
+
const [selectedOption, setSelectedOption] = (0, import_react35.useState)("all-time");
|
|
4541
|
+
const dateRangeOptions = (0, import_react35.useMemo)(
|
|
4505
4542
|
() => [
|
|
4506
4543
|
{ label: "All Time", value: "all-time" },
|
|
4507
4544
|
{ label: "This Month", value: "this-month" },
|
|
@@ -4511,7 +4548,7 @@ function DateRange(props) {
|
|
|
4511
4548
|
],
|
|
4512
4549
|
[]
|
|
4513
4550
|
);
|
|
4514
|
-
const getDateRangeForOption = (0,
|
|
4551
|
+
const getDateRangeForOption = (0, import_react35.useCallback)(
|
|
4515
4552
|
(option) => {
|
|
4516
4553
|
const now = /* @__PURE__ */ new Date();
|
|
4517
4554
|
const currentYear = now.getFullYear();
|
|
@@ -4550,7 +4587,7 @@ function DateRange(props) {
|
|
|
4550
4587
|
},
|
|
4551
4588
|
[internalValue]
|
|
4552
4589
|
);
|
|
4553
|
-
const determineOptionFromValue = (0,
|
|
4590
|
+
const determineOptionFromValue = (0, import_react35.useCallback)(
|
|
4554
4591
|
(value2) => {
|
|
4555
4592
|
if (!value2) {
|
|
4556
4593
|
return "all-time";
|
|
@@ -4566,17 +4603,17 @@ function DateRange(props) {
|
|
|
4566
4603
|
},
|
|
4567
4604
|
[getDateRangeForOption]
|
|
4568
4605
|
);
|
|
4569
|
-
const customDateRangeValue = (0,
|
|
4606
|
+
const customDateRangeValue = (0, import_react35.useMemo)(() => {
|
|
4570
4607
|
if (selectedOption === "custom" && internalValue) {
|
|
4571
4608
|
return `${internalValue[0]} - ${internalValue[1]}`;
|
|
4572
4609
|
}
|
|
4573
4610
|
return "";
|
|
4574
4611
|
}, [selectedOption, internalValue]);
|
|
4575
|
-
(0,
|
|
4612
|
+
(0, import_react35.useEffect)(() => {
|
|
4576
4613
|
const newOption = determineOptionFromValue(internalValue);
|
|
4577
4614
|
setSelectedOption(newOption);
|
|
4578
4615
|
}, [internalValue, determineOptionFromValue]);
|
|
4579
|
-
const handleOptionChange = (0,
|
|
4616
|
+
const handleOptionChange = (0, import_react35.useCallback)(
|
|
4580
4617
|
(event) => {
|
|
4581
4618
|
const newOption = event.target.value;
|
|
4582
4619
|
setSelectedOption(newOption);
|
|
@@ -4585,7 +4622,7 @@ function DateRange(props) {
|
|
|
4585
4622
|
},
|
|
4586
4623
|
[getDateRangeForOption, setInternalValue]
|
|
4587
4624
|
);
|
|
4588
|
-
const handleCustomDateChange = (0,
|
|
4625
|
+
const handleCustomDateChange = (0, import_react35.useCallback)(
|
|
4589
4626
|
(event) => {
|
|
4590
4627
|
const dateRangeString = event.target.value;
|
|
4591
4628
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
@@ -4603,7 +4640,7 @@ function DateRange(props) {
|
|
|
4603
4640
|
if (hidden) {
|
|
4604
4641
|
return null;
|
|
4605
4642
|
}
|
|
4606
|
-
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(
|
|
4607
4644
|
DateRangePicker,
|
|
4608
4645
|
{
|
|
4609
4646
|
value: customDateRangeValue,
|
|
@@ -4622,12 +4659,12 @@ function DateRange(props) {
|
|
|
4622
4659
|
DateRange.displayName = "DateRange";
|
|
4623
4660
|
|
|
4624
4661
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
4625
|
-
var
|
|
4626
|
-
var
|
|
4662
|
+
var import_react36 = __toESM(require("react"));
|
|
4663
|
+
var import_joy47 = require("@mui/joy");
|
|
4627
4664
|
function CurrencyInput3(props) {
|
|
4628
4665
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4629
4666
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
4630
|
-
const handleCurrencyChange = (0,
|
|
4667
|
+
const handleCurrencyChange = (0, import_react36.useCallback)(
|
|
4631
4668
|
(event) => {
|
|
4632
4669
|
const newValue = event.target.value;
|
|
4633
4670
|
setInternalValue(newValue);
|
|
@@ -4637,7 +4674,7 @@ function CurrencyInput3(props) {
|
|
|
4637
4674
|
if (hidden) {
|
|
4638
4675
|
return null;
|
|
4639
4676
|
}
|
|
4640
|
-
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(
|
|
4641
4678
|
CurrencyInput,
|
|
4642
4679
|
{
|
|
4643
4680
|
value: internalValue,
|
|
@@ -4653,14 +4690,14 @@ function CurrencyInput3(props) {
|
|
|
4653
4690
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
4654
4691
|
|
|
4655
4692
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
4656
|
-
var
|
|
4657
|
-
var
|
|
4693
|
+
var import_react37 = __toESM(require("react"));
|
|
4694
|
+
var import_joy48 = require("@mui/joy");
|
|
4658
4695
|
function CurrencyRange(props) {
|
|
4659
4696
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4660
4697
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
4661
4698
|
const minValue = internalValue?.[0];
|
|
4662
4699
|
const maxValue = internalValue?.[1];
|
|
4663
|
-
const handleMinChange = (0,
|
|
4700
|
+
const handleMinChange = (0, import_react37.useCallback)(
|
|
4664
4701
|
(event) => {
|
|
4665
4702
|
const newMinValue = event.target.value;
|
|
4666
4703
|
const currentMaxValue = maxValue;
|
|
@@ -4674,7 +4711,7 @@ function CurrencyRange(props) {
|
|
|
4674
4711
|
},
|
|
4675
4712
|
[maxValue, setInternalValue]
|
|
4676
4713
|
);
|
|
4677
|
-
const handleMaxChange = (0,
|
|
4714
|
+
const handleMaxChange = (0, import_react37.useCallback)(
|
|
4678
4715
|
(event) => {
|
|
4679
4716
|
const newMaxValue = event.target.value;
|
|
4680
4717
|
const currentMinValue = minValue;
|
|
@@ -4691,7 +4728,7 @@ function CurrencyRange(props) {
|
|
|
4691
4728
|
if (hidden) {
|
|
4692
4729
|
return null;
|
|
4693
4730
|
}
|
|
4694
|
-
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(
|
|
4695
4732
|
CurrencyInput,
|
|
4696
4733
|
{
|
|
4697
4734
|
label: "Minimum",
|
|
@@ -4704,7 +4741,7 @@ function CurrencyRange(props) {
|
|
|
4704
4741
|
"aria-labelledby": label ? id : void 0,
|
|
4705
4742
|
"aria-label": "Minimum amount"
|
|
4706
4743
|
}
|
|
4707
|
-
), /* @__PURE__ */
|
|
4744
|
+
), /* @__PURE__ */ import_react37.default.createElement(
|
|
4708
4745
|
CurrencyInput,
|
|
4709
4746
|
{
|
|
4710
4747
|
label: "Maximum",
|
|
@@ -4722,20 +4759,20 @@ function CurrencyRange(props) {
|
|
|
4722
4759
|
CurrencyRange.displayName = "CurrencyRange";
|
|
4723
4760
|
|
|
4724
4761
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
4725
|
-
var
|
|
4726
|
-
var
|
|
4762
|
+
var import_react39 = __toESM(require("react"));
|
|
4763
|
+
var import_joy50 = require("@mui/joy");
|
|
4727
4764
|
|
|
4728
4765
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
4729
|
-
var
|
|
4766
|
+
var import_react38 = __toESM(require("react"));
|
|
4730
4767
|
var import_react_number_format2 = require("react-number-format");
|
|
4731
|
-
var
|
|
4768
|
+
var import_joy49 = require("@mui/joy");
|
|
4732
4769
|
var padDecimal = (value, decimalScale) => {
|
|
4733
4770
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
4734
4771
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
4735
4772
|
};
|
|
4736
|
-
var TextMaskAdapter7 =
|
|
4773
|
+
var TextMaskAdapter7 = import_react38.default.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
4737
4774
|
const { onChange, min, max, ...innerProps } = props;
|
|
4738
|
-
return /* @__PURE__ */
|
|
4775
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
4739
4776
|
import_react_number_format2.NumericFormat,
|
|
4740
4777
|
{
|
|
4741
4778
|
...innerProps,
|
|
@@ -4755,14 +4792,14 @@ var TextMaskAdapter7 = import_react35.default.forwardRef(function TextMaskAdapte
|
|
|
4755
4792
|
}
|
|
4756
4793
|
);
|
|
4757
4794
|
});
|
|
4758
|
-
var PercentageInputRoot = (0,
|
|
4795
|
+
var PercentageInputRoot = (0, import_joy49.styled)(Input_default, {
|
|
4759
4796
|
name: "PercentageInput",
|
|
4760
4797
|
slot: "Root",
|
|
4761
4798
|
overridesResolver: (props, styles) => styles.root
|
|
4762
4799
|
})({});
|
|
4763
|
-
var PercentageInput =
|
|
4800
|
+
var PercentageInput = import_react38.default.forwardRef(
|
|
4764
4801
|
function PercentageInput2(inProps, ref) {
|
|
4765
|
-
const props = (0,
|
|
4802
|
+
const props = (0, import_joy49.useThemeProps)({ props: inProps, name: "PercentageInput" });
|
|
4766
4803
|
const {
|
|
4767
4804
|
name,
|
|
4768
4805
|
onChange,
|
|
@@ -4783,18 +4820,18 @@ var PercentageInput = import_react35.default.forwardRef(
|
|
|
4783
4820
|
const [_value, setValue] = useControlledState(
|
|
4784
4821
|
props.value,
|
|
4785
4822
|
props.defaultValue,
|
|
4786
|
-
(0,
|
|
4823
|
+
(0, import_react38.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
4787
4824
|
);
|
|
4788
|
-
const [internalError, setInternalError] = (0,
|
|
4825
|
+
const [internalError, setInternalError] = (0, import_react38.useState)(
|
|
4789
4826
|
max && _value && _value > max || min && _value && _value < min
|
|
4790
4827
|
);
|
|
4791
|
-
const value = (0,
|
|
4828
|
+
const value = (0, import_react38.useMemo)(() => {
|
|
4792
4829
|
if (_value && useMinorUnit) {
|
|
4793
4830
|
return _value / Math.pow(10, maxDecimalScale);
|
|
4794
4831
|
}
|
|
4795
4832
|
return _value;
|
|
4796
4833
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
4797
|
-
const handleChange = (0,
|
|
4834
|
+
const handleChange = (0, import_react38.useCallback)(
|
|
4798
4835
|
(event) => {
|
|
4799
4836
|
if (event.target.value === "") {
|
|
4800
4837
|
setValue(void 0);
|
|
@@ -4811,7 +4848,7 @@ var PercentageInput = import_react35.default.forwardRef(
|
|
|
4811
4848
|
},
|
|
4812
4849
|
[setValue, useMinorUnit, maxDecimalScale, min, max]
|
|
4813
4850
|
);
|
|
4814
|
-
return /* @__PURE__ */
|
|
4851
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
4815
4852
|
PercentageInputRoot,
|
|
4816
4853
|
{
|
|
4817
4854
|
...innerProps,
|
|
@@ -4858,7 +4895,7 @@ var PercentageInput3 = ({
|
|
|
4858
4895
|
if (hidden) {
|
|
4859
4896
|
return null;
|
|
4860
4897
|
}
|
|
4861
|
-
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(
|
|
4862
4899
|
PercentageInput,
|
|
4863
4900
|
{
|
|
4864
4901
|
value: _value,
|
|
@@ -4873,8 +4910,8 @@ var PercentageInput3 = ({
|
|
|
4873
4910
|
};
|
|
4874
4911
|
|
|
4875
4912
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
4876
|
-
var
|
|
4877
|
-
var
|
|
4913
|
+
var import_react40 = __toESM(require("react"));
|
|
4914
|
+
var import_joy51 = require("@mui/joy");
|
|
4878
4915
|
function PercentageRange(props) {
|
|
4879
4916
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
4880
4917
|
const [internalValue, setInternalValue] = useControlledState(
|
|
@@ -4884,7 +4921,7 @@ function PercentageRange(props) {
|
|
|
4884
4921
|
);
|
|
4885
4922
|
const minValue = internalValue?.[0];
|
|
4886
4923
|
const maxValue = internalValue?.[1];
|
|
4887
|
-
const handleMinChange = (0,
|
|
4924
|
+
const handleMinChange = (0, import_react40.useCallback)(
|
|
4888
4925
|
(event) => {
|
|
4889
4926
|
const newMinValue = event.target.value;
|
|
4890
4927
|
const currentMaxValue = maxValue;
|
|
@@ -4896,7 +4933,7 @@ function PercentageRange(props) {
|
|
|
4896
4933
|
},
|
|
4897
4934
|
[maxValue, setInternalValue]
|
|
4898
4935
|
);
|
|
4899
|
-
const handleMaxChange = (0,
|
|
4936
|
+
const handleMaxChange = (0, import_react40.useCallback)(
|
|
4900
4937
|
(event) => {
|
|
4901
4938
|
const newMaxValue = event.target.value;
|
|
4902
4939
|
const currentMinValue = minValue;
|
|
@@ -4911,7 +4948,7 @@ function PercentageRange(props) {
|
|
|
4911
4948
|
if (hidden) {
|
|
4912
4949
|
return null;
|
|
4913
4950
|
}
|
|
4914
|
-
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(
|
|
4915
4952
|
PercentageInput,
|
|
4916
4953
|
{
|
|
4917
4954
|
label: "Minimum",
|
|
@@ -4925,7 +4962,7 @@ function PercentageRange(props) {
|
|
|
4925
4962
|
"aria-label": "Minimum percentage",
|
|
4926
4963
|
placeholder: "0%"
|
|
4927
4964
|
}
|
|
4928
|
-
), /* @__PURE__ */
|
|
4965
|
+
), /* @__PURE__ */ import_react40.default.createElement(
|
|
4929
4966
|
PercentageInput,
|
|
4930
4967
|
{
|
|
4931
4968
|
label: "Maximum",
|
|
@@ -4944,13 +4981,13 @@ function PercentageRange(props) {
|
|
|
4944
4981
|
PercentageRange.displayName = "PercentageRange";
|
|
4945
4982
|
|
|
4946
4983
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
4947
|
-
var
|
|
4948
|
-
var
|
|
4984
|
+
var import_react41 = __toESM(require("react"));
|
|
4985
|
+
var import_joy52 = require("@mui/joy");
|
|
4949
4986
|
function Autocomplete2(props) {
|
|
4950
4987
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
4951
4988
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
4952
4989
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
4953
|
-
const handleChange = (0,
|
|
4990
|
+
const handleChange = (0, import_react41.useCallback)(
|
|
4954
4991
|
(event) => {
|
|
4955
4992
|
const val = event.target.value;
|
|
4956
4993
|
if (val) {
|
|
@@ -4965,7 +5002,7 @@ function Autocomplete2(props) {
|
|
|
4965
5002
|
if (hidden) {
|
|
4966
5003
|
return null;
|
|
4967
5004
|
}
|
|
4968
|
-
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(
|
|
4969
5006
|
Autocomplete,
|
|
4970
5007
|
{
|
|
4971
5008
|
value: autocompleteValue,
|
|
@@ -4998,7 +5035,7 @@ function FilterMenu(props) {
|
|
|
4998
5035
|
void 0
|
|
4999
5036
|
// onChange는 Apply 버튼에서만 호출
|
|
5000
5037
|
);
|
|
5001
|
-
const handleFilterChange = (0,
|
|
5038
|
+
const handleFilterChange = (0, import_react42.useCallback)(
|
|
5002
5039
|
(filterId, value) => {
|
|
5003
5040
|
setInternalValues((prev) => ({
|
|
5004
5041
|
...prev,
|
|
@@ -5007,17 +5044,17 @@ function FilterMenu(props) {
|
|
|
5007
5044
|
},
|
|
5008
5045
|
[setInternalValues]
|
|
5009
5046
|
);
|
|
5010
|
-
const handleApply = (0,
|
|
5047
|
+
const handleApply = (0, import_react42.useCallback)(() => {
|
|
5011
5048
|
onChange?.(internalValues);
|
|
5012
5049
|
onClose?.();
|
|
5013
5050
|
}, [onChange, onClose, internalValues]);
|
|
5014
|
-
const handleClear = (0,
|
|
5051
|
+
const handleClear = (0, import_react42.useCallback)(() => {
|
|
5015
5052
|
const clearedValues = resetValues || {};
|
|
5016
5053
|
setInternalValues(clearedValues);
|
|
5017
5054
|
onChange?.(clearedValues);
|
|
5018
5055
|
onClose?.();
|
|
5019
5056
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
5020
|
-
return /* @__PURE__ */
|
|
5057
|
+
return /* @__PURE__ */ import_react42.default.createElement(
|
|
5021
5058
|
ModalDialog,
|
|
5022
5059
|
{
|
|
5023
5060
|
sx: {
|
|
@@ -5027,9 +5064,9 @@ function FilterMenu(props) {
|
|
|
5027
5064
|
top: "initial"
|
|
5028
5065
|
}
|
|
5029
5066
|
},
|
|
5030
|
-
/* @__PURE__ */
|
|
5067
|
+
/* @__PURE__ */ import_react42.default.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ import_react42.default.createElement(import_joy53.Stack, { spacing: 6 }, filters?.map((filter) => {
|
|
5031
5068
|
const FilterComponent = componentMap[filter.type];
|
|
5032
|
-
return FilterComponent ? /* @__PURE__ */
|
|
5069
|
+
return FilterComponent ? /* @__PURE__ */ import_react42.default.createElement(
|
|
5033
5070
|
FilterComponent,
|
|
5034
5071
|
{
|
|
5035
5072
|
key: filter.id,
|
|
@@ -5041,14 +5078,14 @@ function FilterMenu(props) {
|
|
|
5041
5078
|
}
|
|
5042
5079
|
) : null;
|
|
5043
5080
|
}))),
|
|
5044
|
-
/* @__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"))
|
|
5045
5082
|
);
|
|
5046
5083
|
}
|
|
5047
5084
|
FilterMenu.displayName = "FilterMenu";
|
|
5048
5085
|
|
|
5049
5086
|
// src/components/Uploader/Uploader.tsx
|
|
5050
|
-
var
|
|
5051
|
-
var
|
|
5087
|
+
var import_react43 = __toESM(require("react"));
|
|
5088
|
+
var import_joy54 = require("@mui/joy");
|
|
5052
5089
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
5053
5090
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
5054
5091
|
var import_ClearRounded = __toESM(require("@mui/icons-material/ClearRounded"));
|
|
@@ -5070,7 +5107,7 @@ var esmFiles = {
|
|
|
5070
5107
|
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/prevent-unhandled.js"
|
|
5071
5108
|
)
|
|
5072
5109
|
};
|
|
5073
|
-
var VisuallyHiddenInput = (0,
|
|
5110
|
+
var VisuallyHiddenInput = (0, import_joy54.styled)(import_joy54.Input)({
|
|
5074
5111
|
width: "1px",
|
|
5075
5112
|
height: "1px",
|
|
5076
5113
|
overflow: "hidden",
|
|
@@ -5079,18 +5116,18 @@ var VisuallyHiddenInput = (0, import_joy52.styled)(import_joy52.Input)({
|
|
|
5079
5116
|
clipPath: "inset(50%)",
|
|
5080
5117
|
position: "absolute"
|
|
5081
5118
|
});
|
|
5082
|
-
var PreviewRoot = (0,
|
|
5119
|
+
var PreviewRoot = (0, import_joy54.styled)(Stack_default, {
|
|
5083
5120
|
name: "Uploader",
|
|
5084
5121
|
slot: "PreviewRoot"
|
|
5085
5122
|
})({});
|
|
5086
|
-
var UploadCard = (0,
|
|
5123
|
+
var UploadCard = (0, import_joy54.styled)(Card, {
|
|
5087
5124
|
name: "Uploader",
|
|
5088
5125
|
slot: "UploadCard"
|
|
5089
5126
|
})(({ theme }) => ({
|
|
5090
5127
|
padding: theme.spacing(2.5),
|
|
5091
5128
|
border: `1px solid ${theme.palette.neutral.outlinedBorder}`
|
|
5092
5129
|
}));
|
|
5093
|
-
var UploadFileIcon = (0,
|
|
5130
|
+
var UploadFileIcon = (0, import_joy54.styled)(import_UploadFileRounded.default, {
|
|
5094
5131
|
name: "Uploader",
|
|
5095
5132
|
slot: "UploadFileIcon"
|
|
5096
5133
|
})(({ theme }) => ({
|
|
@@ -5098,7 +5135,7 @@ var UploadFileIcon = (0, import_joy52.styled)(import_UploadFileRounded.default,
|
|
|
5098
5135
|
width: "32px",
|
|
5099
5136
|
height: "32px"
|
|
5100
5137
|
}));
|
|
5101
|
-
var ClearIcon2 = (0,
|
|
5138
|
+
var ClearIcon2 = (0, import_joy54.styled)(import_ClearRounded.default, {
|
|
5102
5139
|
name: "Uploader",
|
|
5103
5140
|
slot: "ClearIcon"
|
|
5104
5141
|
})(({ theme }) => ({
|
|
@@ -5124,40 +5161,50 @@ var getFileSize = (n) => {
|
|
|
5124
5161
|
};
|
|
5125
5162
|
var Preview = (props) => {
|
|
5126
5163
|
const { files, uploaded, onDelete } = props;
|
|
5127
|
-
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))))));
|
|
5128
5165
|
};
|
|
5129
|
-
var UploaderRoot = (0,
|
|
5166
|
+
var UploaderRoot = (0, import_joy54.styled)(Stack_default, {
|
|
5130
5167
|
name: "Uploader",
|
|
5131
5168
|
slot: "root"
|
|
5132
5169
|
})(({ theme }) => ({
|
|
5133
5170
|
gap: theme.spacing(2)
|
|
5134
5171
|
}));
|
|
5135
|
-
var FileDropZone = (0,
|
|
5172
|
+
var FileDropZone = (0, import_joy54.styled)(Sheet_default, {
|
|
5136
5173
|
name: "Uploader",
|
|
5137
5174
|
slot: "dropZone",
|
|
5138
|
-
shouldForwardProp: (prop) => prop !== "error"
|
|
5139
|
-
})(
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
}
|
|
5151
|
-
|
|
5175
|
+
shouldForwardProp: (prop) => prop !== "error" && prop !== "disabled"
|
|
5176
|
+
})(
|
|
5177
|
+
({ theme, state, error, disabled }) => ({
|
|
5178
|
+
width: "100%",
|
|
5179
|
+
display: "flex",
|
|
5180
|
+
flexDirection: "column",
|
|
5181
|
+
justifyContent: "center",
|
|
5182
|
+
alignItems: "center",
|
|
5183
|
+
padding: theme.spacing(5),
|
|
5184
|
+
gap: theme.spacing(4),
|
|
5185
|
+
cursor: disabled ? "not-allowed" : "pointer",
|
|
5186
|
+
backgroundColor: theme.palette.background.surface,
|
|
5187
|
+
border: disabled ? `1px solid ${theme.palette.danger.outlinedDisabledBorder}` : error ? `1px solid ${theme.palette.danger.outlinedBorder}` : state === "idle" ? `1px solid ${theme.palette.neutral.outlinedBorder}` : `1px solid ${theme.palette.primary.outlinedBorder}`,
|
|
5188
|
+
"&:hover": {
|
|
5189
|
+
border: disabled ? `1px solid ${theme.palette.danger.outlinedDisabledBorder}` : error ? `1px solid ${theme.palette.danger.outlinedBorder}` : `1px solid ${theme.palette.primary.outlinedBorder}`
|
|
5190
|
+
}
|
|
5191
|
+
})
|
|
5192
|
+
);
|
|
5193
|
+
var UploaderIcon = (0, import_joy54.styled)(import_CloudUploadRounded.default, {
|
|
5152
5194
|
name: "Uploader",
|
|
5153
5195
|
slot: "iconContainer",
|
|
5154
|
-
shouldForwardProp: (prop) => prop !== "error"
|
|
5155
|
-
})(
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5196
|
+
shouldForwardProp: (prop) => prop !== "error" && prop !== "disabled"
|
|
5197
|
+
})(
|
|
5198
|
+
({ theme, state, error, disabled }) => ({
|
|
5199
|
+
color: disabled ? theme.palette.primary.outlinedDisabledBorder : error ? `rgba(${theme.vars.palette.danger.mainChannel} / 0.6)` : state === "over" ? `rgba(${theme.palette.primary.mainChannel} / 0.6)` : theme.palette.neutral.softActiveBg,
|
|
5200
|
+
width: "32px",
|
|
5201
|
+
height: "32px",
|
|
5202
|
+
".MuiSheet-root:hover &": {
|
|
5203
|
+
color: disabled ? theme.palette.primary.outlinedDisabledBorder : error ? `rgba(${theme.vars.palette.danger.mainChannel} / 0.6)` : `rgba(${theme.palette.primary.mainChannel} / 0.6)`
|
|
5204
|
+
}
|
|
5205
|
+
})
|
|
5206
|
+
);
|
|
5207
|
+
var Uploader = import_react43.default.memo(
|
|
5161
5208
|
(props) => {
|
|
5162
5209
|
const {
|
|
5163
5210
|
accept,
|
|
@@ -5172,14 +5219,14 @@ var Uploader = import_react40.default.memo(
|
|
|
5172
5219
|
disabled,
|
|
5173
5220
|
onDelete
|
|
5174
5221
|
} = props;
|
|
5175
|
-
const dropZoneRef = (0,
|
|
5176
|
-
const inputRef = (0,
|
|
5177
|
-
const [errorText, setErrorText] = (0,
|
|
5178
|
-
const [files, setFiles] = (0,
|
|
5179
|
-
const [uploaded, setUploaded] = (0,
|
|
5180
|
-
const [previewState, setPreviewState] = (0,
|
|
5181
|
-
const accepts = (0,
|
|
5182
|
-
const parsedAccepts = (0,
|
|
5222
|
+
const dropZoneRef = (0, import_react43.useRef)(null);
|
|
5223
|
+
const inputRef = (0, import_react43.useRef)(null);
|
|
5224
|
+
const [errorText, setErrorText] = (0, import_react43.useState)();
|
|
5225
|
+
const [files, setFiles] = (0, import_react43.useState)([]);
|
|
5226
|
+
const [uploaded, setUploaded] = (0, import_react43.useState)(props.uploaded || []);
|
|
5227
|
+
const [previewState, setPreviewState] = (0, import_react43.useState)("idle");
|
|
5228
|
+
const accepts = (0, import_react43.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
5229
|
+
const parsedAccepts = (0, import_react43.useMemo)(
|
|
5183
5230
|
() => accepts.flatMap((type) => {
|
|
5184
5231
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
5185
5232
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -5188,7 +5235,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5188
5235
|
}),
|
|
5189
5236
|
[accepts]
|
|
5190
5237
|
);
|
|
5191
|
-
const helperText = (0,
|
|
5238
|
+
const helperText = (0, import_react43.useMemo)(() => {
|
|
5192
5239
|
const [allAcceptedTypes, acceptedTypes] = [
|
|
5193
5240
|
accepts.filter((accept2) => ["image/*", "video/*", "audio/*"].includes(accept2)).map((accept2) => {
|
|
5194
5241
|
const [type] = accept2.split("/");
|
|
@@ -5215,12 +5262,12 @@ var Uploader = import_react40.default.memo(
|
|
|
5215
5262
|
}
|
|
5216
5263
|
return helperTexts.join(", ");
|
|
5217
5264
|
}, [accepts, maxFileTotalSize, maxCount]);
|
|
5218
|
-
const error = (0,
|
|
5219
|
-
const showDropZone = (0,
|
|
5265
|
+
const error = (0, import_react43.useMemo)(() => !!errorText || props.error, [props.error, errorText]);
|
|
5266
|
+
const showDropZone = (0, import_react43.useMemo)(
|
|
5220
5267
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
5221
5268
|
[files, maxCount, uploaded]
|
|
5222
5269
|
);
|
|
5223
|
-
const addFiles = (0,
|
|
5270
|
+
const addFiles = (0, import_react43.useCallback)(
|
|
5224
5271
|
(uploads) => {
|
|
5225
5272
|
try {
|
|
5226
5273
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -5265,7 +5312,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5265
5312
|
},
|
|
5266
5313
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
5267
5314
|
);
|
|
5268
|
-
(0,
|
|
5315
|
+
(0, import_react43.useEffect)(() => {
|
|
5269
5316
|
if (!dropZoneRef.current || disabled) {
|
|
5270
5317
|
return;
|
|
5271
5318
|
}
|
|
@@ -5303,7 +5350,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5303
5350
|
);
|
|
5304
5351
|
return () => cleanup?.();
|
|
5305
5352
|
}, [disabled, addFiles]);
|
|
5306
|
-
(0,
|
|
5353
|
+
(0, import_react43.useEffect)(() => {
|
|
5307
5354
|
if (inputRef.current && minCount) {
|
|
5308
5355
|
if (files.length < minCount) {
|
|
5309
5356
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -5312,14 +5359,14 @@ var Uploader = import_react40.default.memo(
|
|
|
5312
5359
|
}
|
|
5313
5360
|
}
|
|
5314
5361
|
}, [inputRef, files, minCount]);
|
|
5315
|
-
const handleFileChanged = (0,
|
|
5362
|
+
const handleFileChanged = (0, import_react43.useCallback)(
|
|
5316
5363
|
(event) => {
|
|
5317
5364
|
const files2 = Array.from(event.target.files || []);
|
|
5318
5365
|
addFiles(files2);
|
|
5319
5366
|
},
|
|
5320
5367
|
[addFiles]
|
|
5321
5368
|
);
|
|
5322
|
-
const handleDeleteFile = (0,
|
|
5369
|
+
const handleDeleteFile = (0, import_react43.useCallback)(
|
|
5323
5370
|
(deletedFile) => {
|
|
5324
5371
|
if (deletedFile instanceof File) {
|
|
5325
5372
|
setFiles((current) => {
|
|
@@ -5339,19 +5386,20 @@ var Uploader = import_react40.default.memo(
|
|
|
5339
5386
|
},
|
|
5340
5387
|
[name, onChange, onDelete]
|
|
5341
5388
|
);
|
|
5342
|
-
const handleUploaderButtonClick = (0,
|
|
5389
|
+
const handleUploaderButtonClick = (0, import_react43.useCallback)(() => {
|
|
5343
5390
|
inputRef.current?.click();
|
|
5344
5391
|
}, []);
|
|
5345
|
-
const uploader = /* @__PURE__ */
|
|
5392
|
+
const uploader = /* @__PURE__ */ import_react43.default.createElement(
|
|
5346
5393
|
FileDropZone,
|
|
5347
5394
|
{
|
|
5348
5395
|
state: previewState,
|
|
5349
5396
|
error: !!(error || errorText),
|
|
5397
|
+
disabled,
|
|
5350
5398
|
ref: dropZoneRef,
|
|
5351
5399
|
onClick: handleUploaderButtonClick
|
|
5352
5400
|
},
|
|
5353
|
-
/* @__PURE__ */
|
|
5354
|
-
/* @__PURE__ */
|
|
5401
|
+
/* @__PURE__ */ import_react43.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react43.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
5402
|
+
/* @__PURE__ */ import_react43.default.createElement(
|
|
5355
5403
|
VisuallyHiddenInput,
|
|
5356
5404
|
{
|
|
5357
5405
|
disabled,
|
|
@@ -5374,17 +5422,17 @@ var Uploader = import_react40.default.memo(
|
|
|
5374
5422
|
}
|
|
5375
5423
|
)
|
|
5376
5424
|
);
|
|
5377
|
-
return /* @__PURE__ */
|
|
5425
|
+
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 }));
|
|
5378
5426
|
}
|
|
5379
5427
|
);
|
|
5380
5428
|
Uploader.displayName = "Uploader";
|
|
5381
5429
|
|
|
5382
5430
|
// src/components/Grid/Grid.tsx
|
|
5383
|
-
var
|
|
5431
|
+
var import_joy55 = require("@mui/joy");
|
|
5384
5432
|
|
|
5385
5433
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
5386
|
-
var
|
|
5387
|
-
var
|
|
5434
|
+
var import_react44 = __toESM(require("react"));
|
|
5435
|
+
var import_joy56 = require("@mui/joy");
|
|
5388
5436
|
function IconMenuButton(props) {
|
|
5389
5437
|
const {
|
|
5390
5438
|
size,
|
|
@@ -5397,8 +5445,8 @@ function IconMenuButton(props) {
|
|
|
5397
5445
|
placement = "bottom"
|
|
5398
5446
|
} = props;
|
|
5399
5447
|
if (!items.length) {
|
|
5400
|
-
return /* @__PURE__ */
|
|
5401
|
-
|
|
5448
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
5449
|
+
import_joy56.IconButton,
|
|
5402
5450
|
{
|
|
5403
5451
|
component: props.buttonComponent ?? "button",
|
|
5404
5452
|
size,
|
|
@@ -5411,10 +5459,10 @@ function IconMenuButton(props) {
|
|
|
5411
5459
|
icon
|
|
5412
5460
|
);
|
|
5413
5461
|
}
|
|
5414
|
-
return /* @__PURE__ */
|
|
5415
|
-
|
|
5462
|
+
return /* @__PURE__ */ import_react44.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react44.default.createElement(
|
|
5463
|
+
import_joy56.MenuButton,
|
|
5416
5464
|
{
|
|
5417
|
-
slots: { root:
|
|
5465
|
+
slots: { root: import_joy56.IconButton },
|
|
5418
5466
|
slotProps: {
|
|
5419
5467
|
root: {
|
|
5420
5468
|
component: props.buttonComponent ?? "button",
|
|
@@ -5428,19 +5476,19 @@ function IconMenuButton(props) {
|
|
|
5428
5476
|
}
|
|
5429
5477
|
},
|
|
5430
5478
|
icon
|
|
5431
|
-
), /* @__PURE__ */
|
|
5479
|
+
), /* @__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))));
|
|
5432
5480
|
}
|
|
5433
5481
|
IconMenuButton.displayName = "IconMenuButton";
|
|
5434
5482
|
|
|
5435
5483
|
// src/components/Markdown/Markdown.tsx
|
|
5436
|
-
var
|
|
5437
|
-
var
|
|
5438
|
-
var
|
|
5484
|
+
var import_react45 = __toESM(require("react"));
|
|
5485
|
+
var import_joy57 = require("@mui/joy");
|
|
5486
|
+
var import_joy58 = require("@mui/joy");
|
|
5439
5487
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
5440
|
-
var LazyReactMarkdown = (0,
|
|
5488
|
+
var LazyReactMarkdown = (0, import_react45.lazy)(() => import("react-markdown"));
|
|
5441
5489
|
var Markdown = (props) => {
|
|
5442
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
5443
|
-
(0,
|
|
5490
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react45.useState)(null);
|
|
5491
|
+
(0, import_react45.useEffect)(() => {
|
|
5444
5492
|
const loadRehypeAccent = async () => {
|
|
5445
5493
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
5446
5494
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -5462,12 +5510,12 @@ var Markdown = (props) => {
|
|
|
5462
5510
|
if (!rehypeAccent2) {
|
|
5463
5511
|
return null;
|
|
5464
5512
|
}
|
|
5465
|
-
return /* @__PURE__ */
|
|
5466
|
-
|
|
5513
|
+
return /* @__PURE__ */ import_react45.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react45.default.createElement(
|
|
5514
|
+
import_react45.Suspense,
|
|
5467
5515
|
{
|
|
5468
|
-
fallback: fallback || /* @__PURE__ */
|
|
5516
|
+
fallback: fallback || /* @__PURE__ */ import_react45.default.createElement(Typography, null, /* @__PURE__ */ import_react45.default.createElement(import_joy57.Skeleton, null, content || ""))
|
|
5469
5517
|
},
|
|
5470
|
-
/* @__PURE__ */
|
|
5518
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
5471
5519
|
LazyReactMarkdown,
|
|
5472
5520
|
{
|
|
5473
5521
|
...markdownOptions,
|
|
@@ -5475,15 +5523,15 @@ var Markdown = (props) => {
|
|
|
5475
5523
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
5476
5524
|
remarkPlugins: [import_remark_gfm.default],
|
|
5477
5525
|
components: {
|
|
5478
|
-
h1: ({ children }) => /* @__PURE__ */
|
|
5479
|
-
h2: ({ children }) => /* @__PURE__ */
|
|
5480
|
-
h3: ({ children }) => /* @__PURE__ */
|
|
5481
|
-
h4: ({ children }) => /* @__PURE__ */
|
|
5482
|
-
p: ({ children, node }) => /* @__PURE__ */
|
|
5483
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
5484
|
-
hr: () => /* @__PURE__ */
|
|
5485
|
-
b: ({ children }) => /* @__PURE__ */
|
|
5486
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
5526
|
+
h1: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
5527
|
+
h2: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
5528
|
+
h3: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
5529
|
+
h4: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
5530
|
+
p: ({ children, node }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
5531
|
+
a: ({ children, href }) => /* @__PURE__ */ import_react45.default.createElement(import_joy58.Link, { href, target: defaultLinkAction }, children),
|
|
5532
|
+
hr: () => /* @__PURE__ */ import_react45.default.createElement(Divider, null),
|
|
5533
|
+
b: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5534
|
+
strong: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5487
5535
|
...markdownOptions?.components
|
|
5488
5536
|
}
|
|
5489
5537
|
}
|
|
@@ -5493,8 +5541,8 @@ var Markdown = (props) => {
|
|
|
5493
5541
|
Markdown.displayName = "Markdown";
|
|
5494
5542
|
|
|
5495
5543
|
// src/components/MenuButton/MenuButton.tsx
|
|
5496
|
-
var
|
|
5497
|
-
var
|
|
5544
|
+
var import_react46 = __toESM(require("react"));
|
|
5545
|
+
var import_joy59 = require("@mui/joy");
|
|
5498
5546
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
5499
5547
|
function MenuButton(props) {
|
|
5500
5548
|
const {
|
|
@@ -5511,8 +5559,8 @@ function MenuButton(props) {
|
|
|
5511
5559
|
placement = "bottom"
|
|
5512
5560
|
} = props;
|
|
5513
5561
|
if (!items.length) {
|
|
5514
|
-
return /* @__PURE__ */
|
|
5515
|
-
|
|
5562
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
5563
|
+
import_joy59.Button,
|
|
5516
5564
|
{
|
|
5517
5565
|
component: props.buttonComponent ?? "button",
|
|
5518
5566
|
size,
|
|
@@ -5522,13 +5570,13 @@ function MenuButton(props) {
|
|
|
5522
5570
|
loading,
|
|
5523
5571
|
startDecorator,
|
|
5524
5572
|
...props.buttonComponentProps ?? {},
|
|
5525
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5573
|
+
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)
|
|
5526
5574
|
},
|
|
5527
5575
|
buttonText
|
|
5528
5576
|
);
|
|
5529
5577
|
}
|
|
5530
|
-
return /* @__PURE__ */
|
|
5531
|
-
|
|
5578
|
+
return /* @__PURE__ */ import_react46.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react46.default.createElement(
|
|
5579
|
+
import_joy59.MenuButton,
|
|
5532
5580
|
{
|
|
5533
5581
|
component: props.buttonComponent ?? "button",
|
|
5534
5582
|
size,
|
|
@@ -5538,25 +5586,25 @@ function MenuButton(props) {
|
|
|
5538
5586
|
loading,
|
|
5539
5587
|
startDecorator,
|
|
5540
5588
|
...props.buttonComponentProps ?? {},
|
|
5541
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5589
|
+
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)
|
|
5542
5590
|
},
|
|
5543
5591
|
buttonText
|
|
5544
|
-
), /* @__PURE__ */
|
|
5592
|
+
), /* @__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))));
|
|
5545
5593
|
}
|
|
5546
5594
|
MenuButton.displayName = "MenuButton";
|
|
5547
5595
|
|
|
5548
5596
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
5549
|
-
var
|
|
5597
|
+
var import_react47 = __toESM(require("react"));
|
|
5550
5598
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5551
|
-
var
|
|
5599
|
+
var import_joy60 = require("@mui/joy");
|
|
5552
5600
|
var import_base4 = require("@mui/base");
|
|
5553
|
-
var StyledPopper3 = (0,
|
|
5601
|
+
var StyledPopper3 = (0, import_joy60.styled)(import_base4.Popper, {
|
|
5554
5602
|
name: "MonthPicker",
|
|
5555
5603
|
slot: "popper"
|
|
5556
5604
|
})(({ theme }) => ({
|
|
5557
5605
|
zIndex: theme.zIndex.tooltip
|
|
5558
5606
|
}));
|
|
5559
|
-
var CalendarSheet3 = (0,
|
|
5607
|
+
var CalendarSheet3 = (0, import_joy60.styled)(Sheet_default, {
|
|
5560
5608
|
name: "MonthPicker",
|
|
5561
5609
|
slot: "sheet",
|
|
5562
5610
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5565,7 +5613,7 @@ var CalendarSheet3 = (0, import_joy58.styled)(Sheet_default, {
|
|
|
5565
5613
|
boxShadow: theme.shadow.md,
|
|
5566
5614
|
borderRadius: theme.radius.md
|
|
5567
5615
|
}));
|
|
5568
|
-
var MonthPickerRoot = (0,
|
|
5616
|
+
var MonthPickerRoot = (0, import_joy60.styled)("div", {
|
|
5569
5617
|
name: "MonthPicker",
|
|
5570
5618
|
slot: "root",
|
|
5571
5619
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5601,8 +5649,8 @@ function parseDate3(dateString, format) {
|
|
|
5601
5649
|
const result = new Date(year, month, day);
|
|
5602
5650
|
return result;
|
|
5603
5651
|
}
|
|
5604
|
-
var MonthPicker = (0,
|
|
5605
|
-
const props = (0,
|
|
5652
|
+
var MonthPicker = (0, import_react47.forwardRef)((inProps, ref) => {
|
|
5653
|
+
const props = (0, import_joy60.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
5606
5654
|
const {
|
|
5607
5655
|
onChange,
|
|
5608
5656
|
disabled,
|
|
@@ -5628,14 +5676,14 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5628
5676
|
locale,
|
|
5629
5677
|
...innerProps
|
|
5630
5678
|
} = props;
|
|
5631
|
-
const innerRef = (0,
|
|
5632
|
-
const buttonRef = (0,
|
|
5679
|
+
const innerRef = (0, import_react47.useRef)(null);
|
|
5680
|
+
const buttonRef = (0, import_react47.useRef)(null);
|
|
5633
5681
|
const [value, setValue, isControlled] = useControlledState(
|
|
5634
5682
|
props.value,
|
|
5635
5683
|
props.defaultValue || "",
|
|
5636
|
-
(0,
|
|
5684
|
+
(0, import_react47.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5637
5685
|
);
|
|
5638
|
-
const getFormattedDisplayValue = (0,
|
|
5686
|
+
const getFormattedDisplayValue = (0, import_react47.useCallback)(
|
|
5639
5687
|
(inputValue) => {
|
|
5640
5688
|
if (!inputValue) return "";
|
|
5641
5689
|
try {
|
|
@@ -5646,19 +5694,19 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5646
5694
|
},
|
|
5647
5695
|
[format, displayFormat, locale]
|
|
5648
5696
|
);
|
|
5649
|
-
const [displayValue, setDisplayValue] = (0,
|
|
5650
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5697
|
+
const [displayValue, setDisplayValue] = (0, import_react47.useState)(() => getFormattedDisplayValue(value));
|
|
5698
|
+
const [anchorEl, setAnchorEl] = (0, import_react47.useState)(null);
|
|
5651
5699
|
const open = Boolean(anchorEl);
|
|
5652
|
-
(0,
|
|
5700
|
+
(0, import_react47.useEffect)(() => {
|
|
5653
5701
|
if (!anchorEl) {
|
|
5654
5702
|
innerRef.current?.blur();
|
|
5655
5703
|
}
|
|
5656
5704
|
}, [anchorEl, innerRef]);
|
|
5657
|
-
(0,
|
|
5658
|
-
(0,
|
|
5705
|
+
(0, import_react47.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5706
|
+
(0, import_react47.useEffect)(() => {
|
|
5659
5707
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
5660
5708
|
}, [value, getFormattedDisplayValue]);
|
|
5661
|
-
const handleChange = (0,
|
|
5709
|
+
const handleChange = (0, import_react47.useCallback)(
|
|
5662
5710
|
(event) => {
|
|
5663
5711
|
const newValue = event.target.value;
|
|
5664
5712
|
setValue(newValue);
|
|
@@ -5668,21 +5716,21 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5668
5716
|
},
|
|
5669
5717
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
5670
5718
|
);
|
|
5671
|
-
const handleCalendarToggle = (0,
|
|
5719
|
+
const handleCalendarToggle = (0, import_react47.useCallback)(
|
|
5672
5720
|
(event) => {
|
|
5673
5721
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5674
5722
|
innerRef.current?.focus();
|
|
5675
5723
|
},
|
|
5676
5724
|
[anchorEl, setAnchorEl, innerRef]
|
|
5677
5725
|
);
|
|
5678
|
-
const handleInputMouseDown = (0,
|
|
5726
|
+
const handleInputMouseDown = (0, import_react47.useCallback)(
|
|
5679
5727
|
(event) => {
|
|
5680
5728
|
event.preventDefault();
|
|
5681
5729
|
buttonRef.current?.focus();
|
|
5682
5730
|
},
|
|
5683
5731
|
[buttonRef]
|
|
5684
5732
|
);
|
|
5685
|
-
return /* @__PURE__ */
|
|
5733
|
+
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(
|
|
5686
5734
|
Input_default,
|
|
5687
5735
|
{
|
|
5688
5736
|
...innerProps,
|
|
@@ -5712,7 +5760,7 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5712
5760
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5713
5761
|
fontFamily: "monospace"
|
|
5714
5762
|
},
|
|
5715
|
-
endDecorator: /* @__PURE__ */
|
|
5763
|
+
endDecorator: /* @__PURE__ */ import_react47.default.createElement(
|
|
5716
5764
|
IconButton_default,
|
|
5717
5765
|
{
|
|
5718
5766
|
ref: buttonRef,
|
|
@@ -5724,12 +5772,12 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5724
5772
|
"aria-expanded": open,
|
|
5725
5773
|
disabled
|
|
5726
5774
|
},
|
|
5727
|
-
/* @__PURE__ */
|
|
5775
|
+
/* @__PURE__ */ import_react47.default.createElement(import_CalendarToday3.default, null)
|
|
5728
5776
|
),
|
|
5729
5777
|
label,
|
|
5730
5778
|
helperText
|
|
5731
5779
|
}
|
|
5732
|
-
), open && /* @__PURE__ */
|
|
5780
|
+
), open && /* @__PURE__ */ import_react47.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react47.default.createElement(
|
|
5733
5781
|
StyledPopper3,
|
|
5734
5782
|
{
|
|
5735
5783
|
id: "month-picker-popper",
|
|
@@ -5748,7 +5796,7 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5748
5796
|
"aria-label": "Calendar Tooltip",
|
|
5749
5797
|
"aria-expanded": open
|
|
5750
5798
|
},
|
|
5751
|
-
/* @__PURE__ */
|
|
5799
|
+
/* @__PURE__ */ import_react47.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react47.default.createElement(
|
|
5752
5800
|
Calendar_default,
|
|
5753
5801
|
{
|
|
5754
5802
|
view: "month",
|
|
@@ -5769,14 +5817,14 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5769
5817
|
disablePast,
|
|
5770
5818
|
locale
|
|
5771
5819
|
}
|
|
5772
|
-
), /* @__PURE__ */
|
|
5820
|
+
), /* @__PURE__ */ import_react47.default.createElement(
|
|
5773
5821
|
DialogActions_default,
|
|
5774
5822
|
{
|
|
5775
5823
|
sx: {
|
|
5776
5824
|
p: 1
|
|
5777
5825
|
}
|
|
5778
5826
|
},
|
|
5779
|
-
/* @__PURE__ */
|
|
5827
|
+
/* @__PURE__ */ import_react47.default.createElement(
|
|
5780
5828
|
Button_default,
|
|
5781
5829
|
{
|
|
5782
5830
|
size,
|
|
@@ -5799,18 +5847,18 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5799
5847
|
});
|
|
5800
5848
|
|
|
5801
5849
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
5802
|
-
var
|
|
5850
|
+
var import_react48 = __toESM(require("react"));
|
|
5803
5851
|
var import_react_imask3 = require("react-imask");
|
|
5804
5852
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5805
|
-
var
|
|
5853
|
+
var import_joy61 = require("@mui/joy");
|
|
5806
5854
|
var import_base5 = require("@mui/base");
|
|
5807
|
-
var StyledPopper4 = (0,
|
|
5855
|
+
var StyledPopper4 = (0, import_joy61.styled)(import_base5.Popper, {
|
|
5808
5856
|
name: "MonthRangePicker",
|
|
5809
5857
|
slot: "popper"
|
|
5810
5858
|
})(({ theme }) => ({
|
|
5811
5859
|
zIndex: theme.zIndex.tooltip
|
|
5812
5860
|
}));
|
|
5813
|
-
var CalendarSheet4 = (0,
|
|
5861
|
+
var CalendarSheet4 = (0, import_joy61.styled)(Sheet_default, {
|
|
5814
5862
|
name: "MonthRangePicker",
|
|
5815
5863
|
slot: "sheet",
|
|
5816
5864
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5820,7 +5868,7 @@ var CalendarSheet4 = (0, import_joy59.styled)(Sheet_default, {
|
|
|
5820
5868
|
boxShadow: theme.shadow.md,
|
|
5821
5869
|
borderRadius: theme.radius.md
|
|
5822
5870
|
}));
|
|
5823
|
-
var MonthRangePickerRoot = (0,
|
|
5871
|
+
var MonthRangePickerRoot = (0, import_joy61.styled)("div", {
|
|
5824
5872
|
name: "MonthRangePicker",
|
|
5825
5873
|
slot: "root",
|
|
5826
5874
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5857,9 +5905,9 @@ var parseDates2 = (str) => {
|
|
|
5857
5905
|
var formatToPattern3 = (format) => {
|
|
5858
5906
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
5859
5907
|
};
|
|
5860
|
-
var TextMaskAdapter9 =
|
|
5908
|
+
var TextMaskAdapter9 = import_react48.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
5861
5909
|
const { onChange, format, ...other } = props;
|
|
5862
|
-
return /* @__PURE__ */
|
|
5910
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
5863
5911
|
import_react_imask3.IMaskInput,
|
|
5864
5912
|
{
|
|
5865
5913
|
...other,
|
|
@@ -5887,8 +5935,8 @@ var TextMaskAdapter9 = import_react45.default.forwardRef(function TextMaskAdapte
|
|
|
5887
5935
|
}
|
|
5888
5936
|
);
|
|
5889
5937
|
});
|
|
5890
|
-
var MonthRangePicker = (0,
|
|
5891
|
-
const props = (0,
|
|
5938
|
+
var MonthRangePicker = (0, import_react48.forwardRef)((inProps, ref) => {
|
|
5939
|
+
const props = (0, import_joy61.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
5892
5940
|
const {
|
|
5893
5941
|
onChange,
|
|
5894
5942
|
disabled,
|
|
@@ -5907,35 +5955,35 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5907
5955
|
size,
|
|
5908
5956
|
...innerProps
|
|
5909
5957
|
} = props;
|
|
5910
|
-
const innerRef = (0,
|
|
5958
|
+
const innerRef = (0, import_react48.useRef)(null);
|
|
5911
5959
|
const [value, setValue] = useControlledState(
|
|
5912
5960
|
props.value,
|
|
5913
5961
|
props.defaultValue || "",
|
|
5914
|
-
(0,
|
|
5962
|
+
(0, import_react48.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5915
5963
|
);
|
|
5916
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5964
|
+
const [anchorEl, setAnchorEl] = (0, import_react48.useState)(null);
|
|
5917
5965
|
const open = Boolean(anchorEl);
|
|
5918
|
-
const calendarValue = (0,
|
|
5919
|
-
(0,
|
|
5966
|
+
const calendarValue = (0, import_react48.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
5967
|
+
(0, import_react48.useEffect)(() => {
|
|
5920
5968
|
if (!anchorEl) {
|
|
5921
5969
|
innerRef.current?.blur();
|
|
5922
5970
|
}
|
|
5923
5971
|
}, [anchorEl, innerRef]);
|
|
5924
|
-
(0,
|
|
5925
|
-
const handleChange = (0,
|
|
5972
|
+
(0, import_react48.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5973
|
+
const handleChange = (0, import_react48.useCallback)(
|
|
5926
5974
|
(event) => {
|
|
5927
5975
|
setValue(event.target.value);
|
|
5928
5976
|
},
|
|
5929
5977
|
[setValue]
|
|
5930
5978
|
);
|
|
5931
|
-
const handleCalendarToggle = (0,
|
|
5979
|
+
const handleCalendarToggle = (0, import_react48.useCallback)(
|
|
5932
5980
|
(event) => {
|
|
5933
5981
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5934
5982
|
innerRef.current?.focus();
|
|
5935
5983
|
},
|
|
5936
5984
|
[anchorEl, setAnchorEl, innerRef]
|
|
5937
5985
|
);
|
|
5938
|
-
const handleCalendarChange = (0,
|
|
5986
|
+
const handleCalendarChange = (0, import_react48.useCallback)(
|
|
5939
5987
|
([date1, date2]) => {
|
|
5940
5988
|
if (!date1 || !date2) return;
|
|
5941
5989
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -5943,7 +5991,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5943
5991
|
},
|
|
5944
5992
|
[setValue, setAnchorEl, format]
|
|
5945
5993
|
);
|
|
5946
|
-
return /* @__PURE__ */
|
|
5994
|
+
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(
|
|
5947
5995
|
Input_default,
|
|
5948
5996
|
{
|
|
5949
5997
|
...innerProps,
|
|
@@ -5965,7 +6013,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5965
6013
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5966
6014
|
fontFamily: "monospace"
|
|
5967
6015
|
},
|
|
5968
|
-
endDecorator: /* @__PURE__ */
|
|
6016
|
+
endDecorator: /* @__PURE__ */ import_react48.default.createElement(
|
|
5969
6017
|
IconButton_default,
|
|
5970
6018
|
{
|
|
5971
6019
|
variant: "plain",
|
|
@@ -5975,12 +6023,12 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5975
6023
|
"aria-haspopup": "dialog",
|
|
5976
6024
|
"aria-expanded": open
|
|
5977
6025
|
},
|
|
5978
|
-
/* @__PURE__ */
|
|
6026
|
+
/* @__PURE__ */ import_react48.default.createElement(import_CalendarToday4.default, null)
|
|
5979
6027
|
),
|
|
5980
6028
|
label,
|
|
5981
6029
|
helperText
|
|
5982
6030
|
}
|
|
5983
|
-
), open && /* @__PURE__ */
|
|
6031
|
+
), open && /* @__PURE__ */ import_react48.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react48.default.createElement(
|
|
5984
6032
|
StyledPopper4,
|
|
5985
6033
|
{
|
|
5986
6034
|
id: "month-range-picker-popper",
|
|
@@ -5999,7 +6047,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5999
6047
|
"aria-label": "Calendar Tooltip",
|
|
6000
6048
|
"aria-expanded": open
|
|
6001
6049
|
},
|
|
6002
|
-
/* @__PURE__ */
|
|
6050
|
+
/* @__PURE__ */ import_react48.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react48.default.createElement(
|
|
6003
6051
|
Calendar_default,
|
|
6004
6052
|
{
|
|
6005
6053
|
view: "month",
|
|
@@ -6012,14 +6060,14 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
6012
6060
|
disableFuture,
|
|
6013
6061
|
disablePast
|
|
6014
6062
|
}
|
|
6015
|
-
), /* @__PURE__ */
|
|
6063
|
+
), /* @__PURE__ */ import_react48.default.createElement(
|
|
6016
6064
|
DialogActions_default,
|
|
6017
6065
|
{
|
|
6018
6066
|
sx: {
|
|
6019
6067
|
p: 1
|
|
6020
6068
|
}
|
|
6021
6069
|
},
|
|
6022
|
-
/* @__PURE__ */
|
|
6070
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
6023
6071
|
Button_default,
|
|
6024
6072
|
{
|
|
6025
6073
|
size,
|
|
@@ -6038,22 +6086,22 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
6038
6086
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
6039
6087
|
|
|
6040
6088
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
6041
|
-
var
|
|
6042
|
-
var
|
|
6043
|
-
var AccordionSummary2 = (0,
|
|
6089
|
+
var import_react49 = __toESM(require("react"));
|
|
6090
|
+
var import_joy62 = require("@mui/joy");
|
|
6091
|
+
var AccordionSummary2 = (0, import_joy62.styled)(import_joy62.AccordionSummary, {
|
|
6044
6092
|
name: "NavigationGroup",
|
|
6045
6093
|
slot: "Summary",
|
|
6046
6094
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
6047
6095
|
})(({ theme, useIcon, level }) => ({
|
|
6048
|
-
[`& .${
|
|
6096
|
+
[`& .${import_joy62.accordionSummaryClasses.button}`]: {
|
|
6049
6097
|
padding: theme.spacing(4, 6, 4, (useIcon ? 6 : 8) + (level || 0) * 8),
|
|
6050
|
-
[`&.${
|
|
6098
|
+
[`&.${import_joy62.accordionSummaryClasses.expanded}`]: {
|
|
6051
6099
|
color: theme.palette.primary.plainColor,
|
|
6052
6100
|
"--Icon-color": theme.palette.primary.plainColor
|
|
6053
6101
|
}
|
|
6054
6102
|
}
|
|
6055
6103
|
}));
|
|
6056
|
-
var AccordionDetails2 = (0,
|
|
6104
|
+
var AccordionDetails2 = (0, import_joy62.styled)(import_joy62.AccordionDetails, {
|
|
6057
6105
|
name: "NavigationGroup",
|
|
6058
6106
|
slot: "Details"
|
|
6059
6107
|
})(({ theme }) => ({
|
|
@@ -6062,13 +6110,13 @@ var AccordionDetails2 = (0, import_joy60.styled)(import_joy60.AccordionDetails,
|
|
|
6062
6110
|
}));
|
|
6063
6111
|
function NavigationGroup(props) {
|
|
6064
6112
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
6065
|
-
return /* @__PURE__ */
|
|
6113
|
+
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));
|
|
6066
6114
|
}
|
|
6067
6115
|
|
|
6068
6116
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
6069
|
-
var
|
|
6070
|
-
var
|
|
6071
|
-
var ListItemButton = (0,
|
|
6117
|
+
var import_react50 = __toESM(require("react"));
|
|
6118
|
+
var import_joy63 = require("@mui/joy");
|
|
6119
|
+
var ListItemButton = (0, import_joy63.styled)(import_joy63.ListItemButton, {
|
|
6072
6120
|
name: "NavigationItem",
|
|
6073
6121
|
slot: "Button",
|
|
6074
6122
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
@@ -6082,7 +6130,7 @@ var ListItemButton = (0, import_joy61.styled)(import_joy61.ListItemButton, {
|
|
|
6082
6130
|
"&:active": {
|
|
6083
6131
|
backgroundColor: theme.palette.neutral.plainActiveBg
|
|
6084
6132
|
},
|
|
6085
|
-
[`&.${
|
|
6133
|
+
[`&.${import_joy63.listItemButtonClasses.selected}`]: {
|
|
6086
6134
|
color: theme.palette.primary.plainColor,
|
|
6087
6135
|
"--Icon-color": theme.palette.primary.plainColor,
|
|
6088
6136
|
"&:not(:hover):not(:active)": {
|
|
@@ -6095,7 +6143,7 @@ function NavigationItem(props) {
|
|
|
6095
6143
|
const handleClick = () => {
|
|
6096
6144
|
onClick?.(id);
|
|
6097
6145
|
};
|
|
6098
|
-
return /* @__PURE__ */
|
|
6146
|
+
return /* @__PURE__ */ import_react50.default.createElement(import_joy63.ListItem, { ...rest }, /* @__PURE__ */ import_react50.default.createElement(
|
|
6099
6147
|
ListItemButton,
|
|
6100
6148
|
{
|
|
6101
6149
|
level,
|
|
@@ -6104,21 +6152,21 @@ function NavigationItem(props) {
|
|
|
6104
6152
|
"aria-current": selected,
|
|
6105
6153
|
onClick: handleClick
|
|
6106
6154
|
},
|
|
6107
|
-
startDecorator && /* @__PURE__ */
|
|
6155
|
+
startDecorator && /* @__PURE__ */ import_react50.default.createElement(import_joy63.ListItemDecorator, null, startDecorator),
|
|
6108
6156
|
children
|
|
6109
6157
|
));
|
|
6110
6158
|
}
|
|
6111
6159
|
|
|
6112
6160
|
// src/components/Navigator/Navigator.tsx
|
|
6113
|
-
var
|
|
6161
|
+
var import_react51 = __toESM(require("react"));
|
|
6114
6162
|
function Navigator(props) {
|
|
6115
6163
|
const { items, level = 0, onSelect } = props;
|
|
6116
6164
|
const handleItemClick = (id) => {
|
|
6117
6165
|
onSelect?.(id);
|
|
6118
6166
|
};
|
|
6119
|
-
return /* @__PURE__ */
|
|
6167
|
+
return /* @__PURE__ */ import_react51.default.createElement("div", null, items.map((item, index) => {
|
|
6120
6168
|
if (item.type === "item") {
|
|
6121
|
-
return /* @__PURE__ */
|
|
6169
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
6122
6170
|
NavigationItem,
|
|
6123
6171
|
{
|
|
6124
6172
|
key: item.id,
|
|
@@ -6131,7 +6179,7 @@ function Navigator(props) {
|
|
|
6131
6179
|
item.title
|
|
6132
6180
|
);
|
|
6133
6181
|
} else if (item.type === "group") {
|
|
6134
|
-
return /* @__PURE__ */
|
|
6182
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
6135
6183
|
NavigationGroup,
|
|
6136
6184
|
{
|
|
6137
6185
|
key: `${item.title}-${index}`,
|
|
@@ -6149,22 +6197,22 @@ function Navigator(props) {
|
|
|
6149
6197
|
Navigator.displayName = "Navigator";
|
|
6150
6198
|
|
|
6151
6199
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
6152
|
-
var
|
|
6153
|
-
var
|
|
6200
|
+
var import_react52 = __toESM(require("react"));
|
|
6201
|
+
var import_joy64 = require("@mui/joy");
|
|
6154
6202
|
var import_base6 = require("@mui/base");
|
|
6155
6203
|
var import_ArrowDropDown = __toESM(require("@mui/icons-material/ArrowDropDown"));
|
|
6156
|
-
var StyledProfileCard = (0,
|
|
6204
|
+
var StyledProfileCard = (0, import_joy64.styled)(import_joy3.Stack, {
|
|
6157
6205
|
name: "ProfileMenu",
|
|
6158
6206
|
slot: "item"
|
|
6159
6207
|
})({});
|
|
6160
6208
|
function ProfileCard(props) {
|
|
6161
6209
|
const { children, chip, caption, size } = props;
|
|
6162
|
-
const captionLevel = (0,
|
|
6163
|
-
const nameLevel = (0,
|
|
6164
|
-
return /* @__PURE__ */
|
|
6210
|
+
const captionLevel = (0, import_react52.useMemo)(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
6211
|
+
const nameLevel = (0, import_react52.useMemo)(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
6212
|
+
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));
|
|
6165
6213
|
}
|
|
6166
6214
|
ProfileCard.displayName = "ProfileCard";
|
|
6167
|
-
var StyledProfileMenuButton = (0,
|
|
6215
|
+
var StyledProfileMenuButton = (0, import_joy64.styled)(import_joy64.MenuButton, {
|
|
6168
6216
|
name: "ProfileMenu",
|
|
6169
6217
|
slot: "button"
|
|
6170
6218
|
})(({ theme }) => ({
|
|
@@ -6173,26 +6221,26 @@ var StyledProfileMenuButton = (0, import_joy62.styled)(import_joy62.MenuButton,
|
|
|
6173
6221
|
}));
|
|
6174
6222
|
function ProfileMenuButton(props) {
|
|
6175
6223
|
const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
|
|
6176
|
-
return /* @__PURE__ */
|
|
6224
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
6177
6225
|
StyledProfileMenuButton,
|
|
6178
6226
|
{
|
|
6179
6227
|
variant: "plain",
|
|
6180
6228
|
color: "neutral",
|
|
6181
6229
|
size,
|
|
6182
|
-
endDecorator: /* @__PURE__ */
|
|
6230
|
+
endDecorator: /* @__PURE__ */ import_react52.default.createElement(import_ArrowDropDown.default, null),
|
|
6183
6231
|
...innerProps
|
|
6184
6232
|
},
|
|
6185
|
-
/* @__PURE__ */
|
|
6233
|
+
/* @__PURE__ */ import_react52.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
6186
6234
|
);
|
|
6187
6235
|
}
|
|
6188
6236
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
6189
|
-
var ProfileMenuRoot = (0,
|
|
6237
|
+
var ProfileMenuRoot = (0, import_joy64.styled)(Menu, {
|
|
6190
6238
|
name: "ProfileMenu",
|
|
6191
6239
|
slot: "root"
|
|
6192
6240
|
})(({ theme }) => ({
|
|
6193
6241
|
border: "none",
|
|
6194
6242
|
"--ListItem-paddingX": theme.spacing(4),
|
|
6195
|
-
[`.${
|
|
6243
|
+
[`.${import_joy64.menuItemClasses.root}`]: {
|
|
6196
6244
|
border: "none"
|
|
6197
6245
|
}
|
|
6198
6246
|
}));
|
|
@@ -6201,9 +6249,9 @@ function ProfileMenu(props) {
|
|
|
6201
6249
|
const [open, setOpen] = useControlledState(
|
|
6202
6250
|
_open,
|
|
6203
6251
|
defaultOpen ?? false,
|
|
6204
|
-
(0,
|
|
6252
|
+
(0, import_react52.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
|
|
6205
6253
|
);
|
|
6206
|
-
return /* @__PURE__ */
|
|
6254
|
+
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(
|
|
6207
6255
|
ProfileMenuButton,
|
|
6208
6256
|
{
|
|
6209
6257
|
size,
|
|
@@ -6213,7 +6261,7 @@ function ProfileMenu(props) {
|
|
|
6213
6261
|
getInitial
|
|
6214
6262
|
},
|
|
6215
6263
|
profile.name
|
|
6216
|
-
), /* @__PURE__ */
|
|
6264
|
+
), /* @__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(
|
|
6217
6265
|
MenuItem,
|
|
6218
6266
|
{
|
|
6219
6267
|
key: label,
|
|
@@ -6229,31 +6277,31 @@ function ProfileMenu(props) {
|
|
|
6229
6277
|
ProfileMenu.displayName = "ProfileMenu";
|
|
6230
6278
|
|
|
6231
6279
|
// src/components/RadioList/RadioList.tsx
|
|
6232
|
-
var
|
|
6280
|
+
var import_react53 = __toESM(require("react"));
|
|
6233
6281
|
function RadioList(props) {
|
|
6234
6282
|
const { items, ...innerProps } = props;
|
|
6235
|
-
return /* @__PURE__ */
|
|
6283
|
+
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 })));
|
|
6236
6284
|
}
|
|
6237
6285
|
RadioList.displayName = "RadioList";
|
|
6238
6286
|
|
|
6239
6287
|
// src/components/Stepper/Stepper.tsx
|
|
6240
|
-
var
|
|
6241
|
-
var
|
|
6288
|
+
var import_react54 = __toESM(require("react"));
|
|
6289
|
+
var import_joy65 = require("@mui/joy");
|
|
6242
6290
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
6243
|
-
var
|
|
6244
|
-
var Step = (0,
|
|
6291
|
+
var import_framer_motion28 = require("framer-motion");
|
|
6292
|
+
var Step = (0, import_joy65.styled)(import_joy65.Step)({});
|
|
6245
6293
|
Step.displayName = "Step";
|
|
6246
|
-
var StepIndicator = (0,
|
|
6294
|
+
var StepIndicator = (0, import_joy65.styled)(import_joy65.StepIndicator)({});
|
|
6247
6295
|
StepIndicator.displayName = "StepIndicator";
|
|
6248
|
-
var StyledStepper = (0,
|
|
6296
|
+
var StyledStepper = (0, import_joy65.styled)(import_joy65.Stepper)(({ theme }) => ({
|
|
6249
6297
|
"--StepIndicator-size": "24px",
|
|
6250
6298
|
"--Step-gap": theme.spacing(2),
|
|
6251
6299
|
"--joy-palette-success-solidBg": "var(--joy-palette-success-400)",
|
|
6252
|
-
[`& .${
|
|
6300
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6253
6301
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
6254
6302
|
}
|
|
6255
6303
|
}));
|
|
6256
|
-
var MotionStepper = (0,
|
|
6304
|
+
var MotionStepper = (0, import_framer_motion28.motion)(StyledStepper);
|
|
6257
6305
|
function Stepper(props) {
|
|
6258
6306
|
const {
|
|
6259
6307
|
steps,
|
|
@@ -6263,30 +6311,30 @@ function Stepper(props) {
|
|
|
6263
6311
|
inactiveLineColor = "neutral.300",
|
|
6264
6312
|
activeStep
|
|
6265
6313
|
} = props;
|
|
6266
|
-
return /* @__PURE__ */
|
|
6314
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
6267
6315
|
MotionStepper,
|
|
6268
6316
|
{
|
|
6269
6317
|
sx: (theme) => ({
|
|
6270
6318
|
"--StepIndicator-size": "24px",
|
|
6271
6319
|
"--Step-gap": theme.spacing(2),
|
|
6272
|
-
[`& .${
|
|
6320
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6273
6321
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
6274
6322
|
},
|
|
6275
|
-
[`& .${
|
|
6323
|
+
[`& .${import_joy65.stepClasses.completed}`]: {
|
|
6276
6324
|
"&::after": { bgcolor: activeLineColor },
|
|
6277
|
-
[`& .${
|
|
6325
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6278
6326
|
bgcolor: activeColor
|
|
6279
6327
|
}
|
|
6280
6328
|
},
|
|
6281
|
-
[`& .${
|
|
6329
|
+
[`& .${import_joy65.stepClasses.active}`]: {
|
|
6282
6330
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6283
|
-
[`& .${
|
|
6331
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6284
6332
|
bgcolor: activeColor
|
|
6285
6333
|
}
|
|
6286
6334
|
},
|
|
6287
|
-
[`& .${
|
|
6335
|
+
[`& .${import_joy65.stepClasses.disabled}`]: {
|
|
6288
6336
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6289
|
-
[`& .${
|
|
6337
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6290
6338
|
bgcolor: inactiveColor
|
|
6291
6339
|
}
|
|
6292
6340
|
}
|
|
@@ -6297,16 +6345,16 @@ function Stepper(props) {
|
|
|
6297
6345
|
const completed = activeStep > i + 1;
|
|
6298
6346
|
const disabled = activeStep < i + 1;
|
|
6299
6347
|
const hasContent = step.label || step.extraContent;
|
|
6300
|
-
return /* @__PURE__ */
|
|
6348
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
6301
6349
|
Step,
|
|
6302
6350
|
{
|
|
6303
6351
|
key: `step-${i}`,
|
|
6304
|
-
indicator: /* @__PURE__ */
|
|
6352
|
+
indicator: /* @__PURE__ */ import_react54.default.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ import_react54.default.createElement(import_Check.default, null) : step.indicatorContent),
|
|
6305
6353
|
active,
|
|
6306
6354
|
completed,
|
|
6307
6355
|
disabled
|
|
6308
6356
|
},
|
|
6309
|
-
hasContent && /* @__PURE__ */
|
|
6357
|
+
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))
|
|
6310
6358
|
);
|
|
6311
6359
|
})
|
|
6312
6360
|
);
|
|
@@ -6314,11 +6362,11 @@ function Stepper(props) {
|
|
|
6314
6362
|
Stepper.displayName = "Stepper";
|
|
6315
6363
|
|
|
6316
6364
|
// src/components/Switch/Switch.tsx
|
|
6317
|
-
var
|
|
6318
|
-
var
|
|
6319
|
-
var
|
|
6320
|
-
var MotionSwitch = (0,
|
|
6321
|
-
var StyledThumb = (0,
|
|
6365
|
+
var import_react55 = __toESM(require("react"));
|
|
6366
|
+
var import_joy66 = require("@mui/joy");
|
|
6367
|
+
var import_framer_motion29 = require("framer-motion");
|
|
6368
|
+
var MotionSwitch = (0, import_framer_motion29.motion)(import_joy66.Switch);
|
|
6369
|
+
var StyledThumb = (0, import_joy66.styled)(import_framer_motion29.motion.div)({
|
|
6322
6370
|
"--Icon-fontSize": "calc(var(--Switch-thumbSize) * 0.75)",
|
|
6323
6371
|
display: "inline-flex",
|
|
6324
6372
|
justifyContent: "center",
|
|
@@ -6331,19 +6379,19 @@ var StyledThumb = (0, import_joy64.styled)(import_framer_motion28.motion.div)({
|
|
|
6331
6379
|
boxShadow: "var(--Switch-thumbShadow)",
|
|
6332
6380
|
color: "var(--Switch-thumbColor)",
|
|
6333
6381
|
backgroundColor: "var(--Switch-thumbBackground)",
|
|
6334
|
-
[`&.${
|
|
6382
|
+
[`&.${import_joy66.switchClasses.checked}`]: {
|
|
6335
6383
|
left: "unset",
|
|
6336
6384
|
right: "var(--Switch-thumbOffset)"
|
|
6337
6385
|
}
|
|
6338
6386
|
});
|
|
6339
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
6387
|
+
var Thumb = (props) => /* @__PURE__ */ import_react55.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
6340
6388
|
var spring = {
|
|
6341
6389
|
type: "spring",
|
|
6342
6390
|
stiffness: 700,
|
|
6343
6391
|
damping: 30
|
|
6344
6392
|
};
|
|
6345
6393
|
var Switch = (props) => {
|
|
6346
|
-
return /* @__PURE__ */
|
|
6394
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
6347
6395
|
MotionSwitch,
|
|
6348
6396
|
{
|
|
6349
6397
|
...props,
|
|
@@ -6357,32 +6405,32 @@ var Switch = (props) => {
|
|
|
6357
6405
|
Switch.displayName = "Switch";
|
|
6358
6406
|
|
|
6359
6407
|
// src/components/Tabs/Tabs.tsx
|
|
6360
|
-
var
|
|
6361
|
-
var
|
|
6362
|
-
var StyledTabs = (0,
|
|
6408
|
+
var import_react56 = __toESM(require("react"));
|
|
6409
|
+
var import_joy67 = require("@mui/joy");
|
|
6410
|
+
var StyledTabs = (0, import_joy67.styled)(import_joy67.Tabs)(({ theme }) => ({
|
|
6363
6411
|
backgroundColor: theme.palette.background.body
|
|
6364
6412
|
}));
|
|
6365
6413
|
var Tabs = StyledTabs;
|
|
6366
6414
|
Tabs.displayName = "Tabs";
|
|
6367
|
-
var StyledTab = (0,
|
|
6415
|
+
var StyledTab = (0, import_joy67.styled)(import_joy67.Tab)(({ theme }) => ({
|
|
6368
6416
|
gap: theme.spacing(2),
|
|
6369
|
-
[`&:not(.${
|
|
6417
|
+
[`&:not(.${import_joy67.tabClasses.selected})`]: {
|
|
6370
6418
|
color: theme.palette.neutral[700]
|
|
6371
6419
|
},
|
|
6372
|
-
[`&.${
|
|
6420
|
+
[`&.${import_joy67.tabClasses.variantPlain}`]: {
|
|
6373
6421
|
backgroundColor: theme.palette.background.body
|
|
6374
6422
|
}
|
|
6375
6423
|
}));
|
|
6376
|
-
var Tab = (0,
|
|
6377
|
-
return /* @__PURE__ */
|
|
6424
|
+
var Tab = (0, import_react56.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
6425
|
+
return /* @__PURE__ */ import_react56.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
6378
6426
|
});
|
|
6379
6427
|
Tab.displayName = "Tab";
|
|
6380
|
-
var TabList =
|
|
6381
|
-
var TabPanel =
|
|
6428
|
+
var TabList = import_joy67.TabList;
|
|
6429
|
+
var TabPanel = import_joy67.TabPanel;
|
|
6382
6430
|
|
|
6383
6431
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
6384
|
-
var
|
|
6385
|
-
var
|
|
6432
|
+
var import_react57 = __toESM(require("react"));
|
|
6433
|
+
var import_joy68 = require("@mui/joy");
|
|
6386
6434
|
var colorScheme = {
|
|
6387
6435
|
palette: {
|
|
6388
6436
|
danger: {
|
|
@@ -6435,7 +6483,7 @@ var colorScheme = {
|
|
|
6435
6483
|
}
|
|
6436
6484
|
}
|
|
6437
6485
|
};
|
|
6438
|
-
var defaultTheme = (0,
|
|
6486
|
+
var defaultTheme = (0, import_joy68.extendTheme)({
|
|
6439
6487
|
cssVarPrefix: "ceed",
|
|
6440
6488
|
spacing: 4,
|
|
6441
6489
|
breakpoints: {
|
|
@@ -6462,7 +6510,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6462
6510
|
},
|
|
6463
6511
|
styleOverrides: {
|
|
6464
6512
|
root: {
|
|
6465
|
-
[`.${
|
|
6513
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6466
6514
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6467
6515
|
"font-family": "monospace"
|
|
6468
6516
|
}
|
|
@@ -6475,7 +6523,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6475
6523
|
},
|
|
6476
6524
|
styleOverrides: {
|
|
6477
6525
|
root: {
|
|
6478
|
-
[`.${
|
|
6526
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6479
6527
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6480
6528
|
"font-family": "monospace"
|
|
6481
6529
|
}
|
|
@@ -6488,7 +6536,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6488
6536
|
},
|
|
6489
6537
|
styleOverrides: {
|
|
6490
6538
|
root: {
|
|
6491
|
-
[`.${
|
|
6539
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6492
6540
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6493
6541
|
"font-family": "monospace"
|
|
6494
6542
|
}
|
|
@@ -6501,7 +6549,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6501
6549
|
},
|
|
6502
6550
|
styleOverrides: {
|
|
6503
6551
|
root: {
|
|
6504
|
-
[`.${
|
|
6552
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6505
6553
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6506
6554
|
"font-family": "monospace"
|
|
6507
6555
|
}
|
|
@@ -6514,7 +6562,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6514
6562
|
},
|
|
6515
6563
|
styleOverrides: {
|
|
6516
6564
|
root: {
|
|
6517
|
-
[`.${
|
|
6565
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6518
6566
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6519
6567
|
"font-family": "monospace"
|
|
6520
6568
|
}
|
|
@@ -6527,7 +6575,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6527
6575
|
},
|
|
6528
6576
|
styleOverrides: {
|
|
6529
6577
|
root: {
|
|
6530
|
-
[`.${
|
|
6578
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6531
6579
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6532
6580
|
"font-family": "monospace"
|
|
6533
6581
|
}
|
|
@@ -6605,7 +6653,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6605
6653
|
outline: `${theme.palette.primary[500]} solid 2px`,
|
|
6606
6654
|
outlineOffset: "-2px"
|
|
6607
6655
|
},
|
|
6608
|
-
[`& .${
|
|
6656
|
+
[`& .${import_joy68.checkboxClasses.root}`]: {
|
|
6609
6657
|
verticalAlign: "middle"
|
|
6610
6658
|
}
|
|
6611
6659
|
})
|
|
@@ -6660,6 +6708,6 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6660
6708
|
});
|
|
6661
6709
|
function ThemeProvider(props) {
|
|
6662
6710
|
const theme = props.theme || defaultTheme;
|
|
6663
|
-
return /* @__PURE__ */
|
|
6711
|
+
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));
|
|
6664
6712
|
}
|
|
6665
6713
|
ThemeProvider.displayName = "ThemeProvider";
|