@ceed/cds 1.22.5 → 1.23.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/inputs/Autocomplete.md +351 -107
- package/dist/index.browser.js +5 -5
- package/dist/index.browser.js.map +4 -4
- package/dist/index.cjs +266 -181
- package/dist/index.js +312 -227
- package/framer/index.js +38 -38
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -759,11 +759,24 @@ Button.displayName = "Button";
|
|
|
759
759
|
var Button_default = Button;
|
|
760
760
|
|
|
761
761
|
// src/components/Calendar/Calendar.tsx
|
|
762
|
-
import
|
|
762
|
+
import React12, { Fragment, forwardRef as forwardRef4, useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo4, useRef as useRef3, useState as useState4 } from "react";
|
|
763
763
|
import { styled as styled5 } from "@mui/joy";
|
|
764
764
|
import ChevronLeftIcon from "@mui/icons-material/ChevronLeft";
|
|
765
765
|
import ChevronRightIcon from "@mui/icons-material/ChevronRight";
|
|
766
|
-
import { AnimatePresence, motion as
|
|
766
|
+
import { AnimatePresence, motion as motion13 } from "framer-motion";
|
|
767
|
+
|
|
768
|
+
// src/components/Tooltip/Tooltip.tsx
|
|
769
|
+
import React10 from "react";
|
|
770
|
+
import { Tooltip as JoyTooltip } from "@mui/joy";
|
|
771
|
+
import { motion as motion12 } from "framer-motion";
|
|
772
|
+
var MotionTooltip = motion12(JoyTooltip);
|
|
773
|
+
var Tooltip = (props) => {
|
|
774
|
+
return /* @__PURE__ */ React10.createElement(MotionTooltip, { ...props });
|
|
775
|
+
};
|
|
776
|
+
Tooltip.displayName = "Tooltip";
|
|
777
|
+
|
|
778
|
+
// src/components/Tooltip/index.ts
|
|
779
|
+
var Tooltip_default = Tooltip;
|
|
767
780
|
|
|
768
781
|
// src/components/Calendar/utils/index.ts
|
|
769
782
|
var getCalendarDates = (date) => {
|
|
@@ -1122,6 +1135,12 @@ var useCalendar = (ownerState) => {
|
|
|
1122
1135
|
};
|
|
1123
1136
|
|
|
1124
1137
|
// src/components/Calendar/Calendar.tsx
|
|
1138
|
+
var MONTH_VIEW_HINT_MESSAGE = "Click the month title to view all months.";
|
|
1139
|
+
var MONTH_NAV_CLICK_WINDOW_MS = 1200;
|
|
1140
|
+
var MONTH_NAV_CLICK_THRESHOLD = 3;
|
|
1141
|
+
var MONTH_VIEW_HINT_DURATION_MS = 5e3;
|
|
1142
|
+
var MONTH_VIEW_HINT_COOLDOWN_MS = 3e4;
|
|
1143
|
+
var lastMonthViewAssistHintShownAt = 0;
|
|
1125
1144
|
var CalendarRoot = styled5("div", {
|
|
1126
1145
|
name: "Calendar",
|
|
1127
1146
|
slot: "root"
|
|
@@ -1148,7 +1167,7 @@ var CalendarViewContainer = styled5("div", {
|
|
|
1148
1167
|
overflow: "hidden",
|
|
1149
1168
|
minHeight: calendarType === "datePicker" ? "250px" : "unset"
|
|
1150
1169
|
}));
|
|
1151
|
-
var CalendarViewTable = styled5(
|
|
1170
|
+
var CalendarViewTable = styled5(motion13.table, {
|
|
1152
1171
|
name: "Calendar",
|
|
1153
1172
|
slot: "viewTable"
|
|
1154
1173
|
})(({ theme }) => ({
|
|
@@ -1328,7 +1347,7 @@ var PickerDays = (props) => {
|
|
|
1328
1347
|
const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
|
|
1329
1348
|
const calendarDates = useMemo4(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
|
|
1330
1349
|
const weekdayNames = useMemo4(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
|
|
1331
|
-
return /* @__PURE__ */
|
|
1350
|
+
return /* @__PURE__ */ React12.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ React12.createElement(AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ React12.createElement(
|
|
1332
1351
|
CalendarViewTable,
|
|
1333
1352
|
{
|
|
1334
1353
|
key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
|
|
@@ -1357,10 +1376,10 @@ var PickerDays = (props) => {
|
|
|
1357
1376
|
}
|
|
1358
1377
|
}
|
|
1359
1378
|
},
|
|
1360
|
-
/* @__PURE__ */
|
|
1361
|
-
/* @__PURE__ */
|
|
1362
|
-
(date, i) => date ? /* @__PURE__ */
|
|
1363
|
-
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */
|
|
1379
|
+
/* @__PURE__ */ React12.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ React12.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ React12.createElement("th", null, /* @__PURE__ */ React12.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ React12.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
|
|
1380
|
+
/* @__PURE__ */ React12.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ React12.createElement("tr", null, weekDates.map(
|
|
1381
|
+
(date, i) => date ? /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ React12.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ React12.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ React12.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ React12.createElement("td", null), i < 6 && /* @__PURE__ */ React12.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
|
|
1382
|
+
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ React12.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React12.createElement("td", { colSpan: 13, style: { height: 4 } })))))
|
|
1364
1383
|
)));
|
|
1365
1384
|
};
|
|
1366
1385
|
var PickerMonths = (props) => {
|
|
@@ -1377,7 +1396,7 @@ var PickerMonths = (props) => {
|
|
|
1377
1396
|
[[]]
|
|
1378
1397
|
);
|
|
1379
1398
|
const isMonthPicker = !ownerState.views?.find((view) => view === "day");
|
|
1380
|
-
return /* @__PURE__ */
|
|
1399
|
+
return /* @__PURE__ */ React12.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ React12.createElement(AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ React12.createElement(
|
|
1381
1400
|
CalendarViewTable,
|
|
1382
1401
|
{
|
|
1383
1402
|
key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
|
|
@@ -1406,7 +1425,7 @@ var PickerMonths = (props) => {
|
|
|
1406
1425
|
}
|
|
1407
1426
|
}
|
|
1408
1427
|
},
|
|
1409
|
-
/* @__PURE__ */
|
|
1428
|
+
/* @__PURE__ */ React12.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ React12.createElement(Fragment, { key: months.join("_") }, /* @__PURE__ */ React12.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ React12.createElement(Fragment, { key: monthIndex }, /* @__PURE__ */ React12.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ React12.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ React12.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ React12.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React12.createElement("td", { colSpan: 7, style: { height: 4 } })))))
|
|
1410
1429
|
)));
|
|
1411
1430
|
};
|
|
1412
1431
|
var Calendar = forwardRef4((inProps, ref) => {
|
|
@@ -1428,17 +1447,96 @@ var Calendar = forwardRef4((inProps, ref) => {
|
|
|
1428
1447
|
...others
|
|
1429
1448
|
} = props;
|
|
1430
1449
|
const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
|
|
1431
|
-
|
|
1432
|
-
|
|
1450
|
+
const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = useState4(false);
|
|
1451
|
+
const monthNavClickTimestampsRef = useRef3([]);
|
|
1452
|
+
const monthViewAssistHintShownInSessionRef = useRef3(false);
|
|
1453
|
+
const monthViewAssistHintTimeoutRef = useRef3(null);
|
|
1454
|
+
const hasEndDate = Boolean(value?.[1]);
|
|
1455
|
+
const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
|
|
1456
|
+
const isHintEligible = Boolean(view === "day" && (!rangeSelection || isRangeHintEligible));
|
|
1457
|
+
const monthViewHintMessage = MONTH_VIEW_HINT_MESSAGE;
|
|
1458
|
+
useEffect3(() => {
|
|
1459
|
+
if (!isHintEligible) {
|
|
1460
|
+
monthNavClickTimestampsRef.current = [];
|
|
1461
|
+
setIsMonthViewAssistHintOpen(false);
|
|
1462
|
+
}
|
|
1463
|
+
}, [isHintEligible]);
|
|
1464
|
+
useEffect3(() => {
|
|
1465
|
+
return () => {
|
|
1466
|
+
if (monthViewAssistHintTimeoutRef.current) {
|
|
1467
|
+
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1468
|
+
}
|
|
1469
|
+
};
|
|
1470
|
+
}, []);
|
|
1471
|
+
const closeMonthViewAssistHint = useCallback5(() => {
|
|
1472
|
+
if (monthViewAssistHintTimeoutRef.current) {
|
|
1473
|
+
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1474
|
+
monthViewAssistHintTimeoutRef.current = null;
|
|
1475
|
+
}
|
|
1476
|
+
setIsMonthViewAssistHintOpen(false);
|
|
1477
|
+
}, []);
|
|
1478
|
+
const showMonthViewAssistHint = useCallback5(() => {
|
|
1479
|
+
const now = Date.now();
|
|
1480
|
+
if (monthViewAssistHintShownInSessionRef.current) return;
|
|
1481
|
+
if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
|
|
1482
|
+
monthViewAssistHintShownInSessionRef.current = true;
|
|
1483
|
+
lastMonthViewAssistHintShownAt = now;
|
|
1484
|
+
setIsMonthViewAssistHintOpen(true);
|
|
1485
|
+
if (monthViewAssistHintTimeoutRef.current) {
|
|
1486
|
+
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1487
|
+
}
|
|
1488
|
+
monthViewAssistHintTimeoutRef.current = setTimeout(() => {
|
|
1489
|
+
setIsMonthViewAssistHintOpen(false);
|
|
1490
|
+
monthViewAssistHintTimeoutRef.current = null;
|
|
1491
|
+
}, MONTH_VIEW_HINT_DURATION_MS);
|
|
1492
|
+
}, []);
|
|
1493
|
+
const trackFastMonthNavigation = useCallback5(() => {
|
|
1494
|
+
if (!isHintEligible) return;
|
|
1495
|
+
const now = Date.now();
|
|
1496
|
+
monthNavClickTimestampsRef.current = [
|
|
1497
|
+
...monthNavClickTimestampsRef.current.filter((timestamp) => now - timestamp <= MONTH_NAV_CLICK_WINDOW_MS),
|
|
1498
|
+
now
|
|
1499
|
+
];
|
|
1500
|
+
if (monthNavClickTimestampsRef.current.length >= MONTH_NAV_CLICK_THRESHOLD) {
|
|
1501
|
+
showMonthViewAssistHint();
|
|
1502
|
+
}
|
|
1503
|
+
}, [isHintEligible, showMonthViewAssistHint]);
|
|
1504
|
+
const handlePrevClick = useCallback5(() => {
|
|
1505
|
+
onPrev();
|
|
1506
|
+
trackFastMonthNavigation();
|
|
1507
|
+
}, [onPrev, trackFastMonthNavigation]);
|
|
1508
|
+
const handleNextClick = useCallback5(() => {
|
|
1509
|
+
onNext();
|
|
1510
|
+
trackFastMonthNavigation();
|
|
1511
|
+
}, [onNext, trackFastMonthNavigation]);
|
|
1512
|
+
const handleSwitchViewClick = useCallback5(() => {
|
|
1513
|
+
closeMonthViewAssistHint();
|
|
1514
|
+
onViewChange?.();
|
|
1515
|
+
}, [closeMonthViewAssistHint, onViewChange]);
|
|
1516
|
+
return /* @__PURE__ */ React12.createElement(CalendarRoot, { ref, ...others }, /* @__PURE__ */ React12.createElement(CalendarHeader, null, /* @__PURE__ */ React12.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ React12.createElement(ChevronLeftIcon, null)), /* @__PURE__ */ React12.createElement(
|
|
1517
|
+
Tooltip_default,
|
|
1433
1518
|
{
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1519
|
+
title: monthViewHintMessage,
|
|
1520
|
+
arrow: true,
|
|
1521
|
+
open: isMonthViewAssistHintOpen,
|
|
1522
|
+
placement: "bottom",
|
|
1523
|
+
disableFocusListener: true,
|
|
1524
|
+
disableHoverListener: true,
|
|
1525
|
+
disableTouchListener: true,
|
|
1526
|
+
variant: "solid"
|
|
1439
1527
|
},
|
|
1440
|
-
|
|
1441
|
-
|
|
1528
|
+
/* @__PURE__ */ React12.createElement(
|
|
1529
|
+
CalendarSwitchViewButton,
|
|
1530
|
+
{
|
|
1531
|
+
ownerState,
|
|
1532
|
+
variant: "plain",
|
|
1533
|
+
color: "neutral",
|
|
1534
|
+
onClick: handleSwitchViewClick,
|
|
1535
|
+
"aria-label": "Switch Calendar View"
|
|
1536
|
+
},
|
|
1537
|
+
calendarTitle
|
|
1538
|
+
)
|
|
1539
|
+
), /* @__PURE__ */ React12.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ React12.createElement(ChevronRightIcon, null))), view === "day" && /* @__PURE__ */ React12.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ React12.createElement(PickerMonths, { ownerState }));
|
|
1442
1540
|
});
|
|
1443
1541
|
Calendar.displayName = "Calendar";
|
|
1444
1542
|
|
|
@@ -1453,30 +1551,30 @@ import {
|
|
|
1453
1551
|
CardActions as JoyCardActions,
|
|
1454
1552
|
CardOverflow as JoyCardOverflow
|
|
1455
1553
|
} from "@mui/joy";
|
|
1456
|
-
import { motion as
|
|
1457
|
-
var MotionCard =
|
|
1554
|
+
import { motion as motion14 } from "framer-motion";
|
|
1555
|
+
var MotionCard = motion14(JoyCard);
|
|
1458
1556
|
var Card = MotionCard;
|
|
1459
1557
|
Card.displayName = "Card";
|
|
1460
|
-
var MotionCardContent =
|
|
1558
|
+
var MotionCardContent = motion14(JoyCardContent);
|
|
1461
1559
|
var CardContent = MotionCardContent;
|
|
1462
1560
|
CardContent.displayName = "CardContent";
|
|
1463
|
-
var MotionCardCover =
|
|
1561
|
+
var MotionCardCover = motion14(JoyCardCover);
|
|
1464
1562
|
var CardCover = MotionCardCover;
|
|
1465
1563
|
CardCover.displayName = "CardCover";
|
|
1466
|
-
var MotionCardActions =
|
|
1564
|
+
var MotionCardActions = motion14(JoyCardActions);
|
|
1467
1565
|
var CardActions = MotionCardActions;
|
|
1468
1566
|
CardActions.displayName = "CardActions";
|
|
1469
|
-
var MotionCardOverflow =
|
|
1567
|
+
var MotionCardOverflow = motion14(JoyCardOverflow);
|
|
1470
1568
|
var CardOverflow = MotionCardOverflow;
|
|
1471
1569
|
CardOverflow.displayName = "CardOverflow";
|
|
1472
1570
|
|
|
1473
1571
|
// src/components/Checkbox/Checkbox.tsx
|
|
1474
|
-
import
|
|
1572
|
+
import React13 from "react";
|
|
1475
1573
|
import { Checkbox as JoyCheckbox } from "@mui/joy";
|
|
1476
|
-
import { motion as
|
|
1477
|
-
var MotionCheckbox =
|
|
1574
|
+
import { motion as motion15 } from "framer-motion";
|
|
1575
|
+
var MotionCheckbox = motion15(JoyCheckbox);
|
|
1478
1576
|
var Checkbox = (props) => {
|
|
1479
|
-
return /* @__PURE__ */
|
|
1577
|
+
return /* @__PURE__ */ React13.createElement(MotionCheckbox, { ...props });
|
|
1480
1578
|
};
|
|
1481
1579
|
Checkbox.displayName = "Checkbox";
|
|
1482
1580
|
|
|
@@ -1485,7 +1583,7 @@ var Checkbox_default = Checkbox;
|
|
|
1485
1583
|
|
|
1486
1584
|
// src/components/Container/Container.tsx
|
|
1487
1585
|
import { styled as styled6 } from "@mui/joy";
|
|
1488
|
-
import
|
|
1586
|
+
import React14, { forwardRef as forwardRef5 } from "react";
|
|
1489
1587
|
var ContainerRoot = styled6("div", {
|
|
1490
1588
|
name: "Container",
|
|
1491
1589
|
slot: "root",
|
|
@@ -1512,24 +1610,24 @@ var ContainerRoot = styled6("div", {
|
|
|
1512
1610
|
} : null
|
|
1513
1611
|
]);
|
|
1514
1612
|
var Container = forwardRef5(function Container2(props, ref) {
|
|
1515
|
-
return /* @__PURE__ */
|
|
1613
|
+
return /* @__PURE__ */ React14.createElement(ContainerRoot, { ref, ...props });
|
|
1516
1614
|
});
|
|
1517
1615
|
Container.displayName = "Container";
|
|
1518
1616
|
|
|
1519
1617
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
1520
|
-
import
|
|
1618
|
+
import React16, { useCallback as useCallback7, useMemo as useMemo5, useState as useState6 } from "react";
|
|
1521
1619
|
import { IntlMessageFormat as IntlMessageFormat2 } from "intl-messageformat";
|
|
1522
1620
|
import { NumericFormat } from "react-number-format";
|
|
1523
1621
|
|
|
1524
1622
|
// src/components/Input/Input.tsx
|
|
1525
|
-
import
|
|
1623
|
+
import React15, { useCallback as useCallback6, useState as useState5 } from "react";
|
|
1526
1624
|
import { Input as JoyInput } from "@mui/joy";
|
|
1527
|
-
import { motion as
|
|
1625
|
+
import { motion as motion16 } from "framer-motion";
|
|
1528
1626
|
import ClearIcon from "@mui/icons-material/Close";
|
|
1529
1627
|
import VisibilityIcon from "@mui/icons-material/Visibility";
|
|
1530
1628
|
import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
|
|
1531
|
-
var MotionInput =
|
|
1532
|
-
var Input =
|
|
1629
|
+
var MotionInput = motion16(JoyInput);
|
|
1630
|
+
var Input = React15.forwardRef((props, ref) => {
|
|
1533
1631
|
const {
|
|
1534
1632
|
label,
|
|
1535
1633
|
helperText,
|
|
@@ -1552,11 +1650,11 @@ var Input = React14.forwardRef((props, ref) => {
|
|
|
1552
1650
|
if (type === "password" && innerProps.endDecorator) {
|
|
1553
1651
|
console.warn('Input: endDecorator is not supported when type="password"');
|
|
1554
1652
|
}
|
|
1555
|
-
const [passwordVisible, setPasswordVisible] =
|
|
1653
|
+
const [passwordVisible, setPasswordVisible] = useState5(false);
|
|
1556
1654
|
const [value, setValue] = useControlledState(
|
|
1557
1655
|
props.value,
|
|
1558
1656
|
props.defaultValue,
|
|
1559
|
-
|
|
1657
|
+
useCallback6(
|
|
1560
1658
|
(value2) => {
|
|
1561
1659
|
onChange?.({
|
|
1562
1660
|
/**
|
|
@@ -1582,7 +1680,7 @@ var Input = React14.forwardRef((props, ref) => {
|
|
|
1582
1680
|
const actualType = type === "password" && passwordVisible ? "text" : type;
|
|
1583
1681
|
const isPasswordType = type === "password";
|
|
1584
1682
|
const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
|
|
1585
|
-
const input = /* @__PURE__ */
|
|
1683
|
+
const input = /* @__PURE__ */ React15.createElement(
|
|
1586
1684
|
MotionInput,
|
|
1587
1685
|
{
|
|
1588
1686
|
value,
|
|
@@ -1597,7 +1695,7 @@ var Input = React14.forwardRef((props, ref) => {
|
|
|
1597
1695
|
...innerProps.slotProps
|
|
1598
1696
|
},
|
|
1599
1697
|
...innerProps,
|
|
1600
|
-
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */
|
|
1698
|
+
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ React15.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ React15.createElement(
|
|
1601
1699
|
IconButton_default,
|
|
1602
1700
|
{
|
|
1603
1701
|
onMouseDown: (e) => e.preventDefault(),
|
|
@@ -1605,19 +1703,19 @@ var Input = React14.forwardRef((props, ref) => {
|
|
|
1605
1703
|
disabled,
|
|
1606
1704
|
"aria-label": passwordVisible ? "Hide password" : "Show password"
|
|
1607
1705
|
},
|
|
1608
|
-
passwordVisible ? /* @__PURE__ */
|
|
1609
|
-
)) : null : enableClearable ? /* @__PURE__ */
|
|
1706
|
+
passwordVisible ? /* @__PURE__ */ React15.createElement(VisibilityOffIcon, null) : /* @__PURE__ */ React15.createElement(VisibilityIcon, null)
|
|
1707
|
+
)) : null : enableClearable ? /* @__PURE__ */ React15.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ React15.createElement(
|
|
1610
1708
|
IconButton_default,
|
|
1611
1709
|
{
|
|
1612
1710
|
onMouseDown: (e) => e.preventDefault(),
|
|
1613
1711
|
onClick: handleClear,
|
|
1614
1712
|
"aria-label": "Clear"
|
|
1615
1713
|
},
|
|
1616
|
-
/* @__PURE__ */
|
|
1714
|
+
/* @__PURE__ */ React15.createElement(ClearIcon, null)
|
|
1617
1715
|
)) : innerProps.endDecorator
|
|
1618
1716
|
}
|
|
1619
1717
|
);
|
|
1620
|
-
return /* @__PURE__ */
|
|
1718
|
+
return /* @__PURE__ */ React15.createElement(
|
|
1621
1719
|
FormControl_default,
|
|
1622
1720
|
{
|
|
1623
1721
|
required,
|
|
@@ -1628,9 +1726,9 @@ var Input = React14.forwardRef((props, ref) => {
|
|
|
1628
1726
|
sx,
|
|
1629
1727
|
className
|
|
1630
1728
|
},
|
|
1631
|
-
label && /* @__PURE__ */
|
|
1729
|
+
label && /* @__PURE__ */ React15.createElement(FormLabel_default, null, label),
|
|
1632
1730
|
input,
|
|
1633
|
-
helperText && /* @__PURE__ */
|
|
1731
|
+
helperText && /* @__PURE__ */ React15.createElement(FormHelperText_default, null, helperText)
|
|
1634
1732
|
);
|
|
1635
1733
|
});
|
|
1636
1734
|
Input.displayName = "Input";
|
|
@@ -1802,9 +1900,9 @@ var useCurrencySetting = (props) => {
|
|
|
1802
1900
|
};
|
|
1803
1901
|
|
|
1804
1902
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
1805
|
-
var TextMaskAdapter =
|
|
1903
|
+
var TextMaskAdapter = React16.forwardRef(function TextMaskAdapter2(props, ref) {
|
|
1806
1904
|
const { onChange, ...innerProps } = props;
|
|
1807
|
-
return /* @__PURE__ */
|
|
1905
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1808
1906
|
NumericFormat,
|
|
1809
1907
|
{
|
|
1810
1908
|
...innerProps,
|
|
@@ -1824,7 +1922,7 @@ var CurrencyInputRoot = styled7(Input_default, {
|
|
|
1824
1922
|
slot: "root",
|
|
1825
1923
|
overridesResolver: (props, styles) => styles.root
|
|
1826
1924
|
})({});
|
|
1827
|
-
var CurrencyInput =
|
|
1925
|
+
var CurrencyInput = React16.forwardRef(function CurrencyInput2(inProps, ref) {
|
|
1828
1926
|
const props = useThemeProps3({ props: inProps, name: "CurrencyInput" });
|
|
1829
1927
|
const {
|
|
1830
1928
|
currency = "USD",
|
|
@@ -1845,7 +1943,7 @@ var CurrencyInput = React15.forwardRef(function CurrencyInput2(inProps, ref) {
|
|
|
1845
1943
|
const [_value, setValue] = useControlledState(
|
|
1846
1944
|
props.value,
|
|
1847
1945
|
props.defaultValue,
|
|
1848
|
-
|
|
1946
|
+
useCallback7((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
1849
1947
|
);
|
|
1850
1948
|
const value = useMemo5(() => {
|
|
1851
1949
|
if (_value && useMinorUnit) {
|
|
@@ -1859,8 +1957,8 @@ var CurrencyInput = React15.forwardRef(function CurrencyInput2(inProps, ref) {
|
|
|
1859
1957
|
}
|
|
1860
1958
|
return props.max;
|
|
1861
1959
|
}, [props.max, useMinorUnit, decimalScale]);
|
|
1862
|
-
const [isOverLimit, setIsOverLimit] =
|
|
1863
|
-
const handleChange =
|
|
1960
|
+
const [isOverLimit, setIsOverLimit] = useState6(!!max && !!value && value > max);
|
|
1961
|
+
const handleChange = useCallback7(
|
|
1864
1962
|
(event) => {
|
|
1865
1963
|
if (event.target.value === "") {
|
|
1866
1964
|
setValue(void 0);
|
|
@@ -1876,7 +1974,7 @@ var CurrencyInput = React15.forwardRef(function CurrencyInput2(inProps, ref) {
|
|
|
1876
1974
|
},
|
|
1877
1975
|
[decimalSeparator, max, useMinorUnit, setValue]
|
|
1878
1976
|
);
|
|
1879
|
-
return /* @__PURE__ */
|
|
1977
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1880
1978
|
CurrencyInputRoot,
|
|
1881
1979
|
{
|
|
1882
1980
|
...innerProps,
|
|
@@ -1916,9 +2014,9 @@ var CurrencyInput_default = CurrencyInput;
|
|
|
1916
2014
|
|
|
1917
2015
|
// src/components/DataTable/DataTable.tsx
|
|
1918
2016
|
import React25, {
|
|
1919
|
-
useCallback as
|
|
2017
|
+
useCallback as useCallback12,
|
|
1920
2018
|
useMemo as useMemo10,
|
|
1921
|
-
useRef as
|
|
2019
|
+
useRef as useRef7,
|
|
1922
2020
|
useId,
|
|
1923
2021
|
forwardRef as forwardRef7,
|
|
1924
2022
|
useImperativeHandle as useImperativeHandle2,
|
|
@@ -2046,9 +2144,9 @@ function getTextAlign(props) {
|
|
|
2046
2144
|
var numberFormatter = (value) => "Intl" in window ? new Intl.NumberFormat().format(value) : value;
|
|
2047
2145
|
|
|
2048
2146
|
// src/components/DataTable/styled.tsx
|
|
2049
|
-
import
|
|
2147
|
+
import React17 from "react";
|
|
2050
2148
|
import { styled as styled8, LinearProgress, buttonClasses, iconButtonClasses } from "@mui/joy";
|
|
2051
|
-
import { motion as
|
|
2149
|
+
import { motion as motion17 } from "framer-motion";
|
|
2052
2150
|
import SortIcon from "@mui/icons-material/ArrowUpwardRounded";
|
|
2053
2151
|
var EllipsisDiv = styled8("div", {
|
|
2054
2152
|
name: "DataTable",
|
|
@@ -2122,7 +2220,7 @@ var Asterisk = styled8("span", {
|
|
|
2122
2220
|
color: "var(--ceed-palette-danger-500)",
|
|
2123
2221
|
marginLeft: theme.spacing(0.5)
|
|
2124
2222
|
}));
|
|
2125
|
-
var StyledTh = styled8(
|
|
2223
|
+
var StyledTh = styled8(motion17.th)(({ theme }) => ({
|
|
2126
2224
|
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2127
2225
|
}));
|
|
2128
2226
|
var StyledTd = styled8("td")(({ theme }) => ({
|
|
@@ -2141,9 +2239,9 @@ var StyledTd = styled8("td")(({ theme }) => ({
|
|
|
2141
2239
|
}
|
|
2142
2240
|
}
|
|
2143
2241
|
}));
|
|
2144
|
-
var MotionSortIcon =
|
|
2145
|
-
var DefaultLoadingOverlay = () => /* @__PURE__ */
|
|
2146
|
-
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */
|
|
2242
|
+
var MotionSortIcon = motion17(SortIcon);
|
|
2243
|
+
var DefaultLoadingOverlay = () => /* @__PURE__ */ React17.createElement(LinearProgress, { value: 8, variant: "plain" });
|
|
2244
|
+
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React17.createElement(
|
|
2147
2245
|
Box_default,
|
|
2148
2246
|
{
|
|
2149
2247
|
sx: {
|
|
@@ -2176,12 +2274,12 @@ var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ React16.createElement(
|
|
|
2176
2274
|
|
|
2177
2275
|
// src/components/DataTable/components.tsx
|
|
2178
2276
|
import React22, {
|
|
2179
|
-
useRef as
|
|
2180
|
-
useState as
|
|
2277
|
+
useRef as useRef5,
|
|
2278
|
+
useState as useState8,
|
|
2181
2279
|
useLayoutEffect,
|
|
2182
2280
|
useMemo as useMemo8,
|
|
2183
|
-
useCallback as
|
|
2184
|
-
useEffect as
|
|
2281
|
+
useCallback as useCallback9,
|
|
2282
|
+
useEffect as useEffect5,
|
|
2185
2283
|
memo,
|
|
2186
2284
|
createElement
|
|
2187
2285
|
} from "react";
|
|
@@ -2189,7 +2287,7 @@ import { styled as styled12, useTheme } from "@mui/joy";
|
|
|
2189
2287
|
import { AnimatePresence as AnimatePresence2 } from "framer-motion";
|
|
2190
2288
|
|
|
2191
2289
|
// src/components/DatePicker/DatePicker.tsx
|
|
2192
|
-
import
|
|
2290
|
+
import React18, { forwardRef as forwardRef6, useCallback as useCallback8, useEffect as useEffect4, useImperativeHandle, useRef as useRef4, useState as useState7 } from "react";
|
|
2193
2291
|
import { IMaskInput, IMask } from "react-imask";
|
|
2194
2292
|
import CalendarTodayIcon from "@mui/icons-material/CalendarToday";
|
|
2195
2293
|
import { styled as styled10, useThemeProps as useThemeProps4 } from "@mui/joy";
|
|
@@ -2204,8 +2302,8 @@ var Sheet_default = Sheet;
|
|
|
2204
2302
|
|
|
2205
2303
|
// src/components/DialogActions/DialogActions.tsx
|
|
2206
2304
|
import { DialogActions as JoyDialogActions, styled as styled9 } from "@mui/joy";
|
|
2207
|
-
import { motion as
|
|
2208
|
-
var MotionDialogActions =
|
|
2305
|
+
import { motion as motion18 } from "framer-motion";
|
|
2306
|
+
var MotionDialogActions = motion18(JoyDialogActions);
|
|
2209
2307
|
var StyledDialogActions = styled9(MotionDialogActions)(({ theme }) => ({
|
|
2210
2308
|
padding: theme.spacing(2),
|
|
2211
2309
|
gap: theme.spacing(2),
|
|
@@ -2301,9 +2399,9 @@ function parseDate(dateString, format) {
|
|
|
2301
2399
|
var formatToPattern = (format) => {
|
|
2302
2400
|
return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
2303
2401
|
};
|
|
2304
|
-
var TextMaskAdapter3 =
|
|
2402
|
+
var TextMaskAdapter3 = React18.forwardRef(function TextMaskAdapter4(props, ref) {
|
|
2305
2403
|
const { onChange, format, ...other } = props;
|
|
2306
|
-
return /* @__PURE__ */
|
|
2404
|
+
return /* @__PURE__ */ React18.createElement(
|
|
2307
2405
|
IMaskInput,
|
|
2308
2406
|
{
|
|
2309
2407
|
...other,
|
|
@@ -2363,24 +2461,24 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2363
2461
|
shouldDisableDate,
|
|
2364
2462
|
...innerProps
|
|
2365
2463
|
} = props;
|
|
2366
|
-
const innerRef =
|
|
2367
|
-
const buttonRef =
|
|
2464
|
+
const innerRef = useRef4(null);
|
|
2465
|
+
const buttonRef = useRef4(null);
|
|
2368
2466
|
const [value, setValue] = useControlledState(
|
|
2369
2467
|
props.value,
|
|
2370
2468
|
props.defaultValue || "",
|
|
2371
|
-
|
|
2469
|
+
useCallback8((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
2372
2470
|
);
|
|
2373
|
-
const [displayValue, setDisplayValue] =
|
|
2471
|
+
const [displayValue, setDisplayValue] = useState7(
|
|
2374
2472
|
() => value ? formatValueString(parseDate(value, format), displayFormat) : ""
|
|
2375
2473
|
);
|
|
2376
|
-
const [anchorEl, setAnchorEl] =
|
|
2474
|
+
const [anchorEl, setAnchorEl] = useState7(null);
|
|
2377
2475
|
const open = Boolean(anchorEl);
|
|
2378
|
-
|
|
2476
|
+
useEffect4(() => {
|
|
2379
2477
|
if (!anchorEl) {
|
|
2380
2478
|
innerRef.current?.blur();
|
|
2381
2479
|
}
|
|
2382
2480
|
}, [anchorEl, innerRef]);
|
|
2383
|
-
|
|
2481
|
+
useEffect4(() => {
|
|
2384
2482
|
if (value === "") {
|
|
2385
2483
|
setDisplayValue("");
|
|
2386
2484
|
return;
|
|
@@ -2391,7 +2489,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2391
2489
|
}
|
|
2392
2490
|
}, [displayFormat, displayValue, format, value]);
|
|
2393
2491
|
useImperativeHandle(ref, () => innerRef.current, [innerRef]);
|
|
2394
|
-
const handleChange =
|
|
2492
|
+
const handleChange = useCallback8(
|
|
2395
2493
|
(event) => {
|
|
2396
2494
|
const value2 = event.target.value;
|
|
2397
2495
|
setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat) : value2);
|
|
@@ -2399,7 +2497,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2399
2497
|
},
|
|
2400
2498
|
[displayFormat, format, setValue]
|
|
2401
2499
|
);
|
|
2402
|
-
const handleDisplayInputChange =
|
|
2500
|
+
const handleDisplayInputChange = useCallback8(
|
|
2403
2501
|
(event) => {
|
|
2404
2502
|
if (event.target.value === "") {
|
|
2405
2503
|
handleChange({
|
|
@@ -2424,7 +2522,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2424
2522
|
},
|
|
2425
2523
|
[displayFormat, format, handleChange, props.name]
|
|
2426
2524
|
);
|
|
2427
|
-
const handleCalendarToggle =
|
|
2525
|
+
const handleCalendarToggle = useCallback8(
|
|
2428
2526
|
(event) => {
|
|
2429
2527
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
2430
2528
|
setTimeout(() => {
|
|
@@ -2433,7 +2531,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2433
2531
|
},
|
|
2434
2532
|
[anchorEl, setAnchorEl, innerRef]
|
|
2435
2533
|
);
|
|
2436
|
-
const handleInputMouseDown =
|
|
2534
|
+
const handleInputMouseDown = useCallback8(
|
|
2437
2535
|
(event) => {
|
|
2438
2536
|
if (inputReadOnly) {
|
|
2439
2537
|
event.preventDefault();
|
|
@@ -2442,7 +2540,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2442
2540
|
},
|
|
2443
2541
|
[inputReadOnly, buttonRef]
|
|
2444
2542
|
);
|
|
2445
|
-
return /* @__PURE__ */
|
|
2543
|
+
return /* @__PURE__ */ React18.createElement(DatePickerRoot, null, /* @__PURE__ */ React18.createElement(FocusTrap, { open: true }, /* @__PURE__ */ React18.createElement(React18.Fragment, null, /* @__PURE__ */ React18.createElement(
|
|
2446
2544
|
Input_default,
|
|
2447
2545
|
{
|
|
2448
2546
|
...innerProps,
|
|
@@ -2470,7 +2568,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2470
2568
|
},
|
|
2471
2569
|
className,
|
|
2472
2570
|
sx,
|
|
2473
|
-
endDecorator: /* @__PURE__ */
|
|
2571
|
+
endDecorator: /* @__PURE__ */ React18.createElement(
|
|
2474
2572
|
CalendarButton,
|
|
2475
2573
|
{
|
|
2476
2574
|
ref: buttonRef,
|
|
@@ -2482,13 +2580,13 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2482
2580
|
"aria-expanded": open,
|
|
2483
2581
|
disabled
|
|
2484
2582
|
},
|
|
2485
|
-
/* @__PURE__ */
|
|
2583
|
+
/* @__PURE__ */ React18.createElement(CalendarTodayIcon, null)
|
|
2486
2584
|
),
|
|
2487
2585
|
label,
|
|
2488
2586
|
helperText,
|
|
2489
2587
|
readOnly: readOnly || inputReadOnly
|
|
2490
2588
|
}
|
|
2491
|
-
), open && /* @__PURE__ */
|
|
2589
|
+
), open && /* @__PURE__ */ React18.createElement(ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React18.createElement(
|
|
2492
2590
|
StyledPopper,
|
|
2493
2591
|
{
|
|
2494
2592
|
id: "date-picker-popper",
|
|
@@ -2507,7 +2605,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2507
2605
|
"aria-label": "Calendar Tooltip",
|
|
2508
2606
|
"aria-expanded": open
|
|
2509
2607
|
},
|
|
2510
|
-
/* @__PURE__ */
|
|
2608
|
+
/* @__PURE__ */ React18.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React18.createElement(
|
|
2511
2609
|
Calendar_default,
|
|
2512
2610
|
{
|
|
2513
2611
|
value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
|
|
@@ -2526,14 +2624,14 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2526
2624
|
disablePast,
|
|
2527
2625
|
shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0
|
|
2528
2626
|
}
|
|
2529
|
-
), !hideClearButton && /* @__PURE__ */
|
|
2627
|
+
), !hideClearButton && /* @__PURE__ */ React18.createElement(
|
|
2530
2628
|
DialogActions_default,
|
|
2531
2629
|
{
|
|
2532
2630
|
sx: {
|
|
2533
2631
|
p: 1
|
|
2534
2632
|
}
|
|
2535
2633
|
},
|
|
2536
|
-
/* @__PURE__ */
|
|
2634
|
+
/* @__PURE__ */ React18.createElement(
|
|
2537
2635
|
Button_default,
|
|
2538
2636
|
{
|
|
2539
2637
|
size,
|
|
@@ -2559,10 +2657,10 @@ var DatePicker = forwardRef6((inProps, ref) => {
|
|
|
2559
2657
|
var DatePicker_default = DatePicker;
|
|
2560
2658
|
|
|
2561
2659
|
// src/components/Textarea/Textarea.tsx
|
|
2562
|
-
import
|
|
2660
|
+
import React19 from "react";
|
|
2563
2661
|
import { Textarea as JoyTextarea } from "@mui/joy";
|
|
2564
|
-
import { motion as
|
|
2565
|
-
var MotionTextarea =
|
|
2662
|
+
import { motion as motion19 } from "framer-motion";
|
|
2663
|
+
var MotionTextarea = motion19(JoyTextarea);
|
|
2566
2664
|
var Textarea = (props) => {
|
|
2567
2665
|
const {
|
|
2568
2666
|
label,
|
|
@@ -2579,7 +2677,7 @@ var Textarea = (props) => {
|
|
|
2579
2677
|
className,
|
|
2580
2678
|
...innerProps
|
|
2581
2679
|
} = props;
|
|
2582
|
-
const textarea = /* @__PURE__ */
|
|
2680
|
+
const textarea = /* @__PURE__ */ React19.createElement(
|
|
2583
2681
|
MotionTextarea,
|
|
2584
2682
|
{
|
|
2585
2683
|
required,
|
|
@@ -2591,7 +2689,7 @@ var Textarea = (props) => {
|
|
|
2591
2689
|
...innerProps
|
|
2592
2690
|
}
|
|
2593
2691
|
);
|
|
2594
|
-
return /* @__PURE__ */
|
|
2692
|
+
return /* @__PURE__ */ React19.createElement(
|
|
2595
2693
|
FormControl_default,
|
|
2596
2694
|
{
|
|
2597
2695
|
required,
|
|
@@ -2602,9 +2700,9 @@ var Textarea = (props) => {
|
|
|
2602
2700
|
sx,
|
|
2603
2701
|
className
|
|
2604
2702
|
},
|
|
2605
|
-
label && /* @__PURE__ */
|
|
2703
|
+
label && /* @__PURE__ */ React19.createElement(FormLabel_default, null, label),
|
|
2606
2704
|
textarea,
|
|
2607
|
-
helperText && /* @__PURE__ */
|
|
2705
|
+
helperText && /* @__PURE__ */ React19.createElement(FormHelperText_default, null, helperText)
|
|
2608
2706
|
);
|
|
2609
2707
|
};
|
|
2610
2708
|
Textarea.displayName = "Textarea";
|
|
@@ -2613,10 +2711,10 @@ Textarea.displayName = "Textarea";
|
|
|
2613
2711
|
var Textarea_default = Textarea;
|
|
2614
2712
|
|
|
2615
2713
|
// src/components/Select/Select.tsx
|
|
2616
|
-
import
|
|
2714
|
+
import React20, { useMemo as useMemo7 } from "react";
|
|
2617
2715
|
import { Select as JoySelect, Option as JoyOption, ListItemContent as ListItemContent2, Typography as Typography3 } from "@mui/joy";
|
|
2618
|
-
import { motion as
|
|
2619
|
-
var MotionOption =
|
|
2716
|
+
import { motion as motion20 } from "framer-motion";
|
|
2717
|
+
var MotionOption = motion20(JoyOption);
|
|
2620
2718
|
var Option = MotionOption;
|
|
2621
2719
|
var secondaryTextLevelMap2 = {
|
|
2622
2720
|
sm: "body-xs",
|
|
@@ -2671,7 +2769,7 @@ function Select(props) {
|
|
|
2671
2769
|
});
|
|
2672
2770
|
return map;
|
|
2673
2771
|
}, [options]);
|
|
2674
|
-
const select = /* @__PURE__ */
|
|
2772
|
+
const select = /* @__PURE__ */ React20.createElement(
|
|
2675
2773
|
JoySelect,
|
|
2676
2774
|
{
|
|
2677
2775
|
...innerProps,
|
|
@@ -2688,9 +2786,9 @@ function Select(props) {
|
|
|
2688
2786
|
return optionMap.get(selected.value)?.label;
|
|
2689
2787
|
}
|
|
2690
2788
|
},
|
|
2691
|
-
options.map((option) => /* @__PURE__ */
|
|
2789
|
+
options.map((option) => /* @__PURE__ */ React20.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ React20.createElement(ListItemContent2, { sx: { gap: 0.5 } }, /* @__PURE__ */ React20.createElement(Typography3, { level: "inherit" }, option.label), /* @__PURE__ */ React20.createElement(Typography3, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
|
|
2692
2790
|
);
|
|
2693
|
-
return /* @__PURE__ */
|
|
2791
|
+
return /* @__PURE__ */ React20.createElement(
|
|
2694
2792
|
FormControl_default,
|
|
2695
2793
|
{
|
|
2696
2794
|
required,
|
|
@@ -2701,9 +2799,9 @@ function Select(props) {
|
|
|
2701
2799
|
sx,
|
|
2702
2800
|
className
|
|
2703
2801
|
},
|
|
2704
|
-
label && /* @__PURE__ */
|
|
2802
|
+
label && /* @__PURE__ */ React20.createElement(FormLabel_default, null, label),
|
|
2705
2803
|
select,
|
|
2706
|
-
helperText && /* @__PURE__ */
|
|
2804
|
+
helperText && /* @__PURE__ */ React20.createElement(FormHelperText_default, null, helperText)
|
|
2707
2805
|
);
|
|
2708
2806
|
}
|
|
2709
2807
|
Select.displayName = "Select";
|
|
@@ -2714,19 +2812,6 @@ var Select_default = Select;
|
|
|
2714
2812
|
// src/components/DataTable/components.tsx
|
|
2715
2813
|
import { Link } from "@mui/joy";
|
|
2716
2814
|
|
|
2717
|
-
// src/components/Tooltip/Tooltip.tsx
|
|
2718
|
-
import React20 from "react";
|
|
2719
|
-
import { Tooltip as JoyTooltip } from "@mui/joy";
|
|
2720
|
-
import { motion as motion20 } from "framer-motion";
|
|
2721
|
-
var MotionTooltip = motion20(JoyTooltip);
|
|
2722
|
-
var Tooltip = (props) => {
|
|
2723
|
-
return /* @__PURE__ */ React20.createElement(MotionTooltip, { ...props });
|
|
2724
|
-
};
|
|
2725
|
-
Tooltip.displayName = "Tooltip";
|
|
2726
|
-
|
|
2727
|
-
// src/components/Tooltip/index.ts
|
|
2728
|
-
var Tooltip_default = Tooltip;
|
|
2729
|
-
|
|
2730
2815
|
// src/components/InfoSign/InfoSign.tsx
|
|
2731
2816
|
import React21 from "react";
|
|
2732
2817
|
import { styled as styled11, tooltipClasses } from "@mui/joy";
|
|
@@ -2762,8 +2847,8 @@ var InfoSign_default = InfoSign;
|
|
|
2762
2847
|
|
|
2763
2848
|
// src/components/DataTable/components.tsx
|
|
2764
2849
|
var TextEllipsis = ({ children }) => {
|
|
2765
|
-
const textRef =
|
|
2766
|
-
const [showTooltip, setShowTooltip] =
|
|
2850
|
+
const textRef = useRef5(null);
|
|
2851
|
+
const [showTooltip, setShowTooltip] = useState8(false);
|
|
2767
2852
|
useLayoutEffect(() => {
|
|
2768
2853
|
const element = textRef.current;
|
|
2769
2854
|
if (element) {
|
|
@@ -2778,8 +2863,8 @@ var TextEllipsis = ({ children }) => {
|
|
|
2778
2863
|
return content;
|
|
2779
2864
|
};
|
|
2780
2865
|
var CellTextEllipsis = ({ children }) => {
|
|
2781
|
-
const textRef =
|
|
2782
|
-
const [showTooltip, setShowTooltip] =
|
|
2866
|
+
const textRef = useRef5(null);
|
|
2867
|
+
const [showTooltip, setShowTooltip] = useState8(false);
|
|
2783
2868
|
useLayoutEffect(() => {
|
|
2784
2869
|
const element = textRef.current;
|
|
2785
2870
|
if (element) {
|
|
@@ -2831,7 +2916,7 @@ var HeadCell = (props) => {
|
|
|
2831
2916
|
const theme = useTheme();
|
|
2832
2917
|
const ref = headerRef;
|
|
2833
2918
|
const colRef = tableColRef;
|
|
2834
|
-
const [isHovered, setIsHovered] =
|
|
2919
|
+
const [isHovered, setIsHovered] = useState8(false);
|
|
2835
2920
|
const sortable = type === "actions" ? false : _sortable;
|
|
2836
2921
|
const headId = useMemo8(
|
|
2837
2922
|
() => `${tableId}_header_${headerName ?? field}`.trim(),
|
|
@@ -2910,7 +2995,7 @@ var HeadCell = (props) => {
|
|
|
2910
2995
|
ref,
|
|
2911
2996
|
key: field,
|
|
2912
2997
|
style,
|
|
2913
|
-
onClick:
|
|
2998
|
+
onClick: useCallback9(
|
|
2914
2999
|
(e) => sortable && onSortChange?.({ field, currentSort: sort, multiple: e.shiftKey }),
|
|
2915
3000
|
[field, onSortChange, sort, sortable]
|
|
2916
3001
|
),
|
|
@@ -2945,8 +3030,8 @@ var BodyCell = (props) => {
|
|
|
2945
3030
|
onCellEditStop
|
|
2946
3031
|
} = props;
|
|
2947
3032
|
const theme = useTheme();
|
|
2948
|
-
const [value, setValue] =
|
|
2949
|
-
const cellRef =
|
|
3033
|
+
const [value, setValue] = useState8(row[field]);
|
|
3034
|
+
const cellRef = useRef5(null);
|
|
2950
3035
|
const params = useMemo8(
|
|
2951
3036
|
() => ({
|
|
2952
3037
|
row,
|
|
@@ -3091,7 +3176,7 @@ var BodyCell = (props) => {
|
|
|
3091
3176
|
() => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
|
|
3092
3177
|
[cellClassName, params]
|
|
3093
3178
|
);
|
|
3094
|
-
|
|
3179
|
+
useEffect5(() => {
|
|
3095
3180
|
setValue(row[field]);
|
|
3096
3181
|
}, [row, field]);
|
|
3097
3182
|
return /* @__PURE__ */ React22.createElement(
|
|
@@ -3161,10 +3246,10 @@ var VirtualizedTableRow = memo(StyledTableRow2, (prevProps, nextProps) => {
|
|
|
3161
3246
|
});
|
|
3162
3247
|
|
|
3163
3248
|
// src/components/DataTable/hooks.ts
|
|
3164
|
-
import { useState as
|
|
3249
|
+
import { useState as useState9, useLayoutEffect as useLayoutEffect2, useRef as useRef6, useMemo as useMemo9, useCallback as useCallback10, useEffect as useEffect6, createRef } from "react";
|
|
3165
3250
|
function useColumnWidths(columnsByField) {
|
|
3166
|
-
const [widths, setWidths] =
|
|
3167
|
-
const roRef =
|
|
3251
|
+
const [widths, setWidths] = useState9({});
|
|
3252
|
+
const roRef = useRef6();
|
|
3168
3253
|
useLayoutEffect2(() => {
|
|
3169
3254
|
if (roRef.current) roRef.current.disconnect();
|
|
3170
3255
|
roRef.current = new ResizeObserver((entries) => {
|
|
@@ -3219,14 +3304,14 @@ function useDataTableRenderer({
|
|
|
3219
3304
|
"You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
|
|
3220
3305
|
);
|
|
3221
3306
|
}
|
|
3222
|
-
const onSelectionModelChangeRef =
|
|
3307
|
+
const onSelectionModelChangeRef = useRef6(onSelectionModelChange);
|
|
3223
3308
|
onSelectionModelChangeRef.current = onSelectionModelChange;
|
|
3224
|
-
const [focusedRowId, setFocusedRowId] =
|
|
3225
|
-
const [selectionAnchor, setSelectionAnchor] =
|
|
3309
|
+
const [focusedRowId, setFocusedRowId] = useState9(null);
|
|
3310
|
+
const [selectionAnchor, setSelectionAnchor] = useState9(null);
|
|
3226
3311
|
const [sortModel, setSortModel] = useControlledState(
|
|
3227
3312
|
controlledSortModel,
|
|
3228
3313
|
initialState?.sorting?.sortModel ?? [],
|
|
3229
|
-
|
|
3314
|
+
useCallback10((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
|
|
3230
3315
|
);
|
|
3231
3316
|
const reorderedColumns = useMemo9(() => {
|
|
3232
3317
|
if (!columnGroupingModel) return columnsProp;
|
|
@@ -3246,7 +3331,7 @@ function useDataTableRenderer({
|
|
|
3246
3331
|
),
|
|
3247
3332
|
[reorderedColumns]
|
|
3248
3333
|
);
|
|
3249
|
-
const sortComparator =
|
|
3334
|
+
const sortComparator = useCallback10(
|
|
3250
3335
|
(rowA, rowB) => {
|
|
3251
3336
|
for (const sort of sortModel) {
|
|
3252
3337
|
const { field, sort: direction } = sort;
|
|
@@ -3282,9 +3367,9 @@ function useDataTableRenderer({
|
|
|
3282
3367
|
() => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
|
|
3283
3368
|
[_sortOrder]
|
|
3284
3369
|
);
|
|
3285
|
-
const [page, setPage] =
|
|
3370
|
+
const [page, setPage] = useState9(paginationModel?.page || 1);
|
|
3286
3371
|
const pageSize = paginationModel?.pageSize || 20;
|
|
3287
|
-
const getId =
|
|
3372
|
+
const getId = useCallback10(
|
|
3288
3373
|
(row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
|
|
3289
3374
|
[_getId, page, pageSize]
|
|
3290
3375
|
);
|
|
@@ -3300,7 +3385,7 @@ function useDataTableRenderer({
|
|
|
3300
3385
|
}),
|
|
3301
3386
|
[dataInPage, isRowSelectable, getId]
|
|
3302
3387
|
);
|
|
3303
|
-
const handleRangeSelection =
|
|
3388
|
+
const handleRangeSelection = useCallback10(
|
|
3304
3389
|
(anchor, targetIndex) => {
|
|
3305
3390
|
const startIndex = Math.min(anchor.rowIndex, targetIndex);
|
|
3306
3391
|
const endIndex = Math.max(anchor.rowIndex, targetIndex);
|
|
@@ -3337,7 +3422,7 @@ function useDataTableRenderer({
|
|
|
3337
3422
|
[_isTotalSelected, selectionModel, selectableRowCount]
|
|
3338
3423
|
);
|
|
3339
3424
|
const columnWidths = useColumnWidths(columnsByField);
|
|
3340
|
-
const getWidth =
|
|
3425
|
+
const getWidth = useCallback10(
|
|
3341
3426
|
(f) => columnWidths[f] ?? columnsByField[f].width ?? // Column prop 으로 지정된 width
|
|
3342
3427
|
columnsByField[f].minWidth ?? 0,
|
|
3343
3428
|
[columnWidths, columnsByField]
|
|
@@ -3379,14 +3464,14 @@ function useDataTableRenderer({
|
|
|
3379
3464
|
sortOrder,
|
|
3380
3465
|
getWidth
|
|
3381
3466
|
]);
|
|
3382
|
-
const handlePageChange =
|
|
3467
|
+
const handlePageChange = useCallback10(
|
|
3383
3468
|
(newPage) => {
|
|
3384
3469
|
setPage(newPage);
|
|
3385
3470
|
onPaginationModelChange?.({ page: newPage, pageSize });
|
|
3386
3471
|
},
|
|
3387
3472
|
[onPaginationModelChange, pageSize]
|
|
3388
3473
|
);
|
|
3389
|
-
const handleSortChange =
|
|
3474
|
+
const handleSortChange = useCallback10(
|
|
3390
3475
|
(props) => {
|
|
3391
3476
|
const { field, currentSort, multiple } = props;
|
|
3392
3477
|
const column = columnsByField[field];
|
|
@@ -3409,23 +3494,23 @@ function useDataTableRenderer({
|
|
|
3409
3494
|
},
|
|
3410
3495
|
[sortOrder, columnsByField, sortModel, setSortModel]
|
|
3411
3496
|
);
|
|
3412
|
-
|
|
3497
|
+
useEffect6(() => {
|
|
3413
3498
|
if (!paginationModel) {
|
|
3414
3499
|
handlePageChange(1);
|
|
3415
3500
|
}
|
|
3416
3501
|
}, [rowCount, handlePageChange, paginationModel]);
|
|
3417
|
-
|
|
3502
|
+
useEffect6(() => {
|
|
3418
3503
|
const lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
|
|
3419
3504
|
if (page > lastPage) {
|
|
3420
3505
|
handlePageChange(lastPage);
|
|
3421
3506
|
}
|
|
3422
3507
|
}, [page, rowCount, pageSize, handlePageChange]);
|
|
3423
|
-
|
|
3508
|
+
useEffect6(() => {
|
|
3424
3509
|
onSelectionModelChangeRef.current?.([]);
|
|
3425
3510
|
setSelectionAnchor(null);
|
|
3426
3511
|
}, [page]);
|
|
3427
|
-
const prevRowsRef =
|
|
3428
|
-
|
|
3512
|
+
const prevRowsRef = useRef6(_rows);
|
|
3513
|
+
useEffect6(() => {
|
|
3429
3514
|
if (prevRowsRef.current !== _rows) {
|
|
3430
3515
|
setSelectionAnchor(null);
|
|
3431
3516
|
prevRowsRef.current = _rows;
|
|
@@ -3444,8 +3529,8 @@ function useDataTableRenderer({
|
|
|
3444
3529
|
handleSortChange,
|
|
3445
3530
|
isAllSelected,
|
|
3446
3531
|
isTotalSelected,
|
|
3447
|
-
isSelectedRow:
|
|
3448
|
-
isRowSelectable:
|
|
3532
|
+
isSelectedRow: useCallback10((model) => selectedModelSet.has(model), [selectedModelSet]),
|
|
3533
|
+
isRowSelectable: useCallback10(
|
|
3449
3534
|
(rowId, row) => {
|
|
3450
3535
|
if (!isRowSelectable) return true;
|
|
3451
3536
|
return isRowSelectable({ row, id: rowId });
|
|
@@ -3453,13 +3538,13 @@ function useDataTableRenderer({
|
|
|
3453
3538
|
[isRowSelectable]
|
|
3454
3539
|
),
|
|
3455
3540
|
focusedRowId,
|
|
3456
|
-
onRowFocus:
|
|
3541
|
+
onRowFocus: useCallback10((rowId) => {
|
|
3457
3542
|
setFocusedRowId(rowId);
|
|
3458
3543
|
}, []),
|
|
3459
|
-
onAllCheckboxChange:
|
|
3544
|
+
onAllCheckboxChange: useCallback10(() => {
|
|
3460
3545
|
onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
|
|
3461
3546
|
}, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
|
|
3462
|
-
onCheckboxChange:
|
|
3547
|
+
onCheckboxChange: useCallback10(
|
|
3463
3548
|
(event, selectedModel) => {
|
|
3464
3549
|
const isShiftClick = "shiftKey" in event && event.shiftKey;
|
|
3465
3550
|
const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
|
|
@@ -3492,7 +3577,7 @@ function useDataTableRenderer({
|
|
|
3492
3577
|
),
|
|
3493
3578
|
columns,
|
|
3494
3579
|
processedColumnGroups,
|
|
3495
|
-
onTotalSelect:
|
|
3580
|
+
onTotalSelect: useCallback10(() => {
|
|
3496
3581
|
const selectableRows = rows.filter((row, i) => {
|
|
3497
3582
|
if (!isRowSelectable) return true;
|
|
3498
3583
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
@@ -3577,7 +3662,7 @@ function TableBody(props) {
|
|
|
3577
3662
|
TableBody.displayName = "TableBody";
|
|
3578
3663
|
|
|
3579
3664
|
// src/components/Pagination/Pagination.tsx
|
|
3580
|
-
import React24, { useCallback as
|
|
3665
|
+
import React24, { useCallback as useCallback11, useEffect as useEffect7 } from "react";
|
|
3581
3666
|
import PreviousIcon from "@mui/icons-material/ChevronLeftRounded";
|
|
3582
3667
|
import NextIcon from "@mui/icons-material/ChevronRightRounded";
|
|
3583
3668
|
import FirstPageIcon from "@mui/icons-material/FirstPageRounded";
|
|
@@ -3646,7 +3731,7 @@ function Pagination(props) {
|
|
|
3646
3731
|
const [paginationModel, setPaginationModel] = useControlledState(
|
|
3647
3732
|
_paginationModel,
|
|
3648
3733
|
defaultPaginationModel,
|
|
3649
|
-
|
|
3734
|
+
useCallback11(
|
|
3650
3735
|
(newPage) => {
|
|
3651
3736
|
onPageChange(newPage.page);
|
|
3652
3737
|
},
|
|
@@ -3662,7 +3747,7 @@ function Pagination(props) {
|
|
|
3662
3747
|
const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
|
|
3663
3748
|
const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
|
|
3664
3749
|
const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
|
|
3665
|
-
|
|
3750
|
+
useEffect7(() => {
|
|
3666
3751
|
if (paginationModel.page > lastPage) {
|
|
3667
3752
|
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
3668
3753
|
}
|
|
@@ -3845,8 +3930,8 @@ function Component(props, apiRef) {
|
|
|
3845
3930
|
...innerProps
|
|
3846
3931
|
} = props;
|
|
3847
3932
|
const tableId = useId();
|
|
3848
|
-
const parentRef =
|
|
3849
|
-
const tableBodyRef =
|
|
3933
|
+
const parentRef = useRef7(null);
|
|
3934
|
+
const tableBodyRef = useRef7(null);
|
|
3850
3935
|
const {
|
|
3851
3936
|
columns,
|
|
3852
3937
|
processedColumnGroups,
|
|
@@ -3883,20 +3968,20 @@ function Component(props, apiRef) {
|
|
|
3883
3968
|
const paginationModel = useMemo10(() => ({ page, pageSize }), [page, pageSize]);
|
|
3884
3969
|
const totalSize = virtualizer.getTotalSize();
|
|
3885
3970
|
const virtualizedItems = virtualizer.getVirtualItems();
|
|
3886
|
-
const getRowClickHandler =
|
|
3971
|
+
const getRowClickHandler = useCallback12(
|
|
3887
3972
|
(row, rowId) => (e) => {
|
|
3888
3973
|
onRowClick?.({ row, rowId }, e);
|
|
3889
3974
|
checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
|
|
3890
3975
|
},
|
|
3891
3976
|
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
|
|
3892
3977
|
);
|
|
3893
|
-
const getRowFocusHandler =
|
|
3978
|
+
const getRowFocusHandler = useCallback12(
|
|
3894
3979
|
(rowId) => () => {
|
|
3895
3980
|
onRowFocus(rowId);
|
|
3896
3981
|
},
|
|
3897
3982
|
[onRowFocus]
|
|
3898
3983
|
);
|
|
3899
|
-
const getCheckboxClickHandler =
|
|
3984
|
+
const getCheckboxClickHandler = useCallback12(
|
|
3900
3985
|
(rowId, row) => (e) => {
|
|
3901
3986
|
e.stopPropagation();
|
|
3902
3987
|
if (isRowSelectableCheck(rowId, row)) {
|
|
@@ -3906,7 +3991,7 @@ function Component(props, apiRef) {
|
|
|
3906
3991
|
},
|
|
3907
3992
|
[onCheckboxChange, isRowSelectableCheck, onRowFocus]
|
|
3908
3993
|
);
|
|
3909
|
-
const handleTableKeyDown =
|
|
3994
|
+
const handleTableKeyDown = useCallback12(
|
|
3910
3995
|
(e) => {
|
|
3911
3996
|
const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
|
|
3912
3997
|
if (!supportedKeys.includes(e.key)) return;
|
|
@@ -4248,7 +4333,7 @@ var DataTable = forwardRef7(Component);
|
|
|
4248
4333
|
DataTable.displayName = "DataTable";
|
|
4249
4334
|
|
|
4250
4335
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
4251
|
-
import React26, { forwardRef as forwardRef8, useCallback as
|
|
4336
|
+
import React26, { forwardRef as forwardRef8, useCallback as useCallback13, useEffect as useEffect8, useImperativeHandle as useImperativeHandle3, useMemo as useMemo11, useRef as useRef8, useState as useState10 } from "react";
|
|
4252
4337
|
import { IMaskInput as IMaskInput2, IMask as IMask2 } from "react-imask";
|
|
4253
4338
|
import CalendarTodayIcon2 from "@mui/icons-material/CalendarToday";
|
|
4254
4339
|
import { styled as styled14, useThemeProps as useThemeProps5 } from "@mui/joy";
|
|
@@ -4409,23 +4494,23 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
|
|
|
4409
4494
|
readOnly,
|
|
4410
4495
|
...innerProps
|
|
4411
4496
|
} = props;
|
|
4412
|
-
const innerRef =
|
|
4413
|
-
const buttonRef =
|
|
4497
|
+
const innerRef = useRef8(null);
|
|
4498
|
+
const buttonRef = useRef8(null);
|
|
4414
4499
|
const [value, setValue] = useControlledState(
|
|
4415
4500
|
props.value,
|
|
4416
4501
|
props.defaultValue || "",
|
|
4417
|
-
|
|
4502
|
+
useCallback13((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
4418
4503
|
);
|
|
4419
|
-
const [displayValue, setDisplayValue] =
|
|
4504
|
+
const [displayValue, setDisplayValue] = useState10(
|
|
4420
4505
|
() => value ? formatValueString2(parseDates(value, format), displayFormat) : ""
|
|
4421
4506
|
);
|
|
4422
|
-
const [anchorEl, setAnchorEl] =
|
|
4507
|
+
const [anchorEl, setAnchorEl] = useState10(null);
|
|
4423
4508
|
const open = Boolean(anchorEl);
|
|
4424
4509
|
const calendarValue = useMemo11(
|
|
4425
4510
|
() => value ? parseDates(value, format) : void 0,
|
|
4426
4511
|
[value, format]
|
|
4427
4512
|
);
|
|
4428
|
-
|
|
4513
|
+
useEffect8(() => {
|
|
4429
4514
|
if (value) {
|
|
4430
4515
|
try {
|
|
4431
4516
|
const dates = parseDates(value, format);
|
|
@@ -4437,13 +4522,13 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
|
|
|
4437
4522
|
setDisplayValue("");
|
|
4438
4523
|
}
|
|
4439
4524
|
}, [displayFormat, value, format]);
|
|
4440
|
-
|
|
4525
|
+
useEffect8(() => {
|
|
4441
4526
|
if (!anchorEl) {
|
|
4442
4527
|
innerRef.current?.blur();
|
|
4443
4528
|
}
|
|
4444
4529
|
}, [anchorEl, innerRef]);
|
|
4445
4530
|
useImperativeHandle3(ref, () => innerRef.current, [innerRef]);
|
|
4446
|
-
const handleChange =
|
|
4531
|
+
const handleChange = useCallback13(
|
|
4447
4532
|
(event) => {
|
|
4448
4533
|
const value2 = event.target.value;
|
|
4449
4534
|
setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat) : value2);
|
|
@@ -4451,7 +4536,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
|
|
|
4451
4536
|
},
|
|
4452
4537
|
[displayFormat, format, setValue]
|
|
4453
4538
|
);
|
|
4454
|
-
const handleDisplayInputChange =
|
|
4539
|
+
const handleDisplayInputChange = useCallback13(
|
|
4455
4540
|
(event) => {
|
|
4456
4541
|
if (event.target.value === "") {
|
|
4457
4542
|
handleChange({
|
|
@@ -4476,14 +4561,14 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
|
|
|
4476
4561
|
},
|
|
4477
4562
|
[displayFormat, format, handleChange, props.name]
|
|
4478
4563
|
);
|
|
4479
|
-
const handleCalendarToggle =
|
|
4564
|
+
const handleCalendarToggle = useCallback13(
|
|
4480
4565
|
(event) => {
|
|
4481
4566
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
4482
4567
|
innerRef.current?.focus();
|
|
4483
4568
|
},
|
|
4484
4569
|
[anchorEl, setAnchorEl, innerRef]
|
|
4485
4570
|
);
|
|
4486
|
-
const handleCalendarChange =
|
|
4571
|
+
const handleCalendarChange = useCallback13(
|
|
4487
4572
|
([date1, date2]) => {
|
|
4488
4573
|
if (!date1 || !date2) return;
|
|
4489
4574
|
const formattedValue = formatValueString2([date1, date2], format);
|
|
@@ -4497,7 +4582,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
|
|
|
4497
4582
|
},
|
|
4498
4583
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat]
|
|
4499
4584
|
);
|
|
4500
|
-
const handleInputMouseDown =
|
|
4585
|
+
const handleInputMouseDown = useCallback13(
|
|
4501
4586
|
(event) => {
|
|
4502
4587
|
if (inputReadOnly) {
|
|
4503
4588
|
event.preventDefault();
|
|
@@ -4729,13 +4814,13 @@ var InsetDrawer = styled20(JoyDrawer2)(({ theme }) => ({
|
|
|
4729
4814
|
}));
|
|
4730
4815
|
|
|
4731
4816
|
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
4732
|
-
import React31, { useCallback as
|
|
4817
|
+
import React31, { useCallback as useCallback14, useEffect as useEffect9, useMemo as useMemo12, useRef as useRef9, useState as useState11 } from "react";
|
|
4733
4818
|
import SearchIcon from "@mui/icons-material/Search";
|
|
4734
4819
|
import { useVirtualizer as useVirtualizer3 } from "@tanstack/react-virtual";
|
|
4735
4820
|
function LabelWithTooltip(props) {
|
|
4736
4821
|
const { label, size } = props;
|
|
4737
|
-
const labelContentRef =
|
|
4738
|
-
const [isOverflowing, setIsOverflowing] =
|
|
4822
|
+
const labelContentRef = useRef9(null);
|
|
4823
|
+
const [isOverflowing, setIsOverflowing] = useState11(false);
|
|
4739
4824
|
const labelContent = /* @__PURE__ */ React31.createElement(
|
|
4740
4825
|
"span",
|
|
4741
4826
|
{
|
|
@@ -4752,7 +4837,7 @@ function LabelWithTooltip(props) {
|
|
|
4752
4837
|
},
|
|
4753
4838
|
label
|
|
4754
4839
|
);
|
|
4755
|
-
|
|
4840
|
+
useEffect9(() => {
|
|
4756
4841
|
const element = labelContentRef.current;
|
|
4757
4842
|
if (element) {
|
|
4758
4843
|
setIsOverflowing(element.scrollWidth > element.clientWidth);
|
|
@@ -4776,16 +4861,16 @@ function FilterableCheckboxGroup(props) {
|
|
|
4776
4861
|
maxHeight = 300,
|
|
4777
4862
|
disabled
|
|
4778
4863
|
} = props;
|
|
4779
|
-
const [searchTerm, setSearchTerm] =
|
|
4780
|
-
const [sortedOptions, setSortedOptions] =
|
|
4864
|
+
const [searchTerm, setSearchTerm] = useState11("");
|
|
4865
|
+
const [sortedOptions, setSortedOptions] = useState11(options);
|
|
4781
4866
|
const [internalValue, setInternalValue] = useControlledState(
|
|
4782
4867
|
value,
|
|
4783
4868
|
value ?? [],
|
|
4784
|
-
|
|
4869
|
+
useCallback14((newValue) => onChange?.(newValue), [onChange])
|
|
4785
4870
|
);
|
|
4786
|
-
const parentRef =
|
|
4787
|
-
const isInitialSortRef =
|
|
4788
|
-
const prevOptionsRef =
|
|
4871
|
+
const parentRef = useRef9(null);
|
|
4872
|
+
const isInitialSortRef = useRef9(false);
|
|
4873
|
+
const prevOptionsRef = useRef9([...options]);
|
|
4789
4874
|
const filteredOptions = useMemo12(() => {
|
|
4790
4875
|
if (!searchTerm) return sortedOptions;
|
|
4791
4876
|
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
@@ -4808,7 +4893,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4808
4893
|
overscan: 5
|
|
4809
4894
|
});
|
|
4810
4895
|
const items = virtualizer.getVirtualItems();
|
|
4811
|
-
|
|
4896
|
+
useEffect9(() => {
|
|
4812
4897
|
const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
|
|
4813
4898
|
(prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
|
|
4814
4899
|
);
|
|
@@ -4834,13 +4919,13 @@ function FilterableCheckboxGroup(props) {
|
|
|
4834
4919
|
}
|
|
4835
4920
|
}
|
|
4836
4921
|
}, [options, value]);
|
|
4837
|
-
|
|
4922
|
+
useEffect9(() => {
|
|
4838
4923
|
virtualizer.measure();
|
|
4839
4924
|
}, [virtualizer, filteredOptions, size]);
|
|
4840
|
-
const handleSearchChange =
|
|
4925
|
+
const handleSearchChange = useCallback14((event) => {
|
|
4841
4926
|
setSearchTerm(event.target.value);
|
|
4842
4927
|
}, []);
|
|
4843
|
-
const handleCheckboxChange =
|
|
4928
|
+
const handleCheckboxChange = useCallback14(
|
|
4844
4929
|
(optionValue) => (event) => {
|
|
4845
4930
|
const checked = event.target.checked;
|
|
4846
4931
|
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
@@ -4848,7 +4933,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4848
4933
|
},
|
|
4849
4934
|
[internalValue, setInternalValue]
|
|
4850
4935
|
);
|
|
4851
|
-
const handleSelectAll =
|
|
4936
|
+
const handleSelectAll = useCallback14(
|
|
4852
4937
|
(event) => {
|
|
4853
4938
|
const checked = event.target.checked;
|
|
4854
4939
|
const enabledOptions = filteredOptions.filter((option) => !option.disabled);
|
|
@@ -5005,14 +5090,14 @@ function IconMenuButton(props) {
|
|
|
5005
5090
|
IconMenuButton.displayName = "IconMenuButton";
|
|
5006
5091
|
|
|
5007
5092
|
// src/components/Markdown/Markdown.tsx
|
|
5008
|
-
import React33, { lazy, Suspense, useEffect as
|
|
5093
|
+
import React33, { lazy, Suspense, useEffect as useEffect10, useState as useState12 } from "react";
|
|
5009
5094
|
import { Skeleton } from "@mui/joy";
|
|
5010
5095
|
import { Link as Link2 } from "@mui/joy";
|
|
5011
5096
|
import remarkGfm from "remark-gfm";
|
|
5012
5097
|
var LazyReactMarkdown = lazy(() => import("react-markdown"));
|
|
5013
5098
|
var Markdown = (props) => {
|
|
5014
|
-
const [rehypeAccent2, setRehypeAccent] =
|
|
5015
|
-
|
|
5099
|
+
const [rehypeAccent2, setRehypeAccent] = useState12(null);
|
|
5100
|
+
useEffect10(() => {
|
|
5016
5101
|
const loadRehypeAccent = async () => {
|
|
5017
5102
|
const module = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
5018
5103
|
setRehypeAccent(() => module.rehypeAccent);
|
|
@@ -5186,7 +5271,7 @@ function MenuButton(props) {
|
|
|
5186
5271
|
MenuButton.displayName = "MenuButton";
|
|
5187
5272
|
|
|
5188
5273
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
5189
|
-
import React35, { forwardRef as forwardRef9, useCallback as
|
|
5274
|
+
import React35, { forwardRef as forwardRef9, useCallback as useCallback15, useEffect as useEffect11, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState13 } from "react";
|
|
5190
5275
|
import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
|
|
5191
5276
|
import { styled as styled21, useThemeProps as useThemeProps6 } from "@mui/joy";
|
|
5192
5277
|
import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
|
|
@@ -5268,14 +5353,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5268
5353
|
locale,
|
|
5269
5354
|
...innerProps
|
|
5270
5355
|
} = props;
|
|
5271
|
-
const innerRef =
|
|
5272
|
-
const buttonRef =
|
|
5356
|
+
const innerRef = useRef10(null);
|
|
5357
|
+
const buttonRef = useRef10(null);
|
|
5273
5358
|
const [value, setValue, isControlled] = useControlledState(
|
|
5274
5359
|
props.value,
|
|
5275
5360
|
props.defaultValue || "",
|
|
5276
|
-
|
|
5361
|
+
useCallback15((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5277
5362
|
);
|
|
5278
|
-
const getFormattedDisplayValue =
|
|
5363
|
+
const getFormattedDisplayValue = useCallback15(
|
|
5279
5364
|
(inputValue) => {
|
|
5280
5365
|
if (!inputValue) return "";
|
|
5281
5366
|
try {
|
|
@@ -5286,19 +5371,19 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5286
5371
|
},
|
|
5287
5372
|
[format, displayFormat, locale]
|
|
5288
5373
|
);
|
|
5289
|
-
const [displayValue, setDisplayValue] =
|
|
5290
|
-
const [anchorEl, setAnchorEl] =
|
|
5374
|
+
const [displayValue, setDisplayValue] = useState13(() => getFormattedDisplayValue(value));
|
|
5375
|
+
const [anchorEl, setAnchorEl] = useState13(null);
|
|
5291
5376
|
const open = Boolean(anchorEl);
|
|
5292
|
-
|
|
5377
|
+
useEffect11(() => {
|
|
5293
5378
|
if (!anchorEl) {
|
|
5294
5379
|
innerRef.current?.blur();
|
|
5295
5380
|
}
|
|
5296
5381
|
}, [anchorEl, innerRef]);
|
|
5297
5382
|
useImperativeHandle4(ref, () => innerRef.current, [innerRef]);
|
|
5298
|
-
|
|
5383
|
+
useEffect11(() => {
|
|
5299
5384
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
5300
5385
|
}, [value, getFormattedDisplayValue]);
|
|
5301
|
-
const handleChange =
|
|
5386
|
+
const handleChange = useCallback15(
|
|
5302
5387
|
(event) => {
|
|
5303
5388
|
const newValue = event.target.value;
|
|
5304
5389
|
setValue(newValue);
|
|
@@ -5308,14 +5393,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5308
5393
|
},
|
|
5309
5394
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
5310
5395
|
);
|
|
5311
|
-
const handleCalendarToggle =
|
|
5396
|
+
const handleCalendarToggle = useCallback15(
|
|
5312
5397
|
(event) => {
|
|
5313
5398
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5314
5399
|
innerRef.current?.focus();
|
|
5315
5400
|
},
|
|
5316
5401
|
[anchorEl, setAnchorEl, innerRef]
|
|
5317
5402
|
);
|
|
5318
|
-
const handleInputMouseDown =
|
|
5403
|
+
const handleInputMouseDown = useCallback15(
|
|
5319
5404
|
(event) => {
|
|
5320
5405
|
event.preventDefault();
|
|
5321
5406
|
buttonRef.current?.focus();
|
|
@@ -5439,7 +5524,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5439
5524
|
});
|
|
5440
5525
|
|
|
5441
5526
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
5442
|
-
import React36, { forwardRef as forwardRef10, useCallback as
|
|
5527
|
+
import React36, { forwardRef as forwardRef10, useCallback as useCallback16, useEffect as useEffect12, useImperativeHandle as useImperativeHandle5, useMemo as useMemo13, useRef as useRef11, useState as useState14 } from "react";
|
|
5443
5528
|
import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
|
|
5444
5529
|
import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
|
|
5445
5530
|
import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
|
|
@@ -5547,35 +5632,35 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5547
5632
|
size,
|
|
5548
5633
|
...innerProps
|
|
5549
5634
|
} = props;
|
|
5550
|
-
const innerRef =
|
|
5635
|
+
const innerRef = useRef11(null);
|
|
5551
5636
|
const [value, setValue] = useControlledState(
|
|
5552
5637
|
props.value,
|
|
5553
5638
|
props.defaultValue || "",
|
|
5554
|
-
|
|
5639
|
+
useCallback16((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5555
5640
|
);
|
|
5556
|
-
const [anchorEl, setAnchorEl] =
|
|
5641
|
+
const [anchorEl, setAnchorEl] = useState14(null);
|
|
5557
5642
|
const open = Boolean(anchorEl);
|
|
5558
5643
|
const calendarValue = useMemo13(() => value ? parseDates2(value) : void 0, [value]);
|
|
5559
|
-
|
|
5644
|
+
useEffect12(() => {
|
|
5560
5645
|
if (!anchorEl) {
|
|
5561
5646
|
innerRef.current?.blur();
|
|
5562
5647
|
}
|
|
5563
5648
|
}, [anchorEl, innerRef]);
|
|
5564
5649
|
useImperativeHandle5(ref, () => innerRef.current, [innerRef]);
|
|
5565
|
-
const handleChange =
|
|
5650
|
+
const handleChange = useCallback16(
|
|
5566
5651
|
(event) => {
|
|
5567
5652
|
setValue(event.target.value);
|
|
5568
5653
|
},
|
|
5569
5654
|
[setValue]
|
|
5570
5655
|
);
|
|
5571
|
-
const handleCalendarToggle =
|
|
5656
|
+
const handleCalendarToggle = useCallback16(
|
|
5572
5657
|
(event) => {
|
|
5573
5658
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5574
5659
|
innerRef.current?.focus();
|
|
5575
5660
|
},
|
|
5576
5661
|
[anchorEl, setAnchorEl, innerRef]
|
|
5577
5662
|
);
|
|
5578
|
-
const handleCalendarChange =
|
|
5663
|
+
const handleCalendarChange = useCallback16(
|
|
5579
5664
|
([date1, date2]) => {
|
|
5580
5665
|
if (!date1 || !date2) return;
|
|
5581
5666
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -5802,7 +5887,7 @@ function Navigator(props) {
|
|
|
5802
5887
|
Navigator.displayName = "Navigator";
|
|
5803
5888
|
|
|
5804
5889
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
5805
|
-
import React40, { useCallback as
|
|
5890
|
+
import React40, { useCallback as useCallback17, useMemo as useMemo14, useState as useState15 } from "react";
|
|
5806
5891
|
import { NumericFormat as NumericFormat2 } from "react-number-format";
|
|
5807
5892
|
import { styled as styled25, useThemeProps as useThemeProps8 } from "@mui/joy";
|
|
5808
5893
|
var padDecimal = (value, decimalScale) => {
|
|
@@ -5859,9 +5944,9 @@ var PercentageInput = React40.forwardRef(
|
|
|
5859
5944
|
const [_value, setValue] = useControlledState(
|
|
5860
5945
|
props.value,
|
|
5861
5946
|
props.defaultValue,
|
|
5862
|
-
|
|
5947
|
+
useCallback17((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
5863
5948
|
);
|
|
5864
|
-
const [internalError, setInternalError] =
|
|
5949
|
+
const [internalError, setInternalError] = useState15(
|
|
5865
5950
|
max && _value && _value > max || min && _value && _value < min
|
|
5866
5951
|
);
|
|
5867
5952
|
const value = useMemo14(() => {
|
|
@@ -5870,7 +5955,7 @@ var PercentageInput = React40.forwardRef(
|
|
|
5870
5955
|
}
|
|
5871
5956
|
return _value;
|
|
5872
5957
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
5873
|
-
const handleChange =
|
|
5958
|
+
const handleChange = useCallback17(
|
|
5874
5959
|
(event) => {
|
|
5875
5960
|
if (event.target.value === "") {
|
|
5876
5961
|
setValue(void 0);
|
|
@@ -6534,7 +6619,7 @@ function ThemeProvider(props) {
|
|
|
6534
6619
|
ThemeProvider.displayName = "ThemeProvider";
|
|
6535
6620
|
|
|
6536
6621
|
// src/components/Uploader/Uploader.tsx
|
|
6537
|
-
import React47, { useCallback as
|
|
6622
|
+
import React47, { useCallback as useCallback18, useEffect as useEffect13, useMemo as useMemo15, useRef as useRef12, useState as useState16 } from "react";
|
|
6538
6623
|
import { styled as styled30, Input as Input2 } from "@mui/joy";
|
|
6539
6624
|
import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
|
|
6540
6625
|
import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
|
|
@@ -6683,12 +6768,12 @@ var Uploader = React47.memo(
|
|
|
6683
6768
|
error: errorProp,
|
|
6684
6769
|
helperText: helperTextProp
|
|
6685
6770
|
} = props;
|
|
6686
|
-
const dropZoneRef =
|
|
6687
|
-
const inputRef =
|
|
6688
|
-
const [errorText, setErrorText] =
|
|
6689
|
-
const [files, setFiles] =
|
|
6690
|
-
const [uploaded, setUploaded] =
|
|
6691
|
-
const [previewState, setPreviewState] =
|
|
6771
|
+
const dropZoneRef = useRef12(null);
|
|
6772
|
+
const inputRef = useRef12(null);
|
|
6773
|
+
const [errorText, setErrorText] = useState16();
|
|
6774
|
+
const [files, setFiles] = useState16([]);
|
|
6775
|
+
const [uploaded, setUploaded] = useState16(props.uploaded || []);
|
|
6776
|
+
const [previewState, setPreviewState] = useState16("idle");
|
|
6692
6777
|
const accepts = useMemo15(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
6693
6778
|
const parsedAccepts = useMemo15(
|
|
6694
6779
|
() => accepts.flatMap((type) => {
|
|
@@ -6734,7 +6819,7 @@ var Uploader = React47.memo(
|
|
|
6734
6819
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
6735
6820
|
[files, maxCount, uploaded]
|
|
6736
6821
|
);
|
|
6737
|
-
const addFiles =
|
|
6822
|
+
const addFiles = useCallback18(
|
|
6738
6823
|
(uploads) => {
|
|
6739
6824
|
try {
|
|
6740
6825
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -6779,7 +6864,7 @@ var Uploader = React47.memo(
|
|
|
6779
6864
|
},
|
|
6780
6865
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
6781
6866
|
);
|
|
6782
|
-
|
|
6867
|
+
useEffect13(() => {
|
|
6783
6868
|
if (!dropZoneRef.current || disabled) {
|
|
6784
6869
|
return;
|
|
6785
6870
|
}
|
|
@@ -6817,7 +6902,7 @@ var Uploader = React47.memo(
|
|
|
6817
6902
|
);
|
|
6818
6903
|
return () => cleanup?.();
|
|
6819
6904
|
}, [disabled, addFiles]);
|
|
6820
|
-
|
|
6905
|
+
useEffect13(() => {
|
|
6821
6906
|
if (inputRef.current && minCount) {
|
|
6822
6907
|
if (files.length < minCount) {
|
|
6823
6908
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -6826,14 +6911,14 @@ var Uploader = React47.memo(
|
|
|
6826
6911
|
}
|
|
6827
6912
|
}
|
|
6828
6913
|
}, [inputRef, files, minCount]);
|
|
6829
|
-
const handleFileChanged =
|
|
6914
|
+
const handleFileChanged = useCallback18(
|
|
6830
6915
|
(event) => {
|
|
6831
6916
|
const files2 = Array.from(event.target.files || []);
|
|
6832
6917
|
addFiles(files2);
|
|
6833
6918
|
},
|
|
6834
6919
|
[addFiles]
|
|
6835
6920
|
);
|
|
6836
|
-
const handleDeleteFile =
|
|
6921
|
+
const handleDeleteFile = useCallback18(
|
|
6837
6922
|
(deletedFile) => {
|
|
6838
6923
|
if (deletedFile instanceof File) {
|
|
6839
6924
|
setFiles((current) => {
|
|
@@ -6853,7 +6938,7 @@ var Uploader = React47.memo(
|
|
|
6853
6938
|
},
|
|
6854
6939
|
[name, onChange, onDelete]
|
|
6855
6940
|
);
|
|
6856
|
-
const handleUploaderButtonClick =
|
|
6941
|
+
const handleUploaderButtonClick = useCallback18(() => {
|
|
6857
6942
|
inputRef.current?.click();
|
|
6858
6943
|
}, []);
|
|
6859
6944
|
const uploader = /* @__PURE__ */ React47.createElement(
|