@ceed/cds 1.40.3-next.4 → 1.40.3
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/Autocomplete/Autocomplete.d.ts +4 -4
- package/dist/components/Autocomplete/index.d.ts +1 -2
- package/dist/components/DataTable/components.d.ts +1 -1
- package/dist/components/DataTable/hooks.d.ts +7 -6
- package/dist/components/DataTable/types.d.ts +0 -7
- package/dist/components/DataTable/utils.d.ts +0 -5
- package/dist/components/IconMenuButton/IconMenuButton.d.ts +8 -9
- package/dist/components/IconMenuButton/index.d.ts +1 -2
- package/dist/components/Modal/Modal.d.ts +4 -1
- package/dist/components/Select/Select.d.ts +4 -3
- package/dist/components/Textarea/Textarea.d.ts +4 -1
- package/dist/components/Textarea/index.d.ts +1 -2
- package/dist/components/data-display/DataTable.md +0 -4
- package/dist/components/navigation/IconMenuButton.md +12 -12
- package/dist/index.browser.js +6 -6
- package/dist/index.browser.js.map +4 -4
- package/dist/index.cjs +650 -747
- package/dist/index.js +163 -260
- package/framer/index.js +1 -1
- package/package.json +1 -1
- package/dist/libs/slot-props.d.ts +0 -22
package/dist/index.cjs
CHANGED
|
@@ -344,7 +344,7 @@ function Alert(inProps) {
|
|
|
344
344
|
Alert.displayName = "Alert";
|
|
345
345
|
|
|
346
346
|
// src/components/Autocomplete/Autocomplete.tsx
|
|
347
|
-
var
|
|
347
|
+
var import_react6 = __toESM(require("react"));
|
|
348
348
|
var import_joy10 = require("@mui/joy");
|
|
349
349
|
var import_base = require("@mui/base");
|
|
350
350
|
var import_Close = __toESM(require("@mui/icons-material/Close"));
|
|
@@ -441,37 +441,6 @@ function useControlledState(controlledValue, defaultValue, onChange) {
|
|
|
441
441
|
return [displayValue, handleChange, isControlled];
|
|
442
442
|
}
|
|
443
443
|
|
|
444
|
-
// src/libs/slot-props.ts
|
|
445
|
-
var import_react6 = require("react");
|
|
446
|
-
function assignRef(ref, value) {
|
|
447
|
-
if (typeof ref === "function") ref(value);
|
|
448
|
-
else if (ref) ref.current = value;
|
|
449
|
-
}
|
|
450
|
-
function mergeRefs(...refs) {
|
|
451
|
-
const live = refs.filter((r) => r != null);
|
|
452
|
-
if (live.length === 0) return void 0;
|
|
453
|
-
if (live.length === 1) return live[0];
|
|
454
|
-
return (value) => live.forEach((r) => assignRef(r, value));
|
|
455
|
-
}
|
|
456
|
-
function useMergedRef(a, b) {
|
|
457
|
-
return (0, import_react6.useMemo)(() => mergeRefs(a, b), [a, b]);
|
|
458
|
-
}
|
|
459
|
-
function useSlotRef(slotProp, ref) {
|
|
460
|
-
const isFunctionForm = typeof slotProp === "function";
|
|
461
|
-
const slotRef = isFunctionForm ? void 0 : slotProp?.ref;
|
|
462
|
-
const mergedRef = useMergedRef(slotRef, ref);
|
|
463
|
-
return (0, import_react6.useMemo)(() => {
|
|
464
|
-
if (isFunctionForm) {
|
|
465
|
-
return ((ownerState) => {
|
|
466
|
-
const resolved = slotProp(ownerState) ?? {};
|
|
467
|
-
const merged = mergeRefs(resolved.ref, ref);
|
|
468
|
-
return merged ? { ...resolved, ref: merged } : { ...resolved };
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
return mergedRef ? { ...slotProp, ref: mergedRef } : { ...slotProp };
|
|
472
|
-
}, [isFunctionForm, slotProp, mergedRef, ref]);
|
|
473
|
-
}
|
|
474
|
-
|
|
475
444
|
// src/components/Autocomplete/Autocomplete.tsx
|
|
476
445
|
var AutocompletePopper = (0, import_joy10.styled)(import_base2.Popper, {
|
|
477
446
|
name: "Autocomplete",
|
|
@@ -484,7 +453,7 @@ var itemHeightMap = {
|
|
|
484
453
|
md: { default: 36, secondary: 55 },
|
|
485
454
|
lg: { default: 44, secondary: 65 }
|
|
486
455
|
};
|
|
487
|
-
var AutocompleteListBox =
|
|
456
|
+
var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
|
|
488
457
|
const {
|
|
489
458
|
anchorEl,
|
|
490
459
|
open,
|
|
@@ -494,13 +463,13 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
|
|
|
494
463
|
ownerState: { loading, size: fontSize = "md" },
|
|
495
464
|
...innerProps
|
|
496
465
|
} = props;
|
|
497
|
-
const parentRef = (0,
|
|
466
|
+
const parentRef = (0, import_react6.useRef)(null);
|
|
498
467
|
const isGrouped = children[0].every((child) => child.hasOwnProperty("group"));
|
|
499
|
-
const itemHeight = (0,
|
|
468
|
+
const itemHeight = (0, import_react6.useMemo)(() => {
|
|
500
469
|
const heights = itemHeightMap[fontSize ?? "md"];
|
|
501
470
|
return hasSecondaryText ? heights.secondary : heights.default;
|
|
502
471
|
}, [fontSize, hasSecondaryText]);
|
|
503
|
-
const renderTargets = (0,
|
|
472
|
+
const renderTargets = (0, import_react6.useMemo)(() => {
|
|
504
473
|
if (loading) {
|
|
505
474
|
return [children[1]];
|
|
506
475
|
}
|
|
@@ -509,7 +478,7 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
|
|
|
509
478
|
}
|
|
510
479
|
if (isGrouped) {
|
|
511
480
|
return children[0].flatMap((child) => [
|
|
512
|
-
/* @__PURE__ */
|
|
481
|
+
/* @__PURE__ */ import_react6.default.createElement(import_joy10.ListSubheader, { key: child.key, component: "li" }, child.group),
|
|
513
482
|
...child.children
|
|
514
483
|
]);
|
|
515
484
|
}
|
|
@@ -523,12 +492,12 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
|
|
|
523
492
|
overscan: 5
|
|
524
493
|
});
|
|
525
494
|
const items = virtualizer.getVirtualItems();
|
|
526
|
-
(0,
|
|
495
|
+
(0, import_react6.useEffect)(() => {
|
|
527
496
|
if (open) {
|
|
528
497
|
virtualizer.measure();
|
|
529
498
|
}
|
|
530
499
|
}, [open, virtualizer]);
|
|
531
|
-
return /* @__PURE__ */
|
|
500
|
+
return /* @__PURE__ */ import_react6.default.createElement(AutocompletePopper, { ref, anchorEl, open, modifiers }, /* @__PURE__ */ import_react6.default.createElement(import_joy10.AutocompleteListbox, { ...innerProps, size: fontSize }, /* @__PURE__ */ import_react6.default.createElement("div", { ref: parentRef, style: { overflow: "auto" } }, /* @__PURE__ */ import_react6.default.createElement(
|
|
532
501
|
"div",
|
|
533
502
|
{
|
|
534
503
|
style: {
|
|
@@ -537,7 +506,7 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
|
|
|
537
506
|
}
|
|
538
507
|
},
|
|
539
508
|
items.map(
|
|
540
|
-
({ index, size, start, key }) =>
|
|
509
|
+
({ index, size, start, key }) => import_react6.default.cloneElement(renderTargets[index], {
|
|
541
510
|
key,
|
|
542
511
|
style: {
|
|
543
512
|
position: "absolute",
|
|
@@ -549,7 +518,7 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
|
|
|
549
518
|
transform: `translateY(${start}px)`,
|
|
550
519
|
overflow: "visible"
|
|
551
520
|
},
|
|
552
|
-
children: /* @__PURE__ */
|
|
521
|
+
children: /* @__PURE__ */ import_react6.default.createElement(
|
|
553
522
|
"div",
|
|
554
523
|
{
|
|
555
524
|
style: {
|
|
@@ -592,7 +561,7 @@ var autocompleteFilterOptions = (0, import_base.createFilterOptions)({
|
|
|
592
561
|
}
|
|
593
562
|
});
|
|
594
563
|
var getOptionLabel = (option) => `${option.label ?? ""}`;
|
|
595
|
-
function
|
|
564
|
+
function Autocomplete(props) {
|
|
596
565
|
const {
|
|
597
566
|
label,
|
|
598
567
|
error,
|
|
@@ -611,7 +580,7 @@ function AutocompleteInner(props, ref) {
|
|
|
611
580
|
const [rawValue, setValue] = useControlledState(
|
|
612
581
|
props.value,
|
|
613
582
|
props.defaultValue ?? null,
|
|
614
|
-
(0,
|
|
583
|
+
(0, import_react6.useCallback)(
|
|
615
584
|
(value2) => onChange?.({
|
|
616
585
|
target: {
|
|
617
586
|
value: value2,
|
|
@@ -622,7 +591,7 @@ function AutocompleteInner(props, ref) {
|
|
|
622
591
|
)
|
|
623
592
|
);
|
|
624
593
|
const _value = rawValue ?? (props.multiple ? EMPTY_MULTIPLE_VALUE : "");
|
|
625
|
-
const options = (0,
|
|
594
|
+
const options = (0, import_react6.useMemo)(
|
|
626
595
|
() => props.options.map((option) => {
|
|
627
596
|
if (typeof option !== "object") {
|
|
628
597
|
return {
|
|
@@ -634,19 +603,19 @@ function AutocompleteInner(props, ref) {
|
|
|
634
603
|
}),
|
|
635
604
|
[props.options]
|
|
636
605
|
);
|
|
637
|
-
const optionMap = (0,
|
|
606
|
+
const optionMap = (0, import_react6.useMemo)(() => {
|
|
638
607
|
const map = /* @__PURE__ */ new Map();
|
|
639
608
|
options.forEach((option) => {
|
|
640
609
|
map.set(option.value, option);
|
|
641
610
|
});
|
|
642
611
|
return map;
|
|
643
612
|
}, [options]);
|
|
644
|
-
const value = (0,
|
|
613
|
+
const value = (0, import_react6.useMemo)(() => {
|
|
645
614
|
if (props.loading) {
|
|
646
615
|
return {
|
|
647
616
|
value: "",
|
|
648
617
|
label: "",
|
|
649
|
-
startDecorator: /* @__PURE__ */
|
|
618
|
+
startDecorator: /* @__PURE__ */ import_react6.default.createElement(import_joy10.CircularProgress, { size: "sm", color: "neutral", variant: "plain", thickness: 3 })
|
|
650
619
|
};
|
|
651
620
|
}
|
|
652
621
|
if (Array.isArray(_value)) {
|
|
@@ -654,33 +623,31 @@ function AutocompleteInner(props, ref) {
|
|
|
654
623
|
}
|
|
655
624
|
return optionMap.get(_value);
|
|
656
625
|
}, [_value, optionMap, props.loading]);
|
|
657
|
-
const applySize = (0,
|
|
626
|
+
const applySize = (0, import_react6.useCallback)(
|
|
658
627
|
(node) => {
|
|
659
|
-
return
|
|
628
|
+
return import_react6.default.isValidElement(node) && !props.loading ? import_react6.default.cloneElement(node, { ...{ size } }) : node;
|
|
660
629
|
},
|
|
661
630
|
[size, props.loading]
|
|
662
631
|
);
|
|
663
|
-
const startDecorator = (0,
|
|
632
|
+
const startDecorator = (0, import_react6.useMemo)(
|
|
664
633
|
() => applySize(value?.startDecorator || props.startDecorator),
|
|
665
634
|
[value, applySize, props.startDecorator]
|
|
666
635
|
);
|
|
667
|
-
const endDecorator = (0,
|
|
636
|
+
const endDecorator = (0, import_react6.useMemo)(
|
|
668
637
|
() => applySize(value?.endDecorator || props.endDecorator),
|
|
669
638
|
[value, applySize, props.endDecorator]
|
|
670
639
|
);
|
|
671
|
-
const
|
|
672
|
-
const slotProps = (0, import_react7.useMemo)(
|
|
640
|
+
const slotProps = (0, import_react6.useMemo)(
|
|
673
641
|
() => ({
|
|
674
642
|
...props.slotProps,
|
|
675
643
|
listbox: {
|
|
676
644
|
...props.slotProps?.listbox,
|
|
677
645
|
hasSecondaryText: options.some((opt) => opt.secondaryText)
|
|
678
|
-
}
|
|
679
|
-
input: inputSlotProps
|
|
646
|
+
}
|
|
680
647
|
}),
|
|
681
|
-
[options, props.slotProps
|
|
648
|
+
[options, props.slotProps]
|
|
682
649
|
);
|
|
683
|
-
const handleChange = (0,
|
|
650
|
+
const handleChange = (0, import_react6.useCallback)(
|
|
684
651
|
(event, value2) => {
|
|
685
652
|
const newValue = value2;
|
|
686
653
|
const _value2 = Array.isArray(newValue) ? newValue.map((value3) => value3.value) : newValue?.value;
|
|
@@ -697,7 +664,7 @@ function AutocompleteInner(props, ref) {
|
|
|
697
664
|
},
|
|
698
665
|
[onChangeComplete, setValue, optionMap]
|
|
699
666
|
);
|
|
700
|
-
const autocomplete = /* @__PURE__ */
|
|
667
|
+
const autocomplete = /* @__PURE__ */ import_react6.default.createElement(
|
|
701
668
|
import_joy10.Autocomplete,
|
|
702
669
|
{
|
|
703
670
|
...innerProps,
|
|
@@ -712,10 +679,10 @@ function AutocompleteInner(props, ref) {
|
|
|
712
679
|
endDecorator,
|
|
713
680
|
getOptionLabel,
|
|
714
681
|
renderTags: (tags, getTagProps) => tags.map((tag, index) => {
|
|
715
|
-
const { onClick,
|
|
682
|
+
const { onClick, ...rest } = getTagProps({ index });
|
|
716
683
|
return applySize(
|
|
717
|
-
/* @__PURE__ */
|
|
718
|
-
/* @__PURE__ */
|
|
684
|
+
/* @__PURE__ */ import_react6.default.createElement(Chip_default, { color: "primary", ...rest }, /* @__PURE__ */ import_react6.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2, py: 0.5 }, tag.value, applySize(
|
|
685
|
+
/* @__PURE__ */ import_react6.default.createElement(AutocompleteTagDelete, { color: "primary", variant: "soft", onClick }, /* @__PURE__ */ import_react6.default.createElement(import_Close.default, null))
|
|
719
686
|
)))
|
|
720
687
|
);
|
|
721
688
|
}),
|
|
@@ -724,33 +691,30 @@ function AutocompleteInner(props, ref) {
|
|
|
724
691
|
},
|
|
725
692
|
slotProps,
|
|
726
693
|
filterOptions: autocompleteFilterOptions,
|
|
727
|
-
renderOption: (props2, option) => {
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
applySize(option.endDecorator)
|
|
748
|
-
));
|
|
749
|
-
},
|
|
694
|
+
renderOption: (props2, option) => /* @__PURE__ */ import_react6.default.createElement(import_joy10.AutocompleteOption, { ...props2 }, option.startDecorator && /* @__PURE__ */ import_react6.default.createElement(
|
|
695
|
+
import_joy10.ListItemDecorator,
|
|
696
|
+
{
|
|
697
|
+
sx: (theme) => ({
|
|
698
|
+
marginInlineEnd: `var(--Input-gap, ${theme.spacing(1)})`
|
|
699
|
+
})
|
|
700
|
+
},
|
|
701
|
+
applySize(option.startDecorator)
|
|
702
|
+
), option.secondaryText ? /* @__PURE__ */ import_react6.default.createElement(import_joy10.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react6.default.createElement(import_joy10.Typography, { level: "inherit" }, applySize(option.label)), /* @__PURE__ */ import_react6.default.createElement(import_joy10.Typography, { level: secondaryTextLevelMap[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : (
|
|
703
|
+
// TODO: haulla에서 사용할 때, label을 ReactNode로 넘기면 에러가 발생함....
|
|
704
|
+
applySize(option.label)
|
|
705
|
+
), option.endDecorator && /* @__PURE__ */ import_react6.default.createElement(
|
|
706
|
+
import_joy10.ListItemDecorator,
|
|
707
|
+
{
|
|
708
|
+
sx: (theme) => ({
|
|
709
|
+
marginInlineStart: `var(--Input-gap, ${theme.spacing(1)})`
|
|
710
|
+
})
|
|
711
|
+
},
|
|
712
|
+
applySize(option.endDecorator)
|
|
713
|
+
)),
|
|
750
714
|
renderGroup: (params) => params
|
|
751
715
|
}
|
|
752
716
|
);
|
|
753
|
-
return /* @__PURE__ */
|
|
717
|
+
return /* @__PURE__ */ import_react6.default.createElement(
|
|
754
718
|
FormControl_default,
|
|
755
719
|
{
|
|
756
720
|
required,
|
|
@@ -761,19 +725,18 @@ function AutocompleteInner(props, ref) {
|
|
|
761
725
|
sx,
|
|
762
726
|
className
|
|
763
727
|
},
|
|
764
|
-
label && /* @__PURE__ */
|
|
728
|
+
label && /* @__PURE__ */ import_react6.default.createElement(FormLabel_default, null, label),
|
|
765
729
|
autocomplete,
|
|
766
|
-
helperText && /* @__PURE__ */
|
|
730
|
+
helperText && /* @__PURE__ */ import_react6.default.createElement(FormHelperText_default, null, helperText)
|
|
767
731
|
);
|
|
768
732
|
}
|
|
769
|
-
var Autocomplete = import_react7.default.forwardRef(AutocompleteInner);
|
|
770
733
|
Autocomplete.displayName = "Autocomplete";
|
|
771
734
|
|
|
772
735
|
// src/components/Autocomplete/index.ts
|
|
773
736
|
var Autocomplete_default = Autocomplete;
|
|
774
737
|
|
|
775
738
|
// src/components/Avatar/Avatar.tsx
|
|
776
|
-
var
|
|
739
|
+
var import_react7 = __toESM(require("react"));
|
|
777
740
|
var import_joy11 = require("@mui/joy");
|
|
778
741
|
var StyledAvatar = (0, import_joy11.styled)(import_joy11.Avatar, {
|
|
779
742
|
name: "Avatar",
|
|
@@ -795,19 +758,19 @@ var defaultGetInitial = (name) => {
|
|
|
795
758
|
return (firstName.charAt(0) + lastName.charAt(0)).toUpperCase();
|
|
796
759
|
}
|
|
797
760
|
};
|
|
798
|
-
var Avatar = (0,
|
|
761
|
+
var Avatar = (0, import_react7.forwardRef)(function Avatar2(inProps, ref) {
|
|
799
762
|
const props = (0, import_joy11.useThemeProps)({
|
|
800
763
|
props: inProps,
|
|
801
764
|
name: "Avatar"
|
|
802
765
|
});
|
|
803
766
|
const { children, getInitial = defaultGetInitial, ...inheritProps } = props;
|
|
804
|
-
const calcChildren = (0,
|
|
767
|
+
const calcChildren = (0, import_react7.useMemo)(() => {
|
|
805
768
|
if (typeof children === "string") {
|
|
806
769
|
return getInitial?.(children) ?? "";
|
|
807
770
|
}
|
|
808
771
|
return children;
|
|
809
772
|
}, [children, getInitial]);
|
|
810
|
-
return /* @__PURE__ */
|
|
773
|
+
return /* @__PURE__ */ import_react7.default.createElement(StyledAvatar, { ...inheritProps, children: calcChildren, ref });
|
|
811
774
|
});
|
|
812
775
|
|
|
813
776
|
// src/components/Box/Box.tsx
|
|
@@ -821,16 +784,16 @@ Box.displayName = "Box";
|
|
|
821
784
|
var Box_default = Box;
|
|
822
785
|
|
|
823
786
|
// src/components/Breadcrumbs/Breadcrumbs.tsx
|
|
824
|
-
var
|
|
787
|
+
var import_react10 = __toESM(require("react"));
|
|
825
788
|
var import_joy16 = require("@mui/joy");
|
|
826
789
|
|
|
827
790
|
// src/components/Menu/Menu.tsx
|
|
828
|
-
var
|
|
791
|
+
var import_react8 = __toESM(require("react"));
|
|
829
792
|
var import_joy13 = require("@mui/joy");
|
|
830
793
|
var import_framer_motion10 = require("framer-motion");
|
|
831
794
|
var MotionMenu = (0, import_framer_motion10.motion)(import_joy13.Menu);
|
|
832
795
|
var Menu = (props) => {
|
|
833
|
-
return /* @__PURE__ */
|
|
796
|
+
return /* @__PURE__ */ import_react8.default.createElement(MotionMenu, { ...props });
|
|
834
797
|
};
|
|
835
798
|
Menu.displayName = "Menu";
|
|
836
799
|
var MenuItem = import_joy13.MenuItem;
|
|
@@ -839,22 +802,22 @@ var MenuItem = import_joy13.MenuItem;
|
|
|
839
802
|
var Menu_default = Menu;
|
|
840
803
|
|
|
841
804
|
// src/components/Dropdown/Dropdown.tsx
|
|
842
|
-
var
|
|
805
|
+
var import_react9 = __toESM(require("react"));
|
|
843
806
|
var import_joy14 = require("@mui/joy");
|
|
844
807
|
var import_joy15 = require("@mui/joy");
|
|
845
808
|
var import_useMenuButton = require("@mui/base/useMenuButton");
|
|
846
|
-
var DropdownNestedRegistryContext = (0,
|
|
809
|
+
var DropdownNestedRegistryContext = (0, import_react9.createContext)(null);
|
|
847
810
|
function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }) {
|
|
848
|
-
const [nestedCount, setNestedCount] = (0,
|
|
811
|
+
const [nestedCount, setNestedCount] = (0, import_react9.useState)(0);
|
|
849
812
|
const [open, setOpen] = useControlledState(openProp, defaultOpen);
|
|
850
|
-
const registry = (0,
|
|
813
|
+
const registry = (0, import_react9.useMemo)(
|
|
851
814
|
() => ({
|
|
852
815
|
register: () => setNestedCount((c) => c + 1),
|
|
853
816
|
unregister: () => setNestedCount((c) => Math.max(0, c - 1))
|
|
854
817
|
}),
|
|
855
818
|
[]
|
|
856
819
|
);
|
|
857
|
-
const handleOpenChange = (0,
|
|
820
|
+
const handleOpenChange = (0, import_react9.useCallback)(
|
|
858
821
|
(event, isOpen) => {
|
|
859
822
|
if (nestedCount > 0 && !isOpen && event?.type === "blur") {
|
|
860
823
|
return;
|
|
@@ -864,7 +827,7 @@ function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }
|
|
|
864
827
|
},
|
|
865
828
|
[nestedCount, setOpen, onOpenChange]
|
|
866
829
|
);
|
|
867
|
-
return /* @__PURE__ */
|
|
830
|
+
return /* @__PURE__ */ import_react9.default.createElement(DropdownNestedRegistryContext.Provider, { value: registry }, /* @__PURE__ */ import_react9.default.createElement(import_joy14.Dropdown, { open, onOpenChange: handleOpenChange, ...rest }));
|
|
868
831
|
}
|
|
869
832
|
Dropdown.displayName = "Dropdown";
|
|
870
833
|
|
|
@@ -887,29 +850,29 @@ function Breadcrumbs(props) {
|
|
|
887
850
|
} = props;
|
|
888
851
|
const Crumb = (props2) => {
|
|
889
852
|
if (props2.type === "link" && Link4) {
|
|
890
|
-
return /* @__PURE__ */
|
|
853
|
+
return /* @__PURE__ */ import_react10.default.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
|
|
891
854
|
} else {
|
|
892
|
-
return /* @__PURE__ */
|
|
855
|
+
return /* @__PURE__ */ import_react10.default.createElement(Typography_default, null, props2.label);
|
|
893
856
|
}
|
|
894
857
|
};
|
|
895
858
|
if (!collapsed) {
|
|
896
|
-
return /* @__PURE__ */
|
|
859
|
+
return /* @__PURE__ */ import_react10.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, crumbs.map((crumb, index) => /* @__PURE__ */ import_react10.default.createElement(Crumb, { key: `breadcrumb-${index}`, ...crumb })));
|
|
897
860
|
}
|
|
898
861
|
const _endCrumbCount = Math.max(1, endCrumbCount);
|
|
899
|
-
const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */
|
|
900
|
-
const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */
|
|
901
|
-
const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */
|
|
902
|
-
return /* @__PURE__ */
|
|
862
|
+
const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ import_react10.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
|
|
863
|
+
const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */ import_react10.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
|
|
864
|
+
const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */ import_react10.default.createElement(MenuItem, { key: `breadcrumb-${crumb.label}` }, /* @__PURE__ */ import_react10.default.createElement(Crumb, { ...crumb })));
|
|
865
|
+
return /* @__PURE__ */ import_react10.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, frontCrumbs, collapsedCrumbs.length && /* @__PURE__ */ import_react10.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react10.default.createElement(import_joy16.MenuButton, { size, variant: "plain" }, "..."), /* @__PURE__ */ import_react10.default.createElement(Menu_default, { size }, collapsedCrumbs)), backCrumbs);
|
|
903
866
|
}
|
|
904
867
|
Breadcrumbs.displayName = "Breadcrumbs";
|
|
905
868
|
|
|
906
869
|
// src/components/Button/Button.tsx
|
|
907
|
-
var
|
|
870
|
+
var import_react11 = __toESM(require("react"));
|
|
908
871
|
var import_joy17 = require("@mui/joy");
|
|
909
872
|
var import_framer_motion11 = require("framer-motion");
|
|
910
873
|
var MotionButton = (0, import_framer_motion11.motion)(import_joy17.Button);
|
|
911
|
-
var Button = (0,
|
|
912
|
-
return /* @__PURE__ */
|
|
874
|
+
var Button = (0, import_react11.forwardRef)(({ ...props }, ref) => {
|
|
875
|
+
return /* @__PURE__ */ import_react11.default.createElement(MotionButton, { ref, ...props });
|
|
913
876
|
});
|
|
914
877
|
Button.displayName = "Button";
|
|
915
878
|
|
|
@@ -917,19 +880,19 @@ Button.displayName = "Button";
|
|
|
917
880
|
var Button_default = Button;
|
|
918
881
|
|
|
919
882
|
// src/components/Calendar/Calendar.tsx
|
|
920
|
-
var
|
|
883
|
+
var import_react15 = __toESM(require("react"));
|
|
921
884
|
var import_joy20 = require("@mui/joy");
|
|
922
885
|
var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
|
|
923
886
|
var import_ChevronRight = __toESM(require("@mui/icons-material/ChevronRight"));
|
|
924
887
|
var import_framer_motion13 = require("framer-motion");
|
|
925
888
|
|
|
926
889
|
// src/components/Tooltip/Tooltip.tsx
|
|
927
|
-
var
|
|
890
|
+
var import_react12 = __toESM(require("react"));
|
|
928
891
|
var import_joy18 = require("@mui/joy");
|
|
929
892
|
var import_framer_motion12 = require("framer-motion");
|
|
930
893
|
var MotionTooltip = (0, import_framer_motion12.motion)(import_joy18.Tooltip);
|
|
931
894
|
var Tooltip = (props) => {
|
|
932
|
-
return /* @__PURE__ */
|
|
895
|
+
return /* @__PURE__ */ import_react12.default.createElement(MotionTooltip, { ...props });
|
|
933
896
|
};
|
|
934
897
|
Tooltip.displayName = "Tooltip";
|
|
935
898
|
|
|
@@ -1011,43 +974,43 @@ var isSameMonth = (date1, date2) => {
|
|
|
1011
974
|
};
|
|
1012
975
|
|
|
1013
976
|
// src/components/Calendar/hooks/use-calendar-props.ts
|
|
1014
|
-
var
|
|
977
|
+
var import_react13 = require("react");
|
|
1015
978
|
var import_joy19 = require("@mui/joy");
|
|
1016
979
|
var resolveView = (view, views) => {
|
|
1017
980
|
return views.includes(view) ? view : views[0];
|
|
1018
981
|
};
|
|
1019
982
|
var useCalendarProps = (inProps) => {
|
|
1020
|
-
const [uncontrolledView, setUncontrolledView] = (0,
|
|
983
|
+
const [uncontrolledView, setUncontrolledView] = (0, import_react13.useState)(
|
|
1021
984
|
() => resolveView(inProps.view || "day", inProps.views || ["day", "month"])
|
|
1022
985
|
);
|
|
1023
|
-
const [uncontrolledValue, setUncontrolledValue] = (0,
|
|
986
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react13.useState)(
|
|
1024
987
|
inProps.defaultValue
|
|
1025
988
|
);
|
|
1026
|
-
const [viewMonth, setViewMonth] = (0,
|
|
989
|
+
const [viewMonth, setViewMonth] = (0, import_react13.useState)(() => {
|
|
1027
990
|
const today = /* @__PURE__ */ new Date();
|
|
1028
991
|
today.setDate(1);
|
|
1029
992
|
today.setHours(0, 0, 0, 0);
|
|
1030
993
|
return inProps.value?.[0] || inProps.defaultValue?.[0] || today;
|
|
1031
994
|
});
|
|
1032
|
-
const [[page, direction], setPage] = (0,
|
|
995
|
+
const [[page, direction], setPage] = (0, import_react13.useState)([0, 0]);
|
|
1033
996
|
const resolvedView = inProps.view ?? uncontrolledView;
|
|
1034
|
-
const resolvedMinDate = (0,
|
|
997
|
+
const resolvedMinDate = (0, import_react13.useMemo)(() => {
|
|
1035
998
|
const minDate = inProps.minDate || /* @__PURE__ */ new Date(0);
|
|
1036
999
|
minDate.setHours(0, 0, 0, 0);
|
|
1037
1000
|
return minDate;
|
|
1038
1001
|
}, [inProps.minDate]);
|
|
1039
|
-
const resolvedMaxDate = (0,
|
|
1002
|
+
const resolvedMaxDate = (0, import_react13.useMemo)(() => {
|
|
1040
1003
|
const maxDate = inProps.maxDate || /* @__PURE__ */ new Date(864e13);
|
|
1041
1004
|
maxDate.setHours(0, 0, 0, 0);
|
|
1042
1005
|
return maxDate;
|
|
1043
1006
|
}, [inProps.maxDate]);
|
|
1044
|
-
const paginate = (0,
|
|
1007
|
+
const paginate = (0, import_react13.useCallback)(
|
|
1045
1008
|
(newDirection) => {
|
|
1046
1009
|
setPage([page + newDirection, newDirection]);
|
|
1047
1010
|
},
|
|
1048
1011
|
[page]
|
|
1049
1012
|
);
|
|
1050
|
-
const handleViewMonthChange = (0,
|
|
1013
|
+
const handleViewMonthChange = (0, import_react13.useCallback)(
|
|
1051
1014
|
(newMonth) => {
|
|
1052
1015
|
setViewMonth(newMonth);
|
|
1053
1016
|
if (resolvedView === "month") {
|
|
@@ -1095,22 +1058,22 @@ var useCalendarProps = (inProps) => {
|
|
|
1095
1058
|
},
|
|
1096
1059
|
name: "Calendar"
|
|
1097
1060
|
});
|
|
1098
|
-
const ownerState = (0,
|
|
1061
|
+
const ownerState = (0, import_react13.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
|
|
1099
1062
|
return [props, ownerState];
|
|
1100
1063
|
};
|
|
1101
1064
|
|
|
1102
1065
|
// src/components/Calendar/hooks/use-calendar.ts
|
|
1103
|
-
var
|
|
1066
|
+
var import_react14 = require("react");
|
|
1104
1067
|
var useCalendar = (ownerState) => {
|
|
1105
|
-
const [localHoverDay, setLocalHoverDay] = (0,
|
|
1106
|
-
const [localHoverMonth, setLocalHoverMonth] = (0,
|
|
1068
|
+
const [localHoverDay, setLocalHoverDay] = (0, import_react14.useState)(null);
|
|
1069
|
+
const [localHoverMonth, setLocalHoverMonth] = (0, import_react14.useState)(null);
|
|
1107
1070
|
const hoverDay = ownerState.hoverDay !== void 0 ? ownerState.hoverDay : localHoverDay;
|
|
1108
1071
|
const setHoverDay = ownerState.onHoverDayChange ?? setLocalHoverDay;
|
|
1109
1072
|
const hoverMonth = ownerState.hoverMonth !== void 0 ? ownerState.hoverMonth : localHoverMonth;
|
|
1110
1073
|
const setHoverMonth = ownerState.onHoverMonthChange ?? setLocalHoverMonth;
|
|
1111
1074
|
return {
|
|
1112
1075
|
calendarTitle: ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default"),
|
|
1113
|
-
onPrev: (0,
|
|
1076
|
+
onPrev: (0, import_react14.useCallback)(() => {
|
|
1114
1077
|
if (ownerState.view === "day") {
|
|
1115
1078
|
const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1116
1079
|
const currentYear = currentDate.getFullYear();
|
|
@@ -1127,7 +1090,7 @@ var useCalendar = (ownerState) => {
|
|
|
1127
1090
|
ownerState.onMonthChange?.(prevYear);
|
|
1128
1091
|
}
|
|
1129
1092
|
}, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
|
|
1130
|
-
onNext: (0,
|
|
1093
|
+
onNext: (0, import_react14.useCallback)(() => {
|
|
1131
1094
|
if (ownerState.view === "day") {
|
|
1132
1095
|
const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1133
1096
|
const currentYear = currentDate.getFullYear();
|
|
@@ -1144,7 +1107,7 @@ var useCalendar = (ownerState) => {
|
|
|
1144
1107
|
ownerState.onMonthChange?.(nextYear);
|
|
1145
1108
|
}
|
|
1146
1109
|
}, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
|
|
1147
|
-
getDayCellProps: (0,
|
|
1110
|
+
getDayCellProps: (0, import_react14.useCallback)(
|
|
1148
1111
|
(day) => {
|
|
1149
1112
|
const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1150
1113
|
thisDay.setHours(0, 0, 0, 0);
|
|
@@ -1159,7 +1122,7 @@ var useCalendar = (ownerState) => {
|
|
|
1159
1122
|
},
|
|
1160
1123
|
[ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverDay]
|
|
1161
1124
|
),
|
|
1162
|
-
getMonthCellProps: (0,
|
|
1125
|
+
getMonthCellProps: (0, import_react14.useCallback)(
|
|
1163
1126
|
(monthIndex) => {
|
|
1164
1127
|
const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1165
1128
|
thisMonth.setDate(1);
|
|
@@ -1176,7 +1139,7 @@ var useCalendar = (ownerState) => {
|
|
|
1176
1139
|
},
|
|
1177
1140
|
[ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverMonth]
|
|
1178
1141
|
),
|
|
1179
|
-
getPickerDayProps: (0,
|
|
1142
|
+
getPickerDayProps: (0, import_react14.useCallback)(
|
|
1180
1143
|
(day) => {
|
|
1181
1144
|
const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1182
1145
|
thisDay.setHours(0, 0, 0, 0);
|
|
@@ -1230,7 +1193,7 @@ var useCalendar = (ownerState) => {
|
|
|
1230
1193
|
hoverDay
|
|
1231
1194
|
]
|
|
1232
1195
|
),
|
|
1233
|
-
getPickerMonthProps: (0,
|
|
1196
|
+
getPickerMonthProps: (0, import_react14.useCallback)(
|
|
1234
1197
|
(monthIndex) => {
|
|
1235
1198
|
const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1236
1199
|
thisMonth.setDate(1);
|
|
@@ -1527,9 +1490,9 @@ var swipePower = (offset, velocity) => {
|
|
|
1527
1490
|
var PickerDays = (props) => {
|
|
1528
1491
|
const { ownerState } = props;
|
|
1529
1492
|
const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
|
|
1530
|
-
const calendarDates = (0,
|
|
1531
|
-
const weekdayNames = (0,
|
|
1532
|
-
return /* @__PURE__ */
|
|
1493
|
+
const calendarDates = (0, import_react15.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
|
|
1494
|
+
const weekdayNames = (0, import_react15.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
|
|
1495
|
+
return /* @__PURE__ */ import_react15.default.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ import_react15.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react15.default.createElement(
|
|
1533
1496
|
CalendarViewTable,
|
|
1534
1497
|
{
|
|
1535
1498
|
key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
|
|
@@ -1558,10 +1521,10 @@ var PickerDays = (props) => {
|
|
|
1558
1521
|
}
|
|
1559
1522
|
}
|
|
1560
1523
|
},
|
|
1561
|
-
/* @__PURE__ */
|
|
1562
|
-
/* @__PURE__ */
|
|
1563
|
-
(date, i) => date ? /* @__PURE__ */
|
|
1564
|
-
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */
|
|
1524
|
+
/* @__PURE__ */ import_react15.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("th", null, /* @__PURE__ */ import_react15.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
|
|
1525
|
+
/* @__PURE__ */ import_react15.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekDates.map(
|
|
1526
|
+
(date, i) => date ? /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react15.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react15.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
|
|
1527
|
+
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react15.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react15.default.createElement("td", { colSpan: 13, style: { height: 4 } })))))
|
|
1565
1528
|
)));
|
|
1566
1529
|
};
|
|
1567
1530
|
var PickerMonths = (props) => {
|
|
@@ -1578,7 +1541,7 @@ var PickerMonths = (props) => {
|
|
|
1578
1541
|
[[]]
|
|
1579
1542
|
);
|
|
1580
1543
|
const isMonthPicker = !ownerState.views?.find((view) => view === "day");
|
|
1581
|
-
return /* @__PURE__ */
|
|
1544
|
+
return /* @__PURE__ */ import_react15.default.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ import_react15.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react15.default.createElement(
|
|
1582
1545
|
CalendarViewTable,
|
|
1583
1546
|
{
|
|
1584
1547
|
key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
|
|
@@ -1607,16 +1570,16 @@ var PickerMonths = (props) => {
|
|
|
1607
1570
|
}
|
|
1608
1571
|
}
|
|
1609
1572
|
},
|
|
1610
|
-
/* @__PURE__ */
|
|
1573
|
+
/* @__PURE__ */ import_react15.default.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: months.join("_") }, /* @__PURE__ */ import_react15.default.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: monthIndex }, /* @__PURE__ */ import_react15.default.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ import_react15.default.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ import_react15.default.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ import_react15.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react15.default.createElement("td", { colSpan: 7, style: { height: 4 } })))))
|
|
1611
1574
|
)));
|
|
1612
1575
|
};
|
|
1613
1576
|
var PlainPickerDays = ({ ownerState }) => {
|
|
1614
1577
|
const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
|
|
1615
|
-
const calendarDates = (0,
|
|
1616
|
-
const weekdayNames = (0,
|
|
1617
|
-
return /* @__PURE__ */
|
|
1618
|
-
(date, i) => date ? /* @__PURE__ */
|
|
1619
|
-
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */
|
|
1578
|
+
const calendarDates = (0, import_react15.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
|
|
1579
|
+
const weekdayNames = (0, import_react15.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
|
|
1580
|
+
return /* @__PURE__ */ import_react15.default.createElement(StaticCalendarViewTable, null, /* @__PURE__ */ import_react15.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("th", null, /* @__PURE__ */ import_react15.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))), /* @__PURE__ */ import_react15.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekDates.map(
|
|
1581
|
+
(date, i) => date ? /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react15.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react15.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
|
|
1582
|
+
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react15.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react15.default.createElement("td", { colSpan: 13, style: { height: 4 } }))))));
|
|
1620
1583
|
};
|
|
1621
1584
|
var MultiMonthPickerDays = ({
|
|
1622
1585
|
panels,
|
|
@@ -1635,7 +1598,7 @@ var MultiMonthPickerDays = ({
|
|
|
1635
1598
|
})
|
|
1636
1599
|
};
|
|
1637
1600
|
const key = `${panels[0].viewMonth.toISOString()}_${direction}`;
|
|
1638
|
-
return /* @__PURE__ */
|
|
1601
|
+
return /* @__PURE__ */ import_react15.default.createElement("div", { style: { position: "relative", overflow: "hidden", minHeight: "250px" } }, /* @__PURE__ */ import_react15.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: direction }, /* @__PURE__ */ import_react15.default.createElement(
|
|
1639
1602
|
import_framer_motion13.motion.div,
|
|
1640
1603
|
{
|
|
1641
1604
|
key,
|
|
@@ -1665,7 +1628,7 @@ var MultiMonthPickerDays = ({
|
|
|
1665
1628
|
},
|
|
1666
1629
|
style: { display: "flex", gap: `${CALENDAR_PANEL_GAP}px`, top: 0, left: 0, width: "100%" }
|
|
1667
1630
|
},
|
|
1668
|
-
panels.map((panelOwnerState) => /* @__PURE__ */
|
|
1631
|
+
panels.map((panelOwnerState) => /* @__PURE__ */ import_react15.default.createElement(
|
|
1669
1632
|
"div",
|
|
1670
1633
|
{
|
|
1671
1634
|
key: panelOwnerState.viewMonth.toISOString(),
|
|
@@ -1677,7 +1640,7 @@ var MultiMonthPickerDays = ({
|
|
|
1677
1640
|
boxSizing: "border-box"
|
|
1678
1641
|
}
|
|
1679
1642
|
},
|
|
1680
|
-
/* @__PURE__ */
|
|
1643
|
+
/* @__PURE__ */ import_react15.default.createElement(PlainPickerDays, { ownerState: panelOwnerState })
|
|
1681
1644
|
))
|
|
1682
1645
|
)));
|
|
1683
1646
|
};
|
|
@@ -1694,7 +1657,7 @@ var CalendarPanel = ({
|
|
|
1694
1657
|
const showPrev = panelIndex === 0;
|
|
1695
1658
|
const showNext = panelIndex === totalPanels - 1;
|
|
1696
1659
|
const title = ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default");
|
|
1697
|
-
return /* @__PURE__ */
|
|
1660
|
+
return /* @__PURE__ */ import_react15.default.createElement("div", { style: { flex: 1, maxWidth: `${CALENDAR_PANEL_WIDTH}px` } }, /* @__PURE__ */ import_react15.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react15.default.createElement(
|
|
1698
1661
|
IconButton_default,
|
|
1699
1662
|
{
|
|
1700
1663
|
size: "sm",
|
|
@@ -1702,8 +1665,8 @@ var CalendarPanel = ({
|
|
|
1702
1665
|
"aria-label": `Previous ${ownerState.view === "day" ? "Month" : "Year"}`,
|
|
1703
1666
|
style: { visibility: showPrev ? "visible" : "hidden" }
|
|
1704
1667
|
},
|
|
1705
|
-
/* @__PURE__ */
|
|
1706
|
-
), /* @__PURE__ */
|
|
1668
|
+
/* @__PURE__ */ import_react15.default.createElement(import_ChevronLeft.default, null)
|
|
1669
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
1707
1670
|
Tooltip_default,
|
|
1708
1671
|
{
|
|
1709
1672
|
title: monthViewHintMessage,
|
|
@@ -1715,7 +1678,7 @@ var CalendarPanel = ({
|
|
|
1715
1678
|
disableTouchListener: true,
|
|
1716
1679
|
variant: "solid"
|
|
1717
1680
|
},
|
|
1718
|
-
/* @__PURE__ */
|
|
1681
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
1719
1682
|
CalendarSwitchViewButton,
|
|
1720
1683
|
{
|
|
1721
1684
|
ownerState,
|
|
@@ -1726,7 +1689,7 @@ var CalendarPanel = ({
|
|
|
1726
1689
|
},
|
|
1727
1690
|
title
|
|
1728
1691
|
)
|
|
1729
|
-
), /* @__PURE__ */
|
|
1692
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
1730
1693
|
IconButton_default,
|
|
1731
1694
|
{
|
|
1732
1695
|
size: "sm",
|
|
@@ -1734,10 +1697,10 @@ var CalendarPanel = ({
|
|
|
1734
1697
|
"aria-label": `Next ${ownerState.view === "day" ? "Month" : "Year"}`,
|
|
1735
1698
|
style: { visibility: showNext ? "visible" : "hidden" }
|
|
1736
1699
|
},
|
|
1737
|
-
/* @__PURE__ */
|
|
1700
|
+
/* @__PURE__ */ import_react15.default.createElement(import_ChevronRight.default, null)
|
|
1738
1701
|
)));
|
|
1739
1702
|
};
|
|
1740
|
-
var Calendar = (0,
|
|
1703
|
+
var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
1741
1704
|
const [props, ownerState] = useCalendarProps(inProps);
|
|
1742
1705
|
const {
|
|
1743
1706
|
value,
|
|
@@ -1757,38 +1720,38 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1757
1720
|
...others
|
|
1758
1721
|
} = props;
|
|
1759
1722
|
const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
|
|
1760
|
-
const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0,
|
|
1761
|
-
const monthNavClickTimestampsRef = (0,
|
|
1762
|
-
const monthViewAssistHintShownInSessionRef = (0,
|
|
1763
|
-
const monthViewAssistHintTimeoutRef = (0,
|
|
1764
|
-
const [hoverDay, setHoverDay] = (0,
|
|
1765
|
-
const [hoverMonth, setHoverMonth] = (0,
|
|
1723
|
+
const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react15.useState)(false);
|
|
1724
|
+
const monthNavClickTimestampsRef = (0, import_react15.useRef)([]);
|
|
1725
|
+
const monthViewAssistHintShownInSessionRef = (0, import_react15.useRef)(false);
|
|
1726
|
+
const monthViewAssistHintTimeoutRef = (0, import_react15.useRef)(null);
|
|
1727
|
+
const [hoverDay, setHoverDay] = (0, import_react15.useState)(null);
|
|
1728
|
+
const [hoverMonth, setHoverMonth] = (0, import_react15.useState)(null);
|
|
1766
1729
|
const resolvedNumberOfMonths = numberOfMonths ?? 1;
|
|
1767
1730
|
const hasEndDate = Boolean(value?.[1]);
|
|
1768
1731
|
const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
|
|
1769
1732
|
const isHintEligible = Boolean(view === "day" && (!rangeSelection || isRangeHintEligible));
|
|
1770
1733
|
const monthViewHintMessage = MONTH_VIEW_HINT_MESSAGE;
|
|
1771
|
-
(0,
|
|
1734
|
+
(0, import_react15.useEffect)(() => {
|
|
1772
1735
|
if (!isHintEligible) {
|
|
1773
1736
|
monthNavClickTimestampsRef.current = [];
|
|
1774
1737
|
setIsMonthViewAssistHintOpen(false);
|
|
1775
1738
|
}
|
|
1776
1739
|
}, [isHintEligible]);
|
|
1777
|
-
(0,
|
|
1740
|
+
(0, import_react15.useEffect)(() => {
|
|
1778
1741
|
return () => {
|
|
1779
1742
|
if (monthViewAssistHintTimeoutRef.current) {
|
|
1780
1743
|
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1781
1744
|
}
|
|
1782
1745
|
};
|
|
1783
1746
|
}, []);
|
|
1784
|
-
const closeMonthViewAssistHint = (0,
|
|
1747
|
+
const closeMonthViewAssistHint = (0, import_react15.useCallback)(() => {
|
|
1785
1748
|
if (monthViewAssistHintTimeoutRef.current) {
|
|
1786
1749
|
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1787
1750
|
monthViewAssistHintTimeoutRef.current = null;
|
|
1788
1751
|
}
|
|
1789
1752
|
setIsMonthViewAssistHintOpen(false);
|
|
1790
1753
|
}, []);
|
|
1791
|
-
const showMonthViewAssistHint = (0,
|
|
1754
|
+
const showMonthViewAssistHint = (0, import_react15.useCallback)(() => {
|
|
1792
1755
|
const now = Date.now();
|
|
1793
1756
|
if (monthViewAssistHintShownInSessionRef.current) return;
|
|
1794
1757
|
if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
|
|
@@ -1803,7 +1766,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1803
1766
|
monthViewAssistHintTimeoutRef.current = null;
|
|
1804
1767
|
}, MONTH_VIEW_HINT_DURATION_MS);
|
|
1805
1768
|
}, []);
|
|
1806
|
-
const trackFastMonthNavigation = (0,
|
|
1769
|
+
const trackFastMonthNavigation = (0, import_react15.useCallback)(() => {
|
|
1807
1770
|
if (!isHintEligible) return;
|
|
1808
1771
|
const now = Date.now();
|
|
1809
1772
|
monthNavClickTimestampsRef.current = [
|
|
@@ -1814,15 +1777,15 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1814
1777
|
showMonthViewAssistHint();
|
|
1815
1778
|
}
|
|
1816
1779
|
}, [isHintEligible, showMonthViewAssistHint]);
|
|
1817
|
-
const handlePrevClick = (0,
|
|
1780
|
+
const handlePrevClick = (0, import_react15.useCallback)(() => {
|
|
1818
1781
|
onPrev();
|
|
1819
1782
|
trackFastMonthNavigation();
|
|
1820
1783
|
}, [onPrev, trackFastMonthNavigation]);
|
|
1821
|
-
const handleNextClick = (0,
|
|
1784
|
+
const handleNextClick = (0, import_react15.useCallback)(() => {
|
|
1822
1785
|
onNext();
|
|
1823
1786
|
trackFastMonthNavigation();
|
|
1824
1787
|
}, [onNext, trackFastMonthNavigation]);
|
|
1825
|
-
const handleSwitchViewClick = (0,
|
|
1788
|
+
const handleSwitchViewClick = (0, import_react15.useCallback)(() => {
|
|
1826
1789
|
closeMonthViewAssistHint();
|
|
1827
1790
|
onViewChange?.();
|
|
1828
1791
|
}, [closeMonthViewAssistHint, onViewChange]);
|
|
@@ -1842,9 +1805,9 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1842
1805
|
onHoverMonthChange: setHoverMonth
|
|
1843
1806
|
};
|
|
1844
1807
|
});
|
|
1845
|
-
return /* @__PURE__ */
|
|
1808
|
+
return /* @__PURE__ */ import_react15.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
|
|
1846
1809
|
// Month view: single header + single month grid (consistent with single-month path)
|
|
1847
|
-
/* @__PURE__ */
|
|
1810
|
+
/* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": "Previous Year" }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react15.default.createElement(
|
|
1848
1811
|
Tooltip_default,
|
|
1849
1812
|
{
|
|
1850
1813
|
title: monthViewHintMessage,
|
|
@@ -1856,7 +1819,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1856
1819
|
disableTouchListener: true,
|
|
1857
1820
|
variant: "solid"
|
|
1858
1821
|
},
|
|
1859
|
-
/* @__PURE__ */
|
|
1822
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
1860
1823
|
CalendarSwitchViewButton,
|
|
1861
1824
|
{
|
|
1862
1825
|
ownerState,
|
|
@@ -1867,8 +1830,8 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1867
1830
|
},
|
|
1868
1831
|
calendarTitle
|
|
1869
1832
|
)
|
|
1870
|
-
), /* @__PURE__ */
|
|
1871
|
-
) : /* @__PURE__ */
|
|
1833
|
+
), /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": "Next Year" }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronRight.default, null))), /* @__PURE__ */ import_react15.default.createElement(PickerMonths, { ownerState }))
|
|
1834
|
+
) : /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(CalendarMultiContainer, null, panels.map((panelOwnerState, i) => /* @__PURE__ */ import_react15.default.createElement(
|
|
1872
1835
|
CalendarPanel,
|
|
1873
1836
|
{
|
|
1874
1837
|
key: panelOwnerState.viewMonth.toISOString(),
|
|
@@ -1881,7 +1844,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1881
1844
|
isMonthViewAssistHintOpen,
|
|
1882
1845
|
monthViewHintMessage
|
|
1883
1846
|
}
|
|
1884
|
-
))), /* @__PURE__ */
|
|
1847
|
+
))), /* @__PURE__ */ import_react15.default.createElement(
|
|
1885
1848
|
MultiMonthPickerDays,
|
|
1886
1849
|
{
|
|
1887
1850
|
panels,
|
|
@@ -1890,7 +1853,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1890
1853
|
}
|
|
1891
1854
|
)));
|
|
1892
1855
|
}
|
|
1893
|
-
return /* @__PURE__ */
|
|
1856
|
+
return /* @__PURE__ */ import_react15.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, /* @__PURE__ */ import_react15.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react15.default.createElement(
|
|
1894
1857
|
Tooltip_default,
|
|
1895
1858
|
{
|
|
1896
1859
|
title: monthViewHintMessage,
|
|
@@ -1902,7 +1865,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1902
1865
|
disableTouchListener: true,
|
|
1903
1866
|
variant: "solid"
|
|
1904
1867
|
},
|
|
1905
|
-
/* @__PURE__ */
|
|
1868
|
+
/* @__PURE__ */ import_react15.default.createElement(
|
|
1906
1869
|
CalendarSwitchViewButton,
|
|
1907
1870
|
{
|
|
1908
1871
|
ownerState,
|
|
@@ -1913,7 +1876,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
|
1913
1876
|
},
|
|
1914
1877
|
calendarTitle
|
|
1915
1878
|
)
|
|
1916
|
-
), /* @__PURE__ */
|
|
1879
|
+
), /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronRight.default, null))), view === "day" && /* @__PURE__ */ import_react15.default.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ import_react15.default.createElement(PickerMonths, { ownerState }));
|
|
1917
1880
|
});
|
|
1918
1881
|
Calendar.displayName = "Calendar";
|
|
1919
1882
|
|
|
@@ -1940,12 +1903,12 @@ var CardOverflow = MotionCardOverflow;
|
|
|
1940
1903
|
CardOverflow.displayName = "CardOverflow";
|
|
1941
1904
|
|
|
1942
1905
|
// src/components/Checkbox/Checkbox.tsx
|
|
1943
|
-
var
|
|
1906
|
+
var import_react16 = __toESM(require("react"));
|
|
1944
1907
|
var import_joy22 = require("@mui/joy");
|
|
1945
1908
|
var import_framer_motion15 = require("framer-motion");
|
|
1946
1909
|
var MotionCheckbox = (0, import_framer_motion15.motion)(import_joy22.Checkbox);
|
|
1947
1910
|
var Checkbox = (props) => {
|
|
1948
|
-
return /* @__PURE__ */
|
|
1911
|
+
return /* @__PURE__ */ import_react16.default.createElement(MotionCheckbox, { ...props });
|
|
1949
1912
|
};
|
|
1950
1913
|
Checkbox.displayName = "Checkbox";
|
|
1951
1914
|
|
|
@@ -1954,7 +1917,7 @@ var Checkbox_default = Checkbox;
|
|
|
1954
1917
|
|
|
1955
1918
|
// src/components/Container/Container.tsx
|
|
1956
1919
|
var import_joy23 = require("@mui/joy");
|
|
1957
|
-
var
|
|
1920
|
+
var import_react17 = __toESM(require("react"));
|
|
1958
1921
|
var ContainerRoot = (0, import_joy23.styled)("div", {
|
|
1959
1922
|
name: "Container",
|
|
1960
1923
|
slot: "root",
|
|
@@ -1980,24 +1943,24 @@ var ContainerRoot = (0, import_joy23.styled)("div", {
|
|
|
1980
1943
|
paddingRight: theme.breakpoints.values[overrideBreakpoint] >= theme.breakpoints.values.lg ? theme.spacing(8) : theme.spacing(4)
|
|
1981
1944
|
} : null
|
|
1982
1945
|
]);
|
|
1983
|
-
var Container = (0,
|
|
1984
|
-
return /* @__PURE__ */
|
|
1946
|
+
var Container = (0, import_react17.forwardRef)(function Container2(props, ref) {
|
|
1947
|
+
return /* @__PURE__ */ import_react17.default.createElement(ContainerRoot, { ref, ...props });
|
|
1985
1948
|
});
|
|
1986
1949
|
Container.displayName = "Container";
|
|
1987
1950
|
|
|
1988
1951
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
1989
|
-
var
|
|
1952
|
+
var import_react19 = __toESM(require("react"));
|
|
1990
1953
|
var import_react_number_format = require("react-number-format");
|
|
1991
1954
|
|
|
1992
1955
|
// src/components/Input/Input.tsx
|
|
1993
|
-
var
|
|
1956
|
+
var import_react18 = __toESM(require("react"));
|
|
1994
1957
|
var import_joy24 = require("@mui/joy");
|
|
1995
1958
|
var import_framer_motion16 = require("framer-motion");
|
|
1996
1959
|
var import_Close2 = __toESM(require("@mui/icons-material/Close"));
|
|
1997
1960
|
var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
|
|
1998
1961
|
var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
|
|
1999
1962
|
var MotionInput = (0, import_framer_motion16.motion)(import_joy24.Input);
|
|
2000
|
-
var Input =
|
|
1963
|
+
var Input = import_react18.default.forwardRef((props, ref) => {
|
|
2001
1964
|
const {
|
|
2002
1965
|
label,
|
|
2003
1966
|
helperText,
|
|
@@ -2024,11 +1987,11 @@ var Input = import_react19.default.forwardRef((props, ref) => {
|
|
|
2024
1987
|
if (type === "password" && innerProps.endDecorator) {
|
|
2025
1988
|
console.warn('Input: endDecorator is not supported when type="password"');
|
|
2026
1989
|
}
|
|
2027
|
-
const [passwordVisible, setPasswordVisible] = (0,
|
|
1990
|
+
const [passwordVisible, setPasswordVisible] = (0, import_react18.useState)(false);
|
|
2028
1991
|
const [value, setValue] = useControlledState(
|
|
2029
1992
|
valueProp,
|
|
2030
1993
|
defaultValueProp ?? null,
|
|
2031
|
-
(0,
|
|
1994
|
+
(0, import_react18.useCallback)(
|
|
2032
1995
|
(value2) => {
|
|
2033
1996
|
onChange?.({
|
|
2034
1997
|
/**
|
|
@@ -2055,7 +2018,7 @@ var Input = import_react19.default.forwardRef((props, ref) => {
|
|
|
2055
2018
|
const actualType = type === "password" && passwordVisible ? "text" : type;
|
|
2056
2019
|
const isPasswordType = type === "password";
|
|
2057
2020
|
const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
|
|
2058
|
-
const input = /* @__PURE__ */
|
|
2021
|
+
const input = /* @__PURE__ */ import_react18.default.createElement(
|
|
2059
2022
|
MotionInput,
|
|
2060
2023
|
{
|
|
2061
2024
|
value: displayValue ?? "",
|
|
@@ -2070,7 +2033,7 @@ var Input = import_react19.default.forwardRef((props, ref) => {
|
|
|
2070
2033
|
...innerProps.slotProps
|
|
2071
2034
|
},
|
|
2072
2035
|
...innerProps,
|
|
2073
|
-
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */
|
|
2036
|
+
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react18.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react18.default.createElement(
|
|
2074
2037
|
IconButton_default,
|
|
2075
2038
|
{
|
|
2076
2039
|
onMouseDown: (e) => e.preventDefault(),
|
|
@@ -2078,19 +2041,19 @@ var Input = import_react19.default.forwardRef((props, ref) => {
|
|
|
2078
2041
|
disabled,
|
|
2079
2042
|
"aria-label": passwordVisible ? "Hide password" : "Show password"
|
|
2080
2043
|
},
|
|
2081
|
-
passwordVisible ? /* @__PURE__ */
|
|
2082
|
-
)) : null : enableClearable ? /* @__PURE__ */
|
|
2044
|
+
passwordVisible ? /* @__PURE__ */ import_react18.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react18.default.createElement(import_Visibility.default, null)
|
|
2045
|
+
)) : null : enableClearable ? /* @__PURE__ */ import_react18.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, displayValue && /* @__PURE__ */ import_react18.default.createElement(
|
|
2083
2046
|
IconButton_default,
|
|
2084
2047
|
{
|
|
2085
2048
|
onMouseDown: (e) => e.preventDefault(),
|
|
2086
2049
|
onClick: handleClear,
|
|
2087
2050
|
"aria-label": "Clear"
|
|
2088
2051
|
},
|
|
2089
|
-
/* @__PURE__ */
|
|
2052
|
+
/* @__PURE__ */ import_react18.default.createElement(import_Close2.default, null)
|
|
2090
2053
|
)) : innerProps.endDecorator
|
|
2091
2054
|
}
|
|
2092
2055
|
);
|
|
2093
|
-
return /* @__PURE__ */
|
|
2056
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
2094
2057
|
FormControl_default,
|
|
2095
2058
|
{
|
|
2096
2059
|
required,
|
|
@@ -2101,9 +2064,9 @@ var Input = import_react19.default.forwardRef((props, ref) => {
|
|
|
2101
2064
|
sx,
|
|
2102
2065
|
className
|
|
2103
2066
|
},
|
|
2104
|
-
label && /* @__PURE__ */
|
|
2067
|
+
label && /* @__PURE__ */ import_react18.default.createElement(FormLabel_default, null, label),
|
|
2105
2068
|
input,
|
|
2106
|
-
helperText && /* @__PURE__ */
|
|
2069
|
+
helperText && /* @__PURE__ */ import_react18.default.createElement(FormHelperText_default, null, helperText)
|
|
2107
2070
|
);
|
|
2108
2071
|
});
|
|
2109
2072
|
Input.displayName = "Input";
|
|
@@ -2275,9 +2238,9 @@ var useCurrencySetting = (props) => {
|
|
|
2275
2238
|
};
|
|
2276
2239
|
|
|
2277
2240
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
2278
|
-
var TextMaskAdapter =
|
|
2241
|
+
var TextMaskAdapter = import_react19.default.forwardRef(function TextMaskAdapter2(props, ref) {
|
|
2279
2242
|
const { onChange, ...innerProps } = props;
|
|
2280
|
-
return /* @__PURE__ */
|
|
2243
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
2281
2244
|
import_react_number_format.NumericFormat,
|
|
2282
2245
|
{
|
|
2283
2246
|
...innerProps,
|
|
@@ -2297,7 +2260,7 @@ var CurrencyInputRoot = (0, import_joy25.styled)(Input_default, {
|
|
|
2297
2260
|
slot: "root",
|
|
2298
2261
|
overridesResolver: (props, styles) => styles.root
|
|
2299
2262
|
})({});
|
|
2300
|
-
var CurrencyInput =
|
|
2263
|
+
var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(inProps, ref) {
|
|
2301
2264
|
const props = (0, import_joy25.useThemeProps)({ props: inProps, name: "CurrencyInput" });
|
|
2302
2265
|
const {
|
|
2303
2266
|
currency = "USD",
|
|
@@ -2318,22 +2281,22 @@ var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(in
|
|
|
2318
2281
|
const [_value, setValue] = useControlledState(
|
|
2319
2282
|
props.value,
|
|
2320
2283
|
props.defaultValue ?? null,
|
|
2321
|
-
(0,
|
|
2284
|
+
(0, import_react19.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
2322
2285
|
);
|
|
2323
|
-
const value = (0,
|
|
2286
|
+
const value = (0, import_react19.useMemo)(() => {
|
|
2324
2287
|
if (_value && useMinorUnit) {
|
|
2325
2288
|
return _value / Math.pow(10, decimalScale);
|
|
2326
2289
|
}
|
|
2327
2290
|
return _value;
|
|
2328
2291
|
}, [_value, useMinorUnit, decimalScale]);
|
|
2329
|
-
const max = (0,
|
|
2292
|
+
const max = (0, import_react19.useMemo)(() => {
|
|
2330
2293
|
if (props.max && useMinorUnit) {
|
|
2331
2294
|
return props.max / Math.pow(10, decimalScale);
|
|
2332
2295
|
}
|
|
2333
2296
|
return props.max;
|
|
2334
2297
|
}, [props.max, useMinorUnit, decimalScale]);
|
|
2335
|
-
const isOverLimit = (0,
|
|
2336
|
-
const handleChange = (0,
|
|
2298
|
+
const isOverLimit = (0, import_react19.useMemo)(() => max != null && value != null && value > max, [max, value]);
|
|
2299
|
+
const handleChange = (0, import_react19.useCallback)(
|
|
2337
2300
|
(event) => {
|
|
2338
2301
|
if (event.target.value === "") {
|
|
2339
2302
|
setValue(null);
|
|
@@ -2344,7 +2307,7 @@ var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(in
|
|
|
2344
2307
|
},
|
|
2345
2308
|
[decimalSeparator, useMinorUnit, setValue]
|
|
2346
2309
|
);
|
|
2347
|
-
return /* @__PURE__ */
|
|
2310
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
2348
2311
|
CurrencyInputRoot,
|
|
2349
2312
|
{
|
|
2350
2313
|
...innerProps,
|
|
@@ -2381,7 +2344,7 @@ var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(in
|
|
|
2381
2344
|
var CurrencyInput_default = CurrencyInput;
|
|
2382
2345
|
|
|
2383
2346
|
// src/components/DataTable/DataTable.tsx
|
|
2384
|
-
var
|
|
2347
|
+
var import_react29 = __toESM(require("react"));
|
|
2385
2348
|
var import_react_virtual2 = require("@tanstack/react-virtual");
|
|
2386
2349
|
|
|
2387
2350
|
// src/libs/text-measurer.ts
|
|
@@ -2609,12 +2572,9 @@ function computeAutoFitWidth(params) {
|
|
|
2609
2572
|
if (!isNaN(maxPx) && maxPx > 0) finalWidth = Math.min(finalWidth, maxPx);
|
|
2610
2573
|
return finalWidth;
|
|
2611
2574
|
}
|
|
2612
|
-
function getHeaderCellId(tableId, columnId) {
|
|
2613
|
-
return `${tableId}_header_${columnId}`.trim();
|
|
2614
|
-
}
|
|
2615
2575
|
|
|
2616
2576
|
// src/components/DataTable/styled.tsx
|
|
2617
|
-
var
|
|
2577
|
+
var import_react20 = __toESM(require("react"));
|
|
2618
2578
|
var import_joy26 = require("@mui/joy");
|
|
2619
2579
|
var import_framer_motion17 = require("framer-motion");
|
|
2620
2580
|
var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
|
|
@@ -2720,9 +2680,9 @@ var StyledTd = (0, import_joy26.styled)("td")(({ theme }) => ({
|
|
|
2720
2680
|
}
|
|
2721
2681
|
}));
|
|
2722
2682
|
var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
|
|
2723
|
-
var DefaultLoadingOverlay = () => /* @__PURE__ */
|
|
2724
|
-
var DefaultNoRowsOverlay = () => /* @__PURE__ */
|
|
2725
|
-
var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */
|
|
2683
|
+
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react20.default.createElement(import_joy26.LinearProgress, { value: 8, variant: "plain" });
|
|
2684
|
+
var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react20.default.createElement(import_joy26.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
|
|
2685
|
+
var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react20.default.createElement(
|
|
2726
2686
|
Box_default,
|
|
2727
2687
|
{
|
|
2728
2688
|
sx: {
|
|
@@ -2799,12 +2759,12 @@ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PU
|
|
|
2799
2759
|
);
|
|
2800
2760
|
|
|
2801
2761
|
// src/components/DataTable/components.tsx
|
|
2802
|
-
var
|
|
2762
|
+
var import_react25 = __toESM(require("react"));
|
|
2803
2763
|
var import_joy33 = require("@mui/joy");
|
|
2804
2764
|
var import_framer_motion21 = require("framer-motion");
|
|
2805
2765
|
|
|
2806
2766
|
// src/components/DatePicker/DatePicker.tsx
|
|
2807
|
-
var
|
|
2767
|
+
var import_react21 = __toESM(require("react"));
|
|
2808
2768
|
var import_react_imask = require("react-imask");
|
|
2809
2769
|
var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
2810
2770
|
var import_joy29 = require("@mui/joy");
|
|
@@ -2957,9 +2917,9 @@ function parseDate(dateString, format) {
|
|
|
2957
2917
|
var formatToPattern = (format) => {
|
|
2958
2918
|
return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
2959
2919
|
};
|
|
2960
|
-
var TextMaskAdapter3 =
|
|
2920
|
+
var TextMaskAdapter3 = import_react21.default.forwardRef(function TextMaskAdapter4(props, ref) {
|
|
2961
2921
|
const { onChange, format, ...other } = props;
|
|
2962
|
-
return /* @__PURE__ */
|
|
2922
|
+
return /* @__PURE__ */ import_react21.default.createElement(
|
|
2963
2923
|
import_react_imask.IMaskInput,
|
|
2964
2924
|
{
|
|
2965
2925
|
...other,
|
|
@@ -2994,7 +2954,7 @@ var TextMaskAdapter3 = import_react22.default.forwardRef(function TextMaskAdapte
|
|
|
2994
2954
|
}
|
|
2995
2955
|
);
|
|
2996
2956
|
});
|
|
2997
|
-
var DatePicker = (0,
|
|
2957
|
+
var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
2998
2958
|
const props = (0, import_joy29.useThemeProps)({ props: inProps, name: "DatePicker" });
|
|
2999
2959
|
const {
|
|
3000
2960
|
onChange,
|
|
@@ -3021,29 +2981,29 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3021
2981
|
presets,
|
|
3022
2982
|
...innerProps
|
|
3023
2983
|
} = props;
|
|
3024
|
-
const innerRef = (0,
|
|
3025
|
-
const buttonRef = (0,
|
|
2984
|
+
const innerRef = (0, import_react21.useRef)(null);
|
|
2985
|
+
const buttonRef = (0, import_react21.useRef)(null);
|
|
3026
2986
|
const [rawValue, setValue] = useControlledState(
|
|
3027
2987
|
props.value,
|
|
3028
2988
|
props.defaultValue ?? null,
|
|
3029
|
-
(0,
|
|
2989
|
+
(0, import_react21.useCallback)(
|
|
3030
2990
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
3031
2991
|
[props.name, onChange]
|
|
3032
2992
|
)
|
|
3033
2993
|
);
|
|
3034
2994
|
const value = rawValue ?? "";
|
|
3035
2995
|
const isAlphabeticDisplay = hasAlphabeticMonth(displayFormat);
|
|
3036
|
-
const [displayValue, setDisplayValue] = (0,
|
|
2996
|
+
const [displayValue, setDisplayValue] = (0, import_react21.useState)(
|
|
3037
2997
|
() => value ? formatValueString(parseDate(value, format), displayFormat, locale) : ""
|
|
3038
2998
|
);
|
|
3039
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
2999
|
+
const [anchorEl, setAnchorEl] = (0, import_react21.useState)(null);
|
|
3040
3000
|
const open = Boolean(anchorEl);
|
|
3041
|
-
(0,
|
|
3001
|
+
(0, import_react21.useEffect)(() => {
|
|
3042
3002
|
if (!anchorEl) {
|
|
3043
3003
|
innerRef.current?.blur();
|
|
3044
3004
|
}
|
|
3045
3005
|
}, [anchorEl, innerRef]);
|
|
3046
|
-
(0,
|
|
3006
|
+
(0, import_react21.useEffect)(() => {
|
|
3047
3007
|
if (value === "") {
|
|
3048
3008
|
setDisplayValue("");
|
|
3049
3009
|
return;
|
|
@@ -3053,8 +3013,8 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3053
3013
|
setDisplayValue(formattedValue);
|
|
3054
3014
|
}
|
|
3055
3015
|
}, [displayFormat, displayValue, format, locale, value]);
|
|
3056
|
-
(0,
|
|
3057
|
-
const handleChange = (0,
|
|
3016
|
+
(0, import_react21.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
3017
|
+
const handleChange = (0, import_react21.useCallback)(
|
|
3058
3018
|
(event) => {
|
|
3059
3019
|
const value2 = event.target.value;
|
|
3060
3020
|
setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat, locale) : value2);
|
|
@@ -3062,7 +3022,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3062
3022
|
},
|
|
3063
3023
|
[displayFormat, format, locale, setValue]
|
|
3064
3024
|
);
|
|
3065
|
-
const handleDisplayInputChange = (0,
|
|
3025
|
+
const handleDisplayInputChange = (0, import_react21.useCallback)(
|
|
3066
3026
|
(event) => {
|
|
3067
3027
|
if (event.target.value === "") {
|
|
3068
3028
|
handleChange({
|
|
@@ -3087,7 +3047,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3087
3047
|
},
|
|
3088
3048
|
[displayFormat, format, handleChange, props.name]
|
|
3089
3049
|
);
|
|
3090
|
-
const handleCalendarToggle = (0,
|
|
3050
|
+
const handleCalendarToggle = (0, import_react21.useCallback)(
|
|
3091
3051
|
(event) => {
|
|
3092
3052
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
3093
3053
|
setTimeout(() => {
|
|
@@ -3096,7 +3056,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3096
3056
|
},
|
|
3097
3057
|
[anchorEl, setAnchorEl, innerRef]
|
|
3098
3058
|
);
|
|
3099
|
-
const handleInputMouseDown = (0,
|
|
3059
|
+
const handleInputMouseDown = (0, import_react21.useCallback)(
|
|
3100
3060
|
(event) => {
|
|
3101
3061
|
if (inputReadOnly || isAlphabeticDisplay) {
|
|
3102
3062
|
event.preventDefault();
|
|
@@ -3105,7 +3065,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3105
3065
|
},
|
|
3106
3066
|
[inputReadOnly, isAlphabeticDisplay, buttonRef]
|
|
3107
3067
|
);
|
|
3108
|
-
const handleInputClick = (0,
|
|
3068
|
+
const handleInputClick = (0, import_react21.useCallback)(
|
|
3109
3069
|
(event) => {
|
|
3110
3070
|
if (inputReadOnly && !readOnly) {
|
|
3111
3071
|
handleCalendarToggle(event);
|
|
@@ -3113,7 +3073,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3113
3073
|
},
|
|
3114
3074
|
[inputReadOnly, readOnly, handleCalendarToggle]
|
|
3115
3075
|
);
|
|
3116
|
-
const handlePresetClick = (0,
|
|
3076
|
+
const handlePresetClick = (0, import_react21.useCallback)(
|
|
3117
3077
|
(presetValue) => {
|
|
3118
3078
|
handleChange({
|
|
3119
3079
|
target: {
|
|
@@ -3125,7 +3085,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3125
3085
|
},
|
|
3126
3086
|
[handleChange, props.name]
|
|
3127
3087
|
);
|
|
3128
|
-
const isPresetDisabled = (0,
|
|
3088
|
+
const isPresetDisabled = (0, import_react21.useCallback)(
|
|
3129
3089
|
(presetValue) => {
|
|
3130
3090
|
try {
|
|
3131
3091
|
const date = parseDate(presetValue, format);
|
|
@@ -3142,7 +3102,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3142
3102
|
},
|
|
3143
3103
|
[format, minDate, maxDate, disableFuture, disablePast, shouldDisableDate]
|
|
3144
3104
|
);
|
|
3145
|
-
return /* @__PURE__ */
|
|
3105
|
+
return /* @__PURE__ */ import_react21.default.createElement(DatePickerRoot, { sx, className }, /* @__PURE__ */ import_react21.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
|
|
3146
3106
|
Input_default,
|
|
3147
3107
|
{
|
|
3148
3108
|
...innerProps,
|
|
@@ -3169,7 +3129,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3169
3129
|
}
|
|
3170
3130
|
},
|
|
3171
3131
|
sx: { width: "100%" },
|
|
3172
|
-
endDecorator: /* @__PURE__ */
|
|
3132
|
+
endDecorator: /* @__PURE__ */ import_react21.default.createElement(
|
|
3173
3133
|
CalendarButton,
|
|
3174
3134
|
{
|
|
3175
3135
|
ref: buttonRef,
|
|
@@ -3181,13 +3141,13 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3181
3141
|
"aria-expanded": open,
|
|
3182
3142
|
disabled
|
|
3183
3143
|
},
|
|
3184
|
-
/* @__PURE__ */
|
|
3144
|
+
/* @__PURE__ */ import_react21.default.createElement(import_CalendarToday.default, null)
|
|
3185
3145
|
),
|
|
3186
3146
|
label,
|
|
3187
3147
|
helperText,
|
|
3188
3148
|
readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
|
|
3189
3149
|
}
|
|
3190
|
-
), open && /* @__PURE__ */
|
|
3150
|
+
), open && /* @__PURE__ */ import_react21.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react21.default.createElement(
|
|
3191
3151
|
StyledPopper,
|
|
3192
3152
|
{
|
|
3193
3153
|
id: "date-picker-popper",
|
|
@@ -3206,7 +3166,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3206
3166
|
"aria-label": "Calendar Tooltip",
|
|
3207
3167
|
"aria-expanded": open
|
|
3208
3168
|
},
|
|
3209
|
-
/* @__PURE__ */
|
|
3169
|
+
/* @__PURE__ */ import_react21.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react21.default.createElement(CalendarSheetContent, null, /* @__PURE__ */ import_react21.default.createElement(CalendarSection, null, /* @__PURE__ */ import_react21.default.createElement(
|
|
3210
3170
|
Calendar_default,
|
|
3211
3171
|
{
|
|
3212
3172
|
value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
|
|
@@ -3226,14 +3186,14 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3226
3186
|
shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0,
|
|
3227
3187
|
locale
|
|
3228
3188
|
}
|
|
3229
|
-
), !hideClearButton && /* @__PURE__ */
|
|
3189
|
+
), !hideClearButton && /* @__PURE__ */ import_react21.default.createElement(
|
|
3230
3190
|
DialogActions_default,
|
|
3231
3191
|
{
|
|
3232
3192
|
sx: {
|
|
3233
3193
|
p: 1
|
|
3234
3194
|
}
|
|
3235
3195
|
},
|
|
3236
|
-
/* @__PURE__ */
|
|
3196
|
+
/* @__PURE__ */ import_react21.default.createElement(
|
|
3237
3197
|
Button_default,
|
|
3238
3198
|
{
|
|
3239
3199
|
size,
|
|
@@ -3251,9 +3211,9 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3251
3211
|
},
|
|
3252
3212
|
"Clear"
|
|
3253
3213
|
)
|
|
3254
|
-
)), presets && presets.length > 0 && /* @__PURE__ */
|
|
3214
|
+
)), presets && presets.length > 0 && /* @__PURE__ */ import_react21.default.createElement(PresetPanel, null, presets.map((preset) => {
|
|
3255
3215
|
const disabled2 = isPresetDisabled(preset.value);
|
|
3256
|
-
return /* @__PURE__ */
|
|
3216
|
+
return /* @__PURE__ */ import_react21.default.createElement(
|
|
3257
3217
|
PresetItem,
|
|
3258
3218
|
{
|
|
3259
3219
|
key: preset.label,
|
|
@@ -3274,11 +3234,11 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
|
3274
3234
|
var DatePicker_default = DatePicker;
|
|
3275
3235
|
|
|
3276
3236
|
// src/components/Textarea/Textarea.tsx
|
|
3277
|
-
var
|
|
3237
|
+
var import_react22 = __toESM(require("react"));
|
|
3278
3238
|
var import_joy30 = require("@mui/joy");
|
|
3279
3239
|
var import_framer_motion19 = require("framer-motion");
|
|
3280
3240
|
var MotionTextarea = (0, import_framer_motion19.motion)(import_joy30.Textarea);
|
|
3281
|
-
var
|
|
3241
|
+
var Textarea = (props) => {
|
|
3282
3242
|
const {
|
|
3283
3243
|
label,
|
|
3284
3244
|
error,
|
|
@@ -3294,7 +3254,7 @@ var TextareaBase = (props) => {
|
|
|
3294
3254
|
className,
|
|
3295
3255
|
...innerProps
|
|
3296
3256
|
} = props;
|
|
3297
|
-
const textarea = /* @__PURE__ */
|
|
3257
|
+
const textarea = /* @__PURE__ */ import_react22.default.createElement(
|
|
3298
3258
|
MotionTextarea,
|
|
3299
3259
|
{
|
|
3300
3260
|
required,
|
|
@@ -3306,7 +3266,7 @@ var TextareaBase = (props) => {
|
|
|
3306
3266
|
...innerProps
|
|
3307
3267
|
}
|
|
3308
3268
|
);
|
|
3309
|
-
return /* @__PURE__ */
|
|
3269
|
+
return /* @__PURE__ */ import_react22.default.createElement(
|
|
3310
3270
|
FormControl_default,
|
|
3311
3271
|
{
|
|
3312
3272
|
required,
|
|
@@ -3317,22 +3277,18 @@ var TextareaBase = (props) => {
|
|
|
3317
3277
|
sx,
|
|
3318
3278
|
className
|
|
3319
3279
|
},
|
|
3320
|
-
label && /* @__PURE__ */
|
|
3280
|
+
label && /* @__PURE__ */ import_react22.default.createElement(FormLabel_default, null, label),
|
|
3321
3281
|
textarea,
|
|
3322
|
-
helperText && /* @__PURE__ */
|
|
3282
|
+
helperText && /* @__PURE__ */ import_react22.default.createElement(FormHelperText_default, null, helperText)
|
|
3323
3283
|
);
|
|
3324
3284
|
};
|
|
3325
|
-
var Textarea = import_react23.default.forwardRef((props, ref) => {
|
|
3326
|
-
const textareaSlotProps = useSlotRef(props.slotProps?.textarea, ref);
|
|
3327
|
-
return /* @__PURE__ */ import_react23.default.createElement(TextareaBase, { ...props, slotProps: { ...props.slotProps, textarea: textareaSlotProps } });
|
|
3328
|
-
});
|
|
3329
3285
|
Textarea.displayName = "Textarea";
|
|
3330
3286
|
|
|
3331
3287
|
// src/components/Textarea/index.ts
|
|
3332
3288
|
var Textarea_default = Textarea;
|
|
3333
3289
|
|
|
3334
3290
|
// src/components/Select/Select.tsx
|
|
3335
|
-
var
|
|
3291
|
+
var import_react23 = __toESM(require("react"));
|
|
3336
3292
|
var import_joy31 = require("@mui/joy");
|
|
3337
3293
|
var import_framer_motion20 = require("framer-motion");
|
|
3338
3294
|
var MotionOption = (0, import_framer_motion20.motion)(import_joy31.Option);
|
|
@@ -3343,7 +3299,7 @@ var secondaryTextLevelMap2 = {
|
|
|
3343
3299
|
lg: "body-md"
|
|
3344
3300
|
};
|
|
3345
3301
|
Option.displayName = "Option";
|
|
3346
|
-
function
|
|
3302
|
+
function Select(props) {
|
|
3347
3303
|
const {
|
|
3348
3304
|
label,
|
|
3349
3305
|
helperText,
|
|
@@ -3369,7 +3325,7 @@ function SelectInner(props, ref) {
|
|
|
3369
3325
|
formHelperText: formHelperTextProps,
|
|
3370
3326
|
...joySlotProps
|
|
3371
3327
|
} = slotProps ?? {};
|
|
3372
|
-
const options = (0,
|
|
3328
|
+
const options = (0, import_react23.useMemo)(
|
|
3373
3329
|
() => props.options.map((option) => {
|
|
3374
3330
|
if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
|
|
3375
3331
|
return option;
|
|
@@ -3394,15 +3350,14 @@ function SelectInner(props, ref) {
|
|
|
3394
3350
|
};
|
|
3395
3351
|
onChange?.(newEvent, newValue);
|
|
3396
3352
|
};
|
|
3397
|
-
const optionMap = (0,
|
|
3353
|
+
const optionMap = (0, import_react23.useMemo)(() => {
|
|
3398
3354
|
const map = /* @__PURE__ */ new Map();
|
|
3399
3355
|
options.forEach((option) => {
|
|
3400
3356
|
map.set(option.value, option);
|
|
3401
3357
|
});
|
|
3402
3358
|
return map;
|
|
3403
3359
|
}, [options]);
|
|
3404
|
-
const
|
|
3405
|
-
const select = /* @__PURE__ */ import_react24.default.createElement(
|
|
3360
|
+
const select = /* @__PURE__ */ import_react23.default.createElement(
|
|
3406
3361
|
import_joy31.Select,
|
|
3407
3362
|
{
|
|
3408
3363
|
...innerProps,
|
|
@@ -3410,7 +3365,7 @@ function SelectInner(props, ref) {
|
|
|
3410
3365
|
disabled,
|
|
3411
3366
|
size,
|
|
3412
3367
|
color: error ? "danger" : color,
|
|
3413
|
-
slotProps:
|
|
3368
|
+
slotProps: joySlotProps,
|
|
3414
3369
|
onChange: handleChange,
|
|
3415
3370
|
renderValue: (selected) => {
|
|
3416
3371
|
if (!selected) return null;
|
|
@@ -3420,9 +3375,9 @@ function SelectInner(props, ref) {
|
|
|
3420
3375
|
return optionMap.get(selected.value)?.label;
|
|
3421
3376
|
}
|
|
3422
3377
|
},
|
|
3423
|
-
options.map((option) => /* @__PURE__ */
|
|
3378
|
+
options.map((option) => /* @__PURE__ */ import_react23.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ import_react23.default.createElement(import_joy31.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react23.default.createElement(import_joy31.Typography, { level: "inherit" }, option.label), /* @__PURE__ */ import_react23.default.createElement(import_joy31.Typography, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
|
|
3424
3379
|
);
|
|
3425
|
-
return /* @__PURE__ */
|
|
3380
|
+
return /* @__PURE__ */ import_react23.default.createElement(
|
|
3426
3381
|
FormControl_default,
|
|
3427
3382
|
{
|
|
3428
3383
|
required,
|
|
@@ -3435,12 +3390,11 @@ function SelectInner(props, ref) {
|
|
|
3435
3390
|
className,
|
|
3436
3391
|
...formControlProps
|
|
3437
3392
|
},
|
|
3438
|
-
label && /* @__PURE__ */
|
|
3393
|
+
label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, { ...formLabelProps }, label),
|
|
3439
3394
|
select,
|
|
3440
|
-
helperText && /* @__PURE__ */
|
|
3395
|
+
helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
|
|
3441
3396
|
);
|
|
3442
3397
|
}
|
|
3443
|
-
var Select = import_react24.default.forwardRef(SelectInner);
|
|
3444
3398
|
Select.displayName = "Select";
|
|
3445
3399
|
|
|
3446
3400
|
// src/components/Select/index.ts
|
|
@@ -3450,7 +3404,7 @@ var Select_default = Select;
|
|
|
3450
3404
|
var import_joy34 = require("@mui/joy");
|
|
3451
3405
|
|
|
3452
3406
|
// src/components/InfoSign/InfoSign.tsx
|
|
3453
|
-
var
|
|
3407
|
+
var import_react24 = __toESM(require("react"));
|
|
3454
3408
|
var import_joy32 = require("@mui/joy");
|
|
3455
3409
|
var import_Info = __toESM(require("@mui/icons-material/Info"));
|
|
3456
3410
|
var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
@@ -3463,7 +3417,7 @@ var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
|
3463
3417
|
}));
|
|
3464
3418
|
function InfoSign(props) {
|
|
3465
3419
|
const { message, placement } = props;
|
|
3466
|
-
return /* @__PURE__ */
|
|
3420
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
3467
3421
|
Tooltip_default,
|
|
3468
3422
|
{
|
|
3469
3423
|
arrow: true,
|
|
@@ -3473,9 +3427,9 @@ function InfoSign(props) {
|
|
|
3473
3427
|
maxWidth: "320px"
|
|
3474
3428
|
}
|
|
3475
3429
|
},
|
|
3476
|
-
title: message?.split("\n").map((line, i) => /* @__PURE__ */
|
|
3430
|
+
title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react24.default.createElement("div", { key: `info-sign-${i}` }, line))
|
|
3477
3431
|
},
|
|
3478
|
-
/* @__PURE__ */
|
|
3432
|
+
/* @__PURE__ */ import_react24.default.createElement(InfoIcon, null)
|
|
3479
3433
|
);
|
|
3480
3434
|
}
|
|
3481
3435
|
|
|
@@ -3488,9 +3442,9 @@ var TextEllipsis = ({
|
|
|
3488
3442
|
lineClamp,
|
|
3489
3443
|
...rest
|
|
3490
3444
|
}) => {
|
|
3491
|
-
const textRef = (0,
|
|
3492
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
3493
|
-
(0,
|
|
3445
|
+
const textRef = (0, import_react25.useRef)(null);
|
|
3446
|
+
const [showTooltip, setShowTooltip] = (0, import_react25.useState)(false);
|
|
3447
|
+
(0, import_react25.useLayoutEffect)(() => {
|
|
3494
3448
|
const element = textRef.current;
|
|
3495
3449
|
if (!element) return;
|
|
3496
3450
|
const checkTruncation = () => {
|
|
@@ -3502,21 +3456,21 @@ var TextEllipsis = ({
|
|
|
3502
3456
|
ro.observe(element);
|
|
3503
3457
|
return () => ro.disconnect();
|
|
3504
3458
|
}, [children, lineClamp]);
|
|
3505
|
-
return /* @__PURE__ */
|
|
3459
|
+
return /* @__PURE__ */ import_react25.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react25.default.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
|
|
3506
3460
|
};
|
|
3507
3461
|
var CellTextEllipsis = ({ children }) => {
|
|
3508
|
-
const textRef = (0,
|
|
3509
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
3510
|
-
(0,
|
|
3462
|
+
const textRef = (0, import_react25.useRef)(null);
|
|
3463
|
+
const [showTooltip, setShowTooltip] = (0, import_react25.useState)(false);
|
|
3464
|
+
(0, import_react25.useLayoutEffect)(() => {
|
|
3511
3465
|
const element = textRef.current;
|
|
3512
3466
|
if (element) {
|
|
3513
3467
|
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
3514
3468
|
setShowTooltip(isTextTruncated);
|
|
3515
3469
|
}
|
|
3516
3470
|
}, [children]);
|
|
3517
|
-
const content = /* @__PURE__ */
|
|
3471
|
+
const content = /* @__PURE__ */ import_react25.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
3518
3472
|
if (showTooltip) {
|
|
3519
|
-
return /* @__PURE__ */
|
|
3473
|
+
return /* @__PURE__ */ import_react25.default.createElement(
|
|
3520
3474
|
Tooltip_default,
|
|
3521
3475
|
{
|
|
3522
3476
|
title: children,
|
|
@@ -3555,32 +3509,34 @@ var HeadCell = (props) => {
|
|
|
3555
3509
|
tableColRef,
|
|
3556
3510
|
headerClassName,
|
|
3557
3511
|
headerLineClamp,
|
|
3558
|
-
onAutoFit
|
|
3559
|
-
columnId
|
|
3512
|
+
onAutoFit
|
|
3560
3513
|
} = props;
|
|
3561
3514
|
const theme = (0, import_joy33.useTheme)();
|
|
3562
3515
|
const ref = headerRef;
|
|
3563
3516
|
const colRef = tableColRef;
|
|
3564
|
-
const localRef = (0,
|
|
3565
|
-
(0,
|
|
3517
|
+
const localRef = (0, import_react25.useRef)(null);
|
|
3518
|
+
(0, import_react25.useLayoutEffect)(() => {
|
|
3566
3519
|
ref.current = localRef.current;
|
|
3567
3520
|
}, [ref]);
|
|
3568
|
-
const [isHovered, setIsHovered] = (0,
|
|
3521
|
+
const [isHovered, setIsHovered] = (0, import_react25.useState)(false);
|
|
3569
3522
|
const sortable = type === "actions" ? false : _sortable;
|
|
3570
|
-
const headId = (0,
|
|
3571
|
-
|
|
3572
|
-
|
|
3523
|
+
const headId = (0, import_react25.useMemo)(
|
|
3524
|
+
() => `${tableId}_header_${headerName ?? field}`.trim(),
|
|
3525
|
+
[tableId, headerName, field]
|
|
3526
|
+
);
|
|
3527
|
+
const isResizingRef = (0, import_react25.useRef)(false);
|
|
3528
|
+
const resizer = (0, import_react25.useMemo)(
|
|
3573
3529
|
() => resizable ?? true ? Resizer(
|
|
3574
3530
|
ref,
|
|
3575
3531
|
colRef,
|
|
3576
3532
|
(isResizing) => {
|
|
3577
3533
|
isResizingRef.current = isResizing;
|
|
3578
3534
|
},
|
|
3579
|
-
onAutoFit ? () => onAutoFit(
|
|
3535
|
+
onAutoFit ? () => onAutoFit(field) : void 0
|
|
3580
3536
|
) : null,
|
|
3581
|
-
[resizable, ref, colRef, onAutoFit,
|
|
3537
|
+
[resizable, ref, colRef, onAutoFit, field]
|
|
3582
3538
|
);
|
|
3583
|
-
const style = (0,
|
|
3539
|
+
const style = (0, import_react25.useMemo)(
|
|
3584
3540
|
() => ({
|
|
3585
3541
|
width,
|
|
3586
3542
|
minWidth: minWidth ?? "50px",
|
|
@@ -3598,10 +3554,10 @@ var HeadCell = (props) => {
|
|
|
3598
3554
|
);
|
|
3599
3555
|
const textAlign = getTextAlign(props);
|
|
3600
3556
|
const initialSort = sortOrder[0];
|
|
3601
|
-
const sortIcon = (0,
|
|
3557
|
+
const sortIcon = (0, import_react25.useMemo)(() => {
|
|
3602
3558
|
const isSorted = !!sort;
|
|
3603
3559
|
const isVisible = sortable && (isSorted || isHovered);
|
|
3604
|
-
return /* @__PURE__ */
|
|
3560
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_framer_motion21.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react25.default.createElement(
|
|
3605
3561
|
MotionSortIcon,
|
|
3606
3562
|
{
|
|
3607
3563
|
key: "sort-icon",
|
|
@@ -3629,21 +3585,21 @@ var HeadCell = (props) => {
|
|
|
3629
3585
|
}
|
|
3630
3586
|
));
|
|
3631
3587
|
}, [headId, initialSort, sort, sortable, isHovered]);
|
|
3632
|
-
const infoSign = (0,
|
|
3633
|
-
() => description ? /* @__PURE__ */
|
|
3588
|
+
const infoSign = (0, import_react25.useMemo)(
|
|
3589
|
+
() => description ? /* @__PURE__ */ import_react25.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
|
|
3634
3590
|
[description]
|
|
3635
3591
|
);
|
|
3636
|
-
const params = (0,
|
|
3592
|
+
const params = (0, import_react25.useMemo)(
|
|
3637
3593
|
() => ({
|
|
3638
3594
|
field
|
|
3639
3595
|
}),
|
|
3640
3596
|
[field]
|
|
3641
3597
|
);
|
|
3642
|
-
const computedHeaderClassName = (0,
|
|
3598
|
+
const computedHeaderClassName = (0, import_react25.useMemo)(
|
|
3643
3599
|
() => (typeof headerClassName === "function" ? headerClassName(params) : headerClassName) || void 0,
|
|
3644
3600
|
[headerClassName, params]
|
|
3645
3601
|
);
|
|
3646
|
-
return /* @__PURE__ */
|
|
3602
|
+
return /* @__PURE__ */ import_react25.default.createElement(
|
|
3647
3603
|
StyledTh,
|
|
3648
3604
|
{
|
|
3649
3605
|
id: headId,
|
|
@@ -3652,7 +3608,7 @@ var HeadCell = (props) => {
|
|
|
3652
3608
|
ref: localRef,
|
|
3653
3609
|
key: field,
|
|
3654
3610
|
style,
|
|
3655
|
-
onClick: (0,
|
|
3611
|
+
onClick: (0, import_react25.useCallback)(
|
|
3656
3612
|
(e) => {
|
|
3657
3613
|
if (isResizingRef.current) return;
|
|
3658
3614
|
if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
|
|
@@ -3666,7 +3622,7 @@ var HeadCell = (props) => {
|
|
|
3666
3622
|
initial: "initial",
|
|
3667
3623
|
className: computedHeaderClassName
|
|
3668
3624
|
},
|
|
3669
|
-
/* @__PURE__ */
|
|
3625
|
+
/* @__PURE__ */ import_react25.default.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center", sx: { minWidth: 0 } }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ import_react25.default.createElement(TextEllipsis, { lineClamp: headerLineClamp, "data-slot": "header-text" }, headerName ?? field, editMode && required && /* @__PURE__ */ import_react25.default.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
|
|
3670
3626
|
resizer
|
|
3671
3627
|
);
|
|
3672
3628
|
};
|
|
@@ -3691,9 +3647,9 @@ var BodyCell = (props) => {
|
|
|
3691
3647
|
onCellEditStop
|
|
3692
3648
|
} = props;
|
|
3693
3649
|
const theme = (0, import_joy33.useTheme)();
|
|
3694
|
-
const [value, setValue] = (0,
|
|
3695
|
-
const cellRef = (0,
|
|
3696
|
-
const params = (0,
|
|
3650
|
+
const [value, setValue] = (0, import_react25.useState)(row[field]);
|
|
3651
|
+
const cellRef = (0, import_react25.useRef)(null);
|
|
3652
|
+
const params = (0, import_react25.useMemo)(
|
|
3697
3653
|
() => ({
|
|
3698
3654
|
row,
|
|
3699
3655
|
value,
|
|
@@ -3702,20 +3658,20 @@ var BodyCell = (props) => {
|
|
|
3702
3658
|
}),
|
|
3703
3659
|
[row, rowId, value, field]
|
|
3704
3660
|
);
|
|
3705
|
-
const editMode = (0,
|
|
3661
|
+
const editMode = (0, import_react25.useMemo)(
|
|
3706
3662
|
() => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
|
|
3707
3663
|
[props.editMode, isCellEditable, params]
|
|
3708
3664
|
);
|
|
3709
3665
|
const propsComponentProps = "componentProps" in props ? props.componentProps : null;
|
|
3710
3666
|
const hasComponentProps = "componentProps" in props;
|
|
3711
|
-
const componentProps = (0,
|
|
3667
|
+
const componentProps = (0, import_react25.useMemo)(
|
|
3712
3668
|
() => ({
|
|
3713
3669
|
...hasComponentProps && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
|
|
3714
3670
|
size: "sm"
|
|
3715
3671
|
}),
|
|
3716
3672
|
[hasComponentProps, propsComponentProps, params]
|
|
3717
3673
|
);
|
|
3718
|
-
const editModeComponentProps = (0,
|
|
3674
|
+
const editModeComponentProps = (0, import_react25.useMemo)(
|
|
3719
3675
|
() => ({
|
|
3720
3676
|
...componentProps,
|
|
3721
3677
|
onChange: (e) => {
|
|
@@ -3777,25 +3733,25 @@ var BodyCell = (props) => {
|
|
|
3777
3733
|
}),
|
|
3778
3734
|
[params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
|
|
3779
3735
|
);
|
|
3780
|
-
const MemoizedRenderEditCell = (0,
|
|
3781
|
-
const MemoizedRenderCell = (0,
|
|
3782
|
-
const EditModeComponent = (0,
|
|
3736
|
+
const MemoizedRenderEditCell = (0, import_react25.useMemo)(() => renderEditCell ? (0, import_react25.memo)(renderEditCell) : null, [renderEditCell]);
|
|
3737
|
+
const MemoizedRenderCell = (0, import_react25.useMemo)(() => renderCell ? (0, import_react25.memo)(renderCell) : null, [renderCell]);
|
|
3738
|
+
const EditModeComponent = (0, import_react25.useMemo)(() => {
|
|
3783
3739
|
if (MemoizedRenderEditCell) {
|
|
3784
|
-
return (0,
|
|
3740
|
+
return (0, import_react25.createElement)(MemoizedRenderEditCell, params);
|
|
3785
3741
|
}
|
|
3786
3742
|
return {
|
|
3787
|
-
date: /* @__PURE__ */
|
|
3788
|
-
currency: /* @__PURE__ */
|
|
3743
|
+
date: /* @__PURE__ */ import_react25.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
|
|
3744
|
+
currency: /* @__PURE__ */ import_react25.default.createElement(
|
|
3789
3745
|
CurrencyInput_default,
|
|
3790
3746
|
{
|
|
3791
3747
|
value,
|
|
3792
3748
|
...editModeComponentProps
|
|
3793
3749
|
}
|
|
3794
3750
|
),
|
|
3795
|
-
number: /* @__PURE__ */
|
|
3796
|
-
text: /* @__PURE__ */
|
|
3797
|
-
longText: /* @__PURE__ */
|
|
3798
|
-
autocomplete: /* @__PURE__ */
|
|
3751
|
+
number: /* @__PURE__ */ import_react25.default.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
|
|
3752
|
+
text: /* @__PURE__ */ import_react25.default.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
|
|
3753
|
+
longText: /* @__PURE__ */ import_react25.default.createElement(Textarea_default, { value, ...editModeComponentProps }),
|
|
3754
|
+
autocomplete: /* @__PURE__ */ import_react25.default.createElement(
|
|
3799
3755
|
Autocomplete_default,
|
|
3800
3756
|
{
|
|
3801
3757
|
value,
|
|
@@ -3803,7 +3759,7 @@ var BodyCell = (props) => {
|
|
|
3803
3759
|
...editModeComponentProps
|
|
3804
3760
|
}
|
|
3805
3761
|
),
|
|
3806
|
-
select: /* @__PURE__ */
|
|
3762
|
+
select: /* @__PURE__ */ import_react25.default.createElement(
|
|
3807
3763
|
Select_default,
|
|
3808
3764
|
{
|
|
3809
3765
|
value,
|
|
@@ -3814,13 +3770,13 @@ var BodyCell = (props) => {
|
|
|
3814
3770
|
}[type || "text"];
|
|
3815
3771
|
}, [value, editModeComponentProps, type, MemoizedRenderEditCell, params]);
|
|
3816
3772
|
const linkComponentFromProps = props.component;
|
|
3817
|
-
const ReadModeComponent = (0,
|
|
3773
|
+
const ReadModeComponent = (0, import_react25.useMemo)(() => {
|
|
3818
3774
|
if (MemoizedRenderCell) {
|
|
3819
|
-
return (0,
|
|
3775
|
+
return (0, import_react25.createElement)(MemoizedRenderCell, params);
|
|
3820
3776
|
}
|
|
3821
3777
|
const innerText = value;
|
|
3822
3778
|
const typedComponent = {
|
|
3823
|
-
link:
|
|
3779
|
+
link: import_react25.default.createElement(linkComponentFromProps || import_joy34.Link, {
|
|
3824
3780
|
children: innerText,
|
|
3825
3781
|
...componentProps
|
|
3826
3782
|
})
|
|
@@ -3828,27 +3784,27 @@ var BodyCell = (props) => {
|
|
|
3828
3784
|
return typedComponent || innerText;
|
|
3829
3785
|
}, [value, MemoizedRenderCell, params, type, componentProps, linkComponentFromProps]);
|
|
3830
3786
|
const getActions = props.getActions;
|
|
3831
|
-
const CellComponent = (0,
|
|
3787
|
+
const CellComponent = (0, import_react25.useMemo)(() => {
|
|
3832
3788
|
if (type === "actions") {
|
|
3833
|
-
return /* @__PURE__ */
|
|
3789
|
+
return /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
|
|
3834
3790
|
}
|
|
3835
3791
|
return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
|
|
3836
3792
|
}, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
|
|
3837
|
-
const showTooltip = (0,
|
|
3793
|
+
const showTooltip = (0, import_react25.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
|
|
3838
3794
|
const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
|
|
3839
|
-
const computedCellClassName = (0,
|
|
3795
|
+
const computedCellClassName = (0, import_react25.useMemo)(
|
|
3840
3796
|
() => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
|
|
3841
3797
|
[cellClassName, params]
|
|
3842
3798
|
);
|
|
3843
|
-
(0,
|
|
3799
|
+
(0, import_react25.useEffect)(() => {
|
|
3844
3800
|
setValue(row[field]);
|
|
3845
3801
|
}, [row, field]);
|
|
3846
|
-
return /* @__PURE__ */
|
|
3802
|
+
return /* @__PURE__ */ import_react25.default.createElement(
|
|
3847
3803
|
StyledTd,
|
|
3848
3804
|
{
|
|
3849
3805
|
ref: cellRef,
|
|
3850
3806
|
key: field,
|
|
3851
|
-
headers:
|
|
3807
|
+
headers: `${tableId}_header_${props.headerName ?? field}`,
|
|
3852
3808
|
sx: {
|
|
3853
3809
|
textAlign: getTextAlign({ type }),
|
|
3854
3810
|
verticalAlign: editMode ? "top" : "middle",
|
|
@@ -3860,16 +3816,16 @@ var BodyCell = (props) => {
|
|
|
3860
3816
|
},
|
|
3861
3817
|
className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
|
|
3862
3818
|
},
|
|
3863
|
-
(0,
|
|
3864
|
-
() => showTooltip ? /* @__PURE__ */
|
|
3819
|
+
(0, import_react25.useMemo)(
|
|
3820
|
+
() => showTooltip ? /* @__PURE__ */ import_react25.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
|
|
3865
3821
|
[CellComponent, showTooltip]
|
|
3866
3822
|
)
|
|
3867
3823
|
);
|
|
3868
3824
|
};
|
|
3869
|
-
var BodyRow = (0,
|
|
3825
|
+
var BodyRow = (0, import_react25.memo)(
|
|
3870
3826
|
(props) => {
|
|
3871
3827
|
const { tableId, columns, rowId, editMode, noWrap, row } = props;
|
|
3872
|
-
return /* @__PURE__ */
|
|
3828
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react25.default.createElement(
|
|
3873
3829
|
BodyCell,
|
|
3874
3830
|
{
|
|
3875
3831
|
key: `${rowId}_${column.field.toString()}_${i}`,
|
|
@@ -3902,7 +3858,7 @@ var StyledTableRow2 = (0, import_joy33.styled)("tr", {
|
|
|
3902
3858
|
}
|
|
3903
3859
|
}
|
|
3904
3860
|
}));
|
|
3905
|
-
var VirtualizedTableRow = (0,
|
|
3861
|
+
var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow2, (prevProps, nextProps) => {
|
|
3906
3862
|
return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
|
|
3907
3863
|
prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
|
|
3908
3864
|
prevProps["data-index"] === nextProps["data-index"] && prevProps.tabIndex === nextProps.tabIndex && prevProps["aria-checked"] === nextProps["aria-checked"] && // Track column structure changes (e.g. isCellEditable toggled, columns added/removed)
|
|
@@ -3913,46 +3869,36 @@ var VirtualizedTableRow = (0, import_react26.memo)(StyledTableRow2, (prevProps,
|
|
|
3913
3869
|
});
|
|
3914
3870
|
|
|
3915
3871
|
// src/components/DataTable/hooks.ts
|
|
3916
|
-
var
|
|
3917
|
-
function useColumnWidths(
|
|
3918
|
-
const [widths, setWidths] = (0,
|
|
3919
|
-
const roRef = (0,
|
|
3920
|
-
(0,
|
|
3872
|
+
var import_react26 = require("react");
|
|
3873
|
+
function useColumnWidths(columnsByField) {
|
|
3874
|
+
const [widths, setWidths] = (0, import_react26.useState)({});
|
|
3875
|
+
const roRef = (0, import_react26.useRef)();
|
|
3876
|
+
(0, import_react26.useLayoutEffect)(() => {
|
|
3921
3877
|
if (roRef.current) roRef.current.disconnect();
|
|
3922
3878
|
roRef.current = new ResizeObserver((entries) => {
|
|
3879
|
+
let changed = false;
|
|
3923
3880
|
setWidths((prev) => {
|
|
3924
|
-
let changed = false;
|
|
3925
3881
|
const next = { ...prev };
|
|
3926
3882
|
entries.forEach((entry) => {
|
|
3927
|
-
const
|
|
3883
|
+
const field = entry.target.dataset.field;
|
|
3928
3884
|
const w = Math.round(entry.target.getBoundingClientRect().width);
|
|
3929
|
-
if (
|
|
3930
|
-
|
|
3931
|
-
next[columnId] = w;
|
|
3885
|
+
if (next[field] !== w) {
|
|
3886
|
+
next[field] = w;
|
|
3932
3887
|
changed = true;
|
|
3933
3888
|
}
|
|
3934
3889
|
});
|
|
3935
3890
|
return changed ? next : prev;
|
|
3936
3891
|
});
|
|
3937
3892
|
});
|
|
3938
|
-
|
|
3939
|
-
Object.entries(columnsById).forEach(([columnId, def]) => {
|
|
3893
|
+
Object.entries(columnsByField).forEach(([field, def]) => {
|
|
3940
3894
|
const el = def.headerRef.current;
|
|
3941
3895
|
if (el) {
|
|
3942
|
-
el.dataset.
|
|
3943
|
-
el.dataset.field = String(def.field);
|
|
3944
|
-
const w = Math.round(el.getBoundingClientRect().width);
|
|
3945
|
-
if (w > 0) measured[columnId] = w;
|
|
3896
|
+
el.dataset.field = field;
|
|
3946
3897
|
roRef.current.observe(el);
|
|
3947
3898
|
}
|
|
3948
3899
|
});
|
|
3949
|
-
setWidths((prev) => {
|
|
3950
|
-
const keys = Object.keys(measured);
|
|
3951
|
-
const same = keys.length === Object.keys(prev).length && keys.every((key) => prev[key] === measured[key]);
|
|
3952
|
-
return same ? prev : measured;
|
|
3953
|
-
});
|
|
3954
3900
|
return () => roRef.current?.disconnect();
|
|
3955
|
-
}, [
|
|
3901
|
+
}, [columnsByField]);
|
|
3956
3902
|
return widths;
|
|
3957
3903
|
}
|
|
3958
3904
|
function useDataTableRenderer({
|
|
@@ -3984,40 +3930,33 @@ function useDataTableRenderer({
|
|
|
3984
3930
|
"You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
|
|
3985
3931
|
);
|
|
3986
3932
|
}
|
|
3987
|
-
const onSelectionModelChangeRef = (0,
|
|
3933
|
+
const onSelectionModelChangeRef = (0, import_react26.useRef)(onSelectionModelChange);
|
|
3988
3934
|
onSelectionModelChangeRef.current = onSelectionModelChange;
|
|
3989
|
-
const [focusedRowId, setFocusedRowId] = (0,
|
|
3990
|
-
const [selectionAnchor, setSelectionAnchor] = (0,
|
|
3935
|
+
const [focusedRowId, setFocusedRowId] = (0, import_react26.useState)(null);
|
|
3936
|
+
const [selectionAnchor, setSelectionAnchor] = (0, import_react26.useState)(null);
|
|
3991
3937
|
const [sortModel, setSortModel] = useControlledState(
|
|
3992
3938
|
controlledSortModel,
|
|
3993
3939
|
initialState?.sorting?.sortModel ?? [],
|
|
3994
|
-
(0,
|
|
3940
|
+
(0, import_react26.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
|
|
3995
3941
|
);
|
|
3996
3942
|
const [visibilityModel] = useControlledState(
|
|
3997
3943
|
columnVisibilityModel,
|
|
3998
3944
|
initialState?.columns?.columnVisibilityModel ?? {},
|
|
3999
|
-
(0,
|
|
3945
|
+
(0, import_react26.useCallback)(
|
|
4000
3946
|
(model) => onColumnVisibilityModelChange?.(model),
|
|
4001
3947
|
[onColumnVisibilityModelChange]
|
|
4002
3948
|
)
|
|
4003
3949
|
);
|
|
4004
|
-
const reorderedColumns = (0,
|
|
3950
|
+
const reorderedColumns = (0, import_react26.useMemo)(() => {
|
|
4005
3951
|
if (!columnGroupingModel) return columnsProp;
|
|
4006
3952
|
return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
|
|
4007
3953
|
}, [columnsProp, columnGroupingModel]);
|
|
4008
|
-
const
|
|
4009
|
-
() => reorderedColumns.
|
|
4010
|
-
if (visibilityModel[col.field] !== false) acc.push(index);
|
|
4011
|
-
return acc;
|
|
4012
|
-
}, []),
|
|
3954
|
+
const visibleColumns = (0, import_react26.useMemo)(
|
|
3955
|
+
() => reorderedColumns.filter((col) => visibilityModel[col.field] !== false),
|
|
4013
3956
|
[reorderedColumns, visibilityModel]
|
|
4014
3957
|
);
|
|
4015
|
-
const
|
|
4016
|
-
|
|
4017
|
-
[visibleColumnIndexes, reorderedColumns]
|
|
4018
|
-
);
|
|
4019
|
-
const visibleFieldSet = (0, import_react27.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
|
|
4020
|
-
const tableMinWidth = (0, import_react27.useMemo)(() => {
|
|
3958
|
+
const visibleFieldSet = (0, import_react26.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
|
|
3959
|
+
const tableMinWidth = (0, import_react26.useMemo)(() => {
|
|
4021
3960
|
const DEFAULT_MIN = 50;
|
|
4022
3961
|
let total = checkboxSelection ? 40 : 0;
|
|
4023
3962
|
for (const col of visibleColumns) {
|
|
@@ -4025,7 +3964,7 @@ function useDataTableRenderer({
|
|
|
4025
3964
|
}
|
|
4026
3965
|
return total;
|
|
4027
3966
|
}, [visibleColumns, checkboxSelection]);
|
|
4028
|
-
const allColumnsByField = (0,
|
|
3967
|
+
const allColumnsByField = (0, import_react26.useMemo)(
|
|
4029
3968
|
() => reorderedColumns.reduce(
|
|
4030
3969
|
(acc, curr) => ({
|
|
4031
3970
|
...acc,
|
|
@@ -4035,39 +3974,21 @@ function useDataTableRenderer({
|
|
|
4035
3974
|
),
|
|
4036
3975
|
[reorderedColumns]
|
|
4037
3976
|
);
|
|
4038
|
-
const
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
}
|
|
4047
|
-
let n = 2;
|
|
4048
|
-
while (taken.has(`${field}__${n}`)) n += 1;
|
|
4049
|
-
taken.add(`${field}__${n}`);
|
|
4050
|
-
return `${field}__${n}`;
|
|
4051
|
-
});
|
|
4052
|
-
}, [reorderedColumns]);
|
|
4053
|
-
const columnIds = (0, import_react27.useMemo)(
|
|
4054
|
-
() => visibleColumnIndexes.map((index) => allColumnIds[index]),
|
|
4055
|
-
[visibleColumnIndexes, allColumnIds]
|
|
4056
|
-
);
|
|
4057
|
-
const visibleColumnsById = (0, import_react27.useMemo)(
|
|
4058
|
-
() => Object.fromEntries(
|
|
4059
|
-
visibleColumns.map((column, index) => [
|
|
4060
|
-
columnIds[index],
|
|
4061
|
-
{
|
|
4062
|
-
...column,
|
|
4063
|
-
headerRef: (0, import_react27.createRef)(),
|
|
4064
|
-
tableColRef: (0, import_react27.createRef)()
|
|
3977
|
+
const visibleColumnsByField = (0, import_react26.useMemo)(
|
|
3978
|
+
() => visibleColumns.reduce(
|
|
3979
|
+
(acc, curr) => ({
|
|
3980
|
+
...acc,
|
|
3981
|
+
[curr.field]: {
|
|
3982
|
+
...curr,
|
|
3983
|
+
headerRef: (0, import_react26.createRef)(),
|
|
3984
|
+
tableColRef: (0, import_react26.createRef)()
|
|
4065
3985
|
}
|
|
4066
|
-
|
|
3986
|
+
}),
|
|
3987
|
+
{}
|
|
4067
3988
|
),
|
|
4068
|
-
[visibleColumns
|
|
3989
|
+
[visibleColumns]
|
|
4069
3990
|
);
|
|
4070
|
-
const sortComparator = (0,
|
|
3991
|
+
const sortComparator = (0, import_react26.useCallback)(
|
|
4071
3992
|
(rowA, rowB) => {
|
|
4072
3993
|
for (const sort of sortModel) {
|
|
4073
3994
|
const { field, sort: direction } = sort;
|
|
@@ -4096,33 +4017,33 @@ function useDataTableRenderer({
|
|
|
4096
4017
|
},
|
|
4097
4018
|
[sortModel, allColumnsByField]
|
|
4098
4019
|
);
|
|
4099
|
-
const rows = (0,
|
|
4020
|
+
const rows = (0, import_react26.useMemo)(
|
|
4100
4021
|
() => sortModel.length ? [..._rows].sort(sortComparator) : _rows,
|
|
4101
4022
|
[_rows, sortModel, sortComparator]
|
|
4102
4023
|
);
|
|
4103
|
-
const sortOrder = (0,
|
|
4024
|
+
const sortOrder = (0, import_react26.useMemo)(
|
|
4104
4025
|
() => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
|
|
4105
4026
|
[_sortOrder]
|
|
4106
4027
|
);
|
|
4107
|
-
const [page, setPage] = (0,
|
|
4028
|
+
const [page, setPage] = (0, import_react26.useState)(paginationModel?.page || 1);
|
|
4108
4029
|
const pageSize = paginationModel?.pageSize || 20;
|
|
4109
|
-
const getId = (0,
|
|
4030
|
+
const getId = (0, import_react26.useCallback)(
|
|
4110
4031
|
(row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
|
|
4111
4032
|
[_getId, page, pageSize]
|
|
4112
4033
|
);
|
|
4113
|
-
const selectedModelSet = (0,
|
|
4114
|
-
const dataInPage = (0,
|
|
4034
|
+
const selectedModelSet = (0, import_react26.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
|
|
4035
|
+
const dataInPage = (0, import_react26.useMemo)(
|
|
4115
4036
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
4116
4037
|
[rows, page, pageSize, paginationMode, pagination]
|
|
4117
4038
|
);
|
|
4118
|
-
const selectableDataInPage = (0,
|
|
4039
|
+
const selectableDataInPage = (0, import_react26.useMemo)(
|
|
4119
4040
|
() => dataInPage.filter((row, i) => {
|
|
4120
4041
|
if (!isRowSelectable) return true;
|
|
4121
4042
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
4122
4043
|
}),
|
|
4123
4044
|
[dataInPage, isRowSelectable, getId]
|
|
4124
4045
|
);
|
|
4125
|
-
const handleRangeSelection = (0,
|
|
4046
|
+
const handleRangeSelection = (0, import_react26.useCallback)(
|
|
4126
4047
|
(anchor, targetIndex) => {
|
|
4127
4048
|
const startIndex = Math.min(anchor.rowIndex, targetIndex);
|
|
4128
4049
|
const endIndex = Math.max(anchor.rowIndex, targetIndex);
|
|
@@ -4145,60 +4066,51 @@ function useDataTableRenderer({
|
|
|
4145
4066
|
},
|
|
4146
4067
|
[dataInPage, getId, isRowSelectable, selectionModel, onSelectionModelChange]
|
|
4147
4068
|
);
|
|
4148
|
-
const isAllSelected = (0,
|
|
4069
|
+
const isAllSelected = (0, import_react26.useMemo)(
|
|
4149
4070
|
() => selectableDataInPage.length > 0 && selectableDataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
|
|
4150
4071
|
[selectableDataInPage, selectedModelSet, getId]
|
|
4151
4072
|
);
|
|
4152
4073
|
const rowCount = totalRowsProp || rows.length;
|
|
4153
|
-
const selectableRowCount = (0,
|
|
4074
|
+
const selectableRowCount = (0, import_react26.useMemo)(() => {
|
|
4154
4075
|
if (!isRowSelectable) return rowCount;
|
|
4155
4076
|
return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
|
|
4156
4077
|
}, [rows, isRowSelectable, getId, rowCount]);
|
|
4157
|
-
const isTotalSelected = (0,
|
|
4078
|
+
const isTotalSelected = (0, import_react26.useMemo)(
|
|
4158
4079
|
() => _isTotalSelected ?? (selectableRowCount > 0 && (selectionModel?.length || 0) === selectableRowCount),
|
|
4159
4080
|
[_isTotalSelected, selectionModel, selectableRowCount]
|
|
4160
4081
|
);
|
|
4161
|
-
const columnWidths = useColumnWidths(
|
|
4162
|
-
const
|
|
4163
|
-
() =>
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
[visibleColumnsById, columnWidths]
|
|
4167
|
-
);
|
|
4168
|
-
const getWidth = (0, import_react27.useCallback)(
|
|
4169
|
-
// 반환값은 pinned offset으로 더해지므로 반드시 숫자여야 한다. width/minWidth는 '500px' 같은 문자열.
|
|
4170
|
-
(f) => measuredWidthByField[f] ?? parsePxValue(allColumnsByField[f]?.width) ?? // Column prop 으로 지정된 width
|
|
4171
|
-
parsePxValue(allColumnsByField[f]?.minWidth) ?? 0,
|
|
4172
|
-
[measuredWidthByField, allColumnsByField]
|
|
4082
|
+
const columnWidths = useColumnWidths(visibleColumnsByField);
|
|
4083
|
+
const getWidth = (0, import_react26.useCallback)(
|
|
4084
|
+
(f) => columnWidths[f] ?? allColumnsByField[f]?.width ?? // Column prop 으로 지정된 width
|
|
4085
|
+
allColumnsByField[f]?.minWidth ?? 0,
|
|
4086
|
+
[columnWidths, allColumnsByField]
|
|
4173
4087
|
);
|
|
4174
|
-
const processedColumnGroups = (0,
|
|
4088
|
+
const processedColumnGroups = (0, import_react26.useMemo)(() => {
|
|
4175
4089
|
if (!columnGroupingModel) return null;
|
|
4176
4090
|
return calculateColumnGroups(columnGroupingModel, visibleColumns, visibleFieldSet);
|
|
4177
4091
|
}, [columnGroupingModel, visibleColumns, visibleFieldSet]);
|
|
4178
|
-
const effectivePinnedLeft = (0,
|
|
4092
|
+
const effectivePinnedLeft = (0, import_react26.useMemo)(
|
|
4179
4093
|
() => pinnedColumns?.left?.filter((f) => visibleFieldSet.has(f)),
|
|
4180
4094
|
[pinnedColumns?.left, visibleFieldSet]
|
|
4181
4095
|
);
|
|
4182
|
-
const effectivePinnedRight = (0,
|
|
4096
|
+
const effectivePinnedRight = (0, import_react26.useMemo)(
|
|
4183
4097
|
() => pinnedColumns?.right?.filter((f) => visibleFieldSet.has(f)),
|
|
4184
4098
|
[pinnedColumns?.right, visibleFieldSet]
|
|
4185
4099
|
);
|
|
4186
4100
|
const inferredFieldsKey = JSON.stringify(Object.keys(rows[0] || {}));
|
|
4187
|
-
const inferredFields = (0,
|
|
4188
|
-
const columns = (0,
|
|
4101
|
+
const inferredFields = (0, import_react26.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
|
|
4102
|
+
const columns = (0, import_react26.useMemo)(() => {
|
|
4189
4103
|
const baseColumns = visibleColumns.length > 0 ? visibleColumns : reorderedColumns.length > 0 ? [] : inferredFields.map((key) => ({
|
|
4190
4104
|
field: key
|
|
4191
4105
|
}));
|
|
4192
|
-
return baseColumns.map((column
|
|
4193
|
-
const columnId = columnIds[index] ?? String(column.field);
|
|
4106
|
+
return baseColumns.map((column) => {
|
|
4194
4107
|
const isLeftPinned = effectivePinnedLeft?.includes(column.field);
|
|
4195
4108
|
const isRightPinned = effectivePinnedRight?.includes(column.field);
|
|
4196
4109
|
const isPinned = isLeftPinned || isRightPinned;
|
|
4197
4110
|
return {
|
|
4198
4111
|
...column,
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
tableColRef: visibleColumnsById[columnId]?.tableColRef,
|
|
4112
|
+
headerRef: visibleColumnsByField[column.field]?.headerRef,
|
|
4113
|
+
tableColRef: visibleColumnsByField[column.field]?.tableColRef,
|
|
4202
4114
|
isCellEditable: editMode && (typeof column.isCellEditable === "function" ? column.isCellEditable : column.isCellEditable ?? true),
|
|
4203
4115
|
sort: sortModel.find((sort) => sort.field === column.field)?.sort,
|
|
4204
4116
|
sortOrder: allColumnsByField[column.field]?.sortOrder || sortOrder,
|
|
@@ -4215,22 +4127,21 @@ function useDataTableRenderer({
|
|
|
4215
4127
|
inferredFields,
|
|
4216
4128
|
effectivePinnedLeft,
|
|
4217
4129
|
effectivePinnedRight,
|
|
4218
|
-
|
|
4219
|
-
visibleColumnsById,
|
|
4130
|
+
visibleColumnsByField,
|
|
4220
4131
|
allColumnsByField,
|
|
4221
4132
|
editMode,
|
|
4222
4133
|
sortModel,
|
|
4223
4134
|
sortOrder,
|
|
4224
4135
|
getWidth
|
|
4225
4136
|
]);
|
|
4226
|
-
const handlePageChange = (0,
|
|
4137
|
+
const handlePageChange = (0, import_react26.useCallback)(
|
|
4227
4138
|
(newPage) => {
|
|
4228
4139
|
setPage(newPage);
|
|
4229
4140
|
onPaginationModelChange?.({ page: newPage, pageSize });
|
|
4230
4141
|
},
|
|
4231
4142
|
[onPaginationModelChange, pageSize]
|
|
4232
4143
|
);
|
|
4233
|
-
const handleSortChange = (0,
|
|
4144
|
+
const handleSortChange = (0, import_react26.useCallback)(
|
|
4234
4145
|
(props) => {
|
|
4235
4146
|
const { field, currentSort, multiple } = props;
|
|
4236
4147
|
const column = allColumnsByField[field];
|
|
@@ -4253,37 +4164,38 @@ function useDataTableRenderer({
|
|
|
4253
4164
|
},
|
|
4254
4165
|
[sortOrder, allColumnsByField, sortModel, setSortModel]
|
|
4255
4166
|
);
|
|
4256
|
-
(0,
|
|
4167
|
+
(0, import_react26.useEffect)(() => {
|
|
4257
4168
|
if (!paginationModel) {
|
|
4258
4169
|
handlePageChange(1);
|
|
4259
4170
|
}
|
|
4260
4171
|
}, [rowCount, handlePageChange, paginationModel]);
|
|
4261
|
-
(0,
|
|
4172
|
+
(0, import_react26.useEffect)(() => {
|
|
4262
4173
|
const lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
|
|
4263
4174
|
if (page > lastPage) {
|
|
4264
4175
|
handlePageChange(lastPage);
|
|
4265
4176
|
}
|
|
4266
4177
|
}, [page, rowCount, pageSize, handlePageChange]);
|
|
4267
|
-
(0,
|
|
4178
|
+
(0, import_react26.useEffect)(() => {
|
|
4268
4179
|
onSelectionModelChangeRef.current?.([]);
|
|
4269
4180
|
setSelectionAnchor(null);
|
|
4270
4181
|
}, [page]);
|
|
4271
|
-
const prevRowsRef = (0,
|
|
4272
|
-
(0,
|
|
4182
|
+
const prevRowsRef = (0, import_react26.useRef)(_rows);
|
|
4183
|
+
(0, import_react26.useEffect)(() => {
|
|
4273
4184
|
if (prevRowsRef.current !== _rows) {
|
|
4274
4185
|
setSelectionAnchor(null);
|
|
4275
4186
|
prevRowsRef.current = _rows;
|
|
4276
4187
|
}
|
|
4277
4188
|
}, [_rows]);
|
|
4278
|
-
const handleAutoFit = (0,
|
|
4279
|
-
(
|
|
4280
|
-
const colDef =
|
|
4189
|
+
const handleAutoFit = (0, import_react26.useCallback)(
|
|
4190
|
+
(field) => {
|
|
4191
|
+
const colDef = visibleColumnsByField[field];
|
|
4281
4192
|
if (!colDef?.headerRef.current) return;
|
|
4282
|
-
const
|
|
4193
|
+
const column = allColumnsByField[field];
|
|
4194
|
+
const columnType = column && "type" in column ? column.type : void 0;
|
|
4283
4195
|
if (columnType === "actions") return;
|
|
4284
4196
|
const optimalWidth = computeAutoFitWidth({
|
|
4285
4197
|
headerEl: colDef.headerRef.current,
|
|
4286
|
-
field
|
|
4198
|
+
field,
|
|
4287
4199
|
dataInPage
|
|
4288
4200
|
});
|
|
4289
4201
|
if (optimalWidth == null) return;
|
|
@@ -4291,7 +4203,7 @@ function useDataTableRenderer({
|
|
|
4291
4203
|
colDef.headerRef.current.style.width = widthPx;
|
|
4292
4204
|
if (colDef.tableColRef.current) colDef.tableColRef.current.style.width = widthPx;
|
|
4293
4205
|
},
|
|
4294
|
-
[
|
|
4206
|
+
[visibleColumnsByField, allColumnsByField, dataInPage]
|
|
4295
4207
|
);
|
|
4296
4208
|
return {
|
|
4297
4209
|
rowCount,
|
|
@@ -4307,8 +4219,8 @@ function useDataTableRenderer({
|
|
|
4307
4219
|
handleAutoFit,
|
|
4308
4220
|
isAllSelected,
|
|
4309
4221
|
isTotalSelected,
|
|
4310
|
-
isSelectedRow: (0,
|
|
4311
|
-
isRowSelectable: (0,
|
|
4222
|
+
isSelectedRow: (0, import_react26.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
|
|
4223
|
+
isRowSelectable: (0, import_react26.useCallback)(
|
|
4312
4224
|
(rowId, row) => {
|
|
4313
4225
|
if (!isRowSelectable) return true;
|
|
4314
4226
|
return isRowSelectable({ row, id: rowId });
|
|
@@ -4316,13 +4228,13 @@ function useDataTableRenderer({
|
|
|
4316
4228
|
[isRowSelectable]
|
|
4317
4229
|
),
|
|
4318
4230
|
focusedRowId,
|
|
4319
|
-
onRowFocus: (0,
|
|
4231
|
+
onRowFocus: (0, import_react26.useCallback)((rowId) => {
|
|
4320
4232
|
setFocusedRowId(rowId);
|
|
4321
4233
|
}, []),
|
|
4322
|
-
onAllCheckboxChange: (0,
|
|
4234
|
+
onAllCheckboxChange: (0, import_react26.useCallback)(() => {
|
|
4323
4235
|
onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
|
|
4324
4236
|
}, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
|
|
4325
|
-
onCheckboxChange: (0,
|
|
4237
|
+
onCheckboxChange: (0, import_react26.useCallback)(
|
|
4326
4238
|
(event, selectedModel) => {
|
|
4327
4239
|
const isShiftClick = "shiftKey" in event && event.shiftKey;
|
|
4328
4240
|
const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
|
|
@@ -4356,7 +4268,7 @@ function useDataTableRenderer({
|
|
|
4356
4268
|
columns,
|
|
4357
4269
|
tableMinWidth,
|
|
4358
4270
|
processedColumnGroups,
|
|
4359
|
-
onTotalSelect: (0,
|
|
4271
|
+
onTotalSelect: (0, import_react26.useCallback)(() => {
|
|
4360
4272
|
const selectableRows = rows.filter((row, i) => {
|
|
4361
4273
|
if (!isRowSelectable) return true;
|
|
4362
4274
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
@@ -4370,11 +4282,11 @@ function useDataTableRenderer({
|
|
|
4370
4282
|
}
|
|
4371
4283
|
|
|
4372
4284
|
// src/components/Table/Table.tsx
|
|
4373
|
-
var
|
|
4285
|
+
var import_react27 = __toESM(require("react"));
|
|
4374
4286
|
var import_joy35 = require("@mui/joy");
|
|
4375
4287
|
var Table = (props) => {
|
|
4376
4288
|
const { children, ...inheritProps } = props;
|
|
4377
|
-
return /* @__PURE__ */
|
|
4289
|
+
return /* @__PURE__ */ import_react27.default.createElement(import_joy35.Table, { ...inheritProps }, children);
|
|
4378
4290
|
};
|
|
4379
4291
|
Table.displayName = "Table";
|
|
4380
4292
|
function TableHead(props) {
|
|
@@ -4385,7 +4297,7 @@ function TableHead(props) {
|
|
|
4385
4297
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4386
4298
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4387
4299
|
} = props;
|
|
4388
|
-
return /* @__PURE__ */
|
|
4300
|
+
return /* @__PURE__ */ import_react27.default.createElement("thead", null, /* @__PURE__ */ import_react27.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react27.default.createElement(
|
|
4389
4301
|
"th",
|
|
4390
4302
|
{
|
|
4391
4303
|
style: {
|
|
@@ -4393,8 +4305,8 @@ function TableHead(props) {
|
|
|
4393
4305
|
textAlign: "center"
|
|
4394
4306
|
}
|
|
4395
4307
|
},
|
|
4396
|
-
/* @__PURE__ */
|
|
4397
|
-
), headCells.map((headCell) => /* @__PURE__ */
|
|
4308
|
+
/* @__PURE__ */ import_react27.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
|
|
4309
|
+
), headCells.map((headCell) => /* @__PURE__ */ import_react27.default.createElement(
|
|
4398
4310
|
"th",
|
|
4399
4311
|
{
|
|
4400
4312
|
key: headCell.label,
|
|
@@ -4419,15 +4331,15 @@ function TableBody(props) {
|
|
|
4419
4331
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4420
4332
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4421
4333
|
} = props;
|
|
4422
|
-
return /* @__PURE__ */
|
|
4334
|
+
return /* @__PURE__ */ import_react27.default.createElement("tbody", null, rows.map((row, rowIndex) => /* @__PURE__ */ import_react27.default.createElement("tr", { key: `table-row-${rowIndex}` }, showCheckbox && /* @__PURE__ */ import_react27.default.createElement(
|
|
4423
4335
|
"td",
|
|
4424
4336
|
{
|
|
4425
4337
|
style: {
|
|
4426
4338
|
textAlign: "center"
|
|
4427
4339
|
}
|
|
4428
4340
|
},
|
|
4429
|
-
/* @__PURE__ */
|
|
4430
|
-
), cellOrder.map((cellKey) => /* @__PURE__ */
|
|
4341
|
+
/* @__PURE__ */ import_react27.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
|
|
4342
|
+
), cellOrder.map((cellKey) => /* @__PURE__ */ import_react27.default.createElement(
|
|
4431
4343
|
"td",
|
|
4432
4344
|
{
|
|
4433
4345
|
key: cellKey,
|
|
@@ -4441,7 +4353,7 @@ function TableBody(props) {
|
|
|
4441
4353
|
TableBody.displayName = "TableBody";
|
|
4442
4354
|
|
|
4443
4355
|
// src/components/Pagination/Pagination.tsx
|
|
4444
|
-
var
|
|
4356
|
+
var import_react28 = __toESM(require("react"));
|
|
4445
4357
|
var import_ChevronLeftRounded = __toESM(require("@mui/icons-material/ChevronLeftRounded"));
|
|
4446
4358
|
var import_ChevronRightRounded = __toESM(require("@mui/icons-material/ChevronRightRounded"));
|
|
4447
4359
|
var import_FirstPageRounded = __toESM(require("@mui/icons-material/FirstPageRounded"));
|
|
@@ -4511,7 +4423,7 @@ function Pagination(inProps) {
|
|
|
4511
4423
|
const [paginationModel, setPaginationModel] = useControlledState(
|
|
4512
4424
|
_paginationModel,
|
|
4513
4425
|
defaultPaginationModel,
|
|
4514
|
-
(0,
|
|
4426
|
+
(0, import_react28.useCallback)(
|
|
4515
4427
|
(newPage) => {
|
|
4516
4428
|
onPageChange(newPage.page);
|
|
4517
4429
|
},
|
|
@@ -4527,7 +4439,7 @@ function Pagination(inProps) {
|
|
|
4527
4439
|
const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
|
|
4528
4440
|
const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
|
|
4529
4441
|
const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
|
|
4530
|
-
(0,
|
|
4442
|
+
(0, import_react28.useEffect)(() => {
|
|
4531
4443
|
if (paginationModel.page > lastPage) {
|
|
4532
4444
|
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
4533
4445
|
}
|
|
@@ -4537,7 +4449,7 @@ function Pagination(inProps) {
|
|
|
4537
4449
|
value: `${i + 1}`
|
|
4538
4450
|
}));
|
|
4539
4451
|
if (variant === "compact") {
|
|
4540
|
-
return /* @__PURE__ */
|
|
4452
|
+
return /* @__PURE__ */ import_react28.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react28.default.createElement(
|
|
4541
4453
|
PaginationIconButton,
|
|
4542
4454
|
{
|
|
4543
4455
|
size,
|
|
@@ -4547,8 +4459,8 @@ function Pagination(inProps) {
|
|
|
4547
4459
|
disabled: paginationModel.page === firstPage,
|
|
4548
4460
|
"aria-label": "First page"
|
|
4549
4461
|
},
|
|
4550
|
-
/* @__PURE__ */
|
|
4551
|
-
), /* @__PURE__ */
|
|
4462
|
+
/* @__PURE__ */ import_react28.default.createElement(import_FirstPageRounded.default, null)
|
|
4463
|
+
), /* @__PURE__ */ import_react28.default.createElement(
|
|
4552
4464
|
PaginationIconButton,
|
|
4553
4465
|
{
|
|
4554
4466
|
size,
|
|
@@ -4558,8 +4470,8 @@ function Pagination(inProps) {
|
|
|
4558
4470
|
disabled: paginationModel.page === firstPage,
|
|
4559
4471
|
"aria-label": "Previous page"
|
|
4560
4472
|
},
|
|
4561
|
-
/* @__PURE__ */
|
|
4562
|
-
)), /* @__PURE__ */
|
|
4473
|
+
/* @__PURE__ */ import_react28.default.createElement(import_ChevronLeftRounded.default, null)
|
|
4474
|
+
)), /* @__PURE__ */ import_react28.default.createElement(
|
|
4563
4475
|
Autocomplete_default,
|
|
4564
4476
|
{
|
|
4565
4477
|
size,
|
|
@@ -4578,7 +4490,7 @@ function Pagination(inProps) {
|
|
|
4578
4490
|
}[size]
|
|
4579
4491
|
}
|
|
4580
4492
|
}
|
|
4581
|
-
), /* @__PURE__ */
|
|
4493
|
+
), /* @__PURE__ */ import_react28.default.createElement(
|
|
4582
4494
|
Typography_default,
|
|
4583
4495
|
{
|
|
4584
4496
|
level: `body-${size}`,
|
|
@@ -4589,7 +4501,7 @@ function Pagination(inProps) {
|
|
|
4589
4501
|
},
|
|
4590
4502
|
"/ ",
|
|
4591
4503
|
lastPage
|
|
4592
|
-
), /* @__PURE__ */
|
|
4504
|
+
), /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react28.default.createElement(
|
|
4593
4505
|
PaginationIconButton,
|
|
4594
4506
|
{
|
|
4595
4507
|
size,
|
|
@@ -4599,8 +4511,8 @@ function Pagination(inProps) {
|
|
|
4599
4511
|
disabled: paginationModel.page === lastPage,
|
|
4600
4512
|
"aria-label": "Next page"
|
|
4601
4513
|
},
|
|
4602
|
-
/* @__PURE__ */
|
|
4603
|
-
), /* @__PURE__ */
|
|
4514
|
+
/* @__PURE__ */ import_react28.default.createElement(import_ChevronRightRounded.default, null)
|
|
4515
|
+
), /* @__PURE__ */ import_react28.default.createElement(
|
|
4604
4516
|
PaginationIconButton,
|
|
4605
4517
|
{
|
|
4606
4518
|
size,
|
|
@@ -4610,10 +4522,10 @@ function Pagination(inProps) {
|
|
|
4610
4522
|
disabled: paginationModel.page === lastPage,
|
|
4611
4523
|
"aria-label": "Last page"
|
|
4612
4524
|
},
|
|
4613
|
-
/* @__PURE__ */
|
|
4525
|
+
/* @__PURE__ */ import_react28.default.createElement(import_LastPageRounded.default, null)
|
|
4614
4526
|
))));
|
|
4615
4527
|
}
|
|
4616
|
-
return /* @__PURE__ */
|
|
4528
|
+
return /* @__PURE__ */ import_react28.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react28.default.createElement(
|
|
4617
4529
|
PaginationIconButton,
|
|
4618
4530
|
{
|
|
4619
4531
|
size,
|
|
@@ -4623,8 +4535,8 @@ function Pagination(inProps) {
|
|
|
4623
4535
|
disabled: paginationModel.page === firstPage,
|
|
4624
4536
|
"aria-label": "Previous page"
|
|
4625
4537
|
},
|
|
4626
|
-
/* @__PURE__ */
|
|
4627
|
-
), paginationModel.page !== firstPage && /* @__PURE__ */
|
|
4538
|
+
/* @__PURE__ */ import_react28.default.createElement(import_ChevronLeftRounded.default, null)
|
|
4539
|
+
), paginationModel.page !== firstPage && /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ import_react28.default.createElement(
|
|
4628
4540
|
PaginationButton,
|
|
4629
4541
|
{
|
|
4630
4542
|
size,
|
|
@@ -4634,7 +4546,7 @@ function Pagination(inProps) {
|
|
|
4634
4546
|
"aria-label": "More previous pages"
|
|
4635
4547
|
},
|
|
4636
4548
|
"..."
|
|
4637
|
-
), beforePages.map((p) => /* @__PURE__ */
|
|
4549
|
+
), beforePages.map((p) => /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { active: "active", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ import_react28.default.createElement(
|
|
4638
4550
|
PaginationButton,
|
|
4639
4551
|
{
|
|
4640
4552
|
size,
|
|
@@ -4644,7 +4556,7 @@ function Pagination(inProps) {
|
|
|
4644
4556
|
onClick: () => handlePageChange(paginationModel.page + 3)
|
|
4645
4557
|
},
|
|
4646
4558
|
"..."
|
|
4647
|
-
), paginationModel.page !== lastPage && /* @__PURE__ */
|
|
4559
|
+
), paginationModel.page !== lastPage && /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react28.default.createElement(
|
|
4648
4560
|
PaginationIconButton,
|
|
4649
4561
|
{
|
|
4650
4562
|
size,
|
|
@@ -4654,7 +4566,7 @@ function Pagination(inProps) {
|
|
|
4654
4566
|
disabled: paginationModel.page === lastPage,
|
|
4655
4567
|
"aria-label": "Next page"
|
|
4656
4568
|
},
|
|
4657
|
-
/* @__PURE__ */
|
|
4569
|
+
/* @__PURE__ */ import_react28.default.createElement(import_ChevronRightRounded.default, null)
|
|
4658
4570
|
)));
|
|
4659
4571
|
}
|
|
4660
4572
|
Pagination.displayName = "Pagination";
|
|
@@ -4728,9 +4640,9 @@ function Component(props, apiRef) {
|
|
|
4728
4640
|
isTotalSelected: ___________,
|
|
4729
4641
|
...innerProps
|
|
4730
4642
|
} = props;
|
|
4731
|
-
const tableId = (0,
|
|
4732
|
-
const parentRef = (0,
|
|
4733
|
-
const tableBodyRef = (0,
|
|
4643
|
+
const tableId = (0, import_react29.useId)();
|
|
4644
|
+
const parentRef = (0, import_react29.useRef)(null);
|
|
4645
|
+
const tableBodyRef = (0, import_react29.useRef)(null);
|
|
4734
4646
|
const {
|
|
4735
4647
|
columns,
|
|
4736
4648
|
processedColumnGroups,
|
|
@@ -4766,10 +4678,10 @@ function Component(props, apiRef) {
|
|
|
4766
4678
|
measureElement: (element) => element.clientHeight,
|
|
4767
4679
|
overscan: 10
|
|
4768
4680
|
});
|
|
4769
|
-
const paginationModel = (0,
|
|
4681
|
+
const paginationModel = (0, import_react29.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
|
|
4770
4682
|
const columnsKey = getObjectVersion(columns);
|
|
4771
|
-
const headerCheckboxElement = (0,
|
|
4772
|
-
() => /* @__PURE__ */
|
|
4683
|
+
const headerCheckboxElement = (0, import_react29.useMemo)(
|
|
4684
|
+
() => /* @__PURE__ */ import_react29.default.createElement(
|
|
4773
4685
|
RenderCheckbox,
|
|
4774
4686
|
{
|
|
4775
4687
|
onChange: onAllCheckboxChange,
|
|
@@ -4794,20 +4706,20 @@ function Component(props, apiRef) {
|
|
|
4794
4706
|
const showNoRowsOverlay = !loading && rowCount === 0;
|
|
4795
4707
|
const showFillerColumn = columns.length > 0 && columns.every((c) => !!c.width);
|
|
4796
4708
|
const totalColCount = Math.max(1, columns.length + (checkboxSelection ? 1 : 0) + (showFillerColumn ? 1 : 0));
|
|
4797
|
-
const getRowClickHandler = (0,
|
|
4709
|
+
const getRowClickHandler = (0, import_react29.useCallback)(
|
|
4798
4710
|
(row, rowId) => (e) => {
|
|
4799
4711
|
onRowClick?.({ row, rowId }, e);
|
|
4800
4712
|
checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
|
|
4801
4713
|
},
|
|
4802
4714
|
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
|
|
4803
4715
|
);
|
|
4804
|
-
const getRowFocusHandler = (0,
|
|
4716
|
+
const getRowFocusHandler = (0, import_react29.useCallback)(
|
|
4805
4717
|
(rowId) => () => {
|
|
4806
4718
|
onRowFocus(rowId);
|
|
4807
4719
|
},
|
|
4808
4720
|
[onRowFocus]
|
|
4809
4721
|
);
|
|
4810
|
-
const getCheckboxClickHandler = (0,
|
|
4722
|
+
const getCheckboxClickHandler = (0, import_react29.useCallback)(
|
|
4811
4723
|
(rowId, row) => (e) => {
|
|
4812
4724
|
e.stopPropagation();
|
|
4813
4725
|
if (isRowSelectableCheck(rowId, row)) {
|
|
@@ -4817,7 +4729,7 @@ function Component(props, apiRef) {
|
|
|
4817
4729
|
},
|
|
4818
4730
|
[onCheckboxChange, isRowSelectableCheck, onRowFocus]
|
|
4819
4731
|
);
|
|
4820
|
-
const handleTableKeyDown = (0,
|
|
4732
|
+
const handleTableKeyDown = (0, import_react29.useCallback)(
|
|
4821
4733
|
(e) => {
|
|
4822
4734
|
const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
|
|
4823
4735
|
if (!supportedKeys.includes(e.key)) return;
|
|
@@ -4907,7 +4819,7 @@ function Component(props, apiRef) {
|
|
|
4907
4819
|
virtualizer
|
|
4908
4820
|
]
|
|
4909
4821
|
);
|
|
4910
|
-
(0,
|
|
4822
|
+
(0, import_react29.useImperativeHandle)(apiRef, () => ({
|
|
4911
4823
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
4912
4824
|
return dataInPage.findIndex((row) => String(getId(row)) === rowId);
|
|
4913
4825
|
},
|
|
@@ -4923,7 +4835,7 @@ function Component(props, apiRef) {
|
|
|
4923
4835
|
});
|
|
4924
4836
|
}
|
|
4925
4837
|
}));
|
|
4926
|
-
return /* @__PURE__ */
|
|
4838
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
4927
4839
|
Box_default,
|
|
4928
4840
|
{
|
|
4929
4841
|
sx: {
|
|
@@ -4933,7 +4845,7 @@ function Component(props, apiRef) {
|
|
|
4933
4845
|
flexDirection: "column"
|
|
4934
4846
|
}
|
|
4935
4847
|
},
|
|
4936
|
-
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */
|
|
4848
|
+
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react29.default.createElement(
|
|
4937
4849
|
Stack_default,
|
|
4938
4850
|
{
|
|
4939
4851
|
direction: "row",
|
|
@@ -4943,10 +4855,10 @@ function Component(props, apiRef) {
|
|
|
4943
4855
|
justifyContent: "space-between",
|
|
4944
4856
|
alignItems: "center"
|
|
4945
4857
|
},
|
|
4946
|
-
!!checkboxSelection && /* @__PURE__ */
|
|
4947
|
-
Toolbar && /* @__PURE__ */
|
|
4858
|
+
!!checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ import_react29.default.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ import_react29.default.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(selectableRowCount), " items")), isTotalSelected && /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectableRowCount), " items are selected."), /* @__PURE__ */ import_react29.default.createElement(Button_default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))),
|
|
4859
|
+
Toolbar && /* @__PURE__ */ import_react29.default.createElement(Toolbar, { ...toolbarProps || {} })
|
|
4948
4860
|
),
|
|
4949
|
-
/* @__PURE__ */
|
|
4861
|
+
/* @__PURE__ */ import_react29.default.createElement(
|
|
4950
4862
|
Sheet_default,
|
|
4951
4863
|
{
|
|
4952
4864
|
variant: "outlined",
|
|
@@ -4967,24 +4879,24 @@ function Component(props, apiRef) {
|
|
|
4967
4879
|
ref: parentRef,
|
|
4968
4880
|
...backgroundProps
|
|
4969
4881
|
},
|
|
4970
|
-
/* @__PURE__ */
|
|
4882
|
+
/* @__PURE__ */ import_react29.default.createElement(Table, { ...innerProps, sx: { ...innerProps.sx, minWidth: tableMinWidth } }, /* @__PURE__ */ import_react29.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
|
|
4971
4883
|
"col",
|
|
4972
4884
|
{
|
|
4973
4885
|
style: {
|
|
4974
4886
|
width: "40px"
|
|
4975
4887
|
}
|
|
4976
4888
|
}
|
|
4977
|
-
), columns.map((c) => /* @__PURE__ */
|
|
4889
|
+
), columns.map((c) => /* @__PURE__ */ import_react29.default.createElement(
|
|
4978
4890
|
"col",
|
|
4979
4891
|
{
|
|
4980
4892
|
ref: c.tableColRef,
|
|
4981
|
-
key: c.
|
|
4893
|
+
key: `${c.field.toString()}_${c.width}`,
|
|
4982
4894
|
style: {
|
|
4983
4895
|
width: c.width,
|
|
4984
4896
|
minWidth: c.minWidth ?? "50px"
|
|
4985
4897
|
}
|
|
4986
4898
|
}
|
|
4987
|
-
)), showFillerColumn && /* @__PURE__ */
|
|
4899
|
+
)), showFillerColumn && /* @__PURE__ */ import_react29.default.createElement("col", { style: { minWidth: 0 } })), /* @__PURE__ */ import_react29.default.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.length > 0 && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ import_react29.default.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ import_react29.default.createElement(
|
|
4988
4900
|
"th",
|
|
4989
4901
|
{
|
|
4990
4902
|
rowSpan: processedColumnGroups.maxLevel + 2,
|
|
@@ -4995,12 +4907,12 @@ function Component(props, apiRef) {
|
|
|
4995
4907
|
}
|
|
4996
4908
|
},
|
|
4997
4909
|
headerCheckboxElement
|
|
4998
|
-
), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */
|
|
4910
|
+
), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */ import_react29.default.createElement("th", { key: `empty-${level}-${i}` })), levelGroups.filter((g) => g.colspan > 0).map((group, groupIndex) => {
|
|
4999
4911
|
const nextGroup = levelGroups[groupIndex + 1];
|
|
5000
4912
|
const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
|
|
5001
4913
|
const params = { groupId: group.groupId };
|
|
5002
4914
|
const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
|
|
5003
|
-
return /* @__PURE__ */
|
|
4915
|
+
return /* @__PURE__ */ import_react29.default.createElement(import_react29.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react29.default.createElement(
|
|
5004
4916
|
"th",
|
|
5005
4917
|
{
|
|
5006
4918
|
colSpan: group.colspan,
|
|
@@ -5012,14 +4924,14 @@ function Component(props, apiRef) {
|
|
|
5012
4924
|
className: computedHeaderClassName
|
|
5013
4925
|
},
|
|
5014
4926
|
group.headerName ?? group.groupId
|
|
5015
|
-
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */
|
|
5016
|
-
}), showFillerColumn && level === 0 && /* @__PURE__ */
|
|
4927
|
+
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react29.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
|
|
4928
|
+
}), showFillerColumn && level === 0 && /* @__PURE__ */ import_react29.default.createElement(
|
|
5017
4929
|
"th",
|
|
5018
4930
|
{
|
|
5019
4931
|
"aria-hidden": "true",
|
|
5020
4932
|
rowSpan: processedColumnGroups.maxLevel + 2
|
|
5021
4933
|
}
|
|
5022
|
-
))), /* @__PURE__ */
|
|
4934
|
+
))), /* @__PURE__ */ import_react29.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
|
|
5023
4935
|
"th",
|
|
5024
4936
|
{
|
|
5025
4937
|
style: {
|
|
@@ -5030,7 +4942,7 @@ function Component(props, apiRef) {
|
|
|
5030
4942
|
headerCheckboxElement
|
|
5031
4943
|
), columns.map((c, i) => (
|
|
5032
4944
|
// @ts-ignore
|
|
5033
|
-
/* @__PURE__ */
|
|
4945
|
+
/* @__PURE__ */ import_react29.default.createElement(
|
|
5034
4946
|
HeadCell2,
|
|
5035
4947
|
{
|
|
5036
4948
|
tableId,
|
|
@@ -5042,7 +4954,7 @@ function Component(props, apiRef) {
|
|
|
5042
4954
|
...c
|
|
5043
4955
|
}
|
|
5044
4956
|
)
|
|
5045
|
-
)), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */
|
|
4957
|
+
)), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */ import_react29.default.createElement("th", { "aria-hidden": "true" }))), /* @__PURE__ */ import_react29.default.createElement(
|
|
5046
4958
|
VirtualizedTableBody,
|
|
5047
4959
|
{
|
|
5048
4960
|
ref: tableBodyRef,
|
|
@@ -5053,7 +4965,7 @@ function Component(props, apiRef) {
|
|
|
5053
4965
|
role: "rowgroup",
|
|
5054
4966
|
"aria-label": "DataTableBody"
|
|
5055
4967
|
},
|
|
5056
|
-
!!loading && /* @__PURE__ */
|
|
4968
|
+
!!loading && /* @__PURE__ */ import_react29.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
5057
4969
|
"td",
|
|
5058
4970
|
{
|
|
5059
4971
|
style: {
|
|
@@ -5062,7 +4974,7 @@ function Component(props, apiRef) {
|
|
|
5062
4974
|
overflow: "visible"
|
|
5063
4975
|
}
|
|
5064
4976
|
},
|
|
5065
|
-
/* @__PURE__ */
|
|
4977
|
+
/* @__PURE__ */ import_react29.default.createElement(
|
|
5066
4978
|
Box_default,
|
|
5067
4979
|
{
|
|
5068
4980
|
sx: {
|
|
@@ -5072,10 +4984,10 @@ function Component(props, apiRef) {
|
|
|
5072
4984
|
right: 0
|
|
5073
4985
|
}
|
|
5074
4986
|
},
|
|
5075
|
-
/* @__PURE__ */
|
|
4987
|
+
/* @__PURE__ */ import_react29.default.createElement(LoadingOverlay, null)
|
|
5076
4988
|
)
|
|
5077
4989
|
)),
|
|
5078
|
-
showNoRowsOverlay && /* @__PURE__ */
|
|
4990
|
+
showNoRowsOverlay && /* @__PURE__ */ import_react29.default.createElement("tr", null, /* @__PURE__ */ import_react29.default.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ import_react29.default.createElement(
|
|
5079
4991
|
Box_default,
|
|
5080
4992
|
{
|
|
5081
4993
|
sx: {
|
|
@@ -5085,14 +4997,14 @@ function Component(props, apiRef) {
|
|
|
5085
4997
|
minHeight: "150px"
|
|
5086
4998
|
}
|
|
5087
4999
|
},
|
|
5088
|
-
/* @__PURE__ */
|
|
5000
|
+
/* @__PURE__ */ import_react29.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
|
|
5089
5001
|
))),
|
|
5090
5002
|
virtualizedItems.map((virtualizedRow, index) => {
|
|
5091
5003
|
const rowIndex = virtualizedRow.index;
|
|
5092
5004
|
const row = dataInPage[rowIndex];
|
|
5093
5005
|
const rowId = getId(row, rowIndex);
|
|
5094
5006
|
const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
|
|
5095
|
-
return /* @__PURE__ */
|
|
5007
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
5096
5008
|
VirtualizedTableRow,
|
|
5097
5009
|
{
|
|
5098
5010
|
key: virtualizedRow.key,
|
|
@@ -5112,7 +5024,7 @@ function Component(props, apiRef) {
|
|
|
5112
5024
|
transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
|
|
5113
5025
|
}
|
|
5114
5026
|
},
|
|
5115
|
-
checkboxSelection && /* @__PURE__ */
|
|
5027
|
+
checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
|
|
5116
5028
|
"th",
|
|
5117
5029
|
{
|
|
5118
5030
|
scope: "row",
|
|
@@ -5120,7 +5032,7 @@ function Component(props, apiRef) {
|
|
|
5120
5032
|
textAlign: "center"
|
|
5121
5033
|
}
|
|
5122
5034
|
},
|
|
5123
|
-
/* @__PURE__ */
|
|
5035
|
+
/* @__PURE__ */ import_react29.default.createElement(
|
|
5124
5036
|
RenderCheckbox,
|
|
5125
5037
|
{
|
|
5126
5038
|
onClick: getCheckboxClickHandler(rowId, row),
|
|
@@ -5131,7 +5043,7 @@ function Component(props, apiRef) {
|
|
|
5131
5043
|
}
|
|
5132
5044
|
)
|
|
5133
5045
|
),
|
|
5134
|
-
/* @__PURE__ */
|
|
5046
|
+
/* @__PURE__ */ import_react29.default.createElement(
|
|
5135
5047
|
BodyRow2,
|
|
5136
5048
|
{
|
|
5137
5049
|
tableId,
|
|
@@ -5142,12 +5054,12 @@ function Component(props, apiRef) {
|
|
|
5142
5054
|
noWrap: props.noWrap
|
|
5143
5055
|
}
|
|
5144
5056
|
),
|
|
5145
|
-
showFillerColumn && /* @__PURE__ */
|
|
5057
|
+
showFillerColumn && /* @__PURE__ */ import_react29.default.createElement("td", { "aria-hidden": "true" })
|
|
5146
5058
|
);
|
|
5147
5059
|
})
|
|
5148
|
-
), Footer && /* @__PURE__ */
|
|
5060
|
+
), Footer && /* @__PURE__ */ import_react29.default.createElement(Footer, null))
|
|
5149
5061
|
),
|
|
5150
|
-
pagination && /* @__PURE__ */
|
|
5062
|
+
pagination && /* @__PURE__ */ import_react29.default.createElement(
|
|
5151
5063
|
Pagination_default,
|
|
5152
5064
|
{
|
|
5153
5065
|
pt: 2,
|
|
@@ -5160,11 +5072,11 @@ function Component(props, apiRef) {
|
|
|
5160
5072
|
)
|
|
5161
5073
|
);
|
|
5162
5074
|
}
|
|
5163
|
-
var DataTable = (0,
|
|
5075
|
+
var DataTable = (0, import_react29.forwardRef)(Component);
|
|
5164
5076
|
DataTable.displayName = "DataTable";
|
|
5165
5077
|
|
|
5166
5078
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
5167
|
-
var
|
|
5079
|
+
var import_react30 = __toESM(require("react"));
|
|
5168
5080
|
var import_react_imask2 = require("react-imask");
|
|
5169
5081
|
var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5170
5082
|
var import_joy37 = require("@mui/joy");
|
|
@@ -5306,9 +5218,9 @@ var parseDates = (str, format) => {
|
|
|
5306
5218
|
var formatToPattern2 = (format) => {
|
|
5307
5219
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
5308
5220
|
};
|
|
5309
|
-
var TextMaskAdapter5 =
|
|
5221
|
+
var TextMaskAdapter5 = import_react30.default.forwardRef(function TextMaskAdapter6(props, ref) {
|
|
5310
5222
|
const { onChange, format, ...other } = props;
|
|
5311
|
-
return /* @__PURE__ */
|
|
5223
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
5312
5224
|
import_react_imask2.IMaskInput,
|
|
5313
5225
|
{
|
|
5314
5226
|
...other,
|
|
@@ -5342,7 +5254,7 @@ var TextMaskAdapter5 = import_react31.default.forwardRef(function TextMaskAdapte
|
|
|
5342
5254
|
}
|
|
5343
5255
|
);
|
|
5344
5256
|
});
|
|
5345
|
-
var DateRangePicker = (0,
|
|
5257
|
+
var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
5346
5258
|
const props = (0, import_joy37.useThemeProps)({ props: inProps, name: "DateRangePicker" });
|
|
5347
5259
|
const {
|
|
5348
5260
|
onChange,
|
|
@@ -5369,28 +5281,28 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5369
5281
|
numberOfMonths,
|
|
5370
5282
|
...innerProps
|
|
5371
5283
|
} = props;
|
|
5372
|
-
const innerRef = (0,
|
|
5373
|
-
const buttonRef = (0,
|
|
5284
|
+
const innerRef = (0, import_react30.useRef)(null);
|
|
5285
|
+
const buttonRef = (0, import_react30.useRef)(null);
|
|
5374
5286
|
const [rawValue, setValue] = useControlledState(
|
|
5375
5287
|
props.value,
|
|
5376
5288
|
props.defaultValue ?? null,
|
|
5377
|
-
(0,
|
|
5289
|
+
(0, import_react30.useCallback)(
|
|
5378
5290
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
5379
5291
|
[props.name, onChange]
|
|
5380
5292
|
)
|
|
5381
5293
|
);
|
|
5382
5294
|
const value = rawValue ?? "";
|
|
5383
5295
|
const isAlphabeticDisplay = hasAlphabeticMonth2(displayFormat);
|
|
5384
|
-
const [displayValue, setDisplayValue] = (0,
|
|
5296
|
+
const [displayValue, setDisplayValue] = (0, import_react30.useState)(
|
|
5385
5297
|
() => value ? formatValueString2(parseDates(value, format), displayFormat, locale) : ""
|
|
5386
5298
|
);
|
|
5387
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5299
|
+
const [anchorEl, setAnchorEl] = (0, import_react30.useState)(null);
|
|
5388
5300
|
const open = Boolean(anchorEl);
|
|
5389
|
-
const calendarValue = (0,
|
|
5301
|
+
const calendarValue = (0, import_react30.useMemo)(
|
|
5390
5302
|
() => value ? parseDates(value, format) : void 0,
|
|
5391
5303
|
[value, format]
|
|
5392
5304
|
);
|
|
5393
|
-
(0,
|
|
5305
|
+
(0, import_react30.useEffect)(() => {
|
|
5394
5306
|
if (value) {
|
|
5395
5307
|
try {
|
|
5396
5308
|
const dates = parseDates(value, format);
|
|
@@ -5402,13 +5314,13 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5402
5314
|
setDisplayValue("");
|
|
5403
5315
|
}
|
|
5404
5316
|
}, [displayFormat, locale, value, format]);
|
|
5405
|
-
(0,
|
|
5317
|
+
(0, import_react30.useEffect)(() => {
|
|
5406
5318
|
if (!anchorEl) {
|
|
5407
5319
|
innerRef.current?.blur();
|
|
5408
5320
|
}
|
|
5409
5321
|
}, [anchorEl, innerRef]);
|
|
5410
|
-
(0,
|
|
5411
|
-
const handleChange = (0,
|
|
5322
|
+
(0, import_react30.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5323
|
+
const handleChange = (0, import_react30.useCallback)(
|
|
5412
5324
|
(event) => {
|
|
5413
5325
|
const value2 = event.target.value;
|
|
5414
5326
|
setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat, locale) : value2);
|
|
@@ -5416,7 +5328,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5416
5328
|
},
|
|
5417
5329
|
[displayFormat, format, locale, setValue]
|
|
5418
5330
|
);
|
|
5419
|
-
const handleDisplayInputChange = (0,
|
|
5331
|
+
const handleDisplayInputChange = (0, import_react30.useCallback)(
|
|
5420
5332
|
(event) => {
|
|
5421
5333
|
if (event.target.value === "") {
|
|
5422
5334
|
handleChange({
|
|
@@ -5441,14 +5353,14 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5441
5353
|
},
|
|
5442
5354
|
[displayFormat, format, handleChange, props.name]
|
|
5443
5355
|
);
|
|
5444
|
-
const handleCalendarToggle = (0,
|
|
5356
|
+
const handleCalendarToggle = (0, import_react30.useCallback)(
|
|
5445
5357
|
(event) => {
|
|
5446
5358
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5447
5359
|
innerRef.current?.focus();
|
|
5448
5360
|
},
|
|
5449
5361
|
[anchorEl, setAnchorEl, innerRef]
|
|
5450
5362
|
);
|
|
5451
|
-
const handleCalendarChange = (0,
|
|
5363
|
+
const handleCalendarChange = (0, import_react30.useCallback)(
|
|
5452
5364
|
([date1, date2]) => {
|
|
5453
5365
|
if (!date1 || !date2) return;
|
|
5454
5366
|
const formattedValue = formatValueString2([date1, date2], format);
|
|
@@ -5462,7 +5374,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5462
5374
|
},
|
|
5463
5375
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5464
5376
|
);
|
|
5465
|
-
const handleInputMouseDown = (0,
|
|
5377
|
+
const handleInputMouseDown = (0, import_react30.useCallback)(
|
|
5466
5378
|
(event) => {
|
|
5467
5379
|
if (inputReadOnly || isAlphabeticDisplay) {
|
|
5468
5380
|
event.preventDefault();
|
|
@@ -5471,7 +5383,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5471
5383
|
},
|
|
5472
5384
|
[inputReadOnly, isAlphabeticDisplay, buttonRef]
|
|
5473
5385
|
);
|
|
5474
|
-
const handleInputClick = (0,
|
|
5386
|
+
const handleInputClick = (0, import_react30.useCallback)(
|
|
5475
5387
|
(event) => {
|
|
5476
5388
|
if (inputReadOnly && !readOnly) {
|
|
5477
5389
|
handleCalendarToggle(event);
|
|
@@ -5479,7 +5391,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5479
5391
|
},
|
|
5480
5392
|
[inputReadOnly, readOnly, handleCalendarToggle]
|
|
5481
5393
|
);
|
|
5482
|
-
const handlePresetClick = (0,
|
|
5394
|
+
const handlePresetClick = (0, import_react30.useCallback)(
|
|
5483
5395
|
(presetValue) => {
|
|
5484
5396
|
if (props.value !== void 0) {
|
|
5485
5397
|
onChange?.({ target: { name: props.name, value: presetValue } });
|
|
@@ -5492,7 +5404,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5492
5404
|
},
|
|
5493
5405
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5494
5406
|
);
|
|
5495
|
-
const isPresetDisabled = (0,
|
|
5407
|
+
const isPresetDisabled = (0, import_react30.useCallback)(
|
|
5496
5408
|
(presetValue) => {
|
|
5497
5409
|
try {
|
|
5498
5410
|
const dates = parseDates(presetValue, format);
|
|
@@ -5511,7 +5423,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5511
5423
|
},
|
|
5512
5424
|
[format, minDate, maxDate, disableFuture, disablePast]
|
|
5513
5425
|
);
|
|
5514
|
-
return /* @__PURE__ */
|
|
5426
|
+
return /* @__PURE__ */ import_react30.default.createElement(DateRangePickerRoot, { sx, className }, /* @__PURE__ */ import_react30.default.createElement(import_base4.FocusTrap, { open: true }, /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
5515
5427
|
Input_default,
|
|
5516
5428
|
{
|
|
5517
5429
|
...innerProps,
|
|
@@ -5538,7 +5450,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5538
5450
|
},
|
|
5539
5451
|
error,
|
|
5540
5452
|
sx: { width: "100%" },
|
|
5541
|
-
endDecorator: /* @__PURE__ */
|
|
5453
|
+
endDecorator: /* @__PURE__ */ import_react30.default.createElement(
|
|
5542
5454
|
CalendarButton2,
|
|
5543
5455
|
{
|
|
5544
5456
|
ref: buttonRef,
|
|
@@ -5550,13 +5462,13 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5550
5462
|
"aria-expanded": open,
|
|
5551
5463
|
disabled
|
|
5552
5464
|
},
|
|
5553
|
-
/* @__PURE__ */
|
|
5465
|
+
/* @__PURE__ */ import_react30.default.createElement(import_CalendarToday2.default, null)
|
|
5554
5466
|
),
|
|
5555
5467
|
label,
|
|
5556
5468
|
helperText,
|
|
5557
5469
|
readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
|
|
5558
5470
|
}
|
|
5559
|
-
), open && /* @__PURE__ */
|
|
5471
|
+
), open && /* @__PURE__ */ import_react30.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react30.default.createElement(
|
|
5560
5472
|
StyledPopper2,
|
|
5561
5473
|
{
|
|
5562
5474
|
id: "date-range-picker-popper",
|
|
@@ -5575,7 +5487,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5575
5487
|
"aria-label": "Calendar Tooltip",
|
|
5576
5488
|
"aria-expanded": open
|
|
5577
5489
|
},
|
|
5578
|
-
/* @__PURE__ */
|
|
5490
|
+
/* @__PURE__ */ import_react30.default.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react30.default.createElement(CalendarSheetContent2, null, /* @__PURE__ */ import_react30.default.createElement(CalendarSection2, { style: { width: "auto" } }, /* @__PURE__ */ import_react30.default.createElement(
|
|
5579
5491
|
Calendar_default,
|
|
5580
5492
|
{
|
|
5581
5493
|
rangeSelection: true,
|
|
@@ -5588,14 +5500,14 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5588
5500
|
locale,
|
|
5589
5501
|
numberOfMonths
|
|
5590
5502
|
}
|
|
5591
|
-
), !hideClearButton && /* @__PURE__ */
|
|
5503
|
+
), !hideClearButton && /* @__PURE__ */ import_react30.default.createElement(
|
|
5592
5504
|
DialogActions_default,
|
|
5593
5505
|
{
|
|
5594
5506
|
sx: {
|
|
5595
5507
|
p: 1
|
|
5596
5508
|
}
|
|
5597
5509
|
},
|
|
5598
|
-
/* @__PURE__ */
|
|
5510
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
5599
5511
|
Button_default,
|
|
5600
5512
|
{
|
|
5601
5513
|
size,
|
|
@@ -5609,9 +5521,9 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5609
5521
|
},
|
|
5610
5522
|
"Clear"
|
|
5611
5523
|
)
|
|
5612
|
-
)), presets && presets.length > 0 && /* @__PURE__ */
|
|
5524
|
+
)), presets && presets.length > 0 && /* @__PURE__ */ import_react30.default.createElement(PresetPanel2, null, presets.map((preset) => {
|
|
5613
5525
|
const disabled2 = isPresetDisabled(preset.value);
|
|
5614
|
-
return /* @__PURE__ */
|
|
5526
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
5615
5527
|
PresetItem2,
|
|
5616
5528
|
{
|
|
5617
5529
|
key: preset.label,
|
|
@@ -5630,7 +5542,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
|
5630
5542
|
DateRangePicker.displayName = "DateRangePicker";
|
|
5631
5543
|
|
|
5632
5544
|
// src/components/Drawer/Drawer.tsx
|
|
5633
|
-
var
|
|
5545
|
+
var import_react31 = __toESM(require("react"));
|
|
5634
5546
|
var import_joy38 = require("@mui/joy");
|
|
5635
5547
|
var import_framer_motion22 = require("framer-motion");
|
|
5636
5548
|
var MotionDrawer = (0, import_framer_motion22.motion)(import_joy38.Drawer);
|
|
@@ -5648,7 +5560,7 @@ var StyledDrawer = (0, import_joy38.styled)(MotionDrawer)(({ theme, size = "md"
|
|
|
5648
5560
|
}));
|
|
5649
5561
|
var Drawer = (props) => {
|
|
5650
5562
|
const { children, ...innerProps } = props;
|
|
5651
|
-
return /* @__PURE__ */
|
|
5563
|
+
return /* @__PURE__ */ import_react31.default.createElement(StyledDrawer, { ...innerProps }, children);
|
|
5652
5564
|
};
|
|
5653
5565
|
Drawer.displayName = "Drawer";
|
|
5654
5566
|
|
|
@@ -5679,10 +5591,10 @@ DialogTitle.displayName = "DialogTitle";
|
|
|
5679
5591
|
var DialogTitle_default = DialogTitle;
|
|
5680
5592
|
|
|
5681
5593
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
5682
|
-
var
|
|
5594
|
+
var import_react33 = __toESM(require("react"));
|
|
5683
5595
|
|
|
5684
5596
|
// src/components/Modal/Modal.tsx
|
|
5685
|
-
var
|
|
5597
|
+
var import_react32 = __toESM(require("react"));
|
|
5686
5598
|
var import_joy41 = require("@mui/joy");
|
|
5687
5599
|
var import_framer_motion25 = require("framer-motion");
|
|
5688
5600
|
var MotionModal = (0, import_framer_motion25.motion)(import_joy41.Modal);
|
|
@@ -5697,10 +5609,10 @@ var ModalClose = import_joy41.ModalClose;
|
|
|
5697
5609
|
var MotionModalOverflow = (0, import_framer_motion25.motion)(import_joy41.ModalOverflow);
|
|
5698
5610
|
var ModalOverflow = MotionModalOverflow;
|
|
5699
5611
|
ModalOverflow.displayName = "ModalOverflow";
|
|
5700
|
-
|
|
5612
|
+
function ModalFrame(props) {
|
|
5701
5613
|
const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
|
|
5702
|
-
return /* @__PURE__ */
|
|
5703
|
-
}
|
|
5614
|
+
return /* @__PURE__ */ import_react32.default.createElement(StyledModalDialog, { ...innerProps }, /* @__PURE__ */ import_react32.default.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ import_react32.default.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ import_react32.default.createElement(DialogContent_default, null, children));
|
|
5615
|
+
}
|
|
5704
5616
|
ModalFrame.displayName = "ModalFrame";
|
|
5705
5617
|
|
|
5706
5618
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
@@ -5711,20 +5623,20 @@ var StyledDialogFrame = (0, import_joy42.styled)(ModalDialog, {
|
|
|
5711
5623
|
})({
|
|
5712
5624
|
padding: 0
|
|
5713
5625
|
});
|
|
5714
|
-
var DialogFrame =
|
|
5626
|
+
var DialogFrame = import_react33.default.forwardRef((props, ref) => {
|
|
5715
5627
|
const { title, children, actions, fullscreen, onSubmit, ...innerProps } = props;
|
|
5716
5628
|
const formProps = onSubmit ? { component: "form", onSubmit } : void 0;
|
|
5717
|
-
return /* @__PURE__ */
|
|
5629
|
+
return /* @__PURE__ */ import_react33.default.createElement(StyledDialogFrame, { layout: fullscreen ? "fullscreen" : "center", ref, ...formProps, ...innerProps }, /* @__PURE__ */ import_react33.default.createElement(DialogTitle_default, null, title), /* @__PURE__ */ import_react33.default.createElement(DialogContent_default, null, children), /* @__PURE__ */ import_react33.default.createElement(DialogActions_default, null, actions));
|
|
5718
5630
|
});
|
|
5719
5631
|
DialogFrame.displayName = "DialogFrame";
|
|
5720
5632
|
|
|
5721
5633
|
// src/components/Divider/Divider.tsx
|
|
5722
|
-
var
|
|
5634
|
+
var import_react34 = __toESM(require("react"));
|
|
5723
5635
|
var import_joy43 = require("@mui/joy");
|
|
5724
5636
|
var import_framer_motion26 = require("framer-motion");
|
|
5725
5637
|
var MotionDivider = (0, import_framer_motion26.motion)(import_joy43.Divider);
|
|
5726
5638
|
var Divider = (props) => {
|
|
5727
|
-
return /* @__PURE__ */
|
|
5639
|
+
return /* @__PURE__ */ import_react34.default.createElement(MotionDivider, { ...props });
|
|
5728
5640
|
};
|
|
5729
5641
|
Divider.displayName = "Divider";
|
|
5730
5642
|
|
|
@@ -5745,16 +5657,16 @@ var InsetDrawer = (0, import_joy44.styled)(import_joy44.Drawer)(({ theme }) => (
|
|
|
5745
5657
|
}));
|
|
5746
5658
|
|
|
5747
5659
|
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
5748
|
-
var
|
|
5660
|
+
var import_react35 = __toESM(require("react"));
|
|
5749
5661
|
var import_Search = __toESM(require("@mui/icons-material/Search"));
|
|
5750
5662
|
var import_joy45 = require("@mui/joy");
|
|
5751
5663
|
var import_react_virtual3 = require("@tanstack/react-virtual");
|
|
5752
5664
|
var EMPTY_VALUE = [];
|
|
5753
5665
|
function LabelWithTooltip(props) {
|
|
5754
5666
|
const { label, size } = props;
|
|
5755
|
-
const labelContentRef = (0,
|
|
5756
|
-
const [isOverflowing, setIsOverflowing] = (0,
|
|
5757
|
-
const labelContent = /* @__PURE__ */
|
|
5667
|
+
const labelContentRef = (0, import_react35.useRef)(null);
|
|
5668
|
+
const [isOverflowing, setIsOverflowing] = (0, import_react35.useState)(false);
|
|
5669
|
+
const labelContent = /* @__PURE__ */ import_react35.default.createElement(
|
|
5758
5670
|
"span",
|
|
5759
5671
|
{
|
|
5760
5672
|
ref: labelContentRef,
|
|
@@ -5770,14 +5682,14 @@ function LabelWithTooltip(props) {
|
|
|
5770
5682
|
},
|
|
5771
5683
|
label
|
|
5772
5684
|
);
|
|
5773
|
-
(0,
|
|
5685
|
+
(0, import_react35.useEffect)(() => {
|
|
5774
5686
|
const element = labelContentRef.current;
|
|
5775
5687
|
if (element) {
|
|
5776
5688
|
setIsOverflowing(element.scrollWidth > element.clientWidth);
|
|
5777
5689
|
}
|
|
5778
5690
|
}, [label]);
|
|
5779
5691
|
if (isOverflowing) {
|
|
5780
|
-
return /* @__PURE__ */
|
|
5692
|
+
return /* @__PURE__ */ import_react35.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
|
|
5781
5693
|
}
|
|
5782
5694
|
return labelContent;
|
|
5783
5695
|
}
|
|
@@ -5795,22 +5707,22 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5795
5707
|
maxHeight = 300,
|
|
5796
5708
|
disabled
|
|
5797
5709
|
} = props;
|
|
5798
|
-
const [searchTerm, setSearchTerm] = (0,
|
|
5799
|
-
const [sortedOptions, setSortedOptions] = (0,
|
|
5710
|
+
const [searchTerm, setSearchTerm] = (0, import_react35.useState)("");
|
|
5711
|
+
const [sortedOptions, setSortedOptions] = (0, import_react35.useState)(options);
|
|
5800
5712
|
const [rawValue, setInternalValue] = useControlledState(
|
|
5801
5713
|
value,
|
|
5802
5714
|
value ?? EMPTY_VALUE,
|
|
5803
|
-
(0,
|
|
5715
|
+
(0, import_react35.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
|
|
5804
5716
|
);
|
|
5805
5717
|
const internalValue = rawValue ?? EMPTY_VALUE;
|
|
5806
|
-
const parentRef = (0,
|
|
5807
|
-
const isInitialSortRef = (0,
|
|
5808
|
-
const prevOptionsRef = (0,
|
|
5809
|
-
const filteredOptions = (0,
|
|
5718
|
+
const parentRef = (0, import_react35.useRef)(null);
|
|
5719
|
+
const isInitialSortRef = (0, import_react35.useRef)(false);
|
|
5720
|
+
const prevOptionsRef = (0, import_react35.useRef)([...options]);
|
|
5721
|
+
const filteredOptions = (0, import_react35.useMemo)(() => {
|
|
5810
5722
|
if (!searchTerm) return sortedOptions;
|
|
5811
5723
|
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
5812
5724
|
}, [sortedOptions, searchTerm]);
|
|
5813
|
-
const itemSize = (0,
|
|
5725
|
+
const itemSize = (0, import_react35.useMemo)(() => {
|
|
5814
5726
|
switch (size) {
|
|
5815
5727
|
case "sm":
|
|
5816
5728
|
return 28;
|
|
@@ -5828,7 +5740,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5828
5740
|
overscan: 5
|
|
5829
5741
|
});
|
|
5830
5742
|
const items = virtualizer.getVirtualItems();
|
|
5831
|
-
(0,
|
|
5743
|
+
(0, import_react35.useEffect)(() => {
|
|
5832
5744
|
const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
|
|
5833
5745
|
(prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
|
|
5834
5746
|
);
|
|
@@ -5854,13 +5766,13 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5854
5766
|
}
|
|
5855
5767
|
}
|
|
5856
5768
|
}, [options, value]);
|
|
5857
|
-
(0,
|
|
5769
|
+
(0, import_react35.useEffect)(() => {
|
|
5858
5770
|
virtualizer.measure();
|
|
5859
5771
|
}, [virtualizer, filteredOptions, size]);
|
|
5860
|
-
const handleSearchChange = (0,
|
|
5772
|
+
const handleSearchChange = (0, import_react35.useCallback)((event) => {
|
|
5861
5773
|
setSearchTerm(event.target.value);
|
|
5862
5774
|
}, []);
|
|
5863
|
-
const handleCheckboxChange = (0,
|
|
5775
|
+
const handleCheckboxChange = (0, import_react35.useCallback)(
|
|
5864
5776
|
(optionValue) => (event) => {
|
|
5865
5777
|
const checked = event.target.checked;
|
|
5866
5778
|
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
@@ -5868,7 +5780,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5868
5780
|
},
|
|
5869
5781
|
[internalValue, setInternalValue]
|
|
5870
5782
|
);
|
|
5871
|
-
const handleSelectAll = (0,
|
|
5783
|
+
const handleSelectAll = (0, import_react35.useCallback)(
|
|
5872
5784
|
(event) => {
|
|
5873
5785
|
const checked = event.target.checked;
|
|
5874
5786
|
const enabledOptions = filteredOptions.filter((option) => !option.disabled);
|
|
@@ -5884,10 +5796,10 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5884
5796
|
},
|
|
5885
5797
|
[filteredOptions, internalValue, setInternalValue]
|
|
5886
5798
|
);
|
|
5887
|
-
const enabledFilteredOptions = (0,
|
|
5799
|
+
const enabledFilteredOptions = (0, import_react35.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
|
|
5888
5800
|
const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
|
|
5889
5801
|
const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
|
|
5890
|
-
return /* @__PURE__ */
|
|
5802
|
+
return /* @__PURE__ */ import_react35.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react35.default.createElement(
|
|
5891
5803
|
Input_default,
|
|
5892
5804
|
{
|
|
5893
5805
|
label,
|
|
@@ -5900,9 +5812,9 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5900
5812
|
onChange: handleSearchChange,
|
|
5901
5813
|
size,
|
|
5902
5814
|
disabled,
|
|
5903
|
-
endDecorator: /* @__PURE__ */
|
|
5815
|
+
endDecorator: /* @__PURE__ */ import_react35.default.createElement(import_Search.default, null)
|
|
5904
5816
|
}
|
|
5905
|
-
), filteredOptions.length === 0 ? /* @__PURE__ */
|
|
5817
|
+
), filteredOptions.length === 0 ? /* @__PURE__ */ import_react35.default.createElement(Typography_default, { level: `body-${size}`, textColor: "neutral.softDisabledColor", padding: "20px 12px", textAlign: "center" }, "No options found.") : /* @__PURE__ */ import_react35.default.createElement(
|
|
5906
5818
|
"div",
|
|
5907
5819
|
{
|
|
5908
5820
|
ref: parentRef,
|
|
@@ -5913,7 +5825,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5913
5825
|
marginTop: "8px"
|
|
5914
5826
|
}
|
|
5915
5827
|
},
|
|
5916
|
-
!searchTerm && /* @__PURE__ */
|
|
5828
|
+
!searchTerm && /* @__PURE__ */ import_react35.default.createElement(
|
|
5917
5829
|
Checkbox_default,
|
|
5918
5830
|
{
|
|
5919
5831
|
label: "Select all",
|
|
@@ -5930,7 +5842,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5930
5842
|
sx: { width: "100%", height: itemSize }
|
|
5931
5843
|
}
|
|
5932
5844
|
),
|
|
5933
|
-
/* @__PURE__ */
|
|
5845
|
+
/* @__PURE__ */ import_react35.default.createElement(
|
|
5934
5846
|
Stack_default,
|
|
5935
5847
|
{
|
|
5936
5848
|
sx: {
|
|
@@ -5940,11 +5852,11 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5940
5852
|
},
|
|
5941
5853
|
items.map((virtualRow) => {
|
|
5942
5854
|
const option = filteredOptions[virtualRow.index];
|
|
5943
|
-
return /* @__PURE__ */
|
|
5855
|
+
return /* @__PURE__ */ import_react35.default.createElement(
|
|
5944
5856
|
Checkbox_default,
|
|
5945
5857
|
{
|
|
5946
5858
|
key: virtualRow.key,
|
|
5947
|
-
label: /* @__PURE__ */
|
|
5859
|
+
label: /* @__PURE__ */ import_react35.default.createElement(LabelWithTooltip, { label: option.label, size }),
|
|
5948
5860
|
checked: internalValue.includes(option.value),
|
|
5949
5861
|
onChange: handleCheckboxChange(option.value),
|
|
5950
5862
|
size,
|
|
@@ -5975,12 +5887,9 @@ FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
|
5975
5887
|
var import_joy46 = require("@mui/joy");
|
|
5976
5888
|
|
|
5977
5889
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
5978
|
-
var
|
|
5890
|
+
var import_react36 = __toESM(require("react"));
|
|
5979
5891
|
var import_joy47 = require("@mui/joy");
|
|
5980
|
-
|
|
5981
|
-
return /* @__PURE__ */ import_react37.default.createElement(import_joy47.IconButton, { ...rest, component: as ?? "button", ref });
|
|
5982
|
-
});
|
|
5983
|
-
function IconMenuButtonInner(props, ref) {
|
|
5892
|
+
function IconMenuButton(props) {
|
|
5984
5893
|
const {
|
|
5985
5894
|
size,
|
|
5986
5895
|
icon,
|
|
@@ -5991,10 +5900,8 @@ function IconMenuButtonInner(props, ref) {
|
|
|
5991
5900
|
variant = "plain",
|
|
5992
5901
|
placement = "bottom"
|
|
5993
5902
|
} = props;
|
|
5994
|
-
const { ref: buttonComponentRef, ...buttonComponentProps } = props.buttonComponentProps ?? {};
|
|
5995
|
-
const mergedButtonRef = useMergedRef(buttonComponentRef, ref);
|
|
5996
5903
|
if (!items.length) {
|
|
5997
|
-
return /* @__PURE__ */
|
|
5904
|
+
return /* @__PURE__ */ import_react36.default.createElement(
|
|
5998
5905
|
import_joy47.IconButton,
|
|
5999
5906
|
{
|
|
6000
5907
|
component: props.buttonComponent ?? "button",
|
|
@@ -6003,16 +5910,15 @@ function IconMenuButtonInner(props, ref) {
|
|
|
6003
5910
|
color,
|
|
6004
5911
|
disabled,
|
|
6005
5912
|
loading,
|
|
6006
|
-
...buttonComponentProps
|
|
6007
|
-
ref: mergedButtonRef
|
|
5913
|
+
...props.buttonComponentProps ?? {}
|
|
6008
5914
|
},
|
|
6009
5915
|
icon
|
|
6010
5916
|
);
|
|
6011
5917
|
}
|
|
6012
|
-
return /* @__PURE__ */
|
|
5918
|
+
return /* @__PURE__ */ import_react36.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react36.default.createElement(
|
|
6013
5919
|
import_joy47.MenuButton,
|
|
6014
5920
|
{
|
|
6015
|
-
slots: { root:
|
|
5921
|
+
slots: { root: import_joy47.IconButton },
|
|
6016
5922
|
slotProps: {
|
|
6017
5923
|
root: {
|
|
6018
5924
|
component: props.buttonComponent ?? "button",
|
|
@@ -6021,27 +5927,24 @@ function IconMenuButtonInner(props, ref) {
|
|
|
6021
5927
|
color,
|
|
6022
5928
|
disabled,
|
|
6023
5929
|
loading,
|
|
6024
|
-
...buttonComponentProps
|
|
6025
|
-
// Joy의 useSlot이 내부 ref와 이 ref를 합쳐준다. 위 no-items 분기와 같은 경로로 ref를 넘긴다.
|
|
6026
|
-
ref: mergedButtonRef
|
|
5930
|
+
...props.buttonComponentProps ?? {}
|
|
6027
5931
|
}
|
|
6028
5932
|
}
|
|
6029
5933
|
},
|
|
6030
5934
|
icon
|
|
6031
|
-
), /* @__PURE__ */
|
|
5935
|
+
), /* @__PURE__ */ import_react36.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react36.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
6032
5936
|
}
|
|
6033
|
-
var IconMenuButton = import_react37.default.forwardRef(IconMenuButtonInner);
|
|
6034
5937
|
IconMenuButton.displayName = "IconMenuButton";
|
|
6035
5938
|
|
|
6036
5939
|
// src/components/Markdown/Markdown.tsx
|
|
6037
|
-
var
|
|
5940
|
+
var import_react37 = __toESM(require("react"));
|
|
6038
5941
|
var import_joy48 = require("@mui/joy");
|
|
6039
5942
|
var import_joy49 = require("@mui/joy");
|
|
6040
5943
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
6041
|
-
var LazyReactMarkdown = (0,
|
|
5944
|
+
var LazyReactMarkdown = (0, import_react37.lazy)(() => import("react-markdown"));
|
|
6042
5945
|
var Markdown = (props) => {
|
|
6043
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
6044
|
-
(0,
|
|
5946
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react37.useState)(null);
|
|
5947
|
+
(0, import_react37.useEffect)(() => {
|
|
6045
5948
|
const loadRehypeAccent = async () => {
|
|
6046
5949
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
6047
5950
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -6063,8 +5966,8 @@ var Markdown = (props) => {
|
|
|
6063
5966
|
if (!rehypeAccent2) {
|
|
6064
5967
|
return null;
|
|
6065
5968
|
}
|
|
6066
|
-
return /* @__PURE__ */
|
|
6067
|
-
|
|
5969
|
+
return /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react37.default.createElement(
|
|
5970
|
+
import_react37.Suspense,
|
|
6068
5971
|
{
|
|
6069
5972
|
fallback: (
|
|
6070
5973
|
// While in the fallback state, prevent browser auto-translation (e.g. Chrome/Google Translate)
|
|
@@ -6072,10 +5975,10 @@ var Markdown = (props) => {
|
|
|
6072
5975
|
// swaps the fallback for the real content via insertBefore; if the browser has mutated the DOM
|
|
6073
5976
|
// in the meantime, the reference node's parent changes and React throws a DOMException
|
|
6074
5977
|
// ("Failed to execute 'insertBefore' on 'Node'"), crashing the subtree. (cf. facebook/react#11538)
|
|
6075
|
-
fallback || /* @__PURE__ */
|
|
5978
|
+
fallback || /* @__PURE__ */ import_react37.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react37.default.createElement(import_joy48.Skeleton, null, content || ""))
|
|
6076
5979
|
)
|
|
6077
5980
|
},
|
|
6078
|
-
/* @__PURE__ */
|
|
5981
|
+
/* @__PURE__ */ import_react37.default.createElement(
|
|
6079
5982
|
LazyReactMarkdown,
|
|
6080
5983
|
{
|
|
6081
5984
|
...markdownOptions,
|
|
@@ -6083,17 +5986,17 @@ var Markdown = (props) => {
|
|
|
6083
5986
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
6084
5987
|
remarkPlugins: [import_remark_gfm.default],
|
|
6085
5988
|
components: {
|
|
6086
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
6087
|
-
hr: () => /* @__PURE__ */
|
|
6088
|
-
b: ({ children }) => /* @__PURE__ */
|
|
6089
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
5989
|
+
a: ({ children, href }) => /* @__PURE__ */ import_react37.default.createElement(import_joy49.Link, { href, target: defaultLinkAction }, children),
|
|
5990
|
+
hr: () => /* @__PURE__ */ import_react37.default.createElement(Divider, { sx: { display: "block" } }),
|
|
5991
|
+
b: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
|
|
5992
|
+
strong: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
|
|
6090
5993
|
// Table components
|
|
6091
|
-
table: ({ children }) => /* @__PURE__ */
|
|
5994
|
+
table: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ import_react37.default.createElement(Table, { size: "sm" }, children)),
|
|
6092
5995
|
// Code components
|
|
6093
5996
|
code: ({ children, className }) => {
|
|
6094
5997
|
const isBlock = className?.startsWith("language-");
|
|
6095
5998
|
if (isBlock) {
|
|
6096
|
-
return /* @__PURE__ */
|
|
5999
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
6097
6000
|
Typography,
|
|
6098
6001
|
{
|
|
6099
6002
|
component: "code",
|
|
@@ -6107,7 +6010,7 @@ var Markdown = (props) => {
|
|
|
6107
6010
|
children
|
|
6108
6011
|
);
|
|
6109
6012
|
}
|
|
6110
|
-
return /* @__PURE__ */
|
|
6013
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
6111
6014
|
Typography,
|
|
6112
6015
|
{
|
|
6113
6016
|
component: "code",
|
|
@@ -6122,7 +6025,7 @@ var Markdown = (props) => {
|
|
|
6122
6025
|
children
|
|
6123
6026
|
);
|
|
6124
6027
|
},
|
|
6125
|
-
pre: ({ children }) => /* @__PURE__ */
|
|
6028
|
+
pre: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(
|
|
6126
6029
|
Sheet,
|
|
6127
6030
|
{
|
|
6128
6031
|
variant: "soft",
|
|
@@ -6140,12 +6043,12 @@ var Markdown = (props) => {
|
|
|
6140
6043
|
// Task list checkbox
|
|
6141
6044
|
input: ({ checked, type }) => {
|
|
6142
6045
|
if (type === "checkbox") {
|
|
6143
|
-
return /* @__PURE__ */
|
|
6046
|
+
return /* @__PURE__ */ import_react37.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
|
|
6144
6047
|
}
|
|
6145
|
-
return /* @__PURE__ */
|
|
6048
|
+
return /* @__PURE__ */ import_react37.default.createElement("input", { checked, type });
|
|
6146
6049
|
},
|
|
6147
6050
|
// Blockquote
|
|
6148
|
-
blockquote: ({ children }) => /* @__PURE__ */
|
|
6051
|
+
blockquote: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(
|
|
6149
6052
|
Sheet,
|
|
6150
6053
|
{
|
|
6151
6054
|
variant: "soft",
|
|
@@ -6154,12 +6057,12 @@ var Markdown = (props) => {
|
|
|
6154
6057
|
children
|
|
6155
6058
|
),
|
|
6156
6059
|
// Image
|
|
6157
|
-
img: ({ src, alt }) => /* @__PURE__ */
|
|
6060
|
+
img: ({ src, alt }) => /* @__PURE__ */ import_react37.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
|
|
6158
6061
|
// Text style components
|
|
6159
|
-
em: ({ children }) => /* @__PURE__ */
|
|
6160
|
-
del: ({ children }) => /* @__PURE__ */
|
|
6062
|
+
em: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
|
|
6063
|
+
del: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
|
|
6161
6064
|
// Span for accent color (from rehype-accent plugin)
|
|
6162
|
-
span: ({ children, node }) => /* @__PURE__ */
|
|
6065
|
+
span: ({ children, node }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
|
|
6163
6066
|
...markdownOptions?.components
|
|
6164
6067
|
}
|
|
6165
6068
|
}
|
|
@@ -6169,7 +6072,7 @@ var Markdown = (props) => {
|
|
|
6169
6072
|
Markdown.displayName = "Markdown";
|
|
6170
6073
|
|
|
6171
6074
|
// src/components/MenuButton/MenuButton.tsx
|
|
6172
|
-
var
|
|
6075
|
+
var import_react38 = __toESM(require("react"));
|
|
6173
6076
|
var import_joy50 = require("@mui/joy");
|
|
6174
6077
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
6175
6078
|
function MenuButton2(props) {
|
|
@@ -6187,7 +6090,7 @@ function MenuButton2(props) {
|
|
|
6187
6090
|
placement = "bottom"
|
|
6188
6091
|
} = props;
|
|
6189
6092
|
if (!items.length) {
|
|
6190
|
-
return /* @__PURE__ */
|
|
6093
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
6191
6094
|
import_joy50.Button,
|
|
6192
6095
|
{
|
|
6193
6096
|
component: props.buttonComponent ?? "button",
|
|
@@ -6198,12 +6101,12 @@ function MenuButton2(props) {
|
|
|
6198
6101
|
loading,
|
|
6199
6102
|
startDecorator,
|
|
6200
6103
|
...props.buttonComponentProps ?? {},
|
|
6201
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
6104
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react38.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator)
|
|
6202
6105
|
},
|
|
6203
6106
|
buttonText
|
|
6204
6107
|
);
|
|
6205
6108
|
}
|
|
6206
|
-
return /* @__PURE__ */
|
|
6109
|
+
return /* @__PURE__ */ import_react38.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react38.default.createElement(
|
|
6207
6110
|
import_joy50.MenuButton,
|
|
6208
6111
|
{
|
|
6209
6112
|
component: props.buttonComponent ?? "button",
|
|
@@ -6214,15 +6117,15 @@ function MenuButton2(props) {
|
|
|
6214
6117
|
loading,
|
|
6215
6118
|
startDecorator,
|
|
6216
6119
|
...props.buttonComponentProps ?? {},
|
|
6217
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
6120
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react38.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator)
|
|
6218
6121
|
},
|
|
6219
6122
|
buttonText
|
|
6220
|
-
), /* @__PURE__ */
|
|
6123
|
+
), /* @__PURE__ */ import_react38.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react38.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
6221
6124
|
}
|
|
6222
6125
|
MenuButton2.displayName = "MenuButton";
|
|
6223
6126
|
|
|
6224
6127
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
6225
|
-
var
|
|
6128
|
+
var import_react39 = __toESM(require("react"));
|
|
6226
6129
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
6227
6130
|
var import_joy51 = require("@mui/joy");
|
|
6228
6131
|
var import_base5 = require("@mui/base");
|
|
@@ -6278,7 +6181,7 @@ function parseDate3(dateString, format) {
|
|
|
6278
6181
|
const result = new Date(year, month, day);
|
|
6279
6182
|
return result;
|
|
6280
6183
|
}
|
|
6281
|
-
var MonthPicker = (0,
|
|
6184
|
+
var MonthPicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
6282
6185
|
const props = (0, import_joy51.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
6283
6186
|
const {
|
|
6284
6187
|
onChange,
|
|
@@ -6305,18 +6208,18 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6305
6208
|
locale,
|
|
6306
6209
|
...innerProps
|
|
6307
6210
|
} = props;
|
|
6308
|
-
const innerRef = (0,
|
|
6309
|
-
const buttonRef = (0,
|
|
6211
|
+
const innerRef = (0, import_react39.useRef)(null);
|
|
6212
|
+
const buttonRef = (0, import_react39.useRef)(null);
|
|
6310
6213
|
const [rawValue, setValue, isControlled] = useControlledState(
|
|
6311
6214
|
props.value,
|
|
6312
6215
|
props.defaultValue ?? null,
|
|
6313
|
-
(0,
|
|
6216
|
+
(0, import_react39.useCallback)(
|
|
6314
6217
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
6315
6218
|
[props.name, onChange]
|
|
6316
6219
|
)
|
|
6317
6220
|
);
|
|
6318
6221
|
const value = rawValue ?? "";
|
|
6319
|
-
const getFormattedDisplayValue = (0,
|
|
6222
|
+
const getFormattedDisplayValue = (0, import_react39.useCallback)(
|
|
6320
6223
|
(inputValue) => {
|
|
6321
6224
|
if (!inputValue) return "";
|
|
6322
6225
|
try {
|
|
@@ -6327,19 +6230,19 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6327
6230
|
},
|
|
6328
6231
|
[format, displayFormat, locale]
|
|
6329
6232
|
);
|
|
6330
|
-
const [displayValue, setDisplayValue] = (0,
|
|
6331
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
6233
|
+
const [displayValue, setDisplayValue] = (0, import_react39.useState)(() => getFormattedDisplayValue(value));
|
|
6234
|
+
const [anchorEl, setAnchorEl] = (0, import_react39.useState)(null);
|
|
6332
6235
|
const open = Boolean(anchorEl);
|
|
6333
|
-
(0,
|
|
6236
|
+
(0, import_react39.useEffect)(() => {
|
|
6334
6237
|
if (!anchorEl) {
|
|
6335
6238
|
innerRef.current?.blur();
|
|
6336
6239
|
}
|
|
6337
6240
|
}, [anchorEl, innerRef]);
|
|
6338
|
-
(0,
|
|
6339
|
-
(0,
|
|
6241
|
+
(0, import_react39.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
6242
|
+
(0, import_react39.useEffect)(() => {
|
|
6340
6243
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
6341
6244
|
}, [value, getFormattedDisplayValue]);
|
|
6342
|
-
const handleChange = (0,
|
|
6245
|
+
const handleChange = (0, import_react39.useCallback)(
|
|
6343
6246
|
(event) => {
|
|
6344
6247
|
const newValue = event.target.value;
|
|
6345
6248
|
setValue(newValue);
|
|
@@ -6349,21 +6252,21 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6349
6252
|
},
|
|
6350
6253
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
6351
6254
|
);
|
|
6352
|
-
const handleCalendarToggle = (0,
|
|
6255
|
+
const handleCalendarToggle = (0, import_react39.useCallback)(
|
|
6353
6256
|
(event) => {
|
|
6354
6257
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6355
6258
|
innerRef.current?.focus();
|
|
6356
6259
|
},
|
|
6357
6260
|
[anchorEl, setAnchorEl, innerRef]
|
|
6358
6261
|
);
|
|
6359
|
-
const handleInputMouseDown = (0,
|
|
6262
|
+
const handleInputMouseDown = (0, import_react39.useCallback)(
|
|
6360
6263
|
(event) => {
|
|
6361
6264
|
event.preventDefault();
|
|
6362
6265
|
buttonRef.current?.focus();
|
|
6363
6266
|
},
|
|
6364
6267
|
[buttonRef]
|
|
6365
6268
|
);
|
|
6366
|
-
return /* @__PURE__ */
|
|
6269
|
+
return /* @__PURE__ */ import_react39.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react39.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, /* @__PURE__ */ import_react39.default.createElement(
|
|
6367
6270
|
Input_default,
|
|
6368
6271
|
{
|
|
6369
6272
|
...innerProps,
|
|
@@ -6393,7 +6296,7 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6393
6296
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6394
6297
|
fontFamily: "monospace"
|
|
6395
6298
|
},
|
|
6396
|
-
endDecorator: /* @__PURE__ */
|
|
6299
|
+
endDecorator: /* @__PURE__ */ import_react39.default.createElement(
|
|
6397
6300
|
IconButton_default,
|
|
6398
6301
|
{
|
|
6399
6302
|
ref: buttonRef,
|
|
@@ -6405,12 +6308,12 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6405
6308
|
"aria-expanded": open,
|
|
6406
6309
|
disabled
|
|
6407
6310
|
},
|
|
6408
|
-
/* @__PURE__ */
|
|
6311
|
+
/* @__PURE__ */ import_react39.default.createElement(import_CalendarToday3.default, null)
|
|
6409
6312
|
),
|
|
6410
6313
|
label,
|
|
6411
6314
|
helperText
|
|
6412
6315
|
}
|
|
6413
|
-
), open && /* @__PURE__ */
|
|
6316
|
+
), open && /* @__PURE__ */ import_react39.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react39.default.createElement(
|
|
6414
6317
|
StyledPopper3,
|
|
6415
6318
|
{
|
|
6416
6319
|
id: "month-picker-popper",
|
|
@@ -6429,7 +6332,7 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6429
6332
|
"aria-label": "Calendar Tooltip",
|
|
6430
6333
|
"aria-expanded": open
|
|
6431
6334
|
},
|
|
6432
|
-
/* @__PURE__ */
|
|
6335
|
+
/* @__PURE__ */ import_react39.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react39.default.createElement(
|
|
6433
6336
|
Calendar_default,
|
|
6434
6337
|
{
|
|
6435
6338
|
view: "month",
|
|
@@ -6450,14 +6353,14 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6450
6353
|
disablePast,
|
|
6451
6354
|
locale
|
|
6452
6355
|
}
|
|
6453
|
-
), /* @__PURE__ */
|
|
6356
|
+
), /* @__PURE__ */ import_react39.default.createElement(
|
|
6454
6357
|
DialogActions_default,
|
|
6455
6358
|
{
|
|
6456
6359
|
sx: {
|
|
6457
6360
|
p: 1
|
|
6458
6361
|
}
|
|
6459
6362
|
},
|
|
6460
|
-
/* @__PURE__ */
|
|
6363
|
+
/* @__PURE__ */ import_react39.default.createElement(
|
|
6461
6364
|
Button_default,
|
|
6462
6365
|
{
|
|
6463
6366
|
size,
|
|
@@ -6480,7 +6383,7 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
|
6480
6383
|
});
|
|
6481
6384
|
|
|
6482
6385
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
6483
|
-
var
|
|
6386
|
+
var import_react40 = __toESM(require("react"));
|
|
6484
6387
|
var import_react_imask3 = require("react-imask");
|
|
6485
6388
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
6486
6389
|
var import_joy52 = require("@mui/joy");
|
|
@@ -6541,9 +6444,9 @@ var parseDates2 = (str) => {
|
|
|
6541
6444
|
var formatToPattern3 = (format) => {
|
|
6542
6445
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
6543
6446
|
};
|
|
6544
|
-
var TextMaskAdapter7 =
|
|
6447
|
+
var TextMaskAdapter7 = import_react40.default.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
6545
6448
|
const { onChange, format, ...other } = props;
|
|
6546
|
-
return /* @__PURE__ */
|
|
6449
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
6547
6450
|
import_react_imask3.IMaskInput,
|
|
6548
6451
|
{
|
|
6549
6452
|
...other,
|
|
@@ -6571,7 +6474,7 @@ var TextMaskAdapter7 = import_react41.default.forwardRef(function TextMaskAdapte
|
|
|
6571
6474
|
}
|
|
6572
6475
|
);
|
|
6573
6476
|
});
|
|
6574
|
-
var MonthRangePicker = (0,
|
|
6477
|
+
var MonthRangePicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
6575
6478
|
const props = (0, import_joy52.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
6576
6479
|
const {
|
|
6577
6480
|
onChange,
|
|
@@ -6595,24 +6498,24 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6595
6498
|
} = props;
|
|
6596
6499
|
const displayFormat = displayFormatProp ?? format;
|
|
6597
6500
|
const isAlphabeticDisplay = hasAlphabeticMonth3(displayFormat);
|
|
6598
|
-
const innerRef = (0,
|
|
6599
|
-
const buttonRef = (0,
|
|
6501
|
+
const innerRef = (0, import_react40.useRef)(null);
|
|
6502
|
+
const buttonRef = (0, import_react40.useRef)(null);
|
|
6600
6503
|
const [rawValue, setValue] = useControlledState(
|
|
6601
6504
|
props.value,
|
|
6602
6505
|
props.defaultValue ?? null,
|
|
6603
|
-
(0,
|
|
6506
|
+
(0, import_react40.useCallback)(
|
|
6604
6507
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
6605
6508
|
[props.name, onChange]
|
|
6606
6509
|
)
|
|
6607
6510
|
);
|
|
6608
6511
|
const value = rawValue ?? "";
|
|
6609
|
-
const [displayValue, setDisplayValue] = (0,
|
|
6512
|
+
const [displayValue, setDisplayValue] = (0, import_react40.useState)(
|
|
6610
6513
|
() => value ? formatValueString4(parseDates2(value), displayFormat, locale) : ""
|
|
6611
6514
|
);
|
|
6612
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
6515
|
+
const [anchorEl, setAnchorEl] = (0, import_react40.useState)(null);
|
|
6613
6516
|
const open = Boolean(anchorEl);
|
|
6614
|
-
const calendarValue = (0,
|
|
6615
|
-
(0,
|
|
6517
|
+
const calendarValue = (0, import_react40.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
6518
|
+
(0, import_react40.useEffect)(() => {
|
|
6616
6519
|
if (value) {
|
|
6617
6520
|
try {
|
|
6618
6521
|
const dates = parseDates2(value);
|
|
@@ -6624,13 +6527,13 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6624
6527
|
setDisplayValue("");
|
|
6625
6528
|
}
|
|
6626
6529
|
}, [displayFormat, locale, value]);
|
|
6627
|
-
(0,
|
|
6530
|
+
(0, import_react40.useEffect)(() => {
|
|
6628
6531
|
if (!anchorEl) {
|
|
6629
6532
|
innerRef.current?.blur();
|
|
6630
6533
|
}
|
|
6631
6534
|
}, [anchorEl, innerRef]);
|
|
6632
|
-
(0,
|
|
6633
|
-
const handleChange = (0,
|
|
6535
|
+
(0, import_react40.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
6536
|
+
const handleChange = (0, import_react40.useCallback)(
|
|
6634
6537
|
(event) => {
|
|
6635
6538
|
setDisplayValue(
|
|
6636
6539
|
event.target.value ? formatValueString4(parseDates2(event.target.value), displayFormat, locale) : ""
|
|
@@ -6639,7 +6542,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6639
6542
|
},
|
|
6640
6543
|
[displayFormat, locale, setValue]
|
|
6641
6544
|
);
|
|
6642
|
-
const handleInputMouseDown = (0,
|
|
6545
|
+
const handleInputMouseDown = (0, import_react40.useCallback)(
|
|
6643
6546
|
(event) => {
|
|
6644
6547
|
if (isAlphabeticDisplay) {
|
|
6645
6548
|
event.preventDefault();
|
|
@@ -6648,14 +6551,14 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6648
6551
|
},
|
|
6649
6552
|
[isAlphabeticDisplay, buttonRef]
|
|
6650
6553
|
);
|
|
6651
|
-
const handleCalendarToggle = (0,
|
|
6554
|
+
const handleCalendarToggle = (0, import_react40.useCallback)(
|
|
6652
6555
|
(event) => {
|
|
6653
6556
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6654
6557
|
innerRef.current?.focus();
|
|
6655
6558
|
},
|
|
6656
6559
|
[anchorEl, setAnchorEl, innerRef]
|
|
6657
6560
|
);
|
|
6658
|
-
const handleCalendarChange = (0,
|
|
6561
|
+
const handleCalendarChange = (0, import_react40.useCallback)(
|
|
6659
6562
|
([date1, date2]) => {
|
|
6660
6563
|
if (!date1 || !date2) return;
|
|
6661
6564
|
const formattedValue = formatValueString4([date1, date2], format);
|
|
@@ -6665,7 +6568,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6665
6568
|
},
|
|
6666
6569
|
[setValue, setAnchorEl, format, displayFormat, locale]
|
|
6667
6570
|
);
|
|
6668
|
-
return /* @__PURE__ */
|
|
6571
|
+
return /* @__PURE__ */ import_react40.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react40.default.createElement(import_base6.FocusTrap, { open: true }, /* @__PURE__ */ import_react40.default.createElement(import_react40.default.Fragment, null, /* @__PURE__ */ import_react40.default.createElement(
|
|
6669
6572
|
Input_default,
|
|
6670
6573
|
{
|
|
6671
6574
|
...innerProps,
|
|
@@ -6695,7 +6598,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6695
6598
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6696
6599
|
fontFamily: "monospace"
|
|
6697
6600
|
},
|
|
6698
|
-
endDecorator: /* @__PURE__ */
|
|
6601
|
+
endDecorator: /* @__PURE__ */ import_react40.default.createElement(
|
|
6699
6602
|
IconButton_default,
|
|
6700
6603
|
{
|
|
6701
6604
|
ref: buttonRef,
|
|
@@ -6706,12 +6609,12 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6706
6609
|
"aria-haspopup": "dialog",
|
|
6707
6610
|
"aria-expanded": open
|
|
6708
6611
|
},
|
|
6709
|
-
/* @__PURE__ */
|
|
6612
|
+
/* @__PURE__ */ import_react40.default.createElement(import_CalendarToday4.default, null)
|
|
6710
6613
|
),
|
|
6711
6614
|
label,
|
|
6712
6615
|
helperText
|
|
6713
6616
|
}
|
|
6714
|
-
), open && /* @__PURE__ */
|
|
6617
|
+
), open && /* @__PURE__ */ import_react40.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6715
6618
|
StyledPopper4,
|
|
6716
6619
|
{
|
|
6717
6620
|
id: "month-range-picker-popper",
|
|
@@ -6730,7 +6633,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6730
6633
|
"aria-label": "Calendar Tooltip",
|
|
6731
6634
|
"aria-expanded": open
|
|
6732
6635
|
},
|
|
6733
|
-
/* @__PURE__ */
|
|
6636
|
+
/* @__PURE__ */ import_react40.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6734
6637
|
Calendar_default,
|
|
6735
6638
|
{
|
|
6736
6639
|
view: "month",
|
|
@@ -6744,14 +6647,14 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6744
6647
|
disablePast,
|
|
6745
6648
|
locale
|
|
6746
6649
|
}
|
|
6747
|
-
), /* @__PURE__ */
|
|
6650
|
+
), /* @__PURE__ */ import_react40.default.createElement(
|
|
6748
6651
|
DialogActions_default,
|
|
6749
6652
|
{
|
|
6750
6653
|
sx: {
|
|
6751
6654
|
p: 1
|
|
6752
6655
|
}
|
|
6753
6656
|
},
|
|
6754
|
-
/* @__PURE__ */
|
|
6657
|
+
/* @__PURE__ */ import_react40.default.createElement(
|
|
6755
6658
|
Button_default,
|
|
6756
6659
|
{
|
|
6757
6660
|
size,
|
|
@@ -6770,7 +6673,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
|
|
|
6770
6673
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
6771
6674
|
|
|
6772
6675
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
6773
|
-
var
|
|
6676
|
+
var import_react41 = __toESM(require("react"));
|
|
6774
6677
|
var import_joy53 = require("@mui/joy");
|
|
6775
6678
|
var AccordionSummary2 = (0, import_joy53.styled)(import_joy53.AccordionSummary, {
|
|
6776
6679
|
name: "NavigationGroup",
|
|
@@ -6794,11 +6697,11 @@ var AccordionDetails2 = (0, import_joy53.styled)(import_joy53.AccordionDetails,
|
|
|
6794
6697
|
}));
|
|
6795
6698
|
function NavigationGroup(props) {
|
|
6796
6699
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
6797
|
-
return /* @__PURE__ */
|
|
6700
|
+
return /* @__PURE__ */ import_react41.default.createElement(import_joy53.Accordion, { ...rest }, /* @__PURE__ */ import_react41.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react41.default.createElement(import_joy53.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react41.default.createElement(AccordionDetails2, null, children));
|
|
6798
6701
|
}
|
|
6799
6702
|
|
|
6800
6703
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
6801
|
-
var
|
|
6704
|
+
var import_react42 = __toESM(require("react"));
|
|
6802
6705
|
var import_joy54 = require("@mui/joy");
|
|
6803
6706
|
var ListItemButton = (0, import_joy54.styled)(import_joy54.ListItemButton, {
|
|
6804
6707
|
name: "NavigationItem",
|
|
@@ -6827,7 +6730,7 @@ function NavigationItem(props) {
|
|
|
6827
6730
|
const handleClick = () => {
|
|
6828
6731
|
onClick?.(id);
|
|
6829
6732
|
};
|
|
6830
|
-
return /* @__PURE__ */
|
|
6733
|
+
return /* @__PURE__ */ import_react42.default.createElement(import_joy54.ListItem, { ...rest }, /* @__PURE__ */ import_react42.default.createElement(
|
|
6831
6734
|
ListItemButton,
|
|
6832
6735
|
{
|
|
6833
6736
|
level,
|
|
@@ -6836,21 +6739,21 @@ function NavigationItem(props) {
|
|
|
6836
6739
|
"aria-current": selected,
|
|
6837
6740
|
onClick: handleClick
|
|
6838
6741
|
},
|
|
6839
|
-
startDecorator && /* @__PURE__ */
|
|
6742
|
+
startDecorator && /* @__PURE__ */ import_react42.default.createElement(import_joy54.ListItemDecorator, null, startDecorator),
|
|
6840
6743
|
children
|
|
6841
6744
|
));
|
|
6842
6745
|
}
|
|
6843
6746
|
|
|
6844
6747
|
// src/components/Navigator/Navigator.tsx
|
|
6845
|
-
var
|
|
6748
|
+
var import_react43 = __toESM(require("react"));
|
|
6846
6749
|
function Navigator(props) {
|
|
6847
6750
|
const { items, level = 0, onSelect } = props;
|
|
6848
6751
|
const handleItemClick = (id) => {
|
|
6849
6752
|
onSelect?.(id);
|
|
6850
6753
|
};
|
|
6851
|
-
return /* @__PURE__ */
|
|
6754
|
+
return /* @__PURE__ */ import_react43.default.createElement("div", null, items.map((item, index) => {
|
|
6852
6755
|
if (item.type === "item") {
|
|
6853
|
-
return /* @__PURE__ */
|
|
6756
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
6854
6757
|
NavigationItem,
|
|
6855
6758
|
{
|
|
6856
6759
|
key: item.id,
|
|
@@ -6863,7 +6766,7 @@ function Navigator(props) {
|
|
|
6863
6766
|
item.title
|
|
6864
6767
|
);
|
|
6865
6768
|
} else if (item.type === "group") {
|
|
6866
|
-
return /* @__PURE__ */
|
|
6769
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
6867
6770
|
NavigationGroup,
|
|
6868
6771
|
{
|
|
6869
6772
|
key: `${item.title}-${index}`,
|
|
@@ -6881,16 +6784,16 @@ function Navigator(props) {
|
|
|
6881
6784
|
Navigator.displayName = "Navigator";
|
|
6882
6785
|
|
|
6883
6786
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
6884
|
-
var
|
|
6787
|
+
var import_react44 = __toESM(require("react"));
|
|
6885
6788
|
var import_react_number_format2 = require("react-number-format");
|
|
6886
6789
|
var import_joy55 = require("@mui/joy");
|
|
6887
6790
|
var padDecimal = (value, decimalScale) => {
|
|
6888
6791
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
6889
6792
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
6890
6793
|
};
|
|
6891
|
-
var TextMaskAdapter9 =
|
|
6794
|
+
var TextMaskAdapter9 = import_react44.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
6892
6795
|
const { onChange, min, max, ...innerProps } = props;
|
|
6893
|
-
return /* @__PURE__ */
|
|
6796
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6894
6797
|
import_react_number_format2.NumericFormat,
|
|
6895
6798
|
{
|
|
6896
6799
|
...innerProps,
|
|
@@ -6915,7 +6818,7 @@ var PercentageInputRoot = (0, import_joy55.styled)(Input_default, {
|
|
|
6915
6818
|
slot: "Root",
|
|
6916
6819
|
overridesResolver: (props, styles) => styles.root
|
|
6917
6820
|
})({});
|
|
6918
|
-
var PercentageInput =
|
|
6821
|
+
var PercentageInput = import_react44.default.forwardRef(
|
|
6919
6822
|
function PercentageInput2(inProps, ref) {
|
|
6920
6823
|
const props = (0, import_joy55.useThemeProps)({ props: inProps, name: "PercentageInput" });
|
|
6921
6824
|
const {
|
|
@@ -6938,19 +6841,19 @@ var PercentageInput = import_react45.default.forwardRef(
|
|
|
6938
6841
|
const [_value, setValue] = useControlledState(
|
|
6939
6842
|
props.value,
|
|
6940
6843
|
props.defaultValue ?? null,
|
|
6941
|
-
(0,
|
|
6844
|
+
(0, import_react44.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
6942
6845
|
);
|
|
6943
|
-
const value = (0,
|
|
6846
|
+
const value = (0, import_react44.useMemo)(() => {
|
|
6944
6847
|
if (_value && useMinorUnit) {
|
|
6945
6848
|
return _value / Math.pow(10, maxDecimalScale);
|
|
6946
6849
|
}
|
|
6947
6850
|
return _value;
|
|
6948
6851
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
6949
|
-
const internalError = (0,
|
|
6852
|
+
const internalError = (0, import_react44.useMemo)(
|
|
6950
6853
|
() => value != null && (max != null && value > max || min != null && value < min),
|
|
6951
6854
|
[max, min, value]
|
|
6952
6855
|
);
|
|
6953
|
-
const handleChange = (0,
|
|
6856
|
+
const handleChange = (0, import_react44.useCallback)(
|
|
6954
6857
|
(event) => {
|
|
6955
6858
|
if (event.target.value === "") {
|
|
6956
6859
|
setValue(null);
|
|
@@ -6962,7 +6865,7 @@ var PercentageInput = import_react45.default.forwardRef(
|
|
|
6962
6865
|
},
|
|
6963
6866
|
[setValue, useMinorUnit, maxDecimalScale]
|
|
6964
6867
|
);
|
|
6965
|
-
return /* @__PURE__ */
|
|
6868
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6966
6869
|
PercentageInputRoot,
|
|
6967
6870
|
{
|
|
6968
6871
|
...innerProps,
|
|
@@ -7003,7 +6906,7 @@ var RadioGroup = MotionRadioGroup;
|
|
|
7003
6906
|
RadioGroup.displayName = "RadioGroup";
|
|
7004
6907
|
|
|
7005
6908
|
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
7006
|
-
var
|
|
6909
|
+
var import_react45 = __toESM(require("react"));
|
|
7007
6910
|
var import_joy57 = require("@mui/joy");
|
|
7008
6911
|
var RadioTileGroupRoot = (0, import_joy57.styled)(RadioGroup, {
|
|
7009
6912
|
name: "RadioTileGroup",
|
|
@@ -7091,7 +6994,7 @@ function RadioTileGroup(props) {
|
|
|
7091
6994
|
error,
|
|
7092
6995
|
required
|
|
7093
6996
|
} = props;
|
|
7094
|
-
const radioGroup = /* @__PURE__ */
|
|
6997
|
+
const radioGroup = /* @__PURE__ */ import_react45.default.createElement(
|
|
7095
6998
|
RadioTileGroupRoot,
|
|
7096
6999
|
{
|
|
7097
7000
|
overlay: true,
|
|
@@ -7102,7 +7005,7 @@ function RadioTileGroup(props) {
|
|
|
7102
7005
|
flex,
|
|
7103
7006
|
columns
|
|
7104
7007
|
},
|
|
7105
|
-
options.map((option) => /* @__PURE__ */
|
|
7008
|
+
options.map((option) => /* @__PURE__ */ import_react45.default.createElement(
|
|
7106
7009
|
RadioTileSheet,
|
|
7107
7010
|
{
|
|
7108
7011
|
key: option.value,
|
|
@@ -7112,7 +7015,7 @@ function RadioTileGroup(props) {
|
|
|
7112
7015
|
flex,
|
|
7113
7016
|
textAlign
|
|
7114
7017
|
},
|
|
7115
|
-
/* @__PURE__ */
|
|
7018
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
7116
7019
|
Radio,
|
|
7117
7020
|
{
|
|
7118
7021
|
id: `${option.value}`,
|
|
@@ -7141,7 +7044,7 @@ function RadioTileGroup(props) {
|
|
|
7141
7044
|
}
|
|
7142
7045
|
}
|
|
7143
7046
|
),
|
|
7144
|
-
option.startDecorator && /* @__PURE__ */
|
|
7047
|
+
option.startDecorator && /* @__PURE__ */ import_react45.default.createElement(
|
|
7145
7048
|
Box_default,
|
|
7146
7049
|
{
|
|
7147
7050
|
sx: {
|
|
@@ -7162,15 +7065,15 @@ function RadioTileGroup(props) {
|
|
|
7162
7065
|
)
|
|
7163
7066
|
))
|
|
7164
7067
|
);
|
|
7165
|
-
return /* @__PURE__ */
|
|
7068
|
+
return /* @__PURE__ */ import_react45.default.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ import_react45.default.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ import_react45.default.createElement(FormHelperText_default, null, helperText));
|
|
7166
7069
|
}
|
|
7167
7070
|
RadioTileGroup.displayName = "RadioTileGroup";
|
|
7168
7071
|
|
|
7169
7072
|
// src/components/RadioList/RadioList.tsx
|
|
7170
|
-
var
|
|
7073
|
+
var import_react46 = __toESM(require("react"));
|
|
7171
7074
|
function RadioList(props) {
|
|
7172
7075
|
const { items, ...innerProps } = props;
|
|
7173
|
-
return /* @__PURE__ */
|
|
7076
|
+
return /* @__PURE__ */ import_react46.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react46.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
7174
7077
|
}
|
|
7175
7078
|
RadioList.displayName = "RadioList";
|
|
7176
7079
|
|
|
@@ -7261,7 +7164,7 @@ var SearchBar = React44.forwardRef(function SearchBar2(inProps, ref) {
|
|
|
7261
7164
|
SearchBar.displayName = "SearchBar";
|
|
7262
7165
|
|
|
7263
7166
|
// src/components/Stepper/Stepper.tsx
|
|
7264
|
-
var
|
|
7167
|
+
var import_react47 = __toESM(require("react"));
|
|
7265
7168
|
var import_joy58 = require("@mui/joy");
|
|
7266
7169
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
7267
7170
|
var import_framer_motion28 = require("framer-motion");
|
|
@@ -7290,7 +7193,7 @@ function Stepper(props) {
|
|
|
7290
7193
|
stepOrientation = "horizontal"
|
|
7291
7194
|
} = props;
|
|
7292
7195
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
7293
|
-
return /* @__PURE__ */
|
|
7196
|
+
return /* @__PURE__ */ import_react47.default.createElement(
|
|
7294
7197
|
MotionStepper,
|
|
7295
7198
|
{
|
|
7296
7199
|
orientation,
|
|
@@ -7329,23 +7232,23 @@ function Stepper(props) {
|
|
|
7329
7232
|
const completed = activeStep > i + 1;
|
|
7330
7233
|
const disabled = activeStep < i + 1;
|
|
7331
7234
|
const hasContent = step.label || step.extraContent;
|
|
7332
|
-
return /* @__PURE__ */
|
|
7235
|
+
return /* @__PURE__ */ import_react47.default.createElement(
|
|
7333
7236
|
Step,
|
|
7334
7237
|
{
|
|
7335
7238
|
key: `step-${i}`,
|
|
7336
|
-
indicator: /* @__PURE__ */
|
|
7239
|
+
indicator: /* @__PURE__ */ import_react47.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react47.default.createElement(import_Check.default, null) : step.indicatorContent),
|
|
7337
7240
|
active,
|
|
7338
7241
|
completed,
|
|
7339
7242
|
disabled,
|
|
7340
7243
|
orientation: effectiveStepOrientation
|
|
7341
7244
|
},
|
|
7342
|
-
hasContent && /* @__PURE__ */
|
|
7245
|
+
hasContent && /* @__PURE__ */ import_react47.default.createElement(
|
|
7343
7246
|
Stack_default,
|
|
7344
7247
|
{
|
|
7345
7248
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
7346
7249
|
},
|
|
7347
|
-
step.label && /* @__PURE__ */
|
|
7348
|
-
step.extraContent && /* @__PURE__ */
|
|
7250
|
+
step.label && /* @__PURE__ */ import_react47.default.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
7251
|
+
step.extraContent && /* @__PURE__ */ import_react47.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
7349
7252
|
)
|
|
7350
7253
|
);
|
|
7351
7254
|
})
|
|
@@ -7354,7 +7257,7 @@ function Stepper(props) {
|
|
|
7354
7257
|
Stepper.displayName = "Stepper";
|
|
7355
7258
|
|
|
7356
7259
|
// src/components/Switch/Switch.tsx
|
|
7357
|
-
var
|
|
7260
|
+
var import_react48 = __toESM(require("react"));
|
|
7358
7261
|
var import_joy59 = require("@mui/joy");
|
|
7359
7262
|
var import_framer_motion29 = require("framer-motion");
|
|
7360
7263
|
var MotionSwitch = (0, import_framer_motion29.motion)(import_joy59.Switch);
|
|
@@ -7376,14 +7279,14 @@ var StyledThumb = (0, import_joy59.styled)(import_framer_motion29.motion.div)({
|
|
|
7376
7279
|
right: "var(--Switch-thumbOffset)"
|
|
7377
7280
|
}
|
|
7378
7281
|
});
|
|
7379
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
7282
|
+
var Thumb = (props) => /* @__PURE__ */ import_react48.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
7380
7283
|
var spring = {
|
|
7381
7284
|
type: "spring",
|
|
7382
7285
|
stiffness: 700,
|
|
7383
7286
|
damping: 30
|
|
7384
7287
|
};
|
|
7385
7288
|
var Switch = (props) => {
|
|
7386
|
-
return /* @__PURE__ */
|
|
7289
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
7387
7290
|
MotionSwitch,
|
|
7388
7291
|
{
|
|
7389
7292
|
...props,
|
|
@@ -7397,7 +7300,7 @@ var Switch = (props) => {
|
|
|
7397
7300
|
Switch.displayName = "Switch";
|
|
7398
7301
|
|
|
7399
7302
|
// src/components/Tabs/Tabs.tsx
|
|
7400
|
-
var
|
|
7303
|
+
var import_react49 = __toESM(require("react"));
|
|
7401
7304
|
var import_joy60 = require("@mui/joy");
|
|
7402
7305
|
var StyledTabs = (0, import_joy60.styled)(import_joy60.Tabs)(({ theme }) => ({
|
|
7403
7306
|
backgroundColor: theme.palette.background.body
|
|
@@ -7413,15 +7316,15 @@ var StyledTab = (0, import_joy60.styled)(import_joy60.Tab)(({ theme }) => ({
|
|
|
7413
7316
|
backgroundColor: theme.palette.background.body
|
|
7414
7317
|
}
|
|
7415
7318
|
}));
|
|
7416
|
-
var Tab = (0,
|
|
7417
|
-
return /* @__PURE__ */
|
|
7319
|
+
var Tab = (0, import_react49.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
7320
|
+
return /* @__PURE__ */ import_react49.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
7418
7321
|
});
|
|
7419
7322
|
Tab.displayName = "Tab";
|
|
7420
7323
|
var TabList = import_joy60.TabList;
|
|
7421
7324
|
var TabPanel = import_joy60.TabPanel;
|
|
7422
7325
|
|
|
7423
7326
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
7424
|
-
var
|
|
7327
|
+
var import_react50 = __toESM(require("react"));
|
|
7425
7328
|
var import_joy61 = require("@mui/joy");
|
|
7426
7329
|
var colorScheme = {
|
|
7427
7330
|
palette: {
|
|
@@ -7687,12 +7590,12 @@ var defaultTheme = (0, import_joy61.extendTheme)({
|
|
|
7687
7590
|
});
|
|
7688
7591
|
function ThemeProvider(props) {
|
|
7689
7592
|
const theme = props.theme || defaultTheme;
|
|
7690
|
-
return /* @__PURE__ */
|
|
7593
|
+
return /* @__PURE__ */ import_react50.default.createElement(import_react50.default.Fragment, null, /* @__PURE__ */ import_react50.default.createElement(import_joy61.CssVarsProvider, { theme }, /* @__PURE__ */ import_react50.default.createElement(import_joy61.CssBaseline, null), props.children));
|
|
7691
7594
|
}
|
|
7692
7595
|
ThemeProvider.displayName = "ThemeProvider";
|
|
7693
7596
|
|
|
7694
7597
|
// src/components/Uploader/Uploader.tsx
|
|
7695
|
-
var
|
|
7598
|
+
var import_react51 = __toESM(require("react"));
|
|
7696
7599
|
var import_joy62 = require("@mui/joy");
|
|
7697
7600
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
7698
7601
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
@@ -7755,7 +7658,7 @@ var getFileSize = (n) => {
|
|
|
7755
7658
|
};
|
|
7756
7659
|
var Preview = (props) => {
|
|
7757
7660
|
const { files, uploaded, onDelete } = props;
|
|
7758
|
-
return /* @__PURE__ */
|
|
7661
|
+
return /* @__PURE__ */ import_react51.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react51.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react51.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react51.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react51.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react51.default.createElement(
|
|
7759
7662
|
Typography_default,
|
|
7760
7663
|
{
|
|
7761
7664
|
level: "body-sm",
|
|
@@ -7767,7 +7670,7 @@ var Preview = (props) => {
|
|
|
7767
7670
|
}
|
|
7768
7671
|
},
|
|
7769
7672
|
file.name
|
|
7770
|
-
), !!file.size && /* @__PURE__ */
|
|
7673
|
+
), !!file.size && /* @__PURE__ */ import_react51.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react51.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react51.default.createElement(ClearIcon2, null))))));
|
|
7771
7674
|
};
|
|
7772
7675
|
var UploaderRoot = (0, import_joy62.styled)(Stack_default, {
|
|
7773
7676
|
name: "Uploader",
|
|
@@ -7810,7 +7713,7 @@ var UploaderIcon = (0, import_joy62.styled)(import_CloudUploadRounded.default, {
|
|
|
7810
7713
|
}
|
|
7811
7714
|
})
|
|
7812
7715
|
);
|
|
7813
|
-
var Uploader =
|
|
7716
|
+
var Uploader = import_react51.default.memo((props) => {
|
|
7814
7717
|
const {
|
|
7815
7718
|
accept,
|
|
7816
7719
|
minCount,
|
|
@@ -7826,14 +7729,14 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7826
7729
|
error: errorProp,
|
|
7827
7730
|
helperText: helperTextProp
|
|
7828
7731
|
} = props;
|
|
7829
|
-
const dropZoneRef = (0,
|
|
7830
|
-
const inputRef = (0,
|
|
7831
|
-
const [errorText, setErrorText] = (0,
|
|
7832
|
-
const [files, setFiles] = (0,
|
|
7833
|
-
const [uploaded, setUploaded] = (0,
|
|
7834
|
-
const [previewState, setPreviewState] = (0,
|
|
7835
|
-
const accepts = (0,
|
|
7836
|
-
const parsedAccepts = (0,
|
|
7732
|
+
const dropZoneRef = (0, import_react51.useRef)(null);
|
|
7733
|
+
const inputRef = (0, import_react51.useRef)(null);
|
|
7734
|
+
const [errorText, setErrorText] = (0, import_react51.useState)();
|
|
7735
|
+
const [files, setFiles] = (0, import_react51.useState)([]);
|
|
7736
|
+
const [uploaded, setUploaded] = (0, import_react51.useState)(props.uploaded || []);
|
|
7737
|
+
const [previewState, setPreviewState] = (0, import_react51.useState)("idle");
|
|
7738
|
+
const accepts = (0, import_react51.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
7739
|
+
const parsedAccepts = (0, import_react51.useMemo)(
|
|
7837
7740
|
() => accepts.flatMap((type) => {
|
|
7838
7741
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
7839
7742
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -7842,7 +7745,7 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7842
7745
|
}),
|
|
7843
7746
|
[accepts]
|
|
7844
7747
|
);
|
|
7845
|
-
const helperText = (0,
|
|
7748
|
+
const helperText = (0, import_react51.useMemo)(() => {
|
|
7846
7749
|
if (helperTextProp) {
|
|
7847
7750
|
return helperTextProp;
|
|
7848
7751
|
}
|
|
@@ -7872,12 +7775,12 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7872
7775
|
}
|
|
7873
7776
|
return helperTexts.join(", ");
|
|
7874
7777
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
7875
|
-
const error = (0,
|
|
7876
|
-
const showDropZone = (0,
|
|
7778
|
+
const error = (0, import_react51.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
7779
|
+
const showDropZone = (0, import_react51.useMemo)(
|
|
7877
7780
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
7878
7781
|
[files, maxCount, uploaded]
|
|
7879
7782
|
);
|
|
7880
|
-
const addFiles = (0,
|
|
7783
|
+
const addFiles = (0, import_react51.useCallback)(
|
|
7881
7784
|
(uploads) => {
|
|
7882
7785
|
try {
|
|
7883
7786
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -7922,7 +7825,7 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7922
7825
|
},
|
|
7923
7826
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
7924
7827
|
);
|
|
7925
|
-
(0,
|
|
7828
|
+
(0, import_react51.useEffect)(() => {
|
|
7926
7829
|
if (!dropZoneRef.current || disabled) {
|
|
7927
7830
|
return;
|
|
7928
7831
|
}
|
|
@@ -7950,7 +7853,7 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7950
7853
|
})
|
|
7951
7854
|
);
|
|
7952
7855
|
}, [disabled, addFiles]);
|
|
7953
|
-
(0,
|
|
7856
|
+
(0, import_react51.useEffect)(() => {
|
|
7954
7857
|
if (inputRef.current && minCount) {
|
|
7955
7858
|
if (files.length < minCount) {
|
|
7956
7859
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -7959,14 +7862,14 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7959
7862
|
}
|
|
7960
7863
|
}
|
|
7961
7864
|
}, [inputRef, files, minCount]);
|
|
7962
|
-
const handleFileChanged = (0,
|
|
7865
|
+
const handleFileChanged = (0, import_react51.useCallback)(
|
|
7963
7866
|
(event) => {
|
|
7964
7867
|
const files2 = Array.from(event.target.files || []);
|
|
7965
7868
|
addFiles(files2);
|
|
7966
7869
|
},
|
|
7967
7870
|
[addFiles]
|
|
7968
7871
|
);
|
|
7969
|
-
const handleDeleteFile = (0,
|
|
7872
|
+
const handleDeleteFile = (0, import_react51.useCallback)(
|
|
7970
7873
|
(deletedFile) => {
|
|
7971
7874
|
if (deletedFile instanceof File) {
|
|
7972
7875
|
setFiles((current) => {
|
|
@@ -7986,10 +7889,10 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7986
7889
|
},
|
|
7987
7890
|
[name, onChange, onDelete]
|
|
7988
7891
|
);
|
|
7989
|
-
const handleUploaderButtonClick = (0,
|
|
7892
|
+
const handleUploaderButtonClick = (0, import_react51.useCallback)(() => {
|
|
7990
7893
|
inputRef.current?.click();
|
|
7991
7894
|
}, []);
|
|
7992
|
-
const uploader = /* @__PURE__ */
|
|
7895
|
+
const uploader = /* @__PURE__ */ import_react51.default.createElement(
|
|
7993
7896
|
FileDropZone,
|
|
7994
7897
|
{
|
|
7995
7898
|
state: previewState,
|
|
@@ -7998,8 +7901,8 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
7998
7901
|
ref: dropZoneRef,
|
|
7999
7902
|
onClick: handleUploaderButtonClick
|
|
8000
7903
|
},
|
|
8001
|
-
/* @__PURE__ */
|
|
8002
|
-
/* @__PURE__ */
|
|
7904
|
+
/* @__PURE__ */ import_react51.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react51.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
7905
|
+
/* @__PURE__ */ import_react51.default.createElement(
|
|
8003
7906
|
VisuallyHiddenInput,
|
|
8004
7907
|
{
|
|
8005
7908
|
disabled,
|
|
@@ -8022,6 +7925,6 @@ var Uploader = import_react52.default.memo((props) => {
|
|
|
8022
7925
|
}
|
|
8023
7926
|
)
|
|
8024
7927
|
);
|
|
8025
|
-
return /* @__PURE__ */
|
|
7928
|
+
return /* @__PURE__ */ import_react51.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react51.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react51.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react51.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react51.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react51.default.createElement("div", null, errorText), /* @__PURE__ */ import_react51.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react51.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
8026
7929
|
});
|
|
8027
7930
|
Uploader.displayName = "Uploader";
|