@ceed/ads 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DataTable/components.d.ts +38 -0
- package/dist/components/DataTable/hooks.d.ts +56 -0
- package/dist/components/DataTable/styled.d.ts +281 -0
- package/dist/components/DataTable/types.d.ts +13 -3
- package/dist/components/DataTable/utils.d.ts +16 -0
- package/dist/index.cjs +1266 -1229
- package/dist/index.js +882 -841
- package/framer/index.js +42 -42
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -85,17 +85,17 @@ __export(index_exports, {
|
|
|
85
85
|
AccordionSummary: () => AccordionSummary,
|
|
86
86
|
Accordions: () => Accordions,
|
|
87
87
|
Alert: () => Alert,
|
|
88
|
-
AspectRatio: () =>
|
|
88
|
+
AspectRatio: () => import_joy69.AspectRatio,
|
|
89
89
|
Autocomplete: () => Autocomplete,
|
|
90
|
-
AutocompleteListbox: () =>
|
|
91
|
-
AutocompleteOption: () =>
|
|
90
|
+
AutocompleteListbox: () => import_joy69.AutocompleteListbox,
|
|
91
|
+
AutocompleteOption: () => import_joy69.AutocompleteOption,
|
|
92
92
|
Avatar: () => Avatar,
|
|
93
93
|
AvatarGroup: () => import_joy11.AvatarGroup,
|
|
94
|
-
Badge: () =>
|
|
94
|
+
Badge: () => import_joy69.Badge,
|
|
95
95
|
Box: () => Box,
|
|
96
96
|
Breadcrumbs: () => Breadcrumbs,
|
|
97
97
|
Button: () => Button,
|
|
98
|
-
ButtonGroup: () =>
|
|
98
|
+
ButtonGroup: () => import_joy69.ButtonGroup,
|
|
99
99
|
Calendar: () => Calendar,
|
|
100
100
|
Card: () => Card,
|
|
101
101
|
CardActions: () => CardActions,
|
|
@@ -104,9 +104,9 @@ __export(index_exports, {
|
|
|
104
104
|
CardOverflow: () => CardOverflow,
|
|
105
105
|
Checkbox: () => Checkbox,
|
|
106
106
|
Chip: () => Chip,
|
|
107
|
-
CircularProgress: () =>
|
|
107
|
+
CircularProgress: () => import_joy69.CircularProgress,
|
|
108
108
|
Container: () => Container,
|
|
109
|
-
CssBaseline: () =>
|
|
109
|
+
CssBaseline: () => import_joy68.CssBaseline,
|
|
110
110
|
CurrencyInput: () => CurrencyInput,
|
|
111
111
|
DataTable: () => DataTable,
|
|
112
112
|
DatePicker: () => DatePicker,
|
|
@@ -116,27 +116,27 @@ __export(index_exports, {
|
|
|
116
116
|
DialogFrame: () => DialogFrame,
|
|
117
117
|
DialogTitle: () => DialogTitle,
|
|
118
118
|
Divider: () => Divider,
|
|
119
|
-
Drawer: () =>
|
|
119
|
+
Drawer: () => import_joy69.Drawer,
|
|
120
120
|
Dropdown: () => import_joy14.Dropdown,
|
|
121
121
|
FilterMenu: () => FilterMenu,
|
|
122
122
|
FormControl: () => FormControl,
|
|
123
123
|
FormHelperText: () => FormHelperText,
|
|
124
124
|
FormLabel: () => FormLabel,
|
|
125
|
-
Grid: () =>
|
|
125
|
+
Grid: () => import_joy55.Grid,
|
|
126
126
|
IconButton: () => IconButton,
|
|
127
127
|
IconMenuButton: () => IconMenuButton,
|
|
128
128
|
InfoSign: () => InfoSign,
|
|
129
129
|
Input: () => Input,
|
|
130
130
|
InsetDrawer: () => InsetDrawer,
|
|
131
|
-
LinearProgress: () =>
|
|
132
|
-
Link: () =>
|
|
133
|
-
List: () =>
|
|
134
|
-
ListDivider: () =>
|
|
135
|
-
ListItem: () =>
|
|
136
|
-
ListItemButton: () =>
|
|
137
|
-
ListItemContent: () =>
|
|
138
|
-
ListItemDecorator: () =>
|
|
139
|
-
ListSubheader: () =>
|
|
131
|
+
LinearProgress: () => import_joy69.LinearProgress,
|
|
132
|
+
Link: () => import_joy69.Link,
|
|
133
|
+
List: () => import_joy69.List,
|
|
134
|
+
ListDivider: () => import_joy69.ListDivider,
|
|
135
|
+
ListItem: () => import_joy69.ListItem,
|
|
136
|
+
ListItemButton: () => import_joy69.ListItemButton,
|
|
137
|
+
ListItemContent: () => import_joy69.ListItemContent,
|
|
138
|
+
ListItemDecorator: () => import_joy69.ListItemDecorator,
|
|
139
|
+
ListSubheader: () => import_joy69.ListSubheader,
|
|
140
140
|
Markdown: () => Markdown,
|
|
141
141
|
Menu: () => Menu,
|
|
142
142
|
MenuButton: () => MenuButton,
|
|
@@ -160,11 +160,11 @@ __export(index_exports, {
|
|
|
160
160
|
RadioList: () => RadioList,
|
|
161
161
|
Select: () => Select,
|
|
162
162
|
Sheet: () => Sheet,
|
|
163
|
-
Skeleton: () =>
|
|
164
|
-
Slider: () =>
|
|
163
|
+
Skeleton: () => import_joy69.Skeleton,
|
|
164
|
+
Slider: () => import_joy69.Slider,
|
|
165
165
|
Stack: () => import_joy3.Stack,
|
|
166
166
|
Step: () => Step,
|
|
167
|
-
StepButton: () =>
|
|
167
|
+
StepButton: () => import_joy69.StepButton,
|
|
168
168
|
StepIndicator: () => StepIndicator,
|
|
169
169
|
Stepper: () => Stepper,
|
|
170
170
|
Switch: () => Switch,
|
|
@@ -180,84 +180,84 @@ __export(index_exports, {
|
|
|
180
180
|
Tooltip: () => Tooltip,
|
|
181
181
|
Typography: () => Typography,
|
|
182
182
|
Uploader: () => Uploader,
|
|
183
|
-
accordionClasses: () =>
|
|
184
|
-
accordionDetailsClasses: () =>
|
|
185
|
-
accordionSummaryClasses: () =>
|
|
186
|
-
accordionsClasses: () =>
|
|
187
|
-
alertClasses: () =>
|
|
188
|
-
aspectRatioClasses: () =>
|
|
189
|
-
autocompleteClasses: () =>
|
|
190
|
-
autocompleteListboxClasses: () =>
|
|
191
|
-
autocompleteOptionClasses: () =>
|
|
192
|
-
avatarClasses: () =>
|
|
193
|
-
avatarGroupClasses: () =>
|
|
194
|
-
badgeClasses: () =>
|
|
195
|
-
boxClasses: () =>
|
|
196
|
-
breadcrumbsClasses: () =>
|
|
197
|
-
buttonClasses: () =>
|
|
198
|
-
cardActionsClasses: () =>
|
|
199
|
-
cardClasses: () =>
|
|
200
|
-
cardContentClasses: () =>
|
|
201
|
-
cardCoverClasses: () =>
|
|
202
|
-
cardOverflowClasses: () =>
|
|
203
|
-
checkboxClasses: () =>
|
|
204
|
-
chipClasses: () =>
|
|
205
|
-
circularProgressClasses: () =>
|
|
206
|
-
dialogActionsClasses: () =>
|
|
207
|
-
dialogContentClasses: () =>
|
|
208
|
-
dialogTitleClasses: () =>
|
|
209
|
-
dividerClasses: () =>
|
|
210
|
-
drawerClasses: () =>
|
|
211
|
-
extendTheme: () =>
|
|
212
|
-
formControlClasses: () =>
|
|
213
|
-
formHelperTextClasses: () =>
|
|
214
|
-
formLabelClasses: () =>
|
|
215
|
-
gridClasses: () =>
|
|
216
|
-
iconButtonClasses: () =>
|
|
217
|
-
inputClasses: () =>
|
|
218
|
-
linearProgressClasses: () =>
|
|
219
|
-
linkClasses: () =>
|
|
220
|
-
listClasses: () =>
|
|
221
|
-
listDividerClasses: () =>
|
|
222
|
-
listItemButtonClasses: () =>
|
|
223
|
-
listItemClasses: () =>
|
|
224
|
-
listItemContentClasses: () =>
|
|
225
|
-
listItemDecoratorClasses: () =>
|
|
226
|
-
listSubheaderClasses: () =>
|
|
227
|
-
menuButtonClasses: () =>
|
|
228
|
-
menuClasses: () =>
|
|
229
|
-
menuItemClasses: () =>
|
|
230
|
-
modalClasses: () =>
|
|
231
|
-
modalCloseClasses: () =>
|
|
232
|
-
modalDialogClasses: () =>
|
|
233
|
-
modalOverflowClasses: () =>
|
|
234
|
-
optionClasses: () =>
|
|
235
|
-
radioClasses: () =>
|
|
236
|
-
radioGroupClasses: () =>
|
|
237
|
-
selectClasses: () =>
|
|
238
|
-
sheetClasses: () =>
|
|
239
|
-
skeletonClasses: () =>
|
|
240
|
-
sliderClasses: () =>
|
|
241
|
-
stackClasses: () =>
|
|
242
|
-
stepButtonClasses: () =>
|
|
243
|
-
stepClasses: () =>
|
|
244
|
-
stepperClasses: () =>
|
|
245
|
-
styled: () =>
|
|
246
|
-
switchClasses: () =>
|
|
247
|
-
tabListClasses: () =>
|
|
248
|
-
tabPanelClasses: () =>
|
|
249
|
-
tableClasses: () =>
|
|
250
|
-
tabsClasses: () =>
|
|
251
|
-
textareaClasses: () =>
|
|
183
|
+
accordionClasses: () => import_joy69.accordionClasses,
|
|
184
|
+
accordionDetailsClasses: () => import_joy69.accordionDetailsClasses,
|
|
185
|
+
accordionSummaryClasses: () => import_joy69.accordionSummaryClasses,
|
|
186
|
+
accordionsClasses: () => import_joy69.accordionGroupClasses,
|
|
187
|
+
alertClasses: () => import_joy69.alertClasses,
|
|
188
|
+
aspectRatioClasses: () => import_joy69.aspectRatioClasses,
|
|
189
|
+
autocompleteClasses: () => import_joy69.autocompleteClasses,
|
|
190
|
+
autocompleteListboxClasses: () => import_joy69.autocompleteListboxClasses,
|
|
191
|
+
autocompleteOptionClasses: () => import_joy69.autocompleteOptionClasses,
|
|
192
|
+
avatarClasses: () => import_joy69.avatarClasses,
|
|
193
|
+
avatarGroupClasses: () => import_joy69.avatarGroupClasses,
|
|
194
|
+
badgeClasses: () => import_joy69.badgeClasses,
|
|
195
|
+
boxClasses: () => import_joy69.boxClasses,
|
|
196
|
+
breadcrumbsClasses: () => import_joy69.breadcrumbsClasses,
|
|
197
|
+
buttonClasses: () => import_joy69.buttonClasses,
|
|
198
|
+
cardActionsClasses: () => import_joy69.cardActionsClasses,
|
|
199
|
+
cardClasses: () => import_joy69.cardClasses,
|
|
200
|
+
cardContentClasses: () => import_joy69.cardContentClasses,
|
|
201
|
+
cardCoverClasses: () => import_joy69.cardCoverClasses,
|
|
202
|
+
cardOverflowClasses: () => import_joy69.cardOverflowClasses,
|
|
203
|
+
checkboxClasses: () => import_joy69.checkboxClasses,
|
|
204
|
+
chipClasses: () => import_joy69.chipClasses,
|
|
205
|
+
circularProgressClasses: () => import_joy69.circularProgressClasses,
|
|
206
|
+
dialogActionsClasses: () => import_joy69.dialogActionsClasses,
|
|
207
|
+
dialogContentClasses: () => import_joy69.dialogContentClasses,
|
|
208
|
+
dialogTitleClasses: () => import_joy69.dialogTitleClasses,
|
|
209
|
+
dividerClasses: () => import_joy69.dividerClasses,
|
|
210
|
+
drawerClasses: () => import_joy69.drawerClasses,
|
|
211
|
+
extendTheme: () => import_joy68.extendTheme,
|
|
212
|
+
formControlClasses: () => import_joy69.formControlClasses,
|
|
213
|
+
formHelperTextClasses: () => import_joy69.formHelperTextClasses,
|
|
214
|
+
formLabelClasses: () => import_joy69.formLabelClasses,
|
|
215
|
+
gridClasses: () => import_joy69.gridClasses,
|
|
216
|
+
iconButtonClasses: () => import_joy69.iconButtonClasses,
|
|
217
|
+
inputClasses: () => import_joy69.inputClasses,
|
|
218
|
+
linearProgressClasses: () => import_joy69.linearProgressClasses,
|
|
219
|
+
linkClasses: () => import_joy69.linkClasses,
|
|
220
|
+
listClasses: () => import_joy69.listClasses,
|
|
221
|
+
listDividerClasses: () => import_joy69.listDividerClasses,
|
|
222
|
+
listItemButtonClasses: () => import_joy69.listItemButtonClasses,
|
|
223
|
+
listItemClasses: () => import_joy69.listItemClasses,
|
|
224
|
+
listItemContentClasses: () => import_joy69.listItemContentClasses,
|
|
225
|
+
listItemDecoratorClasses: () => import_joy69.listItemDecoratorClasses,
|
|
226
|
+
listSubheaderClasses: () => import_joy69.listSubheaderClasses,
|
|
227
|
+
menuButtonClasses: () => import_joy69.menuButtonClasses,
|
|
228
|
+
menuClasses: () => import_joy69.menuClasses,
|
|
229
|
+
menuItemClasses: () => import_joy69.menuItemClasses,
|
|
230
|
+
modalClasses: () => import_joy69.modalClasses,
|
|
231
|
+
modalCloseClasses: () => import_joy69.modalCloseClasses,
|
|
232
|
+
modalDialogClasses: () => import_joy69.modalDialogClasses,
|
|
233
|
+
modalOverflowClasses: () => import_joy69.modalOverflowClasses,
|
|
234
|
+
optionClasses: () => import_joy69.optionClasses,
|
|
235
|
+
radioClasses: () => import_joy69.radioClasses,
|
|
236
|
+
radioGroupClasses: () => import_joy69.radioGroupClasses,
|
|
237
|
+
selectClasses: () => import_joy69.selectClasses,
|
|
238
|
+
sheetClasses: () => import_joy69.sheetClasses,
|
|
239
|
+
skeletonClasses: () => import_joy69.skeletonClasses,
|
|
240
|
+
sliderClasses: () => import_joy69.sliderClasses,
|
|
241
|
+
stackClasses: () => import_joy69.stackClasses,
|
|
242
|
+
stepButtonClasses: () => import_joy69.stepButtonClasses,
|
|
243
|
+
stepClasses: () => import_joy69.stepClasses,
|
|
244
|
+
stepperClasses: () => import_joy69.stepperClasses,
|
|
245
|
+
styled: () => import_joy69.styled,
|
|
246
|
+
switchClasses: () => import_joy69.switchClasses,
|
|
247
|
+
tabListClasses: () => import_joy69.tabListClasses,
|
|
248
|
+
tabPanelClasses: () => import_joy69.tabPanelClasses,
|
|
249
|
+
tableClasses: () => import_joy69.tableClasses,
|
|
250
|
+
tabsClasses: () => import_joy69.tabsClasses,
|
|
251
|
+
textareaClasses: () => import_joy69.textareaClasses,
|
|
252
252
|
theme: () => defaultTheme,
|
|
253
|
-
tooltipClasses: () =>
|
|
254
|
-
typographyClasses: () =>
|
|
255
|
-
useColorScheme: () =>
|
|
256
|
-
useTheme: () =>
|
|
257
|
-
useThemeProps: () =>
|
|
253
|
+
tooltipClasses: () => import_joy69.tooltipClasses,
|
|
254
|
+
typographyClasses: () => import_joy69.typographyClasses,
|
|
255
|
+
useColorScheme: () => import_joy69.useColorScheme,
|
|
256
|
+
useTheme: () => import_joy69.useTheme,
|
|
257
|
+
useThemeProps: () => import_joy69.useThemeProps
|
|
258
258
|
});
|
|
259
259
|
module.exports = __toCommonJS(index_exports);
|
|
260
|
-
var
|
|
260
|
+
var import_joy69 = require("@mui/joy");
|
|
261
261
|
|
|
262
262
|
// src/components/Accordions/Accordions.tsx
|
|
263
263
|
var import_react = __toESM(require("react"));
|
|
@@ -1922,231 +1922,411 @@ 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
|
-
|
|
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
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
return {
|
|
2032
|
+
startIndex: minIndex === Infinity ? 0 : minIndex,
|
|
2033
|
+
colspan: maxIndex === -Infinity ? 0 : maxIndex - minIndex + 1
|
|
2034
|
+
};
|
|
2035
|
+
}
|
|
2036
|
+
processGroup(columnGroupingModel, 0);
|
|
2037
|
+
groupsByLevel.forEach((level) => {
|
|
2038
|
+
level.sort((a, b) => a.startIndex - b.startIndex);
|
|
2039
|
+
});
|
|
2040
|
+
return { groups: groupsByLevel, maxLevel, fieldsInGroupingModel };
|
|
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"
|
|
2059
|
+
});
|
|
2060
|
+
var OverlayWrapper = (0, import_joy24.styled)("tr", {
|
|
2061
|
+
name: "DataTable",
|
|
2062
|
+
slot: "overlayWrapper"
|
|
2063
|
+
})({
|
|
2064
|
+
position: "sticky",
|
|
2065
|
+
top: `calc(var(--unstable_TableCell-height, 32px))`,
|
|
2066
|
+
left: 0,
|
|
2067
|
+
right: 0,
|
|
2068
|
+
zIndex: 1,
|
|
2069
|
+
"& > td": {
|
|
2070
|
+
height: 0,
|
|
2071
|
+
padding: 0,
|
|
2072
|
+
border: "none !important"
|
|
2073
|
+
}
|
|
2074
|
+
});
|
|
2075
|
+
var VirtualizedTableBody = (0, import_joy24.styled)("tbody", {
|
|
2076
|
+
name: "DataTable",
|
|
2077
|
+
slot: "tableBody"
|
|
2078
|
+
})({
|
|
2079
|
+
"&::after": {
|
|
2080
|
+
content: "''",
|
|
2081
|
+
display: "block",
|
|
2082
|
+
height: "0.01em"
|
|
2083
|
+
},
|
|
2084
|
+
[`& .${import_joy24.buttonClasses.root}`]: {
|
|
2085
|
+
"--Button-minHeight": "26px",
|
|
2086
|
+
"--Button-paddingBlock": "0.25rem",
|
|
2087
|
+
lineHeight: 1,
|
|
2088
|
+
marginTop: "-2px",
|
|
2089
|
+
marginBottom: "-2px"
|
|
2090
|
+
},
|
|
2091
|
+
[`& .${import_joy24.iconButtonClasses.root}`]: {
|
|
2092
|
+
"--IconButton-size": "26px",
|
|
2093
|
+
verticalAlign: "middle",
|
|
2094
|
+
marginTop: "-2px",
|
|
2095
|
+
marginBottom: "-2px"
|
|
2096
|
+
}
|
|
2097
|
+
});
|
|
2098
|
+
var StyledTableRow = (0, import_joy24.styled)("tr", {
|
|
2099
|
+
name: "DataTable",
|
|
2100
|
+
slot: "tableRow",
|
|
2101
|
+
shouldForwardProp: (prop) => prop !== "striped"
|
|
2102
|
+
})(({ striped }) => ({
|
|
2103
|
+
...striped && {
|
|
2104
|
+
backgroundColor: "var(--TableRow-stripeBackground, var(--ceed-palette-background-level2))",
|
|
2105
|
+
color: "var(--ceed-palette-text-primary)",
|
|
2106
|
+
"& td": {
|
|
2107
|
+
backgroundColor: "background.surface"
|
|
2108
|
+
}
|
|
2109
|
+
},
|
|
2110
|
+
"&:hover": {
|
|
2111
|
+
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))",
|
|
2112
|
+
"& td": {
|
|
2113
|
+
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))"
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
}));
|
|
2117
|
+
var Asterisk = (0, import_joy24.styled)("span", {
|
|
2118
|
+
name: "DataTable",
|
|
2119
|
+
slot: "headCellAsterisk"
|
|
2120
|
+
})(({ theme }) => ({
|
|
2121
|
+
color: "var(--ceed-palette-danger-500)",
|
|
2122
|
+
marginLeft: theme.spacing(0.5)
|
|
2123
|
+
}));
|
|
2124
|
+
var StyledTh = (0, import_joy24.styled)(import_framer_motion16.motion.th)(({ theme }) => ({
|
|
2125
|
+
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2126
|
+
}));
|
|
2127
|
+
var StyledTd = (0, import_joy24.styled)("td")(({ theme }) => ({
|
|
2128
|
+
transition: `box-shadow 0.3s`,
|
|
2129
|
+
"&:not(.is-last-left):not(.is-last-right)": {
|
|
2130
|
+
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2131
|
+
},
|
|
2132
|
+
".ScrollableRight &": {
|
|
2133
|
+
"&.is-last-left": {
|
|
2134
|
+
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2135
|
+
}
|
|
2136
|
+
},
|
|
2137
|
+
".ScrollableLeft &": {
|
|
2138
|
+
"&.is-last-right": {
|
|
2139
|
+
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
}));
|
|
2143
|
+
var MotionSortIcon = (0, import_framer_motion16.motion)(import_ArrowUpwardRounded.default);
|
|
2144
|
+
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react18.default.createElement(import_joy24.LinearProgress, { value: 8, variant: "plain" });
|
|
2145
|
+
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react18.default.createElement(
|
|
2146
|
+
Box_default,
|
|
2147
|
+
{
|
|
2148
|
+
sx: {
|
|
2149
|
+
position: "absolute",
|
|
2150
|
+
top: 0,
|
|
2151
|
+
right: 0,
|
|
2152
|
+
bottom: 0,
|
|
2153
|
+
width: "4px",
|
|
2154
|
+
cursor: "col-resize"
|
|
2155
|
+
},
|
|
2156
|
+
onClick: (e) => e.stopPropagation(),
|
|
2157
|
+
onMouseDown: (e) => {
|
|
2158
|
+
const initialX = e.clientX;
|
|
2159
|
+
const initialWidth = ref.current?.getBoundingClientRect().width;
|
|
2160
|
+
const onMouseMove = (e2) => {
|
|
2161
|
+
if (initialWidth && initialX) {
|
|
2162
|
+
ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
2163
|
+
targetRef.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
2164
|
+
}
|
|
2165
|
+
};
|
|
2166
|
+
const onMouseUp = () => {
|
|
2167
|
+
document.removeEventListener("mousemove", onMouseMove);
|
|
2168
|
+
document.removeEventListener("mouseup", onMouseUp);
|
|
2169
|
+
};
|
|
2170
|
+
document.addEventListener("mousemove", onMouseMove);
|
|
2171
|
+
document.addEventListener("mouseup", onMouseUp);
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2174
|
+
);
|
|
2175
|
+
|
|
2176
|
+
// src/components/DataTable/components.tsx
|
|
2177
|
+
var import_react24 = __toESM(require("react"));
|
|
2178
|
+
var import_joy32 = require("@mui/joy");
|
|
2179
|
+
var import_framer_motion22 = require("framer-motion");
|
|
2180
|
+
|
|
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");
|
|
2200
|
+
var import_framer_motion18 = require("framer-motion");
|
|
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";
|
|
2210
|
+
|
|
2211
|
+
// src/components/DialogActions/index.ts
|
|
2212
|
+
var DialogActions_default = DialogActions;
|
|
2213
|
+
|
|
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")}`
|
|
2223
|
+
}
|
|
2224
|
+
}));
|
|
2225
|
+
var StyledPopper = (0, import_joy27.styled)(import_base2.Popper, {
|
|
2226
|
+
name: "DatePicker",
|
|
2227
|
+
slot: "popper"
|
|
2228
|
+
})(({ theme }) => ({
|
|
2229
|
+
zIndex: theme.zIndex.tooltip
|
|
2230
|
+
}));
|
|
2231
|
+
var CalendarSheet = (0, import_joy27.styled)(Sheet_default, {
|
|
2232
|
+
name: "DatePicker",
|
|
2233
|
+
slot: "sheet",
|
|
2234
|
+
overridesResolver: (props, styles) => styles.root
|
|
2235
|
+
})(({ theme }) => ({
|
|
2236
|
+
width: "264px",
|
|
2237
|
+
boxShadow: theme.shadow.md,
|
|
2238
|
+
borderRadius: theme.radius.md
|
|
2239
|
+
}));
|
|
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;
|
|
2252
|
+
}
|
|
2253
|
+
if (value !== formatValueString(parsedValue, format)) {
|
|
2254
|
+
return false;
|
|
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;
|
|
2260
|
+
}
|
|
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");
|
|
2275
|
+
}
|
|
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;
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2291
|
+
const result = new Date(year, month, day);
|
|
2292
|
+
return result;
|
|
2293
|
+
}
|
|
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
|
|
2325
|
+
}
|
|
2326
|
+
},
|
|
2327
|
+
format: (date) => formatValueString(date, format),
|
|
2328
|
+
parse: (str) => parseDate(str, format),
|
|
2329
|
+
autofix: "pad",
|
|
2150
2330
|
overwrite: true
|
|
2151
2331
|
}
|
|
2152
2332
|
);
|
|
@@ -2374,8 +2554,8 @@ var DatePicker_default = DatePicker;
|
|
|
2374
2554
|
// src/components/Textarea/Textarea.tsx
|
|
2375
2555
|
var import_react20 = __toESM(require("react"));
|
|
2376
2556
|
var import_joy28 = require("@mui/joy");
|
|
2377
|
-
var
|
|
2378
|
-
var MotionTextarea = (0,
|
|
2557
|
+
var import_framer_motion19 = require("framer-motion");
|
|
2558
|
+
var MotionTextarea = (0, import_framer_motion19.motion)(import_joy28.Textarea);
|
|
2379
2559
|
var Textarea = (props) => {
|
|
2380
2560
|
const {
|
|
2381
2561
|
label,
|
|
@@ -2428,8 +2608,8 @@ var Textarea_default = Textarea;
|
|
|
2428
2608
|
// src/components/Select/Select.tsx
|
|
2429
2609
|
var import_react21 = __toESM(require("react"));
|
|
2430
2610
|
var import_joy29 = require("@mui/joy");
|
|
2431
|
-
var
|
|
2432
|
-
var MotionOption = (0,
|
|
2611
|
+
var import_framer_motion20 = require("framer-motion");
|
|
2612
|
+
var MotionOption = (0, import_framer_motion20.motion)(import_joy29.Option);
|
|
2433
2613
|
var Option = MotionOption;
|
|
2434
2614
|
Option.displayName = "Option";
|
|
2435
2615
|
function Select(props) {
|
|
@@ -2437,232 +2617,95 @@ function Select(props) {
|
|
|
2437
2617
|
label,
|
|
2438
2618
|
helperText,
|
|
2439
2619
|
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
|
|
2563
|
-
}
|
|
2564
|
-
}));
|
|
2565
|
-
var PaginationRoot = (0, import_joy31.styled)(Stack_default, {
|
|
2566
|
-
name: "Pagination",
|
|
2567
|
-
slot: "root"
|
|
2568
|
-
})({});
|
|
2569
|
-
var PaginationContainer = (0, import_joy31.styled)(Stack_default, {
|
|
2570
|
-
name: "Pagination",
|
|
2571
|
-
slot: "container"
|
|
2572
|
-
})(({ theme, size }) => ({
|
|
2573
|
-
gap: {
|
|
2574
|
-
sm: theme.spacing(1),
|
|
2575
|
-
md: theme.spacing(1.5),
|
|
2576
|
-
lg: theme.spacing(2)
|
|
2577
|
-
}[size]
|
|
2578
|
-
}));
|
|
2579
|
-
function Pagination(props) {
|
|
2580
|
-
const {
|
|
2581
|
-
paginationModel: _paginationModel,
|
|
2582
|
-
defaultPaginationModel = { page: 1, pageSize: 25 },
|
|
2583
|
-
onPageChange,
|
|
2584
|
-
rowCount,
|
|
2585
|
-
size = "md",
|
|
2620
|
+
size,
|
|
2621
|
+
color,
|
|
2622
|
+
disabled,
|
|
2623
|
+
required,
|
|
2624
|
+
onChange,
|
|
2625
|
+
// NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
|
|
2626
|
+
sx,
|
|
2627
|
+
className,
|
|
2586
2628
|
...innerProps
|
|
2587
2629
|
} = props;
|
|
2588
|
-
const
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
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]
|
|
2597
2641
|
);
|
|
2598
|
-
const
|
|
2599
|
-
|
|
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);
|
|
2600
2654
|
};
|
|
2601
|
-
const
|
|
2602
|
-
|
|
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,
|
|
2655
|
+
const select = /* @__PURE__ */ import_react21.default.createElement(
|
|
2656
|
+
import_joy29.Select,
|
|
2635
2657
|
{
|
|
2658
|
+
...innerProps,
|
|
2659
|
+
required,
|
|
2660
|
+
disabled,
|
|
2636
2661
|
size,
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
"aria-label": "More next pages",
|
|
2640
|
-
onClick: () => handlePageChange(paginationModel.page + 3)
|
|
2662
|
+
color: error ? "danger" : color,
|
|
2663
|
+
onChange: handleChange
|
|
2641
2664
|
},
|
|
2642
|
-
|
|
2643
|
-
)
|
|
2644
|
-
|
|
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,
|
|
2645
2669
|
{
|
|
2670
|
+
required,
|
|
2671
|
+
disabled,
|
|
2646
2672
|
size,
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
"aria-label": "Next page"
|
|
2673
|
+
color,
|
|
2674
|
+
error,
|
|
2675
|
+
sx,
|
|
2676
|
+
className
|
|
2652
2677
|
},
|
|
2653
|
-
/* @__PURE__ */
|
|
2654
|
-
|
|
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
|
+
);
|
|
2655
2682
|
}
|
|
2656
|
-
|
|
2683
|
+
Select.displayName = "Select";
|
|
2657
2684
|
|
|
2658
|
-
// src/components/
|
|
2659
|
-
var
|
|
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;
|
|
2660
2703
|
|
|
2661
2704
|
// src/components/InfoSign/InfoSign.tsx
|
|
2662
|
-
var
|
|
2663
|
-
var
|
|
2705
|
+
var import_react23 = __toESM(require("react"));
|
|
2706
|
+
var import_joy31 = require("@mui/joy");
|
|
2664
2707
|
var import_Info = __toESM(require("@mui/icons-material/Info"));
|
|
2665
|
-
var InfoIcon = (0,
|
|
2708
|
+
var InfoIcon = (0, import_joy31.styled)(import_Info.default, {
|
|
2666
2709
|
name: "InfoSign",
|
|
2667
2710
|
slot: "InfoSign"
|
|
2668
2711
|
})(({ theme }) => ({
|
|
@@ -2672,179 +2715,55 @@ var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
|
2672
2715
|
}));
|
|
2673
2716
|
function InfoSign(props) {
|
|
2674
2717
|
const { message, placement } = props;
|
|
2675
|
-
return /* @__PURE__ */
|
|
2718
|
+
return /* @__PURE__ */ import_react23.default.createElement(
|
|
2676
2719
|
Tooltip_default,
|
|
2677
2720
|
{
|
|
2678
2721
|
arrow: true,
|
|
2679
2722
|
placement,
|
|
2680
2723
|
sx: {
|
|
2681
|
-
[`&.${
|
|
2724
|
+
[`&.${import_joy31.tooltipClasses.root}`]: {
|
|
2682
2725
|
maxWidth: "320px"
|
|
2683
2726
|
}
|
|
2684
2727
|
},
|
|
2685
|
-
title: message?.split("\n").map((line, i) => /* @__PURE__ */
|
|
2728
|
+
title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react23.default.createElement("div", { key: `info-sign-${i}` }, line))
|
|
2686
2729
|
},
|
|
2687
|
-
/* @__PURE__ */
|
|
2730
|
+
/* @__PURE__ */ import_react23.default.createElement(InfoIcon, null)
|
|
2688
2731
|
);
|
|
2689
|
-
}
|
|
2690
|
-
|
|
2691
|
-
// src/components/InfoSign/index.ts
|
|
2692
|
-
var InfoSign_default = InfoSign;
|
|
2693
|
-
|
|
2694
|
-
// src/components/DataTable/
|
|
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);
|
|
2704
|
-
}
|
|
2705
|
-
}
|
|
2706
|
-
return fields;
|
|
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
|
-
}
|
|
2721
|
-
}
|
|
2722
|
-
}
|
|
2723
|
-
collectFieldsInOrder(columnGroupingModel);
|
|
2724
|
-
const columnMap = new Map(columns.map((col) => [col.field, col]));
|
|
2725
|
-
const reorderedColumns = [];
|
|
2726
|
-
for (const field of orderedFields) {
|
|
2727
|
-
const column = columnMap.get(field);
|
|
2728
|
-
if (column) {
|
|
2729
|
-
reorderedColumns.push(column);
|
|
2730
|
-
}
|
|
2731
|
-
}
|
|
2732
|
-
for (const column of columns) {
|
|
2733
|
-
if (!fieldsInGroupingModel.has(column.field)) {
|
|
2734
|
-
reorderedColumns.push(column);
|
|
2735
|
-
}
|
|
2736
|
-
}
|
|
2737
|
-
return reorderedColumns;
|
|
2738
|
-
}
|
|
2739
|
-
function flattenColumnGroups(items, groupPath = [], columnIndex = { current: 0 }) {
|
|
2740
|
-
const result = [];
|
|
2741
|
-
for (const item of items) {
|
|
2742
|
-
if ("groupId" in item) {
|
|
2743
|
-
const newPath = [...groupPath, item.groupId];
|
|
2744
|
-
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
2745
|
-
result.push(...flattenColumnGroups(children, newPath, columnIndex));
|
|
2746
|
-
} else {
|
|
2747
|
-
result.push({
|
|
2748
|
-
...item,
|
|
2749
|
-
groupPath,
|
|
2750
|
-
columnIndex: columnIndex.current++
|
|
2751
|
-
});
|
|
2752
|
-
}
|
|
2753
|
-
}
|
|
2754
|
-
return result;
|
|
2755
|
-
}
|
|
2756
|
-
function calculateColumnGroups(columnGroupingModel, columns) {
|
|
2757
|
-
const fieldsInGroupingModel = extractFieldsFromGroupingModel(columnGroupingModel);
|
|
2758
|
-
const flattenedColumns = flattenColumnGroups(columnGroupingModel);
|
|
2759
|
-
const columnIndexMap = new Map(flattenedColumns.map((col) => [col.field, col.columnIndex]));
|
|
2760
|
-
const processedGroups = /* @__PURE__ */ new Map();
|
|
2761
|
-
const groupsByLevel = [];
|
|
2762
|
-
let maxLevel = 0;
|
|
2763
|
-
function processGroup(items, level, parentGroupId) {
|
|
2764
|
-
let minIndex = Infinity;
|
|
2765
|
-
let maxIndex = -Infinity;
|
|
2766
|
-
for (const item of items) {
|
|
2767
|
-
if ("groupId" in item) {
|
|
2768
|
-
const groupKey = parentGroupId ? `${parentGroupId}.${item.groupId}` : item.groupId;
|
|
2769
|
-
if (!processedGroups.has(groupKey)) {
|
|
2770
|
-
const children = Array.isArray(item.children) ? item.children : [item.children];
|
|
2771
|
-
const { startIndex, colspan } = processGroup(children, level + 1, groupKey);
|
|
2772
|
-
const group = {
|
|
2773
|
-
groupId: item.groupId,
|
|
2774
|
-
headerName: item.headerName,
|
|
2775
|
-
colspan,
|
|
2776
|
-
level,
|
|
2777
|
-
startIndex
|
|
2778
|
-
};
|
|
2779
|
-
processedGroups.set(groupKey, group);
|
|
2780
|
-
if (!groupsByLevel[level]) {
|
|
2781
|
-
groupsByLevel[level] = [];
|
|
2782
|
-
}
|
|
2783
|
-
groupsByLevel[level].push(group);
|
|
2784
|
-
maxLevel = Math.max(maxLevel, level);
|
|
2785
|
-
minIndex = Math.min(minIndex, startIndex);
|
|
2786
|
-
maxIndex = Math.max(maxIndex, startIndex + colspan - 1);
|
|
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);
|
|
2793
|
-
}
|
|
2794
|
-
}
|
|
2795
|
-
}
|
|
2796
|
-
return {
|
|
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"
|
|
2818
|
-
});
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
// src/components/InfoSign/index.ts
|
|
2735
|
+
var InfoSign_default = InfoSign;
|
|
2736
|
+
|
|
2737
|
+
// src/components/DataTable/components.tsx
|
|
2819
2738
|
var TextEllipsis = ({ children }) => {
|
|
2820
|
-
const textRef = (0,
|
|
2821
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
2822
|
-
(0,
|
|
2739
|
+
const textRef = (0, import_react24.useRef)(null);
|
|
2740
|
+
const [showTooltip, setShowTooltip] = (0, import_react24.useState)(false);
|
|
2741
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
2823
2742
|
const element = textRef.current;
|
|
2824
2743
|
if (element) {
|
|
2825
2744
|
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
2826
2745
|
setShowTooltip(isTextTruncated);
|
|
2827
2746
|
}
|
|
2828
2747
|
}, [children]);
|
|
2829
|
-
const content = /* @__PURE__ */
|
|
2748
|
+
const content = /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
2830
2749
|
if (showTooltip) {
|
|
2831
|
-
return /* @__PURE__ */
|
|
2750
|
+
return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: children, placement: "top", onClick: (e) => e.stopPropagation() }, content);
|
|
2832
2751
|
}
|
|
2833
2752
|
return content;
|
|
2834
2753
|
};
|
|
2835
2754
|
var CellTextEllipsis = ({ children }) => {
|
|
2836
|
-
const textRef = (0,
|
|
2837
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
2838
|
-
(0,
|
|
2755
|
+
const textRef = (0, import_react24.useRef)(null);
|
|
2756
|
+
const [showTooltip, setShowTooltip] = (0, import_react24.useState)(false);
|
|
2757
|
+
(0, import_react24.useLayoutEffect)(() => {
|
|
2839
2758
|
const element = textRef.current;
|
|
2840
2759
|
if (element) {
|
|
2841
2760
|
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
2842
2761
|
setShowTooltip(isTextTruncated);
|
|
2843
2762
|
}
|
|
2844
2763
|
}, [children]);
|
|
2845
|
-
const content = /* @__PURE__ */
|
|
2764
|
+
const content = /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
2846
2765
|
if (showTooltip) {
|
|
2847
|
-
return /* @__PURE__ */
|
|
2766
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
2848
2767
|
Tooltip_default,
|
|
2849
2768
|
{
|
|
2850
2769
|
title: children,
|
|
@@ -2858,130 +2777,6 @@ var CellTextEllipsis = ({ children }) => {
|
|
|
2858
2777
|
}
|
|
2859
2778
|
return content;
|
|
2860
2779
|
};
|
|
2861
|
-
var OverlayWrapper = (0, import_joy33.styled)("tr", {
|
|
2862
|
-
name: "DataTable",
|
|
2863
|
-
slot: "overlayWrapper"
|
|
2864
|
-
})({
|
|
2865
|
-
position: "sticky",
|
|
2866
|
-
top: `calc(var(--unstable_TableCell-height, 32px))`,
|
|
2867
|
-
left: 0,
|
|
2868
|
-
right: 0,
|
|
2869
|
-
zIndex: 1,
|
|
2870
|
-
"& > td": {
|
|
2871
|
-
height: 0,
|
|
2872
|
-
padding: 0,
|
|
2873
|
-
border: "none !important"
|
|
2874
|
-
}
|
|
2875
|
-
});
|
|
2876
|
-
var numberFormatter = (value) => "Intl" in window ? new Intl.NumberFormat().format(value) : value;
|
|
2877
|
-
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react25.default.createElement(
|
|
2878
|
-
Box_default,
|
|
2879
|
-
{
|
|
2880
|
-
sx: {
|
|
2881
|
-
position: "absolute",
|
|
2882
|
-
top: 0,
|
|
2883
|
-
right: 0,
|
|
2884
|
-
bottom: 0,
|
|
2885
|
-
width: "4px",
|
|
2886
|
-
cursor: "col-resize"
|
|
2887
|
-
},
|
|
2888
|
-
onClick: (e) => e.stopPropagation(),
|
|
2889
|
-
onMouseDown: (e) => {
|
|
2890
|
-
const initialX = e.clientX;
|
|
2891
|
-
const initialWidth = ref.current?.getBoundingClientRect().width;
|
|
2892
|
-
const onMouseMove = (e2) => {
|
|
2893
|
-
if (initialWidth && initialX) {
|
|
2894
|
-
ref.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
2895
|
-
targetRef.current.style.width = `${initialWidth + (e2.clientX - initialX)}px`;
|
|
2896
|
-
}
|
|
2897
|
-
};
|
|
2898
|
-
const onMouseUp = () => {
|
|
2899
|
-
document.removeEventListener("mousemove", onMouseMove);
|
|
2900
|
-
document.removeEventListener("mouseup", onMouseUp);
|
|
2901
|
-
};
|
|
2902
|
-
document.addEventListener("mousemove", onMouseMove);
|
|
2903
|
-
document.addEventListener("mouseup", onMouseUp);
|
|
2904
|
-
}
|
|
2905
|
-
}
|
|
2906
|
-
);
|
|
2907
|
-
var VirtualizedTableBody = (0, import_joy33.styled)("tbody", {
|
|
2908
|
-
name: "DataTable",
|
|
2909
|
-
slot: "tableBody"
|
|
2910
|
-
})({
|
|
2911
|
-
// HACK: for virtualization: tbody의 height를 렌더링 된 tr의 총 높이 보다 높은 값으로 지정하고도 tr의 size를 유지하기 위한 꼼수
|
|
2912
|
-
"&::after": {
|
|
2913
|
-
content: "''",
|
|
2914
|
-
display: "block",
|
|
2915
|
-
height: "0.01em"
|
|
2916
|
-
},
|
|
2917
|
-
// NOTE: 테이블 안에 버튼을 넣을 때 버튼의 높이가 테이블의 높이를 넘어가지 않도록 설정
|
|
2918
|
-
[`& .${import_joy33.buttonClasses.root}`]: {
|
|
2919
|
-
"--Button-minHeight": "26px",
|
|
2920
|
-
"--Button-paddingBlock": "0.25rem",
|
|
2921
|
-
lineHeight: 1,
|
|
2922
|
-
marginTop: "-2px",
|
|
2923
|
-
marginBottom: "-2px"
|
|
2924
|
-
},
|
|
2925
|
-
[`& .${import_joy33.iconButtonClasses.root}`]: {
|
|
2926
|
-
"--IconButton-size": "26px",
|
|
2927
|
-
verticalAlign: "middle",
|
|
2928
|
-
marginTop: "-2px",
|
|
2929
|
-
marginBottom: "-2px"
|
|
2930
|
-
}
|
|
2931
|
-
});
|
|
2932
|
-
var StyledTableRow = (0, import_joy33.styled)("tr", {
|
|
2933
|
-
name: "DataTable",
|
|
2934
|
-
slot: "tableRow",
|
|
2935
|
-
shouldForwardProp: (prop) => prop !== "striped"
|
|
2936
|
-
})(({ striped }) => ({
|
|
2937
|
-
...striped && {
|
|
2938
|
-
backgroundColor: "var(--TableRow-stripeBackground, var(--ceed-palette-background-level2))",
|
|
2939
|
-
color: "var(--ceed-palette-text-primary)",
|
|
2940
|
-
"& td": {
|
|
2941
|
-
backgroundColor: "background.surface"
|
|
2942
|
-
}
|
|
2943
|
-
},
|
|
2944
|
-
"&:hover": {
|
|
2945
|
-
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))",
|
|
2946
|
-
"& td": {
|
|
2947
|
-
backgroundColor: "var(--TableRow-hoverBackground, var(--ceed-palette-background-level3))"
|
|
2948
|
-
}
|
|
2949
|
-
}
|
|
2950
|
-
}));
|
|
2951
|
-
var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow, (prevProps, nextProps) => {
|
|
2952
|
-
return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
|
|
2953
|
-
prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
|
|
2954
|
-
prevProps["data-index"] === nextProps["data-index"] && prevProps.tabIndex === nextProps.tabIndex && prevProps["aria-checked"] === nextProps["aria-checked"] && // Include children check to handle isCellEditable changes
|
|
2955
|
-
prevProps.children === nextProps.children;
|
|
2956
|
-
});
|
|
2957
|
-
var Asterisk = (0, import_joy33.styled)("span", {
|
|
2958
|
-
name: "DataTable",
|
|
2959
|
-
slot: "headCellAsterisk"
|
|
2960
|
-
})(({ theme }) => ({
|
|
2961
|
-
color: "var(--ceed-palette-danger-500)",
|
|
2962
|
-
marginLeft: theme.spacing(0.5)
|
|
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가 겹치는 문제를 해결
|
|
2967
|
-
}));
|
|
2968
|
-
var StyledTd = (0, import_joy33.styled)("td")(({ theme }) => ({
|
|
2969
|
-
transition: `box-shadow 0.3s`,
|
|
2970
|
-
"&:not(.is-last-left):not(.is-last-right)": {
|
|
2971
|
-
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2972
|
-
},
|
|
2973
|
-
".ScrollableRight &": {
|
|
2974
|
-
"&.is-last-left": {
|
|
2975
|
-
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2976
|
-
}
|
|
2977
|
-
},
|
|
2978
|
-
".ScrollableLeft &": {
|
|
2979
|
-
"&.is-last-right": {
|
|
2980
|
-
boxShadow: `1px 0 var(--TableCell-borderColor), ${theme.shadow.md}`
|
|
2981
|
-
}
|
|
2982
|
-
}
|
|
2983
|
-
}));
|
|
2984
|
-
var MotionSortIcon = (0, import_framer_motion21.motion)(import_ArrowUpwardRounded.default);
|
|
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,15 +5161,15 @@ 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
5175
|
shouldForwardProp: (prop) => prop !== "error"
|
|
@@ -5148,7 +5185,7 @@ var FileDropZone = (0, import_joy52.styled)(Sheet_default, {
|
|
|
5148
5185
|
backgroundColor: theme.palette.background.surface,
|
|
5149
5186
|
border: error ? `1px solid ${theme.palette.danger.outlinedBorder}` : state === "idle" ? `1px solid ${theme.palette.neutral.outlinedBorder}` : `1px solid ${theme.palette.primary.outlinedBorder}`
|
|
5150
5187
|
}));
|
|
5151
|
-
var UploaderIcon = (0,
|
|
5188
|
+
var UploaderIcon = (0, import_joy54.styled)(import_CloudUploadRounded.default, {
|
|
5152
5189
|
name: "Uploader",
|
|
5153
5190
|
slot: "iconContainer",
|
|
5154
5191
|
shouldForwardProp: (prop) => prop !== "error"
|
|
@@ -5157,7 +5194,7 @@ var UploaderIcon = (0, import_joy52.styled)(import_CloudUploadRounded.default, {
|
|
|
5157
5194
|
width: "32px",
|
|
5158
5195
|
height: "32px"
|
|
5159
5196
|
}));
|
|
5160
|
-
var Uploader =
|
|
5197
|
+
var Uploader = import_react43.default.memo(
|
|
5161
5198
|
(props) => {
|
|
5162
5199
|
const {
|
|
5163
5200
|
accept,
|
|
@@ -5172,14 +5209,14 @@ var Uploader = import_react40.default.memo(
|
|
|
5172
5209
|
disabled,
|
|
5173
5210
|
onDelete
|
|
5174
5211
|
} = 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,
|
|
5212
|
+
const dropZoneRef = (0, import_react43.useRef)(null);
|
|
5213
|
+
const inputRef = (0, import_react43.useRef)(null);
|
|
5214
|
+
const [errorText, setErrorText] = (0, import_react43.useState)();
|
|
5215
|
+
const [files, setFiles] = (0, import_react43.useState)([]);
|
|
5216
|
+
const [uploaded, setUploaded] = (0, import_react43.useState)(props.uploaded || []);
|
|
5217
|
+
const [previewState, setPreviewState] = (0, import_react43.useState)("idle");
|
|
5218
|
+
const accepts = (0, import_react43.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
5219
|
+
const parsedAccepts = (0, import_react43.useMemo)(
|
|
5183
5220
|
() => accepts.flatMap((type) => {
|
|
5184
5221
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
5185
5222
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -5188,7 +5225,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5188
5225
|
}),
|
|
5189
5226
|
[accepts]
|
|
5190
5227
|
);
|
|
5191
|
-
const helperText = (0,
|
|
5228
|
+
const helperText = (0, import_react43.useMemo)(() => {
|
|
5192
5229
|
const [allAcceptedTypes, acceptedTypes] = [
|
|
5193
5230
|
accepts.filter((accept2) => ["image/*", "video/*", "audio/*"].includes(accept2)).map((accept2) => {
|
|
5194
5231
|
const [type] = accept2.split("/");
|
|
@@ -5215,12 +5252,12 @@ var Uploader = import_react40.default.memo(
|
|
|
5215
5252
|
}
|
|
5216
5253
|
return helperTexts.join(", ");
|
|
5217
5254
|
}, [accepts, maxFileTotalSize, maxCount]);
|
|
5218
|
-
const error = (0,
|
|
5219
|
-
const showDropZone = (0,
|
|
5255
|
+
const error = (0, import_react43.useMemo)(() => !!errorText || props.error, [props.error, errorText]);
|
|
5256
|
+
const showDropZone = (0, import_react43.useMemo)(
|
|
5220
5257
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
5221
5258
|
[files, maxCount, uploaded]
|
|
5222
5259
|
);
|
|
5223
|
-
const addFiles = (0,
|
|
5260
|
+
const addFiles = (0, import_react43.useCallback)(
|
|
5224
5261
|
(uploads) => {
|
|
5225
5262
|
try {
|
|
5226
5263
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -5265,7 +5302,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5265
5302
|
},
|
|
5266
5303
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
5267
5304
|
);
|
|
5268
|
-
(0,
|
|
5305
|
+
(0, import_react43.useEffect)(() => {
|
|
5269
5306
|
if (!dropZoneRef.current || disabled) {
|
|
5270
5307
|
return;
|
|
5271
5308
|
}
|
|
@@ -5303,7 +5340,7 @@ var Uploader = import_react40.default.memo(
|
|
|
5303
5340
|
);
|
|
5304
5341
|
return () => cleanup?.();
|
|
5305
5342
|
}, [disabled, addFiles]);
|
|
5306
|
-
(0,
|
|
5343
|
+
(0, import_react43.useEffect)(() => {
|
|
5307
5344
|
if (inputRef.current && minCount) {
|
|
5308
5345
|
if (files.length < minCount) {
|
|
5309
5346
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -5312,14 +5349,14 @@ var Uploader = import_react40.default.memo(
|
|
|
5312
5349
|
}
|
|
5313
5350
|
}
|
|
5314
5351
|
}, [inputRef, files, minCount]);
|
|
5315
|
-
const handleFileChanged = (0,
|
|
5352
|
+
const handleFileChanged = (0, import_react43.useCallback)(
|
|
5316
5353
|
(event) => {
|
|
5317
5354
|
const files2 = Array.from(event.target.files || []);
|
|
5318
5355
|
addFiles(files2);
|
|
5319
5356
|
},
|
|
5320
5357
|
[addFiles]
|
|
5321
5358
|
);
|
|
5322
|
-
const handleDeleteFile = (0,
|
|
5359
|
+
const handleDeleteFile = (0, import_react43.useCallback)(
|
|
5323
5360
|
(deletedFile) => {
|
|
5324
5361
|
if (deletedFile instanceof File) {
|
|
5325
5362
|
setFiles((current) => {
|
|
@@ -5339,10 +5376,10 @@ var Uploader = import_react40.default.memo(
|
|
|
5339
5376
|
},
|
|
5340
5377
|
[name, onChange, onDelete]
|
|
5341
5378
|
);
|
|
5342
|
-
const handleUploaderButtonClick = (0,
|
|
5379
|
+
const handleUploaderButtonClick = (0, import_react43.useCallback)(() => {
|
|
5343
5380
|
inputRef.current?.click();
|
|
5344
5381
|
}, []);
|
|
5345
|
-
const uploader = /* @__PURE__ */
|
|
5382
|
+
const uploader = /* @__PURE__ */ import_react43.default.createElement(
|
|
5346
5383
|
FileDropZone,
|
|
5347
5384
|
{
|
|
5348
5385
|
state: previewState,
|
|
@@ -5350,8 +5387,8 @@ var Uploader = import_react40.default.memo(
|
|
|
5350
5387
|
ref: dropZoneRef,
|
|
5351
5388
|
onClick: handleUploaderButtonClick
|
|
5352
5389
|
},
|
|
5353
|
-
/* @__PURE__ */
|
|
5354
|
-
/* @__PURE__ */
|
|
5390
|
+
/* @__PURE__ */ import_react43.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react43.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText) })),
|
|
5391
|
+
/* @__PURE__ */ import_react43.default.createElement(
|
|
5355
5392
|
VisuallyHiddenInput,
|
|
5356
5393
|
{
|
|
5357
5394
|
disabled,
|
|
@@ -5374,17 +5411,17 @@ var Uploader = import_react40.default.memo(
|
|
|
5374
5411
|
}
|
|
5375
5412
|
)
|
|
5376
5413
|
);
|
|
5377
|
-
return /* @__PURE__ */
|
|
5414
|
+
return /* @__PURE__ */ import_react43.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react43.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react43.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react43.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react43.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react43.default.createElement("div", null, errorText), /* @__PURE__ */ import_react43.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react43.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
5378
5415
|
}
|
|
5379
5416
|
);
|
|
5380
5417
|
Uploader.displayName = "Uploader";
|
|
5381
5418
|
|
|
5382
5419
|
// src/components/Grid/Grid.tsx
|
|
5383
|
-
var
|
|
5420
|
+
var import_joy55 = require("@mui/joy");
|
|
5384
5421
|
|
|
5385
5422
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
5386
|
-
var
|
|
5387
|
-
var
|
|
5423
|
+
var import_react44 = __toESM(require("react"));
|
|
5424
|
+
var import_joy56 = require("@mui/joy");
|
|
5388
5425
|
function IconMenuButton(props) {
|
|
5389
5426
|
const {
|
|
5390
5427
|
size,
|
|
@@ -5397,8 +5434,8 @@ function IconMenuButton(props) {
|
|
|
5397
5434
|
placement = "bottom"
|
|
5398
5435
|
} = props;
|
|
5399
5436
|
if (!items.length) {
|
|
5400
|
-
return /* @__PURE__ */
|
|
5401
|
-
|
|
5437
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
5438
|
+
import_joy56.IconButton,
|
|
5402
5439
|
{
|
|
5403
5440
|
component: props.buttonComponent ?? "button",
|
|
5404
5441
|
size,
|
|
@@ -5411,10 +5448,10 @@ function IconMenuButton(props) {
|
|
|
5411
5448
|
icon
|
|
5412
5449
|
);
|
|
5413
5450
|
}
|
|
5414
|
-
return /* @__PURE__ */
|
|
5415
|
-
|
|
5451
|
+
return /* @__PURE__ */ import_react44.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react44.default.createElement(
|
|
5452
|
+
import_joy56.MenuButton,
|
|
5416
5453
|
{
|
|
5417
|
-
slots: { root:
|
|
5454
|
+
slots: { root: import_joy56.IconButton },
|
|
5418
5455
|
slotProps: {
|
|
5419
5456
|
root: {
|
|
5420
5457
|
component: props.buttonComponent ?? "button",
|
|
@@ -5428,19 +5465,19 @@ function IconMenuButton(props) {
|
|
|
5428
5465
|
}
|
|
5429
5466
|
},
|
|
5430
5467
|
icon
|
|
5431
|
-
), /* @__PURE__ */
|
|
5468
|
+
), /* @__PURE__ */ import_react44.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react44.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5432
5469
|
}
|
|
5433
5470
|
IconMenuButton.displayName = "IconMenuButton";
|
|
5434
5471
|
|
|
5435
5472
|
// src/components/Markdown/Markdown.tsx
|
|
5436
|
-
var
|
|
5437
|
-
var
|
|
5438
|
-
var
|
|
5473
|
+
var import_react45 = __toESM(require("react"));
|
|
5474
|
+
var import_joy57 = require("@mui/joy");
|
|
5475
|
+
var import_joy58 = require("@mui/joy");
|
|
5439
5476
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
5440
|
-
var LazyReactMarkdown = (0,
|
|
5477
|
+
var LazyReactMarkdown = (0, import_react45.lazy)(() => import("react-markdown"));
|
|
5441
5478
|
var Markdown = (props) => {
|
|
5442
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
5443
|
-
(0,
|
|
5479
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react45.useState)(null);
|
|
5480
|
+
(0, import_react45.useEffect)(() => {
|
|
5444
5481
|
const loadRehypeAccent = async () => {
|
|
5445
5482
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
5446
5483
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -5462,12 +5499,12 @@ var Markdown = (props) => {
|
|
|
5462
5499
|
if (!rehypeAccent2) {
|
|
5463
5500
|
return null;
|
|
5464
5501
|
}
|
|
5465
|
-
return /* @__PURE__ */
|
|
5466
|
-
|
|
5502
|
+
return /* @__PURE__ */ import_react45.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react45.default.createElement(
|
|
5503
|
+
import_react45.Suspense,
|
|
5467
5504
|
{
|
|
5468
|
-
fallback: fallback || /* @__PURE__ */
|
|
5505
|
+
fallback: fallback || /* @__PURE__ */ import_react45.default.createElement(Typography, null, /* @__PURE__ */ import_react45.default.createElement(import_joy57.Skeleton, null, content || ""))
|
|
5469
5506
|
},
|
|
5470
|
-
/* @__PURE__ */
|
|
5507
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
5471
5508
|
LazyReactMarkdown,
|
|
5472
5509
|
{
|
|
5473
5510
|
...markdownOptions,
|
|
@@ -5475,15 +5512,15 @@ var Markdown = (props) => {
|
|
|
5475
5512
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
5476
5513
|
remarkPlugins: [import_remark_gfm.default],
|
|
5477
5514
|
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__ */
|
|
5515
|
+
h1: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
5516
|
+
h2: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
5517
|
+
h3: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
5518
|
+
h4: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
5519
|
+
p: ({ children, node }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
5520
|
+
a: ({ children, href }) => /* @__PURE__ */ import_react45.default.createElement(import_joy58.Link, { href, target: defaultLinkAction }, children),
|
|
5521
|
+
hr: () => /* @__PURE__ */ import_react45.default.createElement(Divider, null),
|
|
5522
|
+
b: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5523
|
+
strong: ({ children }) => /* @__PURE__ */ import_react45.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5487
5524
|
...markdownOptions?.components
|
|
5488
5525
|
}
|
|
5489
5526
|
}
|
|
@@ -5493,8 +5530,8 @@ var Markdown = (props) => {
|
|
|
5493
5530
|
Markdown.displayName = "Markdown";
|
|
5494
5531
|
|
|
5495
5532
|
// src/components/MenuButton/MenuButton.tsx
|
|
5496
|
-
var
|
|
5497
|
-
var
|
|
5533
|
+
var import_react46 = __toESM(require("react"));
|
|
5534
|
+
var import_joy59 = require("@mui/joy");
|
|
5498
5535
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
5499
5536
|
function MenuButton(props) {
|
|
5500
5537
|
const {
|
|
@@ -5511,8 +5548,8 @@ function MenuButton(props) {
|
|
|
5511
5548
|
placement = "bottom"
|
|
5512
5549
|
} = props;
|
|
5513
5550
|
if (!items.length) {
|
|
5514
|
-
return /* @__PURE__ */
|
|
5515
|
-
|
|
5551
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
5552
|
+
import_joy59.Button,
|
|
5516
5553
|
{
|
|
5517
5554
|
component: props.buttonComponent ?? "button",
|
|
5518
5555
|
size,
|
|
@@ -5522,13 +5559,13 @@ function MenuButton(props) {
|
|
|
5522
5559
|
loading,
|
|
5523
5560
|
startDecorator,
|
|
5524
5561
|
...props.buttonComponentProps ?? {},
|
|
5525
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5562
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react46.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator)
|
|
5526
5563
|
},
|
|
5527
5564
|
buttonText
|
|
5528
5565
|
);
|
|
5529
5566
|
}
|
|
5530
|
-
return /* @__PURE__ */
|
|
5531
|
-
|
|
5567
|
+
return /* @__PURE__ */ import_react46.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react46.default.createElement(
|
|
5568
|
+
import_joy59.MenuButton,
|
|
5532
5569
|
{
|
|
5533
5570
|
component: props.buttonComponent ?? "button",
|
|
5534
5571
|
size,
|
|
@@ -5538,25 +5575,25 @@ function MenuButton(props) {
|
|
|
5538
5575
|
loading,
|
|
5539
5576
|
startDecorator,
|
|
5540
5577
|
...props.buttonComponentProps ?? {},
|
|
5541
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5578
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react46.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, endDecorator)
|
|
5542
5579
|
},
|
|
5543
5580
|
buttonText
|
|
5544
|
-
), /* @__PURE__ */
|
|
5581
|
+
), /* @__PURE__ */ import_react46.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react46.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5545
5582
|
}
|
|
5546
5583
|
MenuButton.displayName = "MenuButton";
|
|
5547
5584
|
|
|
5548
5585
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
5549
|
-
var
|
|
5586
|
+
var import_react47 = __toESM(require("react"));
|
|
5550
5587
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5551
|
-
var
|
|
5588
|
+
var import_joy60 = require("@mui/joy");
|
|
5552
5589
|
var import_base4 = require("@mui/base");
|
|
5553
|
-
var StyledPopper3 = (0,
|
|
5590
|
+
var StyledPopper3 = (0, import_joy60.styled)(import_base4.Popper, {
|
|
5554
5591
|
name: "MonthPicker",
|
|
5555
5592
|
slot: "popper"
|
|
5556
5593
|
})(({ theme }) => ({
|
|
5557
5594
|
zIndex: theme.zIndex.tooltip
|
|
5558
5595
|
}));
|
|
5559
|
-
var CalendarSheet3 = (0,
|
|
5596
|
+
var CalendarSheet3 = (0, import_joy60.styled)(Sheet_default, {
|
|
5560
5597
|
name: "MonthPicker",
|
|
5561
5598
|
slot: "sheet",
|
|
5562
5599
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5565,7 +5602,7 @@ var CalendarSheet3 = (0, import_joy58.styled)(Sheet_default, {
|
|
|
5565
5602
|
boxShadow: theme.shadow.md,
|
|
5566
5603
|
borderRadius: theme.radius.md
|
|
5567
5604
|
}));
|
|
5568
|
-
var MonthPickerRoot = (0,
|
|
5605
|
+
var MonthPickerRoot = (0, import_joy60.styled)("div", {
|
|
5569
5606
|
name: "MonthPicker",
|
|
5570
5607
|
slot: "root",
|
|
5571
5608
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5601,8 +5638,8 @@ function parseDate3(dateString, format) {
|
|
|
5601
5638
|
const result = new Date(year, month, day);
|
|
5602
5639
|
return result;
|
|
5603
5640
|
}
|
|
5604
|
-
var MonthPicker = (0,
|
|
5605
|
-
const props = (0,
|
|
5641
|
+
var MonthPicker = (0, import_react47.forwardRef)((inProps, ref) => {
|
|
5642
|
+
const props = (0, import_joy60.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
5606
5643
|
const {
|
|
5607
5644
|
onChange,
|
|
5608
5645
|
disabled,
|
|
@@ -5628,14 +5665,14 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5628
5665
|
locale,
|
|
5629
5666
|
...innerProps
|
|
5630
5667
|
} = props;
|
|
5631
|
-
const innerRef = (0,
|
|
5632
|
-
const buttonRef = (0,
|
|
5668
|
+
const innerRef = (0, import_react47.useRef)(null);
|
|
5669
|
+
const buttonRef = (0, import_react47.useRef)(null);
|
|
5633
5670
|
const [value, setValue, isControlled] = useControlledState(
|
|
5634
5671
|
props.value,
|
|
5635
5672
|
props.defaultValue || "",
|
|
5636
|
-
(0,
|
|
5673
|
+
(0, import_react47.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5637
5674
|
);
|
|
5638
|
-
const getFormattedDisplayValue = (0,
|
|
5675
|
+
const getFormattedDisplayValue = (0, import_react47.useCallback)(
|
|
5639
5676
|
(inputValue) => {
|
|
5640
5677
|
if (!inputValue) return "";
|
|
5641
5678
|
try {
|
|
@@ -5646,19 +5683,19 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5646
5683
|
},
|
|
5647
5684
|
[format, displayFormat, locale]
|
|
5648
5685
|
);
|
|
5649
|
-
const [displayValue, setDisplayValue] = (0,
|
|
5650
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5686
|
+
const [displayValue, setDisplayValue] = (0, import_react47.useState)(() => getFormattedDisplayValue(value));
|
|
5687
|
+
const [anchorEl, setAnchorEl] = (0, import_react47.useState)(null);
|
|
5651
5688
|
const open = Boolean(anchorEl);
|
|
5652
|
-
(0,
|
|
5689
|
+
(0, import_react47.useEffect)(() => {
|
|
5653
5690
|
if (!anchorEl) {
|
|
5654
5691
|
innerRef.current?.blur();
|
|
5655
5692
|
}
|
|
5656
5693
|
}, [anchorEl, innerRef]);
|
|
5657
|
-
(0,
|
|
5658
|
-
(0,
|
|
5694
|
+
(0, import_react47.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5695
|
+
(0, import_react47.useEffect)(() => {
|
|
5659
5696
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
5660
5697
|
}, [value, getFormattedDisplayValue]);
|
|
5661
|
-
const handleChange = (0,
|
|
5698
|
+
const handleChange = (0, import_react47.useCallback)(
|
|
5662
5699
|
(event) => {
|
|
5663
5700
|
const newValue = event.target.value;
|
|
5664
5701
|
setValue(newValue);
|
|
@@ -5668,21 +5705,21 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5668
5705
|
},
|
|
5669
5706
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
5670
5707
|
);
|
|
5671
|
-
const handleCalendarToggle = (0,
|
|
5708
|
+
const handleCalendarToggle = (0, import_react47.useCallback)(
|
|
5672
5709
|
(event) => {
|
|
5673
5710
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5674
5711
|
innerRef.current?.focus();
|
|
5675
5712
|
},
|
|
5676
5713
|
[anchorEl, setAnchorEl, innerRef]
|
|
5677
5714
|
);
|
|
5678
|
-
const handleInputMouseDown = (0,
|
|
5715
|
+
const handleInputMouseDown = (0, import_react47.useCallback)(
|
|
5679
5716
|
(event) => {
|
|
5680
5717
|
event.preventDefault();
|
|
5681
5718
|
buttonRef.current?.focus();
|
|
5682
5719
|
},
|
|
5683
5720
|
[buttonRef]
|
|
5684
5721
|
);
|
|
5685
|
-
return /* @__PURE__ */
|
|
5722
|
+
return /* @__PURE__ */ import_react47.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react47.default.createElement(import_base4.FocusTrap, { open: true }, /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(
|
|
5686
5723
|
Input_default,
|
|
5687
5724
|
{
|
|
5688
5725
|
...innerProps,
|
|
@@ -5712,7 +5749,7 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5712
5749
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5713
5750
|
fontFamily: "monospace"
|
|
5714
5751
|
},
|
|
5715
|
-
endDecorator: /* @__PURE__ */
|
|
5752
|
+
endDecorator: /* @__PURE__ */ import_react47.default.createElement(
|
|
5716
5753
|
IconButton_default,
|
|
5717
5754
|
{
|
|
5718
5755
|
ref: buttonRef,
|
|
@@ -5724,12 +5761,12 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5724
5761
|
"aria-expanded": open,
|
|
5725
5762
|
disabled
|
|
5726
5763
|
},
|
|
5727
|
-
/* @__PURE__ */
|
|
5764
|
+
/* @__PURE__ */ import_react47.default.createElement(import_CalendarToday3.default, null)
|
|
5728
5765
|
),
|
|
5729
5766
|
label,
|
|
5730
5767
|
helperText
|
|
5731
5768
|
}
|
|
5732
|
-
), open && /* @__PURE__ */
|
|
5769
|
+
), open && /* @__PURE__ */ import_react47.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react47.default.createElement(
|
|
5733
5770
|
StyledPopper3,
|
|
5734
5771
|
{
|
|
5735
5772
|
id: "month-picker-popper",
|
|
@@ -5748,7 +5785,7 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5748
5785
|
"aria-label": "Calendar Tooltip",
|
|
5749
5786
|
"aria-expanded": open
|
|
5750
5787
|
},
|
|
5751
|
-
/* @__PURE__ */
|
|
5788
|
+
/* @__PURE__ */ import_react47.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react47.default.createElement(
|
|
5752
5789
|
Calendar_default,
|
|
5753
5790
|
{
|
|
5754
5791
|
view: "month",
|
|
@@ -5769,14 +5806,14 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5769
5806
|
disablePast,
|
|
5770
5807
|
locale
|
|
5771
5808
|
}
|
|
5772
|
-
), /* @__PURE__ */
|
|
5809
|
+
), /* @__PURE__ */ import_react47.default.createElement(
|
|
5773
5810
|
DialogActions_default,
|
|
5774
5811
|
{
|
|
5775
5812
|
sx: {
|
|
5776
5813
|
p: 1
|
|
5777
5814
|
}
|
|
5778
5815
|
},
|
|
5779
|
-
/* @__PURE__ */
|
|
5816
|
+
/* @__PURE__ */ import_react47.default.createElement(
|
|
5780
5817
|
Button_default,
|
|
5781
5818
|
{
|
|
5782
5819
|
size,
|
|
@@ -5799,18 +5836,18 @@ var MonthPicker = (0, import_react44.forwardRef)((inProps, ref) => {
|
|
|
5799
5836
|
});
|
|
5800
5837
|
|
|
5801
5838
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
5802
|
-
var
|
|
5839
|
+
var import_react48 = __toESM(require("react"));
|
|
5803
5840
|
var import_react_imask3 = require("react-imask");
|
|
5804
5841
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5805
|
-
var
|
|
5842
|
+
var import_joy61 = require("@mui/joy");
|
|
5806
5843
|
var import_base5 = require("@mui/base");
|
|
5807
|
-
var StyledPopper4 = (0,
|
|
5844
|
+
var StyledPopper4 = (0, import_joy61.styled)(import_base5.Popper, {
|
|
5808
5845
|
name: "MonthRangePicker",
|
|
5809
5846
|
slot: "popper"
|
|
5810
5847
|
})(({ theme }) => ({
|
|
5811
5848
|
zIndex: theme.zIndex.tooltip
|
|
5812
5849
|
}));
|
|
5813
|
-
var CalendarSheet4 = (0,
|
|
5850
|
+
var CalendarSheet4 = (0, import_joy61.styled)(Sheet_default, {
|
|
5814
5851
|
name: "MonthRangePicker",
|
|
5815
5852
|
slot: "sheet",
|
|
5816
5853
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5820,7 +5857,7 @@ var CalendarSheet4 = (0, import_joy59.styled)(Sheet_default, {
|
|
|
5820
5857
|
boxShadow: theme.shadow.md,
|
|
5821
5858
|
borderRadius: theme.radius.md
|
|
5822
5859
|
}));
|
|
5823
|
-
var MonthRangePickerRoot = (0,
|
|
5860
|
+
var MonthRangePickerRoot = (0, import_joy61.styled)("div", {
|
|
5824
5861
|
name: "MonthRangePicker",
|
|
5825
5862
|
slot: "root",
|
|
5826
5863
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -5857,9 +5894,9 @@ var parseDates2 = (str) => {
|
|
|
5857
5894
|
var formatToPattern3 = (format) => {
|
|
5858
5895
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
5859
5896
|
};
|
|
5860
|
-
var TextMaskAdapter9 =
|
|
5897
|
+
var TextMaskAdapter9 = import_react48.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
5861
5898
|
const { onChange, format, ...other } = props;
|
|
5862
|
-
return /* @__PURE__ */
|
|
5899
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
5863
5900
|
import_react_imask3.IMaskInput,
|
|
5864
5901
|
{
|
|
5865
5902
|
...other,
|
|
@@ -5887,8 +5924,8 @@ var TextMaskAdapter9 = import_react45.default.forwardRef(function TextMaskAdapte
|
|
|
5887
5924
|
}
|
|
5888
5925
|
);
|
|
5889
5926
|
});
|
|
5890
|
-
var MonthRangePicker = (0,
|
|
5891
|
-
const props = (0,
|
|
5927
|
+
var MonthRangePicker = (0, import_react48.forwardRef)((inProps, ref) => {
|
|
5928
|
+
const props = (0, import_joy61.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
5892
5929
|
const {
|
|
5893
5930
|
onChange,
|
|
5894
5931
|
disabled,
|
|
@@ -5907,35 +5944,35 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5907
5944
|
size,
|
|
5908
5945
|
...innerProps
|
|
5909
5946
|
} = props;
|
|
5910
|
-
const innerRef = (0,
|
|
5947
|
+
const innerRef = (0, import_react48.useRef)(null);
|
|
5911
5948
|
const [value, setValue] = useControlledState(
|
|
5912
5949
|
props.value,
|
|
5913
5950
|
props.defaultValue || "",
|
|
5914
|
-
(0,
|
|
5951
|
+
(0, import_react48.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5915
5952
|
);
|
|
5916
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5953
|
+
const [anchorEl, setAnchorEl] = (0, import_react48.useState)(null);
|
|
5917
5954
|
const open = Boolean(anchorEl);
|
|
5918
|
-
const calendarValue = (0,
|
|
5919
|
-
(0,
|
|
5955
|
+
const calendarValue = (0, import_react48.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
5956
|
+
(0, import_react48.useEffect)(() => {
|
|
5920
5957
|
if (!anchorEl) {
|
|
5921
5958
|
innerRef.current?.blur();
|
|
5922
5959
|
}
|
|
5923
5960
|
}, [anchorEl, innerRef]);
|
|
5924
|
-
(0,
|
|
5925
|
-
const handleChange = (0,
|
|
5961
|
+
(0, import_react48.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5962
|
+
const handleChange = (0, import_react48.useCallback)(
|
|
5926
5963
|
(event) => {
|
|
5927
5964
|
setValue(event.target.value);
|
|
5928
5965
|
},
|
|
5929
5966
|
[setValue]
|
|
5930
5967
|
);
|
|
5931
|
-
const handleCalendarToggle = (0,
|
|
5968
|
+
const handleCalendarToggle = (0, import_react48.useCallback)(
|
|
5932
5969
|
(event) => {
|
|
5933
5970
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5934
5971
|
innerRef.current?.focus();
|
|
5935
5972
|
},
|
|
5936
5973
|
[anchorEl, setAnchorEl, innerRef]
|
|
5937
5974
|
);
|
|
5938
|
-
const handleCalendarChange = (0,
|
|
5975
|
+
const handleCalendarChange = (0, import_react48.useCallback)(
|
|
5939
5976
|
([date1, date2]) => {
|
|
5940
5977
|
if (!date1 || !date2) return;
|
|
5941
5978
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -5943,7 +5980,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5943
5980
|
},
|
|
5944
5981
|
[setValue, setAnchorEl, format]
|
|
5945
5982
|
);
|
|
5946
|
-
return /* @__PURE__ */
|
|
5983
|
+
return /* @__PURE__ */ import_react48.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react48.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(
|
|
5947
5984
|
Input_default,
|
|
5948
5985
|
{
|
|
5949
5986
|
...innerProps,
|
|
@@ -5965,7 +6002,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5965
6002
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5966
6003
|
fontFamily: "monospace"
|
|
5967
6004
|
},
|
|
5968
|
-
endDecorator: /* @__PURE__ */
|
|
6005
|
+
endDecorator: /* @__PURE__ */ import_react48.default.createElement(
|
|
5969
6006
|
IconButton_default,
|
|
5970
6007
|
{
|
|
5971
6008
|
variant: "plain",
|
|
@@ -5975,12 +6012,12 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5975
6012
|
"aria-haspopup": "dialog",
|
|
5976
6013
|
"aria-expanded": open
|
|
5977
6014
|
},
|
|
5978
|
-
/* @__PURE__ */
|
|
6015
|
+
/* @__PURE__ */ import_react48.default.createElement(import_CalendarToday4.default, null)
|
|
5979
6016
|
),
|
|
5980
6017
|
label,
|
|
5981
6018
|
helperText
|
|
5982
6019
|
}
|
|
5983
|
-
), open && /* @__PURE__ */
|
|
6020
|
+
), open && /* @__PURE__ */ import_react48.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react48.default.createElement(
|
|
5984
6021
|
StyledPopper4,
|
|
5985
6022
|
{
|
|
5986
6023
|
id: "month-range-picker-popper",
|
|
@@ -5999,7 +6036,7 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
5999
6036
|
"aria-label": "Calendar Tooltip",
|
|
6000
6037
|
"aria-expanded": open
|
|
6001
6038
|
},
|
|
6002
|
-
/* @__PURE__ */
|
|
6039
|
+
/* @__PURE__ */ import_react48.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react48.default.createElement(
|
|
6003
6040
|
Calendar_default,
|
|
6004
6041
|
{
|
|
6005
6042
|
view: "month",
|
|
@@ -6012,14 +6049,14 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
6012
6049
|
disableFuture,
|
|
6013
6050
|
disablePast
|
|
6014
6051
|
}
|
|
6015
|
-
), /* @__PURE__ */
|
|
6052
|
+
), /* @__PURE__ */ import_react48.default.createElement(
|
|
6016
6053
|
DialogActions_default,
|
|
6017
6054
|
{
|
|
6018
6055
|
sx: {
|
|
6019
6056
|
p: 1
|
|
6020
6057
|
}
|
|
6021
6058
|
},
|
|
6022
|
-
/* @__PURE__ */
|
|
6059
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
6023
6060
|
Button_default,
|
|
6024
6061
|
{
|
|
6025
6062
|
size,
|
|
@@ -6038,22 +6075,22 @@ var MonthRangePicker = (0, import_react45.forwardRef)((inProps, ref) => {
|
|
|
6038
6075
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
6039
6076
|
|
|
6040
6077
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
6041
|
-
var
|
|
6042
|
-
var
|
|
6043
|
-
var AccordionSummary2 = (0,
|
|
6078
|
+
var import_react49 = __toESM(require("react"));
|
|
6079
|
+
var import_joy62 = require("@mui/joy");
|
|
6080
|
+
var AccordionSummary2 = (0, import_joy62.styled)(import_joy62.AccordionSummary, {
|
|
6044
6081
|
name: "NavigationGroup",
|
|
6045
6082
|
slot: "Summary",
|
|
6046
6083
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
6047
6084
|
})(({ theme, useIcon, level }) => ({
|
|
6048
|
-
[`& .${
|
|
6085
|
+
[`& .${import_joy62.accordionSummaryClasses.button}`]: {
|
|
6049
6086
|
padding: theme.spacing(4, 6, 4, (useIcon ? 6 : 8) + (level || 0) * 8),
|
|
6050
|
-
[`&.${
|
|
6087
|
+
[`&.${import_joy62.accordionSummaryClasses.expanded}`]: {
|
|
6051
6088
|
color: theme.palette.primary.plainColor,
|
|
6052
6089
|
"--Icon-color": theme.palette.primary.plainColor
|
|
6053
6090
|
}
|
|
6054
6091
|
}
|
|
6055
6092
|
}));
|
|
6056
|
-
var AccordionDetails2 = (0,
|
|
6093
|
+
var AccordionDetails2 = (0, import_joy62.styled)(import_joy62.AccordionDetails, {
|
|
6057
6094
|
name: "NavigationGroup",
|
|
6058
6095
|
slot: "Details"
|
|
6059
6096
|
})(({ theme }) => ({
|
|
@@ -6062,13 +6099,13 @@ var AccordionDetails2 = (0, import_joy60.styled)(import_joy60.AccordionDetails,
|
|
|
6062
6099
|
}));
|
|
6063
6100
|
function NavigationGroup(props) {
|
|
6064
6101
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
6065
|
-
return /* @__PURE__ */
|
|
6102
|
+
return /* @__PURE__ */ import_react49.default.createElement(import_joy62.Accordion, { ...rest }, /* @__PURE__ */ import_react49.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react49.default.createElement(import_joy62.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react49.default.createElement(AccordionDetails2, null, children));
|
|
6066
6103
|
}
|
|
6067
6104
|
|
|
6068
6105
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
6069
|
-
var
|
|
6070
|
-
var
|
|
6071
|
-
var ListItemButton = (0,
|
|
6106
|
+
var import_react50 = __toESM(require("react"));
|
|
6107
|
+
var import_joy63 = require("@mui/joy");
|
|
6108
|
+
var ListItemButton = (0, import_joy63.styled)(import_joy63.ListItemButton, {
|
|
6072
6109
|
name: "NavigationItem",
|
|
6073
6110
|
slot: "Button",
|
|
6074
6111
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
@@ -6082,7 +6119,7 @@ var ListItemButton = (0, import_joy61.styled)(import_joy61.ListItemButton, {
|
|
|
6082
6119
|
"&:active": {
|
|
6083
6120
|
backgroundColor: theme.palette.neutral.plainActiveBg
|
|
6084
6121
|
},
|
|
6085
|
-
[`&.${
|
|
6122
|
+
[`&.${import_joy63.listItemButtonClasses.selected}`]: {
|
|
6086
6123
|
color: theme.palette.primary.plainColor,
|
|
6087
6124
|
"--Icon-color": theme.palette.primary.plainColor,
|
|
6088
6125
|
"&:not(:hover):not(:active)": {
|
|
@@ -6095,7 +6132,7 @@ function NavigationItem(props) {
|
|
|
6095
6132
|
const handleClick = () => {
|
|
6096
6133
|
onClick?.(id);
|
|
6097
6134
|
};
|
|
6098
|
-
return /* @__PURE__ */
|
|
6135
|
+
return /* @__PURE__ */ import_react50.default.createElement(import_joy63.ListItem, { ...rest }, /* @__PURE__ */ import_react50.default.createElement(
|
|
6099
6136
|
ListItemButton,
|
|
6100
6137
|
{
|
|
6101
6138
|
level,
|
|
@@ -6104,21 +6141,21 @@ function NavigationItem(props) {
|
|
|
6104
6141
|
"aria-current": selected,
|
|
6105
6142
|
onClick: handleClick
|
|
6106
6143
|
},
|
|
6107
|
-
startDecorator && /* @__PURE__ */
|
|
6144
|
+
startDecorator && /* @__PURE__ */ import_react50.default.createElement(import_joy63.ListItemDecorator, null, startDecorator),
|
|
6108
6145
|
children
|
|
6109
6146
|
));
|
|
6110
6147
|
}
|
|
6111
6148
|
|
|
6112
6149
|
// src/components/Navigator/Navigator.tsx
|
|
6113
|
-
var
|
|
6150
|
+
var import_react51 = __toESM(require("react"));
|
|
6114
6151
|
function Navigator(props) {
|
|
6115
6152
|
const { items, level = 0, onSelect } = props;
|
|
6116
6153
|
const handleItemClick = (id) => {
|
|
6117
6154
|
onSelect?.(id);
|
|
6118
6155
|
};
|
|
6119
|
-
return /* @__PURE__ */
|
|
6156
|
+
return /* @__PURE__ */ import_react51.default.createElement("div", null, items.map((item, index) => {
|
|
6120
6157
|
if (item.type === "item") {
|
|
6121
|
-
return /* @__PURE__ */
|
|
6158
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
6122
6159
|
NavigationItem,
|
|
6123
6160
|
{
|
|
6124
6161
|
key: item.id,
|
|
@@ -6131,7 +6168,7 @@ function Navigator(props) {
|
|
|
6131
6168
|
item.title
|
|
6132
6169
|
);
|
|
6133
6170
|
} else if (item.type === "group") {
|
|
6134
|
-
return /* @__PURE__ */
|
|
6171
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
6135
6172
|
NavigationGroup,
|
|
6136
6173
|
{
|
|
6137
6174
|
key: `${item.title}-${index}`,
|
|
@@ -6149,22 +6186,22 @@ function Navigator(props) {
|
|
|
6149
6186
|
Navigator.displayName = "Navigator";
|
|
6150
6187
|
|
|
6151
6188
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
6152
|
-
var
|
|
6153
|
-
var
|
|
6189
|
+
var import_react52 = __toESM(require("react"));
|
|
6190
|
+
var import_joy64 = require("@mui/joy");
|
|
6154
6191
|
var import_base6 = require("@mui/base");
|
|
6155
6192
|
var import_ArrowDropDown = __toESM(require("@mui/icons-material/ArrowDropDown"));
|
|
6156
|
-
var StyledProfileCard = (0,
|
|
6193
|
+
var StyledProfileCard = (0, import_joy64.styled)(import_joy3.Stack, {
|
|
6157
6194
|
name: "ProfileMenu",
|
|
6158
6195
|
slot: "item"
|
|
6159
6196
|
})({});
|
|
6160
6197
|
function ProfileCard(props) {
|
|
6161
6198
|
const { children, chip, caption, size } = props;
|
|
6162
|
-
const captionLevel = (0,
|
|
6163
|
-
const nameLevel = (0,
|
|
6164
|
-
return /* @__PURE__ */
|
|
6199
|
+
const captionLevel = (0, import_react52.useMemo)(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
6200
|
+
const nameLevel = (0, import_react52.useMemo)(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
6201
|
+
return /* @__PURE__ */ import_react52.default.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ import_react52.default.createElement(import_joy3.Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ import_react52.default.createElement(Typography, { level: nameLevel, fontWeight: "bold", textColor: "text.primary" }, children), chip && /* @__PURE__ */ import_react52.default.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ import_react52.default.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
|
|
6165
6202
|
}
|
|
6166
6203
|
ProfileCard.displayName = "ProfileCard";
|
|
6167
|
-
var StyledProfileMenuButton = (0,
|
|
6204
|
+
var StyledProfileMenuButton = (0, import_joy64.styled)(import_joy64.MenuButton, {
|
|
6168
6205
|
name: "ProfileMenu",
|
|
6169
6206
|
slot: "button"
|
|
6170
6207
|
})(({ theme }) => ({
|
|
@@ -6173,26 +6210,26 @@ var StyledProfileMenuButton = (0, import_joy62.styled)(import_joy62.MenuButton,
|
|
|
6173
6210
|
}));
|
|
6174
6211
|
function ProfileMenuButton(props) {
|
|
6175
6212
|
const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
|
|
6176
|
-
return /* @__PURE__ */
|
|
6213
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
6177
6214
|
StyledProfileMenuButton,
|
|
6178
6215
|
{
|
|
6179
6216
|
variant: "plain",
|
|
6180
6217
|
color: "neutral",
|
|
6181
6218
|
size,
|
|
6182
|
-
endDecorator: /* @__PURE__ */
|
|
6219
|
+
endDecorator: /* @__PURE__ */ import_react52.default.createElement(import_ArrowDropDown.default, null),
|
|
6183
6220
|
...innerProps
|
|
6184
6221
|
},
|
|
6185
|
-
/* @__PURE__ */
|
|
6222
|
+
/* @__PURE__ */ import_react52.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
6186
6223
|
);
|
|
6187
6224
|
}
|
|
6188
6225
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
6189
|
-
var ProfileMenuRoot = (0,
|
|
6226
|
+
var ProfileMenuRoot = (0, import_joy64.styled)(Menu, {
|
|
6190
6227
|
name: "ProfileMenu",
|
|
6191
6228
|
slot: "root"
|
|
6192
6229
|
})(({ theme }) => ({
|
|
6193
6230
|
border: "none",
|
|
6194
6231
|
"--ListItem-paddingX": theme.spacing(4),
|
|
6195
|
-
[`.${
|
|
6232
|
+
[`.${import_joy64.menuItemClasses.root}`]: {
|
|
6196
6233
|
border: "none"
|
|
6197
6234
|
}
|
|
6198
6235
|
}));
|
|
@@ -6201,9 +6238,9 @@ function ProfileMenu(props) {
|
|
|
6201
6238
|
const [open, setOpen] = useControlledState(
|
|
6202
6239
|
_open,
|
|
6203
6240
|
defaultOpen ?? false,
|
|
6204
|
-
(0,
|
|
6241
|
+
(0, import_react52.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
|
|
6205
6242
|
);
|
|
6206
|
-
return /* @__PURE__ */
|
|
6243
|
+
return /* @__PURE__ */ import_react52.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ import_react52.default.createElement("div", null, /* @__PURE__ */ import_react52.default.createElement(import_joy64.Dropdown, { open }, /* @__PURE__ */ import_react52.default.createElement(
|
|
6207
6244
|
ProfileMenuButton,
|
|
6208
6245
|
{
|
|
6209
6246
|
size,
|
|
@@ -6213,7 +6250,7 @@ function ProfileMenu(props) {
|
|
|
6213
6250
|
getInitial
|
|
6214
6251
|
},
|
|
6215
6252
|
profile.name
|
|
6216
|
-
), /* @__PURE__ */
|
|
6253
|
+
), /* @__PURE__ */ import_react52.default.createElement(ProfileMenuRoot, { size, placement: "bottom-end", ...innerProps, onClose: () => setOpen(false) }, /* @__PURE__ */ import_react52.default.createElement(ProfileCard, { size, caption: profile.caption, chip: profile.chip }, profile.name), !!menuItems.length && /* @__PURE__ */ import_react52.default.createElement(import_joy64.ListDivider, null), menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ import_react52.default.createElement(
|
|
6217
6254
|
MenuItem,
|
|
6218
6255
|
{
|
|
6219
6256
|
key: label,
|
|
@@ -6229,31 +6266,31 @@ function ProfileMenu(props) {
|
|
|
6229
6266
|
ProfileMenu.displayName = "ProfileMenu";
|
|
6230
6267
|
|
|
6231
6268
|
// src/components/RadioList/RadioList.tsx
|
|
6232
|
-
var
|
|
6269
|
+
var import_react53 = __toESM(require("react"));
|
|
6233
6270
|
function RadioList(props) {
|
|
6234
6271
|
const { items, ...innerProps } = props;
|
|
6235
|
-
return /* @__PURE__ */
|
|
6272
|
+
return /* @__PURE__ */ import_react53.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react53.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
6236
6273
|
}
|
|
6237
6274
|
RadioList.displayName = "RadioList";
|
|
6238
6275
|
|
|
6239
6276
|
// src/components/Stepper/Stepper.tsx
|
|
6240
|
-
var
|
|
6241
|
-
var
|
|
6277
|
+
var import_react54 = __toESM(require("react"));
|
|
6278
|
+
var import_joy65 = require("@mui/joy");
|
|
6242
6279
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
6243
|
-
var
|
|
6244
|
-
var Step = (0,
|
|
6280
|
+
var import_framer_motion28 = require("framer-motion");
|
|
6281
|
+
var Step = (0, import_joy65.styled)(import_joy65.Step)({});
|
|
6245
6282
|
Step.displayName = "Step";
|
|
6246
|
-
var StepIndicator = (0,
|
|
6283
|
+
var StepIndicator = (0, import_joy65.styled)(import_joy65.StepIndicator)({});
|
|
6247
6284
|
StepIndicator.displayName = "StepIndicator";
|
|
6248
|
-
var StyledStepper = (0,
|
|
6285
|
+
var StyledStepper = (0, import_joy65.styled)(import_joy65.Stepper)(({ theme }) => ({
|
|
6249
6286
|
"--StepIndicator-size": "24px",
|
|
6250
6287
|
"--Step-gap": theme.spacing(2),
|
|
6251
6288
|
"--joy-palette-success-solidBg": "var(--joy-palette-success-400)",
|
|
6252
|
-
[`& .${
|
|
6289
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6253
6290
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
6254
6291
|
}
|
|
6255
6292
|
}));
|
|
6256
|
-
var MotionStepper = (0,
|
|
6293
|
+
var MotionStepper = (0, import_framer_motion28.motion)(StyledStepper);
|
|
6257
6294
|
function Stepper(props) {
|
|
6258
6295
|
const {
|
|
6259
6296
|
steps,
|
|
@@ -6263,30 +6300,30 @@ function Stepper(props) {
|
|
|
6263
6300
|
inactiveLineColor = "neutral.300",
|
|
6264
6301
|
activeStep
|
|
6265
6302
|
} = props;
|
|
6266
|
-
return /* @__PURE__ */
|
|
6303
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
6267
6304
|
MotionStepper,
|
|
6268
6305
|
{
|
|
6269
6306
|
sx: (theme) => ({
|
|
6270
6307
|
"--StepIndicator-size": "24px",
|
|
6271
6308
|
"--Step-gap": theme.spacing(2),
|
|
6272
|
-
[`& .${
|
|
6309
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6273
6310
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
6274
6311
|
},
|
|
6275
|
-
[`& .${
|
|
6312
|
+
[`& .${import_joy65.stepClasses.completed}`]: {
|
|
6276
6313
|
"&::after": { bgcolor: activeLineColor },
|
|
6277
|
-
[`& .${
|
|
6314
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6278
6315
|
bgcolor: activeColor
|
|
6279
6316
|
}
|
|
6280
6317
|
},
|
|
6281
|
-
[`& .${
|
|
6318
|
+
[`& .${import_joy65.stepClasses.active}`]: {
|
|
6282
6319
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6283
|
-
[`& .${
|
|
6320
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6284
6321
|
bgcolor: activeColor
|
|
6285
6322
|
}
|
|
6286
6323
|
},
|
|
6287
|
-
[`& .${
|
|
6324
|
+
[`& .${import_joy65.stepClasses.disabled}`]: {
|
|
6288
6325
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6289
|
-
[`& .${
|
|
6326
|
+
[`& .${import_joy65.stepIndicatorClasses.root}`]: {
|
|
6290
6327
|
bgcolor: inactiveColor
|
|
6291
6328
|
}
|
|
6292
6329
|
}
|
|
@@ -6297,16 +6334,16 @@ function Stepper(props) {
|
|
|
6297
6334
|
const completed = activeStep > i + 1;
|
|
6298
6335
|
const disabled = activeStep < i + 1;
|
|
6299
6336
|
const hasContent = step.label || step.extraContent;
|
|
6300
|
-
return /* @__PURE__ */
|
|
6337
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
6301
6338
|
Step,
|
|
6302
6339
|
{
|
|
6303
6340
|
key: `step-${i}`,
|
|
6304
|
-
indicator: /* @__PURE__ */
|
|
6341
|
+
indicator: /* @__PURE__ */ import_react54.default.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ import_react54.default.createElement(import_Check.default, null) : step.indicatorContent),
|
|
6305
6342
|
active,
|
|
6306
6343
|
completed,
|
|
6307
6344
|
disabled
|
|
6308
6345
|
},
|
|
6309
|
-
hasContent && /* @__PURE__ */
|
|
6346
|
+
hasContent && /* @__PURE__ */ import_react54.default.createElement(Stack_default, null, step.label && /* @__PURE__ */ import_react54.default.createElement(Typography_default, { level: "title-sm" }, step.label), step.extraContent && /* @__PURE__ */ import_react54.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent))
|
|
6310
6347
|
);
|
|
6311
6348
|
})
|
|
6312
6349
|
);
|
|
@@ -6314,11 +6351,11 @@ function Stepper(props) {
|
|
|
6314
6351
|
Stepper.displayName = "Stepper";
|
|
6315
6352
|
|
|
6316
6353
|
// src/components/Switch/Switch.tsx
|
|
6317
|
-
var
|
|
6318
|
-
var
|
|
6319
|
-
var
|
|
6320
|
-
var MotionSwitch = (0,
|
|
6321
|
-
var StyledThumb = (0,
|
|
6354
|
+
var import_react55 = __toESM(require("react"));
|
|
6355
|
+
var import_joy66 = require("@mui/joy");
|
|
6356
|
+
var import_framer_motion29 = require("framer-motion");
|
|
6357
|
+
var MotionSwitch = (0, import_framer_motion29.motion)(import_joy66.Switch);
|
|
6358
|
+
var StyledThumb = (0, import_joy66.styled)(import_framer_motion29.motion.div)({
|
|
6322
6359
|
"--Icon-fontSize": "calc(var(--Switch-thumbSize) * 0.75)",
|
|
6323
6360
|
display: "inline-flex",
|
|
6324
6361
|
justifyContent: "center",
|
|
@@ -6331,19 +6368,19 @@ var StyledThumb = (0, import_joy64.styled)(import_framer_motion28.motion.div)({
|
|
|
6331
6368
|
boxShadow: "var(--Switch-thumbShadow)",
|
|
6332
6369
|
color: "var(--Switch-thumbColor)",
|
|
6333
6370
|
backgroundColor: "var(--Switch-thumbBackground)",
|
|
6334
|
-
[`&.${
|
|
6371
|
+
[`&.${import_joy66.switchClasses.checked}`]: {
|
|
6335
6372
|
left: "unset",
|
|
6336
6373
|
right: "var(--Switch-thumbOffset)"
|
|
6337
6374
|
}
|
|
6338
6375
|
});
|
|
6339
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
6376
|
+
var Thumb = (props) => /* @__PURE__ */ import_react55.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
6340
6377
|
var spring = {
|
|
6341
6378
|
type: "spring",
|
|
6342
6379
|
stiffness: 700,
|
|
6343
6380
|
damping: 30
|
|
6344
6381
|
};
|
|
6345
6382
|
var Switch = (props) => {
|
|
6346
|
-
return /* @__PURE__ */
|
|
6383
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
6347
6384
|
MotionSwitch,
|
|
6348
6385
|
{
|
|
6349
6386
|
...props,
|
|
@@ -6357,32 +6394,32 @@ var Switch = (props) => {
|
|
|
6357
6394
|
Switch.displayName = "Switch";
|
|
6358
6395
|
|
|
6359
6396
|
// src/components/Tabs/Tabs.tsx
|
|
6360
|
-
var
|
|
6361
|
-
var
|
|
6362
|
-
var StyledTabs = (0,
|
|
6397
|
+
var import_react56 = __toESM(require("react"));
|
|
6398
|
+
var import_joy67 = require("@mui/joy");
|
|
6399
|
+
var StyledTabs = (0, import_joy67.styled)(import_joy67.Tabs)(({ theme }) => ({
|
|
6363
6400
|
backgroundColor: theme.palette.background.body
|
|
6364
6401
|
}));
|
|
6365
6402
|
var Tabs = StyledTabs;
|
|
6366
6403
|
Tabs.displayName = "Tabs";
|
|
6367
|
-
var StyledTab = (0,
|
|
6404
|
+
var StyledTab = (0, import_joy67.styled)(import_joy67.Tab)(({ theme }) => ({
|
|
6368
6405
|
gap: theme.spacing(2),
|
|
6369
|
-
[`&:not(.${
|
|
6406
|
+
[`&:not(.${import_joy67.tabClasses.selected})`]: {
|
|
6370
6407
|
color: theme.palette.neutral[700]
|
|
6371
6408
|
},
|
|
6372
|
-
[`&.${
|
|
6409
|
+
[`&.${import_joy67.tabClasses.variantPlain}`]: {
|
|
6373
6410
|
backgroundColor: theme.palette.background.body
|
|
6374
6411
|
}
|
|
6375
6412
|
}));
|
|
6376
|
-
var Tab = (0,
|
|
6377
|
-
return /* @__PURE__ */
|
|
6413
|
+
var Tab = (0, import_react56.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
6414
|
+
return /* @__PURE__ */ import_react56.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
6378
6415
|
});
|
|
6379
6416
|
Tab.displayName = "Tab";
|
|
6380
|
-
var TabList =
|
|
6381
|
-
var TabPanel =
|
|
6417
|
+
var TabList = import_joy67.TabList;
|
|
6418
|
+
var TabPanel = import_joy67.TabPanel;
|
|
6382
6419
|
|
|
6383
6420
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
6384
|
-
var
|
|
6385
|
-
var
|
|
6421
|
+
var import_react57 = __toESM(require("react"));
|
|
6422
|
+
var import_joy68 = require("@mui/joy");
|
|
6386
6423
|
var colorScheme = {
|
|
6387
6424
|
palette: {
|
|
6388
6425
|
danger: {
|
|
@@ -6435,7 +6472,7 @@ var colorScheme = {
|
|
|
6435
6472
|
}
|
|
6436
6473
|
}
|
|
6437
6474
|
};
|
|
6438
|
-
var defaultTheme = (0,
|
|
6475
|
+
var defaultTheme = (0, import_joy68.extendTheme)({
|
|
6439
6476
|
cssVarPrefix: "ceed",
|
|
6440
6477
|
spacing: 4,
|
|
6441
6478
|
breakpoints: {
|
|
@@ -6462,7 +6499,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6462
6499
|
},
|
|
6463
6500
|
styleOverrides: {
|
|
6464
6501
|
root: {
|
|
6465
|
-
[`.${
|
|
6502
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6466
6503
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6467
6504
|
"font-family": "monospace"
|
|
6468
6505
|
}
|
|
@@ -6475,7 +6512,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6475
6512
|
},
|
|
6476
6513
|
styleOverrides: {
|
|
6477
6514
|
root: {
|
|
6478
|
-
[`.${
|
|
6515
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6479
6516
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6480
6517
|
"font-family": "monospace"
|
|
6481
6518
|
}
|
|
@@ -6488,7 +6525,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6488
6525
|
},
|
|
6489
6526
|
styleOverrides: {
|
|
6490
6527
|
root: {
|
|
6491
|
-
[`.${
|
|
6528
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6492
6529
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6493
6530
|
"font-family": "monospace"
|
|
6494
6531
|
}
|
|
@@ -6501,7 +6538,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6501
6538
|
},
|
|
6502
6539
|
styleOverrides: {
|
|
6503
6540
|
root: {
|
|
6504
|
-
[`.${
|
|
6541
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6505
6542
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6506
6543
|
"font-family": "monospace"
|
|
6507
6544
|
}
|
|
@@ -6514,7 +6551,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6514
6551
|
},
|
|
6515
6552
|
styleOverrides: {
|
|
6516
6553
|
root: {
|
|
6517
|
-
[`.${
|
|
6554
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6518
6555
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6519
6556
|
"font-family": "monospace"
|
|
6520
6557
|
}
|
|
@@ -6527,7 +6564,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6527
6564
|
},
|
|
6528
6565
|
styleOverrides: {
|
|
6529
6566
|
root: {
|
|
6530
|
-
[`.${
|
|
6567
|
+
[`.${import_joy68.inputClasses.root}`]: {
|
|
6531
6568
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6532
6569
|
"font-family": "monospace"
|
|
6533
6570
|
}
|
|
@@ -6605,7 +6642,7 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6605
6642
|
outline: `${theme.palette.primary[500]} solid 2px`,
|
|
6606
6643
|
outlineOffset: "-2px"
|
|
6607
6644
|
},
|
|
6608
|
-
[`& .${
|
|
6645
|
+
[`& .${import_joy68.checkboxClasses.root}`]: {
|
|
6609
6646
|
verticalAlign: "middle"
|
|
6610
6647
|
}
|
|
6611
6648
|
})
|
|
@@ -6660,6 +6697,6 @@ var defaultTheme = (0, import_joy66.extendTheme)({
|
|
|
6660
6697
|
});
|
|
6661
6698
|
function ThemeProvider(props) {
|
|
6662
6699
|
const theme = props.theme || defaultTheme;
|
|
6663
|
-
return /* @__PURE__ */
|
|
6700
|
+
return /* @__PURE__ */ import_react57.default.createElement(import_react57.default.Fragment, null, /* @__PURE__ */ import_react57.default.createElement(import_joy68.CssVarsProvider, { theme }, /* @__PURE__ */ import_react57.default.createElement(import_joy68.CssBaseline, null), props.children));
|
|
6664
6701
|
}
|
|
6665
6702
|
ThemeProvider.displayName = "ThemeProvider";
|