@ceed/ads 1.41.3-next.1 → 1.41.3-next.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 +2 -1
- package/dist/components/DataTable/components.d.ts +1 -1
- package/dist/components/DataTable/hooks.d.ts +6 -7
- package/dist/components/DataTable/types.d.ts +7 -0
- package/dist/components/DataTable/utils.d.ts +5 -0
- package/dist/components/IconMenuButton/IconMenuButton.d.ts +6 -5
- package/dist/components/IconMenuButton/index.d.ts +2 -1
- package/dist/components/Modal/Modal.d.ts +1 -4
- package/dist/components/Select/Select.d.ts +3 -4
- package/dist/components/Textarea/Textarea.d.ts +1 -4
- package/dist/components/Textarea/index.d.ts +2 -1
- package/dist/components/data-display/DataTable.md +4 -0
- package/dist/index.browser.js +6 -6
- package/dist/index.browser.js.map +4 -4
- package/dist/index.cjs +801 -708
- package/dist/index.js +263 -170
- package/dist/libs/slot-props.d.ts +22 -0
- package/framer/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -347,7 +347,7 @@ function Alert(inProps) {
|
|
|
347
347
|
Alert.displayName = "Alert";
|
|
348
348
|
|
|
349
349
|
// src/components/Autocomplete/Autocomplete.tsx
|
|
350
|
-
var
|
|
350
|
+
var import_react7 = __toESM(require("react"));
|
|
351
351
|
var import_joy10 = require("@mui/joy");
|
|
352
352
|
var import_base = require("@mui/base");
|
|
353
353
|
var import_Close = __toESM(require("@mui/icons-material/Close"));
|
|
@@ -439,6 +439,37 @@ function useControlledState(controlledValue, defaultValue, onChange) {
|
|
|
439
439
|
return [displayValue, handleChange, isControlled];
|
|
440
440
|
}
|
|
441
441
|
|
|
442
|
+
// src/libs/slot-props.ts
|
|
443
|
+
var import_react6 = require("react");
|
|
444
|
+
function assignRef(ref, value) {
|
|
445
|
+
if (typeof ref === "function") ref(value);
|
|
446
|
+
else if (ref) ref.current = value;
|
|
447
|
+
}
|
|
448
|
+
function mergeRefs(...refs) {
|
|
449
|
+
const live = refs.filter((r) => r != null);
|
|
450
|
+
if (live.length === 0) return void 0;
|
|
451
|
+
if (live.length === 1) return live[0];
|
|
452
|
+
return (value) => live.forEach((r) => assignRef(r, value));
|
|
453
|
+
}
|
|
454
|
+
function useMergedRef(a, b) {
|
|
455
|
+
return (0, import_react6.useMemo)(() => mergeRefs(a, b), [a, b]);
|
|
456
|
+
}
|
|
457
|
+
function useSlotRef(slotProp, ref) {
|
|
458
|
+
const isFunctionForm = typeof slotProp === "function";
|
|
459
|
+
const slotRef = isFunctionForm ? void 0 : slotProp?.ref;
|
|
460
|
+
const mergedRef = useMergedRef(slotRef, ref);
|
|
461
|
+
return (0, import_react6.useMemo)(() => {
|
|
462
|
+
if (isFunctionForm) {
|
|
463
|
+
return ((ownerState) => {
|
|
464
|
+
const resolved = slotProp(ownerState);
|
|
465
|
+
const merged = mergeRefs(resolved.ref, ref);
|
|
466
|
+
return merged ? { ...resolved, ref: merged } : { ...resolved };
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
return mergedRef ? { ...slotProp, ref: mergedRef } : { ...slotProp };
|
|
470
|
+
}, [isFunctionForm, slotProp, mergedRef, ref]);
|
|
471
|
+
}
|
|
472
|
+
|
|
442
473
|
// src/components/Autocomplete/Autocomplete.tsx
|
|
443
474
|
var AutocompletePopper = (0, import_joy10.styled)(import_base2.Popper, {
|
|
444
475
|
name: "Autocomplete",
|
|
@@ -451,7 +482,7 @@ var itemHeightMap = {
|
|
|
451
482
|
md: { default: 36, secondary: 55 },
|
|
452
483
|
lg: { default: 44, secondary: 65 }
|
|
453
484
|
};
|
|
454
|
-
var AutocompleteListBox =
|
|
485
|
+
var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
|
|
455
486
|
const {
|
|
456
487
|
anchorEl,
|
|
457
488
|
open,
|
|
@@ -461,13 +492,13 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
|
|
|
461
492
|
ownerState: { loading, size: fontSize },
|
|
462
493
|
...innerProps
|
|
463
494
|
} = props;
|
|
464
|
-
const parentRef = (0,
|
|
495
|
+
const parentRef = (0, import_react7.useRef)(null);
|
|
465
496
|
const isGrouped = children[0].every((child) => child.hasOwnProperty("group"));
|
|
466
|
-
const itemHeight = (0,
|
|
497
|
+
const itemHeight = (0, import_react7.useMemo)(() => {
|
|
467
498
|
const heights = itemHeightMap[fontSize ?? "md"];
|
|
468
499
|
return hasSecondaryText ? heights.secondary : heights.default;
|
|
469
500
|
}, [fontSize, hasSecondaryText]);
|
|
470
|
-
const renderTargets = (0,
|
|
501
|
+
const renderTargets = (0, import_react7.useMemo)(() => {
|
|
471
502
|
if (loading) {
|
|
472
503
|
return [children[1]];
|
|
473
504
|
}
|
|
@@ -476,7 +507,7 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
|
|
|
476
507
|
}
|
|
477
508
|
if (isGrouped) {
|
|
478
509
|
return children[0].flatMap((child) => [
|
|
479
|
-
/* @__PURE__ */
|
|
510
|
+
/* @__PURE__ */ import_react7.default.createElement(import_joy10.ListSubheader, { key: child.key, component: "li" }, child.group),
|
|
480
511
|
...child.children
|
|
481
512
|
]);
|
|
482
513
|
}
|
|
@@ -490,12 +521,12 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
|
|
|
490
521
|
overscan: 5
|
|
491
522
|
});
|
|
492
523
|
const items = virtualizer.getVirtualItems();
|
|
493
|
-
(0,
|
|
524
|
+
(0, import_react7.useEffect)(() => {
|
|
494
525
|
if (open) {
|
|
495
526
|
virtualizer.measure();
|
|
496
527
|
}
|
|
497
528
|
}, [open, virtualizer]);
|
|
498
|
-
return /* @__PURE__ */
|
|
529
|
+
return /* @__PURE__ */ import_react7.default.createElement(AutocompletePopper, { ref, anchorEl, open, modifiers }, /* @__PURE__ */ import_react7.default.createElement(import_joy10.AutocompleteListbox, { ...innerProps, size: fontSize }, /* @__PURE__ */ import_react7.default.createElement("div", { ref: parentRef, style: { overflow: "auto" } }, /* @__PURE__ */ import_react7.default.createElement(
|
|
499
530
|
"div",
|
|
500
531
|
{
|
|
501
532
|
style: {
|
|
@@ -504,7 +535,7 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
|
|
|
504
535
|
}
|
|
505
536
|
},
|
|
506
537
|
items.map(
|
|
507
|
-
({ index, size, start, key }) =>
|
|
538
|
+
({ index, size, start, key }) => import_react7.default.cloneElement(renderTargets[index], {
|
|
508
539
|
key,
|
|
509
540
|
style: {
|
|
510
541
|
position: "absolute",
|
|
@@ -516,7 +547,7 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
|
|
|
516
547
|
transform: `translateY(${start}px)`,
|
|
517
548
|
overflow: "visible"
|
|
518
549
|
},
|
|
519
|
-
children: /* @__PURE__ */
|
|
550
|
+
children: /* @__PURE__ */ import_react7.default.createElement(
|
|
520
551
|
"div",
|
|
521
552
|
{
|
|
522
553
|
style: {
|
|
@@ -559,7 +590,7 @@ var autocompleteFilterOptions = (0, import_base.createFilterOptions)({
|
|
|
559
590
|
}
|
|
560
591
|
});
|
|
561
592
|
var getOptionLabel = (option) => `${option.label ?? ""}`;
|
|
562
|
-
function
|
|
593
|
+
function AutocompleteInner(props, ref) {
|
|
563
594
|
const {
|
|
564
595
|
label,
|
|
565
596
|
error,
|
|
@@ -578,7 +609,7 @@ function Autocomplete(props) {
|
|
|
578
609
|
const [rawValue, setValue] = useControlledState(
|
|
579
610
|
props.value,
|
|
580
611
|
props.defaultValue ?? null,
|
|
581
|
-
(0,
|
|
612
|
+
(0, import_react7.useCallback)(
|
|
582
613
|
(value2) => onChange?.({
|
|
583
614
|
target: {
|
|
584
615
|
value: value2,
|
|
@@ -589,7 +620,7 @@ function Autocomplete(props) {
|
|
|
589
620
|
)
|
|
590
621
|
);
|
|
591
622
|
const _value = rawValue ?? (props.multiple ? EMPTY_MULTIPLE_VALUE : "");
|
|
592
|
-
const options = (0,
|
|
623
|
+
const options = (0, import_react7.useMemo)(
|
|
593
624
|
() => props.options.map((option) => {
|
|
594
625
|
if (typeof option !== "object") {
|
|
595
626
|
return {
|
|
@@ -601,19 +632,19 @@ function Autocomplete(props) {
|
|
|
601
632
|
}),
|
|
602
633
|
[props.options]
|
|
603
634
|
);
|
|
604
|
-
const optionMap = (0,
|
|
635
|
+
const optionMap = (0, import_react7.useMemo)(() => {
|
|
605
636
|
const map = /* @__PURE__ */ new Map();
|
|
606
637
|
options.forEach((option) => {
|
|
607
638
|
map.set(option.value, option);
|
|
608
639
|
});
|
|
609
640
|
return map;
|
|
610
641
|
}, [options]);
|
|
611
|
-
const value = (0,
|
|
642
|
+
const value = (0, import_react7.useMemo)(() => {
|
|
612
643
|
if (props.loading) {
|
|
613
644
|
return {
|
|
614
645
|
value: "",
|
|
615
646
|
label: "",
|
|
616
|
-
startDecorator: /* @__PURE__ */
|
|
647
|
+
startDecorator: /* @__PURE__ */ import_react7.default.createElement(import_joy10.CircularProgress, { size: "sm", color: "neutral", variant: "plain", thickness: 3 })
|
|
617
648
|
};
|
|
618
649
|
}
|
|
619
650
|
if (Array.isArray(_value)) {
|
|
@@ -621,31 +652,33 @@ function Autocomplete(props) {
|
|
|
621
652
|
}
|
|
622
653
|
return optionMap.get(_value);
|
|
623
654
|
}, [_value, optionMap, props.loading]);
|
|
624
|
-
const applySize = (0,
|
|
655
|
+
const applySize = (0, import_react7.useCallback)(
|
|
625
656
|
(node) => {
|
|
626
|
-
return
|
|
657
|
+
return import_react7.default.isValidElement(node) && !props.loading ? import_react7.default.cloneElement(node, { ...{ size } }) : node;
|
|
627
658
|
},
|
|
628
659
|
[size, props.loading]
|
|
629
660
|
);
|
|
630
|
-
const startDecorator = (0,
|
|
661
|
+
const startDecorator = (0, import_react7.useMemo)(
|
|
631
662
|
() => applySize(value?.startDecorator || props.startDecorator),
|
|
632
663
|
[value, applySize, props.startDecorator]
|
|
633
664
|
);
|
|
634
|
-
const endDecorator = (0,
|
|
665
|
+
const endDecorator = (0, import_react7.useMemo)(
|
|
635
666
|
() => applySize(value?.endDecorator || props.endDecorator),
|
|
636
667
|
[value, applySize, props.endDecorator]
|
|
637
668
|
);
|
|
638
|
-
const
|
|
669
|
+
const inputSlotProps = useSlotRef(props.slotProps?.input, ref);
|
|
670
|
+
const slotProps = (0, import_react7.useMemo)(
|
|
639
671
|
() => ({
|
|
640
672
|
...props.slotProps,
|
|
641
673
|
listbox: {
|
|
642
674
|
...props.slotProps?.listbox,
|
|
643
675
|
hasSecondaryText: options.some((opt) => opt.secondaryText)
|
|
644
|
-
}
|
|
676
|
+
},
|
|
677
|
+
input: inputSlotProps
|
|
645
678
|
}),
|
|
646
|
-
[options, props.slotProps]
|
|
679
|
+
[options, props.slotProps, inputSlotProps]
|
|
647
680
|
);
|
|
648
|
-
const handleChange = (0,
|
|
681
|
+
const handleChange = (0, import_react7.useCallback)(
|
|
649
682
|
(event, value2) => {
|
|
650
683
|
const newValue = value2;
|
|
651
684
|
const _value2 = Array.isArray(newValue) ? newValue.map((value3) => value3.value) : newValue?.value;
|
|
@@ -662,7 +695,7 @@ function Autocomplete(props) {
|
|
|
662
695
|
},
|
|
663
696
|
[onChangeComplete, setValue, optionMap]
|
|
664
697
|
);
|
|
665
|
-
const autocomplete = /* @__PURE__ */
|
|
698
|
+
const autocomplete = /* @__PURE__ */ import_react7.default.createElement(
|
|
666
699
|
import_joy10.Autocomplete,
|
|
667
700
|
{
|
|
668
701
|
...innerProps,
|
|
@@ -677,10 +710,10 @@ function Autocomplete(props) {
|
|
|
677
710
|
endDecorator,
|
|
678
711
|
getOptionLabel,
|
|
679
712
|
renderTags: (tags, getTagProps) => tags.map((tag, index) => {
|
|
680
|
-
const { onClick, ...rest } = getTagProps({ index });
|
|
713
|
+
const { onClick, key, ...rest } = getTagProps({ index });
|
|
681
714
|
return applySize(
|
|
682
|
-
/* @__PURE__ */
|
|
683
|
-
/* @__PURE__ */
|
|
715
|
+
/* @__PURE__ */ import_react7.default.createElement(Chip_default, { key, color: "primary", ...rest }, /* @__PURE__ */ import_react7.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2, py: 0.5 }, tag.value, applySize(
|
|
716
|
+
/* @__PURE__ */ import_react7.default.createElement(AutocompleteTagDelete, { color: "primary", variant: "soft", onClick, size }, /* @__PURE__ */ import_react7.default.createElement(import_Close.default, null))
|
|
684
717
|
)))
|
|
685
718
|
);
|
|
686
719
|
}),
|
|
@@ -689,30 +722,33 @@ function Autocomplete(props) {
|
|
|
689
722
|
},
|
|
690
723
|
slotProps,
|
|
691
724
|
filterOptions: autocompleteFilterOptions,
|
|
692
|
-
renderOption: (props2, option) =>
|
|
693
|
-
|
|
694
|
-
{
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
applySize(option.label)
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
725
|
+
renderOption: (props2, option) => {
|
|
726
|
+
const { key, ...optionProps } = props2;
|
|
727
|
+
return /* @__PURE__ */ import_react7.default.createElement(import_joy10.AutocompleteOption, { key, ...optionProps }, option.startDecorator && /* @__PURE__ */ import_react7.default.createElement(
|
|
728
|
+
import_joy10.ListItemDecorator,
|
|
729
|
+
{
|
|
730
|
+
sx: (theme) => ({
|
|
731
|
+
marginInlineEnd: `var(--Input-gap, ${theme.spacing(1)})`
|
|
732
|
+
})
|
|
733
|
+
},
|
|
734
|
+
applySize(option.startDecorator)
|
|
735
|
+
), option.secondaryText ? /* @__PURE__ */ import_react7.default.createElement(import_joy10.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react7.default.createElement(import_joy10.Typography, { level: "inherit" }, applySize(option.label)), /* @__PURE__ */ import_react7.default.createElement(import_joy10.Typography, { level: secondaryTextLevelMap[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : (
|
|
736
|
+
// TODO: haulla에서 사용할 때, label을 ReactNode로 넘기면 에러가 발생함....
|
|
737
|
+
applySize(option.label)
|
|
738
|
+
), option.endDecorator && /* @__PURE__ */ import_react7.default.createElement(
|
|
739
|
+
import_joy10.ListItemDecorator,
|
|
740
|
+
{
|
|
741
|
+
sx: (theme) => ({
|
|
742
|
+
marginInlineStart: `var(--Input-gap, ${theme.spacing(1)})`
|
|
743
|
+
})
|
|
744
|
+
},
|
|
745
|
+
applySize(option.endDecorator)
|
|
746
|
+
));
|
|
747
|
+
},
|
|
712
748
|
renderGroup: (params) => params
|
|
713
749
|
}
|
|
714
750
|
);
|
|
715
|
-
return /* @__PURE__ */
|
|
751
|
+
return /* @__PURE__ */ import_react7.default.createElement(
|
|
716
752
|
FormControl_default,
|
|
717
753
|
{
|
|
718
754
|
required,
|
|
@@ -723,18 +759,19 @@ function Autocomplete(props) {
|
|
|
723
759
|
sx,
|
|
724
760
|
className
|
|
725
761
|
},
|
|
726
|
-
label && /* @__PURE__ */
|
|
762
|
+
label && /* @__PURE__ */ import_react7.default.createElement(FormLabel_default, null, label),
|
|
727
763
|
autocomplete,
|
|
728
|
-
helperText && /* @__PURE__ */
|
|
764
|
+
helperText && /* @__PURE__ */ import_react7.default.createElement(FormHelperText_default, null, helperText)
|
|
729
765
|
);
|
|
730
766
|
}
|
|
767
|
+
var Autocomplete = import_react7.default.forwardRef(AutocompleteInner);
|
|
731
768
|
Autocomplete.displayName = "Autocomplete";
|
|
732
769
|
|
|
733
770
|
// src/components/Autocomplete/index.ts
|
|
734
771
|
var Autocomplete_default = Autocomplete;
|
|
735
772
|
|
|
736
773
|
// src/components/Avatar/Avatar.tsx
|
|
737
|
-
var
|
|
774
|
+
var import_react8 = __toESM(require("react"));
|
|
738
775
|
var import_joy11 = require("@mui/joy");
|
|
739
776
|
var StyledAvatar = (0, import_joy11.styled)(import_joy11.Avatar, {
|
|
740
777
|
name: "Avatar",
|
|
@@ -756,19 +793,19 @@ var defaultGetInitial = (name) => {
|
|
|
756
793
|
return (firstName.charAt(0) + lastName.charAt(0)).toUpperCase();
|
|
757
794
|
}
|
|
758
795
|
};
|
|
759
|
-
var Avatar = (0,
|
|
796
|
+
var Avatar = (0, import_react8.forwardRef)(function Avatar2(inProps, ref) {
|
|
760
797
|
const props = (0, import_joy11.useThemeProps)({
|
|
761
798
|
props: inProps,
|
|
762
799
|
name: "Avatar"
|
|
763
800
|
});
|
|
764
801
|
const { children, getInitial = defaultGetInitial, ...inheritProps } = props;
|
|
765
|
-
const calcChildren = (0,
|
|
802
|
+
const calcChildren = (0, import_react8.useMemo)(() => {
|
|
766
803
|
if (typeof children === "string") {
|
|
767
804
|
return getInitial?.(children) ?? "";
|
|
768
805
|
}
|
|
769
806
|
return children;
|
|
770
807
|
}, [children, getInitial]);
|
|
771
|
-
return /* @__PURE__ */
|
|
808
|
+
return /* @__PURE__ */ import_react8.default.createElement(StyledAvatar, { ...inheritProps, children: calcChildren, ref });
|
|
772
809
|
});
|
|
773
810
|
|
|
774
811
|
// src/components/Box/Box.tsx
|
|
@@ -782,16 +819,16 @@ Box.displayName = "Box";
|
|
|
782
819
|
var Box_default = Box;
|
|
783
820
|
|
|
784
821
|
// src/components/Breadcrumbs/Breadcrumbs.tsx
|
|
785
|
-
var
|
|
822
|
+
var import_react11 = __toESM(require("react"));
|
|
786
823
|
var import_joy16 = require("@mui/joy");
|
|
787
824
|
|
|
788
825
|
// src/components/Menu/Menu.tsx
|
|
789
|
-
var
|
|
826
|
+
var import_react9 = __toESM(require("react"));
|
|
790
827
|
var import_joy13 = require("@mui/joy");
|
|
791
828
|
var import_framer_motion10 = require("framer-motion");
|
|
792
829
|
var MotionMenu = (0, import_framer_motion10.motion)(import_joy13.Menu);
|
|
793
830
|
var Menu = (props) => {
|
|
794
|
-
return /* @__PURE__ */
|
|
831
|
+
return /* @__PURE__ */ import_react9.default.createElement(MotionMenu, { ...props });
|
|
795
832
|
};
|
|
796
833
|
Menu.displayName = "Menu";
|
|
797
834
|
var MenuItem = import_joy13.MenuItem;
|
|
@@ -800,22 +837,22 @@ var MenuItem = import_joy13.MenuItem;
|
|
|
800
837
|
var Menu_default = Menu;
|
|
801
838
|
|
|
802
839
|
// src/components/Dropdown/Dropdown.tsx
|
|
803
|
-
var
|
|
840
|
+
var import_react10 = __toESM(require("react"));
|
|
804
841
|
var import_joy14 = require("@mui/joy");
|
|
805
842
|
var import_joy15 = require("@mui/joy");
|
|
806
843
|
var import_useMenuButton = require("@mui/base/useMenuButton");
|
|
807
|
-
var DropdownNestedRegistryContext = (0,
|
|
844
|
+
var DropdownNestedRegistryContext = (0, import_react10.createContext)(null);
|
|
808
845
|
function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }) {
|
|
809
|
-
const [nestedCount, setNestedCount] = (0,
|
|
846
|
+
const [nestedCount, setNestedCount] = (0, import_react10.useState)(0);
|
|
810
847
|
const [open, setOpen] = useControlledState(openProp, defaultOpen);
|
|
811
|
-
const registry = (0,
|
|
848
|
+
const registry = (0, import_react10.useMemo)(
|
|
812
849
|
() => ({
|
|
813
850
|
register: () => setNestedCount((c) => c + 1),
|
|
814
851
|
unregister: () => setNestedCount((c) => Math.max(0, c - 1))
|
|
815
852
|
}),
|
|
816
853
|
[]
|
|
817
854
|
);
|
|
818
|
-
const handleOpenChange = (0,
|
|
855
|
+
const handleOpenChange = (0, import_react10.useCallback)(
|
|
819
856
|
(event, isOpen) => {
|
|
820
857
|
if (nestedCount > 0 && !isOpen && event?.type === "blur") {
|
|
821
858
|
return;
|
|
@@ -825,7 +862,7 @@ function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }
|
|
|
825
862
|
},
|
|
826
863
|
[nestedCount, setOpen, onOpenChange]
|
|
827
864
|
);
|
|
828
|
-
return /* @__PURE__ */
|
|
865
|
+
return /* @__PURE__ */ import_react10.default.createElement(DropdownNestedRegistryContext.Provider, { value: registry }, /* @__PURE__ */ import_react10.default.createElement(import_joy14.Dropdown, { open, onOpenChange: handleOpenChange, ...rest }));
|
|
829
866
|
}
|
|
830
867
|
Dropdown.displayName = "Dropdown";
|
|
831
868
|
|
|
@@ -848,29 +885,29 @@ function Breadcrumbs(props) {
|
|
|
848
885
|
} = props;
|
|
849
886
|
const Crumb = (props2) => {
|
|
850
887
|
if (props2.type === "link" && Link4) {
|
|
851
|
-
return /* @__PURE__ */
|
|
888
|
+
return /* @__PURE__ */ import_react11.default.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
|
|
852
889
|
} else {
|
|
853
|
-
return /* @__PURE__ */
|
|
890
|
+
return /* @__PURE__ */ import_react11.default.createElement(Typography_default, null, props2.label);
|
|
854
891
|
}
|
|
855
892
|
};
|
|
856
893
|
if (!collapsed) {
|
|
857
|
-
return /* @__PURE__ */
|
|
894
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, crumbs.map((crumb, index) => /* @__PURE__ */ import_react11.default.createElement(Crumb, { key: `breadcrumb-${index}`, ...crumb })));
|
|
858
895
|
}
|
|
859
896
|
const _endCrumbCount = Math.max(1, endCrumbCount);
|
|
860
|
-
const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */
|
|
861
|
-
const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */
|
|
862
|
-
const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */
|
|
863
|
-
return /* @__PURE__ */
|
|
897
|
+
const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ import_react11.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
|
|
898
|
+
const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */ import_react11.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
|
|
899
|
+
const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */ import_react11.default.createElement(MenuItem, { key: `breadcrumb-${crumb.label}` }, /* @__PURE__ */ import_react11.default.createElement(Crumb, { ...crumb })));
|
|
900
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, frontCrumbs, collapsedCrumbs.length && /* @__PURE__ */ import_react11.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react11.default.createElement(import_joy16.MenuButton, { size, variant: "plain" }, "..."), /* @__PURE__ */ import_react11.default.createElement(Menu_default, { size }, collapsedCrumbs)), backCrumbs);
|
|
864
901
|
}
|
|
865
902
|
Breadcrumbs.displayName = "Breadcrumbs";
|
|
866
903
|
|
|
867
904
|
// src/components/Button/Button.tsx
|
|
868
|
-
var
|
|
905
|
+
var import_react12 = __toESM(require("react"));
|
|
869
906
|
var import_joy17 = require("@mui/joy");
|
|
870
907
|
var import_framer_motion11 = require("framer-motion");
|
|
871
908
|
var MotionButton = (0, import_framer_motion11.motion)(import_joy17.Button);
|
|
872
|
-
var Button = (0,
|
|
873
|
-
return /* @__PURE__ */
|
|
909
|
+
var Button = (0, import_react12.forwardRef)(({ ...props }, ref) => {
|
|
910
|
+
return /* @__PURE__ */ import_react12.default.createElement(MotionButton, { ref, ...props });
|
|
874
911
|
});
|
|
875
912
|
Button.displayName = "Button";
|
|
876
913
|
|
|
@@ -878,19 +915,19 @@ Button.displayName = "Button";
|
|
|
878
915
|
var Button_default = Button;
|
|
879
916
|
|
|
880
917
|
// src/components/Calendar/Calendar.tsx
|
|
881
|
-
var
|
|
918
|
+
var import_react16 = __toESM(require("react"));
|
|
882
919
|
var import_joy20 = require("@mui/joy");
|
|
883
920
|
var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
|
|
884
921
|
var import_ChevronRight = __toESM(require("@mui/icons-material/ChevronRight"));
|
|
885
922
|
var import_framer_motion13 = require("framer-motion");
|
|
886
923
|
|
|
887
924
|
// src/components/Tooltip/Tooltip.tsx
|
|
888
|
-
var
|
|
925
|
+
var import_react13 = __toESM(require("react"));
|
|
889
926
|
var import_joy18 = require("@mui/joy");
|
|
890
927
|
var import_framer_motion12 = require("framer-motion");
|
|
891
928
|
var MotionTooltip = (0, import_framer_motion12.motion)(import_joy18.Tooltip);
|
|
892
929
|
var Tooltip = (props) => {
|
|
893
|
-
return /* @__PURE__ */
|
|
930
|
+
return /* @__PURE__ */ import_react13.default.createElement(MotionTooltip, { ...props });
|
|
894
931
|
};
|
|
895
932
|
Tooltip.displayName = "Tooltip";
|
|
896
933
|
|
|
@@ -972,43 +1009,43 @@ var isSameMonth = (date1, date2) => {
|
|
|
972
1009
|
};
|
|
973
1010
|
|
|
974
1011
|
// src/components/Calendar/hooks/use-calendar-props.ts
|
|
975
|
-
var
|
|
1012
|
+
var import_react14 = require("react");
|
|
976
1013
|
var import_joy19 = require("@mui/joy");
|
|
977
1014
|
var resolveView = (view, views) => {
|
|
978
1015
|
return views.includes(view) ? view : views[0];
|
|
979
1016
|
};
|
|
980
1017
|
var useCalendarProps = (inProps) => {
|
|
981
|
-
const [uncontrolledView, setUncontrolledView] = (0,
|
|
1018
|
+
const [uncontrolledView, setUncontrolledView] = (0, import_react14.useState)(
|
|
982
1019
|
() => resolveView(inProps.view || "day", inProps.views || ["day", "month"])
|
|
983
1020
|
);
|
|
984
|
-
const [uncontrolledValue, setUncontrolledValue] = (0,
|
|
1021
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react14.useState)(
|
|
985
1022
|
inProps.defaultValue
|
|
986
1023
|
);
|
|
987
|
-
const [viewMonth, setViewMonth] = (0,
|
|
1024
|
+
const [viewMonth, setViewMonth] = (0, import_react14.useState)(() => {
|
|
988
1025
|
const today = /* @__PURE__ */ new Date();
|
|
989
1026
|
today.setDate(1);
|
|
990
1027
|
today.setHours(0, 0, 0, 0);
|
|
991
1028
|
return inProps.value?.[0] || inProps.defaultValue?.[0] || today;
|
|
992
1029
|
});
|
|
993
|
-
const [[page, direction], setPage] = (0,
|
|
1030
|
+
const [[page, direction], setPage] = (0, import_react14.useState)([0, 0]);
|
|
994
1031
|
const resolvedView = inProps.view ?? uncontrolledView;
|
|
995
|
-
const resolvedMinDate = (0,
|
|
1032
|
+
const resolvedMinDate = (0, import_react14.useMemo)(() => {
|
|
996
1033
|
const minDate = inProps.minDate || /* @__PURE__ */ new Date(0);
|
|
997
1034
|
minDate.setHours(0, 0, 0, 0);
|
|
998
1035
|
return minDate;
|
|
999
1036
|
}, [inProps.minDate]);
|
|
1000
|
-
const resolvedMaxDate = (0,
|
|
1037
|
+
const resolvedMaxDate = (0, import_react14.useMemo)(() => {
|
|
1001
1038
|
const maxDate = inProps.maxDate || /* @__PURE__ */ new Date(864e13);
|
|
1002
1039
|
maxDate.setHours(0, 0, 0, 0);
|
|
1003
1040
|
return maxDate;
|
|
1004
1041
|
}, [inProps.maxDate]);
|
|
1005
|
-
const paginate = (0,
|
|
1042
|
+
const paginate = (0, import_react14.useCallback)(
|
|
1006
1043
|
(newDirection) => {
|
|
1007
1044
|
setPage([page + newDirection, newDirection]);
|
|
1008
1045
|
},
|
|
1009
1046
|
[page]
|
|
1010
1047
|
);
|
|
1011
|
-
const handleViewMonthChange = (0,
|
|
1048
|
+
const handleViewMonthChange = (0, import_react14.useCallback)(
|
|
1012
1049
|
(newMonth) => {
|
|
1013
1050
|
setViewMonth(newMonth);
|
|
1014
1051
|
if (resolvedView === "month") {
|
|
@@ -1056,22 +1093,22 @@ var useCalendarProps = (inProps) => {
|
|
|
1056
1093
|
},
|
|
1057
1094
|
name: "Calendar"
|
|
1058
1095
|
});
|
|
1059
|
-
const ownerState = (0,
|
|
1096
|
+
const ownerState = (0, import_react14.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
|
|
1060
1097
|
return [props, ownerState];
|
|
1061
1098
|
};
|
|
1062
1099
|
|
|
1063
1100
|
// src/components/Calendar/hooks/use-calendar.ts
|
|
1064
|
-
var
|
|
1101
|
+
var import_react15 = require("react");
|
|
1065
1102
|
var useCalendar = (ownerState) => {
|
|
1066
|
-
const [localHoverDay, setLocalHoverDay] = (0,
|
|
1067
|
-
const [localHoverMonth, setLocalHoverMonth] = (0,
|
|
1103
|
+
const [localHoverDay, setLocalHoverDay] = (0, import_react15.useState)(null);
|
|
1104
|
+
const [localHoverMonth, setLocalHoverMonth] = (0, import_react15.useState)(null);
|
|
1068
1105
|
const hoverDay = ownerState.hoverDay !== void 0 ? ownerState.hoverDay : localHoverDay;
|
|
1069
1106
|
const setHoverDay = ownerState.onHoverDayChange ?? setLocalHoverDay;
|
|
1070
1107
|
const hoverMonth = ownerState.hoverMonth !== void 0 ? ownerState.hoverMonth : localHoverMonth;
|
|
1071
1108
|
const setHoverMonth = ownerState.onHoverMonthChange ?? setLocalHoverMonth;
|
|
1072
1109
|
return {
|
|
1073
1110
|
calendarTitle: ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default"),
|
|
1074
|
-
onPrev: (0,
|
|
1111
|
+
onPrev: (0, import_react15.useCallback)(() => {
|
|
1075
1112
|
if (ownerState.view === "day") {
|
|
1076
1113
|
const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1077
1114
|
const currentYear = currentDate.getFullYear();
|
|
@@ -1088,7 +1125,7 @@ var useCalendar = (ownerState) => {
|
|
|
1088
1125
|
ownerState.onMonthChange?.(prevYear);
|
|
1089
1126
|
}
|
|
1090
1127
|
}, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
|
|
1091
|
-
onNext: (0,
|
|
1128
|
+
onNext: (0, import_react15.useCallback)(() => {
|
|
1092
1129
|
if (ownerState.view === "day") {
|
|
1093
1130
|
const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1094
1131
|
const currentYear = currentDate.getFullYear();
|
|
@@ -1105,7 +1142,7 @@ var useCalendar = (ownerState) => {
|
|
|
1105
1142
|
ownerState.onMonthChange?.(nextYear);
|
|
1106
1143
|
}
|
|
1107
1144
|
}, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
|
|
1108
|
-
getDayCellProps: (0,
|
|
1145
|
+
getDayCellProps: (0, import_react15.useCallback)(
|
|
1109
1146
|
(day) => {
|
|
1110
1147
|
const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1111
1148
|
thisDay.setHours(0, 0, 0, 0);
|
|
@@ -1120,7 +1157,7 @@ var useCalendar = (ownerState) => {
|
|
|
1120
1157
|
},
|
|
1121
1158
|
[ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverDay]
|
|
1122
1159
|
),
|
|
1123
|
-
getMonthCellProps: (0,
|
|
1160
|
+
getMonthCellProps: (0, import_react15.useCallback)(
|
|
1124
1161
|
(monthIndex) => {
|
|
1125
1162
|
const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1126
1163
|
thisMonth.setDate(1);
|
|
@@ -1137,7 +1174,7 @@ var useCalendar = (ownerState) => {
|
|
|
1137
1174
|
},
|
|
1138
1175
|
[ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverMonth]
|
|
1139
1176
|
),
|
|
1140
|
-
getPickerDayProps: (0,
|
|
1177
|
+
getPickerDayProps: (0, import_react15.useCallback)(
|
|
1141
1178
|
(day) => {
|
|
1142
1179
|
const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1143
1180
|
thisDay.setHours(0, 0, 0, 0);
|
|
@@ -1191,7 +1228,7 @@ var useCalendar = (ownerState) => {
|
|
|
1191
1228
|
hoverDay
|
|
1192
1229
|
]
|
|
1193
1230
|
),
|
|
1194
|
-
getPickerMonthProps: (0,
|
|
1231
|
+
getPickerMonthProps: (0, import_react15.useCallback)(
|
|
1195
1232
|
(monthIndex) => {
|
|
1196
1233
|
const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1197
1234
|
thisMonth.setDate(1);
|
|
@@ -1488,9 +1525,9 @@ var swipePower = (offset, velocity) => {
|
|
|
1488
1525
|
var PickerDays = (props) => {
|
|
1489
1526
|
const { ownerState } = props;
|
|
1490
1527
|
const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
|
|
1491
|
-
const calendarDates = (0,
|
|
1492
|
-
const weekdayNames = (0,
|
|
1493
|
-
return /* @__PURE__ */
|
|
1528
|
+
const calendarDates = (0, import_react16.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
|
|
1529
|
+
const weekdayNames = (0, import_react16.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
|
|
1530
|
+
return /* @__PURE__ */ import_react16.default.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ import_react16.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react16.default.createElement(
|
|
1494
1531
|
CalendarViewTable,
|
|
1495
1532
|
{
|
|
1496
1533
|
key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
|
|
@@ -1519,10 +1556,10 @@ var PickerDays = (props) => {
|
|
|
1519
1556
|
}
|
|
1520
1557
|
}
|
|
1521
1558
|
},
|
|
1522
|
-
/* @__PURE__ */
|
|
1523
|
-
/* @__PURE__ */
|
|
1524
|
-
(date, i) => date ? /* @__PURE__ */
|
|
1525
|
-
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */
|
|
1559
|
+
/* @__PURE__ */ import_react16.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("th", null, /* @__PURE__ */ import_react16.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
|
|
1560
|
+
/* @__PURE__ */ import_react16.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekDates.map(
|
|
1561
|
+
(date, i) => date ? /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react16.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react16.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
|
|
1562
|
+
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react16.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react16.default.createElement("td", { colSpan: 13, style: { height: 4 } })))))
|
|
1526
1563
|
)));
|
|
1527
1564
|
};
|
|
1528
1565
|
var PickerMonths = (props) => {
|
|
@@ -1539,7 +1576,7 @@ var PickerMonths = (props) => {
|
|
|
1539
1576
|
[[]]
|
|
1540
1577
|
);
|
|
1541
1578
|
const isMonthPicker = !ownerState.views?.find((view) => view === "day");
|
|
1542
|
-
return /* @__PURE__ */
|
|
1579
|
+
return /* @__PURE__ */ import_react16.default.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ import_react16.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react16.default.createElement(
|
|
1543
1580
|
CalendarViewTable,
|
|
1544
1581
|
{
|
|
1545
1582
|
key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
|
|
@@ -1568,16 +1605,16 @@ var PickerMonths = (props) => {
|
|
|
1568
1605
|
}
|
|
1569
1606
|
}
|
|
1570
1607
|
},
|
|
1571
|
-
/* @__PURE__ */
|
|
1608
|
+
/* @__PURE__ */ import_react16.default.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: months.join("_") }, /* @__PURE__ */ import_react16.default.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: monthIndex }, /* @__PURE__ */ import_react16.default.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ import_react16.default.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ import_react16.default.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ import_react16.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react16.default.createElement("td", { colSpan: 7, style: { height: 4 } })))))
|
|
1572
1609
|
)));
|
|
1573
1610
|
};
|
|
1574
1611
|
var PlainPickerDays = ({ ownerState }) => {
|
|
1575
1612
|
const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
|
|
1576
|
-
const calendarDates = (0,
|
|
1577
|
-
const weekdayNames = (0,
|
|
1578
|
-
return /* @__PURE__ */
|
|
1579
|
-
(date, i) => date ? /* @__PURE__ */
|
|
1580
|
-
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */
|
|
1613
|
+
const calendarDates = (0, import_react16.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
|
|
1614
|
+
const weekdayNames = (0, import_react16.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
|
|
1615
|
+
return /* @__PURE__ */ import_react16.default.createElement(StaticCalendarViewTable, null, /* @__PURE__ */ import_react16.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("th", null, /* @__PURE__ */ import_react16.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))), /* @__PURE__ */ import_react16.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekDates.map(
|
|
1616
|
+
(date, i) => date ? /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react16.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react16.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
|
|
1617
|
+
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react16.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react16.default.createElement("td", { colSpan: 13, style: { height: 4 } }))))));
|
|
1581
1618
|
};
|
|
1582
1619
|
var MultiMonthPickerDays = ({
|
|
1583
1620
|
panels,
|
|
@@ -1596,7 +1633,7 @@ var MultiMonthPickerDays = ({
|
|
|
1596
1633
|
})
|
|
1597
1634
|
};
|
|
1598
1635
|
const key = `${panels[0].viewMonth.toISOString()}_${direction}`;
|
|
1599
|
-
return /* @__PURE__ */
|
|
1636
|
+
return /* @__PURE__ */ import_react16.default.createElement("div", { style: { position: "relative", overflow: "hidden", minHeight: "250px" } }, /* @__PURE__ */ import_react16.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: direction }, /* @__PURE__ */ import_react16.default.createElement(
|
|
1600
1637
|
import_framer_motion13.motion.div,
|
|
1601
1638
|
{
|
|
1602
1639
|
key,
|
|
@@ -1626,7 +1663,7 @@ var MultiMonthPickerDays = ({
|
|
|
1626
1663
|
},
|
|
1627
1664
|
style: { display: "flex", gap: `${CALENDAR_PANEL_GAP}px`, top: 0, left: 0, width: "100%" }
|
|
1628
1665
|
},
|
|
1629
|
-
panels.map((panelOwnerState) => /* @__PURE__ */
|
|
1666
|
+
panels.map((panelOwnerState) => /* @__PURE__ */ import_react16.default.createElement(
|
|
1630
1667
|
"div",
|
|
1631
1668
|
{
|
|
1632
1669
|
key: panelOwnerState.viewMonth.toISOString(),
|
|
@@ -1638,7 +1675,7 @@ var MultiMonthPickerDays = ({
|
|
|
1638
1675
|
boxSizing: "border-box"
|
|
1639
1676
|
}
|
|
1640
1677
|
},
|
|
1641
|
-
/* @__PURE__ */
|
|
1678
|
+
/* @__PURE__ */ import_react16.default.createElement(PlainPickerDays, { ownerState: panelOwnerState })
|
|
1642
1679
|
))
|
|
1643
1680
|
)));
|
|
1644
1681
|
};
|
|
@@ -1655,7 +1692,7 @@ var CalendarPanel = ({
|
|
|
1655
1692
|
const showPrev = panelIndex === 0;
|
|
1656
1693
|
const showNext = panelIndex === totalPanels - 1;
|
|
1657
1694
|
const title = ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default");
|
|
1658
|
-
return /* @__PURE__ */
|
|
1695
|
+
return /* @__PURE__ */ import_react16.default.createElement("div", { style: { flex: 1, maxWidth: `${CALENDAR_PANEL_WIDTH}px` } }, /* @__PURE__ */ import_react16.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react16.default.createElement(
|
|
1659
1696
|
IconButton_default,
|
|
1660
1697
|
{
|
|
1661
1698
|
size: "sm",
|
|
@@ -1663,8 +1700,8 @@ var CalendarPanel = ({
|
|
|
1663
1700
|
"aria-label": `Previous ${ownerState.view === "day" ? "Month" : "Year"}`,
|
|
1664
1701
|
style: { visibility: showPrev ? "visible" : "hidden" }
|
|
1665
1702
|
},
|
|
1666
|
-
/* @__PURE__ */
|
|
1667
|
-
), /* @__PURE__ */
|
|
1703
|
+
/* @__PURE__ */ import_react16.default.createElement(import_ChevronLeft.default, null)
|
|
1704
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
1668
1705
|
Tooltip_default,
|
|
1669
1706
|
{
|
|
1670
1707
|
title: monthViewHintMessage,
|
|
@@ -1676,7 +1713,7 @@ var CalendarPanel = ({
|
|
|
1676
1713
|
disableTouchListener: true,
|
|
1677
1714
|
variant: "solid"
|
|
1678
1715
|
},
|
|
1679
|
-
/* @__PURE__ */
|
|
1716
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
1680
1717
|
CalendarSwitchViewButton,
|
|
1681
1718
|
{
|
|
1682
1719
|
ownerState,
|
|
@@ -1687,7 +1724,7 @@ var CalendarPanel = ({
|
|
|
1687
1724
|
},
|
|
1688
1725
|
title
|
|
1689
1726
|
)
|
|
1690
|
-
), /* @__PURE__ */
|
|
1727
|
+
), /* @__PURE__ */ import_react16.default.createElement(
|
|
1691
1728
|
IconButton_default,
|
|
1692
1729
|
{
|
|
1693
1730
|
size: "sm",
|
|
@@ -1695,10 +1732,10 @@ var CalendarPanel = ({
|
|
|
1695
1732
|
"aria-label": `Next ${ownerState.view === "day" ? "Month" : "Year"}`,
|
|
1696
1733
|
style: { visibility: showNext ? "visible" : "hidden" }
|
|
1697
1734
|
},
|
|
1698
|
-
/* @__PURE__ */
|
|
1735
|
+
/* @__PURE__ */ import_react16.default.createElement(import_ChevronRight.default, null)
|
|
1699
1736
|
)));
|
|
1700
1737
|
};
|
|
1701
|
-
var Calendar = (0,
|
|
1738
|
+
var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
|
|
1702
1739
|
const [props, ownerState] = useCalendarProps(inProps);
|
|
1703
1740
|
const {
|
|
1704
1741
|
value,
|
|
@@ -1718,38 +1755,38 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1718
1755
|
...others
|
|
1719
1756
|
} = props;
|
|
1720
1757
|
const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
|
|
1721
|
-
const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0,
|
|
1722
|
-
const monthNavClickTimestampsRef = (0,
|
|
1723
|
-
const monthViewAssistHintShownInSessionRef = (0,
|
|
1724
|
-
const monthViewAssistHintTimeoutRef = (0,
|
|
1725
|
-
const [hoverDay, setHoverDay] = (0,
|
|
1726
|
-
const [hoverMonth, setHoverMonth] = (0,
|
|
1758
|
+
const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react16.useState)(false);
|
|
1759
|
+
const monthNavClickTimestampsRef = (0, import_react16.useRef)([]);
|
|
1760
|
+
const monthViewAssistHintShownInSessionRef = (0, import_react16.useRef)(false);
|
|
1761
|
+
const monthViewAssistHintTimeoutRef = (0, import_react16.useRef)(null);
|
|
1762
|
+
const [hoverDay, setHoverDay] = (0, import_react16.useState)(null);
|
|
1763
|
+
const [hoverMonth, setHoverMonth] = (0, import_react16.useState)(null);
|
|
1727
1764
|
const resolvedNumberOfMonths = numberOfMonths ?? 1;
|
|
1728
1765
|
const hasEndDate = Boolean(value?.[1]);
|
|
1729
1766
|
const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
|
|
1730
1767
|
const isHintEligible = Boolean(view === "day" && (!rangeSelection || isRangeHintEligible));
|
|
1731
1768
|
const monthViewHintMessage = MONTH_VIEW_HINT_MESSAGE;
|
|
1732
|
-
(0,
|
|
1769
|
+
(0, import_react16.useEffect)(() => {
|
|
1733
1770
|
if (!isHintEligible) {
|
|
1734
1771
|
monthNavClickTimestampsRef.current = [];
|
|
1735
1772
|
setIsMonthViewAssistHintOpen(false);
|
|
1736
1773
|
}
|
|
1737
1774
|
}, [isHintEligible]);
|
|
1738
|
-
(0,
|
|
1775
|
+
(0, import_react16.useEffect)(() => {
|
|
1739
1776
|
return () => {
|
|
1740
1777
|
if (monthViewAssistHintTimeoutRef.current) {
|
|
1741
1778
|
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1742
1779
|
}
|
|
1743
1780
|
};
|
|
1744
1781
|
}, []);
|
|
1745
|
-
const closeMonthViewAssistHint = (0,
|
|
1782
|
+
const closeMonthViewAssistHint = (0, import_react16.useCallback)(() => {
|
|
1746
1783
|
if (monthViewAssistHintTimeoutRef.current) {
|
|
1747
1784
|
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1748
1785
|
monthViewAssistHintTimeoutRef.current = null;
|
|
1749
1786
|
}
|
|
1750
1787
|
setIsMonthViewAssistHintOpen(false);
|
|
1751
1788
|
}, []);
|
|
1752
|
-
const showMonthViewAssistHint = (0,
|
|
1789
|
+
const showMonthViewAssistHint = (0, import_react16.useCallback)(() => {
|
|
1753
1790
|
const now = Date.now();
|
|
1754
1791
|
if (monthViewAssistHintShownInSessionRef.current) return;
|
|
1755
1792
|
if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
|
|
@@ -1764,7 +1801,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1764
1801
|
monthViewAssistHintTimeoutRef.current = null;
|
|
1765
1802
|
}, MONTH_VIEW_HINT_DURATION_MS);
|
|
1766
1803
|
}, []);
|
|
1767
|
-
const trackFastMonthNavigation = (0,
|
|
1804
|
+
const trackFastMonthNavigation = (0, import_react16.useCallback)(() => {
|
|
1768
1805
|
if (!isHintEligible) return;
|
|
1769
1806
|
const now = Date.now();
|
|
1770
1807
|
monthNavClickTimestampsRef.current = [
|
|
@@ -1775,15 +1812,15 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1775
1812
|
showMonthViewAssistHint();
|
|
1776
1813
|
}
|
|
1777
1814
|
}, [isHintEligible, showMonthViewAssistHint]);
|
|
1778
|
-
const handlePrevClick = (0,
|
|
1815
|
+
const handlePrevClick = (0, import_react16.useCallback)(() => {
|
|
1779
1816
|
onPrev();
|
|
1780
1817
|
trackFastMonthNavigation();
|
|
1781
1818
|
}, [onPrev, trackFastMonthNavigation]);
|
|
1782
|
-
const handleNextClick = (0,
|
|
1819
|
+
const handleNextClick = (0, import_react16.useCallback)(() => {
|
|
1783
1820
|
onNext();
|
|
1784
1821
|
trackFastMonthNavigation();
|
|
1785
1822
|
}, [onNext, trackFastMonthNavigation]);
|
|
1786
|
-
const handleSwitchViewClick = (0,
|
|
1823
|
+
const handleSwitchViewClick = (0, import_react16.useCallback)(() => {
|
|
1787
1824
|
closeMonthViewAssistHint();
|
|
1788
1825
|
onViewChange?.();
|
|
1789
1826
|
}, [closeMonthViewAssistHint, onViewChange]);
|
|
@@ -1803,9 +1840,9 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1803
1840
|
onHoverMonthChange: setHoverMonth
|
|
1804
1841
|
};
|
|
1805
1842
|
});
|
|
1806
|
-
return /* @__PURE__ */
|
|
1843
|
+
return /* @__PURE__ */ import_react16.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
|
|
1807
1844
|
// Month view: single header + single month grid (consistent with single-month path)
|
|
1808
|
-
/* @__PURE__ */
|
|
1845
|
+
/* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": "Previous Year" }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react16.default.createElement(
|
|
1809
1846
|
Tooltip_default,
|
|
1810
1847
|
{
|
|
1811
1848
|
title: monthViewHintMessage,
|
|
@@ -1817,7 +1854,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1817
1854
|
disableTouchListener: true,
|
|
1818
1855
|
variant: "solid"
|
|
1819
1856
|
},
|
|
1820
|
-
/* @__PURE__ */
|
|
1857
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
1821
1858
|
CalendarSwitchViewButton,
|
|
1822
1859
|
{
|
|
1823
1860
|
ownerState,
|
|
@@ -1828,8 +1865,8 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1828
1865
|
},
|
|
1829
1866
|
calendarTitle
|
|
1830
1867
|
)
|
|
1831
|
-
), /* @__PURE__ */
|
|
1832
|
-
) : /* @__PURE__ */
|
|
1868
|
+
), /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": "Next Year" }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronRight.default, null))), /* @__PURE__ */ import_react16.default.createElement(PickerMonths, { ownerState }))
|
|
1869
|
+
) : /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(CalendarMultiContainer, null, panels.map((panelOwnerState, i) => /* @__PURE__ */ import_react16.default.createElement(
|
|
1833
1870
|
CalendarPanel,
|
|
1834
1871
|
{
|
|
1835
1872
|
key: panelOwnerState.viewMonth.toISOString(),
|
|
@@ -1842,7 +1879,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1842
1879
|
isMonthViewAssistHintOpen,
|
|
1843
1880
|
monthViewHintMessage
|
|
1844
1881
|
}
|
|
1845
|
-
))), /* @__PURE__ */
|
|
1882
|
+
))), /* @__PURE__ */ import_react16.default.createElement(
|
|
1846
1883
|
MultiMonthPickerDays,
|
|
1847
1884
|
{
|
|
1848
1885
|
panels,
|
|
@@ -1851,7 +1888,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1851
1888
|
}
|
|
1852
1889
|
)));
|
|
1853
1890
|
}
|
|
1854
|
-
return /* @__PURE__ */
|
|
1891
|
+
return /* @__PURE__ */ import_react16.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, /* @__PURE__ */ import_react16.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react16.default.createElement(
|
|
1855
1892
|
Tooltip_default,
|
|
1856
1893
|
{
|
|
1857
1894
|
title: monthViewHintMessage,
|
|
@@ -1863,7 +1900,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1863
1900
|
disableTouchListener: true,
|
|
1864
1901
|
variant: "solid"
|
|
1865
1902
|
},
|
|
1866
|
-
/* @__PURE__ */
|
|
1903
|
+
/* @__PURE__ */ import_react16.default.createElement(
|
|
1867
1904
|
CalendarSwitchViewButton,
|
|
1868
1905
|
{
|
|
1869
1906
|
ownerState,
|
|
@@ -1874,7 +1911,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
|
|
|
1874
1911
|
},
|
|
1875
1912
|
calendarTitle
|
|
1876
1913
|
)
|
|
1877
|
-
), /* @__PURE__ */
|
|
1914
|
+
), /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronRight.default, null))), view === "day" && /* @__PURE__ */ import_react16.default.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ import_react16.default.createElement(PickerMonths, { ownerState }));
|
|
1878
1915
|
});
|
|
1879
1916
|
Calendar.displayName = "Calendar";
|
|
1880
1917
|
|
|
@@ -1901,12 +1938,12 @@ var CardOverflow = MotionCardOverflow;
|
|
|
1901
1938
|
CardOverflow.displayName = "CardOverflow";
|
|
1902
1939
|
|
|
1903
1940
|
// src/components/Checkbox/Checkbox.tsx
|
|
1904
|
-
var
|
|
1941
|
+
var import_react17 = __toESM(require("react"));
|
|
1905
1942
|
var import_joy22 = require("@mui/joy");
|
|
1906
1943
|
var import_framer_motion15 = require("framer-motion");
|
|
1907
1944
|
var MotionCheckbox = (0, import_framer_motion15.motion)(import_joy22.Checkbox);
|
|
1908
1945
|
var Checkbox = (props) => {
|
|
1909
|
-
return /* @__PURE__ */
|
|
1946
|
+
return /* @__PURE__ */ import_react17.default.createElement(MotionCheckbox, { ...props });
|
|
1910
1947
|
};
|
|
1911
1948
|
Checkbox.displayName = "Checkbox";
|
|
1912
1949
|
|
|
@@ -1915,7 +1952,7 @@ var Checkbox_default = Checkbox;
|
|
|
1915
1952
|
|
|
1916
1953
|
// src/components/Container/Container.tsx
|
|
1917
1954
|
var import_joy23 = require("@mui/joy");
|
|
1918
|
-
var
|
|
1955
|
+
var import_react18 = __toESM(require("react"));
|
|
1919
1956
|
var ContainerRoot = (0, import_joy23.styled)("div", {
|
|
1920
1957
|
name: "Container",
|
|
1921
1958
|
slot: "root",
|
|
@@ -1941,24 +1978,24 @@ var ContainerRoot = (0, import_joy23.styled)("div", {
|
|
|
1941
1978
|
paddingRight: theme.breakpoints.values[overrideBreakpoint] >= theme.breakpoints.values.lg ? theme.spacing(8) : theme.spacing(4)
|
|
1942
1979
|
} : null
|
|
1943
1980
|
]);
|
|
1944
|
-
var Container = (0,
|
|
1945
|
-
return /* @__PURE__ */
|
|
1981
|
+
var Container = (0, import_react18.forwardRef)(function Container2(props, ref) {
|
|
1982
|
+
return /* @__PURE__ */ import_react18.default.createElement(ContainerRoot, { ref, ...props });
|
|
1946
1983
|
});
|
|
1947
1984
|
Container.displayName = "Container";
|
|
1948
1985
|
|
|
1949
1986
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
1950
|
-
var
|
|
1987
|
+
var import_react20 = __toESM(require("react"));
|
|
1951
1988
|
var import_react_number_format = require("react-number-format");
|
|
1952
1989
|
|
|
1953
1990
|
// src/components/Input/Input.tsx
|
|
1954
|
-
var
|
|
1991
|
+
var import_react19 = __toESM(require("react"));
|
|
1955
1992
|
var import_joy24 = require("@mui/joy");
|
|
1956
1993
|
var import_framer_motion16 = require("framer-motion");
|
|
1957
1994
|
var import_Close2 = __toESM(require("@mui/icons-material/Close"));
|
|
1958
1995
|
var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
|
|
1959
1996
|
var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
|
|
1960
1997
|
var MotionInput = (0, import_framer_motion16.motion)(import_joy24.Input);
|
|
1961
|
-
var Input =
|
|
1998
|
+
var Input = import_react19.default.forwardRef((props, ref) => {
|
|
1962
1999
|
const {
|
|
1963
2000
|
label,
|
|
1964
2001
|
helperText,
|
|
@@ -1985,11 +2022,11 @@ var Input = import_react18.default.forwardRef((props, ref) => {
|
|
|
1985
2022
|
if (type === "password" && innerProps.endDecorator) {
|
|
1986
2023
|
console.warn('Input: endDecorator is not supported when type="password"');
|
|
1987
2024
|
}
|
|
1988
|
-
const [passwordVisible, setPasswordVisible] = (0,
|
|
2025
|
+
const [passwordVisible, setPasswordVisible] = (0, import_react19.useState)(false);
|
|
1989
2026
|
const [value, setValue] = useControlledState(
|
|
1990
2027
|
valueProp,
|
|
1991
2028
|
defaultValueProp ?? null,
|
|
1992
|
-
(0,
|
|
2029
|
+
(0, import_react19.useCallback)(
|
|
1993
2030
|
(value2) => {
|
|
1994
2031
|
onChange?.({
|
|
1995
2032
|
/**
|
|
@@ -2016,7 +2053,7 @@ var Input = import_react18.default.forwardRef((props, ref) => {
|
|
|
2016
2053
|
const actualType = type === "password" && passwordVisible ? "text" : type;
|
|
2017
2054
|
const isPasswordType = type === "password";
|
|
2018
2055
|
const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
|
|
2019
|
-
const input = /* @__PURE__ */
|
|
2056
|
+
const input = /* @__PURE__ */ import_react19.default.createElement(
|
|
2020
2057
|
MotionInput,
|
|
2021
2058
|
{
|
|
2022
2059
|
value: displayValue ?? "",
|
|
@@ -2031,7 +2068,7 @@ var Input = import_react18.default.forwardRef((props, ref) => {
|
|
|
2031
2068
|
...innerProps.slotProps
|
|
2032
2069
|
},
|
|
2033
2070
|
...innerProps,
|
|
2034
|
-
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */
|
|
2071
|
+
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react19.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react19.default.createElement(
|
|
2035
2072
|
IconButton_default,
|
|
2036
2073
|
{
|
|
2037
2074
|
onMouseDown: (e) => e.preventDefault(),
|
|
@@ -2039,19 +2076,19 @@ var Input = import_react18.default.forwardRef((props, ref) => {
|
|
|
2039
2076
|
disabled,
|
|
2040
2077
|
"aria-label": passwordVisible ? "Hide password" : "Show password"
|
|
2041
2078
|
},
|
|
2042
|
-
passwordVisible ? /* @__PURE__ */
|
|
2043
|
-
)) : null : enableClearable ? /* @__PURE__ */
|
|
2079
|
+
passwordVisible ? /* @__PURE__ */ import_react19.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react19.default.createElement(import_Visibility.default, null)
|
|
2080
|
+
)) : null : enableClearable ? /* @__PURE__ */ import_react19.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, displayValue && /* @__PURE__ */ import_react19.default.createElement(
|
|
2044
2081
|
IconButton_default,
|
|
2045
2082
|
{
|
|
2046
2083
|
onMouseDown: (e) => e.preventDefault(),
|
|
2047
2084
|
onClick: handleClear,
|
|
2048
2085
|
"aria-label": "Clear"
|
|
2049
2086
|
},
|
|
2050
|
-
/* @__PURE__ */
|
|
2087
|
+
/* @__PURE__ */ import_react19.default.createElement(import_Close2.default, null)
|
|
2051
2088
|
)) : innerProps.endDecorator
|
|
2052
2089
|
}
|
|
2053
2090
|
);
|
|
2054
|
-
return /* @__PURE__ */
|
|
2091
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
2055
2092
|
FormControl_default,
|
|
2056
2093
|
{
|
|
2057
2094
|
required,
|
|
@@ -2062,9 +2099,9 @@ var Input = import_react18.default.forwardRef((props, ref) => {
|
|
|
2062
2099
|
sx,
|
|
2063
2100
|
className
|
|
2064
2101
|
},
|
|
2065
|
-
label && /* @__PURE__ */
|
|
2102
|
+
label && /* @__PURE__ */ import_react19.default.createElement(FormLabel_default, null, label),
|
|
2066
2103
|
input,
|
|
2067
|
-
helperText && /* @__PURE__ */
|
|
2104
|
+
helperText && /* @__PURE__ */ import_react19.default.createElement(FormHelperText_default, null, helperText)
|
|
2068
2105
|
);
|
|
2069
2106
|
});
|
|
2070
2107
|
Input.displayName = "Input";
|
|
@@ -2236,9 +2273,9 @@ var useCurrencySetting = (props) => {
|
|
|
2236
2273
|
};
|
|
2237
2274
|
|
|
2238
2275
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
2239
|
-
var TextMaskAdapter =
|
|
2276
|
+
var TextMaskAdapter = import_react20.default.forwardRef(function TextMaskAdapter2(props, ref) {
|
|
2240
2277
|
const { onChange, ...innerProps } = props;
|
|
2241
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ import_react20.default.createElement(
|
|
2242
2279
|
import_react_number_format.NumericFormat,
|
|
2243
2280
|
{
|
|
2244
2281
|
...innerProps,
|
|
@@ -2258,7 +2295,7 @@ var CurrencyInputRoot = (0, import_joy25.styled)(Input_default, {
|
|
|
2258
2295
|
slot: "root",
|
|
2259
2296
|
overridesResolver: (props, styles) => styles.root
|
|
2260
2297
|
})({});
|
|
2261
|
-
var CurrencyInput =
|
|
2298
|
+
var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(inProps, ref) {
|
|
2262
2299
|
const props = (0, import_joy25.useThemeProps)({ props: inProps, name: "CurrencyInput" });
|
|
2263
2300
|
const {
|
|
2264
2301
|
currency = "USD",
|
|
@@ -2279,22 +2316,22 @@ var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(in
|
|
|
2279
2316
|
const [_value, setValue] = useControlledState(
|
|
2280
2317
|
props.value,
|
|
2281
2318
|
props.defaultValue ?? null,
|
|
2282
|
-
(0,
|
|
2319
|
+
(0, import_react20.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
2283
2320
|
);
|
|
2284
|
-
const value = (0,
|
|
2321
|
+
const value = (0, import_react20.useMemo)(() => {
|
|
2285
2322
|
if (_value && useMinorUnit) {
|
|
2286
2323
|
return _value / Math.pow(10, decimalScale);
|
|
2287
2324
|
}
|
|
2288
2325
|
return _value;
|
|
2289
2326
|
}, [_value, useMinorUnit, decimalScale]);
|
|
2290
|
-
const max = (0,
|
|
2327
|
+
const max = (0, import_react20.useMemo)(() => {
|
|
2291
2328
|
if (props.max && useMinorUnit) {
|
|
2292
2329
|
return props.max / Math.pow(10, decimalScale);
|
|
2293
2330
|
}
|
|
2294
2331
|
return props.max;
|
|
2295
2332
|
}, [props.max, useMinorUnit, decimalScale]);
|
|
2296
|
-
const isOverLimit = (0,
|
|
2297
|
-
const handleChange = (0,
|
|
2333
|
+
const isOverLimit = (0, import_react20.useMemo)(() => max != null && value != null && value > max, [max, value]);
|
|
2334
|
+
const handleChange = (0, import_react20.useCallback)(
|
|
2298
2335
|
(event) => {
|
|
2299
2336
|
if (event.target.value === "") {
|
|
2300
2337
|
setValue(null);
|
|
@@ -2305,7 +2342,7 @@ var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(in
|
|
|
2305
2342
|
},
|
|
2306
2343
|
[decimalSeparator, useMinorUnit, setValue]
|
|
2307
2344
|
);
|
|
2308
|
-
return /* @__PURE__ */
|
|
2345
|
+
return /* @__PURE__ */ import_react20.default.createElement(
|
|
2309
2346
|
CurrencyInputRoot,
|
|
2310
2347
|
{
|
|
2311
2348
|
...innerProps,
|
|
@@ -2342,7 +2379,7 @@ var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(in
|
|
|
2342
2379
|
var CurrencyInput_default = CurrencyInput;
|
|
2343
2380
|
|
|
2344
2381
|
// src/components/DataTable/DataTable.tsx
|
|
2345
|
-
var
|
|
2382
|
+
var import_react30 = __toESM(require("react"));
|
|
2346
2383
|
var import_react_virtual2 = require("@tanstack/react-virtual");
|
|
2347
2384
|
|
|
2348
2385
|
// src/libs/text-measurer.ts
|
|
@@ -2570,9 +2607,12 @@ function computeAutoFitWidth(params) {
|
|
|
2570
2607
|
if (!isNaN(maxPx) && maxPx > 0) finalWidth = Math.min(finalWidth, maxPx);
|
|
2571
2608
|
return finalWidth;
|
|
2572
2609
|
}
|
|
2610
|
+
function getHeaderCellId(tableId, columnId) {
|
|
2611
|
+
return `${tableId}_header_${columnId}`.trim();
|
|
2612
|
+
}
|
|
2573
2613
|
|
|
2574
2614
|
// src/components/DataTable/styled.tsx
|
|
2575
|
-
var
|
|
2615
|
+
var import_react21 = __toESM(require("react"));
|
|
2576
2616
|
var import_joy26 = require("@mui/joy");
|
|
2577
2617
|
var import_framer_motion17 = require("framer-motion");
|
|
2578
2618
|
var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
|
|
@@ -2678,9 +2718,9 @@ var StyledTd = (0, import_joy26.styled)("td")(({ theme }) => ({
|
|
|
2678
2718
|
}
|
|
2679
2719
|
}));
|
|
2680
2720
|
var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
|
|
2681
|
-
var DefaultLoadingOverlay = () => /* @__PURE__ */
|
|
2682
|
-
var DefaultNoRowsOverlay = () => /* @__PURE__ */
|
|
2683
|
-
var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */
|
|
2721
|
+
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react21.default.createElement(import_joy26.LinearProgress, { value: 8, variant: "plain" });
|
|
2722
|
+
var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react21.default.createElement(import_joy26.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
|
|
2723
|
+
var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react21.default.createElement(
|
|
2684
2724
|
Box_default,
|
|
2685
2725
|
{
|
|
2686
2726
|
sx: {
|
|
@@ -2757,12 +2797,12 @@ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PU
|
|
|
2757
2797
|
);
|
|
2758
2798
|
|
|
2759
2799
|
// src/components/DataTable/components.tsx
|
|
2760
|
-
var
|
|
2800
|
+
var import_react26 = __toESM(require("react"));
|
|
2761
2801
|
var import_joy33 = require("@mui/joy");
|
|
2762
2802
|
var import_framer_motion21 = require("framer-motion");
|
|
2763
2803
|
|
|
2764
2804
|
// src/components/DatePicker/DatePicker.tsx
|
|
2765
|
-
var
|
|
2805
|
+
var import_react22 = __toESM(require("react"));
|
|
2766
2806
|
var import_react_imask = require("react-imask");
|
|
2767
2807
|
var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
2768
2808
|
var import_joy29 = require("@mui/joy");
|
|
@@ -2915,9 +2955,9 @@ function parseDate(dateString, format) {
|
|
|
2915
2955
|
var formatToPattern = (format) => {
|
|
2916
2956
|
return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
2917
2957
|
};
|
|
2918
|
-
var TextMaskAdapter3 =
|
|
2958
|
+
var TextMaskAdapter3 = import_react22.default.forwardRef(function TextMaskAdapter4(props, ref) {
|
|
2919
2959
|
const { onChange, format, ...other } = props;
|
|
2920
|
-
return /* @__PURE__ */
|
|
2960
|
+
return /* @__PURE__ */ import_react22.default.createElement(
|
|
2921
2961
|
import_react_imask.IMaskInput,
|
|
2922
2962
|
{
|
|
2923
2963
|
...other,
|
|
@@ -2952,7 +2992,7 @@ var TextMaskAdapter3 = import_react21.default.forwardRef(function TextMaskAdapte
|
|
|
2952
2992
|
}
|
|
2953
2993
|
);
|
|
2954
2994
|
});
|
|
2955
|
-
var DatePicker = (0,
|
|
2995
|
+
var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
|
|
2956
2996
|
const props = (0, import_joy29.useThemeProps)({ props: inProps, name: "DatePicker" });
|
|
2957
2997
|
const {
|
|
2958
2998
|
onChange,
|
|
@@ -2979,29 +3019,29 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
2979
3019
|
presets,
|
|
2980
3020
|
...innerProps
|
|
2981
3021
|
} = props;
|
|
2982
|
-
const innerRef = (0,
|
|
2983
|
-
const buttonRef = (0,
|
|
3022
|
+
const innerRef = (0, import_react22.useRef)(null);
|
|
3023
|
+
const buttonRef = (0, import_react22.useRef)(null);
|
|
2984
3024
|
const [rawValue, setValue] = useControlledState(
|
|
2985
3025
|
props.value,
|
|
2986
3026
|
props.defaultValue ?? null,
|
|
2987
|
-
(0,
|
|
3027
|
+
(0, import_react22.useCallback)(
|
|
2988
3028
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
2989
3029
|
[props.name, onChange]
|
|
2990
3030
|
)
|
|
2991
3031
|
);
|
|
2992
3032
|
const value = rawValue ?? "";
|
|
2993
3033
|
const isAlphabeticDisplay = hasAlphabeticMonth(displayFormat);
|
|
2994
|
-
const [displayValue, setDisplayValue] = (0,
|
|
3034
|
+
const [displayValue, setDisplayValue] = (0, import_react22.useState)(
|
|
2995
3035
|
() => value ? formatValueString(parseDate(value, format), displayFormat, locale) : ""
|
|
2996
3036
|
);
|
|
2997
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
3037
|
+
const [anchorEl, setAnchorEl] = (0, import_react22.useState)(null);
|
|
2998
3038
|
const open = Boolean(anchorEl);
|
|
2999
|
-
(0,
|
|
3039
|
+
(0, import_react22.useEffect)(() => {
|
|
3000
3040
|
if (!anchorEl) {
|
|
3001
3041
|
innerRef.current?.blur();
|
|
3002
3042
|
}
|
|
3003
3043
|
}, [anchorEl, innerRef]);
|
|
3004
|
-
(0,
|
|
3044
|
+
(0, import_react22.useEffect)(() => {
|
|
3005
3045
|
if (value === "") {
|
|
3006
3046
|
setDisplayValue("");
|
|
3007
3047
|
return;
|
|
@@ -3011,8 +3051,8 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3011
3051
|
setDisplayValue(formattedValue);
|
|
3012
3052
|
}
|
|
3013
3053
|
}, [displayFormat, displayValue, format, locale, value]);
|
|
3014
|
-
(0,
|
|
3015
|
-
const handleChange = (0,
|
|
3054
|
+
(0, import_react22.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
3055
|
+
const handleChange = (0, import_react22.useCallback)(
|
|
3016
3056
|
(event) => {
|
|
3017
3057
|
const value2 = event.target.value;
|
|
3018
3058
|
setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat, locale) : value2);
|
|
@@ -3020,7 +3060,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3020
3060
|
},
|
|
3021
3061
|
[displayFormat, format, locale, setValue]
|
|
3022
3062
|
);
|
|
3023
|
-
const handleDisplayInputChange = (0,
|
|
3063
|
+
const handleDisplayInputChange = (0, import_react22.useCallback)(
|
|
3024
3064
|
(event) => {
|
|
3025
3065
|
if (event.target.value === "") {
|
|
3026
3066
|
handleChange({
|
|
@@ -3045,7 +3085,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3045
3085
|
},
|
|
3046
3086
|
[displayFormat, format, handleChange, props.name]
|
|
3047
3087
|
);
|
|
3048
|
-
const handleCalendarToggle = (0,
|
|
3088
|
+
const handleCalendarToggle = (0, import_react22.useCallback)(
|
|
3049
3089
|
(event) => {
|
|
3050
3090
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
3051
3091
|
setTimeout(() => {
|
|
@@ -3054,7 +3094,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3054
3094
|
},
|
|
3055
3095
|
[anchorEl, setAnchorEl, innerRef]
|
|
3056
3096
|
);
|
|
3057
|
-
const handleInputMouseDown = (0,
|
|
3097
|
+
const handleInputMouseDown = (0, import_react22.useCallback)(
|
|
3058
3098
|
(event) => {
|
|
3059
3099
|
if (inputReadOnly || isAlphabeticDisplay) {
|
|
3060
3100
|
event.preventDefault();
|
|
@@ -3063,7 +3103,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3063
3103
|
},
|
|
3064
3104
|
[inputReadOnly, isAlphabeticDisplay, buttonRef]
|
|
3065
3105
|
);
|
|
3066
|
-
const handleInputClick = (0,
|
|
3106
|
+
const handleInputClick = (0, import_react22.useCallback)(
|
|
3067
3107
|
(event) => {
|
|
3068
3108
|
if (inputReadOnly && !readOnly) {
|
|
3069
3109
|
handleCalendarToggle(event);
|
|
@@ -3071,7 +3111,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3071
3111
|
},
|
|
3072
3112
|
[inputReadOnly, readOnly, handleCalendarToggle]
|
|
3073
3113
|
);
|
|
3074
|
-
const handlePresetClick = (0,
|
|
3114
|
+
const handlePresetClick = (0, import_react22.useCallback)(
|
|
3075
3115
|
(presetValue) => {
|
|
3076
3116
|
handleChange({
|
|
3077
3117
|
target: {
|
|
@@ -3083,7 +3123,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3083
3123
|
},
|
|
3084
3124
|
[handleChange, props.name]
|
|
3085
3125
|
);
|
|
3086
|
-
const isPresetDisabled = (0,
|
|
3126
|
+
const isPresetDisabled = (0, import_react22.useCallback)(
|
|
3087
3127
|
(presetValue) => {
|
|
3088
3128
|
try {
|
|
3089
3129
|
const date = parseDate(presetValue, format);
|
|
@@ -3100,7 +3140,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3100
3140
|
},
|
|
3101
3141
|
[format, minDate, maxDate, disableFuture, disablePast, shouldDisableDate]
|
|
3102
3142
|
);
|
|
3103
|
-
return /* @__PURE__ */
|
|
3143
|
+
return /* @__PURE__ */ import_react22.default.createElement(DatePickerRoot, { sx, className }, /* @__PURE__ */ import_react22.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(
|
|
3104
3144
|
Input_default,
|
|
3105
3145
|
{
|
|
3106
3146
|
...innerProps,
|
|
@@ -3127,7 +3167,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3127
3167
|
}
|
|
3128
3168
|
},
|
|
3129
3169
|
sx: { width: "100%" },
|
|
3130
|
-
endDecorator: /* @__PURE__ */
|
|
3170
|
+
endDecorator: /* @__PURE__ */ import_react22.default.createElement(
|
|
3131
3171
|
CalendarButton,
|
|
3132
3172
|
{
|
|
3133
3173
|
ref: buttonRef,
|
|
@@ -3139,13 +3179,13 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3139
3179
|
"aria-expanded": open,
|
|
3140
3180
|
disabled
|
|
3141
3181
|
},
|
|
3142
|
-
/* @__PURE__ */
|
|
3182
|
+
/* @__PURE__ */ import_react22.default.createElement(import_CalendarToday.default, null)
|
|
3143
3183
|
),
|
|
3144
3184
|
label,
|
|
3145
3185
|
helperText,
|
|
3146
3186
|
readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
|
|
3147
3187
|
}
|
|
3148
|
-
), open && /* @__PURE__ */
|
|
3188
|
+
), open && /* @__PURE__ */ import_react22.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react22.default.createElement(
|
|
3149
3189
|
StyledPopper,
|
|
3150
3190
|
{
|
|
3151
3191
|
id: "date-picker-popper",
|
|
@@ -3164,7 +3204,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3164
3204
|
"aria-label": "Calendar Tooltip",
|
|
3165
3205
|
"aria-expanded": open
|
|
3166
3206
|
},
|
|
3167
|
-
/* @__PURE__ */
|
|
3207
|
+
/* @__PURE__ */ import_react22.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react22.default.createElement(CalendarSheetContent, null, /* @__PURE__ */ import_react22.default.createElement(CalendarSection, null, /* @__PURE__ */ import_react22.default.createElement(
|
|
3168
3208
|
Calendar_default,
|
|
3169
3209
|
{
|
|
3170
3210
|
value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
|
|
@@ -3184,14 +3224,14 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3184
3224
|
shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0,
|
|
3185
3225
|
locale
|
|
3186
3226
|
}
|
|
3187
|
-
), !hideClearButton && /* @__PURE__ */
|
|
3227
|
+
), !hideClearButton && /* @__PURE__ */ import_react22.default.createElement(
|
|
3188
3228
|
DialogActions_default,
|
|
3189
3229
|
{
|
|
3190
3230
|
sx: {
|
|
3191
3231
|
p: 1
|
|
3192
3232
|
}
|
|
3193
3233
|
},
|
|
3194
|
-
/* @__PURE__ */
|
|
3234
|
+
/* @__PURE__ */ import_react22.default.createElement(
|
|
3195
3235
|
Button_default,
|
|
3196
3236
|
{
|
|
3197
3237
|
size,
|
|
@@ -3209,9 +3249,9 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3209
3249
|
},
|
|
3210
3250
|
"Clear"
|
|
3211
3251
|
)
|
|
3212
|
-
)), presets && presets.length > 0 && /* @__PURE__ */
|
|
3252
|
+
)), presets && presets.length > 0 && /* @__PURE__ */ import_react22.default.createElement(PresetPanel, null, presets.map((preset) => {
|
|
3213
3253
|
const disabled2 = isPresetDisabled(preset.value);
|
|
3214
|
-
return /* @__PURE__ */
|
|
3254
|
+
return /* @__PURE__ */ import_react22.default.createElement(
|
|
3215
3255
|
PresetItem,
|
|
3216
3256
|
{
|
|
3217
3257
|
key: preset.label,
|
|
@@ -3232,11 +3272,11 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3232
3272
|
var DatePicker_default = DatePicker;
|
|
3233
3273
|
|
|
3234
3274
|
// src/components/Textarea/Textarea.tsx
|
|
3235
|
-
var
|
|
3275
|
+
var import_react23 = __toESM(require("react"));
|
|
3236
3276
|
var import_joy30 = require("@mui/joy");
|
|
3237
3277
|
var import_framer_motion19 = require("framer-motion");
|
|
3238
3278
|
var MotionTextarea = (0, import_framer_motion19.motion)(import_joy30.Textarea);
|
|
3239
|
-
var
|
|
3279
|
+
var TextareaBase = (props) => {
|
|
3240
3280
|
const {
|
|
3241
3281
|
label,
|
|
3242
3282
|
error,
|
|
@@ -3252,7 +3292,7 @@ var Textarea = (props) => {
|
|
|
3252
3292
|
className,
|
|
3253
3293
|
...innerProps
|
|
3254
3294
|
} = props;
|
|
3255
|
-
const textarea = /* @__PURE__ */
|
|
3295
|
+
const textarea = /* @__PURE__ */ import_react23.default.createElement(
|
|
3256
3296
|
MotionTextarea,
|
|
3257
3297
|
{
|
|
3258
3298
|
required,
|
|
@@ -3264,7 +3304,7 @@ var Textarea = (props) => {
|
|
|
3264
3304
|
...innerProps
|
|
3265
3305
|
}
|
|
3266
3306
|
);
|
|
3267
|
-
return /* @__PURE__ */
|
|
3307
|
+
return /* @__PURE__ */ import_react23.default.createElement(
|
|
3268
3308
|
FormControl_default,
|
|
3269
3309
|
{
|
|
3270
3310
|
required,
|
|
@@ -3275,18 +3315,22 @@ var Textarea = (props) => {
|
|
|
3275
3315
|
sx,
|
|
3276
3316
|
className
|
|
3277
3317
|
},
|
|
3278
|
-
label && /* @__PURE__ */
|
|
3318
|
+
label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, null, label),
|
|
3279
3319
|
textarea,
|
|
3280
|
-
helperText && /* @__PURE__ */
|
|
3320
|
+
helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, null, helperText)
|
|
3281
3321
|
);
|
|
3282
3322
|
};
|
|
3323
|
+
var Textarea = import_react23.default.forwardRef((props, ref) => {
|
|
3324
|
+
const textareaSlotProps = useSlotRef(props.slotProps?.textarea, ref);
|
|
3325
|
+
return /* @__PURE__ */ import_react23.default.createElement(TextareaBase, { ...props, slotProps: { ...props.slotProps, textarea: textareaSlotProps } });
|
|
3326
|
+
});
|
|
3283
3327
|
Textarea.displayName = "Textarea";
|
|
3284
3328
|
|
|
3285
3329
|
// src/components/Textarea/index.ts
|
|
3286
3330
|
var Textarea_default = Textarea;
|
|
3287
3331
|
|
|
3288
3332
|
// src/components/Select/Select.tsx
|
|
3289
|
-
var
|
|
3333
|
+
var import_react24 = __toESM(require("react"));
|
|
3290
3334
|
var import_joy31 = require("@mui/joy");
|
|
3291
3335
|
var import_framer_motion20 = require("framer-motion");
|
|
3292
3336
|
var MotionOption = (0, import_framer_motion20.motion)(import_joy31.Option);
|
|
@@ -3297,7 +3341,7 @@ var secondaryTextLevelMap2 = {
|
|
|
3297
3341
|
lg: "body-md"
|
|
3298
3342
|
};
|
|
3299
3343
|
Option.displayName = "Option";
|
|
3300
|
-
function
|
|
3344
|
+
function SelectInner(props, ref) {
|
|
3301
3345
|
const {
|
|
3302
3346
|
label,
|
|
3303
3347
|
helperText,
|
|
@@ -3323,7 +3367,7 @@ function Select(props) {
|
|
|
3323
3367
|
formHelperText: formHelperTextProps,
|
|
3324
3368
|
...joySlotProps
|
|
3325
3369
|
} = slotProps ?? {};
|
|
3326
|
-
const options = (0,
|
|
3370
|
+
const options = (0, import_react24.useMemo)(
|
|
3327
3371
|
() => props.options.map((option) => {
|
|
3328
3372
|
if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
|
|
3329
3373
|
return option;
|
|
@@ -3348,14 +3392,15 @@ function Select(props) {
|
|
|
3348
3392
|
};
|
|
3349
3393
|
onChange?.(newEvent, newValue);
|
|
3350
3394
|
};
|
|
3351
|
-
const optionMap = (0,
|
|
3395
|
+
const optionMap = (0, import_react24.useMemo)(() => {
|
|
3352
3396
|
const map = /* @__PURE__ */ new Map();
|
|
3353
3397
|
options.forEach((option) => {
|
|
3354
3398
|
map.set(option.value, option);
|
|
3355
3399
|
});
|
|
3356
3400
|
return map;
|
|
3357
3401
|
}, [options]);
|
|
3358
|
-
const
|
|
3402
|
+
const buttonSlotProps = useSlotRef(joySlotProps.button, ref);
|
|
3403
|
+
const select = /* @__PURE__ */ import_react24.default.createElement(
|
|
3359
3404
|
import_joy31.Select,
|
|
3360
3405
|
{
|
|
3361
3406
|
...innerProps,
|
|
@@ -3363,7 +3408,7 @@ function Select(props) {
|
|
|
3363
3408
|
disabled,
|
|
3364
3409
|
size,
|
|
3365
3410
|
color: error ? "danger" : color,
|
|
3366
|
-
slotProps: joySlotProps,
|
|
3411
|
+
slotProps: { ...joySlotProps, button: buttonSlotProps },
|
|
3367
3412
|
onChange: handleChange,
|
|
3368
3413
|
renderValue: (selected) => {
|
|
3369
3414
|
if (!selected) return null;
|
|
@@ -3373,9 +3418,9 @@ function Select(props) {
|
|
|
3373
3418
|
return optionMap.get(selected.value)?.label;
|
|
3374
3419
|
}
|
|
3375
3420
|
},
|
|
3376
|
-
options.map((option) => /* @__PURE__ */
|
|
3421
|
+
options.map((option) => /* @__PURE__ */ import_react24.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ import_react24.default.createElement(import_joy31.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react24.default.createElement(import_joy31.Typography, { level: "inherit" }, option.label), /* @__PURE__ */ import_react24.default.createElement(import_joy31.Typography, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
|
|
3377
3422
|
);
|
|
3378
|
-
return /* @__PURE__ */
|
|
3423
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
3379
3424
|
FormControl_default,
|
|
3380
3425
|
{
|
|
3381
3426
|
required,
|
|
@@ -3388,11 +3433,12 @@ function Select(props) {
|
|
|
3388
3433
|
className,
|
|
3389
3434
|
...formControlProps
|
|
3390
3435
|
},
|
|
3391
|
-
label && /* @__PURE__ */
|
|
3436
|
+
label && /* @__PURE__ */ import_react24.default.createElement(FormLabel_default, { ...formLabelProps }, label),
|
|
3392
3437
|
select,
|
|
3393
|
-
helperText && /* @__PURE__ */
|
|
3438
|
+
helperText && /* @__PURE__ */ import_react24.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
|
|
3394
3439
|
);
|
|
3395
3440
|
}
|
|
3441
|
+
var Select = import_react24.default.forwardRef(SelectInner);
|
|
3396
3442
|
Select.displayName = "Select";
|
|
3397
3443
|
|
|
3398
3444
|
// src/components/Select/index.ts
|
|
@@ -3402,7 +3448,7 @@ var Select_default = Select;
|
|
|
3402
3448
|
var import_joy34 = require("@mui/joy");
|
|
3403
3449
|
|
|
3404
3450
|
// src/components/InfoSign/InfoSign.tsx
|
|
3405
|
-
var
|
|
3451
|
+
var import_react25 = __toESM(require("react"));
|
|
3406
3452
|
var import_joy32 = require("@mui/joy");
|
|
3407
3453
|
var import_Info = __toESM(require("@mui/icons-material/Info"));
|
|
3408
3454
|
var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
@@ -3415,7 +3461,7 @@ var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
|
3415
3461
|
}));
|
|
3416
3462
|
function InfoSign(props) {
|
|
3417
3463
|
const { message, placement } = props;
|
|
3418
|
-
return /* @__PURE__ */
|
|
3464
|
+
return /* @__PURE__ */ import_react25.default.createElement(
|
|
3419
3465
|
Tooltip_default,
|
|
3420
3466
|
{
|
|
3421
3467
|
arrow: true,
|
|
@@ -3425,9 +3471,9 @@ function InfoSign(props) {
|
|
|
3425
3471
|
maxWidth: "320px"
|
|
3426
3472
|
}
|
|
3427
3473
|
},
|
|
3428
|
-
title: message?.split("\n").map((line, i) => /* @__PURE__ */
|
|
3474
|
+
title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react25.default.createElement("div", { key: `info-sign-${i}` }, line))
|
|
3429
3475
|
},
|
|
3430
|
-
/* @__PURE__ */
|
|
3476
|
+
/* @__PURE__ */ import_react25.default.createElement(InfoIcon, null)
|
|
3431
3477
|
);
|
|
3432
3478
|
}
|
|
3433
3479
|
|
|
@@ -3440,9 +3486,9 @@ var TextEllipsis = ({
|
|
|
3440
3486
|
lineClamp,
|
|
3441
3487
|
...rest
|
|
3442
3488
|
}) => {
|
|
3443
|
-
const textRef = (0,
|
|
3444
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
3445
|
-
(0,
|
|
3489
|
+
const textRef = (0, import_react26.useRef)(null);
|
|
3490
|
+
const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
|
|
3491
|
+
(0, import_react26.useLayoutEffect)(() => {
|
|
3446
3492
|
const element = textRef.current;
|
|
3447
3493
|
if (!element) return;
|
|
3448
3494
|
const checkTruncation = () => {
|
|
@@ -3454,21 +3500,21 @@ var TextEllipsis = ({
|
|
|
3454
3500
|
ro.observe(element);
|
|
3455
3501
|
return () => ro.disconnect();
|
|
3456
3502
|
}, [children, lineClamp]);
|
|
3457
|
-
return /* @__PURE__ */
|
|
3503
|
+
return /* @__PURE__ */ import_react26.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react26.default.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
|
|
3458
3504
|
};
|
|
3459
3505
|
var CellTextEllipsis = ({ children }) => {
|
|
3460
|
-
const textRef = (0,
|
|
3461
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
3462
|
-
(0,
|
|
3506
|
+
const textRef = (0, import_react26.useRef)(null);
|
|
3507
|
+
const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
|
|
3508
|
+
(0, import_react26.useLayoutEffect)(() => {
|
|
3463
3509
|
const element = textRef.current;
|
|
3464
3510
|
if (element) {
|
|
3465
3511
|
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
3466
3512
|
setShowTooltip(isTextTruncated);
|
|
3467
3513
|
}
|
|
3468
3514
|
}, [children]);
|
|
3469
|
-
const content = /* @__PURE__ */
|
|
3515
|
+
const content = /* @__PURE__ */ import_react26.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
3470
3516
|
if (showTooltip) {
|
|
3471
|
-
return /* @__PURE__ */
|
|
3517
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
3472
3518
|
Tooltip_default,
|
|
3473
3519
|
{
|
|
3474
3520
|
title: children,
|
|
@@ -3507,34 +3553,32 @@ var HeadCell = (props) => {
|
|
|
3507
3553
|
tableColRef,
|
|
3508
3554
|
headerClassName,
|
|
3509
3555
|
headerLineClamp,
|
|
3510
|
-
onAutoFit
|
|
3556
|
+
onAutoFit,
|
|
3557
|
+
columnId
|
|
3511
3558
|
} = props;
|
|
3512
3559
|
const theme = (0, import_joy33.useTheme)();
|
|
3513
3560
|
const ref = headerRef;
|
|
3514
3561
|
const colRef = tableColRef;
|
|
3515
|
-
const localRef = (0,
|
|
3516
|
-
(0,
|
|
3562
|
+
const localRef = (0, import_react26.useRef)(null);
|
|
3563
|
+
(0, import_react26.useLayoutEffect)(() => {
|
|
3517
3564
|
ref.current = localRef.current;
|
|
3518
3565
|
}, [ref]);
|
|
3519
|
-
const [isHovered, setIsHovered] = (0,
|
|
3566
|
+
const [isHovered, setIsHovered] = (0, import_react26.useState)(false);
|
|
3520
3567
|
const sortable = type === "actions" ? false : _sortable;
|
|
3521
|
-
const headId = (0,
|
|
3522
|
-
|
|
3523
|
-
|
|
3524
|
-
);
|
|
3525
|
-
const isResizingRef = (0, import_react25.useRef)(false);
|
|
3526
|
-
const resizer = (0, import_react25.useMemo)(
|
|
3568
|
+
const headId = (0, import_react26.useMemo)(() => getHeaderCellId(tableId, columnId ?? field), [tableId, columnId, field]);
|
|
3569
|
+
const isResizingRef = (0, import_react26.useRef)(false);
|
|
3570
|
+
const resizer = (0, import_react26.useMemo)(
|
|
3527
3571
|
() => resizable ?? true ? Resizer(
|
|
3528
3572
|
ref,
|
|
3529
3573
|
colRef,
|
|
3530
3574
|
(isResizing) => {
|
|
3531
3575
|
isResizingRef.current = isResizing;
|
|
3532
3576
|
},
|
|
3533
|
-
onAutoFit ? () => onAutoFit(field) : void 0
|
|
3577
|
+
onAutoFit ? () => onAutoFit(columnId ?? String(field)) : void 0
|
|
3534
3578
|
) : null,
|
|
3535
|
-
[resizable, ref, colRef, onAutoFit, field]
|
|
3579
|
+
[resizable, ref, colRef, onAutoFit, columnId, field]
|
|
3536
3580
|
);
|
|
3537
|
-
const style = (0,
|
|
3581
|
+
const style = (0, import_react26.useMemo)(
|
|
3538
3582
|
() => ({
|
|
3539
3583
|
width,
|
|
3540
3584
|
minWidth: minWidth ?? "50px",
|
|
@@ -3552,10 +3596,10 @@ var HeadCell = (props) => {
|
|
|
3552
3596
|
);
|
|
3553
3597
|
const textAlign = getTextAlign(props);
|
|
3554
3598
|
const initialSort = sortOrder[0];
|
|
3555
|
-
const sortIcon = (0,
|
|
3599
|
+
const sortIcon = (0, import_react26.useMemo)(() => {
|
|
3556
3600
|
const isSorted = !!sort;
|
|
3557
3601
|
const isVisible = sortable && (isSorted || isHovered);
|
|
3558
|
-
return /* @__PURE__ */
|
|
3602
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_framer_motion21.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react26.default.createElement(
|
|
3559
3603
|
MotionSortIcon,
|
|
3560
3604
|
{
|
|
3561
3605
|
key: "sort-icon",
|
|
@@ -3583,21 +3627,21 @@ var HeadCell = (props) => {
|
|
|
3583
3627
|
}
|
|
3584
3628
|
));
|
|
3585
3629
|
}, [headId, initialSort, sort, sortable, isHovered]);
|
|
3586
|
-
const infoSign = (0,
|
|
3587
|
-
() => description ? /* @__PURE__ */
|
|
3630
|
+
const infoSign = (0, import_react26.useMemo)(
|
|
3631
|
+
() => description ? /* @__PURE__ */ import_react26.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
|
|
3588
3632
|
[description]
|
|
3589
3633
|
);
|
|
3590
|
-
const params = (0,
|
|
3634
|
+
const params = (0, import_react26.useMemo)(
|
|
3591
3635
|
() => ({
|
|
3592
3636
|
field
|
|
3593
3637
|
}),
|
|
3594
3638
|
[field]
|
|
3595
3639
|
);
|
|
3596
|
-
const computedHeaderClassName = (0,
|
|
3640
|
+
const computedHeaderClassName = (0, import_react26.useMemo)(
|
|
3597
3641
|
() => (typeof headerClassName === "function" ? headerClassName(params) : headerClassName) || void 0,
|
|
3598
3642
|
[headerClassName, params]
|
|
3599
3643
|
);
|
|
3600
|
-
return /* @__PURE__ */
|
|
3644
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
3601
3645
|
StyledTh,
|
|
3602
3646
|
{
|
|
3603
3647
|
id: headId,
|
|
@@ -3606,7 +3650,7 @@ var HeadCell = (props) => {
|
|
|
3606
3650
|
ref: localRef,
|
|
3607
3651
|
key: field,
|
|
3608
3652
|
style,
|
|
3609
|
-
onClick: (0,
|
|
3653
|
+
onClick: (0, import_react26.useCallback)(
|
|
3610
3654
|
(e) => {
|
|
3611
3655
|
if (isResizingRef.current) return;
|
|
3612
3656
|
if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
|
|
@@ -3620,7 +3664,7 @@ var HeadCell = (props) => {
|
|
|
3620
3664
|
initial: "initial",
|
|
3621
3665
|
className: computedHeaderClassName
|
|
3622
3666
|
},
|
|
3623
|
-
/* @__PURE__ */
|
|
3667
|
+
/* @__PURE__ */ import_react26.default.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center", sx: { minWidth: 0 } }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ import_react26.default.createElement(TextEllipsis, { lineClamp: headerLineClamp, "data-slot": "header-text" }, headerName ?? field, editMode && required && /* @__PURE__ */ import_react26.default.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
|
|
3624
3668
|
resizer
|
|
3625
3669
|
);
|
|
3626
3670
|
};
|
|
@@ -3645,9 +3689,9 @@ var BodyCell = (props) => {
|
|
|
3645
3689
|
onCellEditStop
|
|
3646
3690
|
} = props;
|
|
3647
3691
|
const theme = (0, import_joy33.useTheme)();
|
|
3648
|
-
const [value, setValue] = (0,
|
|
3649
|
-
const cellRef = (0,
|
|
3650
|
-
const params = (0,
|
|
3692
|
+
const [value, setValue] = (0, import_react26.useState)(row[field]);
|
|
3693
|
+
const cellRef = (0, import_react26.useRef)(null);
|
|
3694
|
+
const params = (0, import_react26.useMemo)(
|
|
3651
3695
|
() => ({
|
|
3652
3696
|
row,
|
|
3653
3697
|
value,
|
|
@@ -3656,20 +3700,20 @@ var BodyCell = (props) => {
|
|
|
3656
3700
|
}),
|
|
3657
3701
|
[row, rowId, value, field]
|
|
3658
3702
|
);
|
|
3659
|
-
const editMode = (0,
|
|
3703
|
+
const editMode = (0, import_react26.useMemo)(
|
|
3660
3704
|
() => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
|
|
3661
3705
|
[props.editMode, isCellEditable, params]
|
|
3662
3706
|
);
|
|
3663
3707
|
const propsComponentProps = "componentProps" in props ? props.componentProps : null;
|
|
3664
3708
|
const hasComponentProps = "componentProps" in props;
|
|
3665
|
-
const componentProps = (0,
|
|
3709
|
+
const componentProps = (0, import_react26.useMemo)(
|
|
3666
3710
|
() => ({
|
|
3667
3711
|
...hasComponentProps && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
|
|
3668
3712
|
size: "sm"
|
|
3669
3713
|
}),
|
|
3670
3714
|
[hasComponentProps, propsComponentProps, params]
|
|
3671
3715
|
);
|
|
3672
|
-
const editModeComponentProps = (0,
|
|
3716
|
+
const editModeComponentProps = (0, import_react26.useMemo)(
|
|
3673
3717
|
() => ({
|
|
3674
3718
|
...componentProps,
|
|
3675
3719
|
onChange: (e) => {
|
|
@@ -3731,25 +3775,25 @@ var BodyCell = (props) => {
|
|
|
3731
3775
|
}),
|
|
3732
3776
|
[params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
|
|
3733
3777
|
);
|
|
3734
|
-
const MemoizedRenderEditCell = (0,
|
|
3735
|
-
const MemoizedRenderCell = (0,
|
|
3736
|
-
const EditModeComponent = (0,
|
|
3778
|
+
const MemoizedRenderEditCell = (0, import_react26.useMemo)(() => renderEditCell ? (0, import_react26.memo)(renderEditCell) : null, [renderEditCell]);
|
|
3779
|
+
const MemoizedRenderCell = (0, import_react26.useMemo)(() => renderCell ? (0, import_react26.memo)(renderCell) : null, [renderCell]);
|
|
3780
|
+
const EditModeComponent = (0, import_react26.useMemo)(() => {
|
|
3737
3781
|
if (MemoizedRenderEditCell) {
|
|
3738
|
-
return (0,
|
|
3782
|
+
return (0, import_react26.createElement)(MemoizedRenderEditCell, params);
|
|
3739
3783
|
}
|
|
3740
3784
|
return {
|
|
3741
|
-
date: /* @__PURE__ */
|
|
3742
|
-
currency: /* @__PURE__ */
|
|
3785
|
+
date: /* @__PURE__ */ import_react26.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
|
|
3786
|
+
currency: /* @__PURE__ */ import_react26.default.createElement(
|
|
3743
3787
|
CurrencyInput_default,
|
|
3744
3788
|
{
|
|
3745
3789
|
value,
|
|
3746
3790
|
...editModeComponentProps
|
|
3747
3791
|
}
|
|
3748
3792
|
),
|
|
3749
|
-
number: /* @__PURE__ */
|
|
3750
|
-
text: /* @__PURE__ */
|
|
3751
|
-
longText: /* @__PURE__ */
|
|
3752
|
-
autocomplete: /* @__PURE__ */
|
|
3793
|
+
number: /* @__PURE__ */ import_react26.default.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
|
|
3794
|
+
text: /* @__PURE__ */ import_react26.default.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
|
|
3795
|
+
longText: /* @__PURE__ */ import_react26.default.createElement(Textarea_default, { value, ...editModeComponentProps }),
|
|
3796
|
+
autocomplete: /* @__PURE__ */ import_react26.default.createElement(
|
|
3753
3797
|
Autocomplete_default,
|
|
3754
3798
|
{
|
|
3755
3799
|
value,
|
|
@@ -3757,7 +3801,7 @@ var BodyCell = (props) => {
|
|
|
3757
3801
|
...editModeComponentProps
|
|
3758
3802
|
}
|
|
3759
3803
|
),
|
|
3760
|
-
select: /* @__PURE__ */
|
|
3804
|
+
select: /* @__PURE__ */ import_react26.default.createElement(
|
|
3761
3805
|
Select_default,
|
|
3762
3806
|
{
|
|
3763
3807
|
value,
|
|
@@ -3768,13 +3812,13 @@ var BodyCell = (props) => {
|
|
|
3768
3812
|
}[type || "text"];
|
|
3769
3813
|
}, [value, editModeComponentProps, type, MemoizedRenderEditCell, params]);
|
|
3770
3814
|
const linkComponentFromProps = props.component;
|
|
3771
|
-
const ReadModeComponent = (0,
|
|
3815
|
+
const ReadModeComponent = (0, import_react26.useMemo)(() => {
|
|
3772
3816
|
if (MemoizedRenderCell) {
|
|
3773
|
-
return (0,
|
|
3817
|
+
return (0, import_react26.createElement)(MemoizedRenderCell, params);
|
|
3774
3818
|
}
|
|
3775
3819
|
const innerText = value;
|
|
3776
3820
|
const typedComponent = {
|
|
3777
|
-
link:
|
|
3821
|
+
link: import_react26.default.createElement(linkComponentFromProps || import_joy34.Link, {
|
|
3778
3822
|
children: innerText,
|
|
3779
3823
|
...componentProps
|
|
3780
3824
|
})
|
|
@@ -3782,27 +3826,27 @@ var BodyCell = (props) => {
|
|
|
3782
3826
|
return typedComponent || innerText;
|
|
3783
3827
|
}, [value, MemoizedRenderCell, params, type, componentProps, linkComponentFromProps]);
|
|
3784
3828
|
const getActions = props.getActions;
|
|
3785
|
-
const CellComponent = (0,
|
|
3829
|
+
const CellComponent = (0, import_react26.useMemo)(() => {
|
|
3786
3830
|
if (type === "actions") {
|
|
3787
|
-
return /* @__PURE__ */
|
|
3831
|
+
return /* @__PURE__ */ import_react26.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
|
|
3788
3832
|
}
|
|
3789
3833
|
return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
|
|
3790
3834
|
}, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
|
|
3791
|
-
const showTooltip = (0,
|
|
3835
|
+
const showTooltip = (0, import_react26.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
|
|
3792
3836
|
const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
|
|
3793
|
-
const computedCellClassName = (0,
|
|
3837
|
+
const computedCellClassName = (0, import_react26.useMemo)(
|
|
3794
3838
|
() => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
|
|
3795
3839
|
[cellClassName, params]
|
|
3796
3840
|
);
|
|
3797
|
-
(0,
|
|
3841
|
+
(0, import_react26.useEffect)(() => {
|
|
3798
3842
|
setValue(row[field]);
|
|
3799
3843
|
}, [row, field]);
|
|
3800
|
-
return /* @__PURE__ */
|
|
3844
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
3801
3845
|
StyledTd,
|
|
3802
3846
|
{
|
|
3803
3847
|
ref: cellRef,
|
|
3804
3848
|
key: field,
|
|
3805
|
-
headers:
|
|
3849
|
+
headers: getHeaderCellId(tableId, props.columnId ?? field),
|
|
3806
3850
|
sx: {
|
|
3807
3851
|
textAlign: getTextAlign({ type }),
|
|
3808
3852
|
verticalAlign: editMode ? "top" : "middle",
|
|
@@ -3814,16 +3858,16 @@ var BodyCell = (props) => {
|
|
|
3814
3858
|
},
|
|
3815
3859
|
className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
|
|
3816
3860
|
},
|
|
3817
|
-
(0,
|
|
3818
|
-
() => showTooltip ? /* @__PURE__ */
|
|
3861
|
+
(0, import_react26.useMemo)(
|
|
3862
|
+
() => showTooltip ? /* @__PURE__ */ import_react26.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
|
|
3819
3863
|
[CellComponent, showTooltip]
|
|
3820
3864
|
)
|
|
3821
3865
|
);
|
|
3822
3866
|
};
|
|
3823
|
-
var BodyRow = (0,
|
|
3867
|
+
var BodyRow = (0, import_react26.memo)(
|
|
3824
3868
|
(props) => {
|
|
3825
3869
|
const { tableId, columns, rowId, editMode, noWrap, row } = props;
|
|
3826
|
-
return /* @__PURE__ */
|
|
3870
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react26.default.createElement(
|
|
3827
3871
|
BodyCell,
|
|
3828
3872
|
{
|
|
3829
3873
|
key: `${rowId}_${column.field.toString()}_${i}`,
|
|
@@ -3856,7 +3900,7 @@ var StyledTableRow2 = (0, import_joy33.styled)("tr", {
|
|
|
3856
3900
|
}
|
|
3857
3901
|
}
|
|
3858
3902
|
}));
|
|
3859
|
-
var VirtualizedTableRow = (0,
|
|
3903
|
+
var VirtualizedTableRow = (0, import_react26.memo)(StyledTableRow2, (prevProps, nextProps) => {
|
|
3860
3904
|
return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
|
|
3861
3905
|
prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
|
|
3862
3906
|
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)
|
|
@@ -3867,36 +3911,46 @@ var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow2, (prevProps,
|
|
|
3867
3911
|
});
|
|
3868
3912
|
|
|
3869
3913
|
// src/components/DataTable/hooks.ts
|
|
3870
|
-
var
|
|
3871
|
-
function useColumnWidths(
|
|
3872
|
-
const [widths, setWidths] = (0,
|
|
3873
|
-
const roRef = (0,
|
|
3874
|
-
(0,
|
|
3914
|
+
var import_react27 = require("react");
|
|
3915
|
+
function useColumnWidths(columnsById) {
|
|
3916
|
+
const [widths, setWidths] = (0, import_react27.useState)({});
|
|
3917
|
+
const roRef = (0, import_react27.useRef)();
|
|
3918
|
+
(0, import_react27.useLayoutEffect)(() => {
|
|
3875
3919
|
if (roRef.current) roRef.current.disconnect();
|
|
3876
3920
|
roRef.current = new ResizeObserver((entries) => {
|
|
3877
|
-
let changed = false;
|
|
3878
3921
|
setWidths((prev) => {
|
|
3922
|
+
let changed = false;
|
|
3879
3923
|
const next = { ...prev };
|
|
3880
3924
|
entries.forEach((entry) => {
|
|
3881
|
-
const
|
|
3925
|
+
const columnId = entry.target.dataset.hdsColumnId;
|
|
3882
3926
|
const w = Math.round(entry.target.getBoundingClientRect().width);
|
|
3883
|
-
if (
|
|
3884
|
-
|
|
3927
|
+
if (w === 0) return;
|
|
3928
|
+
if (next[columnId] !== w) {
|
|
3929
|
+
next[columnId] = w;
|
|
3885
3930
|
changed = true;
|
|
3886
3931
|
}
|
|
3887
3932
|
});
|
|
3888
3933
|
return changed ? next : prev;
|
|
3889
3934
|
});
|
|
3890
3935
|
});
|
|
3891
|
-
|
|
3936
|
+
const measured = {};
|
|
3937
|
+
Object.entries(columnsById).forEach(([columnId, def]) => {
|
|
3892
3938
|
const el = def.headerRef.current;
|
|
3893
3939
|
if (el) {
|
|
3894
|
-
el.dataset.
|
|
3940
|
+
el.dataset.hdsColumnId = columnId;
|
|
3941
|
+
el.dataset.field = String(def.field);
|
|
3942
|
+
const w = Math.round(el.getBoundingClientRect().width);
|
|
3943
|
+
if (w > 0) measured[columnId] = w;
|
|
3895
3944
|
roRef.current.observe(el);
|
|
3896
3945
|
}
|
|
3897
3946
|
});
|
|
3947
|
+
setWidths((prev) => {
|
|
3948
|
+
const keys = Object.keys(measured);
|
|
3949
|
+
const same = keys.length === Object.keys(prev).length && keys.every((key) => prev[key] === measured[key]);
|
|
3950
|
+
return same ? prev : measured;
|
|
3951
|
+
});
|
|
3898
3952
|
return () => roRef.current?.disconnect();
|
|
3899
|
-
}, [
|
|
3953
|
+
}, [columnsById]);
|
|
3900
3954
|
return widths;
|
|
3901
3955
|
}
|
|
3902
3956
|
function useDataTableRenderer({
|
|
@@ -3928,33 +3982,33 @@ function useDataTableRenderer({
|
|
|
3928
3982
|
"You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
|
|
3929
3983
|
);
|
|
3930
3984
|
}
|
|
3931
|
-
const onSelectionModelChangeRef = (0,
|
|
3985
|
+
const onSelectionModelChangeRef = (0, import_react27.useRef)(onSelectionModelChange);
|
|
3932
3986
|
onSelectionModelChangeRef.current = onSelectionModelChange;
|
|
3933
|
-
const [focusedRowId, setFocusedRowId] = (0,
|
|
3934
|
-
const [selectionAnchor, setSelectionAnchor] = (0,
|
|
3987
|
+
const [focusedRowId, setFocusedRowId] = (0, import_react27.useState)(null);
|
|
3988
|
+
const [selectionAnchor, setSelectionAnchor] = (0, import_react27.useState)(null);
|
|
3935
3989
|
const [sortModel, setSortModel] = useControlledState(
|
|
3936
3990
|
controlledSortModel,
|
|
3937
3991
|
initialState?.sorting?.sortModel ?? [],
|
|
3938
|
-
(0,
|
|
3992
|
+
(0, import_react27.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
|
|
3939
3993
|
);
|
|
3940
3994
|
const [visibilityModel] = useControlledState(
|
|
3941
3995
|
columnVisibilityModel,
|
|
3942
3996
|
initialState?.columns?.columnVisibilityModel ?? {},
|
|
3943
|
-
(0,
|
|
3997
|
+
(0, import_react27.useCallback)(
|
|
3944
3998
|
(model) => onColumnVisibilityModelChange?.(model),
|
|
3945
3999
|
[onColumnVisibilityModelChange]
|
|
3946
4000
|
)
|
|
3947
4001
|
);
|
|
3948
|
-
const reorderedColumns = (0,
|
|
4002
|
+
const reorderedColumns = (0, import_react27.useMemo)(() => {
|
|
3949
4003
|
if (!columnGroupingModel) return columnsProp;
|
|
3950
4004
|
return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
|
|
3951
4005
|
}, [columnsProp, columnGroupingModel]);
|
|
3952
|
-
const visibleColumns = (0,
|
|
4006
|
+
const visibleColumns = (0, import_react27.useMemo)(
|
|
3953
4007
|
() => reorderedColumns.filter((col) => visibilityModel[col.field] !== false),
|
|
3954
4008
|
[reorderedColumns, visibilityModel]
|
|
3955
4009
|
);
|
|
3956
|
-
const visibleFieldSet = (0,
|
|
3957
|
-
const tableMinWidth = (0,
|
|
4010
|
+
const visibleFieldSet = (0, import_react27.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
|
|
4011
|
+
const tableMinWidth = (0, import_react27.useMemo)(() => {
|
|
3958
4012
|
const DEFAULT_MIN = 50;
|
|
3959
4013
|
let total = checkboxSelection ? 40 : 0;
|
|
3960
4014
|
for (const col of visibleColumns) {
|
|
@@ -3962,7 +4016,7 @@ function useDataTableRenderer({
|
|
|
3962
4016
|
}
|
|
3963
4017
|
return total;
|
|
3964
4018
|
}, [visibleColumns, checkboxSelection]);
|
|
3965
|
-
const allColumnsByField = (0,
|
|
4019
|
+
const allColumnsByField = (0, import_react27.useMemo)(
|
|
3966
4020
|
() => reorderedColumns.reduce(
|
|
3967
4021
|
(acc, curr) => ({
|
|
3968
4022
|
...acc,
|
|
@@ -3972,21 +4026,42 @@ function useDataTableRenderer({
|
|
|
3972
4026
|
),
|
|
3973
4027
|
[reorderedColumns]
|
|
3974
4028
|
);
|
|
3975
|
-
const
|
|
3976
|
-
() =>
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
4029
|
+
const columnIdByColumn = (0, import_react27.useMemo)(() => {
|
|
4030
|
+
const taken = new Set(reorderedColumns.map((column) => String(column.field)));
|
|
4031
|
+
const assigned = /* @__PURE__ */ new Set();
|
|
4032
|
+
const ids = /* @__PURE__ */ new Map();
|
|
4033
|
+
reorderedColumns.forEach((column) => {
|
|
4034
|
+
const field = String(column.field);
|
|
4035
|
+
if (!assigned.has(field)) {
|
|
4036
|
+
assigned.add(field);
|
|
4037
|
+
ids.set(column, field);
|
|
4038
|
+
return;
|
|
4039
|
+
}
|
|
4040
|
+
let n = 2;
|
|
4041
|
+
while (taken.has(`${field}__${n}`)) n += 1;
|
|
4042
|
+
taken.add(`${field}__${n}`);
|
|
4043
|
+
ids.set(column, `${field}__${n}`);
|
|
4044
|
+
});
|
|
4045
|
+
return ids;
|
|
4046
|
+
}, [reorderedColumns]);
|
|
4047
|
+
const columnIds = (0, import_react27.useMemo)(
|
|
4048
|
+
() => visibleColumns.map((column) => columnIdByColumn.get(column) ?? String(column.field)),
|
|
4049
|
+
[visibleColumns, columnIdByColumn]
|
|
4050
|
+
);
|
|
4051
|
+
const visibleColumnsById = (0, import_react27.useMemo)(
|
|
4052
|
+
() => Object.fromEntries(
|
|
4053
|
+
visibleColumns.map((column, index) => [
|
|
4054
|
+
columnIds[index],
|
|
4055
|
+
{
|
|
4056
|
+
...column,
|
|
4057
|
+
headerRef: (0, import_react27.createRef)(),
|
|
4058
|
+
tableColRef: (0, import_react27.createRef)()
|
|
3983
4059
|
}
|
|
3984
|
-
|
|
3985
|
-
{}
|
|
4060
|
+
])
|
|
3986
4061
|
),
|
|
3987
|
-
[visibleColumns]
|
|
4062
|
+
[visibleColumns, columnIds]
|
|
3988
4063
|
);
|
|
3989
|
-
const sortComparator = (0,
|
|
4064
|
+
const sortComparator = (0, import_react27.useCallback)(
|
|
3990
4065
|
(rowA, rowB) => {
|
|
3991
4066
|
for (const sort of sortModel) {
|
|
3992
4067
|
const { field, sort: direction } = sort;
|
|
@@ -4015,33 +4090,33 @@ function useDataTableRenderer({
|
|
|
4015
4090
|
},
|
|
4016
4091
|
[sortModel, allColumnsByField]
|
|
4017
4092
|
);
|
|
4018
|
-
const rows = (0,
|
|
4093
|
+
const rows = (0, import_react27.useMemo)(
|
|
4019
4094
|
() => sortModel.length ? [..._rows].sort(sortComparator) : _rows,
|
|
4020
4095
|
[_rows, sortModel, sortComparator]
|
|
4021
4096
|
);
|
|
4022
|
-
const sortOrder = (0,
|
|
4097
|
+
const sortOrder = (0, import_react27.useMemo)(
|
|
4023
4098
|
() => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
|
|
4024
4099
|
[_sortOrder]
|
|
4025
4100
|
);
|
|
4026
|
-
const [page, setPage] = (0,
|
|
4101
|
+
const [page, setPage] = (0, import_react27.useState)(paginationModel?.page || 1);
|
|
4027
4102
|
const pageSize = paginationModel?.pageSize || 20;
|
|
4028
|
-
const getId = (0,
|
|
4103
|
+
const getId = (0, import_react27.useCallback)(
|
|
4029
4104
|
(row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
|
|
4030
4105
|
[_getId, page, pageSize]
|
|
4031
4106
|
);
|
|
4032
|
-
const selectedModelSet = (0,
|
|
4033
|
-
const dataInPage = (0,
|
|
4107
|
+
const selectedModelSet = (0, import_react27.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
|
|
4108
|
+
const dataInPage = (0, import_react27.useMemo)(
|
|
4034
4109
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
4035
4110
|
[rows, page, pageSize, paginationMode, pagination]
|
|
4036
4111
|
);
|
|
4037
|
-
const selectableDataInPage = (0,
|
|
4112
|
+
const selectableDataInPage = (0, import_react27.useMemo)(
|
|
4038
4113
|
() => dataInPage.filter((row, i) => {
|
|
4039
4114
|
if (!isRowSelectable) return true;
|
|
4040
4115
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
4041
4116
|
}),
|
|
4042
4117
|
[dataInPage, isRowSelectable, getId]
|
|
4043
4118
|
);
|
|
4044
|
-
const handleRangeSelection = (0,
|
|
4119
|
+
const handleRangeSelection = (0, import_react27.useCallback)(
|
|
4045
4120
|
(anchor, targetIndex) => {
|
|
4046
4121
|
const startIndex = Math.min(anchor.rowIndex, targetIndex);
|
|
4047
4122
|
const endIndex = Math.max(anchor.rowIndex, targetIndex);
|
|
@@ -4064,51 +4139,60 @@ function useDataTableRenderer({
|
|
|
4064
4139
|
},
|
|
4065
4140
|
[dataInPage, getId, isRowSelectable, selectionModel, onSelectionModelChange]
|
|
4066
4141
|
);
|
|
4067
|
-
const isAllSelected = (0,
|
|
4142
|
+
const isAllSelected = (0, import_react27.useMemo)(
|
|
4068
4143
|
() => selectableDataInPage.length > 0 && selectableDataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
|
|
4069
4144
|
[selectableDataInPage, selectedModelSet, getId]
|
|
4070
4145
|
);
|
|
4071
4146
|
const rowCount = totalRowsProp || rows.length;
|
|
4072
|
-
const selectableRowCount = (0,
|
|
4147
|
+
const selectableRowCount = (0, import_react27.useMemo)(() => {
|
|
4073
4148
|
if (!isRowSelectable) return rowCount;
|
|
4074
4149
|
return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
|
|
4075
4150
|
}, [rows, isRowSelectable, getId, rowCount]);
|
|
4076
|
-
const isTotalSelected = (0,
|
|
4151
|
+
const isTotalSelected = (0, import_react27.useMemo)(
|
|
4077
4152
|
() => _isTotalSelected ?? (selectableRowCount > 0 && (selectionModel?.length || 0) === selectableRowCount),
|
|
4078
4153
|
[_isTotalSelected, selectionModel, selectableRowCount]
|
|
4079
4154
|
);
|
|
4080
|
-
const columnWidths = useColumnWidths(
|
|
4081
|
-
const
|
|
4082
|
-
(
|
|
4083
|
-
|
|
4084
|
-
|
|
4155
|
+
const columnWidths = useColumnWidths(visibleColumnsById);
|
|
4156
|
+
const measuredWidthByField = (0, import_react27.useMemo)(
|
|
4157
|
+
() => Object.fromEntries(
|
|
4158
|
+
Object.entries(visibleColumnsById).map(([columnId, column]) => [column.field, columnWidths[columnId]])
|
|
4159
|
+
),
|
|
4160
|
+
[visibleColumnsById, columnWidths]
|
|
4161
|
+
);
|
|
4162
|
+
const getWidth = (0, import_react27.useCallback)(
|
|
4163
|
+
// 반환값은 pinned offset으로 더해지므로 반드시 숫자여야 한다. width/minWidth는 '500px' 같은 문자열.
|
|
4164
|
+
(f) => measuredWidthByField[f] ?? parsePxValue(allColumnsByField[f]?.width) ?? // Column prop 으로 지정된 width
|
|
4165
|
+
parsePxValue(allColumnsByField[f]?.minWidth) ?? 0,
|
|
4166
|
+
[measuredWidthByField, allColumnsByField]
|
|
4085
4167
|
);
|
|
4086
|
-
const processedColumnGroups = (0,
|
|
4168
|
+
const processedColumnGroups = (0, import_react27.useMemo)(() => {
|
|
4087
4169
|
if (!columnGroupingModel) return null;
|
|
4088
4170
|
return calculateColumnGroups(columnGroupingModel, visibleColumns, visibleFieldSet);
|
|
4089
4171
|
}, [columnGroupingModel, visibleColumns, visibleFieldSet]);
|
|
4090
|
-
const effectivePinnedLeft = (0,
|
|
4172
|
+
const effectivePinnedLeft = (0, import_react27.useMemo)(
|
|
4091
4173
|
() => pinnedColumns?.left?.filter((f) => visibleFieldSet.has(f)),
|
|
4092
4174
|
[pinnedColumns?.left, visibleFieldSet]
|
|
4093
4175
|
);
|
|
4094
|
-
const effectivePinnedRight = (0,
|
|
4176
|
+
const effectivePinnedRight = (0, import_react27.useMemo)(
|
|
4095
4177
|
() => pinnedColumns?.right?.filter((f) => visibleFieldSet.has(f)),
|
|
4096
4178
|
[pinnedColumns?.right, visibleFieldSet]
|
|
4097
4179
|
);
|
|
4098
4180
|
const inferredFieldsKey = JSON.stringify(Object.keys(rows[0] || {}));
|
|
4099
|
-
const inferredFields = (0,
|
|
4100
|
-
const columns = (0,
|
|
4181
|
+
const inferredFields = (0, import_react27.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
|
|
4182
|
+
const columns = (0, import_react27.useMemo)(() => {
|
|
4101
4183
|
const baseColumns = visibleColumns.length > 0 ? visibleColumns : reorderedColumns.length > 0 ? [] : inferredFields.map((key) => ({
|
|
4102
4184
|
field: key
|
|
4103
4185
|
}));
|
|
4104
|
-
return baseColumns.map((column) => {
|
|
4186
|
+
return baseColumns.map((column, index) => {
|
|
4187
|
+
const columnId = columnIds[index] ?? String(column.field);
|
|
4105
4188
|
const isLeftPinned = effectivePinnedLeft?.includes(column.field);
|
|
4106
4189
|
const isRightPinned = effectivePinnedRight?.includes(column.field);
|
|
4107
4190
|
const isPinned = isLeftPinned || isRightPinned;
|
|
4108
4191
|
return {
|
|
4109
4192
|
...column,
|
|
4110
|
-
|
|
4111
|
-
|
|
4193
|
+
columnId,
|
|
4194
|
+
headerRef: visibleColumnsById[columnId]?.headerRef,
|
|
4195
|
+
tableColRef: visibleColumnsById[columnId]?.tableColRef,
|
|
4112
4196
|
isCellEditable: editMode && (typeof column.isCellEditable === "function" ? column.isCellEditable : column.isCellEditable ?? true),
|
|
4113
4197
|
sort: sortModel.find((sort) => sort.field === column.field)?.sort,
|
|
4114
4198
|
sortOrder: allColumnsByField[column.field]?.sortOrder || sortOrder,
|
|
@@ -4125,21 +4209,22 @@ function useDataTableRenderer({
|
|
|
4125
4209
|
inferredFields,
|
|
4126
4210
|
effectivePinnedLeft,
|
|
4127
4211
|
effectivePinnedRight,
|
|
4128
|
-
|
|
4212
|
+
columnIds,
|
|
4213
|
+
visibleColumnsById,
|
|
4129
4214
|
allColumnsByField,
|
|
4130
4215
|
editMode,
|
|
4131
4216
|
sortModel,
|
|
4132
4217
|
sortOrder,
|
|
4133
4218
|
getWidth
|
|
4134
4219
|
]);
|
|
4135
|
-
const handlePageChange = (0,
|
|
4220
|
+
const handlePageChange = (0, import_react27.useCallback)(
|
|
4136
4221
|
(newPage) => {
|
|
4137
4222
|
setPage(newPage);
|
|
4138
4223
|
onPaginationModelChange?.({ page: newPage, pageSize });
|
|
4139
4224
|
},
|
|
4140
4225
|
[onPaginationModelChange, pageSize]
|
|
4141
4226
|
);
|
|
4142
|
-
const handleSortChange = (0,
|
|
4227
|
+
const handleSortChange = (0, import_react27.useCallback)(
|
|
4143
4228
|
(props) => {
|
|
4144
4229
|
const { field, currentSort, multiple } = props;
|
|
4145
4230
|
const column = allColumnsByField[field];
|
|
@@ -4162,38 +4247,37 @@ function useDataTableRenderer({
|
|
|
4162
4247
|
},
|
|
4163
4248
|
[sortOrder, allColumnsByField, sortModel, setSortModel]
|
|
4164
4249
|
);
|
|
4165
|
-
(0,
|
|
4250
|
+
(0, import_react27.useEffect)(() => {
|
|
4166
4251
|
if (!paginationModel) {
|
|
4167
4252
|
handlePageChange(1);
|
|
4168
4253
|
}
|
|
4169
4254
|
}, [rowCount, handlePageChange, paginationModel]);
|
|
4170
|
-
(0,
|
|
4255
|
+
(0, import_react27.useEffect)(() => {
|
|
4171
4256
|
const lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
|
|
4172
4257
|
if (page > lastPage) {
|
|
4173
4258
|
handlePageChange(lastPage);
|
|
4174
4259
|
}
|
|
4175
4260
|
}, [page, rowCount, pageSize, handlePageChange]);
|
|
4176
|
-
(0,
|
|
4261
|
+
(0, import_react27.useEffect)(() => {
|
|
4177
4262
|
onSelectionModelChangeRef.current?.([]);
|
|
4178
4263
|
setSelectionAnchor(null);
|
|
4179
4264
|
}, [page]);
|
|
4180
|
-
const prevRowsRef = (0,
|
|
4181
|
-
(0,
|
|
4265
|
+
const prevRowsRef = (0, import_react27.useRef)(_rows);
|
|
4266
|
+
(0, import_react27.useEffect)(() => {
|
|
4182
4267
|
if (prevRowsRef.current !== _rows) {
|
|
4183
4268
|
setSelectionAnchor(null);
|
|
4184
4269
|
prevRowsRef.current = _rows;
|
|
4185
4270
|
}
|
|
4186
4271
|
}, [_rows]);
|
|
4187
|
-
const handleAutoFit = (0,
|
|
4188
|
-
(
|
|
4189
|
-
const colDef =
|
|
4272
|
+
const handleAutoFit = (0, import_react27.useCallback)(
|
|
4273
|
+
(columnId) => {
|
|
4274
|
+
const colDef = visibleColumnsById[columnId];
|
|
4190
4275
|
if (!colDef?.headerRef.current) return;
|
|
4191
|
-
const
|
|
4192
|
-
const columnType = column && "type" in column ? column.type : void 0;
|
|
4276
|
+
const columnType = "type" in colDef ? colDef.type : void 0;
|
|
4193
4277
|
if (columnType === "actions") return;
|
|
4194
4278
|
const optimalWidth = computeAutoFitWidth({
|
|
4195
4279
|
headerEl: colDef.headerRef.current,
|
|
4196
|
-
field,
|
|
4280
|
+
field: colDef.field,
|
|
4197
4281
|
dataInPage
|
|
4198
4282
|
});
|
|
4199
4283
|
if (optimalWidth == null) return;
|
|
@@ -4201,7 +4285,7 @@ function useDataTableRenderer({
|
|
|
4201
4285
|
colDef.headerRef.current.style.width = widthPx;
|
|
4202
4286
|
if (colDef.tableColRef.current) colDef.tableColRef.current.style.width = widthPx;
|
|
4203
4287
|
},
|
|
4204
|
-
[
|
|
4288
|
+
[visibleColumnsById, dataInPage]
|
|
4205
4289
|
);
|
|
4206
4290
|
return {
|
|
4207
4291
|
rowCount,
|
|
@@ -4217,8 +4301,8 @@ function useDataTableRenderer({
|
|
|
4217
4301
|
handleAutoFit,
|
|
4218
4302
|
isAllSelected,
|
|
4219
4303
|
isTotalSelected,
|
|
4220
|
-
isSelectedRow: (0,
|
|
4221
|
-
isRowSelectable: (0,
|
|
4304
|
+
isSelectedRow: (0, import_react27.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
|
|
4305
|
+
isRowSelectable: (0, import_react27.useCallback)(
|
|
4222
4306
|
(rowId, row) => {
|
|
4223
4307
|
if (!isRowSelectable) return true;
|
|
4224
4308
|
return isRowSelectable({ row, id: rowId });
|
|
@@ -4226,13 +4310,13 @@ function useDataTableRenderer({
|
|
|
4226
4310
|
[isRowSelectable]
|
|
4227
4311
|
),
|
|
4228
4312
|
focusedRowId,
|
|
4229
|
-
onRowFocus: (0,
|
|
4313
|
+
onRowFocus: (0, import_react27.useCallback)((rowId) => {
|
|
4230
4314
|
setFocusedRowId(rowId);
|
|
4231
4315
|
}, []),
|
|
4232
|
-
onAllCheckboxChange: (0,
|
|
4316
|
+
onAllCheckboxChange: (0, import_react27.useCallback)(() => {
|
|
4233
4317
|
onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
|
|
4234
4318
|
}, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
|
|
4235
|
-
onCheckboxChange: (0,
|
|
4319
|
+
onCheckboxChange: (0, import_react27.useCallback)(
|
|
4236
4320
|
(event, selectedModel) => {
|
|
4237
4321
|
const isShiftClick = "shiftKey" in event && event.shiftKey;
|
|
4238
4322
|
const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
|
|
@@ -4266,7 +4350,7 @@ function useDataTableRenderer({
|
|
|
4266
4350
|
columns,
|
|
4267
4351
|
tableMinWidth,
|
|
4268
4352
|
processedColumnGroups,
|
|
4269
|
-
onTotalSelect: (0,
|
|
4353
|
+
onTotalSelect: (0, import_react27.useCallback)(() => {
|
|
4270
4354
|
const selectableRows = rows.filter((row, i) => {
|
|
4271
4355
|
if (!isRowSelectable) return true;
|
|
4272
4356
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
@@ -4280,11 +4364,11 @@ function useDataTableRenderer({
|
|
|
4280
4364
|
}
|
|
4281
4365
|
|
|
4282
4366
|
// src/components/Table/Table.tsx
|
|
4283
|
-
var
|
|
4367
|
+
var import_react28 = __toESM(require("react"));
|
|
4284
4368
|
var import_joy35 = require("@mui/joy");
|
|
4285
4369
|
var Table = (props) => {
|
|
4286
4370
|
const { children, ...inheritProps } = props;
|
|
4287
|
-
return /* @__PURE__ */
|
|
4371
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_joy35.Table, { ...inheritProps }, children);
|
|
4288
4372
|
};
|
|
4289
4373
|
Table.displayName = "Table";
|
|
4290
4374
|
function TableHead(props) {
|
|
@@ -4295,7 +4379,7 @@ function TableHead(props) {
|
|
|
4295
4379
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4296
4380
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4297
4381
|
} = props;
|
|
4298
|
-
return /* @__PURE__ */
|
|
4382
|
+
return /* @__PURE__ */ import_react28.default.createElement("thead", null, /* @__PURE__ */ import_react28.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react28.default.createElement(
|
|
4299
4383
|
"th",
|
|
4300
4384
|
{
|
|
4301
4385
|
style: {
|
|
@@ -4303,8 +4387,8 @@ function TableHead(props) {
|
|
|
4303
4387
|
textAlign: "center"
|
|
4304
4388
|
}
|
|
4305
4389
|
},
|
|
4306
|
-
/* @__PURE__ */
|
|
4307
|
-
), headCells.map((headCell) => /* @__PURE__ */
|
|
4390
|
+
/* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
|
|
4391
|
+
), headCells.map((headCell) => /* @__PURE__ */ import_react28.default.createElement(
|
|
4308
4392
|
"th",
|
|
4309
4393
|
{
|
|
4310
4394
|
key: headCell.label,
|
|
@@ -4329,15 +4413,15 @@ function TableBody(props) {
|
|
|
4329
4413
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4330
4414
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4331
4415
|
} = props;
|
|
4332
|
-
return /* @__PURE__ */
|
|
4416
|
+
return /* @__PURE__ */ import_react28.default.createElement("tbody", null, rows.map((row, rowIndex) => /* @__PURE__ */ import_react28.default.createElement("tr", { key: `table-row-${rowIndex}` }, showCheckbox && /* @__PURE__ */ import_react28.default.createElement(
|
|
4333
4417
|
"td",
|
|
4334
4418
|
{
|
|
4335
4419
|
style: {
|
|
4336
4420
|
textAlign: "center"
|
|
4337
4421
|
}
|
|
4338
4422
|
},
|
|
4339
|
-
/* @__PURE__ */
|
|
4340
|
-
), cellOrder.map((cellKey) => /* @__PURE__ */
|
|
4423
|
+
/* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
|
|
4424
|
+
), cellOrder.map((cellKey) => /* @__PURE__ */ import_react28.default.createElement(
|
|
4341
4425
|
"td",
|
|
4342
4426
|
{
|
|
4343
4427
|
key: cellKey,
|
|
@@ -4351,7 +4435,7 @@ function TableBody(props) {
|
|
|
4351
4435
|
TableBody.displayName = "TableBody";
|
|
4352
4436
|
|
|
4353
4437
|
// src/components/Pagination/Pagination.tsx
|
|
4354
|
-
var
|
|
4438
|
+
var import_react29 = __toESM(require("react"));
|
|
4355
4439
|
var import_ChevronLeftRounded = __toESM(require("@mui/icons-material/ChevronLeftRounded"));
|
|
4356
4440
|
var import_ChevronRightRounded = __toESM(require("@mui/icons-material/ChevronRightRounded"));
|
|
4357
4441
|
var import_FirstPageRounded = __toESM(require("@mui/icons-material/FirstPageRounded"));
|
|
@@ -4421,7 +4505,7 @@ function Pagination(inProps) {
|
|
|
4421
4505
|
const [paginationModel, setPaginationModel] = useControlledState(
|
|
4422
4506
|
_paginationModel,
|
|
4423
4507
|
defaultPaginationModel,
|
|
4424
|
-
(0,
|
|
4508
|
+
(0, import_react29.useCallback)(
|
|
4425
4509
|
(newPage) => {
|
|
4426
4510
|
onPageChange(newPage.page);
|
|
4427
4511
|
},
|
|
@@ -4437,7 +4521,7 @@ function Pagination(inProps) {
|
|
|
4437
4521
|
const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
|
|
4438
4522
|
const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
|
|
4439
4523
|
const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
|
|
4440
|
-
(0,
|
|
4524
|
+
(0, import_react29.useEffect)(() => {
|
|
4441
4525
|
if (paginationModel.page > lastPage) {
|
|
4442
4526
|
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
4443
4527
|
}
|
|
@@ -4447,7 +4531,7 @@ function Pagination(inProps) {
|
|
|
4447
4531
|
value: `${i + 1}`
|
|
4448
4532
|
}));
|
|
4449
4533
|
if (variant === "compact") {
|
|
4450
|
-
return /* @__PURE__ */
|
|
4534
|
+
return /* @__PURE__ */ import_react29.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react29.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4451
4535
|
PaginationIconButton,
|
|
4452
4536
|
{
|
|
4453
4537
|
size,
|
|
@@ -4457,8 +4541,8 @@ function Pagination(inProps) {
|
|
|
4457
4541
|
disabled: paginationModel.page === firstPage,
|
|
4458
4542
|
"aria-label": "First page"
|
|
4459
4543
|
},
|
|
4460
|
-
/* @__PURE__ */
|
|
4461
|
-
), /* @__PURE__ */
|
|
4544
|
+
/* @__PURE__ */ import_react29.default.createElement(import_FirstPageRounded.default, null)
|
|
4545
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4462
4546
|
PaginationIconButton,
|
|
4463
4547
|
{
|
|
4464
4548
|
size,
|
|
@@ -4468,8 +4552,8 @@ function Pagination(inProps) {
|
|
|
4468
4552
|
disabled: paginationModel.page === firstPage,
|
|
4469
4553
|
"aria-label": "Previous page"
|
|
4470
4554
|
},
|
|
4471
|
-
/* @__PURE__ */
|
|
4472
|
-
)), /* @__PURE__ */
|
|
4555
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
|
|
4556
|
+
)), /* @__PURE__ */ import_react29.default.createElement(
|
|
4473
4557
|
Autocomplete_default,
|
|
4474
4558
|
{
|
|
4475
4559
|
size,
|
|
@@ -4488,7 +4572,7 @@ function Pagination(inProps) {
|
|
|
4488
4572
|
}[size]
|
|
4489
4573
|
}
|
|
4490
4574
|
}
|
|
4491
|
-
), /* @__PURE__ */
|
|
4575
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4492
4576
|
Typography_default,
|
|
4493
4577
|
{
|
|
4494
4578
|
level: `body-${size}`,
|
|
@@ -4499,7 +4583,7 @@ function Pagination(inProps) {
|
|
|
4499
4583
|
},
|
|
4500
4584
|
"/ ",
|
|
4501
4585
|
lastPage
|
|
4502
|
-
), /* @__PURE__ */
|
|
4586
|
+
), /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4503
4587
|
PaginationIconButton,
|
|
4504
4588
|
{
|
|
4505
4589
|
size,
|
|
@@ -4509,8 +4593,8 @@ function Pagination(inProps) {
|
|
|
4509
4593
|
disabled: paginationModel.page === lastPage,
|
|
4510
4594
|
"aria-label": "Next page"
|
|
4511
4595
|
},
|
|
4512
|
-
/* @__PURE__ */
|
|
4513
|
-
), /* @__PURE__ */
|
|
4596
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
|
|
4597
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4514
4598
|
PaginationIconButton,
|
|
4515
4599
|
{
|
|
4516
4600
|
size,
|
|
@@ -4520,10 +4604,10 @@ function Pagination(inProps) {
|
|
|
4520
4604
|
disabled: paginationModel.page === lastPage,
|
|
4521
4605
|
"aria-label": "Last page"
|
|
4522
4606
|
},
|
|
4523
|
-
/* @__PURE__ */
|
|
4607
|
+
/* @__PURE__ */ import_react29.default.createElement(import_LastPageRounded.default, null)
|
|
4524
4608
|
))));
|
|
4525
4609
|
}
|
|
4526
|
-
return /* @__PURE__ */
|
|
4610
|
+
return /* @__PURE__ */ import_react29.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react29.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4527
4611
|
PaginationIconButton,
|
|
4528
4612
|
{
|
|
4529
4613
|
size,
|
|
@@ -4533,8 +4617,8 @@ function Pagination(inProps) {
|
|
|
4533
4617
|
disabled: paginationModel.page === firstPage,
|
|
4534
4618
|
"aria-label": "Previous page"
|
|
4535
4619
|
},
|
|
4536
|
-
/* @__PURE__ */
|
|
4537
|
-
), paginationModel.page !== firstPage && /* @__PURE__ */
|
|
4620
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
|
|
4621
|
+
), paginationModel.page !== firstPage && /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ import_react29.default.createElement(
|
|
4538
4622
|
PaginationButton,
|
|
4539
4623
|
{
|
|
4540
4624
|
size,
|
|
@@ -4544,7 +4628,7 @@ function Pagination(inProps) {
|
|
|
4544
4628
|
"aria-label": "More previous pages"
|
|
4545
4629
|
},
|
|
4546
4630
|
"..."
|
|
4547
|
-
), beforePages.map((p) => /* @__PURE__ */
|
|
4631
|
+
), beforePages.map((p) => /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { active: "true", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ import_react29.default.createElement(
|
|
4548
4632
|
PaginationButton,
|
|
4549
4633
|
{
|
|
4550
4634
|
size,
|
|
@@ -4554,7 +4638,7 @@ function Pagination(inProps) {
|
|
|
4554
4638
|
onClick: () => handlePageChange(paginationModel.page + 3)
|
|
4555
4639
|
},
|
|
4556
4640
|
"..."
|
|
4557
|
-
), paginationModel.page !== lastPage && /* @__PURE__ */
|
|
4641
|
+
), paginationModel.page !== lastPage && /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react29.default.createElement(
|
|
4558
4642
|
PaginationIconButton,
|
|
4559
4643
|
{
|
|
4560
4644
|
size,
|
|
@@ -4564,7 +4648,7 @@ function Pagination(inProps) {
|
|
|
4564
4648
|
disabled: paginationModel.page === lastPage,
|
|
4565
4649
|
"aria-label": "Next page"
|
|
4566
4650
|
},
|
|
4567
|
-
/* @__PURE__ */
|
|
4651
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
|
|
4568
4652
|
)));
|
|
4569
4653
|
}
|
|
4570
4654
|
Pagination.displayName = "Pagination";
|
|
@@ -4638,9 +4722,9 @@ function Component(props, apiRef) {
|
|
|
4638
4722
|
isTotalSelected: ___________,
|
|
4639
4723
|
...innerProps
|
|
4640
4724
|
} = props;
|
|
4641
|
-
const tableId = (0,
|
|
4642
|
-
const parentRef = (0,
|
|
4643
|
-
const tableBodyRef = (0,
|
|
4725
|
+
const tableId = (0, import_react30.useId)();
|
|
4726
|
+
const parentRef = (0, import_react30.useRef)(null);
|
|
4727
|
+
const tableBodyRef = (0, import_react30.useRef)(null);
|
|
4644
4728
|
const {
|
|
4645
4729
|
columns,
|
|
4646
4730
|
processedColumnGroups,
|
|
@@ -4676,10 +4760,10 @@ function Component(props, apiRef) {
|
|
|
4676
4760
|
measureElement: (element) => element.clientHeight,
|
|
4677
4761
|
overscan: 10
|
|
4678
4762
|
});
|
|
4679
|
-
const paginationModel = (0,
|
|
4763
|
+
const paginationModel = (0, import_react30.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
|
|
4680
4764
|
const columnsKey = getObjectVersion(columns);
|
|
4681
|
-
const headerCheckboxElement = (0,
|
|
4682
|
-
() => /* @__PURE__ */
|
|
4765
|
+
const headerCheckboxElement = (0, import_react30.useMemo)(
|
|
4766
|
+
() => /* @__PURE__ */ import_react30.default.createElement(
|
|
4683
4767
|
RenderCheckbox,
|
|
4684
4768
|
{
|
|
4685
4769
|
onChange: onAllCheckboxChange,
|
|
@@ -4704,20 +4788,20 @@ function Component(props, apiRef) {
|
|
|
4704
4788
|
const showNoRowsOverlay = !loading && rowCount === 0;
|
|
4705
4789
|
const showFillerColumn = columns.length > 0 && columns.every((c) => !!c.width);
|
|
4706
4790
|
const totalColCount = Math.max(1, columns.length + (checkboxSelection ? 1 : 0) + (showFillerColumn ? 1 : 0));
|
|
4707
|
-
const getRowClickHandler = (0,
|
|
4791
|
+
const getRowClickHandler = (0, import_react30.useCallback)(
|
|
4708
4792
|
(row, rowId) => (e) => {
|
|
4709
4793
|
onRowClick?.({ row, rowId }, e);
|
|
4710
4794
|
checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
|
|
4711
4795
|
},
|
|
4712
4796
|
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
|
|
4713
4797
|
);
|
|
4714
|
-
const getRowFocusHandler = (0,
|
|
4798
|
+
const getRowFocusHandler = (0, import_react30.useCallback)(
|
|
4715
4799
|
(rowId) => () => {
|
|
4716
4800
|
onRowFocus(rowId);
|
|
4717
4801
|
},
|
|
4718
4802
|
[onRowFocus]
|
|
4719
4803
|
);
|
|
4720
|
-
const getCheckboxClickHandler = (0,
|
|
4804
|
+
const getCheckboxClickHandler = (0, import_react30.useCallback)(
|
|
4721
4805
|
(rowId, row) => (e) => {
|
|
4722
4806
|
e.stopPropagation();
|
|
4723
4807
|
if (isRowSelectableCheck(rowId, row)) {
|
|
@@ -4727,7 +4811,7 @@ function Component(props, apiRef) {
|
|
|
4727
4811
|
},
|
|
4728
4812
|
[onCheckboxChange, isRowSelectableCheck, onRowFocus]
|
|
4729
4813
|
);
|
|
4730
|
-
const handleTableKeyDown = (0,
|
|
4814
|
+
const handleTableKeyDown = (0, import_react30.useCallback)(
|
|
4731
4815
|
(e) => {
|
|
4732
4816
|
const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
|
|
4733
4817
|
if (!supportedKeys.includes(e.key)) return;
|
|
@@ -4817,7 +4901,7 @@ function Component(props, apiRef) {
|
|
|
4817
4901
|
virtualizer
|
|
4818
4902
|
]
|
|
4819
4903
|
);
|
|
4820
|
-
(0,
|
|
4904
|
+
(0, import_react30.useImperativeHandle)(apiRef, () => ({
|
|
4821
4905
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
4822
4906
|
return dataInPage.findIndex((row) => String(getId(row)) === rowId);
|
|
4823
4907
|
},
|
|
@@ -4833,7 +4917,7 @@ function Component(props, apiRef) {
|
|
|
4833
4917
|
});
|
|
4834
4918
|
}
|
|
4835
4919
|
}));
|
|
4836
|
-
return /* @__PURE__ */
|
|
4920
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
4837
4921
|
Box_default,
|
|
4838
4922
|
{
|
|
4839
4923
|
sx: {
|
|
@@ -4843,7 +4927,7 @@ function Component(props, apiRef) {
|
|
|
4843
4927
|
flexDirection: "column"
|
|
4844
4928
|
}
|
|
4845
4929
|
},
|
|
4846
|
-
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */
|
|
4930
|
+
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react30.default.createElement(
|
|
4847
4931
|
Stack_default,
|
|
4848
4932
|
{
|
|
4849
4933
|
direction: "row",
|
|
@@ -4853,10 +4937,10 @@ function Component(props, apiRef) {
|
|
|
4853
4937
|
justifyContent: "space-between",
|
|
4854
4938
|
alignItems: "center"
|
|
4855
4939
|
},
|
|
4856
|
-
!!checkboxSelection && /* @__PURE__ */
|
|
4857
|
-
Toolbar && /* @__PURE__ */
|
|
4940
|
+
!!checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ import_react30.default.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ import_react30.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react30.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ import_react30.default.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(selectableRowCount), " items")), isTotalSelected && /* @__PURE__ */ import_react30.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react30.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectableRowCount), " items are selected."), /* @__PURE__ */ import_react30.default.createElement(Button_default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))),
|
|
4941
|
+
Toolbar && /* @__PURE__ */ import_react30.default.createElement(Toolbar, { ...toolbarProps || {} })
|
|
4858
4942
|
),
|
|
4859
|
-
/* @__PURE__ */
|
|
4943
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4860
4944
|
Sheet_default,
|
|
4861
4945
|
{
|
|
4862
4946
|
variant: "outlined",
|
|
@@ -4877,24 +4961,24 @@ function Component(props, apiRef) {
|
|
|
4877
4961
|
ref: parentRef,
|
|
4878
4962
|
...backgroundProps
|
|
4879
4963
|
},
|
|
4880
|
-
/* @__PURE__ */
|
|
4964
|
+
/* @__PURE__ */ import_react30.default.createElement(Table, { ...innerProps, sx: { ...innerProps.sx, minWidth: tableMinWidth } }, /* @__PURE__ */ import_react30.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
|
|
4881
4965
|
"col",
|
|
4882
4966
|
{
|
|
4883
4967
|
style: {
|
|
4884
4968
|
width: "40px"
|
|
4885
4969
|
}
|
|
4886
4970
|
}
|
|
4887
|
-
), columns.map((c) => /* @__PURE__ */
|
|
4971
|
+
), columns.map((c) => /* @__PURE__ */ import_react30.default.createElement(
|
|
4888
4972
|
"col",
|
|
4889
4973
|
{
|
|
4890
4974
|
ref: c.tableColRef,
|
|
4891
|
-
key:
|
|
4975
|
+
key: c.columnId,
|
|
4892
4976
|
style: {
|
|
4893
4977
|
width: c.width,
|
|
4894
4978
|
minWidth: c.minWidth ?? "50px"
|
|
4895
4979
|
}
|
|
4896
4980
|
}
|
|
4897
|
-
)), showFillerColumn && /* @__PURE__ */
|
|
4981
|
+
)), showFillerColumn && /* @__PURE__ */ import_react30.default.createElement("col", { style: { minWidth: 0 } })), /* @__PURE__ */ import_react30.default.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.length > 0 && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ import_react30.default.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ import_react30.default.createElement(
|
|
4898
4982
|
"th",
|
|
4899
4983
|
{
|
|
4900
4984
|
rowSpan: processedColumnGroups.maxLevel + 2,
|
|
@@ -4905,12 +4989,12 @@ function Component(props, apiRef) {
|
|
|
4905
4989
|
}
|
|
4906
4990
|
},
|
|
4907
4991
|
headerCheckboxElement
|
|
4908
|
-
), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */
|
|
4992
|
+
), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */ import_react30.default.createElement("th", { key: `empty-${level}-${i}` })), levelGroups.filter((g) => g.colspan > 0).map((group, groupIndex) => {
|
|
4909
4993
|
const nextGroup = levelGroups[groupIndex + 1];
|
|
4910
4994
|
const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
|
|
4911
4995
|
const params = { groupId: group.groupId };
|
|
4912
4996
|
const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
|
|
4913
|
-
return /* @__PURE__ */
|
|
4997
|
+
return /* @__PURE__ */ import_react30.default.createElement(import_react30.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react30.default.createElement(
|
|
4914
4998
|
"th",
|
|
4915
4999
|
{
|
|
4916
5000
|
colSpan: group.colspan,
|
|
@@ -4922,14 +5006,14 @@ function Component(props, apiRef) {
|
|
|
4922
5006
|
className: computedHeaderClassName
|
|
4923
5007
|
},
|
|
4924
5008
|
group.headerName ?? group.groupId
|
|
4925
|
-
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */
|
|
4926
|
-
}), showFillerColumn && level === 0 && /* @__PURE__ */
|
|
5009
|
+
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react30.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
|
|
5010
|
+
}), showFillerColumn && level === 0 && /* @__PURE__ */ import_react30.default.createElement(
|
|
4927
5011
|
"th",
|
|
4928
5012
|
{
|
|
4929
5013
|
"aria-hidden": "true",
|
|
4930
5014
|
rowSpan: processedColumnGroups.maxLevel + 2
|
|
4931
5015
|
}
|
|
4932
|
-
))), /* @__PURE__ */
|
|
5016
|
+
))), /* @__PURE__ */ import_react30.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
|
|
4933
5017
|
"th",
|
|
4934
5018
|
{
|
|
4935
5019
|
style: {
|
|
@@ -4940,7 +5024,7 @@ function Component(props, apiRef) {
|
|
|
4940
5024
|
headerCheckboxElement
|
|
4941
5025
|
), columns.map((c, i) => (
|
|
4942
5026
|
// @ts-ignore
|
|
4943
|
-
/* @__PURE__ */
|
|
5027
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4944
5028
|
HeadCell2,
|
|
4945
5029
|
{
|
|
4946
5030
|
tableId,
|
|
@@ -4952,7 +5036,7 @@ function Component(props, apiRef) {
|
|
|
4952
5036
|
...c
|
|
4953
5037
|
}
|
|
4954
5038
|
)
|
|
4955
|
-
)), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */
|
|
5039
|
+
)), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */ import_react30.default.createElement("th", { "aria-hidden": "true" }))), /* @__PURE__ */ import_react30.default.createElement(
|
|
4956
5040
|
VirtualizedTableBody,
|
|
4957
5041
|
{
|
|
4958
5042
|
ref: tableBodyRef,
|
|
@@ -4963,7 +5047,7 @@ function Component(props, apiRef) {
|
|
|
4963
5047
|
role: "rowgroup",
|
|
4964
5048
|
"aria-label": "DataTableBody"
|
|
4965
5049
|
},
|
|
4966
|
-
!!loading && /* @__PURE__ */
|
|
5050
|
+
!!loading && /* @__PURE__ */ import_react30.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
4967
5051
|
"td",
|
|
4968
5052
|
{
|
|
4969
5053
|
style: {
|
|
@@ -4972,7 +5056,7 @@ function Component(props, apiRef) {
|
|
|
4972
5056
|
overflow: "visible"
|
|
4973
5057
|
}
|
|
4974
5058
|
},
|
|
4975
|
-
/* @__PURE__ */
|
|
5059
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4976
5060
|
Box_default,
|
|
4977
5061
|
{
|
|
4978
5062
|
sx: {
|
|
@@ -4982,10 +5066,10 @@ function Component(props, apiRef) {
|
|
|
4982
5066
|
right: 0
|
|
4983
5067
|
}
|
|
4984
5068
|
},
|
|
4985
|
-
/* @__PURE__ */
|
|
5069
|
+
/* @__PURE__ */ import_react30.default.createElement(LoadingOverlay, null)
|
|
4986
5070
|
)
|
|
4987
5071
|
)),
|
|
4988
|
-
showNoRowsOverlay && /* @__PURE__ */
|
|
5072
|
+
showNoRowsOverlay && /* @__PURE__ */ import_react30.default.createElement("tr", null, /* @__PURE__ */ import_react30.default.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ import_react30.default.createElement(
|
|
4989
5073
|
Box_default,
|
|
4990
5074
|
{
|
|
4991
5075
|
sx: {
|
|
@@ -4995,14 +5079,14 @@ function Component(props, apiRef) {
|
|
|
4995
5079
|
minHeight: "150px"
|
|
4996
5080
|
}
|
|
4997
5081
|
},
|
|
4998
|
-
/* @__PURE__ */
|
|
5082
|
+
/* @__PURE__ */ import_react30.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
|
|
4999
5083
|
))),
|
|
5000
5084
|
virtualizedItems.map((virtualizedRow, index) => {
|
|
5001
5085
|
const rowIndex = virtualizedRow.index;
|
|
5002
5086
|
const row = dataInPage[rowIndex];
|
|
5003
5087
|
const rowId = getId(row, rowIndex);
|
|
5004
5088
|
const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
|
|
5005
|
-
return /* @__PURE__ */
|
|
5089
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
5006
5090
|
VirtualizedTableRow,
|
|
5007
5091
|
{
|
|
5008
5092
|
key: virtualizedRow.key,
|
|
@@ -5022,7 +5106,7 @@ function Component(props, apiRef) {
|
|
|
5022
5106
|
transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
|
|
5023
5107
|
}
|
|
5024
5108
|
},
|
|
5025
|
-
checkboxSelection && /* @__PURE__ */
|
|
5109
|
+
checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
|
|
5026
5110
|
"th",
|
|
5027
5111
|
{
|
|
5028
5112
|
scope: "row",
|
|
@@ -5030,7 +5114,7 @@ function Component(props, apiRef) {
|
|
|
5030
5114
|
textAlign: "center"
|
|
5031
5115
|
}
|
|
5032
5116
|
},
|
|
5033
|
-
/* @__PURE__ */
|
|
5117
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
5034
5118
|
RenderCheckbox,
|
|
5035
5119
|
{
|
|
5036
5120
|
onClick: getCheckboxClickHandler(rowId, row),
|
|
@@ -5041,7 +5125,7 @@ function Component(props, apiRef) {
|
|
|
5041
5125
|
}
|
|
5042
5126
|
)
|
|
5043
5127
|
),
|
|
5044
|
-
/* @__PURE__ */
|
|
5128
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
5045
5129
|
BodyRow2,
|
|
5046
5130
|
{
|
|
5047
5131
|
tableId,
|
|
@@ -5052,12 +5136,12 @@ function Component(props, apiRef) {
|
|
|
5052
5136
|
noWrap: props.noWrap
|
|
5053
5137
|
}
|
|
5054
5138
|
),
|
|
5055
|
-
showFillerColumn && /* @__PURE__ */
|
|
5139
|
+
showFillerColumn && /* @__PURE__ */ import_react30.default.createElement("td", { "aria-hidden": "true" })
|
|
5056
5140
|
);
|
|
5057
5141
|
})
|
|
5058
|
-
), Footer && /* @__PURE__ */
|
|
5142
|
+
), Footer && /* @__PURE__ */ import_react30.default.createElement(Footer, null))
|
|
5059
5143
|
),
|
|
5060
|
-
pagination && /* @__PURE__ */
|
|
5144
|
+
pagination && /* @__PURE__ */ import_react30.default.createElement(
|
|
5061
5145
|
Pagination_default,
|
|
5062
5146
|
{
|
|
5063
5147
|
pt: 2,
|
|
@@ -5070,11 +5154,11 @@ function Component(props, apiRef) {
|
|
|
5070
5154
|
)
|
|
5071
5155
|
);
|
|
5072
5156
|
}
|
|
5073
|
-
var DataTable = (0,
|
|
5157
|
+
var DataTable = (0, import_react30.forwardRef)(Component);
|
|
5074
5158
|
DataTable.displayName = "DataTable";
|
|
5075
5159
|
|
|
5076
5160
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
5077
|
-
var
|
|
5161
|
+
var import_react31 = __toESM(require("react"));
|
|
5078
5162
|
var import_react_imask2 = require("react-imask");
|
|
5079
5163
|
var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5080
5164
|
var import_joy37 = require("@mui/joy");
|
|
@@ -5216,9 +5300,9 @@ var parseDates = (str, format) => {
|
|
|
5216
5300
|
var formatToPattern2 = (format) => {
|
|
5217
5301
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
5218
5302
|
};
|
|
5219
|
-
var TextMaskAdapter5 =
|
|
5303
|
+
var TextMaskAdapter5 = import_react31.default.forwardRef(function TextMaskAdapter6(props, ref) {
|
|
5220
5304
|
const { onChange, format, ...other } = props;
|
|
5221
|
-
return /* @__PURE__ */
|
|
5305
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
5222
5306
|
import_react_imask2.IMaskInput,
|
|
5223
5307
|
{
|
|
5224
5308
|
...other,
|
|
@@ -5252,7 +5336,7 @@ var TextMaskAdapter5 = import_react30.default.forwardRef(function TextMaskAdapte
|
|
|
5252
5336
|
}
|
|
5253
5337
|
);
|
|
5254
5338
|
});
|
|
5255
|
-
var DateRangePicker = (0,
|
|
5339
|
+
var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
5256
5340
|
const props = (0, import_joy37.useThemeProps)({ props: inProps, name: "DateRangePicker" });
|
|
5257
5341
|
const {
|
|
5258
5342
|
onChange,
|
|
@@ -5279,28 +5363,28 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5279
5363
|
numberOfMonths,
|
|
5280
5364
|
...innerProps
|
|
5281
5365
|
} = props;
|
|
5282
|
-
const innerRef = (0,
|
|
5283
|
-
const buttonRef = (0,
|
|
5366
|
+
const innerRef = (0, import_react31.useRef)(null);
|
|
5367
|
+
const buttonRef = (0, import_react31.useRef)(null);
|
|
5284
5368
|
const [rawValue, setValue] = useControlledState(
|
|
5285
5369
|
props.value,
|
|
5286
5370
|
props.defaultValue ?? null,
|
|
5287
|
-
(0,
|
|
5371
|
+
(0, import_react31.useCallback)(
|
|
5288
5372
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
5289
5373
|
[props.name, onChange]
|
|
5290
5374
|
)
|
|
5291
5375
|
);
|
|
5292
5376
|
const value = rawValue ?? "";
|
|
5293
5377
|
const isAlphabeticDisplay = hasAlphabeticMonth2(displayFormat);
|
|
5294
|
-
const [displayValue, setDisplayValue] = (0,
|
|
5378
|
+
const [displayValue, setDisplayValue] = (0, import_react31.useState)(
|
|
5295
5379
|
() => value ? formatValueString2(parseDates(value, format), displayFormat, locale) : ""
|
|
5296
5380
|
);
|
|
5297
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5381
|
+
const [anchorEl, setAnchorEl] = (0, import_react31.useState)(null);
|
|
5298
5382
|
const open = Boolean(anchorEl);
|
|
5299
|
-
const calendarValue = (0,
|
|
5383
|
+
const calendarValue = (0, import_react31.useMemo)(
|
|
5300
5384
|
() => value ? parseDates(value, format) : void 0,
|
|
5301
5385
|
[value, format]
|
|
5302
5386
|
);
|
|
5303
|
-
(0,
|
|
5387
|
+
(0, import_react31.useEffect)(() => {
|
|
5304
5388
|
if (value) {
|
|
5305
5389
|
try {
|
|
5306
5390
|
const dates = parseDates(value, format);
|
|
@@ -5312,13 +5396,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5312
5396
|
setDisplayValue("");
|
|
5313
5397
|
}
|
|
5314
5398
|
}, [displayFormat, locale, value, format]);
|
|
5315
|
-
(0,
|
|
5399
|
+
(0, import_react31.useEffect)(() => {
|
|
5316
5400
|
if (!anchorEl) {
|
|
5317
5401
|
innerRef.current?.blur();
|
|
5318
5402
|
}
|
|
5319
5403
|
}, [anchorEl, innerRef]);
|
|
5320
|
-
(0,
|
|
5321
|
-
const handleChange = (0,
|
|
5404
|
+
(0, import_react31.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5405
|
+
const handleChange = (0, import_react31.useCallback)(
|
|
5322
5406
|
(event) => {
|
|
5323
5407
|
const value2 = event.target.value;
|
|
5324
5408
|
setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat, locale) : value2);
|
|
@@ -5326,7 +5410,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5326
5410
|
},
|
|
5327
5411
|
[displayFormat, format, locale, setValue]
|
|
5328
5412
|
);
|
|
5329
|
-
const handleDisplayInputChange = (0,
|
|
5413
|
+
const handleDisplayInputChange = (0, import_react31.useCallback)(
|
|
5330
5414
|
(event) => {
|
|
5331
5415
|
if (event.target.value === "") {
|
|
5332
5416
|
handleChange({
|
|
@@ -5351,14 +5435,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5351
5435
|
},
|
|
5352
5436
|
[displayFormat, format, handleChange, props.name]
|
|
5353
5437
|
);
|
|
5354
|
-
const handleCalendarToggle = (0,
|
|
5438
|
+
const handleCalendarToggle = (0, import_react31.useCallback)(
|
|
5355
5439
|
(event) => {
|
|
5356
5440
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5357
5441
|
innerRef.current?.focus();
|
|
5358
5442
|
},
|
|
5359
5443
|
[anchorEl, setAnchorEl, innerRef]
|
|
5360
5444
|
);
|
|
5361
|
-
const handleCalendarChange = (0,
|
|
5445
|
+
const handleCalendarChange = (0, import_react31.useCallback)(
|
|
5362
5446
|
([date1, date2]) => {
|
|
5363
5447
|
if (!date1 || !date2) return;
|
|
5364
5448
|
const formattedValue = formatValueString2([date1, date2], format);
|
|
@@ -5372,7 +5456,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5372
5456
|
},
|
|
5373
5457
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5374
5458
|
);
|
|
5375
|
-
const handleInputMouseDown = (0,
|
|
5459
|
+
const handleInputMouseDown = (0, import_react31.useCallback)(
|
|
5376
5460
|
(event) => {
|
|
5377
5461
|
if (inputReadOnly || isAlphabeticDisplay) {
|
|
5378
5462
|
event.preventDefault();
|
|
@@ -5381,7 +5465,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5381
5465
|
},
|
|
5382
5466
|
[inputReadOnly, isAlphabeticDisplay, buttonRef]
|
|
5383
5467
|
);
|
|
5384
|
-
const handleInputClick = (0,
|
|
5468
|
+
const handleInputClick = (0, import_react31.useCallback)(
|
|
5385
5469
|
(event) => {
|
|
5386
5470
|
if (inputReadOnly && !readOnly) {
|
|
5387
5471
|
handleCalendarToggle(event);
|
|
@@ -5389,7 +5473,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5389
5473
|
},
|
|
5390
5474
|
[inputReadOnly, readOnly, handleCalendarToggle]
|
|
5391
5475
|
);
|
|
5392
|
-
const handlePresetClick = (0,
|
|
5476
|
+
const handlePresetClick = (0, import_react31.useCallback)(
|
|
5393
5477
|
(presetValue) => {
|
|
5394
5478
|
if (props.value !== void 0) {
|
|
5395
5479
|
onChange?.({ target: { name: props.name, value: presetValue } });
|
|
@@ -5402,7 +5486,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5402
5486
|
},
|
|
5403
5487
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5404
5488
|
);
|
|
5405
|
-
const isPresetDisabled = (0,
|
|
5489
|
+
const isPresetDisabled = (0, import_react31.useCallback)(
|
|
5406
5490
|
(presetValue) => {
|
|
5407
5491
|
try {
|
|
5408
5492
|
const dates = parseDates(presetValue, format);
|
|
@@ -5421,7 +5505,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5421
5505
|
},
|
|
5422
5506
|
[format, minDate, maxDate, disableFuture, disablePast]
|
|
5423
5507
|
);
|
|
5424
|
-
return /* @__PURE__ */
|
|
5508
|
+
return /* @__PURE__ */ import_react31.default.createElement(DateRangePickerRoot, { sx, className }, /* @__PURE__ */ import_react31.default.createElement(import_base4.FocusTrap, { open: true }, /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, /* @__PURE__ */ import_react31.default.createElement(
|
|
5425
5509
|
Input_default,
|
|
5426
5510
|
{
|
|
5427
5511
|
...innerProps,
|
|
@@ -5448,7 +5532,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5448
5532
|
},
|
|
5449
5533
|
error,
|
|
5450
5534
|
sx: { width: "100%" },
|
|
5451
|
-
endDecorator: /* @__PURE__ */
|
|
5535
|
+
endDecorator: /* @__PURE__ */ import_react31.default.createElement(
|
|
5452
5536
|
CalendarButton2,
|
|
5453
5537
|
{
|
|
5454
5538
|
ref: buttonRef,
|
|
@@ -5460,13 +5544,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5460
5544
|
"aria-expanded": open,
|
|
5461
5545
|
disabled
|
|
5462
5546
|
},
|
|
5463
|
-
/* @__PURE__ */
|
|
5547
|
+
/* @__PURE__ */ import_react31.default.createElement(import_CalendarToday2.default, null)
|
|
5464
5548
|
),
|
|
5465
5549
|
label,
|
|
5466
5550
|
helperText,
|
|
5467
5551
|
readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
|
|
5468
5552
|
}
|
|
5469
|
-
), open && /* @__PURE__ */
|
|
5553
|
+
), open && /* @__PURE__ */ import_react31.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react31.default.createElement(
|
|
5470
5554
|
StyledPopper2,
|
|
5471
5555
|
{
|
|
5472
5556
|
id: "date-range-picker-popper",
|
|
@@ -5485,7 +5569,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5485
5569
|
"aria-label": "Calendar Tooltip",
|
|
5486
5570
|
"aria-expanded": open
|
|
5487
5571
|
},
|
|
5488
|
-
/* @__PURE__ */
|
|
5572
|
+
/* @__PURE__ */ import_react31.default.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react31.default.createElement(CalendarSheetContent2, null, /* @__PURE__ */ import_react31.default.createElement(CalendarSection2, { style: { width: "auto" } }, /* @__PURE__ */ import_react31.default.createElement(
|
|
5489
5573
|
Calendar_default,
|
|
5490
5574
|
{
|
|
5491
5575
|
rangeSelection: true,
|
|
@@ -5498,14 +5582,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5498
5582
|
locale,
|
|
5499
5583
|
numberOfMonths
|
|
5500
5584
|
}
|
|
5501
|
-
), !hideClearButton && /* @__PURE__ */
|
|
5585
|
+
), !hideClearButton && /* @__PURE__ */ import_react31.default.createElement(
|
|
5502
5586
|
DialogActions_default,
|
|
5503
5587
|
{
|
|
5504
5588
|
sx: {
|
|
5505
5589
|
p: 1
|
|
5506
5590
|
}
|
|
5507
5591
|
},
|
|
5508
|
-
/* @__PURE__ */
|
|
5592
|
+
/* @__PURE__ */ import_react31.default.createElement(
|
|
5509
5593
|
Button_default,
|
|
5510
5594
|
{
|
|
5511
5595
|
size,
|
|
@@ -5519,9 +5603,9 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5519
5603
|
},
|
|
5520
5604
|
"Clear"
|
|
5521
5605
|
)
|
|
5522
|
-
)), presets && presets.length > 0 && /* @__PURE__ */
|
|
5606
|
+
)), presets && presets.length > 0 && /* @__PURE__ */ import_react31.default.createElement(PresetPanel2, null, presets.map((preset) => {
|
|
5523
5607
|
const disabled2 = isPresetDisabled(preset.value);
|
|
5524
|
-
return /* @__PURE__ */
|
|
5608
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
5525
5609
|
PresetItem2,
|
|
5526
5610
|
{
|
|
5527
5611
|
key: preset.label,
|
|
@@ -5566,10 +5650,10 @@ DialogTitle.displayName = "DialogTitle";
|
|
|
5566
5650
|
var DialogTitle_default = DialogTitle;
|
|
5567
5651
|
|
|
5568
5652
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
5569
|
-
var
|
|
5653
|
+
var import_react33 = __toESM(require("react"));
|
|
5570
5654
|
|
|
5571
5655
|
// src/components/Modal/Modal.tsx
|
|
5572
|
-
var
|
|
5656
|
+
var import_react32 = __toESM(require("react"));
|
|
5573
5657
|
var import_joy40 = require("@mui/joy");
|
|
5574
5658
|
var import_framer_motion24 = require("framer-motion");
|
|
5575
5659
|
var MotionModal = (0, import_framer_motion24.motion)(import_joy40.Modal);
|
|
@@ -5584,10 +5668,10 @@ var ModalClose = import_joy40.ModalClose;
|
|
|
5584
5668
|
var MotionModalOverflow = (0, import_framer_motion24.motion)(import_joy40.ModalOverflow);
|
|
5585
5669
|
var ModalOverflow = MotionModalOverflow;
|
|
5586
5670
|
ModalOverflow.displayName = "ModalOverflow";
|
|
5587
|
-
|
|
5671
|
+
var ModalFrame = import_react32.default.forwardRef((props, ref) => {
|
|
5588
5672
|
const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
|
|
5589
|
-
return /* @__PURE__ */
|
|
5590
|
-
}
|
|
5673
|
+
return /* @__PURE__ */ import_react32.default.createElement(StyledModalDialog, { ref, ...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));
|
|
5674
|
+
});
|
|
5591
5675
|
ModalFrame.displayName = "ModalFrame";
|
|
5592
5676
|
|
|
5593
5677
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
@@ -5598,20 +5682,20 @@ var StyledDialogFrame = (0, import_joy41.styled)(ModalDialog, {
|
|
|
5598
5682
|
})({
|
|
5599
5683
|
padding: 0
|
|
5600
5684
|
});
|
|
5601
|
-
var DialogFrame =
|
|
5685
|
+
var DialogFrame = import_react33.default.forwardRef((props, ref) => {
|
|
5602
5686
|
const { title, children, actions, fullscreen, onSubmit, ...innerProps } = props;
|
|
5603
5687
|
const formProps = onSubmit ? { component: "form", onSubmit } : void 0;
|
|
5604
|
-
return /* @__PURE__ */
|
|
5688
|
+
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));
|
|
5605
5689
|
});
|
|
5606
5690
|
DialogFrame.displayName = "DialogFrame";
|
|
5607
5691
|
|
|
5608
5692
|
// src/components/Divider/Divider.tsx
|
|
5609
|
-
var
|
|
5693
|
+
var import_react34 = __toESM(require("react"));
|
|
5610
5694
|
var import_joy42 = require("@mui/joy");
|
|
5611
5695
|
var import_framer_motion25 = require("framer-motion");
|
|
5612
5696
|
var MotionDivider = (0, import_framer_motion25.motion)(import_joy42.Divider);
|
|
5613
5697
|
var Divider = (props) => {
|
|
5614
|
-
return /* @__PURE__ */
|
|
5698
|
+
return /* @__PURE__ */ import_react34.default.createElement(MotionDivider, { ...props });
|
|
5615
5699
|
};
|
|
5616
5700
|
Divider.displayName = "Divider";
|
|
5617
5701
|
|
|
@@ -5632,16 +5716,16 @@ var InsetDrawer = (0, import_joy43.styled)(import_joy43.Drawer)(({ theme }) => (
|
|
|
5632
5716
|
}));
|
|
5633
5717
|
|
|
5634
5718
|
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
5635
|
-
var
|
|
5719
|
+
var import_react35 = __toESM(require("react"));
|
|
5636
5720
|
var import_Search = __toESM(require("@mui/icons-material/Search"));
|
|
5637
5721
|
var import_joy44 = require("@mui/joy");
|
|
5638
5722
|
var import_react_virtual3 = require("@tanstack/react-virtual");
|
|
5639
5723
|
var EMPTY_VALUE = [];
|
|
5640
5724
|
function LabelWithTooltip(props) {
|
|
5641
5725
|
const { label, size } = props;
|
|
5642
|
-
const labelContentRef = (0,
|
|
5643
|
-
const [isOverflowing, setIsOverflowing] = (0,
|
|
5644
|
-
const labelContent = /* @__PURE__ */
|
|
5726
|
+
const labelContentRef = (0, import_react35.useRef)(null);
|
|
5727
|
+
const [isOverflowing, setIsOverflowing] = (0, import_react35.useState)(false);
|
|
5728
|
+
const labelContent = /* @__PURE__ */ import_react35.default.createElement(
|
|
5645
5729
|
"span",
|
|
5646
5730
|
{
|
|
5647
5731
|
ref: labelContentRef,
|
|
@@ -5657,14 +5741,14 @@ function LabelWithTooltip(props) {
|
|
|
5657
5741
|
},
|
|
5658
5742
|
label
|
|
5659
5743
|
);
|
|
5660
|
-
(0,
|
|
5744
|
+
(0, import_react35.useEffect)(() => {
|
|
5661
5745
|
const element = labelContentRef.current;
|
|
5662
5746
|
if (element) {
|
|
5663
5747
|
setIsOverflowing(element.scrollWidth > element.clientWidth);
|
|
5664
5748
|
}
|
|
5665
5749
|
}, [label]);
|
|
5666
5750
|
if (isOverflowing) {
|
|
5667
|
-
return /* @__PURE__ */
|
|
5751
|
+
return /* @__PURE__ */ import_react35.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
|
|
5668
5752
|
}
|
|
5669
5753
|
return labelContent;
|
|
5670
5754
|
}
|
|
@@ -5682,22 +5766,22 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5682
5766
|
maxHeight = 300,
|
|
5683
5767
|
disabled
|
|
5684
5768
|
} = props;
|
|
5685
|
-
const [searchTerm, setSearchTerm] = (0,
|
|
5686
|
-
const [sortedOptions, setSortedOptions] = (0,
|
|
5769
|
+
const [searchTerm, setSearchTerm] = (0, import_react35.useState)("");
|
|
5770
|
+
const [sortedOptions, setSortedOptions] = (0, import_react35.useState)(options);
|
|
5687
5771
|
const [rawValue, setInternalValue] = useControlledState(
|
|
5688
5772
|
value,
|
|
5689
5773
|
value ?? EMPTY_VALUE,
|
|
5690
|
-
(0,
|
|
5774
|
+
(0, import_react35.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
|
|
5691
5775
|
);
|
|
5692
5776
|
const internalValue = rawValue ?? EMPTY_VALUE;
|
|
5693
|
-
const parentRef = (0,
|
|
5694
|
-
const isInitialSortRef = (0,
|
|
5695
|
-
const prevOptionsRef = (0,
|
|
5696
|
-
const filteredOptions = (0,
|
|
5777
|
+
const parentRef = (0, import_react35.useRef)(null);
|
|
5778
|
+
const isInitialSortRef = (0, import_react35.useRef)(false);
|
|
5779
|
+
const prevOptionsRef = (0, import_react35.useRef)([...options]);
|
|
5780
|
+
const filteredOptions = (0, import_react35.useMemo)(() => {
|
|
5697
5781
|
if (!searchTerm) return sortedOptions;
|
|
5698
5782
|
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
5699
5783
|
}, [sortedOptions, searchTerm]);
|
|
5700
|
-
const itemSize = (0,
|
|
5784
|
+
const itemSize = (0, import_react35.useMemo)(() => {
|
|
5701
5785
|
switch (size) {
|
|
5702
5786
|
case "sm":
|
|
5703
5787
|
return 28;
|
|
@@ -5715,7 +5799,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5715
5799
|
overscan: 5
|
|
5716
5800
|
});
|
|
5717
5801
|
const items = virtualizer.getVirtualItems();
|
|
5718
|
-
(0,
|
|
5802
|
+
(0, import_react35.useEffect)(() => {
|
|
5719
5803
|
const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
|
|
5720
5804
|
(prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
|
|
5721
5805
|
);
|
|
@@ -5741,13 +5825,13 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5741
5825
|
}
|
|
5742
5826
|
}
|
|
5743
5827
|
}, [options, value]);
|
|
5744
|
-
(0,
|
|
5828
|
+
(0, import_react35.useEffect)(() => {
|
|
5745
5829
|
virtualizer.measure();
|
|
5746
5830
|
}, [virtualizer, filteredOptions, size]);
|
|
5747
|
-
const handleSearchChange = (0,
|
|
5831
|
+
const handleSearchChange = (0, import_react35.useCallback)((event) => {
|
|
5748
5832
|
setSearchTerm(event.target.value);
|
|
5749
5833
|
}, []);
|
|
5750
|
-
const handleCheckboxChange = (0,
|
|
5834
|
+
const handleCheckboxChange = (0, import_react35.useCallback)(
|
|
5751
5835
|
(optionValue) => (event) => {
|
|
5752
5836
|
const checked = event.target.checked;
|
|
5753
5837
|
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
@@ -5755,7 +5839,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5755
5839
|
},
|
|
5756
5840
|
[internalValue, setInternalValue]
|
|
5757
5841
|
);
|
|
5758
|
-
const handleSelectAll = (0,
|
|
5842
|
+
const handleSelectAll = (0, import_react35.useCallback)(
|
|
5759
5843
|
(event) => {
|
|
5760
5844
|
const checked = event.target.checked;
|
|
5761
5845
|
const enabledOptions = filteredOptions.filter((option) => !option.disabled);
|
|
@@ -5771,10 +5855,10 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5771
5855
|
},
|
|
5772
5856
|
[filteredOptions, internalValue, setInternalValue]
|
|
5773
5857
|
);
|
|
5774
|
-
const enabledFilteredOptions = (0,
|
|
5858
|
+
const enabledFilteredOptions = (0, import_react35.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
|
|
5775
5859
|
const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
|
|
5776
5860
|
const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
|
|
5777
|
-
return /* @__PURE__ */
|
|
5861
|
+
return /* @__PURE__ */ import_react35.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react35.default.createElement(
|
|
5778
5862
|
Input_default,
|
|
5779
5863
|
{
|
|
5780
5864
|
label,
|
|
@@ -5787,9 +5871,9 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5787
5871
|
onChange: handleSearchChange,
|
|
5788
5872
|
size,
|
|
5789
5873
|
disabled,
|
|
5790
|
-
endDecorator: /* @__PURE__ */
|
|
5874
|
+
endDecorator: /* @__PURE__ */ import_react35.default.createElement(import_Search.default, null)
|
|
5791
5875
|
}
|
|
5792
|
-
), filteredOptions.length === 0 ? /* @__PURE__ */
|
|
5876
|
+
), 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(
|
|
5793
5877
|
"div",
|
|
5794
5878
|
{
|
|
5795
5879
|
ref: parentRef,
|
|
@@ -5800,7 +5884,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5800
5884
|
marginTop: "8px"
|
|
5801
5885
|
}
|
|
5802
5886
|
},
|
|
5803
|
-
!searchTerm && /* @__PURE__ */
|
|
5887
|
+
!searchTerm && /* @__PURE__ */ import_react35.default.createElement(
|
|
5804
5888
|
Checkbox_default,
|
|
5805
5889
|
{
|
|
5806
5890
|
label: "Select all",
|
|
@@ -5817,7 +5901,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5817
5901
|
sx: { width: "100%", height: itemSize }
|
|
5818
5902
|
}
|
|
5819
5903
|
),
|
|
5820
|
-
/* @__PURE__ */
|
|
5904
|
+
/* @__PURE__ */ import_react35.default.createElement(
|
|
5821
5905
|
Stack_default,
|
|
5822
5906
|
{
|
|
5823
5907
|
sx: {
|
|
@@ -5827,11 +5911,11 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5827
5911
|
},
|
|
5828
5912
|
items.map((virtualRow) => {
|
|
5829
5913
|
const option = filteredOptions[virtualRow.index];
|
|
5830
|
-
return /* @__PURE__ */
|
|
5914
|
+
return /* @__PURE__ */ import_react35.default.createElement(
|
|
5831
5915
|
Checkbox_default,
|
|
5832
5916
|
{
|
|
5833
5917
|
key: virtualRow.key,
|
|
5834
|
-
label: /* @__PURE__ */
|
|
5918
|
+
label: /* @__PURE__ */ import_react35.default.createElement(LabelWithTooltip, { label: option.label, size }),
|
|
5835
5919
|
checked: internalValue.includes(option.value),
|
|
5836
5920
|
onChange: handleCheckboxChange(option.value),
|
|
5837
5921
|
size,
|
|
@@ -5859,16 +5943,16 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5859
5943
|
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
5860
5944
|
|
|
5861
5945
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
5862
|
-
var
|
|
5946
|
+
var import_react48 = __toESM(require("react"));
|
|
5863
5947
|
var import_joy58 = require("@mui/joy");
|
|
5864
5948
|
|
|
5865
5949
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
5866
|
-
var
|
|
5950
|
+
var import_react36 = __toESM(require("react"));
|
|
5867
5951
|
var import_joy45 = require("@mui/joy");
|
|
5868
5952
|
function CheckboxGroup(props) {
|
|
5869
5953
|
const { id, label, options, value, onChange, hidden } = props;
|
|
5870
5954
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
5871
|
-
const handleCheckboxChange = (0,
|
|
5955
|
+
const handleCheckboxChange = (0, import_react36.useCallback)(
|
|
5872
5956
|
(optionValue) => (event) => {
|
|
5873
5957
|
const checked = event.target.checked;
|
|
5874
5958
|
let newValue;
|
|
@@ -5884,7 +5968,7 @@ function CheckboxGroup(props) {
|
|
|
5884
5968
|
if (hidden) {
|
|
5885
5969
|
return null;
|
|
5886
5970
|
}
|
|
5887
|
-
return /* @__PURE__ */
|
|
5971
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_joy45.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react36.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), options.map((option) => /* @__PURE__ */ import_react36.default.createElement(
|
|
5888
5972
|
Checkbox_default,
|
|
5889
5973
|
{
|
|
5890
5974
|
key: `${id}-${option.value}`,
|
|
@@ -5897,12 +5981,12 @@ function CheckboxGroup(props) {
|
|
|
5897
5981
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
5898
5982
|
|
|
5899
5983
|
// src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
|
|
5900
|
-
var
|
|
5984
|
+
var import_react37 = __toESM(require("react"));
|
|
5901
5985
|
var import_joy46 = require("@mui/joy");
|
|
5902
5986
|
function FilterableCheckboxGroup2(props) {
|
|
5903
5987
|
const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
|
|
5904
5988
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
5905
|
-
const handleChange = (0,
|
|
5989
|
+
const handleChange = (0, import_react37.useCallback)(
|
|
5906
5990
|
(newValue) => {
|
|
5907
5991
|
setInternalValue(newValue);
|
|
5908
5992
|
},
|
|
@@ -5911,7 +5995,7 @@ function FilterableCheckboxGroup2(props) {
|
|
|
5911
5995
|
if (hidden) {
|
|
5912
5996
|
return null;
|
|
5913
5997
|
}
|
|
5914
|
-
return /* @__PURE__ */
|
|
5998
|
+
return /* @__PURE__ */ import_react37.default.createElement(import_joy46.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react37.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react37.default.createElement(
|
|
5915
5999
|
FilterableCheckboxGroup,
|
|
5916
6000
|
{
|
|
5917
6001
|
value: internalValue ?? [],
|
|
@@ -5926,7 +6010,7 @@ function FilterableCheckboxGroup2(props) {
|
|
|
5926
6010
|
FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
|
|
5927
6011
|
|
|
5928
6012
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
5929
|
-
var
|
|
6013
|
+
var import_react38 = __toESM(require("react"));
|
|
5930
6014
|
|
|
5931
6015
|
// src/components/Radio/Radio.tsx
|
|
5932
6016
|
var import_joy47 = require("@mui/joy");
|
|
@@ -5943,7 +6027,7 @@ var import_joy48 = require("@mui/joy");
|
|
|
5943
6027
|
function RadioGroup2(props) {
|
|
5944
6028
|
const { id, label, options, value, onChange, hidden } = props;
|
|
5945
6029
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
5946
|
-
const handleRadioChange = (0,
|
|
6030
|
+
const handleRadioChange = (0, import_react38.useCallback)(
|
|
5947
6031
|
(event) => {
|
|
5948
6032
|
const newValue = event.target.value;
|
|
5949
6033
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -5955,12 +6039,12 @@ function RadioGroup2(props) {
|
|
|
5955
6039
|
if (hidden) {
|
|
5956
6040
|
return null;
|
|
5957
6041
|
}
|
|
5958
|
-
return /* @__PURE__ */
|
|
6042
|
+
return /* @__PURE__ */ import_react38.default.createElement(import_joy48.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react38.default.createElement(import_joy48.Stack, { spacing: 1 }, /* @__PURE__ */ import_react38.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label)), /* @__PURE__ */ import_react38.default.createElement(RadioGroup, { name: id, value: internalValue?.toString(), onChange: handleRadioChange }, options.map((option) => /* @__PURE__ */ import_react38.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value.toString(), label: option.label }))));
|
|
5959
6043
|
}
|
|
5960
6044
|
RadioGroup2.displayName = "RadioGroup";
|
|
5961
6045
|
|
|
5962
6046
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
5963
|
-
var
|
|
6047
|
+
var import_react39 = __toESM(require("react"));
|
|
5964
6048
|
var import_joy49 = require("@mui/joy");
|
|
5965
6049
|
function DateRange(props) {
|
|
5966
6050
|
const {
|
|
@@ -5978,8 +6062,8 @@ function DateRange(props) {
|
|
|
5978
6062
|
hideClearButton
|
|
5979
6063
|
} = props;
|
|
5980
6064
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
5981
|
-
const [selectedOption, setSelectedOption] = (0,
|
|
5982
|
-
const dateRangeOptions = (0,
|
|
6065
|
+
const [selectedOption, setSelectedOption] = (0, import_react39.useState)("all-time");
|
|
6066
|
+
const dateRangeOptions = (0, import_react39.useMemo)(
|
|
5983
6067
|
() => [
|
|
5984
6068
|
{ label: "All Time", value: "all-time" },
|
|
5985
6069
|
{ label: "This Month", value: "this-month" },
|
|
@@ -5989,7 +6073,7 @@ function DateRange(props) {
|
|
|
5989
6073
|
],
|
|
5990
6074
|
[]
|
|
5991
6075
|
);
|
|
5992
|
-
const getDateRangeForOption = (0,
|
|
6076
|
+
const getDateRangeForOption = (0, import_react39.useCallback)(
|
|
5993
6077
|
(option) => {
|
|
5994
6078
|
const now = /* @__PURE__ */ new Date();
|
|
5995
6079
|
const currentYear = now.getFullYear();
|
|
@@ -6028,7 +6112,7 @@ function DateRange(props) {
|
|
|
6028
6112
|
},
|
|
6029
6113
|
[internalValue]
|
|
6030
6114
|
);
|
|
6031
|
-
const determineOptionFromValue = (0,
|
|
6115
|
+
const determineOptionFromValue = (0, import_react39.useCallback)(
|
|
6032
6116
|
(value2) => {
|
|
6033
6117
|
if (!value2) {
|
|
6034
6118
|
return "all-time";
|
|
@@ -6044,17 +6128,17 @@ function DateRange(props) {
|
|
|
6044
6128
|
},
|
|
6045
6129
|
[getDateRangeForOption]
|
|
6046
6130
|
);
|
|
6047
|
-
const customDateRangeValue = (0,
|
|
6131
|
+
const customDateRangeValue = (0, import_react39.useMemo)(() => {
|
|
6048
6132
|
if (selectedOption === "custom" && internalValue) {
|
|
6049
6133
|
return `${internalValue[0]} - ${internalValue[1]}`;
|
|
6050
6134
|
}
|
|
6051
6135
|
return "";
|
|
6052
6136
|
}, [selectedOption, internalValue]);
|
|
6053
|
-
(0,
|
|
6137
|
+
(0, import_react39.useEffect)(() => {
|
|
6054
6138
|
const newOption = determineOptionFromValue(internalValue);
|
|
6055
6139
|
setSelectedOption(newOption);
|
|
6056
6140
|
}, [internalValue, determineOptionFromValue]);
|
|
6057
|
-
const handleOptionChange = (0,
|
|
6141
|
+
const handleOptionChange = (0, import_react39.useCallback)(
|
|
6058
6142
|
(event) => {
|
|
6059
6143
|
const newOption = event.target.value;
|
|
6060
6144
|
setSelectedOption(newOption);
|
|
@@ -6063,7 +6147,7 @@ function DateRange(props) {
|
|
|
6063
6147
|
},
|
|
6064
6148
|
[getDateRangeForOption, setInternalValue]
|
|
6065
6149
|
);
|
|
6066
|
-
const handleCustomDateChange = (0,
|
|
6150
|
+
const handleCustomDateChange = (0, import_react39.useCallback)(
|
|
6067
6151
|
(event) => {
|
|
6068
6152
|
const dateRangeString = event.target.value;
|
|
6069
6153
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
@@ -6084,7 +6168,7 @@ function DateRange(props) {
|
|
|
6084
6168
|
if (hidden) {
|
|
6085
6169
|
return null;
|
|
6086
6170
|
}
|
|
6087
|
-
return /* @__PURE__ */
|
|
6171
|
+
return /* @__PURE__ */ import_react39.default.createElement(import_joy49.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react39.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react39.default.createElement(RadioGroup, { name: `${id}-options`, value: selectedOption, onChange: handleOptionChange }, dateRangeOptions.map((option) => /* @__PURE__ */ import_react39.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value, label: option.label }))), selectedOption === "custom" && /* @__PURE__ */ import_react39.default.createElement(
|
|
6088
6172
|
DateRangePicker,
|
|
6089
6173
|
{
|
|
6090
6174
|
value: customDateRangeValue,
|
|
@@ -6103,11 +6187,11 @@ function DateRange(props) {
|
|
|
6103
6187
|
DateRange.displayName = "DateRange";
|
|
6104
6188
|
|
|
6105
6189
|
// src/components/FilterMenu/components/MonthRange.tsx
|
|
6106
|
-
var
|
|
6190
|
+
var import_react41 = __toESM(require("react"));
|
|
6107
6191
|
var import_joy51 = require("@mui/joy");
|
|
6108
6192
|
|
|
6109
6193
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
6110
|
-
var
|
|
6194
|
+
var import_react40 = __toESM(require("react"));
|
|
6111
6195
|
var import_react_imask3 = require("react-imask");
|
|
6112
6196
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
6113
6197
|
var import_joy50 = require("@mui/joy");
|
|
@@ -6168,9 +6252,9 @@ var parseDates2 = (str) => {
|
|
|
6168
6252
|
var formatToPattern3 = (format) => {
|
|
6169
6253
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
6170
6254
|
};
|
|
6171
|
-
var TextMaskAdapter7 =
|
|
6255
|
+
var TextMaskAdapter7 = import_react40.default.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
6172
6256
|
const { onChange, format, ...other } = props;
|
|
6173
|
-
return /* @__PURE__ */
|
|
6257
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
6174
6258
|
import_react_imask3.IMaskInput,
|
|
6175
6259
|
{
|
|
6176
6260
|
...other,
|
|
@@ -6198,7 +6282,7 @@ var TextMaskAdapter7 = import_react39.default.forwardRef(function TextMaskAdapte
|
|
|
6198
6282
|
}
|
|
6199
6283
|
);
|
|
6200
6284
|
});
|
|
6201
|
-
var MonthRangePicker = (0,
|
|
6285
|
+
var MonthRangePicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
6202
6286
|
const props = (0, import_joy50.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
6203
6287
|
const {
|
|
6204
6288
|
onChange,
|
|
@@ -6222,24 +6306,24 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6222
6306
|
} = props;
|
|
6223
6307
|
const displayFormat = displayFormatProp ?? format;
|
|
6224
6308
|
const isAlphabeticDisplay = hasAlphabeticMonth3(displayFormat);
|
|
6225
|
-
const innerRef = (0,
|
|
6226
|
-
const buttonRef = (0,
|
|
6309
|
+
const innerRef = (0, import_react40.useRef)(null);
|
|
6310
|
+
const buttonRef = (0, import_react40.useRef)(null);
|
|
6227
6311
|
const [rawValue, setValue] = useControlledState(
|
|
6228
6312
|
props.value,
|
|
6229
6313
|
props.defaultValue ?? null,
|
|
6230
|
-
(0,
|
|
6314
|
+
(0, import_react40.useCallback)(
|
|
6231
6315
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
6232
6316
|
[props.name, onChange]
|
|
6233
6317
|
)
|
|
6234
6318
|
);
|
|
6235
6319
|
const value = rawValue ?? "";
|
|
6236
|
-
const [displayValue, setDisplayValue] = (0,
|
|
6320
|
+
const [displayValue, setDisplayValue] = (0, import_react40.useState)(
|
|
6237
6321
|
() => value ? formatValueString3(parseDates2(value), displayFormat, locale) : ""
|
|
6238
6322
|
);
|
|
6239
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
6323
|
+
const [anchorEl, setAnchorEl] = (0, import_react40.useState)(null);
|
|
6240
6324
|
const open = Boolean(anchorEl);
|
|
6241
|
-
const calendarValue = (0,
|
|
6242
|
-
(0,
|
|
6325
|
+
const calendarValue = (0, import_react40.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
6326
|
+
(0, import_react40.useEffect)(() => {
|
|
6243
6327
|
if (value) {
|
|
6244
6328
|
try {
|
|
6245
6329
|
const dates = parseDates2(value);
|
|
@@ -6251,13 +6335,13 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6251
6335
|
setDisplayValue("");
|
|
6252
6336
|
}
|
|
6253
6337
|
}, [displayFormat, locale, value]);
|
|
6254
|
-
(0,
|
|
6338
|
+
(0, import_react40.useEffect)(() => {
|
|
6255
6339
|
if (!anchorEl) {
|
|
6256
6340
|
innerRef.current?.blur();
|
|
6257
6341
|
}
|
|
6258
6342
|
}, [anchorEl, innerRef]);
|
|
6259
|
-
(0,
|
|
6260
|
-
const handleChange = (0,
|
|
6343
|
+
(0, import_react40.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
6344
|
+
const handleChange = (0, import_react40.useCallback)(
|
|
6261
6345
|
(event) => {
|
|
6262
6346
|
setDisplayValue(
|
|
6263
6347
|
event.target.value ? formatValueString3(parseDates2(event.target.value), displayFormat, locale) : ""
|
|
@@ -6266,7 +6350,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6266
6350
|
},
|
|
6267
6351
|
[displayFormat, locale, setValue]
|
|
6268
6352
|
);
|
|
6269
|
-
const handleInputMouseDown = (0,
|
|
6353
|
+
const handleInputMouseDown = (0, import_react40.useCallback)(
|
|
6270
6354
|
(event) => {
|
|
6271
6355
|
if (isAlphabeticDisplay) {
|
|
6272
6356
|
event.preventDefault();
|
|
@@ -6275,14 +6359,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6275
6359
|
},
|
|
6276
6360
|
[isAlphabeticDisplay, buttonRef]
|
|
6277
6361
|
);
|
|
6278
|
-
const handleCalendarToggle = (0,
|
|
6362
|
+
const handleCalendarToggle = (0, import_react40.useCallback)(
|
|
6279
6363
|
(event) => {
|
|
6280
6364
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6281
6365
|
innerRef.current?.focus();
|
|
6282
6366
|
},
|
|
6283
6367
|
[anchorEl, setAnchorEl, innerRef]
|
|
6284
6368
|
);
|
|
6285
|
-
const handleCalendarChange = (0,
|
|
6369
|
+
const handleCalendarChange = (0, import_react40.useCallback)(
|
|
6286
6370
|
([date1, date2]) => {
|
|
6287
6371
|
if (!date1 || !date2) return;
|
|
6288
6372
|
const formattedValue = formatValueString3([date1, date2], format);
|
|
@@ -6292,7 +6376,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6292
6376
|
},
|
|
6293
6377
|
[setValue, setAnchorEl, format, displayFormat, locale]
|
|
6294
6378
|
);
|
|
6295
|
-
return /* @__PURE__ */
|
|
6379
|
+
return /* @__PURE__ */ import_react40.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react40.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react40.default.createElement(import_react40.default.Fragment, null, /* @__PURE__ */ import_react40.default.createElement(
|
|
6296
6380
|
Input_default,
|
|
6297
6381
|
{
|
|
6298
6382
|
...innerProps,
|
|
@@ -6322,7 +6406,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6322
6406
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6323
6407
|
fontFamily: "monospace"
|
|
6324
6408
|
},
|
|
6325
|
-
endDecorator: /* @__PURE__ */
|
|
6409
|
+
endDecorator: /* @__PURE__ */ import_react40.default.createElement(
|
|
6326
6410
|
IconButton_default,
|
|
6327
6411
|
{
|
|
6328
6412
|
ref: buttonRef,
|
|
@@ -6333,12 +6417,12 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6333
6417
|
"aria-haspopup": "dialog",
|
|
6334
6418
|
"aria-expanded": open
|
|
6335
6419
|
},
|
|
6336
|
-
/* @__PURE__ */
|
|
6420
|
+
/* @__PURE__ */ import_react40.default.createElement(import_CalendarToday3.default, null)
|
|
6337
6421
|
),
|
|
6338
6422
|
label,
|
|
6339
6423
|
helperText
|
|
6340
6424
|
}
|
|
6341
|
-
), open && /* @__PURE__ */
|
|
6425
|
+
), open && /* @__PURE__ */ import_react40.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6342
6426
|
StyledPopper3,
|
|
6343
6427
|
{
|
|
6344
6428
|
id: "month-range-picker-popper",
|
|
@@ -6357,7 +6441,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6357
6441
|
"aria-label": "Calendar Tooltip",
|
|
6358
6442
|
"aria-expanded": open
|
|
6359
6443
|
},
|
|
6360
|
-
/* @__PURE__ */
|
|
6444
|
+
/* @__PURE__ */ import_react40.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6361
6445
|
Calendar_default,
|
|
6362
6446
|
{
|
|
6363
6447
|
view: "month",
|
|
@@ -6371,14 +6455,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6371
6455
|
disablePast,
|
|
6372
6456
|
locale
|
|
6373
6457
|
}
|
|
6374
|
-
), /* @__PURE__ */
|
|
6458
|
+
), /* @__PURE__ */ import_react40.default.createElement(
|
|
6375
6459
|
DialogActions_default,
|
|
6376
6460
|
{
|
|
6377
6461
|
sx: {
|
|
6378
6462
|
p: 1
|
|
6379
6463
|
}
|
|
6380
6464
|
},
|
|
6381
|
-
/* @__PURE__ */
|
|
6465
|
+
/* @__PURE__ */ import_react40.default.createElement(
|
|
6382
6466
|
Button_default,
|
|
6383
6467
|
{
|
|
6384
6468
|
size,
|
|
@@ -6413,11 +6497,11 @@ function MonthRange(props) {
|
|
|
6413
6497
|
locale
|
|
6414
6498
|
} = props;
|
|
6415
6499
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
6416
|
-
const pickerValue = (0,
|
|
6500
|
+
const pickerValue = (0, import_react41.useMemo)(
|
|
6417
6501
|
() => internalValue ? `${internalValue[0]} - ${internalValue[1]}` : "",
|
|
6418
6502
|
[internalValue]
|
|
6419
6503
|
);
|
|
6420
|
-
const handleChange = (0,
|
|
6504
|
+
const handleChange = (0, import_react41.useCallback)(
|
|
6421
6505
|
(event) => {
|
|
6422
6506
|
const rangeString = event.target.value;
|
|
6423
6507
|
if (rangeString && rangeString.includes(" - ")) {
|
|
@@ -6434,7 +6518,7 @@ function MonthRange(props) {
|
|
|
6434
6518
|
if (hidden) {
|
|
6435
6519
|
return null;
|
|
6436
6520
|
}
|
|
6437
|
-
return /* @__PURE__ */
|
|
6521
|
+
return /* @__PURE__ */ import_react41.default.createElement(import_joy51.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react41.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react41.default.createElement(
|
|
6438
6522
|
MonthRangePicker,
|
|
6439
6523
|
{
|
|
6440
6524
|
value: pickerValue,
|
|
@@ -6452,12 +6536,12 @@ function MonthRange(props) {
|
|
|
6452
6536
|
MonthRange.displayName = "MonthRange";
|
|
6453
6537
|
|
|
6454
6538
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
6455
|
-
var
|
|
6539
|
+
var import_react42 = __toESM(require("react"));
|
|
6456
6540
|
var import_joy52 = require("@mui/joy");
|
|
6457
6541
|
function CurrencyInput3(props) {
|
|
6458
6542
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
6459
6543
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
6460
|
-
const handleCurrencyChange = (0,
|
|
6544
|
+
const handleCurrencyChange = (0, import_react42.useCallback)(
|
|
6461
6545
|
(event) => {
|
|
6462
6546
|
const newValue = event.target.value ?? void 0;
|
|
6463
6547
|
setInternalValue(newValue);
|
|
@@ -6467,7 +6551,7 @@ function CurrencyInput3(props) {
|
|
|
6467
6551
|
if (hidden) {
|
|
6468
6552
|
return null;
|
|
6469
6553
|
}
|
|
6470
|
-
return /* @__PURE__ */
|
|
6554
|
+
return /* @__PURE__ */ import_react42.default.createElement(import_joy52.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react42.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react42.default.createElement(
|
|
6471
6555
|
CurrencyInput,
|
|
6472
6556
|
{
|
|
6473
6557
|
value: internalValue,
|
|
@@ -6483,14 +6567,14 @@ function CurrencyInput3(props) {
|
|
|
6483
6567
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
6484
6568
|
|
|
6485
6569
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
6486
|
-
var
|
|
6570
|
+
var import_react43 = __toESM(require("react"));
|
|
6487
6571
|
var import_joy53 = require("@mui/joy");
|
|
6488
6572
|
function CurrencyRange(props) {
|
|
6489
6573
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
6490
6574
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
6491
6575
|
const minValue = internalValue?.[0];
|
|
6492
6576
|
const maxValue = internalValue?.[1];
|
|
6493
|
-
const handleMinChange = (0,
|
|
6577
|
+
const handleMinChange = (0, import_react43.useCallback)(
|
|
6494
6578
|
(event) => {
|
|
6495
6579
|
const newMinValue = event.target.value ?? void 0;
|
|
6496
6580
|
const currentMaxValue = maxValue;
|
|
@@ -6504,7 +6588,7 @@ function CurrencyRange(props) {
|
|
|
6504
6588
|
},
|
|
6505
6589
|
[maxValue, setInternalValue]
|
|
6506
6590
|
);
|
|
6507
|
-
const handleMaxChange = (0,
|
|
6591
|
+
const handleMaxChange = (0, import_react43.useCallback)(
|
|
6508
6592
|
(event) => {
|
|
6509
6593
|
const newMaxValue = event.target.value ?? void 0;
|
|
6510
6594
|
const currentMinValue = minValue;
|
|
@@ -6521,7 +6605,7 @@ function CurrencyRange(props) {
|
|
|
6521
6605
|
if (hidden) {
|
|
6522
6606
|
return null;
|
|
6523
6607
|
}
|
|
6524
|
-
return /* @__PURE__ */
|
|
6608
|
+
return /* @__PURE__ */ import_react43.default.createElement(import_joy53.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react43.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react43.default.createElement(import_joy53.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react43.default.createElement(
|
|
6525
6609
|
CurrencyInput,
|
|
6526
6610
|
{
|
|
6527
6611
|
label: "Minimum",
|
|
@@ -6534,7 +6618,7 @@ function CurrencyRange(props) {
|
|
|
6534
6618
|
"aria-labelledby": label ? id : void 0,
|
|
6535
6619
|
"aria-label": "Minimum amount"
|
|
6536
6620
|
}
|
|
6537
|
-
), /* @__PURE__ */
|
|
6621
|
+
), /* @__PURE__ */ import_react43.default.createElement(
|
|
6538
6622
|
CurrencyInput,
|
|
6539
6623
|
{
|
|
6540
6624
|
label: "Maximum",
|
|
@@ -6552,20 +6636,20 @@ function CurrencyRange(props) {
|
|
|
6552
6636
|
CurrencyRange.displayName = "CurrencyRange";
|
|
6553
6637
|
|
|
6554
6638
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
6555
|
-
var
|
|
6639
|
+
var import_react45 = __toESM(require("react"));
|
|
6556
6640
|
var import_joy55 = require("@mui/joy");
|
|
6557
6641
|
|
|
6558
6642
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
6559
|
-
var
|
|
6643
|
+
var import_react44 = __toESM(require("react"));
|
|
6560
6644
|
var import_react_number_format2 = require("react-number-format");
|
|
6561
6645
|
var import_joy54 = require("@mui/joy");
|
|
6562
6646
|
var padDecimal = (value, decimalScale) => {
|
|
6563
6647
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
6564
6648
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
6565
6649
|
};
|
|
6566
|
-
var TextMaskAdapter9 =
|
|
6650
|
+
var TextMaskAdapter9 = import_react44.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
6567
6651
|
const { onChange, min, max, ...innerProps } = props;
|
|
6568
|
-
return /* @__PURE__ */
|
|
6652
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6569
6653
|
import_react_number_format2.NumericFormat,
|
|
6570
6654
|
{
|
|
6571
6655
|
...innerProps,
|
|
@@ -6590,7 +6674,7 @@ var PercentageInputRoot = (0, import_joy54.styled)(Input_default, {
|
|
|
6590
6674
|
slot: "Root",
|
|
6591
6675
|
overridesResolver: (props, styles) => styles.root
|
|
6592
6676
|
})({});
|
|
6593
|
-
var PercentageInput =
|
|
6677
|
+
var PercentageInput = import_react44.default.forwardRef(
|
|
6594
6678
|
function PercentageInput2(inProps, ref) {
|
|
6595
6679
|
const props = (0, import_joy54.useThemeProps)({ props: inProps, name: "PercentageInput" });
|
|
6596
6680
|
const {
|
|
@@ -6613,19 +6697,19 @@ var PercentageInput = import_react43.default.forwardRef(
|
|
|
6613
6697
|
const [_value, setValue] = useControlledState(
|
|
6614
6698
|
props.value,
|
|
6615
6699
|
props.defaultValue ?? null,
|
|
6616
|
-
(0,
|
|
6700
|
+
(0, import_react44.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
6617
6701
|
);
|
|
6618
|
-
const value = (0,
|
|
6702
|
+
const value = (0, import_react44.useMemo)(() => {
|
|
6619
6703
|
if (_value && useMinorUnit) {
|
|
6620
6704
|
return _value / Math.pow(10, maxDecimalScale);
|
|
6621
6705
|
}
|
|
6622
6706
|
return _value;
|
|
6623
6707
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
6624
|
-
const internalError = (0,
|
|
6708
|
+
const internalError = (0, import_react44.useMemo)(
|
|
6625
6709
|
() => value != null && (max != null && value > max || min != null && value < min),
|
|
6626
6710
|
[max, min, value]
|
|
6627
6711
|
);
|
|
6628
|
-
const handleChange = (0,
|
|
6712
|
+
const handleChange = (0, import_react44.useCallback)(
|
|
6629
6713
|
(event) => {
|
|
6630
6714
|
if (event.target.value === "") {
|
|
6631
6715
|
setValue(null);
|
|
@@ -6637,7 +6721,7 @@ var PercentageInput = import_react43.default.forwardRef(
|
|
|
6637
6721
|
},
|
|
6638
6722
|
[setValue, useMinorUnit, maxDecimalScale]
|
|
6639
6723
|
);
|
|
6640
|
-
return /* @__PURE__ */
|
|
6724
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6641
6725
|
PercentageInputRoot,
|
|
6642
6726
|
{
|
|
6643
6727
|
...innerProps,
|
|
@@ -6684,7 +6768,7 @@ var PercentageInput3 = ({
|
|
|
6684
6768
|
if (hidden) {
|
|
6685
6769
|
return null;
|
|
6686
6770
|
}
|
|
6687
|
-
return /* @__PURE__ */
|
|
6771
|
+
return /* @__PURE__ */ import_react45.default.createElement(import_joy55.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react45.default.createElement(import_joy55.Typography, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react45.default.createElement(
|
|
6688
6772
|
PercentageInput,
|
|
6689
6773
|
{
|
|
6690
6774
|
value: _value,
|
|
@@ -6699,7 +6783,7 @@ var PercentageInput3 = ({
|
|
|
6699
6783
|
};
|
|
6700
6784
|
|
|
6701
6785
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
6702
|
-
var
|
|
6786
|
+
var import_react46 = __toESM(require("react"));
|
|
6703
6787
|
var import_joy56 = require("@mui/joy");
|
|
6704
6788
|
function PercentageRange(props) {
|
|
6705
6789
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
@@ -6710,7 +6794,7 @@ function PercentageRange(props) {
|
|
|
6710
6794
|
);
|
|
6711
6795
|
const minValue = internalValue?.[0];
|
|
6712
6796
|
const maxValue = internalValue?.[1];
|
|
6713
|
-
const handleMinChange = (0,
|
|
6797
|
+
const handleMinChange = (0, import_react46.useCallback)(
|
|
6714
6798
|
(event) => {
|
|
6715
6799
|
const newMinValue = event.target.value ?? void 0;
|
|
6716
6800
|
const currentMaxValue = maxValue;
|
|
@@ -6722,7 +6806,7 @@ function PercentageRange(props) {
|
|
|
6722
6806
|
},
|
|
6723
6807
|
[maxValue, setInternalValue]
|
|
6724
6808
|
);
|
|
6725
|
-
const handleMaxChange = (0,
|
|
6809
|
+
const handleMaxChange = (0, import_react46.useCallback)(
|
|
6726
6810
|
(event) => {
|
|
6727
6811
|
const newMaxValue = event.target.value ?? void 0;
|
|
6728
6812
|
const currentMinValue = minValue;
|
|
@@ -6737,7 +6821,7 @@ function PercentageRange(props) {
|
|
|
6737
6821
|
if (hidden) {
|
|
6738
6822
|
return null;
|
|
6739
6823
|
}
|
|
6740
|
-
return /* @__PURE__ */
|
|
6824
|
+
return /* @__PURE__ */ import_react46.default.createElement(import_joy56.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react46.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react46.default.createElement(import_joy56.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react46.default.createElement(
|
|
6741
6825
|
PercentageInput,
|
|
6742
6826
|
{
|
|
6743
6827
|
label: "Minimum",
|
|
@@ -6751,7 +6835,7 @@ function PercentageRange(props) {
|
|
|
6751
6835
|
"aria-label": "Minimum percentage",
|
|
6752
6836
|
placeholder: "0%"
|
|
6753
6837
|
}
|
|
6754
|
-
), /* @__PURE__ */
|
|
6838
|
+
), /* @__PURE__ */ import_react46.default.createElement(
|
|
6755
6839
|
PercentageInput,
|
|
6756
6840
|
{
|
|
6757
6841
|
label: "Maximum",
|
|
@@ -6770,13 +6854,13 @@ function PercentageRange(props) {
|
|
|
6770
6854
|
PercentageRange.displayName = "PercentageRange";
|
|
6771
6855
|
|
|
6772
6856
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
6773
|
-
var
|
|
6857
|
+
var import_react47 = __toESM(require("react"));
|
|
6774
6858
|
var import_joy57 = require("@mui/joy");
|
|
6775
6859
|
function Autocomplete2(props) {
|
|
6776
6860
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
6777
6861
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
6778
6862
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
6779
|
-
const handleChange = (0,
|
|
6863
|
+
const handleChange = (0, import_react47.useCallback)(
|
|
6780
6864
|
(event) => {
|
|
6781
6865
|
const val = event.target.value ?? void 0;
|
|
6782
6866
|
if (val) {
|
|
@@ -6791,7 +6875,7 @@ function Autocomplete2(props) {
|
|
|
6791
6875
|
if (hidden) {
|
|
6792
6876
|
return null;
|
|
6793
6877
|
}
|
|
6794
|
-
return /* @__PURE__ */
|
|
6878
|
+
return /* @__PURE__ */ import_react47.default.createElement(import_joy57.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react47.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react47.default.createElement(
|
|
6795
6879
|
Autocomplete,
|
|
6796
6880
|
{
|
|
6797
6881
|
value: autocompleteValue,
|
|
@@ -6826,13 +6910,13 @@ function FilterMenu(props) {
|
|
|
6826
6910
|
void 0
|
|
6827
6911
|
// onChange는 Apply 버튼에서만 호출
|
|
6828
6912
|
);
|
|
6829
|
-
const dropdownRegistry = (0,
|
|
6830
|
-
(0,
|
|
6913
|
+
const dropdownRegistry = (0, import_react48.useContext)(DropdownNestedRegistryContext);
|
|
6914
|
+
(0, import_react48.useEffect)(() => {
|
|
6831
6915
|
if (!dropdownRegistry) return void 0;
|
|
6832
6916
|
dropdownRegistry.register();
|
|
6833
6917
|
return () => dropdownRegistry.unregister();
|
|
6834
6918
|
}, [dropdownRegistry]);
|
|
6835
|
-
const handleFilterChange = (0,
|
|
6919
|
+
const handleFilterChange = (0, import_react48.useCallback)(
|
|
6836
6920
|
(filterId, value) => {
|
|
6837
6921
|
setInternalValues((prev) => ({
|
|
6838
6922
|
...prev,
|
|
@@ -6841,17 +6925,17 @@ function FilterMenu(props) {
|
|
|
6841
6925
|
},
|
|
6842
6926
|
[setInternalValues]
|
|
6843
6927
|
);
|
|
6844
|
-
const handleApply = (0,
|
|
6928
|
+
const handleApply = (0, import_react48.useCallback)(() => {
|
|
6845
6929
|
onChange?.(internalValues);
|
|
6846
6930
|
onClose?.();
|
|
6847
6931
|
}, [onChange, onClose, internalValues]);
|
|
6848
|
-
const handleClear = (0,
|
|
6932
|
+
const handleClear = (0, import_react48.useCallback)(() => {
|
|
6849
6933
|
const clearedValues = resetValues || {};
|
|
6850
6934
|
setInternalValues(clearedValues);
|
|
6851
6935
|
onChange?.(clearedValues);
|
|
6852
6936
|
onClose?.();
|
|
6853
6937
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
6854
|
-
return /* @__PURE__ */
|
|
6938
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
6855
6939
|
ModalDialog,
|
|
6856
6940
|
{
|
|
6857
6941
|
sx: {
|
|
@@ -6861,9 +6945,9 @@ function FilterMenu(props) {
|
|
|
6861
6945
|
top: "initial"
|
|
6862
6946
|
}
|
|
6863
6947
|
},
|
|
6864
|
-
/* @__PURE__ */
|
|
6948
|
+
/* @__PURE__ */ import_react48.default.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ import_react48.default.createElement(import_joy58.Stack, { spacing: 6 }, filters?.map((filter) => {
|
|
6865
6949
|
const FilterComponent = componentMap[filter.type];
|
|
6866
|
-
return FilterComponent ? /* @__PURE__ */
|
|
6950
|
+
return FilterComponent ? /* @__PURE__ */ import_react48.default.createElement(
|
|
6867
6951
|
FilterComponent,
|
|
6868
6952
|
{
|
|
6869
6953
|
key: filter.id,
|
|
@@ -6875,13 +6959,13 @@ function FilterMenu(props) {
|
|
|
6875
6959
|
}
|
|
6876
6960
|
) : null;
|
|
6877
6961
|
}))),
|
|
6878
|
-
/* @__PURE__ */
|
|
6962
|
+
/* @__PURE__ */ import_react48.default.createElement(DialogActions, { sx: { justifyContent: "space-between" } }, useClear && filters?.length === 1 && /* @__PURE__ */ import_react48.default.createElement(import_joy58.Button, { variant: "plain", color: "neutral", onClick: handleClear }, "Clear"), useReset && !useClear && /* @__PURE__ */ import_react48.default.createElement(import_joy58.Button, { variant: "plain", color: "neutral", onClick: handleClear }, "Reset"), /* @__PURE__ */ import_react48.default.createElement(import_joy58.Button, { variant: "solid", color: "primary", onClick: handleApply }, "Apply"))
|
|
6879
6963
|
);
|
|
6880
6964
|
}
|
|
6881
6965
|
FilterMenu.displayName = "FilterMenu";
|
|
6882
6966
|
|
|
6883
6967
|
// src/components/Uploader/Uploader.tsx
|
|
6884
|
-
var
|
|
6968
|
+
var import_react49 = __toESM(require("react"));
|
|
6885
6969
|
var import_joy59 = require("@mui/joy");
|
|
6886
6970
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
6887
6971
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
@@ -6944,7 +7028,7 @@ var getFileSize = (n) => {
|
|
|
6944
7028
|
};
|
|
6945
7029
|
var Preview = (props) => {
|
|
6946
7030
|
const { files, uploaded, onDelete } = props;
|
|
6947
|
-
return /* @__PURE__ */
|
|
7031
|
+
return /* @__PURE__ */ import_react49.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react49.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react49.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react49.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react49.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react49.default.createElement(
|
|
6948
7032
|
Typography_default,
|
|
6949
7033
|
{
|
|
6950
7034
|
level: "body-sm",
|
|
@@ -6956,7 +7040,7 @@ var Preview = (props) => {
|
|
|
6956
7040
|
}
|
|
6957
7041
|
},
|
|
6958
7042
|
file.name
|
|
6959
|
-
), !!file.size && /* @__PURE__ */
|
|
7043
|
+
), !!file.size && /* @__PURE__ */ import_react49.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react49.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react49.default.createElement(ClearIcon2, null))))));
|
|
6960
7044
|
};
|
|
6961
7045
|
var UploaderRoot = (0, import_joy59.styled)(Stack_default, {
|
|
6962
7046
|
name: "Uploader",
|
|
@@ -6999,7 +7083,7 @@ var UploaderIcon = (0, import_joy59.styled)(import_CloudUploadRounded.default, {
|
|
|
6999
7083
|
}
|
|
7000
7084
|
})
|
|
7001
7085
|
);
|
|
7002
|
-
var Uploader =
|
|
7086
|
+
var Uploader = import_react49.default.memo((props) => {
|
|
7003
7087
|
const {
|
|
7004
7088
|
accept,
|
|
7005
7089
|
minCount,
|
|
@@ -7015,14 +7099,14 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7015
7099
|
error: errorProp,
|
|
7016
7100
|
helperText: helperTextProp
|
|
7017
7101
|
} = props;
|
|
7018
|
-
const dropZoneRef = (0,
|
|
7019
|
-
const inputRef = (0,
|
|
7020
|
-
const [errorText, setErrorText] = (0,
|
|
7021
|
-
const [files, setFiles] = (0,
|
|
7022
|
-
const [uploaded, setUploaded] = (0,
|
|
7023
|
-
const [previewState, setPreviewState] = (0,
|
|
7024
|
-
const accepts = (0,
|
|
7025
|
-
const parsedAccepts = (0,
|
|
7102
|
+
const dropZoneRef = (0, import_react49.useRef)(null);
|
|
7103
|
+
const inputRef = (0, import_react49.useRef)(null);
|
|
7104
|
+
const [errorText, setErrorText] = (0, import_react49.useState)();
|
|
7105
|
+
const [files, setFiles] = (0, import_react49.useState)([]);
|
|
7106
|
+
const [uploaded, setUploaded] = (0, import_react49.useState)(props.uploaded || []);
|
|
7107
|
+
const [previewState, setPreviewState] = (0, import_react49.useState)("idle");
|
|
7108
|
+
const accepts = (0, import_react49.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
7109
|
+
const parsedAccepts = (0, import_react49.useMemo)(
|
|
7026
7110
|
() => accepts.flatMap((type) => {
|
|
7027
7111
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
7028
7112
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -7031,7 +7115,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7031
7115
|
}),
|
|
7032
7116
|
[accepts]
|
|
7033
7117
|
);
|
|
7034
|
-
const helperText = (0,
|
|
7118
|
+
const helperText = (0, import_react49.useMemo)(() => {
|
|
7035
7119
|
if (helperTextProp) {
|
|
7036
7120
|
return helperTextProp;
|
|
7037
7121
|
}
|
|
@@ -7061,12 +7145,12 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7061
7145
|
}
|
|
7062
7146
|
return helperTexts.join(", ");
|
|
7063
7147
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
7064
|
-
const error = (0,
|
|
7065
|
-
const showDropZone = (0,
|
|
7148
|
+
const error = (0, import_react49.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
7149
|
+
const showDropZone = (0, import_react49.useMemo)(
|
|
7066
7150
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
7067
7151
|
[files, maxCount, uploaded]
|
|
7068
7152
|
);
|
|
7069
|
-
const addFiles = (0,
|
|
7153
|
+
const addFiles = (0, import_react49.useCallback)(
|
|
7070
7154
|
(uploads) => {
|
|
7071
7155
|
try {
|
|
7072
7156
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -7111,7 +7195,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7111
7195
|
},
|
|
7112
7196
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
7113
7197
|
);
|
|
7114
|
-
(0,
|
|
7198
|
+
(0, import_react49.useEffect)(() => {
|
|
7115
7199
|
if (!dropZoneRef.current || disabled) {
|
|
7116
7200
|
return;
|
|
7117
7201
|
}
|
|
@@ -7139,7 +7223,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7139
7223
|
})
|
|
7140
7224
|
);
|
|
7141
7225
|
}, [disabled, addFiles]);
|
|
7142
|
-
(0,
|
|
7226
|
+
(0, import_react49.useEffect)(() => {
|
|
7143
7227
|
if (inputRef.current && minCount) {
|
|
7144
7228
|
if (files.length < minCount) {
|
|
7145
7229
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -7148,14 +7232,14 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7148
7232
|
}
|
|
7149
7233
|
}
|
|
7150
7234
|
}, [inputRef, files, minCount]);
|
|
7151
|
-
const handleFileChanged = (0,
|
|
7235
|
+
const handleFileChanged = (0, import_react49.useCallback)(
|
|
7152
7236
|
(event) => {
|
|
7153
7237
|
const files2 = Array.from(event.target.files || []);
|
|
7154
7238
|
addFiles(files2);
|
|
7155
7239
|
},
|
|
7156
7240
|
[addFiles]
|
|
7157
7241
|
);
|
|
7158
|
-
const handleDeleteFile = (0,
|
|
7242
|
+
const handleDeleteFile = (0, import_react49.useCallback)(
|
|
7159
7243
|
(deletedFile) => {
|
|
7160
7244
|
if (deletedFile instanceof File) {
|
|
7161
7245
|
setFiles((current) => {
|
|
@@ -7175,10 +7259,10 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7175
7259
|
},
|
|
7176
7260
|
[name, onChange, onDelete]
|
|
7177
7261
|
);
|
|
7178
|
-
const handleUploaderButtonClick = (0,
|
|
7262
|
+
const handleUploaderButtonClick = (0, import_react49.useCallback)(() => {
|
|
7179
7263
|
inputRef.current?.click();
|
|
7180
7264
|
}, []);
|
|
7181
|
-
const uploader = /* @__PURE__ */
|
|
7265
|
+
const uploader = /* @__PURE__ */ import_react49.default.createElement(
|
|
7182
7266
|
FileDropZone,
|
|
7183
7267
|
{
|
|
7184
7268
|
state: previewState,
|
|
@@ -7187,8 +7271,8 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7187
7271
|
ref: dropZoneRef,
|
|
7188
7272
|
onClick: handleUploaderButtonClick
|
|
7189
7273
|
},
|
|
7190
|
-
/* @__PURE__ */
|
|
7191
|
-
/* @__PURE__ */
|
|
7274
|
+
/* @__PURE__ */ import_react49.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react49.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
7275
|
+
/* @__PURE__ */ import_react49.default.createElement(
|
|
7192
7276
|
VisuallyHiddenInput,
|
|
7193
7277
|
{
|
|
7194
7278
|
disabled,
|
|
@@ -7211,7 +7295,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7211
7295
|
}
|
|
7212
7296
|
)
|
|
7213
7297
|
);
|
|
7214
|
-
return /* @__PURE__ */
|
|
7298
|
+
return /* @__PURE__ */ import_react49.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react49.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react49.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react49.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react49.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react49.default.createElement("div", null, errorText), /* @__PURE__ */ import_react49.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react49.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
7215
7299
|
});
|
|
7216
7300
|
Uploader.displayName = "Uploader";
|
|
7217
7301
|
|
|
@@ -7219,9 +7303,12 @@ Uploader.displayName = "Uploader";
|
|
|
7219
7303
|
var import_joy60 = require("@mui/joy");
|
|
7220
7304
|
|
|
7221
7305
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
7222
|
-
var
|
|
7306
|
+
var import_react50 = __toESM(require("react"));
|
|
7223
7307
|
var import_joy61 = require("@mui/joy");
|
|
7224
|
-
function
|
|
7308
|
+
var MenuButtonRootSlot = import_react50.default.forwardRef(function MenuButtonRootSlot2({ as, ...rest }, ref) {
|
|
7309
|
+
return /* @__PURE__ */ import_react50.default.createElement(import_joy61.IconButton, { ...rest, component: as ?? "button", ref });
|
|
7310
|
+
});
|
|
7311
|
+
function IconMenuButtonInner(props, ref) {
|
|
7225
7312
|
const {
|
|
7226
7313
|
size,
|
|
7227
7314
|
icon,
|
|
@@ -7232,8 +7319,10 @@ function IconMenuButton(props) {
|
|
|
7232
7319
|
variant = "plain",
|
|
7233
7320
|
placement = "bottom"
|
|
7234
7321
|
} = props;
|
|
7322
|
+
const { ref: buttonComponentRef, ...buttonComponentProps } = props.buttonComponentProps ?? {};
|
|
7323
|
+
const mergedButtonRef = useMergedRef(buttonComponentRef, ref);
|
|
7235
7324
|
if (!items.length) {
|
|
7236
|
-
return /* @__PURE__ */
|
|
7325
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
7237
7326
|
import_joy61.IconButton,
|
|
7238
7327
|
{
|
|
7239
7328
|
component: props.buttonComponent ?? "button",
|
|
@@ -7242,15 +7331,16 @@ function IconMenuButton(props) {
|
|
|
7242
7331
|
color,
|
|
7243
7332
|
disabled,
|
|
7244
7333
|
loading,
|
|
7245
|
-
...
|
|
7334
|
+
...buttonComponentProps,
|
|
7335
|
+
ref: mergedButtonRef
|
|
7246
7336
|
},
|
|
7247
7337
|
icon
|
|
7248
7338
|
);
|
|
7249
7339
|
}
|
|
7250
|
-
return /* @__PURE__ */
|
|
7340
|
+
return /* @__PURE__ */ import_react50.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react50.default.createElement(
|
|
7251
7341
|
import_joy61.MenuButton,
|
|
7252
7342
|
{
|
|
7253
|
-
slots: { root:
|
|
7343
|
+
slots: { root: MenuButtonRootSlot },
|
|
7254
7344
|
slotProps: {
|
|
7255
7345
|
root: {
|
|
7256
7346
|
component: props.buttonComponent ?? "button",
|
|
@@ -7259,24 +7349,27 @@ function IconMenuButton(props) {
|
|
|
7259
7349
|
color,
|
|
7260
7350
|
disabled,
|
|
7261
7351
|
loading,
|
|
7262
|
-
...
|
|
7352
|
+
...buttonComponentProps,
|
|
7353
|
+
// Joy의 useSlot이 내부 ref와 이 ref를 합쳐준다. 위 no-items 분기와 같은 경로로 ref를 넘긴다.
|
|
7354
|
+
ref: mergedButtonRef
|
|
7263
7355
|
}
|
|
7264
7356
|
}
|
|
7265
7357
|
},
|
|
7266
7358
|
icon
|
|
7267
|
-
), /* @__PURE__ */
|
|
7359
|
+
), /* @__PURE__ */ import_react50.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react50.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
7268
7360
|
}
|
|
7361
|
+
var IconMenuButton = import_react50.default.forwardRef(IconMenuButtonInner);
|
|
7269
7362
|
IconMenuButton.displayName = "IconMenuButton";
|
|
7270
7363
|
|
|
7271
7364
|
// src/components/Markdown/Markdown.tsx
|
|
7272
|
-
var
|
|
7365
|
+
var import_react51 = __toESM(require("react"));
|
|
7273
7366
|
var import_joy62 = require("@mui/joy");
|
|
7274
7367
|
var import_joy63 = require("@mui/joy");
|
|
7275
7368
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
7276
|
-
var LazyReactMarkdown = (0,
|
|
7369
|
+
var LazyReactMarkdown = (0, import_react51.lazy)(() => import("react-markdown"));
|
|
7277
7370
|
var Markdown = (props) => {
|
|
7278
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
7279
|
-
(0,
|
|
7371
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react51.useState)(null);
|
|
7372
|
+
(0, import_react51.useEffect)(() => {
|
|
7280
7373
|
const loadRehypeAccent = async () => {
|
|
7281
7374
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
7282
7375
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -7298,8 +7391,8 @@ var Markdown = (props) => {
|
|
|
7298
7391
|
if (!rehypeAccent2) {
|
|
7299
7392
|
return null;
|
|
7300
7393
|
}
|
|
7301
|
-
return /* @__PURE__ */
|
|
7302
|
-
|
|
7394
|
+
return /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react51.default.createElement(
|
|
7395
|
+
import_react51.Suspense,
|
|
7303
7396
|
{
|
|
7304
7397
|
fallback: (
|
|
7305
7398
|
// While in the fallback state, prevent browser auto-translation (e.g. Chrome/Google Translate)
|
|
@@ -7307,10 +7400,10 @@ var Markdown = (props) => {
|
|
|
7307
7400
|
// swaps the fallback for the real content via insertBefore; if the browser has mutated the DOM
|
|
7308
7401
|
// in the meantime, the reference node's parent changes and React throws a DOMException
|
|
7309
7402
|
// ("Failed to execute 'insertBefore' on 'Node'"), crashing the subtree. (cf. facebook/react#11538)
|
|
7310
|
-
fallback || /* @__PURE__ */
|
|
7403
|
+
fallback || /* @__PURE__ */ import_react51.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react51.default.createElement(import_joy62.Skeleton, null, content || ""))
|
|
7311
7404
|
)
|
|
7312
7405
|
},
|
|
7313
|
-
/* @__PURE__ */
|
|
7406
|
+
/* @__PURE__ */ import_react51.default.createElement(
|
|
7314
7407
|
LazyReactMarkdown,
|
|
7315
7408
|
{
|
|
7316
7409
|
...markdownOptions,
|
|
@@ -7318,17 +7411,17 @@ var Markdown = (props) => {
|
|
|
7318
7411
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
7319
7412
|
remarkPlugins: [import_remark_gfm.default],
|
|
7320
7413
|
components: {
|
|
7321
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
7322
|
-
hr: () => /* @__PURE__ */
|
|
7323
|
-
b: ({ children }) => /* @__PURE__ */
|
|
7324
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
7414
|
+
a: ({ children, href }) => /* @__PURE__ */ import_react51.default.createElement(import_joy63.Link, { href, target: defaultLinkAction }, children),
|
|
7415
|
+
hr: () => /* @__PURE__ */ import_react51.default.createElement(Divider, { sx: { display: "block" } }),
|
|
7416
|
+
b: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
|
|
7417
|
+
strong: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
|
|
7325
7418
|
// Table components
|
|
7326
|
-
table: ({ children }) => /* @__PURE__ */
|
|
7419
|
+
table: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ import_react51.default.createElement(Table, { size: "sm" }, children)),
|
|
7327
7420
|
// Code components
|
|
7328
7421
|
code: ({ children, className }) => {
|
|
7329
7422
|
const isBlock = className?.startsWith("language-");
|
|
7330
7423
|
if (isBlock) {
|
|
7331
|
-
return /* @__PURE__ */
|
|
7424
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
7332
7425
|
Typography,
|
|
7333
7426
|
{
|
|
7334
7427
|
component: "code",
|
|
@@ -7342,7 +7435,7 @@ var Markdown = (props) => {
|
|
|
7342
7435
|
children
|
|
7343
7436
|
);
|
|
7344
7437
|
}
|
|
7345
|
-
return /* @__PURE__ */
|
|
7438
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
7346
7439
|
Typography,
|
|
7347
7440
|
{
|
|
7348
7441
|
component: "code",
|
|
@@ -7357,7 +7450,7 @@ var Markdown = (props) => {
|
|
|
7357
7450
|
children
|
|
7358
7451
|
);
|
|
7359
7452
|
},
|
|
7360
|
-
pre: ({ children }) => /* @__PURE__ */
|
|
7453
|
+
pre: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
7361
7454
|
Sheet,
|
|
7362
7455
|
{
|
|
7363
7456
|
variant: "soft",
|
|
@@ -7375,12 +7468,12 @@ var Markdown = (props) => {
|
|
|
7375
7468
|
// Task list checkbox
|
|
7376
7469
|
input: ({ checked, type }) => {
|
|
7377
7470
|
if (type === "checkbox") {
|
|
7378
|
-
return /* @__PURE__ */
|
|
7471
|
+
return /* @__PURE__ */ import_react51.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
|
|
7379
7472
|
}
|
|
7380
|
-
return /* @__PURE__ */
|
|
7473
|
+
return /* @__PURE__ */ import_react51.default.createElement("input", { checked, type });
|
|
7381
7474
|
},
|
|
7382
7475
|
// Blockquote
|
|
7383
|
-
blockquote: ({ children }) => /* @__PURE__ */
|
|
7476
|
+
blockquote: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
7384
7477
|
Sheet,
|
|
7385
7478
|
{
|
|
7386
7479
|
variant: "soft",
|
|
@@ -7389,12 +7482,12 @@ var Markdown = (props) => {
|
|
|
7389
7482
|
children
|
|
7390
7483
|
),
|
|
7391
7484
|
// Image
|
|
7392
|
-
img: ({ src, alt }) => /* @__PURE__ */
|
|
7485
|
+
img: ({ src, alt }) => /* @__PURE__ */ import_react51.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
|
|
7393
7486
|
// Text style components
|
|
7394
|
-
em: ({ children }) => /* @__PURE__ */
|
|
7395
|
-
del: ({ children }) => /* @__PURE__ */
|
|
7487
|
+
em: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
|
|
7488
|
+
del: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
|
|
7396
7489
|
// Span for accent color (from rehype-accent plugin)
|
|
7397
|
-
span: ({ children, node }) => /* @__PURE__ */
|
|
7490
|
+
span: ({ children, node }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
|
|
7398
7491
|
...markdownOptions?.components
|
|
7399
7492
|
}
|
|
7400
7493
|
}
|
|
@@ -7404,7 +7497,7 @@ var Markdown = (props) => {
|
|
|
7404
7497
|
Markdown.displayName = "Markdown";
|
|
7405
7498
|
|
|
7406
7499
|
// src/components/MenuButton/MenuButton.tsx
|
|
7407
|
-
var
|
|
7500
|
+
var import_react52 = __toESM(require("react"));
|
|
7408
7501
|
var import_joy64 = require("@mui/joy");
|
|
7409
7502
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
7410
7503
|
function MenuButton2(props) {
|
|
@@ -7422,7 +7515,7 @@ function MenuButton2(props) {
|
|
|
7422
7515
|
placement = "bottom"
|
|
7423
7516
|
} = props;
|
|
7424
7517
|
if (!items.length) {
|
|
7425
|
-
return /* @__PURE__ */
|
|
7518
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
7426
7519
|
import_joy64.Button,
|
|
7427
7520
|
{
|
|
7428
7521
|
component: props.buttonComponent ?? "button",
|
|
@@ -7433,12 +7526,12 @@ function MenuButton2(props) {
|
|
|
7433
7526
|
loading,
|
|
7434
7527
|
startDecorator,
|
|
7435
7528
|
...props.buttonComponentProps ?? {},
|
|
7436
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
7529
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react52.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator)
|
|
7437
7530
|
},
|
|
7438
7531
|
buttonText
|
|
7439
7532
|
);
|
|
7440
7533
|
}
|
|
7441
|
-
return /* @__PURE__ */
|
|
7534
|
+
return /* @__PURE__ */ import_react52.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react52.default.createElement(
|
|
7442
7535
|
import_joy64.MenuButton,
|
|
7443
7536
|
{
|
|
7444
7537
|
component: props.buttonComponent ?? "button",
|
|
@@ -7449,15 +7542,15 @@ function MenuButton2(props) {
|
|
|
7449
7542
|
loading,
|
|
7450
7543
|
startDecorator,
|
|
7451
7544
|
...props.buttonComponentProps ?? {},
|
|
7452
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
7545
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react52.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator)
|
|
7453
7546
|
},
|
|
7454
7547
|
buttonText
|
|
7455
|
-
), /* @__PURE__ */
|
|
7548
|
+
), /* @__PURE__ */ import_react52.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react52.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
7456
7549
|
}
|
|
7457
7550
|
MenuButton2.displayName = "MenuButton";
|
|
7458
7551
|
|
|
7459
7552
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
7460
|
-
var
|
|
7553
|
+
var import_react53 = __toESM(require("react"));
|
|
7461
7554
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
7462
7555
|
var import_joy65 = require("@mui/joy");
|
|
7463
7556
|
var import_base6 = require("@mui/base");
|
|
@@ -7513,7 +7606,7 @@ function parseDate4(dateString, format) {
|
|
|
7513
7606
|
const result = new Date(year, month, day);
|
|
7514
7607
|
return result;
|
|
7515
7608
|
}
|
|
7516
|
-
var MonthPicker = (0,
|
|
7609
|
+
var MonthPicker = (0, import_react53.forwardRef)((inProps, ref) => {
|
|
7517
7610
|
const props = (0, import_joy65.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
7518
7611
|
const {
|
|
7519
7612
|
onChange,
|
|
@@ -7540,18 +7633,18 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7540
7633
|
locale,
|
|
7541
7634
|
...innerProps
|
|
7542
7635
|
} = props;
|
|
7543
|
-
const innerRef = (0,
|
|
7544
|
-
const buttonRef = (0,
|
|
7636
|
+
const innerRef = (0, import_react53.useRef)(null);
|
|
7637
|
+
const buttonRef = (0, import_react53.useRef)(null);
|
|
7545
7638
|
const [rawValue, setValue, isControlled] = useControlledState(
|
|
7546
7639
|
props.value,
|
|
7547
7640
|
props.defaultValue ?? null,
|
|
7548
|
-
(0,
|
|
7641
|
+
(0, import_react53.useCallback)(
|
|
7549
7642
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
7550
7643
|
[props.name, onChange]
|
|
7551
7644
|
)
|
|
7552
7645
|
);
|
|
7553
7646
|
const value = rawValue ?? "";
|
|
7554
|
-
const getFormattedDisplayValue = (0,
|
|
7647
|
+
const getFormattedDisplayValue = (0, import_react53.useCallback)(
|
|
7555
7648
|
(inputValue) => {
|
|
7556
7649
|
if (!inputValue) return "";
|
|
7557
7650
|
try {
|
|
@@ -7562,19 +7655,19 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7562
7655
|
},
|
|
7563
7656
|
[format, displayFormat, locale]
|
|
7564
7657
|
);
|
|
7565
|
-
const [displayValue, setDisplayValue] = (0,
|
|
7566
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
7658
|
+
const [displayValue, setDisplayValue] = (0, import_react53.useState)(() => getFormattedDisplayValue(value));
|
|
7659
|
+
const [anchorEl, setAnchorEl] = (0, import_react53.useState)(null);
|
|
7567
7660
|
const open = Boolean(anchorEl);
|
|
7568
|
-
(0,
|
|
7661
|
+
(0, import_react53.useEffect)(() => {
|
|
7569
7662
|
if (!anchorEl) {
|
|
7570
7663
|
innerRef.current?.blur();
|
|
7571
7664
|
}
|
|
7572
7665
|
}, [anchorEl, innerRef]);
|
|
7573
|
-
(0,
|
|
7574
|
-
(0,
|
|
7666
|
+
(0, import_react53.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
7667
|
+
(0, import_react53.useEffect)(() => {
|
|
7575
7668
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
7576
7669
|
}, [value, getFormattedDisplayValue]);
|
|
7577
|
-
const handleChange = (0,
|
|
7670
|
+
const handleChange = (0, import_react53.useCallback)(
|
|
7578
7671
|
(event) => {
|
|
7579
7672
|
const newValue = event.target.value;
|
|
7580
7673
|
setValue(newValue);
|
|
@@ -7584,21 +7677,21 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7584
7677
|
},
|
|
7585
7678
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
7586
7679
|
);
|
|
7587
|
-
const handleCalendarToggle = (0,
|
|
7680
|
+
const handleCalendarToggle = (0, import_react53.useCallback)(
|
|
7588
7681
|
(event) => {
|
|
7589
7682
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
7590
7683
|
innerRef.current?.focus();
|
|
7591
7684
|
},
|
|
7592
7685
|
[anchorEl, setAnchorEl, innerRef]
|
|
7593
7686
|
);
|
|
7594
|
-
const handleInputMouseDown = (0,
|
|
7687
|
+
const handleInputMouseDown = (0, import_react53.useCallback)(
|
|
7595
7688
|
(event) => {
|
|
7596
7689
|
event.preventDefault();
|
|
7597
7690
|
buttonRef.current?.focus();
|
|
7598
7691
|
},
|
|
7599
7692
|
[buttonRef]
|
|
7600
7693
|
);
|
|
7601
|
-
return /* @__PURE__ */
|
|
7694
|
+
return /* @__PURE__ */ import_react53.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react53.default.createElement(import_base6.FocusTrap, { open: true }, /* @__PURE__ */ import_react53.default.createElement(import_react53.default.Fragment, null, /* @__PURE__ */ import_react53.default.createElement(
|
|
7602
7695
|
Input_default,
|
|
7603
7696
|
{
|
|
7604
7697
|
...innerProps,
|
|
@@ -7628,7 +7721,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7628
7721
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
7629
7722
|
fontFamily: "monospace"
|
|
7630
7723
|
},
|
|
7631
|
-
endDecorator: /* @__PURE__ */
|
|
7724
|
+
endDecorator: /* @__PURE__ */ import_react53.default.createElement(
|
|
7632
7725
|
IconButton_default,
|
|
7633
7726
|
{
|
|
7634
7727
|
ref: buttonRef,
|
|
@@ -7640,12 +7733,12 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7640
7733
|
"aria-expanded": open,
|
|
7641
7734
|
disabled
|
|
7642
7735
|
},
|
|
7643
|
-
/* @__PURE__ */
|
|
7736
|
+
/* @__PURE__ */ import_react53.default.createElement(import_CalendarToday4.default, null)
|
|
7644
7737
|
),
|
|
7645
7738
|
label,
|
|
7646
7739
|
helperText
|
|
7647
7740
|
}
|
|
7648
|
-
), open && /* @__PURE__ */
|
|
7741
|
+
), open && /* @__PURE__ */ import_react53.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react53.default.createElement(
|
|
7649
7742
|
StyledPopper4,
|
|
7650
7743
|
{
|
|
7651
7744
|
id: "month-picker-popper",
|
|
@@ -7664,7 +7757,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7664
7757
|
"aria-label": "Calendar Tooltip",
|
|
7665
7758
|
"aria-expanded": open
|
|
7666
7759
|
},
|
|
7667
|
-
/* @__PURE__ */
|
|
7760
|
+
/* @__PURE__ */ import_react53.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react53.default.createElement(
|
|
7668
7761
|
Calendar_default,
|
|
7669
7762
|
{
|
|
7670
7763
|
view: "month",
|
|
@@ -7685,14 +7778,14 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7685
7778
|
disablePast,
|
|
7686
7779
|
locale
|
|
7687
7780
|
}
|
|
7688
|
-
), /* @__PURE__ */
|
|
7781
|
+
), /* @__PURE__ */ import_react53.default.createElement(
|
|
7689
7782
|
DialogActions_default,
|
|
7690
7783
|
{
|
|
7691
7784
|
sx: {
|
|
7692
7785
|
p: 1
|
|
7693
7786
|
}
|
|
7694
7787
|
},
|
|
7695
|
-
/* @__PURE__ */
|
|
7788
|
+
/* @__PURE__ */ import_react53.default.createElement(
|
|
7696
7789
|
Button_default,
|
|
7697
7790
|
{
|
|
7698
7791
|
size,
|
|
@@ -7715,7 +7808,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7715
7808
|
});
|
|
7716
7809
|
|
|
7717
7810
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
7718
|
-
var
|
|
7811
|
+
var import_react54 = __toESM(require("react"));
|
|
7719
7812
|
var import_joy66 = require("@mui/joy");
|
|
7720
7813
|
var AccordionSummary2 = (0, import_joy66.styled)(import_joy66.AccordionSummary, {
|
|
7721
7814
|
name: "NavigationGroup",
|
|
@@ -7739,11 +7832,11 @@ var AccordionDetails2 = (0, import_joy66.styled)(import_joy66.AccordionDetails,
|
|
|
7739
7832
|
}));
|
|
7740
7833
|
function NavigationGroup(props) {
|
|
7741
7834
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
7742
|
-
return /* @__PURE__ */
|
|
7835
|
+
return /* @__PURE__ */ import_react54.default.createElement(import_joy66.Accordion, { ...rest }, /* @__PURE__ */ import_react54.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react54.default.createElement(import_joy66.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react54.default.createElement(AccordionDetails2, null, children));
|
|
7743
7836
|
}
|
|
7744
7837
|
|
|
7745
7838
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
7746
|
-
var
|
|
7839
|
+
var import_react55 = __toESM(require("react"));
|
|
7747
7840
|
var import_joy67 = require("@mui/joy");
|
|
7748
7841
|
var ListItemButton = (0, import_joy67.styled)(import_joy67.ListItemButton, {
|
|
7749
7842
|
name: "NavigationItem",
|
|
@@ -7772,7 +7865,7 @@ function NavigationItem(props) {
|
|
|
7772
7865
|
const handleClick = () => {
|
|
7773
7866
|
onClick?.(id);
|
|
7774
7867
|
};
|
|
7775
|
-
return /* @__PURE__ */
|
|
7868
|
+
return /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItem, { ...rest }, /* @__PURE__ */ import_react55.default.createElement(
|
|
7776
7869
|
ListItemButton,
|
|
7777
7870
|
{
|
|
7778
7871
|
level,
|
|
@@ -7781,21 +7874,21 @@ function NavigationItem(props) {
|
|
|
7781
7874
|
"aria-current": selected,
|
|
7782
7875
|
onClick: handleClick
|
|
7783
7876
|
},
|
|
7784
|
-
startDecorator && /* @__PURE__ */
|
|
7877
|
+
startDecorator && /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItemDecorator, null, startDecorator),
|
|
7785
7878
|
children
|
|
7786
7879
|
));
|
|
7787
7880
|
}
|
|
7788
7881
|
|
|
7789
7882
|
// src/components/Navigator/Navigator.tsx
|
|
7790
|
-
var
|
|
7883
|
+
var import_react56 = __toESM(require("react"));
|
|
7791
7884
|
function Navigator(props) {
|
|
7792
7885
|
const { items, level = 0, onSelect } = props;
|
|
7793
7886
|
const handleItemClick = (id) => {
|
|
7794
7887
|
onSelect?.(id);
|
|
7795
7888
|
};
|
|
7796
|
-
return /* @__PURE__ */
|
|
7889
|
+
return /* @__PURE__ */ import_react56.default.createElement("div", null, items.map((item, index) => {
|
|
7797
7890
|
if (item.type === "item") {
|
|
7798
|
-
return /* @__PURE__ */
|
|
7891
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
7799
7892
|
NavigationItem,
|
|
7800
7893
|
{
|
|
7801
7894
|
key: item.id,
|
|
@@ -7808,7 +7901,7 @@ function Navigator(props) {
|
|
|
7808
7901
|
item.title
|
|
7809
7902
|
);
|
|
7810
7903
|
} else if (item.type === "group") {
|
|
7811
|
-
return /* @__PURE__ */
|
|
7904
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
7812
7905
|
NavigationGroup,
|
|
7813
7906
|
{
|
|
7814
7907
|
key: `${item.title}-${index}`,
|
|
@@ -7826,7 +7919,7 @@ function Navigator(props) {
|
|
|
7826
7919
|
Navigator.displayName = "Navigator";
|
|
7827
7920
|
|
|
7828
7921
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
7829
|
-
var
|
|
7922
|
+
var import_react57 = __toESM(require("react"));
|
|
7830
7923
|
var import_joy68 = require("@mui/joy");
|
|
7831
7924
|
var import_base7 = require("@mui/base");
|
|
7832
7925
|
var import_ArrowDropDown = __toESM(require("@mui/icons-material/ArrowDropDown"));
|
|
@@ -7836,9 +7929,9 @@ var StyledProfileCard = (0, import_joy68.styled)(import_joy3.Stack, {
|
|
|
7836
7929
|
})({});
|
|
7837
7930
|
function ProfileCard(props) {
|
|
7838
7931
|
const { children, chip, caption, size } = props;
|
|
7839
|
-
const captionLevel = (0,
|
|
7840
|
-
const nameLevel = (0,
|
|
7841
|
-
return /* @__PURE__ */
|
|
7932
|
+
const captionLevel = (0, import_react57.useMemo)(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
7933
|
+
const nameLevel = (0, import_react57.useMemo)(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
7934
|
+
return /* @__PURE__ */ import_react57.default.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ import_react57.default.createElement(import_joy3.Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ import_react57.default.createElement(Typography, { level: nameLevel, fontWeight: "bold", textColor: "text.primary" }, children), chip && /* @__PURE__ */ import_react57.default.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ import_react57.default.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
|
|
7842
7935
|
}
|
|
7843
7936
|
ProfileCard.displayName = "ProfileCard";
|
|
7844
7937
|
var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton, {
|
|
@@ -7850,16 +7943,16 @@ var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton,
|
|
|
7850
7943
|
}));
|
|
7851
7944
|
function ProfileMenuButton(props) {
|
|
7852
7945
|
const { size = "sm", src, alt, children, getInitial, ...innerProps } = props;
|
|
7853
|
-
return /* @__PURE__ */
|
|
7946
|
+
return /* @__PURE__ */ import_react57.default.createElement(
|
|
7854
7947
|
StyledProfileMenuButton,
|
|
7855
7948
|
{
|
|
7856
7949
|
variant: "plain",
|
|
7857
7950
|
color: "neutral",
|
|
7858
7951
|
size,
|
|
7859
|
-
endDecorator: /* @__PURE__ */
|
|
7952
|
+
endDecorator: /* @__PURE__ */ import_react57.default.createElement(import_ArrowDropDown.default, null),
|
|
7860
7953
|
...innerProps
|
|
7861
7954
|
},
|
|
7862
|
-
/* @__PURE__ */
|
|
7955
|
+
/* @__PURE__ */ import_react57.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
7863
7956
|
);
|
|
7864
7957
|
}
|
|
7865
7958
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
@@ -7879,9 +7972,9 @@ function ProfileMenu(inProps) {
|
|
|
7879
7972
|
const [open, setOpen] = useControlledState(
|
|
7880
7973
|
_open,
|
|
7881
7974
|
defaultOpen ?? false,
|
|
7882
|
-
(0,
|
|
7975
|
+
(0, import_react57.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
|
|
7883
7976
|
);
|
|
7884
|
-
return /* @__PURE__ */
|
|
7977
|
+
return /* @__PURE__ */ import_react57.default.createElement(import_base7.ClickAwayListener, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ import_react57.default.createElement("div", null, /* @__PURE__ */ import_react57.default.createElement(import_joy68.Dropdown, { open }, /* @__PURE__ */ import_react57.default.createElement(
|
|
7885
7978
|
ProfileMenuButton,
|
|
7886
7979
|
{
|
|
7887
7980
|
size,
|
|
@@ -7891,7 +7984,7 @@ function ProfileMenu(inProps) {
|
|
|
7891
7984
|
getInitial
|
|
7892
7985
|
},
|
|
7893
7986
|
profile.name
|
|
7894
|
-
), /* @__PURE__ */
|
|
7987
|
+
), /* @__PURE__ */ import_react57.default.createElement(ProfileMenuRoot, { size, placement: "bottom-end", ...innerProps, onClose: () => setOpen(false) }, /* @__PURE__ */ import_react57.default.createElement(ProfileCard, { size, caption: profile.caption, chip: profile.chip }, profile.name), !!menuItems.length && /* @__PURE__ */ import_react57.default.createElement(import_joy68.ListDivider, null), menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ import_react57.default.createElement(
|
|
7895
7988
|
MenuItem,
|
|
7896
7989
|
{
|
|
7897
7990
|
key: label,
|
|
@@ -7907,7 +8000,7 @@ function ProfileMenu(inProps) {
|
|
|
7907
8000
|
ProfileMenu.displayName = "ProfileMenu";
|
|
7908
8001
|
|
|
7909
8002
|
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
7910
|
-
var
|
|
8003
|
+
var import_react58 = __toESM(require("react"));
|
|
7911
8004
|
var import_joy69 = require("@mui/joy");
|
|
7912
8005
|
var RadioTileGroupRoot = (0, import_joy69.styled)(RadioGroup, {
|
|
7913
8006
|
name: "RadioTileGroup",
|
|
@@ -7995,7 +8088,7 @@ function RadioTileGroup(props) {
|
|
|
7995
8088
|
error,
|
|
7996
8089
|
required
|
|
7997
8090
|
} = props;
|
|
7998
|
-
const radioGroup = /* @__PURE__ */
|
|
8091
|
+
const radioGroup = /* @__PURE__ */ import_react58.default.createElement(
|
|
7999
8092
|
RadioTileGroupRoot,
|
|
8000
8093
|
{
|
|
8001
8094
|
overlay: true,
|
|
@@ -8006,7 +8099,7 @@ function RadioTileGroup(props) {
|
|
|
8006
8099
|
flex,
|
|
8007
8100
|
columns
|
|
8008
8101
|
},
|
|
8009
|
-
options.map((option) => /* @__PURE__ */
|
|
8102
|
+
options.map((option) => /* @__PURE__ */ import_react58.default.createElement(
|
|
8010
8103
|
RadioTileSheet,
|
|
8011
8104
|
{
|
|
8012
8105
|
key: option.value,
|
|
@@ -8016,7 +8109,7 @@ function RadioTileGroup(props) {
|
|
|
8016
8109
|
flex,
|
|
8017
8110
|
textAlign
|
|
8018
8111
|
},
|
|
8019
|
-
/* @__PURE__ */
|
|
8112
|
+
/* @__PURE__ */ import_react58.default.createElement(
|
|
8020
8113
|
Radio,
|
|
8021
8114
|
{
|
|
8022
8115
|
id: `${option.value}`,
|
|
@@ -8045,7 +8138,7 @@ function RadioTileGroup(props) {
|
|
|
8045
8138
|
}
|
|
8046
8139
|
}
|
|
8047
8140
|
),
|
|
8048
|
-
option.startDecorator && /* @__PURE__ */
|
|
8141
|
+
option.startDecorator && /* @__PURE__ */ import_react58.default.createElement(
|
|
8049
8142
|
Box_default,
|
|
8050
8143
|
{
|
|
8051
8144
|
sx: {
|
|
@@ -8066,15 +8159,15 @@ function RadioTileGroup(props) {
|
|
|
8066
8159
|
)
|
|
8067
8160
|
))
|
|
8068
8161
|
);
|
|
8069
|
-
return /* @__PURE__ */
|
|
8162
|
+
return /* @__PURE__ */ import_react58.default.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ import_react58.default.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ import_react58.default.createElement(FormHelperText_default, null, helperText));
|
|
8070
8163
|
}
|
|
8071
8164
|
RadioTileGroup.displayName = "RadioTileGroup";
|
|
8072
8165
|
|
|
8073
8166
|
// src/components/RadioList/RadioList.tsx
|
|
8074
|
-
var
|
|
8167
|
+
var import_react59 = __toESM(require("react"));
|
|
8075
8168
|
function RadioList(props) {
|
|
8076
8169
|
const { items, ...innerProps } = props;
|
|
8077
|
-
return /* @__PURE__ */
|
|
8170
|
+
return /* @__PURE__ */ import_react59.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react59.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
8078
8171
|
}
|
|
8079
8172
|
RadioList.displayName = "RadioList";
|
|
8080
8173
|
|
|
@@ -8165,7 +8258,7 @@ var SearchBar = React56.forwardRef(function SearchBar2(inProps, ref) {
|
|
|
8165
8258
|
SearchBar.displayName = "SearchBar";
|
|
8166
8259
|
|
|
8167
8260
|
// src/components/Stepper/Stepper.tsx
|
|
8168
|
-
var
|
|
8261
|
+
var import_react60 = __toESM(require("react"));
|
|
8169
8262
|
var import_joy70 = require("@mui/joy");
|
|
8170
8263
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
8171
8264
|
var import_framer_motion27 = require("framer-motion");
|
|
@@ -8194,7 +8287,7 @@ function Stepper(props) {
|
|
|
8194
8287
|
stepOrientation = "horizontal"
|
|
8195
8288
|
} = props;
|
|
8196
8289
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
8197
|
-
return /* @__PURE__ */
|
|
8290
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
8198
8291
|
MotionStepper,
|
|
8199
8292
|
{
|
|
8200
8293
|
orientation,
|
|
@@ -8233,23 +8326,23 @@ function Stepper(props) {
|
|
|
8233
8326
|
const completed = activeStep > i + 1;
|
|
8234
8327
|
const disabled = activeStep < i + 1;
|
|
8235
8328
|
const hasContent = step.label || step.extraContent;
|
|
8236
|
-
return /* @__PURE__ */
|
|
8329
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
8237
8330
|
Step,
|
|
8238
8331
|
{
|
|
8239
8332
|
key: `step-${i}`,
|
|
8240
|
-
indicator: /* @__PURE__ */
|
|
8333
|
+
indicator: /* @__PURE__ */ import_react60.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react60.default.createElement(import_Check.default, null) : step.indicatorContent),
|
|
8241
8334
|
active,
|
|
8242
8335
|
completed,
|
|
8243
8336
|
disabled,
|
|
8244
8337
|
orientation: effectiveStepOrientation
|
|
8245
8338
|
},
|
|
8246
|
-
hasContent && /* @__PURE__ */
|
|
8339
|
+
hasContent && /* @__PURE__ */ import_react60.default.createElement(
|
|
8247
8340
|
Stack_default,
|
|
8248
8341
|
{
|
|
8249
8342
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
8250
8343
|
},
|
|
8251
|
-
step.label && /* @__PURE__ */
|
|
8252
|
-
step.extraContent && /* @__PURE__ */
|
|
8344
|
+
step.label && /* @__PURE__ */ import_react60.default.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
8345
|
+
step.extraContent && /* @__PURE__ */ import_react60.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
8253
8346
|
)
|
|
8254
8347
|
);
|
|
8255
8348
|
})
|
|
@@ -8258,7 +8351,7 @@ function Stepper(props) {
|
|
|
8258
8351
|
Stepper.displayName = "Stepper";
|
|
8259
8352
|
|
|
8260
8353
|
// src/components/Switch/Switch.tsx
|
|
8261
|
-
var
|
|
8354
|
+
var import_react61 = __toESM(require("react"));
|
|
8262
8355
|
var import_joy71 = require("@mui/joy");
|
|
8263
8356
|
var import_framer_motion28 = require("framer-motion");
|
|
8264
8357
|
var MotionSwitch = (0, import_framer_motion28.motion)(import_joy71.Switch);
|
|
@@ -8280,14 +8373,14 @@ var StyledThumb = (0, import_joy71.styled)(import_framer_motion28.motion.div)({
|
|
|
8280
8373
|
right: "var(--Switch-thumbOffset)"
|
|
8281
8374
|
}
|
|
8282
8375
|
});
|
|
8283
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
8376
|
+
var Thumb = (props) => /* @__PURE__ */ import_react61.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
8284
8377
|
var spring = {
|
|
8285
8378
|
type: "spring",
|
|
8286
8379
|
stiffness: 700,
|
|
8287
8380
|
damping: 30
|
|
8288
8381
|
};
|
|
8289
8382
|
var Switch = (props) => {
|
|
8290
|
-
return /* @__PURE__ */
|
|
8383
|
+
return /* @__PURE__ */ import_react61.default.createElement(
|
|
8291
8384
|
MotionSwitch,
|
|
8292
8385
|
{
|
|
8293
8386
|
...props,
|
|
@@ -8301,7 +8394,7 @@ var Switch = (props) => {
|
|
|
8301
8394
|
Switch.displayName = "Switch";
|
|
8302
8395
|
|
|
8303
8396
|
// src/components/Tabs/Tabs.tsx
|
|
8304
|
-
var
|
|
8397
|
+
var import_react62 = __toESM(require("react"));
|
|
8305
8398
|
var import_joy72 = require("@mui/joy");
|
|
8306
8399
|
var StyledTabs = (0, import_joy72.styled)(import_joy72.Tabs)(({ theme }) => ({
|
|
8307
8400
|
backgroundColor: theme.palette.background.body
|
|
@@ -8317,15 +8410,15 @@ var StyledTab = (0, import_joy72.styled)(import_joy72.Tab)(({ theme }) => ({
|
|
|
8317
8410
|
backgroundColor: theme.palette.background.body
|
|
8318
8411
|
}
|
|
8319
8412
|
}));
|
|
8320
|
-
var Tab = (0,
|
|
8321
|
-
return /* @__PURE__ */
|
|
8413
|
+
var Tab = (0, import_react62.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
8414
|
+
return /* @__PURE__ */ import_react62.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
8322
8415
|
});
|
|
8323
8416
|
Tab.displayName = "Tab";
|
|
8324
8417
|
var TabList = import_joy72.TabList;
|
|
8325
8418
|
var TabPanel = import_joy72.TabPanel;
|
|
8326
8419
|
|
|
8327
8420
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
8328
|
-
var
|
|
8421
|
+
var import_react63 = __toESM(require("react"));
|
|
8329
8422
|
var import_joy73 = require("@mui/joy");
|
|
8330
8423
|
var colorScheme = {
|
|
8331
8424
|
palette: {
|
|
@@ -8722,6 +8815,6 @@ var defaultTheme = (0, import_joy73.extendTheme)({
|
|
|
8722
8815
|
});
|
|
8723
8816
|
function ThemeProvider(props) {
|
|
8724
8817
|
const theme = props.theme || defaultTheme;
|
|
8725
|
-
return /* @__PURE__ */
|
|
8818
|
+
return /* @__PURE__ */ import_react63.default.createElement(import_react63.default.Fragment, null, /* @__PURE__ */ import_react63.default.createElement(import_joy73.CssVarsProvider, { theme }, /* @__PURE__ */ import_react63.default.createElement(import_joy73.CssBaseline, null), props.children));
|
|
8726
8819
|
}
|
|
8727
8820
|
ThemeProvider.displayName = "ThemeProvider";
|