@ceed/ads 1.41.3-next.1 → 1.41.3-next.2
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 +793 -708
- package/dist/index.js +255 -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,44 @@ 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 (next[
|
|
3884
|
-
next[
|
|
3927
|
+
if (next[columnId] !== w) {
|
|
3928
|
+
next[columnId] = w;
|
|
3885
3929
|
changed = true;
|
|
3886
3930
|
}
|
|
3887
3931
|
});
|
|
3888
3932
|
return changed ? next : prev;
|
|
3889
3933
|
});
|
|
3890
3934
|
});
|
|
3891
|
-
|
|
3935
|
+
const measured = {};
|
|
3936
|
+
Object.entries(columnsById).forEach(([columnId, def]) => {
|
|
3892
3937
|
const el = def.headerRef.current;
|
|
3893
3938
|
if (el) {
|
|
3894
|
-
el.dataset.
|
|
3939
|
+
el.dataset.hdsColumnId = columnId;
|
|
3940
|
+
el.dataset.field = String(def.field);
|
|
3941
|
+
measured[columnId] = Math.round(el.getBoundingClientRect().width);
|
|
3895
3942
|
roRef.current.observe(el);
|
|
3896
3943
|
}
|
|
3897
3944
|
});
|
|
3945
|
+
setWidths((prev) => {
|
|
3946
|
+
const keys = Object.keys(measured);
|
|
3947
|
+
const same = keys.length === Object.keys(prev).length && keys.every((key) => prev[key] === measured[key]);
|
|
3948
|
+
return same ? prev : measured;
|
|
3949
|
+
});
|
|
3898
3950
|
return () => roRef.current?.disconnect();
|
|
3899
|
-
}, [
|
|
3951
|
+
}, [columnsById]);
|
|
3900
3952
|
return widths;
|
|
3901
3953
|
}
|
|
3902
3954
|
function useDataTableRenderer({
|
|
@@ -3928,33 +3980,33 @@ function useDataTableRenderer({
|
|
|
3928
3980
|
"You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
|
|
3929
3981
|
);
|
|
3930
3982
|
}
|
|
3931
|
-
const onSelectionModelChangeRef = (0,
|
|
3983
|
+
const onSelectionModelChangeRef = (0, import_react27.useRef)(onSelectionModelChange);
|
|
3932
3984
|
onSelectionModelChangeRef.current = onSelectionModelChange;
|
|
3933
|
-
const [focusedRowId, setFocusedRowId] = (0,
|
|
3934
|
-
const [selectionAnchor, setSelectionAnchor] = (0,
|
|
3985
|
+
const [focusedRowId, setFocusedRowId] = (0, import_react27.useState)(null);
|
|
3986
|
+
const [selectionAnchor, setSelectionAnchor] = (0, import_react27.useState)(null);
|
|
3935
3987
|
const [sortModel, setSortModel] = useControlledState(
|
|
3936
3988
|
controlledSortModel,
|
|
3937
3989
|
initialState?.sorting?.sortModel ?? [],
|
|
3938
|
-
(0,
|
|
3990
|
+
(0, import_react27.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
|
|
3939
3991
|
);
|
|
3940
3992
|
const [visibilityModel] = useControlledState(
|
|
3941
3993
|
columnVisibilityModel,
|
|
3942
3994
|
initialState?.columns?.columnVisibilityModel ?? {},
|
|
3943
|
-
(0,
|
|
3995
|
+
(0, import_react27.useCallback)(
|
|
3944
3996
|
(model) => onColumnVisibilityModelChange?.(model),
|
|
3945
3997
|
[onColumnVisibilityModelChange]
|
|
3946
3998
|
)
|
|
3947
3999
|
);
|
|
3948
|
-
const reorderedColumns = (0,
|
|
4000
|
+
const reorderedColumns = (0, import_react27.useMemo)(() => {
|
|
3949
4001
|
if (!columnGroupingModel) return columnsProp;
|
|
3950
4002
|
return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
|
|
3951
4003
|
}, [columnsProp, columnGroupingModel]);
|
|
3952
|
-
const visibleColumns = (0,
|
|
4004
|
+
const visibleColumns = (0, import_react27.useMemo)(
|
|
3953
4005
|
() => reorderedColumns.filter((col) => visibilityModel[col.field] !== false),
|
|
3954
4006
|
[reorderedColumns, visibilityModel]
|
|
3955
4007
|
);
|
|
3956
|
-
const visibleFieldSet = (0,
|
|
3957
|
-
const tableMinWidth = (0,
|
|
4008
|
+
const visibleFieldSet = (0, import_react27.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
|
|
4009
|
+
const tableMinWidth = (0, import_react27.useMemo)(() => {
|
|
3958
4010
|
const DEFAULT_MIN = 50;
|
|
3959
4011
|
let total = checkboxSelection ? 40 : 0;
|
|
3960
4012
|
for (const col of visibleColumns) {
|
|
@@ -3962,7 +4014,7 @@ function useDataTableRenderer({
|
|
|
3962
4014
|
}
|
|
3963
4015
|
return total;
|
|
3964
4016
|
}, [visibleColumns, checkboxSelection]);
|
|
3965
|
-
const allColumnsByField = (0,
|
|
4017
|
+
const allColumnsByField = (0, import_react27.useMemo)(
|
|
3966
4018
|
() => reorderedColumns.reduce(
|
|
3967
4019
|
(acc, curr) => ({
|
|
3968
4020
|
...acc,
|
|
@@ -3972,21 +4024,36 @@ function useDataTableRenderer({
|
|
|
3972
4024
|
),
|
|
3973
4025
|
[reorderedColumns]
|
|
3974
4026
|
);
|
|
3975
|
-
const
|
|
3976
|
-
() =>
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
4027
|
+
const columnIds = (0, import_react27.useMemo)(() => {
|
|
4028
|
+
const taken = new Set(visibleColumns.map((column) => String(column.field)));
|
|
4029
|
+
const ids = [];
|
|
4030
|
+
visibleColumns.forEach((column) => {
|
|
4031
|
+
const field = String(column.field);
|
|
4032
|
+
if (!ids.includes(field)) {
|
|
4033
|
+
ids.push(field);
|
|
4034
|
+
return;
|
|
4035
|
+
}
|
|
4036
|
+
let n = 2;
|
|
4037
|
+
while (taken.has(`${field}__${n}`)) n += 1;
|
|
4038
|
+
taken.add(`${field}__${n}`);
|
|
4039
|
+
ids.push(`${field}__${n}`);
|
|
4040
|
+
});
|
|
4041
|
+
return ids;
|
|
4042
|
+
}, [visibleColumns]);
|
|
4043
|
+
const visibleColumnsById = (0, import_react27.useMemo)(
|
|
4044
|
+
() => Object.fromEntries(
|
|
4045
|
+
visibleColumns.map((column, index) => [
|
|
4046
|
+
columnIds[index],
|
|
4047
|
+
{
|
|
4048
|
+
...column,
|
|
4049
|
+
headerRef: (0, import_react27.createRef)(),
|
|
4050
|
+
tableColRef: (0, import_react27.createRef)()
|
|
3983
4051
|
}
|
|
3984
|
-
|
|
3985
|
-
{}
|
|
4052
|
+
])
|
|
3986
4053
|
),
|
|
3987
|
-
[visibleColumns]
|
|
4054
|
+
[visibleColumns, columnIds]
|
|
3988
4055
|
);
|
|
3989
|
-
const sortComparator = (0,
|
|
4056
|
+
const sortComparator = (0, import_react27.useCallback)(
|
|
3990
4057
|
(rowA, rowB) => {
|
|
3991
4058
|
for (const sort of sortModel) {
|
|
3992
4059
|
const { field, sort: direction } = sort;
|
|
@@ -4015,33 +4082,33 @@ function useDataTableRenderer({
|
|
|
4015
4082
|
},
|
|
4016
4083
|
[sortModel, allColumnsByField]
|
|
4017
4084
|
);
|
|
4018
|
-
const rows = (0,
|
|
4085
|
+
const rows = (0, import_react27.useMemo)(
|
|
4019
4086
|
() => sortModel.length ? [..._rows].sort(sortComparator) : _rows,
|
|
4020
4087
|
[_rows, sortModel, sortComparator]
|
|
4021
4088
|
);
|
|
4022
|
-
const sortOrder = (0,
|
|
4089
|
+
const sortOrder = (0, import_react27.useMemo)(
|
|
4023
4090
|
() => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
|
|
4024
4091
|
[_sortOrder]
|
|
4025
4092
|
);
|
|
4026
|
-
const [page, setPage] = (0,
|
|
4093
|
+
const [page, setPage] = (0, import_react27.useState)(paginationModel?.page || 1);
|
|
4027
4094
|
const pageSize = paginationModel?.pageSize || 20;
|
|
4028
|
-
const getId = (0,
|
|
4095
|
+
const getId = (0, import_react27.useCallback)(
|
|
4029
4096
|
(row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
|
|
4030
4097
|
[_getId, page, pageSize]
|
|
4031
4098
|
);
|
|
4032
|
-
const selectedModelSet = (0,
|
|
4033
|
-
const dataInPage = (0,
|
|
4099
|
+
const selectedModelSet = (0, import_react27.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
|
|
4100
|
+
const dataInPage = (0, import_react27.useMemo)(
|
|
4034
4101
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
4035
4102
|
[rows, page, pageSize, paginationMode, pagination]
|
|
4036
4103
|
);
|
|
4037
|
-
const selectableDataInPage = (0,
|
|
4104
|
+
const selectableDataInPage = (0, import_react27.useMemo)(
|
|
4038
4105
|
() => dataInPage.filter((row, i) => {
|
|
4039
4106
|
if (!isRowSelectable) return true;
|
|
4040
4107
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
4041
4108
|
}),
|
|
4042
4109
|
[dataInPage, isRowSelectable, getId]
|
|
4043
4110
|
);
|
|
4044
|
-
const handleRangeSelection = (0,
|
|
4111
|
+
const handleRangeSelection = (0, import_react27.useCallback)(
|
|
4045
4112
|
(anchor, targetIndex) => {
|
|
4046
4113
|
const startIndex = Math.min(anchor.rowIndex, targetIndex);
|
|
4047
4114
|
const endIndex = Math.max(anchor.rowIndex, targetIndex);
|
|
@@ -4064,51 +4131,60 @@ function useDataTableRenderer({
|
|
|
4064
4131
|
},
|
|
4065
4132
|
[dataInPage, getId, isRowSelectable, selectionModel, onSelectionModelChange]
|
|
4066
4133
|
);
|
|
4067
|
-
const isAllSelected = (0,
|
|
4134
|
+
const isAllSelected = (0, import_react27.useMemo)(
|
|
4068
4135
|
() => selectableDataInPage.length > 0 && selectableDataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
|
|
4069
4136
|
[selectableDataInPage, selectedModelSet, getId]
|
|
4070
4137
|
);
|
|
4071
4138
|
const rowCount = totalRowsProp || rows.length;
|
|
4072
|
-
const selectableRowCount = (0,
|
|
4139
|
+
const selectableRowCount = (0, import_react27.useMemo)(() => {
|
|
4073
4140
|
if (!isRowSelectable) return rowCount;
|
|
4074
4141
|
return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
|
|
4075
4142
|
}, [rows, isRowSelectable, getId, rowCount]);
|
|
4076
|
-
const isTotalSelected = (0,
|
|
4143
|
+
const isTotalSelected = (0, import_react27.useMemo)(
|
|
4077
4144
|
() => _isTotalSelected ?? (selectableRowCount > 0 && (selectionModel?.length || 0) === selectableRowCount),
|
|
4078
4145
|
[_isTotalSelected, selectionModel, selectableRowCount]
|
|
4079
4146
|
);
|
|
4080
|
-
const columnWidths = useColumnWidths(
|
|
4081
|
-
const
|
|
4082
|
-
(
|
|
4083
|
-
|
|
4084
|
-
|
|
4147
|
+
const columnWidths = useColumnWidths(visibleColumnsById);
|
|
4148
|
+
const measuredWidthByField = (0, import_react27.useMemo)(
|
|
4149
|
+
() => Object.fromEntries(
|
|
4150
|
+
Object.entries(visibleColumnsById).map(([columnId, column]) => [column.field, columnWidths[columnId]])
|
|
4151
|
+
),
|
|
4152
|
+
[visibleColumnsById, columnWidths]
|
|
4153
|
+
);
|
|
4154
|
+
const getWidth = (0, import_react27.useCallback)(
|
|
4155
|
+
// 반환값은 pinned offset으로 더해지므로 반드시 숫자여야 한다. width/minWidth는 '500px' 같은 문자열.
|
|
4156
|
+
(f) => measuredWidthByField[f] ?? parsePxValue(allColumnsByField[f]?.width) ?? // Column prop 으로 지정된 width
|
|
4157
|
+
parsePxValue(allColumnsByField[f]?.minWidth) ?? 0,
|
|
4158
|
+
[measuredWidthByField, allColumnsByField]
|
|
4085
4159
|
);
|
|
4086
|
-
const processedColumnGroups = (0,
|
|
4160
|
+
const processedColumnGroups = (0, import_react27.useMemo)(() => {
|
|
4087
4161
|
if (!columnGroupingModel) return null;
|
|
4088
4162
|
return calculateColumnGroups(columnGroupingModel, visibleColumns, visibleFieldSet);
|
|
4089
4163
|
}, [columnGroupingModel, visibleColumns, visibleFieldSet]);
|
|
4090
|
-
const effectivePinnedLeft = (0,
|
|
4164
|
+
const effectivePinnedLeft = (0, import_react27.useMemo)(
|
|
4091
4165
|
() => pinnedColumns?.left?.filter((f) => visibleFieldSet.has(f)),
|
|
4092
4166
|
[pinnedColumns?.left, visibleFieldSet]
|
|
4093
4167
|
);
|
|
4094
|
-
const effectivePinnedRight = (0,
|
|
4168
|
+
const effectivePinnedRight = (0, import_react27.useMemo)(
|
|
4095
4169
|
() => pinnedColumns?.right?.filter((f) => visibleFieldSet.has(f)),
|
|
4096
4170
|
[pinnedColumns?.right, visibleFieldSet]
|
|
4097
4171
|
);
|
|
4098
4172
|
const inferredFieldsKey = JSON.stringify(Object.keys(rows[0] || {}));
|
|
4099
|
-
const inferredFields = (0,
|
|
4100
|
-
const columns = (0,
|
|
4173
|
+
const inferredFields = (0, import_react27.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
|
|
4174
|
+
const columns = (0, import_react27.useMemo)(() => {
|
|
4101
4175
|
const baseColumns = visibleColumns.length > 0 ? visibleColumns : reorderedColumns.length > 0 ? [] : inferredFields.map((key) => ({
|
|
4102
4176
|
field: key
|
|
4103
4177
|
}));
|
|
4104
|
-
return baseColumns.map((column) => {
|
|
4178
|
+
return baseColumns.map((column, index) => {
|
|
4179
|
+
const columnId = columnIds[index] ?? String(column.field);
|
|
4105
4180
|
const isLeftPinned = effectivePinnedLeft?.includes(column.field);
|
|
4106
4181
|
const isRightPinned = effectivePinnedRight?.includes(column.field);
|
|
4107
4182
|
const isPinned = isLeftPinned || isRightPinned;
|
|
4108
4183
|
return {
|
|
4109
4184
|
...column,
|
|
4110
|
-
|
|
4111
|
-
|
|
4185
|
+
columnId,
|
|
4186
|
+
headerRef: visibleColumnsById[columnId]?.headerRef,
|
|
4187
|
+
tableColRef: visibleColumnsById[columnId]?.tableColRef,
|
|
4112
4188
|
isCellEditable: editMode && (typeof column.isCellEditable === "function" ? column.isCellEditable : column.isCellEditable ?? true),
|
|
4113
4189
|
sort: sortModel.find((sort) => sort.field === column.field)?.sort,
|
|
4114
4190
|
sortOrder: allColumnsByField[column.field]?.sortOrder || sortOrder,
|
|
@@ -4125,21 +4201,22 @@ function useDataTableRenderer({
|
|
|
4125
4201
|
inferredFields,
|
|
4126
4202
|
effectivePinnedLeft,
|
|
4127
4203
|
effectivePinnedRight,
|
|
4128
|
-
|
|
4204
|
+
columnIds,
|
|
4205
|
+
visibleColumnsById,
|
|
4129
4206
|
allColumnsByField,
|
|
4130
4207
|
editMode,
|
|
4131
4208
|
sortModel,
|
|
4132
4209
|
sortOrder,
|
|
4133
4210
|
getWidth
|
|
4134
4211
|
]);
|
|
4135
|
-
const handlePageChange = (0,
|
|
4212
|
+
const handlePageChange = (0, import_react27.useCallback)(
|
|
4136
4213
|
(newPage) => {
|
|
4137
4214
|
setPage(newPage);
|
|
4138
4215
|
onPaginationModelChange?.({ page: newPage, pageSize });
|
|
4139
4216
|
},
|
|
4140
4217
|
[onPaginationModelChange, pageSize]
|
|
4141
4218
|
);
|
|
4142
|
-
const handleSortChange = (0,
|
|
4219
|
+
const handleSortChange = (0, import_react27.useCallback)(
|
|
4143
4220
|
(props) => {
|
|
4144
4221
|
const { field, currentSort, multiple } = props;
|
|
4145
4222
|
const column = allColumnsByField[field];
|
|
@@ -4162,38 +4239,37 @@ function useDataTableRenderer({
|
|
|
4162
4239
|
},
|
|
4163
4240
|
[sortOrder, allColumnsByField, sortModel, setSortModel]
|
|
4164
4241
|
);
|
|
4165
|
-
(0,
|
|
4242
|
+
(0, import_react27.useEffect)(() => {
|
|
4166
4243
|
if (!paginationModel) {
|
|
4167
4244
|
handlePageChange(1);
|
|
4168
4245
|
}
|
|
4169
4246
|
}, [rowCount, handlePageChange, paginationModel]);
|
|
4170
|
-
(0,
|
|
4247
|
+
(0, import_react27.useEffect)(() => {
|
|
4171
4248
|
const lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
|
|
4172
4249
|
if (page > lastPage) {
|
|
4173
4250
|
handlePageChange(lastPage);
|
|
4174
4251
|
}
|
|
4175
4252
|
}, [page, rowCount, pageSize, handlePageChange]);
|
|
4176
|
-
(0,
|
|
4253
|
+
(0, import_react27.useEffect)(() => {
|
|
4177
4254
|
onSelectionModelChangeRef.current?.([]);
|
|
4178
4255
|
setSelectionAnchor(null);
|
|
4179
4256
|
}, [page]);
|
|
4180
|
-
const prevRowsRef = (0,
|
|
4181
|
-
(0,
|
|
4257
|
+
const prevRowsRef = (0, import_react27.useRef)(_rows);
|
|
4258
|
+
(0, import_react27.useEffect)(() => {
|
|
4182
4259
|
if (prevRowsRef.current !== _rows) {
|
|
4183
4260
|
setSelectionAnchor(null);
|
|
4184
4261
|
prevRowsRef.current = _rows;
|
|
4185
4262
|
}
|
|
4186
4263
|
}, [_rows]);
|
|
4187
|
-
const handleAutoFit = (0,
|
|
4188
|
-
(
|
|
4189
|
-
const colDef =
|
|
4264
|
+
const handleAutoFit = (0, import_react27.useCallback)(
|
|
4265
|
+
(columnId) => {
|
|
4266
|
+
const colDef = visibleColumnsById[columnId];
|
|
4190
4267
|
if (!colDef?.headerRef.current) return;
|
|
4191
|
-
const
|
|
4192
|
-
const columnType = column && "type" in column ? column.type : void 0;
|
|
4268
|
+
const columnType = "type" in colDef ? colDef.type : void 0;
|
|
4193
4269
|
if (columnType === "actions") return;
|
|
4194
4270
|
const optimalWidth = computeAutoFitWidth({
|
|
4195
4271
|
headerEl: colDef.headerRef.current,
|
|
4196
|
-
field,
|
|
4272
|
+
field: colDef.field,
|
|
4197
4273
|
dataInPage
|
|
4198
4274
|
});
|
|
4199
4275
|
if (optimalWidth == null) return;
|
|
@@ -4201,7 +4277,7 @@ function useDataTableRenderer({
|
|
|
4201
4277
|
colDef.headerRef.current.style.width = widthPx;
|
|
4202
4278
|
if (colDef.tableColRef.current) colDef.tableColRef.current.style.width = widthPx;
|
|
4203
4279
|
},
|
|
4204
|
-
[
|
|
4280
|
+
[visibleColumnsById, dataInPage]
|
|
4205
4281
|
);
|
|
4206
4282
|
return {
|
|
4207
4283
|
rowCount,
|
|
@@ -4217,8 +4293,8 @@ function useDataTableRenderer({
|
|
|
4217
4293
|
handleAutoFit,
|
|
4218
4294
|
isAllSelected,
|
|
4219
4295
|
isTotalSelected,
|
|
4220
|
-
isSelectedRow: (0,
|
|
4221
|
-
isRowSelectable: (0,
|
|
4296
|
+
isSelectedRow: (0, import_react27.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
|
|
4297
|
+
isRowSelectable: (0, import_react27.useCallback)(
|
|
4222
4298
|
(rowId, row) => {
|
|
4223
4299
|
if (!isRowSelectable) return true;
|
|
4224
4300
|
return isRowSelectable({ row, id: rowId });
|
|
@@ -4226,13 +4302,13 @@ function useDataTableRenderer({
|
|
|
4226
4302
|
[isRowSelectable]
|
|
4227
4303
|
),
|
|
4228
4304
|
focusedRowId,
|
|
4229
|
-
onRowFocus: (0,
|
|
4305
|
+
onRowFocus: (0, import_react27.useCallback)((rowId) => {
|
|
4230
4306
|
setFocusedRowId(rowId);
|
|
4231
4307
|
}, []),
|
|
4232
|
-
onAllCheckboxChange: (0,
|
|
4308
|
+
onAllCheckboxChange: (0, import_react27.useCallback)(() => {
|
|
4233
4309
|
onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
|
|
4234
4310
|
}, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
|
|
4235
|
-
onCheckboxChange: (0,
|
|
4311
|
+
onCheckboxChange: (0, import_react27.useCallback)(
|
|
4236
4312
|
(event, selectedModel) => {
|
|
4237
4313
|
const isShiftClick = "shiftKey" in event && event.shiftKey;
|
|
4238
4314
|
const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
|
|
@@ -4266,7 +4342,7 @@ function useDataTableRenderer({
|
|
|
4266
4342
|
columns,
|
|
4267
4343
|
tableMinWidth,
|
|
4268
4344
|
processedColumnGroups,
|
|
4269
|
-
onTotalSelect: (0,
|
|
4345
|
+
onTotalSelect: (0, import_react27.useCallback)(() => {
|
|
4270
4346
|
const selectableRows = rows.filter((row, i) => {
|
|
4271
4347
|
if (!isRowSelectable) return true;
|
|
4272
4348
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
@@ -4280,11 +4356,11 @@ function useDataTableRenderer({
|
|
|
4280
4356
|
}
|
|
4281
4357
|
|
|
4282
4358
|
// src/components/Table/Table.tsx
|
|
4283
|
-
var
|
|
4359
|
+
var import_react28 = __toESM(require("react"));
|
|
4284
4360
|
var import_joy35 = require("@mui/joy");
|
|
4285
4361
|
var Table = (props) => {
|
|
4286
4362
|
const { children, ...inheritProps } = props;
|
|
4287
|
-
return /* @__PURE__ */
|
|
4363
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_joy35.Table, { ...inheritProps }, children);
|
|
4288
4364
|
};
|
|
4289
4365
|
Table.displayName = "Table";
|
|
4290
4366
|
function TableHead(props) {
|
|
@@ -4295,7 +4371,7 @@ function TableHead(props) {
|
|
|
4295
4371
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4296
4372
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4297
4373
|
} = props;
|
|
4298
|
-
return /* @__PURE__ */
|
|
4374
|
+
return /* @__PURE__ */ import_react28.default.createElement("thead", null, /* @__PURE__ */ import_react28.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react28.default.createElement(
|
|
4299
4375
|
"th",
|
|
4300
4376
|
{
|
|
4301
4377
|
style: {
|
|
@@ -4303,8 +4379,8 @@ function TableHead(props) {
|
|
|
4303
4379
|
textAlign: "center"
|
|
4304
4380
|
}
|
|
4305
4381
|
},
|
|
4306
|
-
/* @__PURE__ */
|
|
4307
|
-
), headCells.map((headCell) => /* @__PURE__ */
|
|
4382
|
+
/* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
|
|
4383
|
+
), headCells.map((headCell) => /* @__PURE__ */ import_react28.default.createElement(
|
|
4308
4384
|
"th",
|
|
4309
4385
|
{
|
|
4310
4386
|
key: headCell.label,
|
|
@@ -4329,15 +4405,15 @@ function TableBody(props) {
|
|
|
4329
4405
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4330
4406
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4331
4407
|
} = props;
|
|
4332
|
-
return /* @__PURE__ */
|
|
4408
|
+
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
4409
|
"td",
|
|
4334
4410
|
{
|
|
4335
4411
|
style: {
|
|
4336
4412
|
textAlign: "center"
|
|
4337
4413
|
}
|
|
4338
4414
|
},
|
|
4339
|
-
/* @__PURE__ */
|
|
4340
|
-
), cellOrder.map((cellKey) => /* @__PURE__ */
|
|
4415
|
+
/* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
|
|
4416
|
+
), cellOrder.map((cellKey) => /* @__PURE__ */ import_react28.default.createElement(
|
|
4341
4417
|
"td",
|
|
4342
4418
|
{
|
|
4343
4419
|
key: cellKey,
|
|
@@ -4351,7 +4427,7 @@ function TableBody(props) {
|
|
|
4351
4427
|
TableBody.displayName = "TableBody";
|
|
4352
4428
|
|
|
4353
4429
|
// src/components/Pagination/Pagination.tsx
|
|
4354
|
-
var
|
|
4430
|
+
var import_react29 = __toESM(require("react"));
|
|
4355
4431
|
var import_ChevronLeftRounded = __toESM(require("@mui/icons-material/ChevronLeftRounded"));
|
|
4356
4432
|
var import_ChevronRightRounded = __toESM(require("@mui/icons-material/ChevronRightRounded"));
|
|
4357
4433
|
var import_FirstPageRounded = __toESM(require("@mui/icons-material/FirstPageRounded"));
|
|
@@ -4421,7 +4497,7 @@ function Pagination(inProps) {
|
|
|
4421
4497
|
const [paginationModel, setPaginationModel] = useControlledState(
|
|
4422
4498
|
_paginationModel,
|
|
4423
4499
|
defaultPaginationModel,
|
|
4424
|
-
(0,
|
|
4500
|
+
(0, import_react29.useCallback)(
|
|
4425
4501
|
(newPage) => {
|
|
4426
4502
|
onPageChange(newPage.page);
|
|
4427
4503
|
},
|
|
@@ -4437,7 +4513,7 @@ function Pagination(inProps) {
|
|
|
4437
4513
|
const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
|
|
4438
4514
|
const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
|
|
4439
4515
|
const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
|
|
4440
|
-
(0,
|
|
4516
|
+
(0, import_react29.useEffect)(() => {
|
|
4441
4517
|
if (paginationModel.page > lastPage) {
|
|
4442
4518
|
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
4443
4519
|
}
|
|
@@ -4447,7 +4523,7 @@ function Pagination(inProps) {
|
|
|
4447
4523
|
value: `${i + 1}`
|
|
4448
4524
|
}));
|
|
4449
4525
|
if (variant === "compact") {
|
|
4450
|
-
return /* @__PURE__ */
|
|
4526
|
+
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
4527
|
PaginationIconButton,
|
|
4452
4528
|
{
|
|
4453
4529
|
size,
|
|
@@ -4457,8 +4533,8 @@ function Pagination(inProps) {
|
|
|
4457
4533
|
disabled: paginationModel.page === firstPage,
|
|
4458
4534
|
"aria-label": "First page"
|
|
4459
4535
|
},
|
|
4460
|
-
/* @__PURE__ */
|
|
4461
|
-
), /* @__PURE__ */
|
|
4536
|
+
/* @__PURE__ */ import_react29.default.createElement(import_FirstPageRounded.default, null)
|
|
4537
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4462
4538
|
PaginationIconButton,
|
|
4463
4539
|
{
|
|
4464
4540
|
size,
|
|
@@ -4468,8 +4544,8 @@ function Pagination(inProps) {
|
|
|
4468
4544
|
disabled: paginationModel.page === firstPage,
|
|
4469
4545
|
"aria-label": "Previous page"
|
|
4470
4546
|
},
|
|
4471
|
-
/* @__PURE__ */
|
|
4472
|
-
)), /* @__PURE__ */
|
|
4547
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
|
|
4548
|
+
)), /* @__PURE__ */ import_react29.default.createElement(
|
|
4473
4549
|
Autocomplete_default,
|
|
4474
4550
|
{
|
|
4475
4551
|
size,
|
|
@@ -4488,7 +4564,7 @@ function Pagination(inProps) {
|
|
|
4488
4564
|
}[size]
|
|
4489
4565
|
}
|
|
4490
4566
|
}
|
|
4491
|
-
), /* @__PURE__ */
|
|
4567
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4492
4568
|
Typography_default,
|
|
4493
4569
|
{
|
|
4494
4570
|
level: `body-${size}`,
|
|
@@ -4499,7 +4575,7 @@ function Pagination(inProps) {
|
|
|
4499
4575
|
},
|
|
4500
4576
|
"/ ",
|
|
4501
4577
|
lastPage
|
|
4502
|
-
), /* @__PURE__ */
|
|
4578
|
+
), /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4503
4579
|
PaginationIconButton,
|
|
4504
4580
|
{
|
|
4505
4581
|
size,
|
|
@@ -4509,8 +4585,8 @@ function Pagination(inProps) {
|
|
|
4509
4585
|
disabled: paginationModel.page === lastPage,
|
|
4510
4586
|
"aria-label": "Next page"
|
|
4511
4587
|
},
|
|
4512
|
-
/* @__PURE__ */
|
|
4513
|
-
), /* @__PURE__ */
|
|
4588
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
|
|
4589
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4514
4590
|
PaginationIconButton,
|
|
4515
4591
|
{
|
|
4516
4592
|
size,
|
|
@@ -4520,10 +4596,10 @@ function Pagination(inProps) {
|
|
|
4520
4596
|
disabled: paginationModel.page === lastPage,
|
|
4521
4597
|
"aria-label": "Last page"
|
|
4522
4598
|
},
|
|
4523
|
-
/* @__PURE__ */
|
|
4599
|
+
/* @__PURE__ */ import_react29.default.createElement(import_LastPageRounded.default, null)
|
|
4524
4600
|
))));
|
|
4525
4601
|
}
|
|
4526
|
-
return /* @__PURE__ */
|
|
4602
|
+
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
4603
|
PaginationIconButton,
|
|
4528
4604
|
{
|
|
4529
4605
|
size,
|
|
@@ -4533,8 +4609,8 @@ function Pagination(inProps) {
|
|
|
4533
4609
|
disabled: paginationModel.page === firstPage,
|
|
4534
4610
|
"aria-label": "Previous page"
|
|
4535
4611
|
},
|
|
4536
|
-
/* @__PURE__ */
|
|
4537
|
-
), paginationModel.page !== firstPage && /* @__PURE__ */
|
|
4612
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
|
|
4613
|
+
), 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
4614
|
PaginationButton,
|
|
4539
4615
|
{
|
|
4540
4616
|
size,
|
|
@@ -4544,7 +4620,7 @@ function Pagination(inProps) {
|
|
|
4544
4620
|
"aria-label": "More previous pages"
|
|
4545
4621
|
},
|
|
4546
4622
|
"..."
|
|
4547
|
-
), beforePages.map((p) => /* @__PURE__ */
|
|
4623
|
+
), 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
4624
|
PaginationButton,
|
|
4549
4625
|
{
|
|
4550
4626
|
size,
|
|
@@ -4554,7 +4630,7 @@ function Pagination(inProps) {
|
|
|
4554
4630
|
onClick: () => handlePageChange(paginationModel.page + 3)
|
|
4555
4631
|
},
|
|
4556
4632
|
"..."
|
|
4557
|
-
), paginationModel.page !== lastPage && /* @__PURE__ */
|
|
4633
|
+
), paginationModel.page !== lastPage && /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react29.default.createElement(
|
|
4558
4634
|
PaginationIconButton,
|
|
4559
4635
|
{
|
|
4560
4636
|
size,
|
|
@@ -4564,7 +4640,7 @@ function Pagination(inProps) {
|
|
|
4564
4640
|
disabled: paginationModel.page === lastPage,
|
|
4565
4641
|
"aria-label": "Next page"
|
|
4566
4642
|
},
|
|
4567
|
-
/* @__PURE__ */
|
|
4643
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
|
|
4568
4644
|
)));
|
|
4569
4645
|
}
|
|
4570
4646
|
Pagination.displayName = "Pagination";
|
|
@@ -4638,9 +4714,9 @@ function Component(props, apiRef) {
|
|
|
4638
4714
|
isTotalSelected: ___________,
|
|
4639
4715
|
...innerProps
|
|
4640
4716
|
} = props;
|
|
4641
|
-
const tableId = (0,
|
|
4642
|
-
const parentRef = (0,
|
|
4643
|
-
const tableBodyRef = (0,
|
|
4717
|
+
const tableId = (0, import_react30.useId)();
|
|
4718
|
+
const parentRef = (0, import_react30.useRef)(null);
|
|
4719
|
+
const tableBodyRef = (0, import_react30.useRef)(null);
|
|
4644
4720
|
const {
|
|
4645
4721
|
columns,
|
|
4646
4722
|
processedColumnGroups,
|
|
@@ -4676,10 +4752,10 @@ function Component(props, apiRef) {
|
|
|
4676
4752
|
measureElement: (element) => element.clientHeight,
|
|
4677
4753
|
overscan: 10
|
|
4678
4754
|
});
|
|
4679
|
-
const paginationModel = (0,
|
|
4755
|
+
const paginationModel = (0, import_react30.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
|
|
4680
4756
|
const columnsKey = getObjectVersion(columns);
|
|
4681
|
-
const headerCheckboxElement = (0,
|
|
4682
|
-
() => /* @__PURE__ */
|
|
4757
|
+
const headerCheckboxElement = (0, import_react30.useMemo)(
|
|
4758
|
+
() => /* @__PURE__ */ import_react30.default.createElement(
|
|
4683
4759
|
RenderCheckbox,
|
|
4684
4760
|
{
|
|
4685
4761
|
onChange: onAllCheckboxChange,
|
|
@@ -4704,20 +4780,20 @@ function Component(props, apiRef) {
|
|
|
4704
4780
|
const showNoRowsOverlay = !loading && rowCount === 0;
|
|
4705
4781
|
const showFillerColumn = columns.length > 0 && columns.every((c) => !!c.width);
|
|
4706
4782
|
const totalColCount = Math.max(1, columns.length + (checkboxSelection ? 1 : 0) + (showFillerColumn ? 1 : 0));
|
|
4707
|
-
const getRowClickHandler = (0,
|
|
4783
|
+
const getRowClickHandler = (0, import_react30.useCallback)(
|
|
4708
4784
|
(row, rowId) => (e) => {
|
|
4709
4785
|
onRowClick?.({ row, rowId }, e);
|
|
4710
4786
|
checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
|
|
4711
4787
|
},
|
|
4712
4788
|
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
|
|
4713
4789
|
);
|
|
4714
|
-
const getRowFocusHandler = (0,
|
|
4790
|
+
const getRowFocusHandler = (0, import_react30.useCallback)(
|
|
4715
4791
|
(rowId) => () => {
|
|
4716
4792
|
onRowFocus(rowId);
|
|
4717
4793
|
},
|
|
4718
4794
|
[onRowFocus]
|
|
4719
4795
|
);
|
|
4720
|
-
const getCheckboxClickHandler = (0,
|
|
4796
|
+
const getCheckboxClickHandler = (0, import_react30.useCallback)(
|
|
4721
4797
|
(rowId, row) => (e) => {
|
|
4722
4798
|
e.stopPropagation();
|
|
4723
4799
|
if (isRowSelectableCheck(rowId, row)) {
|
|
@@ -4727,7 +4803,7 @@ function Component(props, apiRef) {
|
|
|
4727
4803
|
},
|
|
4728
4804
|
[onCheckboxChange, isRowSelectableCheck, onRowFocus]
|
|
4729
4805
|
);
|
|
4730
|
-
const handleTableKeyDown = (0,
|
|
4806
|
+
const handleTableKeyDown = (0, import_react30.useCallback)(
|
|
4731
4807
|
(e) => {
|
|
4732
4808
|
const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
|
|
4733
4809
|
if (!supportedKeys.includes(e.key)) return;
|
|
@@ -4817,7 +4893,7 @@ function Component(props, apiRef) {
|
|
|
4817
4893
|
virtualizer
|
|
4818
4894
|
]
|
|
4819
4895
|
);
|
|
4820
|
-
(0,
|
|
4896
|
+
(0, import_react30.useImperativeHandle)(apiRef, () => ({
|
|
4821
4897
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
4822
4898
|
return dataInPage.findIndex((row) => String(getId(row)) === rowId);
|
|
4823
4899
|
},
|
|
@@ -4833,7 +4909,7 @@ function Component(props, apiRef) {
|
|
|
4833
4909
|
});
|
|
4834
4910
|
}
|
|
4835
4911
|
}));
|
|
4836
|
-
return /* @__PURE__ */
|
|
4912
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
4837
4913
|
Box_default,
|
|
4838
4914
|
{
|
|
4839
4915
|
sx: {
|
|
@@ -4843,7 +4919,7 @@ function Component(props, apiRef) {
|
|
|
4843
4919
|
flexDirection: "column"
|
|
4844
4920
|
}
|
|
4845
4921
|
},
|
|
4846
|
-
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */
|
|
4922
|
+
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react30.default.createElement(
|
|
4847
4923
|
Stack_default,
|
|
4848
4924
|
{
|
|
4849
4925
|
direction: "row",
|
|
@@ -4853,10 +4929,10 @@ function Component(props, apiRef) {
|
|
|
4853
4929
|
justifyContent: "space-between",
|
|
4854
4930
|
alignItems: "center"
|
|
4855
4931
|
},
|
|
4856
|
-
!!checkboxSelection && /* @__PURE__ */
|
|
4857
|
-
Toolbar && /* @__PURE__ */
|
|
4932
|
+
!!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"))),
|
|
4933
|
+
Toolbar && /* @__PURE__ */ import_react30.default.createElement(Toolbar, { ...toolbarProps || {} })
|
|
4858
4934
|
),
|
|
4859
|
-
/* @__PURE__ */
|
|
4935
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4860
4936
|
Sheet_default,
|
|
4861
4937
|
{
|
|
4862
4938
|
variant: "outlined",
|
|
@@ -4877,24 +4953,24 @@ function Component(props, apiRef) {
|
|
|
4877
4953
|
ref: parentRef,
|
|
4878
4954
|
...backgroundProps
|
|
4879
4955
|
},
|
|
4880
|
-
/* @__PURE__ */
|
|
4956
|
+
/* @__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
4957
|
"col",
|
|
4882
4958
|
{
|
|
4883
4959
|
style: {
|
|
4884
4960
|
width: "40px"
|
|
4885
4961
|
}
|
|
4886
4962
|
}
|
|
4887
|
-
), columns.map((c) => /* @__PURE__ */
|
|
4963
|
+
), columns.map((c) => /* @__PURE__ */ import_react30.default.createElement(
|
|
4888
4964
|
"col",
|
|
4889
4965
|
{
|
|
4890
4966
|
ref: c.tableColRef,
|
|
4891
|
-
key:
|
|
4967
|
+
key: c.columnId,
|
|
4892
4968
|
style: {
|
|
4893
4969
|
width: c.width,
|
|
4894
4970
|
minWidth: c.minWidth ?? "50px"
|
|
4895
4971
|
}
|
|
4896
4972
|
}
|
|
4897
|
-
)), showFillerColumn && /* @__PURE__ */
|
|
4973
|
+
)), 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
4974
|
"th",
|
|
4899
4975
|
{
|
|
4900
4976
|
rowSpan: processedColumnGroups.maxLevel + 2,
|
|
@@ -4905,12 +4981,12 @@ function Component(props, apiRef) {
|
|
|
4905
4981
|
}
|
|
4906
4982
|
},
|
|
4907
4983
|
headerCheckboxElement
|
|
4908
|
-
), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */
|
|
4984
|
+
), 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
4985
|
const nextGroup = levelGroups[groupIndex + 1];
|
|
4910
4986
|
const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
|
|
4911
4987
|
const params = { groupId: group.groupId };
|
|
4912
4988
|
const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
|
|
4913
|
-
return /* @__PURE__ */
|
|
4989
|
+
return /* @__PURE__ */ import_react30.default.createElement(import_react30.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react30.default.createElement(
|
|
4914
4990
|
"th",
|
|
4915
4991
|
{
|
|
4916
4992
|
colSpan: group.colspan,
|
|
@@ -4922,14 +4998,14 @@ function Component(props, apiRef) {
|
|
|
4922
4998
|
className: computedHeaderClassName
|
|
4923
4999
|
},
|
|
4924
5000
|
group.headerName ?? group.groupId
|
|
4925
|
-
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */
|
|
4926
|
-
}), showFillerColumn && level === 0 && /* @__PURE__ */
|
|
5001
|
+
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react30.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
|
|
5002
|
+
}), showFillerColumn && level === 0 && /* @__PURE__ */ import_react30.default.createElement(
|
|
4927
5003
|
"th",
|
|
4928
5004
|
{
|
|
4929
5005
|
"aria-hidden": "true",
|
|
4930
5006
|
rowSpan: processedColumnGroups.maxLevel + 2
|
|
4931
5007
|
}
|
|
4932
|
-
))), /* @__PURE__ */
|
|
5008
|
+
))), /* @__PURE__ */ import_react30.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
|
|
4933
5009
|
"th",
|
|
4934
5010
|
{
|
|
4935
5011
|
style: {
|
|
@@ -4940,7 +5016,7 @@ function Component(props, apiRef) {
|
|
|
4940
5016
|
headerCheckboxElement
|
|
4941
5017
|
), columns.map((c, i) => (
|
|
4942
5018
|
// @ts-ignore
|
|
4943
|
-
/* @__PURE__ */
|
|
5019
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4944
5020
|
HeadCell2,
|
|
4945
5021
|
{
|
|
4946
5022
|
tableId,
|
|
@@ -4952,7 +5028,7 @@ function Component(props, apiRef) {
|
|
|
4952
5028
|
...c
|
|
4953
5029
|
}
|
|
4954
5030
|
)
|
|
4955
|
-
)), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */
|
|
5031
|
+
)), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */ import_react30.default.createElement("th", { "aria-hidden": "true" }))), /* @__PURE__ */ import_react30.default.createElement(
|
|
4956
5032
|
VirtualizedTableBody,
|
|
4957
5033
|
{
|
|
4958
5034
|
ref: tableBodyRef,
|
|
@@ -4963,7 +5039,7 @@ function Component(props, apiRef) {
|
|
|
4963
5039
|
role: "rowgroup",
|
|
4964
5040
|
"aria-label": "DataTableBody"
|
|
4965
5041
|
},
|
|
4966
|
-
!!loading && /* @__PURE__ */
|
|
5042
|
+
!!loading && /* @__PURE__ */ import_react30.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
4967
5043
|
"td",
|
|
4968
5044
|
{
|
|
4969
5045
|
style: {
|
|
@@ -4972,7 +5048,7 @@ function Component(props, apiRef) {
|
|
|
4972
5048
|
overflow: "visible"
|
|
4973
5049
|
}
|
|
4974
5050
|
},
|
|
4975
|
-
/* @__PURE__ */
|
|
5051
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4976
5052
|
Box_default,
|
|
4977
5053
|
{
|
|
4978
5054
|
sx: {
|
|
@@ -4982,10 +5058,10 @@ function Component(props, apiRef) {
|
|
|
4982
5058
|
right: 0
|
|
4983
5059
|
}
|
|
4984
5060
|
},
|
|
4985
|
-
/* @__PURE__ */
|
|
5061
|
+
/* @__PURE__ */ import_react30.default.createElement(LoadingOverlay, null)
|
|
4986
5062
|
)
|
|
4987
5063
|
)),
|
|
4988
|
-
showNoRowsOverlay && /* @__PURE__ */
|
|
5064
|
+
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
5065
|
Box_default,
|
|
4990
5066
|
{
|
|
4991
5067
|
sx: {
|
|
@@ -4995,14 +5071,14 @@ function Component(props, apiRef) {
|
|
|
4995
5071
|
minHeight: "150px"
|
|
4996
5072
|
}
|
|
4997
5073
|
},
|
|
4998
|
-
/* @__PURE__ */
|
|
5074
|
+
/* @__PURE__ */ import_react30.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
|
|
4999
5075
|
))),
|
|
5000
5076
|
virtualizedItems.map((virtualizedRow, index) => {
|
|
5001
5077
|
const rowIndex = virtualizedRow.index;
|
|
5002
5078
|
const row = dataInPage[rowIndex];
|
|
5003
5079
|
const rowId = getId(row, rowIndex);
|
|
5004
5080
|
const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
|
|
5005
|
-
return /* @__PURE__ */
|
|
5081
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
5006
5082
|
VirtualizedTableRow,
|
|
5007
5083
|
{
|
|
5008
5084
|
key: virtualizedRow.key,
|
|
@@ -5022,7 +5098,7 @@ function Component(props, apiRef) {
|
|
|
5022
5098
|
transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
|
|
5023
5099
|
}
|
|
5024
5100
|
},
|
|
5025
|
-
checkboxSelection && /* @__PURE__ */
|
|
5101
|
+
checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
|
|
5026
5102
|
"th",
|
|
5027
5103
|
{
|
|
5028
5104
|
scope: "row",
|
|
@@ -5030,7 +5106,7 @@ function Component(props, apiRef) {
|
|
|
5030
5106
|
textAlign: "center"
|
|
5031
5107
|
}
|
|
5032
5108
|
},
|
|
5033
|
-
/* @__PURE__ */
|
|
5109
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
5034
5110
|
RenderCheckbox,
|
|
5035
5111
|
{
|
|
5036
5112
|
onClick: getCheckboxClickHandler(rowId, row),
|
|
@@ -5041,7 +5117,7 @@ function Component(props, apiRef) {
|
|
|
5041
5117
|
}
|
|
5042
5118
|
)
|
|
5043
5119
|
),
|
|
5044
|
-
/* @__PURE__ */
|
|
5120
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
5045
5121
|
BodyRow2,
|
|
5046
5122
|
{
|
|
5047
5123
|
tableId,
|
|
@@ -5052,12 +5128,12 @@ function Component(props, apiRef) {
|
|
|
5052
5128
|
noWrap: props.noWrap
|
|
5053
5129
|
}
|
|
5054
5130
|
),
|
|
5055
|
-
showFillerColumn && /* @__PURE__ */
|
|
5131
|
+
showFillerColumn && /* @__PURE__ */ import_react30.default.createElement("td", { "aria-hidden": "true" })
|
|
5056
5132
|
);
|
|
5057
5133
|
})
|
|
5058
|
-
), Footer && /* @__PURE__ */
|
|
5134
|
+
), Footer && /* @__PURE__ */ import_react30.default.createElement(Footer, null))
|
|
5059
5135
|
),
|
|
5060
|
-
pagination && /* @__PURE__ */
|
|
5136
|
+
pagination && /* @__PURE__ */ import_react30.default.createElement(
|
|
5061
5137
|
Pagination_default,
|
|
5062
5138
|
{
|
|
5063
5139
|
pt: 2,
|
|
@@ -5070,11 +5146,11 @@ function Component(props, apiRef) {
|
|
|
5070
5146
|
)
|
|
5071
5147
|
);
|
|
5072
5148
|
}
|
|
5073
|
-
var DataTable = (0,
|
|
5149
|
+
var DataTable = (0, import_react30.forwardRef)(Component);
|
|
5074
5150
|
DataTable.displayName = "DataTable";
|
|
5075
5151
|
|
|
5076
5152
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
5077
|
-
var
|
|
5153
|
+
var import_react31 = __toESM(require("react"));
|
|
5078
5154
|
var import_react_imask2 = require("react-imask");
|
|
5079
5155
|
var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5080
5156
|
var import_joy37 = require("@mui/joy");
|
|
@@ -5216,9 +5292,9 @@ var parseDates = (str, format) => {
|
|
|
5216
5292
|
var formatToPattern2 = (format) => {
|
|
5217
5293
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
5218
5294
|
};
|
|
5219
|
-
var TextMaskAdapter5 =
|
|
5295
|
+
var TextMaskAdapter5 = import_react31.default.forwardRef(function TextMaskAdapter6(props, ref) {
|
|
5220
5296
|
const { onChange, format, ...other } = props;
|
|
5221
|
-
return /* @__PURE__ */
|
|
5297
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
5222
5298
|
import_react_imask2.IMaskInput,
|
|
5223
5299
|
{
|
|
5224
5300
|
...other,
|
|
@@ -5252,7 +5328,7 @@ var TextMaskAdapter5 = import_react30.default.forwardRef(function TextMaskAdapte
|
|
|
5252
5328
|
}
|
|
5253
5329
|
);
|
|
5254
5330
|
});
|
|
5255
|
-
var DateRangePicker = (0,
|
|
5331
|
+
var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
5256
5332
|
const props = (0, import_joy37.useThemeProps)({ props: inProps, name: "DateRangePicker" });
|
|
5257
5333
|
const {
|
|
5258
5334
|
onChange,
|
|
@@ -5279,28 +5355,28 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5279
5355
|
numberOfMonths,
|
|
5280
5356
|
...innerProps
|
|
5281
5357
|
} = props;
|
|
5282
|
-
const innerRef = (0,
|
|
5283
|
-
const buttonRef = (0,
|
|
5358
|
+
const innerRef = (0, import_react31.useRef)(null);
|
|
5359
|
+
const buttonRef = (0, import_react31.useRef)(null);
|
|
5284
5360
|
const [rawValue, setValue] = useControlledState(
|
|
5285
5361
|
props.value,
|
|
5286
5362
|
props.defaultValue ?? null,
|
|
5287
|
-
(0,
|
|
5363
|
+
(0, import_react31.useCallback)(
|
|
5288
5364
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
5289
5365
|
[props.name, onChange]
|
|
5290
5366
|
)
|
|
5291
5367
|
);
|
|
5292
5368
|
const value = rawValue ?? "";
|
|
5293
5369
|
const isAlphabeticDisplay = hasAlphabeticMonth2(displayFormat);
|
|
5294
|
-
const [displayValue, setDisplayValue] = (0,
|
|
5370
|
+
const [displayValue, setDisplayValue] = (0, import_react31.useState)(
|
|
5295
5371
|
() => value ? formatValueString2(parseDates(value, format), displayFormat, locale) : ""
|
|
5296
5372
|
);
|
|
5297
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5373
|
+
const [anchorEl, setAnchorEl] = (0, import_react31.useState)(null);
|
|
5298
5374
|
const open = Boolean(anchorEl);
|
|
5299
|
-
const calendarValue = (0,
|
|
5375
|
+
const calendarValue = (0, import_react31.useMemo)(
|
|
5300
5376
|
() => value ? parseDates(value, format) : void 0,
|
|
5301
5377
|
[value, format]
|
|
5302
5378
|
);
|
|
5303
|
-
(0,
|
|
5379
|
+
(0, import_react31.useEffect)(() => {
|
|
5304
5380
|
if (value) {
|
|
5305
5381
|
try {
|
|
5306
5382
|
const dates = parseDates(value, format);
|
|
@@ -5312,13 +5388,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5312
5388
|
setDisplayValue("");
|
|
5313
5389
|
}
|
|
5314
5390
|
}, [displayFormat, locale, value, format]);
|
|
5315
|
-
(0,
|
|
5391
|
+
(0, import_react31.useEffect)(() => {
|
|
5316
5392
|
if (!anchorEl) {
|
|
5317
5393
|
innerRef.current?.blur();
|
|
5318
5394
|
}
|
|
5319
5395
|
}, [anchorEl, innerRef]);
|
|
5320
|
-
(0,
|
|
5321
|
-
const handleChange = (0,
|
|
5396
|
+
(0, import_react31.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5397
|
+
const handleChange = (0, import_react31.useCallback)(
|
|
5322
5398
|
(event) => {
|
|
5323
5399
|
const value2 = event.target.value;
|
|
5324
5400
|
setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat, locale) : value2);
|
|
@@ -5326,7 +5402,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5326
5402
|
},
|
|
5327
5403
|
[displayFormat, format, locale, setValue]
|
|
5328
5404
|
);
|
|
5329
|
-
const handleDisplayInputChange = (0,
|
|
5405
|
+
const handleDisplayInputChange = (0, import_react31.useCallback)(
|
|
5330
5406
|
(event) => {
|
|
5331
5407
|
if (event.target.value === "") {
|
|
5332
5408
|
handleChange({
|
|
@@ -5351,14 +5427,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5351
5427
|
},
|
|
5352
5428
|
[displayFormat, format, handleChange, props.name]
|
|
5353
5429
|
);
|
|
5354
|
-
const handleCalendarToggle = (0,
|
|
5430
|
+
const handleCalendarToggle = (0, import_react31.useCallback)(
|
|
5355
5431
|
(event) => {
|
|
5356
5432
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5357
5433
|
innerRef.current?.focus();
|
|
5358
5434
|
},
|
|
5359
5435
|
[anchorEl, setAnchorEl, innerRef]
|
|
5360
5436
|
);
|
|
5361
|
-
const handleCalendarChange = (0,
|
|
5437
|
+
const handleCalendarChange = (0, import_react31.useCallback)(
|
|
5362
5438
|
([date1, date2]) => {
|
|
5363
5439
|
if (!date1 || !date2) return;
|
|
5364
5440
|
const formattedValue = formatValueString2([date1, date2], format);
|
|
@@ -5372,7 +5448,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5372
5448
|
},
|
|
5373
5449
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5374
5450
|
);
|
|
5375
|
-
const handleInputMouseDown = (0,
|
|
5451
|
+
const handleInputMouseDown = (0, import_react31.useCallback)(
|
|
5376
5452
|
(event) => {
|
|
5377
5453
|
if (inputReadOnly || isAlphabeticDisplay) {
|
|
5378
5454
|
event.preventDefault();
|
|
@@ -5381,7 +5457,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5381
5457
|
},
|
|
5382
5458
|
[inputReadOnly, isAlphabeticDisplay, buttonRef]
|
|
5383
5459
|
);
|
|
5384
|
-
const handleInputClick = (0,
|
|
5460
|
+
const handleInputClick = (0, import_react31.useCallback)(
|
|
5385
5461
|
(event) => {
|
|
5386
5462
|
if (inputReadOnly && !readOnly) {
|
|
5387
5463
|
handleCalendarToggle(event);
|
|
@@ -5389,7 +5465,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5389
5465
|
},
|
|
5390
5466
|
[inputReadOnly, readOnly, handleCalendarToggle]
|
|
5391
5467
|
);
|
|
5392
|
-
const handlePresetClick = (0,
|
|
5468
|
+
const handlePresetClick = (0, import_react31.useCallback)(
|
|
5393
5469
|
(presetValue) => {
|
|
5394
5470
|
if (props.value !== void 0) {
|
|
5395
5471
|
onChange?.({ target: { name: props.name, value: presetValue } });
|
|
@@ -5402,7 +5478,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5402
5478
|
},
|
|
5403
5479
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5404
5480
|
);
|
|
5405
|
-
const isPresetDisabled = (0,
|
|
5481
|
+
const isPresetDisabled = (0, import_react31.useCallback)(
|
|
5406
5482
|
(presetValue) => {
|
|
5407
5483
|
try {
|
|
5408
5484
|
const dates = parseDates(presetValue, format);
|
|
@@ -5421,7 +5497,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5421
5497
|
},
|
|
5422
5498
|
[format, minDate, maxDate, disableFuture, disablePast]
|
|
5423
5499
|
);
|
|
5424
|
-
return /* @__PURE__ */
|
|
5500
|
+
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
5501
|
Input_default,
|
|
5426
5502
|
{
|
|
5427
5503
|
...innerProps,
|
|
@@ -5448,7 +5524,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5448
5524
|
},
|
|
5449
5525
|
error,
|
|
5450
5526
|
sx: { width: "100%" },
|
|
5451
|
-
endDecorator: /* @__PURE__ */
|
|
5527
|
+
endDecorator: /* @__PURE__ */ import_react31.default.createElement(
|
|
5452
5528
|
CalendarButton2,
|
|
5453
5529
|
{
|
|
5454
5530
|
ref: buttonRef,
|
|
@@ -5460,13 +5536,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5460
5536
|
"aria-expanded": open,
|
|
5461
5537
|
disabled
|
|
5462
5538
|
},
|
|
5463
|
-
/* @__PURE__ */
|
|
5539
|
+
/* @__PURE__ */ import_react31.default.createElement(import_CalendarToday2.default, null)
|
|
5464
5540
|
),
|
|
5465
5541
|
label,
|
|
5466
5542
|
helperText,
|
|
5467
5543
|
readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
|
|
5468
5544
|
}
|
|
5469
|
-
), open && /* @__PURE__ */
|
|
5545
|
+
), open && /* @__PURE__ */ import_react31.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react31.default.createElement(
|
|
5470
5546
|
StyledPopper2,
|
|
5471
5547
|
{
|
|
5472
5548
|
id: "date-range-picker-popper",
|
|
@@ -5485,7 +5561,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5485
5561
|
"aria-label": "Calendar Tooltip",
|
|
5486
5562
|
"aria-expanded": open
|
|
5487
5563
|
},
|
|
5488
|
-
/* @__PURE__ */
|
|
5564
|
+
/* @__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
5565
|
Calendar_default,
|
|
5490
5566
|
{
|
|
5491
5567
|
rangeSelection: true,
|
|
@@ -5498,14 +5574,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5498
5574
|
locale,
|
|
5499
5575
|
numberOfMonths
|
|
5500
5576
|
}
|
|
5501
|
-
), !hideClearButton && /* @__PURE__ */
|
|
5577
|
+
), !hideClearButton && /* @__PURE__ */ import_react31.default.createElement(
|
|
5502
5578
|
DialogActions_default,
|
|
5503
5579
|
{
|
|
5504
5580
|
sx: {
|
|
5505
5581
|
p: 1
|
|
5506
5582
|
}
|
|
5507
5583
|
},
|
|
5508
|
-
/* @__PURE__ */
|
|
5584
|
+
/* @__PURE__ */ import_react31.default.createElement(
|
|
5509
5585
|
Button_default,
|
|
5510
5586
|
{
|
|
5511
5587
|
size,
|
|
@@ -5519,9 +5595,9 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5519
5595
|
},
|
|
5520
5596
|
"Clear"
|
|
5521
5597
|
)
|
|
5522
|
-
)), presets && presets.length > 0 && /* @__PURE__ */
|
|
5598
|
+
)), presets && presets.length > 0 && /* @__PURE__ */ import_react31.default.createElement(PresetPanel2, null, presets.map((preset) => {
|
|
5523
5599
|
const disabled2 = isPresetDisabled(preset.value);
|
|
5524
|
-
return /* @__PURE__ */
|
|
5600
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
5525
5601
|
PresetItem2,
|
|
5526
5602
|
{
|
|
5527
5603
|
key: preset.label,
|
|
@@ -5566,10 +5642,10 @@ DialogTitle.displayName = "DialogTitle";
|
|
|
5566
5642
|
var DialogTitle_default = DialogTitle;
|
|
5567
5643
|
|
|
5568
5644
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
5569
|
-
var
|
|
5645
|
+
var import_react33 = __toESM(require("react"));
|
|
5570
5646
|
|
|
5571
5647
|
// src/components/Modal/Modal.tsx
|
|
5572
|
-
var
|
|
5648
|
+
var import_react32 = __toESM(require("react"));
|
|
5573
5649
|
var import_joy40 = require("@mui/joy");
|
|
5574
5650
|
var import_framer_motion24 = require("framer-motion");
|
|
5575
5651
|
var MotionModal = (0, import_framer_motion24.motion)(import_joy40.Modal);
|
|
@@ -5584,10 +5660,10 @@ var ModalClose = import_joy40.ModalClose;
|
|
|
5584
5660
|
var MotionModalOverflow = (0, import_framer_motion24.motion)(import_joy40.ModalOverflow);
|
|
5585
5661
|
var ModalOverflow = MotionModalOverflow;
|
|
5586
5662
|
ModalOverflow.displayName = "ModalOverflow";
|
|
5587
|
-
|
|
5663
|
+
var ModalFrame = import_react32.default.forwardRef((props, ref) => {
|
|
5588
5664
|
const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
|
|
5589
|
-
return /* @__PURE__ */
|
|
5590
|
-
}
|
|
5665
|
+
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));
|
|
5666
|
+
});
|
|
5591
5667
|
ModalFrame.displayName = "ModalFrame";
|
|
5592
5668
|
|
|
5593
5669
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
@@ -5598,20 +5674,20 @@ var StyledDialogFrame = (0, import_joy41.styled)(ModalDialog, {
|
|
|
5598
5674
|
})({
|
|
5599
5675
|
padding: 0
|
|
5600
5676
|
});
|
|
5601
|
-
var DialogFrame =
|
|
5677
|
+
var DialogFrame = import_react33.default.forwardRef((props, ref) => {
|
|
5602
5678
|
const { title, children, actions, fullscreen, onSubmit, ...innerProps } = props;
|
|
5603
5679
|
const formProps = onSubmit ? { component: "form", onSubmit } : void 0;
|
|
5604
|
-
return /* @__PURE__ */
|
|
5680
|
+
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
5681
|
});
|
|
5606
5682
|
DialogFrame.displayName = "DialogFrame";
|
|
5607
5683
|
|
|
5608
5684
|
// src/components/Divider/Divider.tsx
|
|
5609
|
-
var
|
|
5685
|
+
var import_react34 = __toESM(require("react"));
|
|
5610
5686
|
var import_joy42 = require("@mui/joy");
|
|
5611
5687
|
var import_framer_motion25 = require("framer-motion");
|
|
5612
5688
|
var MotionDivider = (0, import_framer_motion25.motion)(import_joy42.Divider);
|
|
5613
5689
|
var Divider = (props) => {
|
|
5614
|
-
return /* @__PURE__ */
|
|
5690
|
+
return /* @__PURE__ */ import_react34.default.createElement(MotionDivider, { ...props });
|
|
5615
5691
|
};
|
|
5616
5692
|
Divider.displayName = "Divider";
|
|
5617
5693
|
|
|
@@ -5632,16 +5708,16 @@ var InsetDrawer = (0, import_joy43.styled)(import_joy43.Drawer)(({ theme }) => (
|
|
|
5632
5708
|
}));
|
|
5633
5709
|
|
|
5634
5710
|
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
5635
|
-
var
|
|
5711
|
+
var import_react35 = __toESM(require("react"));
|
|
5636
5712
|
var import_Search = __toESM(require("@mui/icons-material/Search"));
|
|
5637
5713
|
var import_joy44 = require("@mui/joy");
|
|
5638
5714
|
var import_react_virtual3 = require("@tanstack/react-virtual");
|
|
5639
5715
|
var EMPTY_VALUE = [];
|
|
5640
5716
|
function LabelWithTooltip(props) {
|
|
5641
5717
|
const { label, size } = props;
|
|
5642
|
-
const labelContentRef = (0,
|
|
5643
|
-
const [isOverflowing, setIsOverflowing] = (0,
|
|
5644
|
-
const labelContent = /* @__PURE__ */
|
|
5718
|
+
const labelContentRef = (0, import_react35.useRef)(null);
|
|
5719
|
+
const [isOverflowing, setIsOverflowing] = (0, import_react35.useState)(false);
|
|
5720
|
+
const labelContent = /* @__PURE__ */ import_react35.default.createElement(
|
|
5645
5721
|
"span",
|
|
5646
5722
|
{
|
|
5647
5723
|
ref: labelContentRef,
|
|
@@ -5657,14 +5733,14 @@ function LabelWithTooltip(props) {
|
|
|
5657
5733
|
},
|
|
5658
5734
|
label
|
|
5659
5735
|
);
|
|
5660
|
-
(0,
|
|
5736
|
+
(0, import_react35.useEffect)(() => {
|
|
5661
5737
|
const element = labelContentRef.current;
|
|
5662
5738
|
if (element) {
|
|
5663
5739
|
setIsOverflowing(element.scrollWidth > element.clientWidth);
|
|
5664
5740
|
}
|
|
5665
5741
|
}, [label]);
|
|
5666
5742
|
if (isOverflowing) {
|
|
5667
|
-
return /* @__PURE__ */
|
|
5743
|
+
return /* @__PURE__ */ import_react35.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
|
|
5668
5744
|
}
|
|
5669
5745
|
return labelContent;
|
|
5670
5746
|
}
|
|
@@ -5682,22 +5758,22 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5682
5758
|
maxHeight = 300,
|
|
5683
5759
|
disabled
|
|
5684
5760
|
} = props;
|
|
5685
|
-
const [searchTerm, setSearchTerm] = (0,
|
|
5686
|
-
const [sortedOptions, setSortedOptions] = (0,
|
|
5761
|
+
const [searchTerm, setSearchTerm] = (0, import_react35.useState)("");
|
|
5762
|
+
const [sortedOptions, setSortedOptions] = (0, import_react35.useState)(options);
|
|
5687
5763
|
const [rawValue, setInternalValue] = useControlledState(
|
|
5688
5764
|
value,
|
|
5689
5765
|
value ?? EMPTY_VALUE,
|
|
5690
|
-
(0,
|
|
5766
|
+
(0, import_react35.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
|
|
5691
5767
|
);
|
|
5692
5768
|
const internalValue = rawValue ?? EMPTY_VALUE;
|
|
5693
|
-
const parentRef = (0,
|
|
5694
|
-
const isInitialSortRef = (0,
|
|
5695
|
-
const prevOptionsRef = (0,
|
|
5696
|
-
const filteredOptions = (0,
|
|
5769
|
+
const parentRef = (0, import_react35.useRef)(null);
|
|
5770
|
+
const isInitialSortRef = (0, import_react35.useRef)(false);
|
|
5771
|
+
const prevOptionsRef = (0, import_react35.useRef)([...options]);
|
|
5772
|
+
const filteredOptions = (0, import_react35.useMemo)(() => {
|
|
5697
5773
|
if (!searchTerm) return sortedOptions;
|
|
5698
5774
|
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
5699
5775
|
}, [sortedOptions, searchTerm]);
|
|
5700
|
-
const itemSize = (0,
|
|
5776
|
+
const itemSize = (0, import_react35.useMemo)(() => {
|
|
5701
5777
|
switch (size) {
|
|
5702
5778
|
case "sm":
|
|
5703
5779
|
return 28;
|
|
@@ -5715,7 +5791,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5715
5791
|
overscan: 5
|
|
5716
5792
|
});
|
|
5717
5793
|
const items = virtualizer.getVirtualItems();
|
|
5718
|
-
(0,
|
|
5794
|
+
(0, import_react35.useEffect)(() => {
|
|
5719
5795
|
const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
|
|
5720
5796
|
(prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
|
|
5721
5797
|
);
|
|
@@ -5741,13 +5817,13 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5741
5817
|
}
|
|
5742
5818
|
}
|
|
5743
5819
|
}, [options, value]);
|
|
5744
|
-
(0,
|
|
5820
|
+
(0, import_react35.useEffect)(() => {
|
|
5745
5821
|
virtualizer.measure();
|
|
5746
5822
|
}, [virtualizer, filteredOptions, size]);
|
|
5747
|
-
const handleSearchChange = (0,
|
|
5823
|
+
const handleSearchChange = (0, import_react35.useCallback)((event) => {
|
|
5748
5824
|
setSearchTerm(event.target.value);
|
|
5749
5825
|
}, []);
|
|
5750
|
-
const handleCheckboxChange = (0,
|
|
5826
|
+
const handleCheckboxChange = (0, import_react35.useCallback)(
|
|
5751
5827
|
(optionValue) => (event) => {
|
|
5752
5828
|
const checked = event.target.checked;
|
|
5753
5829
|
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
@@ -5755,7 +5831,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5755
5831
|
},
|
|
5756
5832
|
[internalValue, setInternalValue]
|
|
5757
5833
|
);
|
|
5758
|
-
const handleSelectAll = (0,
|
|
5834
|
+
const handleSelectAll = (0, import_react35.useCallback)(
|
|
5759
5835
|
(event) => {
|
|
5760
5836
|
const checked = event.target.checked;
|
|
5761
5837
|
const enabledOptions = filteredOptions.filter((option) => !option.disabled);
|
|
@@ -5771,10 +5847,10 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5771
5847
|
},
|
|
5772
5848
|
[filteredOptions, internalValue, setInternalValue]
|
|
5773
5849
|
);
|
|
5774
|
-
const enabledFilteredOptions = (0,
|
|
5850
|
+
const enabledFilteredOptions = (0, import_react35.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
|
|
5775
5851
|
const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
|
|
5776
5852
|
const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
|
|
5777
|
-
return /* @__PURE__ */
|
|
5853
|
+
return /* @__PURE__ */ import_react35.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react35.default.createElement(
|
|
5778
5854
|
Input_default,
|
|
5779
5855
|
{
|
|
5780
5856
|
label,
|
|
@@ -5787,9 +5863,9 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5787
5863
|
onChange: handleSearchChange,
|
|
5788
5864
|
size,
|
|
5789
5865
|
disabled,
|
|
5790
|
-
endDecorator: /* @__PURE__ */
|
|
5866
|
+
endDecorator: /* @__PURE__ */ import_react35.default.createElement(import_Search.default, null)
|
|
5791
5867
|
}
|
|
5792
|
-
), filteredOptions.length === 0 ? /* @__PURE__ */
|
|
5868
|
+
), 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
5869
|
"div",
|
|
5794
5870
|
{
|
|
5795
5871
|
ref: parentRef,
|
|
@@ -5800,7 +5876,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5800
5876
|
marginTop: "8px"
|
|
5801
5877
|
}
|
|
5802
5878
|
},
|
|
5803
|
-
!searchTerm && /* @__PURE__ */
|
|
5879
|
+
!searchTerm && /* @__PURE__ */ import_react35.default.createElement(
|
|
5804
5880
|
Checkbox_default,
|
|
5805
5881
|
{
|
|
5806
5882
|
label: "Select all",
|
|
@@ -5817,7 +5893,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5817
5893
|
sx: { width: "100%", height: itemSize }
|
|
5818
5894
|
}
|
|
5819
5895
|
),
|
|
5820
|
-
/* @__PURE__ */
|
|
5896
|
+
/* @__PURE__ */ import_react35.default.createElement(
|
|
5821
5897
|
Stack_default,
|
|
5822
5898
|
{
|
|
5823
5899
|
sx: {
|
|
@@ -5827,11 +5903,11 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5827
5903
|
},
|
|
5828
5904
|
items.map((virtualRow) => {
|
|
5829
5905
|
const option = filteredOptions[virtualRow.index];
|
|
5830
|
-
return /* @__PURE__ */
|
|
5906
|
+
return /* @__PURE__ */ import_react35.default.createElement(
|
|
5831
5907
|
Checkbox_default,
|
|
5832
5908
|
{
|
|
5833
5909
|
key: virtualRow.key,
|
|
5834
|
-
label: /* @__PURE__ */
|
|
5910
|
+
label: /* @__PURE__ */ import_react35.default.createElement(LabelWithTooltip, { label: option.label, size }),
|
|
5835
5911
|
checked: internalValue.includes(option.value),
|
|
5836
5912
|
onChange: handleCheckboxChange(option.value),
|
|
5837
5913
|
size,
|
|
@@ -5859,16 +5935,16 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5859
5935
|
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
5860
5936
|
|
|
5861
5937
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
5862
|
-
var
|
|
5938
|
+
var import_react48 = __toESM(require("react"));
|
|
5863
5939
|
var import_joy58 = require("@mui/joy");
|
|
5864
5940
|
|
|
5865
5941
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
5866
|
-
var
|
|
5942
|
+
var import_react36 = __toESM(require("react"));
|
|
5867
5943
|
var import_joy45 = require("@mui/joy");
|
|
5868
5944
|
function CheckboxGroup(props) {
|
|
5869
5945
|
const { id, label, options, value, onChange, hidden } = props;
|
|
5870
5946
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
5871
|
-
const handleCheckboxChange = (0,
|
|
5947
|
+
const handleCheckboxChange = (0, import_react36.useCallback)(
|
|
5872
5948
|
(optionValue) => (event) => {
|
|
5873
5949
|
const checked = event.target.checked;
|
|
5874
5950
|
let newValue;
|
|
@@ -5884,7 +5960,7 @@ function CheckboxGroup(props) {
|
|
|
5884
5960
|
if (hidden) {
|
|
5885
5961
|
return null;
|
|
5886
5962
|
}
|
|
5887
|
-
return /* @__PURE__ */
|
|
5963
|
+
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
5964
|
Checkbox_default,
|
|
5889
5965
|
{
|
|
5890
5966
|
key: `${id}-${option.value}`,
|
|
@@ -5897,12 +5973,12 @@ function CheckboxGroup(props) {
|
|
|
5897
5973
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
5898
5974
|
|
|
5899
5975
|
// src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
|
|
5900
|
-
var
|
|
5976
|
+
var import_react37 = __toESM(require("react"));
|
|
5901
5977
|
var import_joy46 = require("@mui/joy");
|
|
5902
5978
|
function FilterableCheckboxGroup2(props) {
|
|
5903
5979
|
const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
|
|
5904
5980
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
5905
|
-
const handleChange = (0,
|
|
5981
|
+
const handleChange = (0, import_react37.useCallback)(
|
|
5906
5982
|
(newValue) => {
|
|
5907
5983
|
setInternalValue(newValue);
|
|
5908
5984
|
},
|
|
@@ -5911,7 +5987,7 @@ function FilterableCheckboxGroup2(props) {
|
|
|
5911
5987
|
if (hidden) {
|
|
5912
5988
|
return null;
|
|
5913
5989
|
}
|
|
5914
|
-
return /* @__PURE__ */
|
|
5990
|
+
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
5991
|
FilterableCheckboxGroup,
|
|
5916
5992
|
{
|
|
5917
5993
|
value: internalValue ?? [],
|
|
@@ -5926,7 +6002,7 @@ function FilterableCheckboxGroup2(props) {
|
|
|
5926
6002
|
FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
|
|
5927
6003
|
|
|
5928
6004
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
5929
|
-
var
|
|
6005
|
+
var import_react38 = __toESM(require("react"));
|
|
5930
6006
|
|
|
5931
6007
|
// src/components/Radio/Radio.tsx
|
|
5932
6008
|
var import_joy47 = require("@mui/joy");
|
|
@@ -5943,7 +6019,7 @@ var import_joy48 = require("@mui/joy");
|
|
|
5943
6019
|
function RadioGroup2(props) {
|
|
5944
6020
|
const { id, label, options, value, onChange, hidden } = props;
|
|
5945
6021
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
5946
|
-
const handleRadioChange = (0,
|
|
6022
|
+
const handleRadioChange = (0, import_react38.useCallback)(
|
|
5947
6023
|
(event) => {
|
|
5948
6024
|
const newValue = event.target.value;
|
|
5949
6025
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -5955,12 +6031,12 @@ function RadioGroup2(props) {
|
|
|
5955
6031
|
if (hidden) {
|
|
5956
6032
|
return null;
|
|
5957
6033
|
}
|
|
5958
|
-
return /* @__PURE__ */
|
|
6034
|
+
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
6035
|
}
|
|
5960
6036
|
RadioGroup2.displayName = "RadioGroup";
|
|
5961
6037
|
|
|
5962
6038
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
5963
|
-
var
|
|
6039
|
+
var import_react39 = __toESM(require("react"));
|
|
5964
6040
|
var import_joy49 = require("@mui/joy");
|
|
5965
6041
|
function DateRange(props) {
|
|
5966
6042
|
const {
|
|
@@ -5978,8 +6054,8 @@ function DateRange(props) {
|
|
|
5978
6054
|
hideClearButton
|
|
5979
6055
|
} = props;
|
|
5980
6056
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
5981
|
-
const [selectedOption, setSelectedOption] = (0,
|
|
5982
|
-
const dateRangeOptions = (0,
|
|
6057
|
+
const [selectedOption, setSelectedOption] = (0, import_react39.useState)("all-time");
|
|
6058
|
+
const dateRangeOptions = (0, import_react39.useMemo)(
|
|
5983
6059
|
() => [
|
|
5984
6060
|
{ label: "All Time", value: "all-time" },
|
|
5985
6061
|
{ label: "This Month", value: "this-month" },
|
|
@@ -5989,7 +6065,7 @@ function DateRange(props) {
|
|
|
5989
6065
|
],
|
|
5990
6066
|
[]
|
|
5991
6067
|
);
|
|
5992
|
-
const getDateRangeForOption = (0,
|
|
6068
|
+
const getDateRangeForOption = (0, import_react39.useCallback)(
|
|
5993
6069
|
(option) => {
|
|
5994
6070
|
const now = /* @__PURE__ */ new Date();
|
|
5995
6071
|
const currentYear = now.getFullYear();
|
|
@@ -6028,7 +6104,7 @@ function DateRange(props) {
|
|
|
6028
6104
|
},
|
|
6029
6105
|
[internalValue]
|
|
6030
6106
|
);
|
|
6031
|
-
const determineOptionFromValue = (0,
|
|
6107
|
+
const determineOptionFromValue = (0, import_react39.useCallback)(
|
|
6032
6108
|
(value2) => {
|
|
6033
6109
|
if (!value2) {
|
|
6034
6110
|
return "all-time";
|
|
@@ -6044,17 +6120,17 @@ function DateRange(props) {
|
|
|
6044
6120
|
},
|
|
6045
6121
|
[getDateRangeForOption]
|
|
6046
6122
|
);
|
|
6047
|
-
const customDateRangeValue = (0,
|
|
6123
|
+
const customDateRangeValue = (0, import_react39.useMemo)(() => {
|
|
6048
6124
|
if (selectedOption === "custom" && internalValue) {
|
|
6049
6125
|
return `${internalValue[0]} - ${internalValue[1]}`;
|
|
6050
6126
|
}
|
|
6051
6127
|
return "";
|
|
6052
6128
|
}, [selectedOption, internalValue]);
|
|
6053
|
-
(0,
|
|
6129
|
+
(0, import_react39.useEffect)(() => {
|
|
6054
6130
|
const newOption = determineOptionFromValue(internalValue);
|
|
6055
6131
|
setSelectedOption(newOption);
|
|
6056
6132
|
}, [internalValue, determineOptionFromValue]);
|
|
6057
|
-
const handleOptionChange = (0,
|
|
6133
|
+
const handleOptionChange = (0, import_react39.useCallback)(
|
|
6058
6134
|
(event) => {
|
|
6059
6135
|
const newOption = event.target.value;
|
|
6060
6136
|
setSelectedOption(newOption);
|
|
@@ -6063,7 +6139,7 @@ function DateRange(props) {
|
|
|
6063
6139
|
},
|
|
6064
6140
|
[getDateRangeForOption, setInternalValue]
|
|
6065
6141
|
);
|
|
6066
|
-
const handleCustomDateChange = (0,
|
|
6142
|
+
const handleCustomDateChange = (0, import_react39.useCallback)(
|
|
6067
6143
|
(event) => {
|
|
6068
6144
|
const dateRangeString = event.target.value;
|
|
6069
6145
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
@@ -6084,7 +6160,7 @@ function DateRange(props) {
|
|
|
6084
6160
|
if (hidden) {
|
|
6085
6161
|
return null;
|
|
6086
6162
|
}
|
|
6087
|
-
return /* @__PURE__ */
|
|
6163
|
+
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
6164
|
DateRangePicker,
|
|
6089
6165
|
{
|
|
6090
6166
|
value: customDateRangeValue,
|
|
@@ -6103,11 +6179,11 @@ function DateRange(props) {
|
|
|
6103
6179
|
DateRange.displayName = "DateRange";
|
|
6104
6180
|
|
|
6105
6181
|
// src/components/FilterMenu/components/MonthRange.tsx
|
|
6106
|
-
var
|
|
6182
|
+
var import_react41 = __toESM(require("react"));
|
|
6107
6183
|
var import_joy51 = require("@mui/joy");
|
|
6108
6184
|
|
|
6109
6185
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
6110
|
-
var
|
|
6186
|
+
var import_react40 = __toESM(require("react"));
|
|
6111
6187
|
var import_react_imask3 = require("react-imask");
|
|
6112
6188
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
6113
6189
|
var import_joy50 = require("@mui/joy");
|
|
@@ -6168,9 +6244,9 @@ var parseDates2 = (str) => {
|
|
|
6168
6244
|
var formatToPattern3 = (format) => {
|
|
6169
6245
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
6170
6246
|
};
|
|
6171
|
-
var TextMaskAdapter7 =
|
|
6247
|
+
var TextMaskAdapter7 = import_react40.default.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
6172
6248
|
const { onChange, format, ...other } = props;
|
|
6173
|
-
return /* @__PURE__ */
|
|
6249
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
6174
6250
|
import_react_imask3.IMaskInput,
|
|
6175
6251
|
{
|
|
6176
6252
|
...other,
|
|
@@ -6198,7 +6274,7 @@ var TextMaskAdapter7 = import_react39.default.forwardRef(function TextMaskAdapte
|
|
|
6198
6274
|
}
|
|
6199
6275
|
);
|
|
6200
6276
|
});
|
|
6201
|
-
var MonthRangePicker = (0,
|
|
6277
|
+
var MonthRangePicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
6202
6278
|
const props = (0, import_joy50.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
6203
6279
|
const {
|
|
6204
6280
|
onChange,
|
|
@@ -6222,24 +6298,24 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6222
6298
|
} = props;
|
|
6223
6299
|
const displayFormat = displayFormatProp ?? format;
|
|
6224
6300
|
const isAlphabeticDisplay = hasAlphabeticMonth3(displayFormat);
|
|
6225
|
-
const innerRef = (0,
|
|
6226
|
-
const buttonRef = (0,
|
|
6301
|
+
const innerRef = (0, import_react40.useRef)(null);
|
|
6302
|
+
const buttonRef = (0, import_react40.useRef)(null);
|
|
6227
6303
|
const [rawValue, setValue] = useControlledState(
|
|
6228
6304
|
props.value,
|
|
6229
6305
|
props.defaultValue ?? null,
|
|
6230
|
-
(0,
|
|
6306
|
+
(0, import_react40.useCallback)(
|
|
6231
6307
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
6232
6308
|
[props.name, onChange]
|
|
6233
6309
|
)
|
|
6234
6310
|
);
|
|
6235
6311
|
const value = rawValue ?? "";
|
|
6236
|
-
const [displayValue, setDisplayValue] = (0,
|
|
6312
|
+
const [displayValue, setDisplayValue] = (0, import_react40.useState)(
|
|
6237
6313
|
() => value ? formatValueString3(parseDates2(value), displayFormat, locale) : ""
|
|
6238
6314
|
);
|
|
6239
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
6315
|
+
const [anchorEl, setAnchorEl] = (0, import_react40.useState)(null);
|
|
6240
6316
|
const open = Boolean(anchorEl);
|
|
6241
|
-
const calendarValue = (0,
|
|
6242
|
-
(0,
|
|
6317
|
+
const calendarValue = (0, import_react40.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
6318
|
+
(0, import_react40.useEffect)(() => {
|
|
6243
6319
|
if (value) {
|
|
6244
6320
|
try {
|
|
6245
6321
|
const dates = parseDates2(value);
|
|
@@ -6251,13 +6327,13 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6251
6327
|
setDisplayValue("");
|
|
6252
6328
|
}
|
|
6253
6329
|
}, [displayFormat, locale, value]);
|
|
6254
|
-
(0,
|
|
6330
|
+
(0, import_react40.useEffect)(() => {
|
|
6255
6331
|
if (!anchorEl) {
|
|
6256
6332
|
innerRef.current?.blur();
|
|
6257
6333
|
}
|
|
6258
6334
|
}, [anchorEl, innerRef]);
|
|
6259
|
-
(0,
|
|
6260
|
-
const handleChange = (0,
|
|
6335
|
+
(0, import_react40.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
6336
|
+
const handleChange = (0, import_react40.useCallback)(
|
|
6261
6337
|
(event) => {
|
|
6262
6338
|
setDisplayValue(
|
|
6263
6339
|
event.target.value ? formatValueString3(parseDates2(event.target.value), displayFormat, locale) : ""
|
|
@@ -6266,7 +6342,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6266
6342
|
},
|
|
6267
6343
|
[displayFormat, locale, setValue]
|
|
6268
6344
|
);
|
|
6269
|
-
const handleInputMouseDown = (0,
|
|
6345
|
+
const handleInputMouseDown = (0, import_react40.useCallback)(
|
|
6270
6346
|
(event) => {
|
|
6271
6347
|
if (isAlphabeticDisplay) {
|
|
6272
6348
|
event.preventDefault();
|
|
@@ -6275,14 +6351,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6275
6351
|
},
|
|
6276
6352
|
[isAlphabeticDisplay, buttonRef]
|
|
6277
6353
|
);
|
|
6278
|
-
const handleCalendarToggle = (0,
|
|
6354
|
+
const handleCalendarToggle = (0, import_react40.useCallback)(
|
|
6279
6355
|
(event) => {
|
|
6280
6356
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6281
6357
|
innerRef.current?.focus();
|
|
6282
6358
|
},
|
|
6283
6359
|
[anchorEl, setAnchorEl, innerRef]
|
|
6284
6360
|
);
|
|
6285
|
-
const handleCalendarChange = (0,
|
|
6361
|
+
const handleCalendarChange = (0, import_react40.useCallback)(
|
|
6286
6362
|
([date1, date2]) => {
|
|
6287
6363
|
if (!date1 || !date2) return;
|
|
6288
6364
|
const formattedValue = formatValueString3([date1, date2], format);
|
|
@@ -6292,7 +6368,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6292
6368
|
},
|
|
6293
6369
|
[setValue, setAnchorEl, format, displayFormat, locale]
|
|
6294
6370
|
);
|
|
6295
|
-
return /* @__PURE__ */
|
|
6371
|
+
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
6372
|
Input_default,
|
|
6297
6373
|
{
|
|
6298
6374
|
...innerProps,
|
|
@@ -6322,7 +6398,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6322
6398
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6323
6399
|
fontFamily: "monospace"
|
|
6324
6400
|
},
|
|
6325
|
-
endDecorator: /* @__PURE__ */
|
|
6401
|
+
endDecorator: /* @__PURE__ */ import_react40.default.createElement(
|
|
6326
6402
|
IconButton_default,
|
|
6327
6403
|
{
|
|
6328
6404
|
ref: buttonRef,
|
|
@@ -6333,12 +6409,12 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6333
6409
|
"aria-haspopup": "dialog",
|
|
6334
6410
|
"aria-expanded": open
|
|
6335
6411
|
},
|
|
6336
|
-
/* @__PURE__ */
|
|
6412
|
+
/* @__PURE__ */ import_react40.default.createElement(import_CalendarToday3.default, null)
|
|
6337
6413
|
),
|
|
6338
6414
|
label,
|
|
6339
6415
|
helperText
|
|
6340
6416
|
}
|
|
6341
|
-
), open && /* @__PURE__ */
|
|
6417
|
+
), open && /* @__PURE__ */ import_react40.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6342
6418
|
StyledPopper3,
|
|
6343
6419
|
{
|
|
6344
6420
|
id: "month-range-picker-popper",
|
|
@@ -6357,7 +6433,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6357
6433
|
"aria-label": "Calendar Tooltip",
|
|
6358
6434
|
"aria-expanded": open
|
|
6359
6435
|
},
|
|
6360
|
-
/* @__PURE__ */
|
|
6436
|
+
/* @__PURE__ */ import_react40.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6361
6437
|
Calendar_default,
|
|
6362
6438
|
{
|
|
6363
6439
|
view: "month",
|
|
@@ -6371,14 +6447,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6371
6447
|
disablePast,
|
|
6372
6448
|
locale
|
|
6373
6449
|
}
|
|
6374
|
-
), /* @__PURE__ */
|
|
6450
|
+
), /* @__PURE__ */ import_react40.default.createElement(
|
|
6375
6451
|
DialogActions_default,
|
|
6376
6452
|
{
|
|
6377
6453
|
sx: {
|
|
6378
6454
|
p: 1
|
|
6379
6455
|
}
|
|
6380
6456
|
},
|
|
6381
|
-
/* @__PURE__ */
|
|
6457
|
+
/* @__PURE__ */ import_react40.default.createElement(
|
|
6382
6458
|
Button_default,
|
|
6383
6459
|
{
|
|
6384
6460
|
size,
|
|
@@ -6413,11 +6489,11 @@ function MonthRange(props) {
|
|
|
6413
6489
|
locale
|
|
6414
6490
|
} = props;
|
|
6415
6491
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
6416
|
-
const pickerValue = (0,
|
|
6492
|
+
const pickerValue = (0, import_react41.useMemo)(
|
|
6417
6493
|
() => internalValue ? `${internalValue[0]} - ${internalValue[1]}` : "",
|
|
6418
6494
|
[internalValue]
|
|
6419
6495
|
);
|
|
6420
|
-
const handleChange = (0,
|
|
6496
|
+
const handleChange = (0, import_react41.useCallback)(
|
|
6421
6497
|
(event) => {
|
|
6422
6498
|
const rangeString = event.target.value;
|
|
6423
6499
|
if (rangeString && rangeString.includes(" - ")) {
|
|
@@ -6434,7 +6510,7 @@ function MonthRange(props) {
|
|
|
6434
6510
|
if (hidden) {
|
|
6435
6511
|
return null;
|
|
6436
6512
|
}
|
|
6437
|
-
return /* @__PURE__ */
|
|
6513
|
+
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
6514
|
MonthRangePicker,
|
|
6439
6515
|
{
|
|
6440
6516
|
value: pickerValue,
|
|
@@ -6452,12 +6528,12 @@ function MonthRange(props) {
|
|
|
6452
6528
|
MonthRange.displayName = "MonthRange";
|
|
6453
6529
|
|
|
6454
6530
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
6455
|
-
var
|
|
6531
|
+
var import_react42 = __toESM(require("react"));
|
|
6456
6532
|
var import_joy52 = require("@mui/joy");
|
|
6457
6533
|
function CurrencyInput3(props) {
|
|
6458
6534
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
6459
6535
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
6460
|
-
const handleCurrencyChange = (0,
|
|
6536
|
+
const handleCurrencyChange = (0, import_react42.useCallback)(
|
|
6461
6537
|
(event) => {
|
|
6462
6538
|
const newValue = event.target.value ?? void 0;
|
|
6463
6539
|
setInternalValue(newValue);
|
|
@@ -6467,7 +6543,7 @@ function CurrencyInput3(props) {
|
|
|
6467
6543
|
if (hidden) {
|
|
6468
6544
|
return null;
|
|
6469
6545
|
}
|
|
6470
|
-
return /* @__PURE__ */
|
|
6546
|
+
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
6547
|
CurrencyInput,
|
|
6472
6548
|
{
|
|
6473
6549
|
value: internalValue,
|
|
@@ -6483,14 +6559,14 @@ function CurrencyInput3(props) {
|
|
|
6483
6559
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
6484
6560
|
|
|
6485
6561
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
6486
|
-
var
|
|
6562
|
+
var import_react43 = __toESM(require("react"));
|
|
6487
6563
|
var import_joy53 = require("@mui/joy");
|
|
6488
6564
|
function CurrencyRange(props) {
|
|
6489
6565
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
6490
6566
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
6491
6567
|
const minValue = internalValue?.[0];
|
|
6492
6568
|
const maxValue = internalValue?.[1];
|
|
6493
|
-
const handleMinChange = (0,
|
|
6569
|
+
const handleMinChange = (0, import_react43.useCallback)(
|
|
6494
6570
|
(event) => {
|
|
6495
6571
|
const newMinValue = event.target.value ?? void 0;
|
|
6496
6572
|
const currentMaxValue = maxValue;
|
|
@@ -6504,7 +6580,7 @@ function CurrencyRange(props) {
|
|
|
6504
6580
|
},
|
|
6505
6581
|
[maxValue, setInternalValue]
|
|
6506
6582
|
);
|
|
6507
|
-
const handleMaxChange = (0,
|
|
6583
|
+
const handleMaxChange = (0, import_react43.useCallback)(
|
|
6508
6584
|
(event) => {
|
|
6509
6585
|
const newMaxValue = event.target.value ?? void 0;
|
|
6510
6586
|
const currentMinValue = minValue;
|
|
@@ -6521,7 +6597,7 @@ function CurrencyRange(props) {
|
|
|
6521
6597
|
if (hidden) {
|
|
6522
6598
|
return null;
|
|
6523
6599
|
}
|
|
6524
|
-
return /* @__PURE__ */
|
|
6600
|
+
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
6601
|
CurrencyInput,
|
|
6526
6602
|
{
|
|
6527
6603
|
label: "Minimum",
|
|
@@ -6534,7 +6610,7 @@ function CurrencyRange(props) {
|
|
|
6534
6610
|
"aria-labelledby": label ? id : void 0,
|
|
6535
6611
|
"aria-label": "Minimum amount"
|
|
6536
6612
|
}
|
|
6537
|
-
), /* @__PURE__ */
|
|
6613
|
+
), /* @__PURE__ */ import_react43.default.createElement(
|
|
6538
6614
|
CurrencyInput,
|
|
6539
6615
|
{
|
|
6540
6616
|
label: "Maximum",
|
|
@@ -6552,20 +6628,20 @@ function CurrencyRange(props) {
|
|
|
6552
6628
|
CurrencyRange.displayName = "CurrencyRange";
|
|
6553
6629
|
|
|
6554
6630
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
6555
|
-
var
|
|
6631
|
+
var import_react45 = __toESM(require("react"));
|
|
6556
6632
|
var import_joy55 = require("@mui/joy");
|
|
6557
6633
|
|
|
6558
6634
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
6559
|
-
var
|
|
6635
|
+
var import_react44 = __toESM(require("react"));
|
|
6560
6636
|
var import_react_number_format2 = require("react-number-format");
|
|
6561
6637
|
var import_joy54 = require("@mui/joy");
|
|
6562
6638
|
var padDecimal = (value, decimalScale) => {
|
|
6563
6639
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
6564
6640
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
6565
6641
|
};
|
|
6566
|
-
var TextMaskAdapter9 =
|
|
6642
|
+
var TextMaskAdapter9 = import_react44.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
6567
6643
|
const { onChange, min, max, ...innerProps } = props;
|
|
6568
|
-
return /* @__PURE__ */
|
|
6644
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6569
6645
|
import_react_number_format2.NumericFormat,
|
|
6570
6646
|
{
|
|
6571
6647
|
...innerProps,
|
|
@@ -6590,7 +6666,7 @@ var PercentageInputRoot = (0, import_joy54.styled)(Input_default, {
|
|
|
6590
6666
|
slot: "Root",
|
|
6591
6667
|
overridesResolver: (props, styles) => styles.root
|
|
6592
6668
|
})({});
|
|
6593
|
-
var PercentageInput =
|
|
6669
|
+
var PercentageInput = import_react44.default.forwardRef(
|
|
6594
6670
|
function PercentageInput2(inProps, ref) {
|
|
6595
6671
|
const props = (0, import_joy54.useThemeProps)({ props: inProps, name: "PercentageInput" });
|
|
6596
6672
|
const {
|
|
@@ -6613,19 +6689,19 @@ var PercentageInput = import_react43.default.forwardRef(
|
|
|
6613
6689
|
const [_value, setValue] = useControlledState(
|
|
6614
6690
|
props.value,
|
|
6615
6691
|
props.defaultValue ?? null,
|
|
6616
|
-
(0,
|
|
6692
|
+
(0, import_react44.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
6617
6693
|
);
|
|
6618
|
-
const value = (0,
|
|
6694
|
+
const value = (0, import_react44.useMemo)(() => {
|
|
6619
6695
|
if (_value && useMinorUnit) {
|
|
6620
6696
|
return _value / Math.pow(10, maxDecimalScale);
|
|
6621
6697
|
}
|
|
6622
6698
|
return _value;
|
|
6623
6699
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
6624
|
-
const internalError = (0,
|
|
6700
|
+
const internalError = (0, import_react44.useMemo)(
|
|
6625
6701
|
() => value != null && (max != null && value > max || min != null && value < min),
|
|
6626
6702
|
[max, min, value]
|
|
6627
6703
|
);
|
|
6628
|
-
const handleChange = (0,
|
|
6704
|
+
const handleChange = (0, import_react44.useCallback)(
|
|
6629
6705
|
(event) => {
|
|
6630
6706
|
if (event.target.value === "") {
|
|
6631
6707
|
setValue(null);
|
|
@@ -6637,7 +6713,7 @@ var PercentageInput = import_react43.default.forwardRef(
|
|
|
6637
6713
|
},
|
|
6638
6714
|
[setValue, useMinorUnit, maxDecimalScale]
|
|
6639
6715
|
);
|
|
6640
|
-
return /* @__PURE__ */
|
|
6716
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6641
6717
|
PercentageInputRoot,
|
|
6642
6718
|
{
|
|
6643
6719
|
...innerProps,
|
|
@@ -6684,7 +6760,7 @@ var PercentageInput3 = ({
|
|
|
6684
6760
|
if (hidden) {
|
|
6685
6761
|
return null;
|
|
6686
6762
|
}
|
|
6687
|
-
return /* @__PURE__ */
|
|
6763
|
+
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
6764
|
PercentageInput,
|
|
6689
6765
|
{
|
|
6690
6766
|
value: _value,
|
|
@@ -6699,7 +6775,7 @@ var PercentageInput3 = ({
|
|
|
6699
6775
|
};
|
|
6700
6776
|
|
|
6701
6777
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
6702
|
-
var
|
|
6778
|
+
var import_react46 = __toESM(require("react"));
|
|
6703
6779
|
var import_joy56 = require("@mui/joy");
|
|
6704
6780
|
function PercentageRange(props) {
|
|
6705
6781
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
@@ -6710,7 +6786,7 @@ function PercentageRange(props) {
|
|
|
6710
6786
|
);
|
|
6711
6787
|
const minValue = internalValue?.[0];
|
|
6712
6788
|
const maxValue = internalValue?.[1];
|
|
6713
|
-
const handleMinChange = (0,
|
|
6789
|
+
const handleMinChange = (0, import_react46.useCallback)(
|
|
6714
6790
|
(event) => {
|
|
6715
6791
|
const newMinValue = event.target.value ?? void 0;
|
|
6716
6792
|
const currentMaxValue = maxValue;
|
|
@@ -6722,7 +6798,7 @@ function PercentageRange(props) {
|
|
|
6722
6798
|
},
|
|
6723
6799
|
[maxValue, setInternalValue]
|
|
6724
6800
|
);
|
|
6725
|
-
const handleMaxChange = (0,
|
|
6801
|
+
const handleMaxChange = (0, import_react46.useCallback)(
|
|
6726
6802
|
(event) => {
|
|
6727
6803
|
const newMaxValue = event.target.value ?? void 0;
|
|
6728
6804
|
const currentMinValue = minValue;
|
|
@@ -6737,7 +6813,7 @@ function PercentageRange(props) {
|
|
|
6737
6813
|
if (hidden) {
|
|
6738
6814
|
return null;
|
|
6739
6815
|
}
|
|
6740
|
-
return /* @__PURE__ */
|
|
6816
|
+
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
6817
|
PercentageInput,
|
|
6742
6818
|
{
|
|
6743
6819
|
label: "Minimum",
|
|
@@ -6751,7 +6827,7 @@ function PercentageRange(props) {
|
|
|
6751
6827
|
"aria-label": "Minimum percentage",
|
|
6752
6828
|
placeholder: "0%"
|
|
6753
6829
|
}
|
|
6754
|
-
), /* @__PURE__ */
|
|
6830
|
+
), /* @__PURE__ */ import_react46.default.createElement(
|
|
6755
6831
|
PercentageInput,
|
|
6756
6832
|
{
|
|
6757
6833
|
label: "Maximum",
|
|
@@ -6770,13 +6846,13 @@ function PercentageRange(props) {
|
|
|
6770
6846
|
PercentageRange.displayName = "PercentageRange";
|
|
6771
6847
|
|
|
6772
6848
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
6773
|
-
var
|
|
6849
|
+
var import_react47 = __toESM(require("react"));
|
|
6774
6850
|
var import_joy57 = require("@mui/joy");
|
|
6775
6851
|
function Autocomplete2(props) {
|
|
6776
6852
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
6777
6853
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
6778
6854
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
6779
|
-
const handleChange = (0,
|
|
6855
|
+
const handleChange = (0, import_react47.useCallback)(
|
|
6780
6856
|
(event) => {
|
|
6781
6857
|
const val = event.target.value ?? void 0;
|
|
6782
6858
|
if (val) {
|
|
@@ -6791,7 +6867,7 @@ function Autocomplete2(props) {
|
|
|
6791
6867
|
if (hidden) {
|
|
6792
6868
|
return null;
|
|
6793
6869
|
}
|
|
6794
|
-
return /* @__PURE__ */
|
|
6870
|
+
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
6871
|
Autocomplete,
|
|
6796
6872
|
{
|
|
6797
6873
|
value: autocompleteValue,
|
|
@@ -6826,13 +6902,13 @@ function FilterMenu(props) {
|
|
|
6826
6902
|
void 0
|
|
6827
6903
|
// onChange는 Apply 버튼에서만 호출
|
|
6828
6904
|
);
|
|
6829
|
-
const dropdownRegistry = (0,
|
|
6830
|
-
(0,
|
|
6905
|
+
const dropdownRegistry = (0, import_react48.useContext)(DropdownNestedRegistryContext);
|
|
6906
|
+
(0, import_react48.useEffect)(() => {
|
|
6831
6907
|
if (!dropdownRegistry) return void 0;
|
|
6832
6908
|
dropdownRegistry.register();
|
|
6833
6909
|
return () => dropdownRegistry.unregister();
|
|
6834
6910
|
}, [dropdownRegistry]);
|
|
6835
|
-
const handleFilterChange = (0,
|
|
6911
|
+
const handleFilterChange = (0, import_react48.useCallback)(
|
|
6836
6912
|
(filterId, value) => {
|
|
6837
6913
|
setInternalValues((prev) => ({
|
|
6838
6914
|
...prev,
|
|
@@ -6841,17 +6917,17 @@ function FilterMenu(props) {
|
|
|
6841
6917
|
},
|
|
6842
6918
|
[setInternalValues]
|
|
6843
6919
|
);
|
|
6844
|
-
const handleApply = (0,
|
|
6920
|
+
const handleApply = (0, import_react48.useCallback)(() => {
|
|
6845
6921
|
onChange?.(internalValues);
|
|
6846
6922
|
onClose?.();
|
|
6847
6923
|
}, [onChange, onClose, internalValues]);
|
|
6848
|
-
const handleClear = (0,
|
|
6924
|
+
const handleClear = (0, import_react48.useCallback)(() => {
|
|
6849
6925
|
const clearedValues = resetValues || {};
|
|
6850
6926
|
setInternalValues(clearedValues);
|
|
6851
6927
|
onChange?.(clearedValues);
|
|
6852
6928
|
onClose?.();
|
|
6853
6929
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
6854
|
-
return /* @__PURE__ */
|
|
6930
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
6855
6931
|
ModalDialog,
|
|
6856
6932
|
{
|
|
6857
6933
|
sx: {
|
|
@@ -6861,9 +6937,9 @@ function FilterMenu(props) {
|
|
|
6861
6937
|
top: "initial"
|
|
6862
6938
|
}
|
|
6863
6939
|
},
|
|
6864
|
-
/* @__PURE__ */
|
|
6940
|
+
/* @__PURE__ */ import_react48.default.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ import_react48.default.createElement(import_joy58.Stack, { spacing: 6 }, filters?.map((filter) => {
|
|
6865
6941
|
const FilterComponent = componentMap[filter.type];
|
|
6866
|
-
return FilterComponent ? /* @__PURE__ */
|
|
6942
|
+
return FilterComponent ? /* @__PURE__ */ import_react48.default.createElement(
|
|
6867
6943
|
FilterComponent,
|
|
6868
6944
|
{
|
|
6869
6945
|
key: filter.id,
|
|
@@ -6875,13 +6951,13 @@ function FilterMenu(props) {
|
|
|
6875
6951
|
}
|
|
6876
6952
|
) : null;
|
|
6877
6953
|
}))),
|
|
6878
|
-
/* @__PURE__ */
|
|
6954
|
+
/* @__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
6955
|
);
|
|
6880
6956
|
}
|
|
6881
6957
|
FilterMenu.displayName = "FilterMenu";
|
|
6882
6958
|
|
|
6883
6959
|
// src/components/Uploader/Uploader.tsx
|
|
6884
|
-
var
|
|
6960
|
+
var import_react49 = __toESM(require("react"));
|
|
6885
6961
|
var import_joy59 = require("@mui/joy");
|
|
6886
6962
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
6887
6963
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
@@ -6944,7 +7020,7 @@ var getFileSize = (n) => {
|
|
|
6944
7020
|
};
|
|
6945
7021
|
var Preview = (props) => {
|
|
6946
7022
|
const { files, uploaded, onDelete } = props;
|
|
6947
|
-
return /* @__PURE__ */
|
|
7023
|
+
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
7024
|
Typography_default,
|
|
6949
7025
|
{
|
|
6950
7026
|
level: "body-sm",
|
|
@@ -6956,7 +7032,7 @@ var Preview = (props) => {
|
|
|
6956
7032
|
}
|
|
6957
7033
|
},
|
|
6958
7034
|
file.name
|
|
6959
|
-
), !!file.size && /* @__PURE__ */
|
|
7035
|
+
), !!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
7036
|
};
|
|
6961
7037
|
var UploaderRoot = (0, import_joy59.styled)(Stack_default, {
|
|
6962
7038
|
name: "Uploader",
|
|
@@ -6999,7 +7075,7 @@ var UploaderIcon = (0, import_joy59.styled)(import_CloudUploadRounded.default, {
|
|
|
6999
7075
|
}
|
|
7000
7076
|
})
|
|
7001
7077
|
);
|
|
7002
|
-
var Uploader =
|
|
7078
|
+
var Uploader = import_react49.default.memo((props) => {
|
|
7003
7079
|
const {
|
|
7004
7080
|
accept,
|
|
7005
7081
|
minCount,
|
|
@@ -7015,14 +7091,14 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7015
7091
|
error: errorProp,
|
|
7016
7092
|
helperText: helperTextProp
|
|
7017
7093
|
} = 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,
|
|
7094
|
+
const dropZoneRef = (0, import_react49.useRef)(null);
|
|
7095
|
+
const inputRef = (0, import_react49.useRef)(null);
|
|
7096
|
+
const [errorText, setErrorText] = (0, import_react49.useState)();
|
|
7097
|
+
const [files, setFiles] = (0, import_react49.useState)([]);
|
|
7098
|
+
const [uploaded, setUploaded] = (0, import_react49.useState)(props.uploaded || []);
|
|
7099
|
+
const [previewState, setPreviewState] = (0, import_react49.useState)("idle");
|
|
7100
|
+
const accepts = (0, import_react49.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
7101
|
+
const parsedAccepts = (0, import_react49.useMemo)(
|
|
7026
7102
|
() => accepts.flatMap((type) => {
|
|
7027
7103
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
7028
7104
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -7031,7 +7107,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7031
7107
|
}),
|
|
7032
7108
|
[accepts]
|
|
7033
7109
|
);
|
|
7034
|
-
const helperText = (0,
|
|
7110
|
+
const helperText = (0, import_react49.useMemo)(() => {
|
|
7035
7111
|
if (helperTextProp) {
|
|
7036
7112
|
return helperTextProp;
|
|
7037
7113
|
}
|
|
@@ -7061,12 +7137,12 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7061
7137
|
}
|
|
7062
7138
|
return helperTexts.join(", ");
|
|
7063
7139
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
7064
|
-
const error = (0,
|
|
7065
|
-
const showDropZone = (0,
|
|
7140
|
+
const error = (0, import_react49.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
7141
|
+
const showDropZone = (0, import_react49.useMemo)(
|
|
7066
7142
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
7067
7143
|
[files, maxCount, uploaded]
|
|
7068
7144
|
);
|
|
7069
|
-
const addFiles = (0,
|
|
7145
|
+
const addFiles = (0, import_react49.useCallback)(
|
|
7070
7146
|
(uploads) => {
|
|
7071
7147
|
try {
|
|
7072
7148
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -7111,7 +7187,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7111
7187
|
},
|
|
7112
7188
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
7113
7189
|
);
|
|
7114
|
-
(0,
|
|
7190
|
+
(0, import_react49.useEffect)(() => {
|
|
7115
7191
|
if (!dropZoneRef.current || disabled) {
|
|
7116
7192
|
return;
|
|
7117
7193
|
}
|
|
@@ -7139,7 +7215,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7139
7215
|
})
|
|
7140
7216
|
);
|
|
7141
7217
|
}, [disabled, addFiles]);
|
|
7142
|
-
(0,
|
|
7218
|
+
(0, import_react49.useEffect)(() => {
|
|
7143
7219
|
if (inputRef.current && minCount) {
|
|
7144
7220
|
if (files.length < minCount) {
|
|
7145
7221
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -7148,14 +7224,14 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7148
7224
|
}
|
|
7149
7225
|
}
|
|
7150
7226
|
}, [inputRef, files, minCount]);
|
|
7151
|
-
const handleFileChanged = (0,
|
|
7227
|
+
const handleFileChanged = (0, import_react49.useCallback)(
|
|
7152
7228
|
(event) => {
|
|
7153
7229
|
const files2 = Array.from(event.target.files || []);
|
|
7154
7230
|
addFiles(files2);
|
|
7155
7231
|
},
|
|
7156
7232
|
[addFiles]
|
|
7157
7233
|
);
|
|
7158
|
-
const handleDeleteFile = (0,
|
|
7234
|
+
const handleDeleteFile = (0, import_react49.useCallback)(
|
|
7159
7235
|
(deletedFile) => {
|
|
7160
7236
|
if (deletedFile instanceof File) {
|
|
7161
7237
|
setFiles((current) => {
|
|
@@ -7175,10 +7251,10 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7175
7251
|
},
|
|
7176
7252
|
[name, onChange, onDelete]
|
|
7177
7253
|
);
|
|
7178
|
-
const handleUploaderButtonClick = (0,
|
|
7254
|
+
const handleUploaderButtonClick = (0, import_react49.useCallback)(() => {
|
|
7179
7255
|
inputRef.current?.click();
|
|
7180
7256
|
}, []);
|
|
7181
|
-
const uploader = /* @__PURE__ */
|
|
7257
|
+
const uploader = /* @__PURE__ */ import_react49.default.createElement(
|
|
7182
7258
|
FileDropZone,
|
|
7183
7259
|
{
|
|
7184
7260
|
state: previewState,
|
|
@@ -7187,8 +7263,8 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7187
7263
|
ref: dropZoneRef,
|
|
7188
7264
|
onClick: handleUploaderButtonClick
|
|
7189
7265
|
},
|
|
7190
|
-
/* @__PURE__ */
|
|
7191
|
-
/* @__PURE__ */
|
|
7266
|
+
/* @__PURE__ */ import_react49.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react49.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
7267
|
+
/* @__PURE__ */ import_react49.default.createElement(
|
|
7192
7268
|
VisuallyHiddenInput,
|
|
7193
7269
|
{
|
|
7194
7270
|
disabled,
|
|
@@ -7211,7 +7287,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7211
7287
|
}
|
|
7212
7288
|
)
|
|
7213
7289
|
);
|
|
7214
|
-
return /* @__PURE__ */
|
|
7290
|
+
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
7291
|
});
|
|
7216
7292
|
Uploader.displayName = "Uploader";
|
|
7217
7293
|
|
|
@@ -7219,9 +7295,12 @@ Uploader.displayName = "Uploader";
|
|
|
7219
7295
|
var import_joy60 = require("@mui/joy");
|
|
7220
7296
|
|
|
7221
7297
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
7222
|
-
var
|
|
7298
|
+
var import_react50 = __toESM(require("react"));
|
|
7223
7299
|
var import_joy61 = require("@mui/joy");
|
|
7224
|
-
function
|
|
7300
|
+
var MenuButtonRootSlot = import_react50.default.forwardRef(function MenuButtonRootSlot2({ as, ...rest }, ref) {
|
|
7301
|
+
return /* @__PURE__ */ import_react50.default.createElement(import_joy61.IconButton, { ...rest, component: as ?? "button", ref });
|
|
7302
|
+
});
|
|
7303
|
+
function IconMenuButtonInner(props, ref) {
|
|
7225
7304
|
const {
|
|
7226
7305
|
size,
|
|
7227
7306
|
icon,
|
|
@@ -7232,8 +7311,10 @@ function IconMenuButton(props) {
|
|
|
7232
7311
|
variant = "plain",
|
|
7233
7312
|
placement = "bottom"
|
|
7234
7313
|
} = props;
|
|
7314
|
+
const { ref: buttonComponentRef, ...buttonComponentProps } = props.buttonComponentProps ?? {};
|
|
7315
|
+
const mergedButtonRef = useMergedRef(buttonComponentRef, ref);
|
|
7235
7316
|
if (!items.length) {
|
|
7236
|
-
return /* @__PURE__ */
|
|
7317
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
7237
7318
|
import_joy61.IconButton,
|
|
7238
7319
|
{
|
|
7239
7320
|
component: props.buttonComponent ?? "button",
|
|
@@ -7242,15 +7323,16 @@ function IconMenuButton(props) {
|
|
|
7242
7323
|
color,
|
|
7243
7324
|
disabled,
|
|
7244
7325
|
loading,
|
|
7245
|
-
...
|
|
7326
|
+
...buttonComponentProps,
|
|
7327
|
+
ref: mergedButtonRef
|
|
7246
7328
|
},
|
|
7247
7329
|
icon
|
|
7248
7330
|
);
|
|
7249
7331
|
}
|
|
7250
|
-
return /* @__PURE__ */
|
|
7332
|
+
return /* @__PURE__ */ import_react50.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react50.default.createElement(
|
|
7251
7333
|
import_joy61.MenuButton,
|
|
7252
7334
|
{
|
|
7253
|
-
slots: { root:
|
|
7335
|
+
slots: { root: MenuButtonRootSlot },
|
|
7254
7336
|
slotProps: {
|
|
7255
7337
|
root: {
|
|
7256
7338
|
component: props.buttonComponent ?? "button",
|
|
@@ -7259,24 +7341,27 @@ function IconMenuButton(props) {
|
|
|
7259
7341
|
color,
|
|
7260
7342
|
disabled,
|
|
7261
7343
|
loading,
|
|
7262
|
-
...
|
|
7344
|
+
...buttonComponentProps,
|
|
7345
|
+
// Joy의 useSlot이 내부 ref와 이 ref를 합쳐준다. 위 no-items 분기와 같은 경로로 ref를 넘긴다.
|
|
7346
|
+
ref: mergedButtonRef
|
|
7263
7347
|
}
|
|
7264
7348
|
}
|
|
7265
7349
|
},
|
|
7266
7350
|
icon
|
|
7267
|
-
), /* @__PURE__ */
|
|
7351
|
+
), /* @__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
7352
|
}
|
|
7353
|
+
var IconMenuButton = import_react50.default.forwardRef(IconMenuButtonInner);
|
|
7269
7354
|
IconMenuButton.displayName = "IconMenuButton";
|
|
7270
7355
|
|
|
7271
7356
|
// src/components/Markdown/Markdown.tsx
|
|
7272
|
-
var
|
|
7357
|
+
var import_react51 = __toESM(require("react"));
|
|
7273
7358
|
var import_joy62 = require("@mui/joy");
|
|
7274
7359
|
var import_joy63 = require("@mui/joy");
|
|
7275
7360
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
7276
|
-
var LazyReactMarkdown = (0,
|
|
7361
|
+
var LazyReactMarkdown = (0, import_react51.lazy)(() => import("react-markdown"));
|
|
7277
7362
|
var Markdown = (props) => {
|
|
7278
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
7279
|
-
(0,
|
|
7363
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react51.useState)(null);
|
|
7364
|
+
(0, import_react51.useEffect)(() => {
|
|
7280
7365
|
const loadRehypeAccent = async () => {
|
|
7281
7366
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
7282
7367
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -7298,8 +7383,8 @@ var Markdown = (props) => {
|
|
|
7298
7383
|
if (!rehypeAccent2) {
|
|
7299
7384
|
return null;
|
|
7300
7385
|
}
|
|
7301
|
-
return /* @__PURE__ */
|
|
7302
|
-
|
|
7386
|
+
return /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react51.default.createElement(
|
|
7387
|
+
import_react51.Suspense,
|
|
7303
7388
|
{
|
|
7304
7389
|
fallback: (
|
|
7305
7390
|
// While in the fallback state, prevent browser auto-translation (e.g. Chrome/Google Translate)
|
|
@@ -7307,10 +7392,10 @@ var Markdown = (props) => {
|
|
|
7307
7392
|
// swaps the fallback for the real content via insertBefore; if the browser has mutated the DOM
|
|
7308
7393
|
// in the meantime, the reference node's parent changes and React throws a DOMException
|
|
7309
7394
|
// ("Failed to execute 'insertBefore' on 'Node'"), crashing the subtree. (cf. facebook/react#11538)
|
|
7310
|
-
fallback || /* @__PURE__ */
|
|
7395
|
+
fallback || /* @__PURE__ */ import_react51.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react51.default.createElement(import_joy62.Skeleton, null, content || ""))
|
|
7311
7396
|
)
|
|
7312
7397
|
},
|
|
7313
|
-
/* @__PURE__ */
|
|
7398
|
+
/* @__PURE__ */ import_react51.default.createElement(
|
|
7314
7399
|
LazyReactMarkdown,
|
|
7315
7400
|
{
|
|
7316
7401
|
...markdownOptions,
|
|
@@ -7318,17 +7403,17 @@ var Markdown = (props) => {
|
|
|
7318
7403
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
7319
7404
|
remarkPlugins: [import_remark_gfm.default],
|
|
7320
7405
|
components: {
|
|
7321
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
7322
|
-
hr: () => /* @__PURE__ */
|
|
7323
|
-
b: ({ children }) => /* @__PURE__ */
|
|
7324
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
7406
|
+
a: ({ children, href }) => /* @__PURE__ */ import_react51.default.createElement(import_joy63.Link, { href, target: defaultLinkAction }, children),
|
|
7407
|
+
hr: () => /* @__PURE__ */ import_react51.default.createElement(Divider, { sx: { display: "block" } }),
|
|
7408
|
+
b: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
|
|
7409
|
+
strong: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
|
|
7325
7410
|
// Table components
|
|
7326
|
-
table: ({ children }) => /* @__PURE__ */
|
|
7411
|
+
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
7412
|
// Code components
|
|
7328
7413
|
code: ({ children, className }) => {
|
|
7329
7414
|
const isBlock = className?.startsWith("language-");
|
|
7330
7415
|
if (isBlock) {
|
|
7331
|
-
return /* @__PURE__ */
|
|
7416
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
7332
7417
|
Typography,
|
|
7333
7418
|
{
|
|
7334
7419
|
component: "code",
|
|
@@ -7342,7 +7427,7 @@ var Markdown = (props) => {
|
|
|
7342
7427
|
children
|
|
7343
7428
|
);
|
|
7344
7429
|
}
|
|
7345
|
-
return /* @__PURE__ */
|
|
7430
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
7346
7431
|
Typography,
|
|
7347
7432
|
{
|
|
7348
7433
|
component: "code",
|
|
@@ -7357,7 +7442,7 @@ var Markdown = (props) => {
|
|
|
7357
7442
|
children
|
|
7358
7443
|
);
|
|
7359
7444
|
},
|
|
7360
|
-
pre: ({ children }) => /* @__PURE__ */
|
|
7445
|
+
pre: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
7361
7446
|
Sheet,
|
|
7362
7447
|
{
|
|
7363
7448
|
variant: "soft",
|
|
@@ -7375,12 +7460,12 @@ var Markdown = (props) => {
|
|
|
7375
7460
|
// Task list checkbox
|
|
7376
7461
|
input: ({ checked, type }) => {
|
|
7377
7462
|
if (type === "checkbox") {
|
|
7378
|
-
return /* @__PURE__ */
|
|
7463
|
+
return /* @__PURE__ */ import_react51.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
|
|
7379
7464
|
}
|
|
7380
|
-
return /* @__PURE__ */
|
|
7465
|
+
return /* @__PURE__ */ import_react51.default.createElement("input", { checked, type });
|
|
7381
7466
|
},
|
|
7382
7467
|
// Blockquote
|
|
7383
|
-
blockquote: ({ children }) => /* @__PURE__ */
|
|
7468
|
+
blockquote: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
7384
7469
|
Sheet,
|
|
7385
7470
|
{
|
|
7386
7471
|
variant: "soft",
|
|
@@ -7389,12 +7474,12 @@ var Markdown = (props) => {
|
|
|
7389
7474
|
children
|
|
7390
7475
|
),
|
|
7391
7476
|
// Image
|
|
7392
|
-
img: ({ src, alt }) => /* @__PURE__ */
|
|
7477
|
+
img: ({ src, alt }) => /* @__PURE__ */ import_react51.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
|
|
7393
7478
|
// Text style components
|
|
7394
|
-
em: ({ children }) => /* @__PURE__ */
|
|
7395
|
-
del: ({ children }) => /* @__PURE__ */
|
|
7479
|
+
em: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
|
|
7480
|
+
del: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
|
|
7396
7481
|
// Span for accent color (from rehype-accent plugin)
|
|
7397
|
-
span: ({ children, node }) => /* @__PURE__ */
|
|
7482
|
+
span: ({ children, node }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
|
|
7398
7483
|
...markdownOptions?.components
|
|
7399
7484
|
}
|
|
7400
7485
|
}
|
|
@@ -7404,7 +7489,7 @@ var Markdown = (props) => {
|
|
|
7404
7489
|
Markdown.displayName = "Markdown";
|
|
7405
7490
|
|
|
7406
7491
|
// src/components/MenuButton/MenuButton.tsx
|
|
7407
|
-
var
|
|
7492
|
+
var import_react52 = __toESM(require("react"));
|
|
7408
7493
|
var import_joy64 = require("@mui/joy");
|
|
7409
7494
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
7410
7495
|
function MenuButton2(props) {
|
|
@@ -7422,7 +7507,7 @@ function MenuButton2(props) {
|
|
|
7422
7507
|
placement = "bottom"
|
|
7423
7508
|
} = props;
|
|
7424
7509
|
if (!items.length) {
|
|
7425
|
-
return /* @__PURE__ */
|
|
7510
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
7426
7511
|
import_joy64.Button,
|
|
7427
7512
|
{
|
|
7428
7513
|
component: props.buttonComponent ?? "button",
|
|
@@ -7433,12 +7518,12 @@ function MenuButton2(props) {
|
|
|
7433
7518
|
loading,
|
|
7434
7519
|
startDecorator,
|
|
7435
7520
|
...props.buttonComponentProps ?? {},
|
|
7436
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
7521
|
+
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
7522
|
},
|
|
7438
7523
|
buttonText
|
|
7439
7524
|
);
|
|
7440
7525
|
}
|
|
7441
|
-
return /* @__PURE__ */
|
|
7526
|
+
return /* @__PURE__ */ import_react52.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react52.default.createElement(
|
|
7442
7527
|
import_joy64.MenuButton,
|
|
7443
7528
|
{
|
|
7444
7529
|
component: props.buttonComponent ?? "button",
|
|
@@ -7449,15 +7534,15 @@ function MenuButton2(props) {
|
|
|
7449
7534
|
loading,
|
|
7450
7535
|
startDecorator,
|
|
7451
7536
|
...props.buttonComponentProps ?? {},
|
|
7452
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
7537
|
+
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
7538
|
},
|
|
7454
7539
|
buttonText
|
|
7455
|
-
), /* @__PURE__ */
|
|
7540
|
+
), /* @__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
7541
|
}
|
|
7457
7542
|
MenuButton2.displayName = "MenuButton";
|
|
7458
7543
|
|
|
7459
7544
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
7460
|
-
var
|
|
7545
|
+
var import_react53 = __toESM(require("react"));
|
|
7461
7546
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
7462
7547
|
var import_joy65 = require("@mui/joy");
|
|
7463
7548
|
var import_base6 = require("@mui/base");
|
|
@@ -7513,7 +7598,7 @@ function parseDate4(dateString, format) {
|
|
|
7513
7598
|
const result = new Date(year, month, day);
|
|
7514
7599
|
return result;
|
|
7515
7600
|
}
|
|
7516
|
-
var MonthPicker = (0,
|
|
7601
|
+
var MonthPicker = (0, import_react53.forwardRef)((inProps, ref) => {
|
|
7517
7602
|
const props = (0, import_joy65.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
7518
7603
|
const {
|
|
7519
7604
|
onChange,
|
|
@@ -7540,18 +7625,18 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7540
7625
|
locale,
|
|
7541
7626
|
...innerProps
|
|
7542
7627
|
} = props;
|
|
7543
|
-
const innerRef = (0,
|
|
7544
|
-
const buttonRef = (0,
|
|
7628
|
+
const innerRef = (0, import_react53.useRef)(null);
|
|
7629
|
+
const buttonRef = (0, import_react53.useRef)(null);
|
|
7545
7630
|
const [rawValue, setValue, isControlled] = useControlledState(
|
|
7546
7631
|
props.value,
|
|
7547
7632
|
props.defaultValue ?? null,
|
|
7548
|
-
(0,
|
|
7633
|
+
(0, import_react53.useCallback)(
|
|
7549
7634
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
7550
7635
|
[props.name, onChange]
|
|
7551
7636
|
)
|
|
7552
7637
|
);
|
|
7553
7638
|
const value = rawValue ?? "";
|
|
7554
|
-
const getFormattedDisplayValue = (0,
|
|
7639
|
+
const getFormattedDisplayValue = (0, import_react53.useCallback)(
|
|
7555
7640
|
(inputValue) => {
|
|
7556
7641
|
if (!inputValue) return "";
|
|
7557
7642
|
try {
|
|
@@ -7562,19 +7647,19 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7562
7647
|
},
|
|
7563
7648
|
[format, displayFormat, locale]
|
|
7564
7649
|
);
|
|
7565
|
-
const [displayValue, setDisplayValue] = (0,
|
|
7566
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
7650
|
+
const [displayValue, setDisplayValue] = (0, import_react53.useState)(() => getFormattedDisplayValue(value));
|
|
7651
|
+
const [anchorEl, setAnchorEl] = (0, import_react53.useState)(null);
|
|
7567
7652
|
const open = Boolean(anchorEl);
|
|
7568
|
-
(0,
|
|
7653
|
+
(0, import_react53.useEffect)(() => {
|
|
7569
7654
|
if (!anchorEl) {
|
|
7570
7655
|
innerRef.current?.blur();
|
|
7571
7656
|
}
|
|
7572
7657
|
}, [anchorEl, innerRef]);
|
|
7573
|
-
(0,
|
|
7574
|
-
(0,
|
|
7658
|
+
(0, import_react53.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
7659
|
+
(0, import_react53.useEffect)(() => {
|
|
7575
7660
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
7576
7661
|
}, [value, getFormattedDisplayValue]);
|
|
7577
|
-
const handleChange = (0,
|
|
7662
|
+
const handleChange = (0, import_react53.useCallback)(
|
|
7578
7663
|
(event) => {
|
|
7579
7664
|
const newValue = event.target.value;
|
|
7580
7665
|
setValue(newValue);
|
|
@@ -7584,21 +7669,21 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7584
7669
|
},
|
|
7585
7670
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
7586
7671
|
);
|
|
7587
|
-
const handleCalendarToggle = (0,
|
|
7672
|
+
const handleCalendarToggle = (0, import_react53.useCallback)(
|
|
7588
7673
|
(event) => {
|
|
7589
7674
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
7590
7675
|
innerRef.current?.focus();
|
|
7591
7676
|
},
|
|
7592
7677
|
[anchorEl, setAnchorEl, innerRef]
|
|
7593
7678
|
);
|
|
7594
|
-
const handleInputMouseDown = (0,
|
|
7679
|
+
const handleInputMouseDown = (0, import_react53.useCallback)(
|
|
7595
7680
|
(event) => {
|
|
7596
7681
|
event.preventDefault();
|
|
7597
7682
|
buttonRef.current?.focus();
|
|
7598
7683
|
},
|
|
7599
7684
|
[buttonRef]
|
|
7600
7685
|
);
|
|
7601
|
-
return /* @__PURE__ */
|
|
7686
|
+
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
7687
|
Input_default,
|
|
7603
7688
|
{
|
|
7604
7689
|
...innerProps,
|
|
@@ -7628,7 +7713,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7628
7713
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
7629
7714
|
fontFamily: "monospace"
|
|
7630
7715
|
},
|
|
7631
|
-
endDecorator: /* @__PURE__ */
|
|
7716
|
+
endDecorator: /* @__PURE__ */ import_react53.default.createElement(
|
|
7632
7717
|
IconButton_default,
|
|
7633
7718
|
{
|
|
7634
7719
|
ref: buttonRef,
|
|
@@ -7640,12 +7725,12 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7640
7725
|
"aria-expanded": open,
|
|
7641
7726
|
disabled
|
|
7642
7727
|
},
|
|
7643
|
-
/* @__PURE__ */
|
|
7728
|
+
/* @__PURE__ */ import_react53.default.createElement(import_CalendarToday4.default, null)
|
|
7644
7729
|
),
|
|
7645
7730
|
label,
|
|
7646
7731
|
helperText
|
|
7647
7732
|
}
|
|
7648
|
-
), open && /* @__PURE__ */
|
|
7733
|
+
), open && /* @__PURE__ */ import_react53.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react53.default.createElement(
|
|
7649
7734
|
StyledPopper4,
|
|
7650
7735
|
{
|
|
7651
7736
|
id: "month-picker-popper",
|
|
@@ -7664,7 +7749,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7664
7749
|
"aria-label": "Calendar Tooltip",
|
|
7665
7750
|
"aria-expanded": open
|
|
7666
7751
|
},
|
|
7667
|
-
/* @__PURE__ */
|
|
7752
|
+
/* @__PURE__ */ import_react53.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react53.default.createElement(
|
|
7668
7753
|
Calendar_default,
|
|
7669
7754
|
{
|
|
7670
7755
|
view: "month",
|
|
@@ -7685,14 +7770,14 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7685
7770
|
disablePast,
|
|
7686
7771
|
locale
|
|
7687
7772
|
}
|
|
7688
|
-
), /* @__PURE__ */
|
|
7773
|
+
), /* @__PURE__ */ import_react53.default.createElement(
|
|
7689
7774
|
DialogActions_default,
|
|
7690
7775
|
{
|
|
7691
7776
|
sx: {
|
|
7692
7777
|
p: 1
|
|
7693
7778
|
}
|
|
7694
7779
|
},
|
|
7695
|
-
/* @__PURE__ */
|
|
7780
|
+
/* @__PURE__ */ import_react53.default.createElement(
|
|
7696
7781
|
Button_default,
|
|
7697
7782
|
{
|
|
7698
7783
|
size,
|
|
@@ -7715,7 +7800,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7715
7800
|
});
|
|
7716
7801
|
|
|
7717
7802
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
7718
|
-
var
|
|
7803
|
+
var import_react54 = __toESM(require("react"));
|
|
7719
7804
|
var import_joy66 = require("@mui/joy");
|
|
7720
7805
|
var AccordionSummary2 = (0, import_joy66.styled)(import_joy66.AccordionSummary, {
|
|
7721
7806
|
name: "NavigationGroup",
|
|
@@ -7739,11 +7824,11 @@ var AccordionDetails2 = (0, import_joy66.styled)(import_joy66.AccordionDetails,
|
|
|
7739
7824
|
}));
|
|
7740
7825
|
function NavigationGroup(props) {
|
|
7741
7826
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
7742
|
-
return /* @__PURE__ */
|
|
7827
|
+
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
7828
|
}
|
|
7744
7829
|
|
|
7745
7830
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
7746
|
-
var
|
|
7831
|
+
var import_react55 = __toESM(require("react"));
|
|
7747
7832
|
var import_joy67 = require("@mui/joy");
|
|
7748
7833
|
var ListItemButton = (0, import_joy67.styled)(import_joy67.ListItemButton, {
|
|
7749
7834
|
name: "NavigationItem",
|
|
@@ -7772,7 +7857,7 @@ function NavigationItem(props) {
|
|
|
7772
7857
|
const handleClick = () => {
|
|
7773
7858
|
onClick?.(id);
|
|
7774
7859
|
};
|
|
7775
|
-
return /* @__PURE__ */
|
|
7860
|
+
return /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItem, { ...rest }, /* @__PURE__ */ import_react55.default.createElement(
|
|
7776
7861
|
ListItemButton,
|
|
7777
7862
|
{
|
|
7778
7863
|
level,
|
|
@@ -7781,21 +7866,21 @@ function NavigationItem(props) {
|
|
|
7781
7866
|
"aria-current": selected,
|
|
7782
7867
|
onClick: handleClick
|
|
7783
7868
|
},
|
|
7784
|
-
startDecorator && /* @__PURE__ */
|
|
7869
|
+
startDecorator && /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItemDecorator, null, startDecorator),
|
|
7785
7870
|
children
|
|
7786
7871
|
));
|
|
7787
7872
|
}
|
|
7788
7873
|
|
|
7789
7874
|
// src/components/Navigator/Navigator.tsx
|
|
7790
|
-
var
|
|
7875
|
+
var import_react56 = __toESM(require("react"));
|
|
7791
7876
|
function Navigator(props) {
|
|
7792
7877
|
const { items, level = 0, onSelect } = props;
|
|
7793
7878
|
const handleItemClick = (id) => {
|
|
7794
7879
|
onSelect?.(id);
|
|
7795
7880
|
};
|
|
7796
|
-
return /* @__PURE__ */
|
|
7881
|
+
return /* @__PURE__ */ import_react56.default.createElement("div", null, items.map((item, index) => {
|
|
7797
7882
|
if (item.type === "item") {
|
|
7798
|
-
return /* @__PURE__ */
|
|
7883
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
7799
7884
|
NavigationItem,
|
|
7800
7885
|
{
|
|
7801
7886
|
key: item.id,
|
|
@@ -7808,7 +7893,7 @@ function Navigator(props) {
|
|
|
7808
7893
|
item.title
|
|
7809
7894
|
);
|
|
7810
7895
|
} else if (item.type === "group") {
|
|
7811
|
-
return /* @__PURE__ */
|
|
7896
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
7812
7897
|
NavigationGroup,
|
|
7813
7898
|
{
|
|
7814
7899
|
key: `${item.title}-${index}`,
|
|
@@ -7826,7 +7911,7 @@ function Navigator(props) {
|
|
|
7826
7911
|
Navigator.displayName = "Navigator";
|
|
7827
7912
|
|
|
7828
7913
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
7829
|
-
var
|
|
7914
|
+
var import_react57 = __toESM(require("react"));
|
|
7830
7915
|
var import_joy68 = require("@mui/joy");
|
|
7831
7916
|
var import_base7 = require("@mui/base");
|
|
7832
7917
|
var import_ArrowDropDown = __toESM(require("@mui/icons-material/ArrowDropDown"));
|
|
@@ -7836,9 +7921,9 @@ var StyledProfileCard = (0, import_joy68.styled)(import_joy3.Stack, {
|
|
|
7836
7921
|
})({});
|
|
7837
7922
|
function ProfileCard(props) {
|
|
7838
7923
|
const { children, chip, caption, size } = props;
|
|
7839
|
-
const captionLevel = (0,
|
|
7840
|
-
const nameLevel = (0,
|
|
7841
|
-
return /* @__PURE__ */
|
|
7924
|
+
const captionLevel = (0, import_react57.useMemo)(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
7925
|
+
const nameLevel = (0, import_react57.useMemo)(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
7926
|
+
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
7927
|
}
|
|
7843
7928
|
ProfileCard.displayName = "ProfileCard";
|
|
7844
7929
|
var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton, {
|
|
@@ -7850,16 +7935,16 @@ var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton,
|
|
|
7850
7935
|
}));
|
|
7851
7936
|
function ProfileMenuButton(props) {
|
|
7852
7937
|
const { size = "sm", src, alt, children, getInitial, ...innerProps } = props;
|
|
7853
|
-
return /* @__PURE__ */
|
|
7938
|
+
return /* @__PURE__ */ import_react57.default.createElement(
|
|
7854
7939
|
StyledProfileMenuButton,
|
|
7855
7940
|
{
|
|
7856
7941
|
variant: "plain",
|
|
7857
7942
|
color: "neutral",
|
|
7858
7943
|
size,
|
|
7859
|
-
endDecorator: /* @__PURE__ */
|
|
7944
|
+
endDecorator: /* @__PURE__ */ import_react57.default.createElement(import_ArrowDropDown.default, null),
|
|
7860
7945
|
...innerProps
|
|
7861
7946
|
},
|
|
7862
|
-
/* @__PURE__ */
|
|
7947
|
+
/* @__PURE__ */ import_react57.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
7863
7948
|
);
|
|
7864
7949
|
}
|
|
7865
7950
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
@@ -7879,9 +7964,9 @@ function ProfileMenu(inProps) {
|
|
|
7879
7964
|
const [open, setOpen] = useControlledState(
|
|
7880
7965
|
_open,
|
|
7881
7966
|
defaultOpen ?? false,
|
|
7882
|
-
(0,
|
|
7967
|
+
(0, import_react57.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
|
|
7883
7968
|
);
|
|
7884
|
-
return /* @__PURE__ */
|
|
7969
|
+
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
7970
|
ProfileMenuButton,
|
|
7886
7971
|
{
|
|
7887
7972
|
size,
|
|
@@ -7891,7 +7976,7 @@ function ProfileMenu(inProps) {
|
|
|
7891
7976
|
getInitial
|
|
7892
7977
|
},
|
|
7893
7978
|
profile.name
|
|
7894
|
-
), /* @__PURE__ */
|
|
7979
|
+
), /* @__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
7980
|
MenuItem,
|
|
7896
7981
|
{
|
|
7897
7982
|
key: label,
|
|
@@ -7907,7 +7992,7 @@ function ProfileMenu(inProps) {
|
|
|
7907
7992
|
ProfileMenu.displayName = "ProfileMenu";
|
|
7908
7993
|
|
|
7909
7994
|
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
7910
|
-
var
|
|
7995
|
+
var import_react58 = __toESM(require("react"));
|
|
7911
7996
|
var import_joy69 = require("@mui/joy");
|
|
7912
7997
|
var RadioTileGroupRoot = (0, import_joy69.styled)(RadioGroup, {
|
|
7913
7998
|
name: "RadioTileGroup",
|
|
@@ -7995,7 +8080,7 @@ function RadioTileGroup(props) {
|
|
|
7995
8080
|
error,
|
|
7996
8081
|
required
|
|
7997
8082
|
} = props;
|
|
7998
|
-
const radioGroup = /* @__PURE__ */
|
|
8083
|
+
const radioGroup = /* @__PURE__ */ import_react58.default.createElement(
|
|
7999
8084
|
RadioTileGroupRoot,
|
|
8000
8085
|
{
|
|
8001
8086
|
overlay: true,
|
|
@@ -8006,7 +8091,7 @@ function RadioTileGroup(props) {
|
|
|
8006
8091
|
flex,
|
|
8007
8092
|
columns
|
|
8008
8093
|
},
|
|
8009
|
-
options.map((option) => /* @__PURE__ */
|
|
8094
|
+
options.map((option) => /* @__PURE__ */ import_react58.default.createElement(
|
|
8010
8095
|
RadioTileSheet,
|
|
8011
8096
|
{
|
|
8012
8097
|
key: option.value,
|
|
@@ -8016,7 +8101,7 @@ function RadioTileGroup(props) {
|
|
|
8016
8101
|
flex,
|
|
8017
8102
|
textAlign
|
|
8018
8103
|
},
|
|
8019
|
-
/* @__PURE__ */
|
|
8104
|
+
/* @__PURE__ */ import_react58.default.createElement(
|
|
8020
8105
|
Radio,
|
|
8021
8106
|
{
|
|
8022
8107
|
id: `${option.value}`,
|
|
@@ -8045,7 +8130,7 @@ function RadioTileGroup(props) {
|
|
|
8045
8130
|
}
|
|
8046
8131
|
}
|
|
8047
8132
|
),
|
|
8048
|
-
option.startDecorator && /* @__PURE__ */
|
|
8133
|
+
option.startDecorator && /* @__PURE__ */ import_react58.default.createElement(
|
|
8049
8134
|
Box_default,
|
|
8050
8135
|
{
|
|
8051
8136
|
sx: {
|
|
@@ -8066,15 +8151,15 @@ function RadioTileGroup(props) {
|
|
|
8066
8151
|
)
|
|
8067
8152
|
))
|
|
8068
8153
|
);
|
|
8069
|
-
return /* @__PURE__ */
|
|
8154
|
+
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
8155
|
}
|
|
8071
8156
|
RadioTileGroup.displayName = "RadioTileGroup";
|
|
8072
8157
|
|
|
8073
8158
|
// src/components/RadioList/RadioList.tsx
|
|
8074
|
-
var
|
|
8159
|
+
var import_react59 = __toESM(require("react"));
|
|
8075
8160
|
function RadioList(props) {
|
|
8076
8161
|
const { items, ...innerProps } = props;
|
|
8077
|
-
return /* @__PURE__ */
|
|
8162
|
+
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
8163
|
}
|
|
8079
8164
|
RadioList.displayName = "RadioList";
|
|
8080
8165
|
|
|
@@ -8165,7 +8250,7 @@ var SearchBar = React56.forwardRef(function SearchBar2(inProps, ref) {
|
|
|
8165
8250
|
SearchBar.displayName = "SearchBar";
|
|
8166
8251
|
|
|
8167
8252
|
// src/components/Stepper/Stepper.tsx
|
|
8168
|
-
var
|
|
8253
|
+
var import_react60 = __toESM(require("react"));
|
|
8169
8254
|
var import_joy70 = require("@mui/joy");
|
|
8170
8255
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
8171
8256
|
var import_framer_motion27 = require("framer-motion");
|
|
@@ -8194,7 +8279,7 @@ function Stepper(props) {
|
|
|
8194
8279
|
stepOrientation = "horizontal"
|
|
8195
8280
|
} = props;
|
|
8196
8281
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
8197
|
-
return /* @__PURE__ */
|
|
8282
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
8198
8283
|
MotionStepper,
|
|
8199
8284
|
{
|
|
8200
8285
|
orientation,
|
|
@@ -8233,23 +8318,23 @@ function Stepper(props) {
|
|
|
8233
8318
|
const completed = activeStep > i + 1;
|
|
8234
8319
|
const disabled = activeStep < i + 1;
|
|
8235
8320
|
const hasContent = step.label || step.extraContent;
|
|
8236
|
-
return /* @__PURE__ */
|
|
8321
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
8237
8322
|
Step,
|
|
8238
8323
|
{
|
|
8239
8324
|
key: `step-${i}`,
|
|
8240
|
-
indicator: /* @__PURE__ */
|
|
8325
|
+
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
8326
|
active,
|
|
8242
8327
|
completed,
|
|
8243
8328
|
disabled,
|
|
8244
8329
|
orientation: effectiveStepOrientation
|
|
8245
8330
|
},
|
|
8246
|
-
hasContent && /* @__PURE__ */
|
|
8331
|
+
hasContent && /* @__PURE__ */ import_react60.default.createElement(
|
|
8247
8332
|
Stack_default,
|
|
8248
8333
|
{
|
|
8249
8334
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
8250
8335
|
},
|
|
8251
|
-
step.label && /* @__PURE__ */
|
|
8252
|
-
step.extraContent && /* @__PURE__ */
|
|
8336
|
+
step.label && /* @__PURE__ */ import_react60.default.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
8337
|
+
step.extraContent && /* @__PURE__ */ import_react60.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
8253
8338
|
)
|
|
8254
8339
|
);
|
|
8255
8340
|
})
|
|
@@ -8258,7 +8343,7 @@ function Stepper(props) {
|
|
|
8258
8343
|
Stepper.displayName = "Stepper";
|
|
8259
8344
|
|
|
8260
8345
|
// src/components/Switch/Switch.tsx
|
|
8261
|
-
var
|
|
8346
|
+
var import_react61 = __toESM(require("react"));
|
|
8262
8347
|
var import_joy71 = require("@mui/joy");
|
|
8263
8348
|
var import_framer_motion28 = require("framer-motion");
|
|
8264
8349
|
var MotionSwitch = (0, import_framer_motion28.motion)(import_joy71.Switch);
|
|
@@ -8280,14 +8365,14 @@ var StyledThumb = (0, import_joy71.styled)(import_framer_motion28.motion.div)({
|
|
|
8280
8365
|
right: "var(--Switch-thumbOffset)"
|
|
8281
8366
|
}
|
|
8282
8367
|
});
|
|
8283
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
8368
|
+
var Thumb = (props) => /* @__PURE__ */ import_react61.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
8284
8369
|
var spring = {
|
|
8285
8370
|
type: "spring",
|
|
8286
8371
|
stiffness: 700,
|
|
8287
8372
|
damping: 30
|
|
8288
8373
|
};
|
|
8289
8374
|
var Switch = (props) => {
|
|
8290
|
-
return /* @__PURE__ */
|
|
8375
|
+
return /* @__PURE__ */ import_react61.default.createElement(
|
|
8291
8376
|
MotionSwitch,
|
|
8292
8377
|
{
|
|
8293
8378
|
...props,
|
|
@@ -8301,7 +8386,7 @@ var Switch = (props) => {
|
|
|
8301
8386
|
Switch.displayName = "Switch";
|
|
8302
8387
|
|
|
8303
8388
|
// src/components/Tabs/Tabs.tsx
|
|
8304
|
-
var
|
|
8389
|
+
var import_react62 = __toESM(require("react"));
|
|
8305
8390
|
var import_joy72 = require("@mui/joy");
|
|
8306
8391
|
var StyledTabs = (0, import_joy72.styled)(import_joy72.Tabs)(({ theme }) => ({
|
|
8307
8392
|
backgroundColor: theme.palette.background.body
|
|
@@ -8317,15 +8402,15 @@ var StyledTab = (0, import_joy72.styled)(import_joy72.Tab)(({ theme }) => ({
|
|
|
8317
8402
|
backgroundColor: theme.palette.background.body
|
|
8318
8403
|
}
|
|
8319
8404
|
}));
|
|
8320
|
-
var Tab = (0,
|
|
8321
|
-
return /* @__PURE__ */
|
|
8405
|
+
var Tab = (0, import_react62.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
8406
|
+
return /* @__PURE__ */ import_react62.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
8322
8407
|
});
|
|
8323
8408
|
Tab.displayName = "Tab";
|
|
8324
8409
|
var TabList = import_joy72.TabList;
|
|
8325
8410
|
var TabPanel = import_joy72.TabPanel;
|
|
8326
8411
|
|
|
8327
8412
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
8328
|
-
var
|
|
8413
|
+
var import_react63 = __toESM(require("react"));
|
|
8329
8414
|
var import_joy73 = require("@mui/joy");
|
|
8330
8415
|
var colorScheme = {
|
|
8331
8416
|
palette: {
|
|
@@ -8722,6 +8807,6 @@ var defaultTheme = (0, import_joy73.extendTheme)({
|
|
|
8722
8807
|
});
|
|
8723
8808
|
function ThemeProvider(props) {
|
|
8724
8809
|
const theme = props.theme || defaultTheme;
|
|
8725
|
-
return /* @__PURE__ */
|
|
8810
|
+
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
8811
|
}
|
|
8727
8812
|
ThemeProvider.displayName = "ThemeProvider";
|