@ceed/ads 1.41.2 → 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/components/inputs/DatePicker.md +1 -1
- package/dist/components/inputs/DateRangePicker.md +1 -1
- package/dist/index.browser.js +6 -6
- package/dist/index.browser.js.map +4 -4
- package/dist/index.cjs +795 -712
- package/dist/index.js +259 -176
- package/dist/libs/slot-props.d.ts +22 -0
- package/framer/index.js +1 -1
- package/package.json +7 -4
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,
|
|
@@ -3126,9 +3166,8 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3126
3166
|
onClick: handleInputClick
|
|
3127
3167
|
}
|
|
3128
3168
|
},
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
endDecorator: /* @__PURE__ */ import_react21.default.createElement(
|
|
3169
|
+
sx: { width: "100%" },
|
|
3170
|
+
endDecorator: /* @__PURE__ */ import_react22.default.createElement(
|
|
3132
3171
|
CalendarButton,
|
|
3133
3172
|
{
|
|
3134
3173
|
ref: buttonRef,
|
|
@@ -3140,13 +3179,13 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3140
3179
|
"aria-expanded": open,
|
|
3141
3180
|
disabled
|
|
3142
3181
|
},
|
|
3143
|
-
/* @__PURE__ */
|
|
3182
|
+
/* @__PURE__ */ import_react22.default.createElement(import_CalendarToday.default, null)
|
|
3144
3183
|
),
|
|
3145
3184
|
label,
|
|
3146
3185
|
helperText,
|
|
3147
3186
|
readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
|
|
3148
3187
|
}
|
|
3149
|
-
), open && /* @__PURE__ */
|
|
3188
|
+
), open && /* @__PURE__ */ import_react22.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react22.default.createElement(
|
|
3150
3189
|
StyledPopper,
|
|
3151
3190
|
{
|
|
3152
3191
|
id: "date-picker-popper",
|
|
@@ -3165,7 +3204,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3165
3204
|
"aria-label": "Calendar Tooltip",
|
|
3166
3205
|
"aria-expanded": open
|
|
3167
3206
|
},
|
|
3168
|
-
/* @__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(
|
|
3169
3208
|
Calendar_default,
|
|
3170
3209
|
{
|
|
3171
3210
|
value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
|
|
@@ -3185,14 +3224,14 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3185
3224
|
shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0,
|
|
3186
3225
|
locale
|
|
3187
3226
|
}
|
|
3188
|
-
), !hideClearButton && /* @__PURE__ */
|
|
3227
|
+
), !hideClearButton && /* @__PURE__ */ import_react22.default.createElement(
|
|
3189
3228
|
DialogActions_default,
|
|
3190
3229
|
{
|
|
3191
3230
|
sx: {
|
|
3192
3231
|
p: 1
|
|
3193
3232
|
}
|
|
3194
3233
|
},
|
|
3195
|
-
/* @__PURE__ */
|
|
3234
|
+
/* @__PURE__ */ import_react22.default.createElement(
|
|
3196
3235
|
Button_default,
|
|
3197
3236
|
{
|
|
3198
3237
|
size,
|
|
@@ -3210,9 +3249,9 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3210
3249
|
},
|
|
3211
3250
|
"Clear"
|
|
3212
3251
|
)
|
|
3213
|
-
)), presets && presets.length > 0 && /* @__PURE__ */
|
|
3252
|
+
)), presets && presets.length > 0 && /* @__PURE__ */ import_react22.default.createElement(PresetPanel, null, presets.map((preset) => {
|
|
3214
3253
|
const disabled2 = isPresetDisabled(preset.value);
|
|
3215
|
-
return /* @__PURE__ */
|
|
3254
|
+
return /* @__PURE__ */ import_react22.default.createElement(
|
|
3216
3255
|
PresetItem,
|
|
3217
3256
|
{
|
|
3218
3257
|
key: preset.label,
|
|
@@ -3233,11 +3272,11 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
|
|
|
3233
3272
|
var DatePicker_default = DatePicker;
|
|
3234
3273
|
|
|
3235
3274
|
// src/components/Textarea/Textarea.tsx
|
|
3236
|
-
var
|
|
3275
|
+
var import_react23 = __toESM(require("react"));
|
|
3237
3276
|
var import_joy30 = require("@mui/joy");
|
|
3238
3277
|
var import_framer_motion19 = require("framer-motion");
|
|
3239
3278
|
var MotionTextarea = (0, import_framer_motion19.motion)(import_joy30.Textarea);
|
|
3240
|
-
var
|
|
3279
|
+
var TextareaBase = (props) => {
|
|
3241
3280
|
const {
|
|
3242
3281
|
label,
|
|
3243
3282
|
error,
|
|
@@ -3253,7 +3292,7 @@ var Textarea = (props) => {
|
|
|
3253
3292
|
className,
|
|
3254
3293
|
...innerProps
|
|
3255
3294
|
} = props;
|
|
3256
|
-
const textarea = /* @__PURE__ */
|
|
3295
|
+
const textarea = /* @__PURE__ */ import_react23.default.createElement(
|
|
3257
3296
|
MotionTextarea,
|
|
3258
3297
|
{
|
|
3259
3298
|
required,
|
|
@@ -3265,7 +3304,7 @@ var Textarea = (props) => {
|
|
|
3265
3304
|
...innerProps
|
|
3266
3305
|
}
|
|
3267
3306
|
);
|
|
3268
|
-
return /* @__PURE__ */
|
|
3307
|
+
return /* @__PURE__ */ import_react23.default.createElement(
|
|
3269
3308
|
FormControl_default,
|
|
3270
3309
|
{
|
|
3271
3310
|
required,
|
|
@@ -3276,18 +3315,22 @@ var Textarea = (props) => {
|
|
|
3276
3315
|
sx,
|
|
3277
3316
|
className
|
|
3278
3317
|
},
|
|
3279
|
-
label && /* @__PURE__ */
|
|
3318
|
+
label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, null, label),
|
|
3280
3319
|
textarea,
|
|
3281
|
-
helperText && /* @__PURE__ */
|
|
3320
|
+
helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, null, helperText)
|
|
3282
3321
|
);
|
|
3283
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
|
+
});
|
|
3284
3327
|
Textarea.displayName = "Textarea";
|
|
3285
3328
|
|
|
3286
3329
|
// src/components/Textarea/index.ts
|
|
3287
3330
|
var Textarea_default = Textarea;
|
|
3288
3331
|
|
|
3289
3332
|
// src/components/Select/Select.tsx
|
|
3290
|
-
var
|
|
3333
|
+
var import_react24 = __toESM(require("react"));
|
|
3291
3334
|
var import_joy31 = require("@mui/joy");
|
|
3292
3335
|
var import_framer_motion20 = require("framer-motion");
|
|
3293
3336
|
var MotionOption = (0, import_framer_motion20.motion)(import_joy31.Option);
|
|
@@ -3298,7 +3341,7 @@ var secondaryTextLevelMap2 = {
|
|
|
3298
3341
|
lg: "body-md"
|
|
3299
3342
|
};
|
|
3300
3343
|
Option.displayName = "Option";
|
|
3301
|
-
function
|
|
3344
|
+
function SelectInner(props, ref) {
|
|
3302
3345
|
const {
|
|
3303
3346
|
label,
|
|
3304
3347
|
helperText,
|
|
@@ -3324,7 +3367,7 @@ function Select(props) {
|
|
|
3324
3367
|
formHelperText: formHelperTextProps,
|
|
3325
3368
|
...joySlotProps
|
|
3326
3369
|
} = slotProps ?? {};
|
|
3327
|
-
const options = (0,
|
|
3370
|
+
const options = (0, import_react24.useMemo)(
|
|
3328
3371
|
() => props.options.map((option) => {
|
|
3329
3372
|
if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
|
|
3330
3373
|
return option;
|
|
@@ -3349,14 +3392,15 @@ function Select(props) {
|
|
|
3349
3392
|
};
|
|
3350
3393
|
onChange?.(newEvent, newValue);
|
|
3351
3394
|
};
|
|
3352
|
-
const optionMap = (0,
|
|
3395
|
+
const optionMap = (0, import_react24.useMemo)(() => {
|
|
3353
3396
|
const map = /* @__PURE__ */ new Map();
|
|
3354
3397
|
options.forEach((option) => {
|
|
3355
3398
|
map.set(option.value, option);
|
|
3356
3399
|
});
|
|
3357
3400
|
return map;
|
|
3358
3401
|
}, [options]);
|
|
3359
|
-
const
|
|
3402
|
+
const buttonSlotProps = useSlotRef(joySlotProps.button, ref);
|
|
3403
|
+
const select = /* @__PURE__ */ import_react24.default.createElement(
|
|
3360
3404
|
import_joy31.Select,
|
|
3361
3405
|
{
|
|
3362
3406
|
...innerProps,
|
|
@@ -3364,7 +3408,7 @@ function Select(props) {
|
|
|
3364
3408
|
disabled,
|
|
3365
3409
|
size,
|
|
3366
3410
|
color: error ? "danger" : color,
|
|
3367
|
-
slotProps: joySlotProps,
|
|
3411
|
+
slotProps: { ...joySlotProps, button: buttonSlotProps },
|
|
3368
3412
|
onChange: handleChange,
|
|
3369
3413
|
renderValue: (selected) => {
|
|
3370
3414
|
if (!selected) return null;
|
|
@@ -3374,9 +3418,9 @@ function Select(props) {
|
|
|
3374
3418
|
return optionMap.get(selected.value)?.label;
|
|
3375
3419
|
}
|
|
3376
3420
|
},
|
|
3377
|
-
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))
|
|
3378
3422
|
);
|
|
3379
|
-
return /* @__PURE__ */
|
|
3423
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
3380
3424
|
FormControl_default,
|
|
3381
3425
|
{
|
|
3382
3426
|
required,
|
|
@@ -3389,11 +3433,12 @@ function Select(props) {
|
|
|
3389
3433
|
className,
|
|
3390
3434
|
...formControlProps
|
|
3391
3435
|
},
|
|
3392
|
-
label && /* @__PURE__ */
|
|
3436
|
+
label && /* @__PURE__ */ import_react24.default.createElement(FormLabel_default, { ...formLabelProps }, label),
|
|
3393
3437
|
select,
|
|
3394
|
-
helperText && /* @__PURE__ */
|
|
3438
|
+
helperText && /* @__PURE__ */ import_react24.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
|
|
3395
3439
|
);
|
|
3396
3440
|
}
|
|
3441
|
+
var Select = import_react24.default.forwardRef(SelectInner);
|
|
3397
3442
|
Select.displayName = "Select";
|
|
3398
3443
|
|
|
3399
3444
|
// src/components/Select/index.ts
|
|
@@ -3403,7 +3448,7 @@ var Select_default = Select;
|
|
|
3403
3448
|
var import_joy34 = require("@mui/joy");
|
|
3404
3449
|
|
|
3405
3450
|
// src/components/InfoSign/InfoSign.tsx
|
|
3406
|
-
var
|
|
3451
|
+
var import_react25 = __toESM(require("react"));
|
|
3407
3452
|
var import_joy32 = require("@mui/joy");
|
|
3408
3453
|
var import_Info = __toESM(require("@mui/icons-material/Info"));
|
|
3409
3454
|
var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
@@ -3416,7 +3461,7 @@ var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
|
|
|
3416
3461
|
}));
|
|
3417
3462
|
function InfoSign(props) {
|
|
3418
3463
|
const { message, placement } = props;
|
|
3419
|
-
return /* @__PURE__ */
|
|
3464
|
+
return /* @__PURE__ */ import_react25.default.createElement(
|
|
3420
3465
|
Tooltip_default,
|
|
3421
3466
|
{
|
|
3422
3467
|
arrow: true,
|
|
@@ -3426,9 +3471,9 @@ function InfoSign(props) {
|
|
|
3426
3471
|
maxWidth: "320px"
|
|
3427
3472
|
}
|
|
3428
3473
|
},
|
|
3429
|
-
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))
|
|
3430
3475
|
},
|
|
3431
|
-
/* @__PURE__ */
|
|
3476
|
+
/* @__PURE__ */ import_react25.default.createElement(InfoIcon, null)
|
|
3432
3477
|
);
|
|
3433
3478
|
}
|
|
3434
3479
|
|
|
@@ -3441,9 +3486,9 @@ var TextEllipsis = ({
|
|
|
3441
3486
|
lineClamp,
|
|
3442
3487
|
...rest
|
|
3443
3488
|
}) => {
|
|
3444
|
-
const textRef = (0,
|
|
3445
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
3446
|
-
(0,
|
|
3489
|
+
const textRef = (0, import_react26.useRef)(null);
|
|
3490
|
+
const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
|
|
3491
|
+
(0, import_react26.useLayoutEffect)(() => {
|
|
3447
3492
|
const element = textRef.current;
|
|
3448
3493
|
if (!element) return;
|
|
3449
3494
|
const checkTruncation = () => {
|
|
@@ -3455,21 +3500,21 @@ var TextEllipsis = ({
|
|
|
3455
3500
|
ro.observe(element);
|
|
3456
3501
|
return () => ro.disconnect();
|
|
3457
3502
|
}, [children, lineClamp]);
|
|
3458
|
-
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));
|
|
3459
3504
|
};
|
|
3460
3505
|
var CellTextEllipsis = ({ children }) => {
|
|
3461
|
-
const textRef = (0,
|
|
3462
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
3463
|
-
(0,
|
|
3506
|
+
const textRef = (0, import_react26.useRef)(null);
|
|
3507
|
+
const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
|
|
3508
|
+
(0, import_react26.useLayoutEffect)(() => {
|
|
3464
3509
|
const element = textRef.current;
|
|
3465
3510
|
if (element) {
|
|
3466
3511
|
const isTextTruncated = element.scrollWidth > element.clientWidth;
|
|
3467
3512
|
setShowTooltip(isTextTruncated);
|
|
3468
3513
|
}
|
|
3469
3514
|
}, [children]);
|
|
3470
|
-
const content = /* @__PURE__ */
|
|
3515
|
+
const content = /* @__PURE__ */ import_react26.default.createElement(EllipsisDiv, { ref: textRef }, children);
|
|
3471
3516
|
if (showTooltip) {
|
|
3472
|
-
return /* @__PURE__ */
|
|
3517
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
3473
3518
|
Tooltip_default,
|
|
3474
3519
|
{
|
|
3475
3520
|
title: children,
|
|
@@ -3508,34 +3553,32 @@ var HeadCell = (props) => {
|
|
|
3508
3553
|
tableColRef,
|
|
3509
3554
|
headerClassName,
|
|
3510
3555
|
headerLineClamp,
|
|
3511
|
-
onAutoFit
|
|
3556
|
+
onAutoFit,
|
|
3557
|
+
columnId
|
|
3512
3558
|
} = props;
|
|
3513
3559
|
const theme = (0, import_joy33.useTheme)();
|
|
3514
3560
|
const ref = headerRef;
|
|
3515
3561
|
const colRef = tableColRef;
|
|
3516
|
-
const localRef = (0,
|
|
3517
|
-
(0,
|
|
3562
|
+
const localRef = (0, import_react26.useRef)(null);
|
|
3563
|
+
(0, import_react26.useLayoutEffect)(() => {
|
|
3518
3564
|
ref.current = localRef.current;
|
|
3519
3565
|
}, [ref]);
|
|
3520
|
-
const [isHovered, setIsHovered] = (0,
|
|
3566
|
+
const [isHovered, setIsHovered] = (0, import_react26.useState)(false);
|
|
3521
3567
|
const sortable = type === "actions" ? false : _sortable;
|
|
3522
|
-
const headId = (0,
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
);
|
|
3526
|
-
const isResizingRef = (0, import_react25.useRef)(false);
|
|
3527
|
-
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)(
|
|
3528
3571
|
() => resizable ?? true ? Resizer(
|
|
3529
3572
|
ref,
|
|
3530
3573
|
colRef,
|
|
3531
3574
|
(isResizing) => {
|
|
3532
3575
|
isResizingRef.current = isResizing;
|
|
3533
3576
|
},
|
|
3534
|
-
onAutoFit ? () => onAutoFit(field) : void 0
|
|
3577
|
+
onAutoFit ? () => onAutoFit(columnId ?? String(field)) : void 0
|
|
3535
3578
|
) : null,
|
|
3536
|
-
[resizable, ref, colRef, onAutoFit, field]
|
|
3579
|
+
[resizable, ref, colRef, onAutoFit, columnId, field]
|
|
3537
3580
|
);
|
|
3538
|
-
const style = (0,
|
|
3581
|
+
const style = (0, import_react26.useMemo)(
|
|
3539
3582
|
() => ({
|
|
3540
3583
|
width,
|
|
3541
3584
|
minWidth: minWidth ?? "50px",
|
|
@@ -3553,10 +3596,10 @@ var HeadCell = (props) => {
|
|
|
3553
3596
|
);
|
|
3554
3597
|
const textAlign = getTextAlign(props);
|
|
3555
3598
|
const initialSort = sortOrder[0];
|
|
3556
|
-
const sortIcon = (0,
|
|
3599
|
+
const sortIcon = (0, import_react26.useMemo)(() => {
|
|
3557
3600
|
const isSorted = !!sort;
|
|
3558
3601
|
const isVisible = sortable && (isSorted || isHovered);
|
|
3559
|
-
return /* @__PURE__ */
|
|
3602
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_framer_motion21.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react26.default.createElement(
|
|
3560
3603
|
MotionSortIcon,
|
|
3561
3604
|
{
|
|
3562
3605
|
key: "sort-icon",
|
|
@@ -3584,21 +3627,21 @@ var HeadCell = (props) => {
|
|
|
3584
3627
|
}
|
|
3585
3628
|
));
|
|
3586
3629
|
}, [headId, initialSort, sort, sortable, isHovered]);
|
|
3587
|
-
const infoSign = (0,
|
|
3588
|
-
() => description ? /* @__PURE__ */
|
|
3630
|
+
const infoSign = (0, import_react26.useMemo)(
|
|
3631
|
+
() => description ? /* @__PURE__ */ import_react26.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
|
|
3589
3632
|
[description]
|
|
3590
3633
|
);
|
|
3591
|
-
const params = (0,
|
|
3634
|
+
const params = (0, import_react26.useMemo)(
|
|
3592
3635
|
() => ({
|
|
3593
3636
|
field
|
|
3594
3637
|
}),
|
|
3595
3638
|
[field]
|
|
3596
3639
|
);
|
|
3597
|
-
const computedHeaderClassName = (0,
|
|
3640
|
+
const computedHeaderClassName = (0, import_react26.useMemo)(
|
|
3598
3641
|
() => (typeof headerClassName === "function" ? headerClassName(params) : headerClassName) || void 0,
|
|
3599
3642
|
[headerClassName, params]
|
|
3600
3643
|
);
|
|
3601
|
-
return /* @__PURE__ */
|
|
3644
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
3602
3645
|
StyledTh,
|
|
3603
3646
|
{
|
|
3604
3647
|
id: headId,
|
|
@@ -3607,7 +3650,7 @@ var HeadCell = (props) => {
|
|
|
3607
3650
|
ref: localRef,
|
|
3608
3651
|
key: field,
|
|
3609
3652
|
style,
|
|
3610
|
-
onClick: (0,
|
|
3653
|
+
onClick: (0, import_react26.useCallback)(
|
|
3611
3654
|
(e) => {
|
|
3612
3655
|
if (isResizingRef.current) return;
|
|
3613
3656
|
if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
|
|
@@ -3621,7 +3664,7 @@ var HeadCell = (props) => {
|
|
|
3621
3664
|
initial: "initial",
|
|
3622
3665
|
className: computedHeaderClassName
|
|
3623
3666
|
},
|
|
3624
|
-
/* @__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),
|
|
3625
3668
|
resizer
|
|
3626
3669
|
);
|
|
3627
3670
|
};
|
|
@@ -3646,9 +3689,9 @@ var BodyCell = (props) => {
|
|
|
3646
3689
|
onCellEditStop
|
|
3647
3690
|
} = props;
|
|
3648
3691
|
const theme = (0, import_joy33.useTheme)();
|
|
3649
|
-
const [value, setValue] = (0,
|
|
3650
|
-
const cellRef = (0,
|
|
3651
|
-
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)(
|
|
3652
3695
|
() => ({
|
|
3653
3696
|
row,
|
|
3654
3697
|
value,
|
|
@@ -3657,20 +3700,20 @@ var BodyCell = (props) => {
|
|
|
3657
3700
|
}),
|
|
3658
3701
|
[row, rowId, value, field]
|
|
3659
3702
|
);
|
|
3660
|
-
const editMode = (0,
|
|
3703
|
+
const editMode = (0, import_react26.useMemo)(
|
|
3661
3704
|
() => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
|
|
3662
3705
|
[props.editMode, isCellEditable, params]
|
|
3663
3706
|
);
|
|
3664
3707
|
const propsComponentProps = "componentProps" in props ? props.componentProps : null;
|
|
3665
3708
|
const hasComponentProps = "componentProps" in props;
|
|
3666
|
-
const componentProps = (0,
|
|
3709
|
+
const componentProps = (0, import_react26.useMemo)(
|
|
3667
3710
|
() => ({
|
|
3668
3711
|
...hasComponentProps && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
|
|
3669
3712
|
size: "sm"
|
|
3670
3713
|
}),
|
|
3671
3714
|
[hasComponentProps, propsComponentProps, params]
|
|
3672
3715
|
);
|
|
3673
|
-
const editModeComponentProps = (0,
|
|
3716
|
+
const editModeComponentProps = (0, import_react26.useMemo)(
|
|
3674
3717
|
() => ({
|
|
3675
3718
|
...componentProps,
|
|
3676
3719
|
onChange: (e) => {
|
|
@@ -3732,25 +3775,25 @@ var BodyCell = (props) => {
|
|
|
3732
3775
|
}),
|
|
3733
3776
|
[params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
|
|
3734
3777
|
);
|
|
3735
|
-
const MemoizedRenderEditCell = (0,
|
|
3736
|
-
const MemoizedRenderCell = (0,
|
|
3737
|
-
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)(() => {
|
|
3738
3781
|
if (MemoizedRenderEditCell) {
|
|
3739
|
-
return (0,
|
|
3782
|
+
return (0, import_react26.createElement)(MemoizedRenderEditCell, params);
|
|
3740
3783
|
}
|
|
3741
3784
|
return {
|
|
3742
|
-
date: /* @__PURE__ */
|
|
3743
|
-
currency: /* @__PURE__ */
|
|
3785
|
+
date: /* @__PURE__ */ import_react26.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
|
|
3786
|
+
currency: /* @__PURE__ */ import_react26.default.createElement(
|
|
3744
3787
|
CurrencyInput_default,
|
|
3745
3788
|
{
|
|
3746
3789
|
value,
|
|
3747
3790
|
...editModeComponentProps
|
|
3748
3791
|
}
|
|
3749
3792
|
),
|
|
3750
|
-
number: /* @__PURE__ */
|
|
3751
|
-
text: /* @__PURE__ */
|
|
3752
|
-
longText: /* @__PURE__ */
|
|
3753
|
-
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(
|
|
3754
3797
|
Autocomplete_default,
|
|
3755
3798
|
{
|
|
3756
3799
|
value,
|
|
@@ -3758,7 +3801,7 @@ var BodyCell = (props) => {
|
|
|
3758
3801
|
...editModeComponentProps
|
|
3759
3802
|
}
|
|
3760
3803
|
),
|
|
3761
|
-
select: /* @__PURE__ */
|
|
3804
|
+
select: /* @__PURE__ */ import_react26.default.createElement(
|
|
3762
3805
|
Select_default,
|
|
3763
3806
|
{
|
|
3764
3807
|
value,
|
|
@@ -3769,13 +3812,13 @@ var BodyCell = (props) => {
|
|
|
3769
3812
|
}[type || "text"];
|
|
3770
3813
|
}, [value, editModeComponentProps, type, MemoizedRenderEditCell, params]);
|
|
3771
3814
|
const linkComponentFromProps = props.component;
|
|
3772
|
-
const ReadModeComponent = (0,
|
|
3815
|
+
const ReadModeComponent = (0, import_react26.useMemo)(() => {
|
|
3773
3816
|
if (MemoizedRenderCell) {
|
|
3774
|
-
return (0,
|
|
3817
|
+
return (0, import_react26.createElement)(MemoizedRenderCell, params);
|
|
3775
3818
|
}
|
|
3776
3819
|
const innerText = value;
|
|
3777
3820
|
const typedComponent = {
|
|
3778
|
-
link:
|
|
3821
|
+
link: import_react26.default.createElement(linkComponentFromProps || import_joy34.Link, {
|
|
3779
3822
|
children: innerText,
|
|
3780
3823
|
...componentProps
|
|
3781
3824
|
})
|
|
@@ -3783,27 +3826,27 @@ var BodyCell = (props) => {
|
|
|
3783
3826
|
return typedComponent || innerText;
|
|
3784
3827
|
}, [value, MemoizedRenderCell, params, type, componentProps, linkComponentFromProps]);
|
|
3785
3828
|
const getActions = props.getActions;
|
|
3786
|
-
const CellComponent = (0,
|
|
3829
|
+
const CellComponent = (0, import_react26.useMemo)(() => {
|
|
3787
3830
|
if (type === "actions") {
|
|
3788
|
-
return /* @__PURE__ */
|
|
3831
|
+
return /* @__PURE__ */ import_react26.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
|
|
3789
3832
|
}
|
|
3790
3833
|
return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
|
|
3791
3834
|
}, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
|
|
3792
|
-
const showTooltip = (0,
|
|
3835
|
+
const showTooltip = (0, import_react26.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
|
|
3793
3836
|
const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
|
|
3794
|
-
const computedCellClassName = (0,
|
|
3837
|
+
const computedCellClassName = (0, import_react26.useMemo)(
|
|
3795
3838
|
() => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
|
|
3796
3839
|
[cellClassName, params]
|
|
3797
3840
|
);
|
|
3798
|
-
(0,
|
|
3841
|
+
(0, import_react26.useEffect)(() => {
|
|
3799
3842
|
setValue(row[field]);
|
|
3800
3843
|
}, [row, field]);
|
|
3801
|
-
return /* @__PURE__ */
|
|
3844
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
3802
3845
|
StyledTd,
|
|
3803
3846
|
{
|
|
3804
3847
|
ref: cellRef,
|
|
3805
3848
|
key: field,
|
|
3806
|
-
headers:
|
|
3849
|
+
headers: getHeaderCellId(tableId, props.columnId ?? field),
|
|
3807
3850
|
sx: {
|
|
3808
3851
|
textAlign: getTextAlign({ type }),
|
|
3809
3852
|
verticalAlign: editMode ? "top" : "middle",
|
|
@@ -3815,16 +3858,16 @@ var BodyCell = (props) => {
|
|
|
3815
3858
|
},
|
|
3816
3859
|
className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
|
|
3817
3860
|
},
|
|
3818
|
-
(0,
|
|
3819
|
-
() => showTooltip ? /* @__PURE__ */
|
|
3861
|
+
(0, import_react26.useMemo)(
|
|
3862
|
+
() => showTooltip ? /* @__PURE__ */ import_react26.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
|
|
3820
3863
|
[CellComponent, showTooltip]
|
|
3821
3864
|
)
|
|
3822
3865
|
);
|
|
3823
3866
|
};
|
|
3824
|
-
var BodyRow = (0,
|
|
3867
|
+
var BodyRow = (0, import_react26.memo)(
|
|
3825
3868
|
(props) => {
|
|
3826
3869
|
const { tableId, columns, rowId, editMode, noWrap, row } = props;
|
|
3827
|
-
return /* @__PURE__ */
|
|
3870
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react26.default.createElement(
|
|
3828
3871
|
BodyCell,
|
|
3829
3872
|
{
|
|
3830
3873
|
key: `${rowId}_${column.field.toString()}_${i}`,
|
|
@@ -3857,7 +3900,7 @@ var StyledTableRow2 = (0, import_joy33.styled)("tr", {
|
|
|
3857
3900
|
}
|
|
3858
3901
|
}
|
|
3859
3902
|
}));
|
|
3860
|
-
var VirtualizedTableRow = (0,
|
|
3903
|
+
var VirtualizedTableRow = (0, import_react26.memo)(StyledTableRow2, (prevProps, nextProps) => {
|
|
3861
3904
|
return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
|
|
3862
3905
|
prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
|
|
3863
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)
|
|
@@ -3868,36 +3911,44 @@ var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow2, (prevProps,
|
|
|
3868
3911
|
});
|
|
3869
3912
|
|
|
3870
3913
|
// src/components/DataTable/hooks.ts
|
|
3871
|
-
var
|
|
3872
|
-
function useColumnWidths(
|
|
3873
|
-
const [widths, setWidths] = (0,
|
|
3874
|
-
const roRef = (0,
|
|
3875
|
-
(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)(() => {
|
|
3876
3919
|
if (roRef.current) roRef.current.disconnect();
|
|
3877
3920
|
roRef.current = new ResizeObserver((entries) => {
|
|
3878
|
-
let changed = false;
|
|
3879
3921
|
setWidths((prev) => {
|
|
3922
|
+
let changed = false;
|
|
3880
3923
|
const next = { ...prev };
|
|
3881
3924
|
entries.forEach((entry) => {
|
|
3882
|
-
const
|
|
3925
|
+
const columnId = entry.target.dataset.hdsColumnId;
|
|
3883
3926
|
const w = Math.round(entry.target.getBoundingClientRect().width);
|
|
3884
|
-
if (next[
|
|
3885
|
-
next[
|
|
3927
|
+
if (next[columnId] !== w) {
|
|
3928
|
+
next[columnId] = w;
|
|
3886
3929
|
changed = true;
|
|
3887
3930
|
}
|
|
3888
3931
|
});
|
|
3889
3932
|
return changed ? next : prev;
|
|
3890
3933
|
});
|
|
3891
3934
|
});
|
|
3892
|
-
|
|
3935
|
+
const measured = {};
|
|
3936
|
+
Object.entries(columnsById).forEach(([columnId, def]) => {
|
|
3893
3937
|
const el = def.headerRef.current;
|
|
3894
3938
|
if (el) {
|
|
3895
|
-
el.dataset.
|
|
3939
|
+
el.dataset.hdsColumnId = columnId;
|
|
3940
|
+
el.dataset.field = String(def.field);
|
|
3941
|
+
measured[columnId] = Math.round(el.getBoundingClientRect().width);
|
|
3896
3942
|
roRef.current.observe(el);
|
|
3897
3943
|
}
|
|
3898
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
|
+
});
|
|
3899
3950
|
return () => roRef.current?.disconnect();
|
|
3900
|
-
}, [
|
|
3951
|
+
}, [columnsById]);
|
|
3901
3952
|
return widths;
|
|
3902
3953
|
}
|
|
3903
3954
|
function useDataTableRenderer({
|
|
@@ -3929,33 +3980,33 @@ function useDataTableRenderer({
|
|
|
3929
3980
|
"You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
|
|
3930
3981
|
);
|
|
3931
3982
|
}
|
|
3932
|
-
const onSelectionModelChangeRef = (0,
|
|
3983
|
+
const onSelectionModelChangeRef = (0, import_react27.useRef)(onSelectionModelChange);
|
|
3933
3984
|
onSelectionModelChangeRef.current = onSelectionModelChange;
|
|
3934
|
-
const [focusedRowId, setFocusedRowId] = (0,
|
|
3935
|
-
const [selectionAnchor, setSelectionAnchor] = (0,
|
|
3985
|
+
const [focusedRowId, setFocusedRowId] = (0, import_react27.useState)(null);
|
|
3986
|
+
const [selectionAnchor, setSelectionAnchor] = (0, import_react27.useState)(null);
|
|
3936
3987
|
const [sortModel, setSortModel] = useControlledState(
|
|
3937
3988
|
controlledSortModel,
|
|
3938
3989
|
initialState?.sorting?.sortModel ?? [],
|
|
3939
|
-
(0,
|
|
3990
|
+
(0, import_react27.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
|
|
3940
3991
|
);
|
|
3941
3992
|
const [visibilityModel] = useControlledState(
|
|
3942
3993
|
columnVisibilityModel,
|
|
3943
3994
|
initialState?.columns?.columnVisibilityModel ?? {},
|
|
3944
|
-
(0,
|
|
3995
|
+
(0, import_react27.useCallback)(
|
|
3945
3996
|
(model) => onColumnVisibilityModelChange?.(model),
|
|
3946
3997
|
[onColumnVisibilityModelChange]
|
|
3947
3998
|
)
|
|
3948
3999
|
);
|
|
3949
|
-
const reorderedColumns = (0,
|
|
4000
|
+
const reorderedColumns = (0, import_react27.useMemo)(() => {
|
|
3950
4001
|
if (!columnGroupingModel) return columnsProp;
|
|
3951
4002
|
return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
|
|
3952
4003
|
}, [columnsProp, columnGroupingModel]);
|
|
3953
|
-
const visibleColumns = (0,
|
|
4004
|
+
const visibleColumns = (0, import_react27.useMemo)(
|
|
3954
4005
|
() => reorderedColumns.filter((col) => visibilityModel[col.field] !== false),
|
|
3955
4006
|
[reorderedColumns, visibilityModel]
|
|
3956
4007
|
);
|
|
3957
|
-
const visibleFieldSet = (0,
|
|
3958
|
-
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)(() => {
|
|
3959
4010
|
const DEFAULT_MIN = 50;
|
|
3960
4011
|
let total = checkboxSelection ? 40 : 0;
|
|
3961
4012
|
for (const col of visibleColumns) {
|
|
@@ -3963,7 +4014,7 @@ function useDataTableRenderer({
|
|
|
3963
4014
|
}
|
|
3964
4015
|
return total;
|
|
3965
4016
|
}, [visibleColumns, checkboxSelection]);
|
|
3966
|
-
const allColumnsByField = (0,
|
|
4017
|
+
const allColumnsByField = (0, import_react27.useMemo)(
|
|
3967
4018
|
() => reorderedColumns.reduce(
|
|
3968
4019
|
(acc, curr) => ({
|
|
3969
4020
|
...acc,
|
|
@@ -3973,21 +4024,36 @@ function useDataTableRenderer({
|
|
|
3973
4024
|
),
|
|
3974
4025
|
[reorderedColumns]
|
|
3975
4026
|
);
|
|
3976
|
-
const
|
|
3977
|
-
() =>
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
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)()
|
|
3984
4051
|
}
|
|
3985
|
-
|
|
3986
|
-
{}
|
|
4052
|
+
])
|
|
3987
4053
|
),
|
|
3988
|
-
[visibleColumns]
|
|
4054
|
+
[visibleColumns, columnIds]
|
|
3989
4055
|
);
|
|
3990
|
-
const sortComparator = (0,
|
|
4056
|
+
const sortComparator = (0, import_react27.useCallback)(
|
|
3991
4057
|
(rowA, rowB) => {
|
|
3992
4058
|
for (const sort of sortModel) {
|
|
3993
4059
|
const { field, sort: direction } = sort;
|
|
@@ -4016,33 +4082,33 @@ function useDataTableRenderer({
|
|
|
4016
4082
|
},
|
|
4017
4083
|
[sortModel, allColumnsByField]
|
|
4018
4084
|
);
|
|
4019
|
-
const rows = (0,
|
|
4085
|
+
const rows = (0, import_react27.useMemo)(
|
|
4020
4086
|
() => sortModel.length ? [..._rows].sort(sortComparator) : _rows,
|
|
4021
4087
|
[_rows, sortModel, sortComparator]
|
|
4022
4088
|
);
|
|
4023
|
-
const sortOrder = (0,
|
|
4089
|
+
const sortOrder = (0, import_react27.useMemo)(
|
|
4024
4090
|
() => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
|
|
4025
4091
|
[_sortOrder]
|
|
4026
4092
|
);
|
|
4027
|
-
const [page, setPage] = (0,
|
|
4093
|
+
const [page, setPage] = (0, import_react27.useState)(paginationModel?.page || 1);
|
|
4028
4094
|
const pageSize = paginationModel?.pageSize || 20;
|
|
4029
|
-
const getId = (0,
|
|
4095
|
+
const getId = (0, import_react27.useCallback)(
|
|
4030
4096
|
(row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
|
|
4031
4097
|
[_getId, page, pageSize]
|
|
4032
4098
|
);
|
|
4033
|
-
const selectedModelSet = (0,
|
|
4034
|
-
const dataInPage = (0,
|
|
4099
|
+
const selectedModelSet = (0, import_react27.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
|
|
4100
|
+
const dataInPage = (0, import_react27.useMemo)(
|
|
4035
4101
|
() => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
|
|
4036
4102
|
[rows, page, pageSize, paginationMode, pagination]
|
|
4037
4103
|
);
|
|
4038
|
-
const selectableDataInPage = (0,
|
|
4104
|
+
const selectableDataInPage = (0, import_react27.useMemo)(
|
|
4039
4105
|
() => dataInPage.filter((row, i) => {
|
|
4040
4106
|
if (!isRowSelectable) return true;
|
|
4041
4107
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
4042
4108
|
}),
|
|
4043
4109
|
[dataInPage, isRowSelectable, getId]
|
|
4044
4110
|
);
|
|
4045
|
-
const handleRangeSelection = (0,
|
|
4111
|
+
const handleRangeSelection = (0, import_react27.useCallback)(
|
|
4046
4112
|
(anchor, targetIndex) => {
|
|
4047
4113
|
const startIndex = Math.min(anchor.rowIndex, targetIndex);
|
|
4048
4114
|
const endIndex = Math.max(anchor.rowIndex, targetIndex);
|
|
@@ -4065,51 +4131,60 @@ function useDataTableRenderer({
|
|
|
4065
4131
|
},
|
|
4066
4132
|
[dataInPage, getId, isRowSelectable, selectionModel, onSelectionModelChange]
|
|
4067
4133
|
);
|
|
4068
|
-
const isAllSelected = (0,
|
|
4134
|
+
const isAllSelected = (0, import_react27.useMemo)(
|
|
4069
4135
|
() => selectableDataInPage.length > 0 && selectableDataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
|
|
4070
4136
|
[selectableDataInPage, selectedModelSet, getId]
|
|
4071
4137
|
);
|
|
4072
4138
|
const rowCount = totalRowsProp || rows.length;
|
|
4073
|
-
const selectableRowCount = (0,
|
|
4139
|
+
const selectableRowCount = (0, import_react27.useMemo)(() => {
|
|
4074
4140
|
if (!isRowSelectable) return rowCount;
|
|
4075
4141
|
return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
|
|
4076
4142
|
}, [rows, isRowSelectable, getId, rowCount]);
|
|
4077
|
-
const isTotalSelected = (0,
|
|
4143
|
+
const isTotalSelected = (0, import_react27.useMemo)(
|
|
4078
4144
|
() => _isTotalSelected ?? (selectableRowCount > 0 && (selectionModel?.length || 0) === selectableRowCount),
|
|
4079
4145
|
[_isTotalSelected, selectionModel, selectableRowCount]
|
|
4080
4146
|
);
|
|
4081
|
-
const columnWidths = useColumnWidths(
|
|
4082
|
-
const
|
|
4083
|
-
(
|
|
4084
|
-
|
|
4085
|
-
|
|
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]
|
|
4086
4159
|
);
|
|
4087
|
-
const processedColumnGroups = (0,
|
|
4160
|
+
const processedColumnGroups = (0, import_react27.useMemo)(() => {
|
|
4088
4161
|
if (!columnGroupingModel) return null;
|
|
4089
4162
|
return calculateColumnGroups(columnGroupingModel, visibleColumns, visibleFieldSet);
|
|
4090
4163
|
}, [columnGroupingModel, visibleColumns, visibleFieldSet]);
|
|
4091
|
-
const effectivePinnedLeft = (0,
|
|
4164
|
+
const effectivePinnedLeft = (0, import_react27.useMemo)(
|
|
4092
4165
|
() => pinnedColumns?.left?.filter((f) => visibleFieldSet.has(f)),
|
|
4093
4166
|
[pinnedColumns?.left, visibleFieldSet]
|
|
4094
4167
|
);
|
|
4095
|
-
const effectivePinnedRight = (0,
|
|
4168
|
+
const effectivePinnedRight = (0, import_react27.useMemo)(
|
|
4096
4169
|
() => pinnedColumns?.right?.filter((f) => visibleFieldSet.has(f)),
|
|
4097
4170
|
[pinnedColumns?.right, visibleFieldSet]
|
|
4098
4171
|
);
|
|
4099
4172
|
const inferredFieldsKey = JSON.stringify(Object.keys(rows[0] || {}));
|
|
4100
|
-
const inferredFields = (0,
|
|
4101
|
-
const columns = (0,
|
|
4173
|
+
const inferredFields = (0, import_react27.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
|
|
4174
|
+
const columns = (0, import_react27.useMemo)(() => {
|
|
4102
4175
|
const baseColumns = visibleColumns.length > 0 ? visibleColumns : reorderedColumns.length > 0 ? [] : inferredFields.map((key) => ({
|
|
4103
4176
|
field: key
|
|
4104
4177
|
}));
|
|
4105
|
-
return baseColumns.map((column) => {
|
|
4178
|
+
return baseColumns.map((column, index) => {
|
|
4179
|
+
const columnId = columnIds[index] ?? String(column.field);
|
|
4106
4180
|
const isLeftPinned = effectivePinnedLeft?.includes(column.field);
|
|
4107
4181
|
const isRightPinned = effectivePinnedRight?.includes(column.field);
|
|
4108
4182
|
const isPinned = isLeftPinned || isRightPinned;
|
|
4109
4183
|
return {
|
|
4110
4184
|
...column,
|
|
4111
|
-
|
|
4112
|
-
|
|
4185
|
+
columnId,
|
|
4186
|
+
headerRef: visibleColumnsById[columnId]?.headerRef,
|
|
4187
|
+
tableColRef: visibleColumnsById[columnId]?.tableColRef,
|
|
4113
4188
|
isCellEditable: editMode && (typeof column.isCellEditable === "function" ? column.isCellEditable : column.isCellEditable ?? true),
|
|
4114
4189
|
sort: sortModel.find((sort) => sort.field === column.field)?.sort,
|
|
4115
4190
|
sortOrder: allColumnsByField[column.field]?.sortOrder || sortOrder,
|
|
@@ -4126,21 +4201,22 @@ function useDataTableRenderer({
|
|
|
4126
4201
|
inferredFields,
|
|
4127
4202
|
effectivePinnedLeft,
|
|
4128
4203
|
effectivePinnedRight,
|
|
4129
|
-
|
|
4204
|
+
columnIds,
|
|
4205
|
+
visibleColumnsById,
|
|
4130
4206
|
allColumnsByField,
|
|
4131
4207
|
editMode,
|
|
4132
4208
|
sortModel,
|
|
4133
4209
|
sortOrder,
|
|
4134
4210
|
getWidth
|
|
4135
4211
|
]);
|
|
4136
|
-
const handlePageChange = (0,
|
|
4212
|
+
const handlePageChange = (0, import_react27.useCallback)(
|
|
4137
4213
|
(newPage) => {
|
|
4138
4214
|
setPage(newPage);
|
|
4139
4215
|
onPaginationModelChange?.({ page: newPage, pageSize });
|
|
4140
4216
|
},
|
|
4141
4217
|
[onPaginationModelChange, pageSize]
|
|
4142
4218
|
);
|
|
4143
|
-
const handleSortChange = (0,
|
|
4219
|
+
const handleSortChange = (0, import_react27.useCallback)(
|
|
4144
4220
|
(props) => {
|
|
4145
4221
|
const { field, currentSort, multiple } = props;
|
|
4146
4222
|
const column = allColumnsByField[field];
|
|
@@ -4163,38 +4239,37 @@ function useDataTableRenderer({
|
|
|
4163
4239
|
},
|
|
4164
4240
|
[sortOrder, allColumnsByField, sortModel, setSortModel]
|
|
4165
4241
|
);
|
|
4166
|
-
(0,
|
|
4242
|
+
(0, import_react27.useEffect)(() => {
|
|
4167
4243
|
if (!paginationModel) {
|
|
4168
4244
|
handlePageChange(1);
|
|
4169
4245
|
}
|
|
4170
4246
|
}, [rowCount, handlePageChange, paginationModel]);
|
|
4171
|
-
(0,
|
|
4247
|
+
(0, import_react27.useEffect)(() => {
|
|
4172
4248
|
const lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
|
|
4173
4249
|
if (page > lastPage) {
|
|
4174
4250
|
handlePageChange(lastPage);
|
|
4175
4251
|
}
|
|
4176
4252
|
}, [page, rowCount, pageSize, handlePageChange]);
|
|
4177
|
-
(0,
|
|
4253
|
+
(0, import_react27.useEffect)(() => {
|
|
4178
4254
|
onSelectionModelChangeRef.current?.([]);
|
|
4179
4255
|
setSelectionAnchor(null);
|
|
4180
4256
|
}, [page]);
|
|
4181
|
-
const prevRowsRef = (0,
|
|
4182
|
-
(0,
|
|
4257
|
+
const prevRowsRef = (0, import_react27.useRef)(_rows);
|
|
4258
|
+
(0, import_react27.useEffect)(() => {
|
|
4183
4259
|
if (prevRowsRef.current !== _rows) {
|
|
4184
4260
|
setSelectionAnchor(null);
|
|
4185
4261
|
prevRowsRef.current = _rows;
|
|
4186
4262
|
}
|
|
4187
4263
|
}, [_rows]);
|
|
4188
|
-
const handleAutoFit = (0,
|
|
4189
|
-
(
|
|
4190
|
-
const colDef =
|
|
4264
|
+
const handleAutoFit = (0, import_react27.useCallback)(
|
|
4265
|
+
(columnId) => {
|
|
4266
|
+
const colDef = visibleColumnsById[columnId];
|
|
4191
4267
|
if (!colDef?.headerRef.current) return;
|
|
4192
|
-
const
|
|
4193
|
-
const columnType = column && "type" in column ? column.type : void 0;
|
|
4268
|
+
const columnType = "type" in colDef ? colDef.type : void 0;
|
|
4194
4269
|
if (columnType === "actions") return;
|
|
4195
4270
|
const optimalWidth = computeAutoFitWidth({
|
|
4196
4271
|
headerEl: colDef.headerRef.current,
|
|
4197
|
-
field,
|
|
4272
|
+
field: colDef.field,
|
|
4198
4273
|
dataInPage
|
|
4199
4274
|
});
|
|
4200
4275
|
if (optimalWidth == null) return;
|
|
@@ -4202,7 +4277,7 @@ function useDataTableRenderer({
|
|
|
4202
4277
|
colDef.headerRef.current.style.width = widthPx;
|
|
4203
4278
|
if (colDef.tableColRef.current) colDef.tableColRef.current.style.width = widthPx;
|
|
4204
4279
|
},
|
|
4205
|
-
[
|
|
4280
|
+
[visibleColumnsById, dataInPage]
|
|
4206
4281
|
);
|
|
4207
4282
|
return {
|
|
4208
4283
|
rowCount,
|
|
@@ -4218,8 +4293,8 @@ function useDataTableRenderer({
|
|
|
4218
4293
|
handleAutoFit,
|
|
4219
4294
|
isAllSelected,
|
|
4220
4295
|
isTotalSelected,
|
|
4221
|
-
isSelectedRow: (0,
|
|
4222
|
-
isRowSelectable: (0,
|
|
4296
|
+
isSelectedRow: (0, import_react27.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
|
|
4297
|
+
isRowSelectable: (0, import_react27.useCallback)(
|
|
4223
4298
|
(rowId, row) => {
|
|
4224
4299
|
if (!isRowSelectable) return true;
|
|
4225
4300
|
return isRowSelectable({ row, id: rowId });
|
|
@@ -4227,13 +4302,13 @@ function useDataTableRenderer({
|
|
|
4227
4302
|
[isRowSelectable]
|
|
4228
4303
|
),
|
|
4229
4304
|
focusedRowId,
|
|
4230
|
-
onRowFocus: (0,
|
|
4305
|
+
onRowFocus: (0, import_react27.useCallback)((rowId) => {
|
|
4231
4306
|
setFocusedRowId(rowId);
|
|
4232
4307
|
}, []),
|
|
4233
|
-
onAllCheckboxChange: (0,
|
|
4308
|
+
onAllCheckboxChange: (0, import_react27.useCallback)(() => {
|
|
4234
4309
|
onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
|
|
4235
4310
|
}, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
|
|
4236
|
-
onCheckboxChange: (0,
|
|
4311
|
+
onCheckboxChange: (0, import_react27.useCallback)(
|
|
4237
4312
|
(event, selectedModel) => {
|
|
4238
4313
|
const isShiftClick = "shiftKey" in event && event.shiftKey;
|
|
4239
4314
|
const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
|
|
@@ -4267,7 +4342,7 @@ function useDataTableRenderer({
|
|
|
4267
4342
|
columns,
|
|
4268
4343
|
tableMinWidth,
|
|
4269
4344
|
processedColumnGroups,
|
|
4270
|
-
onTotalSelect: (0,
|
|
4345
|
+
onTotalSelect: (0, import_react27.useCallback)(() => {
|
|
4271
4346
|
const selectableRows = rows.filter((row, i) => {
|
|
4272
4347
|
if (!isRowSelectable) return true;
|
|
4273
4348
|
return isRowSelectable({ row, id: getId(row, i) });
|
|
@@ -4281,11 +4356,11 @@ function useDataTableRenderer({
|
|
|
4281
4356
|
}
|
|
4282
4357
|
|
|
4283
4358
|
// src/components/Table/Table.tsx
|
|
4284
|
-
var
|
|
4359
|
+
var import_react28 = __toESM(require("react"));
|
|
4285
4360
|
var import_joy35 = require("@mui/joy");
|
|
4286
4361
|
var Table = (props) => {
|
|
4287
4362
|
const { children, ...inheritProps } = props;
|
|
4288
|
-
return /* @__PURE__ */
|
|
4363
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_joy35.Table, { ...inheritProps }, children);
|
|
4289
4364
|
};
|
|
4290
4365
|
Table.displayName = "Table";
|
|
4291
4366
|
function TableHead(props) {
|
|
@@ -4296,7 +4371,7 @@ function TableHead(props) {
|
|
|
4296
4371
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4297
4372
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4298
4373
|
} = props;
|
|
4299
|
-
return /* @__PURE__ */
|
|
4374
|
+
return /* @__PURE__ */ import_react28.default.createElement("thead", null, /* @__PURE__ */ import_react28.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react28.default.createElement(
|
|
4300
4375
|
"th",
|
|
4301
4376
|
{
|
|
4302
4377
|
style: {
|
|
@@ -4304,8 +4379,8 @@ function TableHead(props) {
|
|
|
4304
4379
|
textAlign: "center"
|
|
4305
4380
|
}
|
|
4306
4381
|
},
|
|
4307
|
-
/* @__PURE__ */
|
|
4308
|
-
), headCells.map((headCell) => /* @__PURE__ */
|
|
4382
|
+
/* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
|
|
4383
|
+
), headCells.map((headCell) => /* @__PURE__ */ import_react28.default.createElement(
|
|
4309
4384
|
"th",
|
|
4310
4385
|
{
|
|
4311
4386
|
key: headCell.label,
|
|
@@ -4330,15 +4405,15 @@ function TableBody(props) {
|
|
|
4330
4405
|
slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
|
|
4331
4406
|
slotProps: { checkbox: checkboxProps = {} } = {}
|
|
4332
4407
|
} = props;
|
|
4333
|
-
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(
|
|
4334
4409
|
"td",
|
|
4335
4410
|
{
|
|
4336
4411
|
style: {
|
|
4337
4412
|
textAlign: "center"
|
|
4338
4413
|
}
|
|
4339
4414
|
},
|
|
4340
|
-
/* @__PURE__ */
|
|
4341
|
-
), 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(
|
|
4342
4417
|
"td",
|
|
4343
4418
|
{
|
|
4344
4419
|
key: cellKey,
|
|
@@ -4352,7 +4427,7 @@ function TableBody(props) {
|
|
|
4352
4427
|
TableBody.displayName = "TableBody";
|
|
4353
4428
|
|
|
4354
4429
|
// src/components/Pagination/Pagination.tsx
|
|
4355
|
-
var
|
|
4430
|
+
var import_react29 = __toESM(require("react"));
|
|
4356
4431
|
var import_ChevronLeftRounded = __toESM(require("@mui/icons-material/ChevronLeftRounded"));
|
|
4357
4432
|
var import_ChevronRightRounded = __toESM(require("@mui/icons-material/ChevronRightRounded"));
|
|
4358
4433
|
var import_FirstPageRounded = __toESM(require("@mui/icons-material/FirstPageRounded"));
|
|
@@ -4422,7 +4497,7 @@ function Pagination(inProps) {
|
|
|
4422
4497
|
const [paginationModel, setPaginationModel] = useControlledState(
|
|
4423
4498
|
_paginationModel,
|
|
4424
4499
|
defaultPaginationModel,
|
|
4425
|
-
(0,
|
|
4500
|
+
(0, import_react29.useCallback)(
|
|
4426
4501
|
(newPage) => {
|
|
4427
4502
|
onPageChange(newPage.page);
|
|
4428
4503
|
},
|
|
@@ -4438,7 +4513,7 @@ function Pagination(inProps) {
|
|
|
4438
4513
|
const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
|
|
4439
4514
|
const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
|
|
4440
4515
|
const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
|
|
4441
|
-
(0,
|
|
4516
|
+
(0, import_react29.useEffect)(() => {
|
|
4442
4517
|
if (paginationModel.page > lastPage) {
|
|
4443
4518
|
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
4444
4519
|
}
|
|
@@ -4448,7 +4523,7 @@ function Pagination(inProps) {
|
|
|
4448
4523
|
value: `${i + 1}`
|
|
4449
4524
|
}));
|
|
4450
4525
|
if (variant === "compact") {
|
|
4451
|
-
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(
|
|
4452
4527
|
PaginationIconButton,
|
|
4453
4528
|
{
|
|
4454
4529
|
size,
|
|
@@ -4458,8 +4533,8 @@ function Pagination(inProps) {
|
|
|
4458
4533
|
disabled: paginationModel.page === firstPage,
|
|
4459
4534
|
"aria-label": "First page"
|
|
4460
4535
|
},
|
|
4461
|
-
/* @__PURE__ */
|
|
4462
|
-
), /* @__PURE__ */
|
|
4536
|
+
/* @__PURE__ */ import_react29.default.createElement(import_FirstPageRounded.default, null)
|
|
4537
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4463
4538
|
PaginationIconButton,
|
|
4464
4539
|
{
|
|
4465
4540
|
size,
|
|
@@ -4469,8 +4544,8 @@ function Pagination(inProps) {
|
|
|
4469
4544
|
disabled: paginationModel.page === firstPage,
|
|
4470
4545
|
"aria-label": "Previous page"
|
|
4471
4546
|
},
|
|
4472
|
-
/* @__PURE__ */
|
|
4473
|
-
)), /* @__PURE__ */
|
|
4547
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
|
|
4548
|
+
)), /* @__PURE__ */ import_react29.default.createElement(
|
|
4474
4549
|
Autocomplete_default,
|
|
4475
4550
|
{
|
|
4476
4551
|
size,
|
|
@@ -4489,7 +4564,7 @@ function Pagination(inProps) {
|
|
|
4489
4564
|
}[size]
|
|
4490
4565
|
}
|
|
4491
4566
|
}
|
|
4492
|
-
), /* @__PURE__ */
|
|
4567
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4493
4568
|
Typography_default,
|
|
4494
4569
|
{
|
|
4495
4570
|
level: `body-${size}`,
|
|
@@ -4500,7 +4575,7 @@ function Pagination(inProps) {
|
|
|
4500
4575
|
},
|
|
4501
4576
|
"/ ",
|
|
4502
4577
|
lastPage
|
|
4503
|
-
), /* @__PURE__ */
|
|
4578
|
+
), /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
4504
4579
|
PaginationIconButton,
|
|
4505
4580
|
{
|
|
4506
4581
|
size,
|
|
@@ -4510,8 +4585,8 @@ function Pagination(inProps) {
|
|
|
4510
4585
|
disabled: paginationModel.page === lastPage,
|
|
4511
4586
|
"aria-label": "Next page"
|
|
4512
4587
|
},
|
|
4513
|
-
/* @__PURE__ */
|
|
4514
|
-
), /* @__PURE__ */
|
|
4588
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
|
|
4589
|
+
), /* @__PURE__ */ import_react29.default.createElement(
|
|
4515
4590
|
PaginationIconButton,
|
|
4516
4591
|
{
|
|
4517
4592
|
size,
|
|
@@ -4521,10 +4596,10 @@ function Pagination(inProps) {
|
|
|
4521
4596
|
disabled: paginationModel.page === lastPage,
|
|
4522
4597
|
"aria-label": "Last page"
|
|
4523
4598
|
},
|
|
4524
|
-
/* @__PURE__ */
|
|
4599
|
+
/* @__PURE__ */ import_react29.default.createElement(import_LastPageRounded.default, null)
|
|
4525
4600
|
))));
|
|
4526
4601
|
}
|
|
4527
|
-
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(
|
|
4528
4603
|
PaginationIconButton,
|
|
4529
4604
|
{
|
|
4530
4605
|
size,
|
|
@@ -4534,8 +4609,8 @@ function Pagination(inProps) {
|
|
|
4534
4609
|
disabled: paginationModel.page === firstPage,
|
|
4535
4610
|
"aria-label": "Previous page"
|
|
4536
4611
|
},
|
|
4537
|
-
/* @__PURE__ */
|
|
4538
|
-
), 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(
|
|
4539
4614
|
PaginationButton,
|
|
4540
4615
|
{
|
|
4541
4616
|
size,
|
|
@@ -4545,7 +4620,7 @@ function Pagination(inProps) {
|
|
|
4545
4620
|
"aria-label": "More previous pages"
|
|
4546
4621
|
},
|
|
4547
4622
|
"..."
|
|
4548
|
-
), 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(
|
|
4549
4624
|
PaginationButton,
|
|
4550
4625
|
{
|
|
4551
4626
|
size,
|
|
@@ -4555,7 +4630,7 @@ function Pagination(inProps) {
|
|
|
4555
4630
|
onClick: () => handlePageChange(paginationModel.page + 3)
|
|
4556
4631
|
},
|
|
4557
4632
|
"..."
|
|
4558
|
-
), 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(
|
|
4559
4634
|
PaginationIconButton,
|
|
4560
4635
|
{
|
|
4561
4636
|
size,
|
|
@@ -4565,7 +4640,7 @@ function Pagination(inProps) {
|
|
|
4565
4640
|
disabled: paginationModel.page === lastPage,
|
|
4566
4641
|
"aria-label": "Next page"
|
|
4567
4642
|
},
|
|
4568
|
-
/* @__PURE__ */
|
|
4643
|
+
/* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
|
|
4569
4644
|
)));
|
|
4570
4645
|
}
|
|
4571
4646
|
Pagination.displayName = "Pagination";
|
|
@@ -4639,9 +4714,9 @@ function Component(props, apiRef) {
|
|
|
4639
4714
|
isTotalSelected: ___________,
|
|
4640
4715
|
...innerProps
|
|
4641
4716
|
} = props;
|
|
4642
|
-
const tableId = (0,
|
|
4643
|
-
const parentRef = (0,
|
|
4644
|
-
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);
|
|
4645
4720
|
const {
|
|
4646
4721
|
columns,
|
|
4647
4722
|
processedColumnGroups,
|
|
@@ -4677,10 +4752,10 @@ function Component(props, apiRef) {
|
|
|
4677
4752
|
measureElement: (element) => element.clientHeight,
|
|
4678
4753
|
overscan: 10
|
|
4679
4754
|
});
|
|
4680
|
-
const paginationModel = (0,
|
|
4755
|
+
const paginationModel = (0, import_react30.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
|
|
4681
4756
|
const columnsKey = getObjectVersion(columns);
|
|
4682
|
-
const headerCheckboxElement = (0,
|
|
4683
|
-
() => /* @__PURE__ */
|
|
4757
|
+
const headerCheckboxElement = (0, import_react30.useMemo)(
|
|
4758
|
+
() => /* @__PURE__ */ import_react30.default.createElement(
|
|
4684
4759
|
RenderCheckbox,
|
|
4685
4760
|
{
|
|
4686
4761
|
onChange: onAllCheckboxChange,
|
|
@@ -4705,20 +4780,20 @@ function Component(props, apiRef) {
|
|
|
4705
4780
|
const showNoRowsOverlay = !loading && rowCount === 0;
|
|
4706
4781
|
const showFillerColumn = columns.length > 0 && columns.every((c) => !!c.width);
|
|
4707
4782
|
const totalColCount = Math.max(1, columns.length + (checkboxSelection ? 1 : 0) + (showFillerColumn ? 1 : 0));
|
|
4708
|
-
const getRowClickHandler = (0,
|
|
4783
|
+
const getRowClickHandler = (0, import_react30.useCallback)(
|
|
4709
4784
|
(row, rowId) => (e) => {
|
|
4710
4785
|
onRowClick?.({ row, rowId }, e);
|
|
4711
4786
|
checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
|
|
4712
4787
|
},
|
|
4713
4788
|
[onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
|
|
4714
4789
|
);
|
|
4715
|
-
const getRowFocusHandler = (0,
|
|
4790
|
+
const getRowFocusHandler = (0, import_react30.useCallback)(
|
|
4716
4791
|
(rowId) => () => {
|
|
4717
4792
|
onRowFocus(rowId);
|
|
4718
4793
|
},
|
|
4719
4794
|
[onRowFocus]
|
|
4720
4795
|
);
|
|
4721
|
-
const getCheckboxClickHandler = (0,
|
|
4796
|
+
const getCheckboxClickHandler = (0, import_react30.useCallback)(
|
|
4722
4797
|
(rowId, row) => (e) => {
|
|
4723
4798
|
e.stopPropagation();
|
|
4724
4799
|
if (isRowSelectableCheck(rowId, row)) {
|
|
@@ -4728,7 +4803,7 @@ function Component(props, apiRef) {
|
|
|
4728
4803
|
},
|
|
4729
4804
|
[onCheckboxChange, isRowSelectableCheck, onRowFocus]
|
|
4730
4805
|
);
|
|
4731
|
-
const handleTableKeyDown = (0,
|
|
4806
|
+
const handleTableKeyDown = (0, import_react30.useCallback)(
|
|
4732
4807
|
(e) => {
|
|
4733
4808
|
const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
|
|
4734
4809
|
if (!supportedKeys.includes(e.key)) return;
|
|
@@ -4818,7 +4893,7 @@ function Component(props, apiRef) {
|
|
|
4818
4893
|
virtualizer
|
|
4819
4894
|
]
|
|
4820
4895
|
);
|
|
4821
|
-
(0,
|
|
4896
|
+
(0, import_react30.useImperativeHandle)(apiRef, () => ({
|
|
4822
4897
|
getRowIndexRelativeToVisibleRows(rowId) {
|
|
4823
4898
|
return dataInPage.findIndex((row) => String(getId(row)) === rowId);
|
|
4824
4899
|
},
|
|
@@ -4834,7 +4909,7 @@ function Component(props, apiRef) {
|
|
|
4834
4909
|
});
|
|
4835
4910
|
}
|
|
4836
4911
|
}));
|
|
4837
|
-
return /* @__PURE__ */
|
|
4912
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
4838
4913
|
Box_default,
|
|
4839
4914
|
{
|
|
4840
4915
|
sx: {
|
|
@@ -4844,7 +4919,7 @@ function Component(props, apiRef) {
|
|
|
4844
4919
|
flexDirection: "column"
|
|
4845
4920
|
}
|
|
4846
4921
|
},
|
|
4847
|
-
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */
|
|
4922
|
+
(!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react30.default.createElement(
|
|
4848
4923
|
Stack_default,
|
|
4849
4924
|
{
|
|
4850
4925
|
direction: "row",
|
|
@@ -4854,10 +4929,10 @@ function Component(props, apiRef) {
|
|
|
4854
4929
|
justifyContent: "space-between",
|
|
4855
4930
|
alignItems: "center"
|
|
4856
4931
|
},
|
|
4857
|
-
!!checkboxSelection && /* @__PURE__ */
|
|
4858
|
-
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 || {} })
|
|
4859
4934
|
),
|
|
4860
|
-
/* @__PURE__ */
|
|
4935
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4861
4936
|
Sheet_default,
|
|
4862
4937
|
{
|
|
4863
4938
|
variant: "outlined",
|
|
@@ -4878,24 +4953,24 @@ function Component(props, apiRef) {
|
|
|
4878
4953
|
ref: parentRef,
|
|
4879
4954
|
...backgroundProps
|
|
4880
4955
|
},
|
|
4881
|
-
/* @__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(
|
|
4882
4957
|
"col",
|
|
4883
4958
|
{
|
|
4884
4959
|
style: {
|
|
4885
4960
|
width: "40px"
|
|
4886
4961
|
}
|
|
4887
4962
|
}
|
|
4888
|
-
), columns.map((c) => /* @__PURE__ */
|
|
4963
|
+
), columns.map((c) => /* @__PURE__ */ import_react30.default.createElement(
|
|
4889
4964
|
"col",
|
|
4890
4965
|
{
|
|
4891
4966
|
ref: c.tableColRef,
|
|
4892
|
-
key:
|
|
4967
|
+
key: c.columnId,
|
|
4893
4968
|
style: {
|
|
4894
4969
|
width: c.width,
|
|
4895
4970
|
minWidth: c.minWidth ?? "50px"
|
|
4896
4971
|
}
|
|
4897
4972
|
}
|
|
4898
|
-
)), 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(
|
|
4899
4974
|
"th",
|
|
4900
4975
|
{
|
|
4901
4976
|
rowSpan: processedColumnGroups.maxLevel + 2,
|
|
@@ -4906,12 +4981,12 @@ function Component(props, apiRef) {
|
|
|
4906
4981
|
}
|
|
4907
4982
|
},
|
|
4908
4983
|
headerCheckboxElement
|
|
4909
|
-
), 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) => {
|
|
4910
4985
|
const nextGroup = levelGroups[groupIndex + 1];
|
|
4911
4986
|
const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
|
|
4912
4987
|
const params = { groupId: group.groupId };
|
|
4913
4988
|
const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
|
|
4914
|
-
return /* @__PURE__ */
|
|
4989
|
+
return /* @__PURE__ */ import_react30.default.createElement(import_react30.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react30.default.createElement(
|
|
4915
4990
|
"th",
|
|
4916
4991
|
{
|
|
4917
4992
|
colSpan: group.colspan,
|
|
@@ -4923,14 +4998,14 @@ function Component(props, apiRef) {
|
|
|
4923
4998
|
className: computedHeaderClassName
|
|
4924
4999
|
},
|
|
4925
5000
|
group.headerName ?? group.groupId
|
|
4926
|
-
), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */
|
|
4927
|
-
}), 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(
|
|
4928
5003
|
"th",
|
|
4929
5004
|
{
|
|
4930
5005
|
"aria-hidden": "true",
|
|
4931
5006
|
rowSpan: processedColumnGroups.maxLevel + 2
|
|
4932
5007
|
}
|
|
4933
|
-
))), /* @__PURE__ */
|
|
5008
|
+
))), /* @__PURE__ */ import_react30.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
|
|
4934
5009
|
"th",
|
|
4935
5010
|
{
|
|
4936
5011
|
style: {
|
|
@@ -4941,7 +5016,7 @@ function Component(props, apiRef) {
|
|
|
4941
5016
|
headerCheckboxElement
|
|
4942
5017
|
), columns.map((c, i) => (
|
|
4943
5018
|
// @ts-ignore
|
|
4944
|
-
/* @__PURE__ */
|
|
5019
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4945
5020
|
HeadCell2,
|
|
4946
5021
|
{
|
|
4947
5022
|
tableId,
|
|
@@ -4953,7 +5028,7 @@ function Component(props, apiRef) {
|
|
|
4953
5028
|
...c
|
|
4954
5029
|
}
|
|
4955
5030
|
)
|
|
4956
|
-
)), 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(
|
|
4957
5032
|
VirtualizedTableBody,
|
|
4958
5033
|
{
|
|
4959
5034
|
ref: tableBodyRef,
|
|
@@ -4964,7 +5039,7 @@ function Component(props, apiRef) {
|
|
|
4964
5039
|
role: "rowgroup",
|
|
4965
5040
|
"aria-label": "DataTableBody"
|
|
4966
5041
|
},
|
|
4967
|
-
!!loading && /* @__PURE__ */
|
|
5042
|
+
!!loading && /* @__PURE__ */ import_react30.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
4968
5043
|
"td",
|
|
4969
5044
|
{
|
|
4970
5045
|
style: {
|
|
@@ -4973,7 +5048,7 @@ function Component(props, apiRef) {
|
|
|
4973
5048
|
overflow: "visible"
|
|
4974
5049
|
}
|
|
4975
5050
|
},
|
|
4976
|
-
/* @__PURE__ */
|
|
5051
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
4977
5052
|
Box_default,
|
|
4978
5053
|
{
|
|
4979
5054
|
sx: {
|
|
@@ -4983,10 +5058,10 @@ function Component(props, apiRef) {
|
|
|
4983
5058
|
right: 0
|
|
4984
5059
|
}
|
|
4985
5060
|
},
|
|
4986
|
-
/* @__PURE__ */
|
|
5061
|
+
/* @__PURE__ */ import_react30.default.createElement(LoadingOverlay, null)
|
|
4987
5062
|
)
|
|
4988
5063
|
)),
|
|
4989
|
-
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(
|
|
4990
5065
|
Box_default,
|
|
4991
5066
|
{
|
|
4992
5067
|
sx: {
|
|
@@ -4996,14 +5071,14 @@ function Component(props, apiRef) {
|
|
|
4996
5071
|
minHeight: "150px"
|
|
4997
5072
|
}
|
|
4998
5073
|
},
|
|
4999
|
-
/* @__PURE__ */
|
|
5074
|
+
/* @__PURE__ */ import_react30.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
|
|
5000
5075
|
))),
|
|
5001
5076
|
virtualizedItems.map((virtualizedRow, index) => {
|
|
5002
5077
|
const rowIndex = virtualizedRow.index;
|
|
5003
5078
|
const row = dataInPage[rowIndex];
|
|
5004
5079
|
const rowId = getId(row, rowIndex);
|
|
5005
5080
|
const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
|
|
5006
|
-
return /* @__PURE__ */
|
|
5081
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
5007
5082
|
VirtualizedTableRow,
|
|
5008
5083
|
{
|
|
5009
5084
|
key: virtualizedRow.key,
|
|
@@ -5023,7 +5098,7 @@ function Component(props, apiRef) {
|
|
|
5023
5098
|
transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
|
|
5024
5099
|
}
|
|
5025
5100
|
},
|
|
5026
|
-
checkboxSelection && /* @__PURE__ */
|
|
5101
|
+
checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
|
|
5027
5102
|
"th",
|
|
5028
5103
|
{
|
|
5029
5104
|
scope: "row",
|
|
@@ -5031,7 +5106,7 @@ function Component(props, apiRef) {
|
|
|
5031
5106
|
textAlign: "center"
|
|
5032
5107
|
}
|
|
5033
5108
|
},
|
|
5034
|
-
/* @__PURE__ */
|
|
5109
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
5035
5110
|
RenderCheckbox,
|
|
5036
5111
|
{
|
|
5037
5112
|
onClick: getCheckboxClickHandler(rowId, row),
|
|
@@ -5042,7 +5117,7 @@ function Component(props, apiRef) {
|
|
|
5042
5117
|
}
|
|
5043
5118
|
)
|
|
5044
5119
|
),
|
|
5045
|
-
/* @__PURE__ */
|
|
5120
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
5046
5121
|
BodyRow2,
|
|
5047
5122
|
{
|
|
5048
5123
|
tableId,
|
|
@@ -5053,12 +5128,12 @@ function Component(props, apiRef) {
|
|
|
5053
5128
|
noWrap: props.noWrap
|
|
5054
5129
|
}
|
|
5055
5130
|
),
|
|
5056
|
-
showFillerColumn && /* @__PURE__ */
|
|
5131
|
+
showFillerColumn && /* @__PURE__ */ import_react30.default.createElement("td", { "aria-hidden": "true" })
|
|
5057
5132
|
);
|
|
5058
5133
|
})
|
|
5059
|
-
), Footer && /* @__PURE__ */
|
|
5134
|
+
), Footer && /* @__PURE__ */ import_react30.default.createElement(Footer, null))
|
|
5060
5135
|
),
|
|
5061
|
-
pagination && /* @__PURE__ */
|
|
5136
|
+
pagination && /* @__PURE__ */ import_react30.default.createElement(
|
|
5062
5137
|
Pagination_default,
|
|
5063
5138
|
{
|
|
5064
5139
|
pt: 2,
|
|
@@ -5071,11 +5146,11 @@ function Component(props, apiRef) {
|
|
|
5071
5146
|
)
|
|
5072
5147
|
);
|
|
5073
5148
|
}
|
|
5074
|
-
var DataTable = (0,
|
|
5149
|
+
var DataTable = (0, import_react30.forwardRef)(Component);
|
|
5075
5150
|
DataTable.displayName = "DataTable";
|
|
5076
5151
|
|
|
5077
5152
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
5078
|
-
var
|
|
5153
|
+
var import_react31 = __toESM(require("react"));
|
|
5079
5154
|
var import_react_imask2 = require("react-imask");
|
|
5080
5155
|
var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
5081
5156
|
var import_joy37 = require("@mui/joy");
|
|
@@ -5217,9 +5292,9 @@ var parseDates = (str, format) => {
|
|
|
5217
5292
|
var formatToPattern2 = (format) => {
|
|
5218
5293
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
5219
5294
|
};
|
|
5220
|
-
var TextMaskAdapter5 =
|
|
5295
|
+
var TextMaskAdapter5 = import_react31.default.forwardRef(function TextMaskAdapter6(props, ref) {
|
|
5221
5296
|
const { onChange, format, ...other } = props;
|
|
5222
|
-
return /* @__PURE__ */
|
|
5297
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
5223
5298
|
import_react_imask2.IMaskInput,
|
|
5224
5299
|
{
|
|
5225
5300
|
...other,
|
|
@@ -5253,7 +5328,7 @@ var TextMaskAdapter5 = import_react30.default.forwardRef(function TextMaskAdapte
|
|
|
5253
5328
|
}
|
|
5254
5329
|
);
|
|
5255
5330
|
});
|
|
5256
|
-
var DateRangePicker = (0,
|
|
5331
|
+
var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
|
|
5257
5332
|
const props = (0, import_joy37.useThemeProps)({ props: inProps, name: "DateRangePicker" });
|
|
5258
5333
|
const {
|
|
5259
5334
|
onChange,
|
|
@@ -5280,28 +5355,28 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5280
5355
|
numberOfMonths,
|
|
5281
5356
|
...innerProps
|
|
5282
5357
|
} = props;
|
|
5283
|
-
const innerRef = (0,
|
|
5284
|
-
const buttonRef = (0,
|
|
5358
|
+
const innerRef = (0, import_react31.useRef)(null);
|
|
5359
|
+
const buttonRef = (0, import_react31.useRef)(null);
|
|
5285
5360
|
const [rawValue, setValue] = useControlledState(
|
|
5286
5361
|
props.value,
|
|
5287
5362
|
props.defaultValue ?? null,
|
|
5288
|
-
(0,
|
|
5363
|
+
(0, import_react31.useCallback)(
|
|
5289
5364
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
5290
5365
|
[props.name, onChange]
|
|
5291
5366
|
)
|
|
5292
5367
|
);
|
|
5293
5368
|
const value = rawValue ?? "";
|
|
5294
5369
|
const isAlphabeticDisplay = hasAlphabeticMonth2(displayFormat);
|
|
5295
|
-
const [displayValue, setDisplayValue] = (0,
|
|
5370
|
+
const [displayValue, setDisplayValue] = (0, import_react31.useState)(
|
|
5296
5371
|
() => value ? formatValueString2(parseDates(value, format), displayFormat, locale) : ""
|
|
5297
5372
|
);
|
|
5298
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5373
|
+
const [anchorEl, setAnchorEl] = (0, import_react31.useState)(null);
|
|
5299
5374
|
const open = Boolean(anchorEl);
|
|
5300
|
-
const calendarValue = (0,
|
|
5375
|
+
const calendarValue = (0, import_react31.useMemo)(
|
|
5301
5376
|
() => value ? parseDates(value, format) : void 0,
|
|
5302
5377
|
[value, format]
|
|
5303
5378
|
);
|
|
5304
|
-
(0,
|
|
5379
|
+
(0, import_react31.useEffect)(() => {
|
|
5305
5380
|
if (value) {
|
|
5306
5381
|
try {
|
|
5307
5382
|
const dates = parseDates(value, format);
|
|
@@ -5313,13 +5388,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5313
5388
|
setDisplayValue("");
|
|
5314
5389
|
}
|
|
5315
5390
|
}, [displayFormat, locale, value, format]);
|
|
5316
|
-
(0,
|
|
5391
|
+
(0, import_react31.useEffect)(() => {
|
|
5317
5392
|
if (!anchorEl) {
|
|
5318
5393
|
innerRef.current?.blur();
|
|
5319
5394
|
}
|
|
5320
5395
|
}, [anchorEl, innerRef]);
|
|
5321
|
-
(0,
|
|
5322
|
-
const handleChange = (0,
|
|
5396
|
+
(0, import_react31.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5397
|
+
const handleChange = (0, import_react31.useCallback)(
|
|
5323
5398
|
(event) => {
|
|
5324
5399
|
const value2 = event.target.value;
|
|
5325
5400
|
setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat, locale) : value2);
|
|
@@ -5327,7 +5402,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5327
5402
|
},
|
|
5328
5403
|
[displayFormat, format, locale, setValue]
|
|
5329
5404
|
);
|
|
5330
|
-
const handleDisplayInputChange = (0,
|
|
5405
|
+
const handleDisplayInputChange = (0, import_react31.useCallback)(
|
|
5331
5406
|
(event) => {
|
|
5332
5407
|
if (event.target.value === "") {
|
|
5333
5408
|
handleChange({
|
|
@@ -5352,14 +5427,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5352
5427
|
},
|
|
5353
5428
|
[displayFormat, format, handleChange, props.name]
|
|
5354
5429
|
);
|
|
5355
|
-
const handleCalendarToggle = (0,
|
|
5430
|
+
const handleCalendarToggle = (0, import_react31.useCallback)(
|
|
5356
5431
|
(event) => {
|
|
5357
5432
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5358
5433
|
innerRef.current?.focus();
|
|
5359
5434
|
},
|
|
5360
5435
|
[anchorEl, setAnchorEl, innerRef]
|
|
5361
5436
|
);
|
|
5362
|
-
const handleCalendarChange = (0,
|
|
5437
|
+
const handleCalendarChange = (0, import_react31.useCallback)(
|
|
5363
5438
|
([date1, date2]) => {
|
|
5364
5439
|
if (!date1 || !date2) return;
|
|
5365
5440
|
const formattedValue = formatValueString2([date1, date2], format);
|
|
@@ -5373,7 +5448,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5373
5448
|
},
|
|
5374
5449
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5375
5450
|
);
|
|
5376
|
-
const handleInputMouseDown = (0,
|
|
5451
|
+
const handleInputMouseDown = (0, import_react31.useCallback)(
|
|
5377
5452
|
(event) => {
|
|
5378
5453
|
if (inputReadOnly || isAlphabeticDisplay) {
|
|
5379
5454
|
event.preventDefault();
|
|
@@ -5382,7 +5457,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5382
5457
|
},
|
|
5383
5458
|
[inputReadOnly, isAlphabeticDisplay, buttonRef]
|
|
5384
5459
|
);
|
|
5385
|
-
const handleInputClick = (0,
|
|
5460
|
+
const handleInputClick = (0, import_react31.useCallback)(
|
|
5386
5461
|
(event) => {
|
|
5387
5462
|
if (inputReadOnly && !readOnly) {
|
|
5388
5463
|
handleCalendarToggle(event);
|
|
@@ -5390,7 +5465,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5390
5465
|
},
|
|
5391
5466
|
[inputReadOnly, readOnly, handleCalendarToggle]
|
|
5392
5467
|
);
|
|
5393
|
-
const handlePresetClick = (0,
|
|
5468
|
+
const handlePresetClick = (0, import_react31.useCallback)(
|
|
5394
5469
|
(presetValue) => {
|
|
5395
5470
|
if (props.value !== void 0) {
|
|
5396
5471
|
onChange?.({ target: { name: props.name, value: presetValue } });
|
|
@@ -5403,7 +5478,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5403
5478
|
},
|
|
5404
5479
|
[props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
|
|
5405
5480
|
);
|
|
5406
|
-
const isPresetDisabled = (0,
|
|
5481
|
+
const isPresetDisabled = (0, import_react31.useCallback)(
|
|
5407
5482
|
(presetValue) => {
|
|
5408
5483
|
try {
|
|
5409
5484
|
const dates = parseDates(presetValue, format);
|
|
@@ -5422,7 +5497,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5422
5497
|
},
|
|
5423
5498
|
[format, minDate, maxDate, disableFuture, disablePast]
|
|
5424
5499
|
);
|
|
5425
|
-
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(
|
|
5426
5501
|
Input_default,
|
|
5427
5502
|
{
|
|
5428
5503
|
...innerProps,
|
|
@@ -5448,9 +5523,8 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5448
5523
|
}
|
|
5449
5524
|
},
|
|
5450
5525
|
error,
|
|
5451
|
-
|
|
5452
|
-
|
|
5453
|
-
endDecorator: /* @__PURE__ */ import_react30.default.createElement(
|
|
5526
|
+
sx: { width: "100%" },
|
|
5527
|
+
endDecorator: /* @__PURE__ */ import_react31.default.createElement(
|
|
5454
5528
|
CalendarButton2,
|
|
5455
5529
|
{
|
|
5456
5530
|
ref: buttonRef,
|
|
@@ -5462,13 +5536,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5462
5536
|
"aria-expanded": open,
|
|
5463
5537
|
disabled
|
|
5464
5538
|
},
|
|
5465
|
-
/* @__PURE__ */
|
|
5539
|
+
/* @__PURE__ */ import_react31.default.createElement(import_CalendarToday2.default, null)
|
|
5466
5540
|
),
|
|
5467
5541
|
label,
|
|
5468
5542
|
helperText,
|
|
5469
5543
|
readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
|
|
5470
5544
|
}
|
|
5471
|
-
), open && /* @__PURE__ */
|
|
5545
|
+
), open && /* @__PURE__ */ import_react31.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react31.default.createElement(
|
|
5472
5546
|
StyledPopper2,
|
|
5473
5547
|
{
|
|
5474
5548
|
id: "date-range-picker-popper",
|
|
@@ -5487,7 +5561,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5487
5561
|
"aria-label": "Calendar Tooltip",
|
|
5488
5562
|
"aria-expanded": open
|
|
5489
5563
|
},
|
|
5490
|
-
/* @__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(
|
|
5491
5565
|
Calendar_default,
|
|
5492
5566
|
{
|
|
5493
5567
|
rangeSelection: true,
|
|
@@ -5500,14 +5574,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5500
5574
|
locale,
|
|
5501
5575
|
numberOfMonths
|
|
5502
5576
|
}
|
|
5503
|
-
), !hideClearButton && /* @__PURE__ */
|
|
5577
|
+
), !hideClearButton && /* @__PURE__ */ import_react31.default.createElement(
|
|
5504
5578
|
DialogActions_default,
|
|
5505
5579
|
{
|
|
5506
5580
|
sx: {
|
|
5507
5581
|
p: 1
|
|
5508
5582
|
}
|
|
5509
5583
|
},
|
|
5510
|
-
/* @__PURE__ */
|
|
5584
|
+
/* @__PURE__ */ import_react31.default.createElement(
|
|
5511
5585
|
Button_default,
|
|
5512
5586
|
{
|
|
5513
5587
|
size,
|
|
@@ -5521,9 +5595,9 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
|
|
|
5521
5595
|
},
|
|
5522
5596
|
"Clear"
|
|
5523
5597
|
)
|
|
5524
|
-
)), presets && presets.length > 0 && /* @__PURE__ */
|
|
5598
|
+
)), presets && presets.length > 0 && /* @__PURE__ */ import_react31.default.createElement(PresetPanel2, null, presets.map((preset) => {
|
|
5525
5599
|
const disabled2 = isPresetDisabled(preset.value);
|
|
5526
|
-
return /* @__PURE__ */
|
|
5600
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
5527
5601
|
PresetItem2,
|
|
5528
5602
|
{
|
|
5529
5603
|
key: preset.label,
|
|
@@ -5568,10 +5642,10 @@ DialogTitle.displayName = "DialogTitle";
|
|
|
5568
5642
|
var DialogTitle_default = DialogTitle;
|
|
5569
5643
|
|
|
5570
5644
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
5571
|
-
var
|
|
5645
|
+
var import_react33 = __toESM(require("react"));
|
|
5572
5646
|
|
|
5573
5647
|
// src/components/Modal/Modal.tsx
|
|
5574
|
-
var
|
|
5648
|
+
var import_react32 = __toESM(require("react"));
|
|
5575
5649
|
var import_joy40 = require("@mui/joy");
|
|
5576
5650
|
var import_framer_motion24 = require("framer-motion");
|
|
5577
5651
|
var MotionModal = (0, import_framer_motion24.motion)(import_joy40.Modal);
|
|
@@ -5586,10 +5660,10 @@ var ModalClose = import_joy40.ModalClose;
|
|
|
5586
5660
|
var MotionModalOverflow = (0, import_framer_motion24.motion)(import_joy40.ModalOverflow);
|
|
5587
5661
|
var ModalOverflow = MotionModalOverflow;
|
|
5588
5662
|
ModalOverflow.displayName = "ModalOverflow";
|
|
5589
|
-
|
|
5663
|
+
var ModalFrame = import_react32.default.forwardRef((props, ref) => {
|
|
5590
5664
|
const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
|
|
5591
|
-
return /* @__PURE__ */
|
|
5592
|
-
}
|
|
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
|
+
});
|
|
5593
5667
|
ModalFrame.displayName = "ModalFrame";
|
|
5594
5668
|
|
|
5595
5669
|
// src/components/DialogFrame/DialogFrame.tsx
|
|
@@ -5600,20 +5674,20 @@ var StyledDialogFrame = (0, import_joy41.styled)(ModalDialog, {
|
|
|
5600
5674
|
})({
|
|
5601
5675
|
padding: 0
|
|
5602
5676
|
});
|
|
5603
|
-
var DialogFrame =
|
|
5677
|
+
var DialogFrame = import_react33.default.forwardRef((props, ref) => {
|
|
5604
5678
|
const { title, children, actions, fullscreen, onSubmit, ...innerProps } = props;
|
|
5605
5679
|
const formProps = onSubmit ? { component: "form", onSubmit } : void 0;
|
|
5606
|
-
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));
|
|
5607
5681
|
});
|
|
5608
5682
|
DialogFrame.displayName = "DialogFrame";
|
|
5609
5683
|
|
|
5610
5684
|
// src/components/Divider/Divider.tsx
|
|
5611
|
-
var
|
|
5685
|
+
var import_react34 = __toESM(require("react"));
|
|
5612
5686
|
var import_joy42 = require("@mui/joy");
|
|
5613
5687
|
var import_framer_motion25 = require("framer-motion");
|
|
5614
5688
|
var MotionDivider = (0, import_framer_motion25.motion)(import_joy42.Divider);
|
|
5615
5689
|
var Divider = (props) => {
|
|
5616
|
-
return /* @__PURE__ */
|
|
5690
|
+
return /* @__PURE__ */ import_react34.default.createElement(MotionDivider, { ...props });
|
|
5617
5691
|
};
|
|
5618
5692
|
Divider.displayName = "Divider";
|
|
5619
5693
|
|
|
@@ -5634,16 +5708,16 @@ var InsetDrawer = (0, import_joy43.styled)(import_joy43.Drawer)(({ theme }) => (
|
|
|
5634
5708
|
}));
|
|
5635
5709
|
|
|
5636
5710
|
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
5637
|
-
var
|
|
5711
|
+
var import_react35 = __toESM(require("react"));
|
|
5638
5712
|
var import_Search = __toESM(require("@mui/icons-material/Search"));
|
|
5639
5713
|
var import_joy44 = require("@mui/joy");
|
|
5640
5714
|
var import_react_virtual3 = require("@tanstack/react-virtual");
|
|
5641
5715
|
var EMPTY_VALUE = [];
|
|
5642
5716
|
function LabelWithTooltip(props) {
|
|
5643
5717
|
const { label, size } = props;
|
|
5644
|
-
const labelContentRef = (0,
|
|
5645
|
-
const [isOverflowing, setIsOverflowing] = (0,
|
|
5646
|
-
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(
|
|
5647
5721
|
"span",
|
|
5648
5722
|
{
|
|
5649
5723
|
ref: labelContentRef,
|
|
@@ -5659,14 +5733,14 @@ function LabelWithTooltip(props) {
|
|
|
5659
5733
|
},
|
|
5660
5734
|
label
|
|
5661
5735
|
);
|
|
5662
|
-
(0,
|
|
5736
|
+
(0, import_react35.useEffect)(() => {
|
|
5663
5737
|
const element = labelContentRef.current;
|
|
5664
5738
|
if (element) {
|
|
5665
5739
|
setIsOverflowing(element.scrollWidth > element.clientWidth);
|
|
5666
5740
|
}
|
|
5667
5741
|
}, [label]);
|
|
5668
5742
|
if (isOverflowing) {
|
|
5669
|
-
return /* @__PURE__ */
|
|
5743
|
+
return /* @__PURE__ */ import_react35.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
|
|
5670
5744
|
}
|
|
5671
5745
|
return labelContent;
|
|
5672
5746
|
}
|
|
@@ -5684,22 +5758,22 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5684
5758
|
maxHeight = 300,
|
|
5685
5759
|
disabled
|
|
5686
5760
|
} = props;
|
|
5687
|
-
const [searchTerm, setSearchTerm] = (0,
|
|
5688
|
-
const [sortedOptions, setSortedOptions] = (0,
|
|
5761
|
+
const [searchTerm, setSearchTerm] = (0, import_react35.useState)("");
|
|
5762
|
+
const [sortedOptions, setSortedOptions] = (0, import_react35.useState)(options);
|
|
5689
5763
|
const [rawValue, setInternalValue] = useControlledState(
|
|
5690
5764
|
value,
|
|
5691
5765
|
value ?? EMPTY_VALUE,
|
|
5692
|
-
(0,
|
|
5766
|
+
(0, import_react35.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
|
|
5693
5767
|
);
|
|
5694
5768
|
const internalValue = rawValue ?? EMPTY_VALUE;
|
|
5695
|
-
const parentRef = (0,
|
|
5696
|
-
const isInitialSortRef = (0,
|
|
5697
|
-
const prevOptionsRef = (0,
|
|
5698
|
-
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)(() => {
|
|
5699
5773
|
if (!searchTerm) return sortedOptions;
|
|
5700
5774
|
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
5701
5775
|
}, [sortedOptions, searchTerm]);
|
|
5702
|
-
const itemSize = (0,
|
|
5776
|
+
const itemSize = (0, import_react35.useMemo)(() => {
|
|
5703
5777
|
switch (size) {
|
|
5704
5778
|
case "sm":
|
|
5705
5779
|
return 28;
|
|
@@ -5717,7 +5791,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5717
5791
|
overscan: 5
|
|
5718
5792
|
});
|
|
5719
5793
|
const items = virtualizer.getVirtualItems();
|
|
5720
|
-
(0,
|
|
5794
|
+
(0, import_react35.useEffect)(() => {
|
|
5721
5795
|
const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
|
|
5722
5796
|
(prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
|
|
5723
5797
|
);
|
|
@@ -5743,13 +5817,13 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5743
5817
|
}
|
|
5744
5818
|
}
|
|
5745
5819
|
}, [options, value]);
|
|
5746
|
-
(0,
|
|
5820
|
+
(0, import_react35.useEffect)(() => {
|
|
5747
5821
|
virtualizer.measure();
|
|
5748
5822
|
}, [virtualizer, filteredOptions, size]);
|
|
5749
|
-
const handleSearchChange = (0,
|
|
5823
|
+
const handleSearchChange = (0, import_react35.useCallback)((event) => {
|
|
5750
5824
|
setSearchTerm(event.target.value);
|
|
5751
5825
|
}, []);
|
|
5752
|
-
const handleCheckboxChange = (0,
|
|
5826
|
+
const handleCheckboxChange = (0, import_react35.useCallback)(
|
|
5753
5827
|
(optionValue) => (event) => {
|
|
5754
5828
|
const checked = event.target.checked;
|
|
5755
5829
|
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
@@ -5757,7 +5831,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5757
5831
|
},
|
|
5758
5832
|
[internalValue, setInternalValue]
|
|
5759
5833
|
);
|
|
5760
|
-
const handleSelectAll = (0,
|
|
5834
|
+
const handleSelectAll = (0, import_react35.useCallback)(
|
|
5761
5835
|
(event) => {
|
|
5762
5836
|
const checked = event.target.checked;
|
|
5763
5837
|
const enabledOptions = filteredOptions.filter((option) => !option.disabled);
|
|
@@ -5773,10 +5847,10 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5773
5847
|
},
|
|
5774
5848
|
[filteredOptions, internalValue, setInternalValue]
|
|
5775
5849
|
);
|
|
5776
|
-
const enabledFilteredOptions = (0,
|
|
5850
|
+
const enabledFilteredOptions = (0, import_react35.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
|
|
5777
5851
|
const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
|
|
5778
5852
|
const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
|
|
5779
|
-
return /* @__PURE__ */
|
|
5853
|
+
return /* @__PURE__ */ import_react35.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react35.default.createElement(
|
|
5780
5854
|
Input_default,
|
|
5781
5855
|
{
|
|
5782
5856
|
label,
|
|
@@ -5789,9 +5863,9 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5789
5863
|
onChange: handleSearchChange,
|
|
5790
5864
|
size,
|
|
5791
5865
|
disabled,
|
|
5792
|
-
endDecorator: /* @__PURE__ */
|
|
5866
|
+
endDecorator: /* @__PURE__ */ import_react35.default.createElement(import_Search.default, null)
|
|
5793
5867
|
}
|
|
5794
|
-
), 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(
|
|
5795
5869
|
"div",
|
|
5796
5870
|
{
|
|
5797
5871
|
ref: parentRef,
|
|
@@ -5802,7 +5876,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5802
5876
|
marginTop: "8px"
|
|
5803
5877
|
}
|
|
5804
5878
|
},
|
|
5805
|
-
!searchTerm && /* @__PURE__ */
|
|
5879
|
+
!searchTerm && /* @__PURE__ */ import_react35.default.createElement(
|
|
5806
5880
|
Checkbox_default,
|
|
5807
5881
|
{
|
|
5808
5882
|
label: "Select all",
|
|
@@ -5819,7 +5893,7 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5819
5893
|
sx: { width: "100%", height: itemSize }
|
|
5820
5894
|
}
|
|
5821
5895
|
),
|
|
5822
|
-
/* @__PURE__ */
|
|
5896
|
+
/* @__PURE__ */ import_react35.default.createElement(
|
|
5823
5897
|
Stack_default,
|
|
5824
5898
|
{
|
|
5825
5899
|
sx: {
|
|
@@ -5829,11 +5903,11 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5829
5903
|
},
|
|
5830
5904
|
items.map((virtualRow) => {
|
|
5831
5905
|
const option = filteredOptions[virtualRow.index];
|
|
5832
|
-
return /* @__PURE__ */
|
|
5906
|
+
return /* @__PURE__ */ import_react35.default.createElement(
|
|
5833
5907
|
Checkbox_default,
|
|
5834
5908
|
{
|
|
5835
5909
|
key: virtualRow.key,
|
|
5836
|
-
label: /* @__PURE__ */
|
|
5910
|
+
label: /* @__PURE__ */ import_react35.default.createElement(LabelWithTooltip, { label: option.label, size }),
|
|
5837
5911
|
checked: internalValue.includes(option.value),
|
|
5838
5912
|
onChange: handleCheckboxChange(option.value),
|
|
5839
5913
|
size,
|
|
@@ -5861,16 +5935,16 @@ function FilterableCheckboxGroup(inProps) {
|
|
|
5861
5935
|
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
5862
5936
|
|
|
5863
5937
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
5864
|
-
var
|
|
5938
|
+
var import_react48 = __toESM(require("react"));
|
|
5865
5939
|
var import_joy58 = require("@mui/joy");
|
|
5866
5940
|
|
|
5867
5941
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
5868
|
-
var
|
|
5942
|
+
var import_react36 = __toESM(require("react"));
|
|
5869
5943
|
var import_joy45 = require("@mui/joy");
|
|
5870
5944
|
function CheckboxGroup(props) {
|
|
5871
5945
|
const { id, label, options, value, onChange, hidden } = props;
|
|
5872
5946
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
5873
|
-
const handleCheckboxChange = (0,
|
|
5947
|
+
const handleCheckboxChange = (0, import_react36.useCallback)(
|
|
5874
5948
|
(optionValue) => (event) => {
|
|
5875
5949
|
const checked = event.target.checked;
|
|
5876
5950
|
let newValue;
|
|
@@ -5886,7 +5960,7 @@ function CheckboxGroup(props) {
|
|
|
5886
5960
|
if (hidden) {
|
|
5887
5961
|
return null;
|
|
5888
5962
|
}
|
|
5889
|
-
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(
|
|
5890
5964
|
Checkbox_default,
|
|
5891
5965
|
{
|
|
5892
5966
|
key: `${id}-${option.value}`,
|
|
@@ -5899,12 +5973,12 @@ function CheckboxGroup(props) {
|
|
|
5899
5973
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
5900
5974
|
|
|
5901
5975
|
// src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
|
|
5902
|
-
var
|
|
5976
|
+
var import_react37 = __toESM(require("react"));
|
|
5903
5977
|
var import_joy46 = require("@mui/joy");
|
|
5904
5978
|
function FilterableCheckboxGroup2(props) {
|
|
5905
5979
|
const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
|
|
5906
5980
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
5907
|
-
const handleChange = (0,
|
|
5981
|
+
const handleChange = (0, import_react37.useCallback)(
|
|
5908
5982
|
(newValue) => {
|
|
5909
5983
|
setInternalValue(newValue);
|
|
5910
5984
|
},
|
|
@@ -5913,7 +5987,7 @@ function FilterableCheckboxGroup2(props) {
|
|
|
5913
5987
|
if (hidden) {
|
|
5914
5988
|
return null;
|
|
5915
5989
|
}
|
|
5916
|
-
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(
|
|
5917
5991
|
FilterableCheckboxGroup,
|
|
5918
5992
|
{
|
|
5919
5993
|
value: internalValue ?? [],
|
|
@@ -5928,7 +6002,7 @@ function FilterableCheckboxGroup2(props) {
|
|
|
5928
6002
|
FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
|
|
5929
6003
|
|
|
5930
6004
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
5931
|
-
var
|
|
6005
|
+
var import_react38 = __toESM(require("react"));
|
|
5932
6006
|
|
|
5933
6007
|
// src/components/Radio/Radio.tsx
|
|
5934
6008
|
var import_joy47 = require("@mui/joy");
|
|
@@ -5945,7 +6019,7 @@ var import_joy48 = require("@mui/joy");
|
|
|
5945
6019
|
function RadioGroup2(props) {
|
|
5946
6020
|
const { id, label, options, value, onChange, hidden } = props;
|
|
5947
6021
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
5948
|
-
const handleRadioChange = (0,
|
|
6022
|
+
const handleRadioChange = (0, import_react38.useCallback)(
|
|
5949
6023
|
(event) => {
|
|
5950
6024
|
const newValue = event.target.value;
|
|
5951
6025
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -5957,12 +6031,12 @@ function RadioGroup2(props) {
|
|
|
5957
6031
|
if (hidden) {
|
|
5958
6032
|
return null;
|
|
5959
6033
|
}
|
|
5960
|
-
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 }))));
|
|
5961
6035
|
}
|
|
5962
6036
|
RadioGroup2.displayName = "RadioGroup";
|
|
5963
6037
|
|
|
5964
6038
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
5965
|
-
var
|
|
6039
|
+
var import_react39 = __toESM(require("react"));
|
|
5966
6040
|
var import_joy49 = require("@mui/joy");
|
|
5967
6041
|
function DateRange(props) {
|
|
5968
6042
|
const {
|
|
@@ -5980,8 +6054,8 @@ function DateRange(props) {
|
|
|
5980
6054
|
hideClearButton
|
|
5981
6055
|
} = props;
|
|
5982
6056
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
5983
|
-
const [selectedOption, setSelectedOption] = (0,
|
|
5984
|
-
const dateRangeOptions = (0,
|
|
6057
|
+
const [selectedOption, setSelectedOption] = (0, import_react39.useState)("all-time");
|
|
6058
|
+
const dateRangeOptions = (0, import_react39.useMemo)(
|
|
5985
6059
|
() => [
|
|
5986
6060
|
{ label: "All Time", value: "all-time" },
|
|
5987
6061
|
{ label: "This Month", value: "this-month" },
|
|
@@ -5991,7 +6065,7 @@ function DateRange(props) {
|
|
|
5991
6065
|
],
|
|
5992
6066
|
[]
|
|
5993
6067
|
);
|
|
5994
|
-
const getDateRangeForOption = (0,
|
|
6068
|
+
const getDateRangeForOption = (0, import_react39.useCallback)(
|
|
5995
6069
|
(option) => {
|
|
5996
6070
|
const now = /* @__PURE__ */ new Date();
|
|
5997
6071
|
const currentYear = now.getFullYear();
|
|
@@ -6030,7 +6104,7 @@ function DateRange(props) {
|
|
|
6030
6104
|
},
|
|
6031
6105
|
[internalValue]
|
|
6032
6106
|
);
|
|
6033
|
-
const determineOptionFromValue = (0,
|
|
6107
|
+
const determineOptionFromValue = (0, import_react39.useCallback)(
|
|
6034
6108
|
(value2) => {
|
|
6035
6109
|
if (!value2) {
|
|
6036
6110
|
return "all-time";
|
|
@@ -6046,17 +6120,17 @@ function DateRange(props) {
|
|
|
6046
6120
|
},
|
|
6047
6121
|
[getDateRangeForOption]
|
|
6048
6122
|
);
|
|
6049
|
-
const customDateRangeValue = (0,
|
|
6123
|
+
const customDateRangeValue = (0, import_react39.useMemo)(() => {
|
|
6050
6124
|
if (selectedOption === "custom" && internalValue) {
|
|
6051
6125
|
return `${internalValue[0]} - ${internalValue[1]}`;
|
|
6052
6126
|
}
|
|
6053
6127
|
return "";
|
|
6054
6128
|
}, [selectedOption, internalValue]);
|
|
6055
|
-
(0,
|
|
6129
|
+
(0, import_react39.useEffect)(() => {
|
|
6056
6130
|
const newOption = determineOptionFromValue(internalValue);
|
|
6057
6131
|
setSelectedOption(newOption);
|
|
6058
6132
|
}, [internalValue, determineOptionFromValue]);
|
|
6059
|
-
const handleOptionChange = (0,
|
|
6133
|
+
const handleOptionChange = (0, import_react39.useCallback)(
|
|
6060
6134
|
(event) => {
|
|
6061
6135
|
const newOption = event.target.value;
|
|
6062
6136
|
setSelectedOption(newOption);
|
|
@@ -6065,7 +6139,7 @@ function DateRange(props) {
|
|
|
6065
6139
|
},
|
|
6066
6140
|
[getDateRangeForOption, setInternalValue]
|
|
6067
6141
|
);
|
|
6068
|
-
const handleCustomDateChange = (0,
|
|
6142
|
+
const handleCustomDateChange = (0, import_react39.useCallback)(
|
|
6069
6143
|
(event) => {
|
|
6070
6144
|
const dateRangeString = event.target.value;
|
|
6071
6145
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
@@ -6086,7 +6160,7 @@ function DateRange(props) {
|
|
|
6086
6160
|
if (hidden) {
|
|
6087
6161
|
return null;
|
|
6088
6162
|
}
|
|
6089
|
-
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(
|
|
6090
6164
|
DateRangePicker,
|
|
6091
6165
|
{
|
|
6092
6166
|
value: customDateRangeValue,
|
|
@@ -6105,11 +6179,11 @@ function DateRange(props) {
|
|
|
6105
6179
|
DateRange.displayName = "DateRange";
|
|
6106
6180
|
|
|
6107
6181
|
// src/components/FilterMenu/components/MonthRange.tsx
|
|
6108
|
-
var
|
|
6182
|
+
var import_react41 = __toESM(require("react"));
|
|
6109
6183
|
var import_joy51 = require("@mui/joy");
|
|
6110
6184
|
|
|
6111
6185
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
6112
|
-
var
|
|
6186
|
+
var import_react40 = __toESM(require("react"));
|
|
6113
6187
|
var import_react_imask3 = require("react-imask");
|
|
6114
6188
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
6115
6189
|
var import_joy50 = require("@mui/joy");
|
|
@@ -6170,9 +6244,9 @@ var parseDates2 = (str) => {
|
|
|
6170
6244
|
var formatToPattern3 = (format) => {
|
|
6171
6245
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
6172
6246
|
};
|
|
6173
|
-
var TextMaskAdapter7 =
|
|
6247
|
+
var TextMaskAdapter7 = import_react40.default.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
6174
6248
|
const { onChange, format, ...other } = props;
|
|
6175
|
-
return /* @__PURE__ */
|
|
6249
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
6176
6250
|
import_react_imask3.IMaskInput,
|
|
6177
6251
|
{
|
|
6178
6252
|
...other,
|
|
@@ -6200,7 +6274,7 @@ var TextMaskAdapter7 = import_react39.default.forwardRef(function TextMaskAdapte
|
|
|
6200
6274
|
}
|
|
6201
6275
|
);
|
|
6202
6276
|
});
|
|
6203
|
-
var MonthRangePicker = (0,
|
|
6277
|
+
var MonthRangePicker = (0, import_react40.forwardRef)((inProps, ref) => {
|
|
6204
6278
|
const props = (0, import_joy50.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
6205
6279
|
const {
|
|
6206
6280
|
onChange,
|
|
@@ -6224,24 +6298,24 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6224
6298
|
} = props;
|
|
6225
6299
|
const displayFormat = displayFormatProp ?? format;
|
|
6226
6300
|
const isAlphabeticDisplay = hasAlphabeticMonth3(displayFormat);
|
|
6227
|
-
const innerRef = (0,
|
|
6228
|
-
const buttonRef = (0,
|
|
6301
|
+
const innerRef = (0, import_react40.useRef)(null);
|
|
6302
|
+
const buttonRef = (0, import_react40.useRef)(null);
|
|
6229
6303
|
const [rawValue, setValue] = useControlledState(
|
|
6230
6304
|
props.value,
|
|
6231
6305
|
props.defaultValue ?? null,
|
|
6232
|
-
(0,
|
|
6306
|
+
(0, import_react40.useCallback)(
|
|
6233
6307
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
6234
6308
|
[props.name, onChange]
|
|
6235
6309
|
)
|
|
6236
6310
|
);
|
|
6237
6311
|
const value = rawValue ?? "";
|
|
6238
|
-
const [displayValue, setDisplayValue] = (0,
|
|
6312
|
+
const [displayValue, setDisplayValue] = (0, import_react40.useState)(
|
|
6239
6313
|
() => value ? formatValueString3(parseDates2(value), displayFormat, locale) : ""
|
|
6240
6314
|
);
|
|
6241
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
6315
|
+
const [anchorEl, setAnchorEl] = (0, import_react40.useState)(null);
|
|
6242
6316
|
const open = Boolean(anchorEl);
|
|
6243
|
-
const calendarValue = (0,
|
|
6244
|
-
(0,
|
|
6317
|
+
const calendarValue = (0, import_react40.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
6318
|
+
(0, import_react40.useEffect)(() => {
|
|
6245
6319
|
if (value) {
|
|
6246
6320
|
try {
|
|
6247
6321
|
const dates = parseDates2(value);
|
|
@@ -6253,13 +6327,13 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6253
6327
|
setDisplayValue("");
|
|
6254
6328
|
}
|
|
6255
6329
|
}, [displayFormat, locale, value]);
|
|
6256
|
-
(0,
|
|
6330
|
+
(0, import_react40.useEffect)(() => {
|
|
6257
6331
|
if (!anchorEl) {
|
|
6258
6332
|
innerRef.current?.blur();
|
|
6259
6333
|
}
|
|
6260
6334
|
}, [anchorEl, innerRef]);
|
|
6261
|
-
(0,
|
|
6262
|
-
const handleChange = (0,
|
|
6335
|
+
(0, import_react40.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
6336
|
+
const handleChange = (0, import_react40.useCallback)(
|
|
6263
6337
|
(event) => {
|
|
6264
6338
|
setDisplayValue(
|
|
6265
6339
|
event.target.value ? formatValueString3(parseDates2(event.target.value), displayFormat, locale) : ""
|
|
@@ -6268,7 +6342,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6268
6342
|
},
|
|
6269
6343
|
[displayFormat, locale, setValue]
|
|
6270
6344
|
);
|
|
6271
|
-
const handleInputMouseDown = (0,
|
|
6345
|
+
const handleInputMouseDown = (0, import_react40.useCallback)(
|
|
6272
6346
|
(event) => {
|
|
6273
6347
|
if (isAlphabeticDisplay) {
|
|
6274
6348
|
event.preventDefault();
|
|
@@ -6277,14 +6351,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6277
6351
|
},
|
|
6278
6352
|
[isAlphabeticDisplay, buttonRef]
|
|
6279
6353
|
);
|
|
6280
|
-
const handleCalendarToggle = (0,
|
|
6354
|
+
const handleCalendarToggle = (0, import_react40.useCallback)(
|
|
6281
6355
|
(event) => {
|
|
6282
6356
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6283
6357
|
innerRef.current?.focus();
|
|
6284
6358
|
},
|
|
6285
6359
|
[anchorEl, setAnchorEl, innerRef]
|
|
6286
6360
|
);
|
|
6287
|
-
const handleCalendarChange = (0,
|
|
6361
|
+
const handleCalendarChange = (0, import_react40.useCallback)(
|
|
6288
6362
|
([date1, date2]) => {
|
|
6289
6363
|
if (!date1 || !date2) return;
|
|
6290
6364
|
const formattedValue = formatValueString3([date1, date2], format);
|
|
@@ -6294,7 +6368,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6294
6368
|
},
|
|
6295
6369
|
[setValue, setAnchorEl, format, displayFormat, locale]
|
|
6296
6370
|
);
|
|
6297
|
-
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(
|
|
6298
6372
|
Input_default,
|
|
6299
6373
|
{
|
|
6300
6374
|
...innerProps,
|
|
@@ -6324,7 +6398,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6324
6398
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6325
6399
|
fontFamily: "monospace"
|
|
6326
6400
|
},
|
|
6327
|
-
endDecorator: /* @__PURE__ */
|
|
6401
|
+
endDecorator: /* @__PURE__ */ import_react40.default.createElement(
|
|
6328
6402
|
IconButton_default,
|
|
6329
6403
|
{
|
|
6330
6404
|
ref: buttonRef,
|
|
@@ -6335,12 +6409,12 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6335
6409
|
"aria-haspopup": "dialog",
|
|
6336
6410
|
"aria-expanded": open
|
|
6337
6411
|
},
|
|
6338
|
-
/* @__PURE__ */
|
|
6412
|
+
/* @__PURE__ */ import_react40.default.createElement(import_CalendarToday3.default, null)
|
|
6339
6413
|
),
|
|
6340
6414
|
label,
|
|
6341
6415
|
helperText
|
|
6342
6416
|
}
|
|
6343
|
-
), open && /* @__PURE__ */
|
|
6417
|
+
), open && /* @__PURE__ */ import_react40.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6344
6418
|
StyledPopper3,
|
|
6345
6419
|
{
|
|
6346
6420
|
id: "month-range-picker-popper",
|
|
@@ -6359,7 +6433,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6359
6433
|
"aria-label": "Calendar Tooltip",
|
|
6360
6434
|
"aria-expanded": open
|
|
6361
6435
|
},
|
|
6362
|
-
/* @__PURE__ */
|
|
6436
|
+
/* @__PURE__ */ import_react40.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react40.default.createElement(
|
|
6363
6437
|
Calendar_default,
|
|
6364
6438
|
{
|
|
6365
6439
|
view: "month",
|
|
@@ -6373,14 +6447,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
|
6373
6447
|
disablePast,
|
|
6374
6448
|
locale
|
|
6375
6449
|
}
|
|
6376
|
-
), /* @__PURE__ */
|
|
6450
|
+
), /* @__PURE__ */ import_react40.default.createElement(
|
|
6377
6451
|
DialogActions_default,
|
|
6378
6452
|
{
|
|
6379
6453
|
sx: {
|
|
6380
6454
|
p: 1
|
|
6381
6455
|
}
|
|
6382
6456
|
},
|
|
6383
|
-
/* @__PURE__ */
|
|
6457
|
+
/* @__PURE__ */ import_react40.default.createElement(
|
|
6384
6458
|
Button_default,
|
|
6385
6459
|
{
|
|
6386
6460
|
size,
|
|
@@ -6415,11 +6489,11 @@ function MonthRange(props) {
|
|
|
6415
6489
|
locale
|
|
6416
6490
|
} = props;
|
|
6417
6491
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
6418
|
-
const pickerValue = (0,
|
|
6492
|
+
const pickerValue = (0, import_react41.useMemo)(
|
|
6419
6493
|
() => internalValue ? `${internalValue[0]} - ${internalValue[1]}` : "",
|
|
6420
6494
|
[internalValue]
|
|
6421
6495
|
);
|
|
6422
|
-
const handleChange = (0,
|
|
6496
|
+
const handleChange = (0, import_react41.useCallback)(
|
|
6423
6497
|
(event) => {
|
|
6424
6498
|
const rangeString = event.target.value;
|
|
6425
6499
|
if (rangeString && rangeString.includes(" - ")) {
|
|
@@ -6436,7 +6510,7 @@ function MonthRange(props) {
|
|
|
6436
6510
|
if (hidden) {
|
|
6437
6511
|
return null;
|
|
6438
6512
|
}
|
|
6439
|
-
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(
|
|
6440
6514
|
MonthRangePicker,
|
|
6441
6515
|
{
|
|
6442
6516
|
value: pickerValue,
|
|
@@ -6454,12 +6528,12 @@ function MonthRange(props) {
|
|
|
6454
6528
|
MonthRange.displayName = "MonthRange";
|
|
6455
6529
|
|
|
6456
6530
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
6457
|
-
var
|
|
6531
|
+
var import_react42 = __toESM(require("react"));
|
|
6458
6532
|
var import_joy52 = require("@mui/joy");
|
|
6459
6533
|
function CurrencyInput3(props) {
|
|
6460
6534
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
6461
6535
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
6462
|
-
const handleCurrencyChange = (0,
|
|
6536
|
+
const handleCurrencyChange = (0, import_react42.useCallback)(
|
|
6463
6537
|
(event) => {
|
|
6464
6538
|
const newValue = event.target.value ?? void 0;
|
|
6465
6539
|
setInternalValue(newValue);
|
|
@@ -6469,7 +6543,7 @@ function CurrencyInput3(props) {
|
|
|
6469
6543
|
if (hidden) {
|
|
6470
6544
|
return null;
|
|
6471
6545
|
}
|
|
6472
|
-
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(
|
|
6473
6547
|
CurrencyInput,
|
|
6474
6548
|
{
|
|
6475
6549
|
value: internalValue,
|
|
@@ -6485,14 +6559,14 @@ function CurrencyInput3(props) {
|
|
|
6485
6559
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
6486
6560
|
|
|
6487
6561
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
6488
|
-
var
|
|
6562
|
+
var import_react43 = __toESM(require("react"));
|
|
6489
6563
|
var import_joy53 = require("@mui/joy");
|
|
6490
6564
|
function CurrencyRange(props) {
|
|
6491
6565
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
6492
6566
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
6493
6567
|
const minValue = internalValue?.[0];
|
|
6494
6568
|
const maxValue = internalValue?.[1];
|
|
6495
|
-
const handleMinChange = (0,
|
|
6569
|
+
const handleMinChange = (0, import_react43.useCallback)(
|
|
6496
6570
|
(event) => {
|
|
6497
6571
|
const newMinValue = event.target.value ?? void 0;
|
|
6498
6572
|
const currentMaxValue = maxValue;
|
|
@@ -6506,7 +6580,7 @@ function CurrencyRange(props) {
|
|
|
6506
6580
|
},
|
|
6507
6581
|
[maxValue, setInternalValue]
|
|
6508
6582
|
);
|
|
6509
|
-
const handleMaxChange = (0,
|
|
6583
|
+
const handleMaxChange = (0, import_react43.useCallback)(
|
|
6510
6584
|
(event) => {
|
|
6511
6585
|
const newMaxValue = event.target.value ?? void 0;
|
|
6512
6586
|
const currentMinValue = minValue;
|
|
@@ -6523,7 +6597,7 @@ function CurrencyRange(props) {
|
|
|
6523
6597
|
if (hidden) {
|
|
6524
6598
|
return null;
|
|
6525
6599
|
}
|
|
6526
|
-
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(
|
|
6527
6601
|
CurrencyInput,
|
|
6528
6602
|
{
|
|
6529
6603
|
label: "Minimum",
|
|
@@ -6536,7 +6610,7 @@ function CurrencyRange(props) {
|
|
|
6536
6610
|
"aria-labelledby": label ? id : void 0,
|
|
6537
6611
|
"aria-label": "Minimum amount"
|
|
6538
6612
|
}
|
|
6539
|
-
), /* @__PURE__ */
|
|
6613
|
+
), /* @__PURE__ */ import_react43.default.createElement(
|
|
6540
6614
|
CurrencyInput,
|
|
6541
6615
|
{
|
|
6542
6616
|
label: "Maximum",
|
|
@@ -6554,20 +6628,20 @@ function CurrencyRange(props) {
|
|
|
6554
6628
|
CurrencyRange.displayName = "CurrencyRange";
|
|
6555
6629
|
|
|
6556
6630
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
6557
|
-
var
|
|
6631
|
+
var import_react45 = __toESM(require("react"));
|
|
6558
6632
|
var import_joy55 = require("@mui/joy");
|
|
6559
6633
|
|
|
6560
6634
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
6561
|
-
var
|
|
6635
|
+
var import_react44 = __toESM(require("react"));
|
|
6562
6636
|
var import_react_number_format2 = require("react-number-format");
|
|
6563
6637
|
var import_joy54 = require("@mui/joy");
|
|
6564
6638
|
var padDecimal = (value, decimalScale) => {
|
|
6565
6639
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
6566
6640
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
6567
6641
|
};
|
|
6568
|
-
var TextMaskAdapter9 =
|
|
6642
|
+
var TextMaskAdapter9 = import_react44.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
6569
6643
|
const { onChange, min, max, ...innerProps } = props;
|
|
6570
|
-
return /* @__PURE__ */
|
|
6644
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6571
6645
|
import_react_number_format2.NumericFormat,
|
|
6572
6646
|
{
|
|
6573
6647
|
...innerProps,
|
|
@@ -6592,7 +6666,7 @@ var PercentageInputRoot = (0, import_joy54.styled)(Input_default, {
|
|
|
6592
6666
|
slot: "Root",
|
|
6593
6667
|
overridesResolver: (props, styles) => styles.root
|
|
6594
6668
|
})({});
|
|
6595
|
-
var PercentageInput =
|
|
6669
|
+
var PercentageInput = import_react44.default.forwardRef(
|
|
6596
6670
|
function PercentageInput2(inProps, ref) {
|
|
6597
6671
|
const props = (0, import_joy54.useThemeProps)({ props: inProps, name: "PercentageInput" });
|
|
6598
6672
|
const {
|
|
@@ -6615,19 +6689,19 @@ var PercentageInput = import_react43.default.forwardRef(
|
|
|
6615
6689
|
const [_value, setValue] = useControlledState(
|
|
6616
6690
|
props.value,
|
|
6617
6691
|
props.defaultValue ?? null,
|
|
6618
|
-
(0,
|
|
6692
|
+
(0, import_react44.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
6619
6693
|
);
|
|
6620
|
-
const value = (0,
|
|
6694
|
+
const value = (0, import_react44.useMemo)(() => {
|
|
6621
6695
|
if (_value && useMinorUnit) {
|
|
6622
6696
|
return _value / Math.pow(10, maxDecimalScale);
|
|
6623
6697
|
}
|
|
6624
6698
|
return _value;
|
|
6625
6699
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
6626
|
-
const internalError = (0,
|
|
6700
|
+
const internalError = (0, import_react44.useMemo)(
|
|
6627
6701
|
() => value != null && (max != null && value > max || min != null && value < min),
|
|
6628
6702
|
[max, min, value]
|
|
6629
6703
|
);
|
|
6630
|
-
const handleChange = (0,
|
|
6704
|
+
const handleChange = (0, import_react44.useCallback)(
|
|
6631
6705
|
(event) => {
|
|
6632
6706
|
if (event.target.value === "") {
|
|
6633
6707
|
setValue(null);
|
|
@@ -6639,7 +6713,7 @@ var PercentageInput = import_react43.default.forwardRef(
|
|
|
6639
6713
|
},
|
|
6640
6714
|
[setValue, useMinorUnit, maxDecimalScale]
|
|
6641
6715
|
);
|
|
6642
|
-
return /* @__PURE__ */
|
|
6716
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
6643
6717
|
PercentageInputRoot,
|
|
6644
6718
|
{
|
|
6645
6719
|
...innerProps,
|
|
@@ -6686,7 +6760,7 @@ var PercentageInput3 = ({
|
|
|
6686
6760
|
if (hidden) {
|
|
6687
6761
|
return null;
|
|
6688
6762
|
}
|
|
6689
|
-
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(
|
|
6690
6764
|
PercentageInput,
|
|
6691
6765
|
{
|
|
6692
6766
|
value: _value,
|
|
@@ -6701,7 +6775,7 @@ var PercentageInput3 = ({
|
|
|
6701
6775
|
};
|
|
6702
6776
|
|
|
6703
6777
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
6704
|
-
var
|
|
6778
|
+
var import_react46 = __toESM(require("react"));
|
|
6705
6779
|
var import_joy56 = require("@mui/joy");
|
|
6706
6780
|
function PercentageRange(props) {
|
|
6707
6781
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
@@ -6712,7 +6786,7 @@ function PercentageRange(props) {
|
|
|
6712
6786
|
);
|
|
6713
6787
|
const minValue = internalValue?.[0];
|
|
6714
6788
|
const maxValue = internalValue?.[1];
|
|
6715
|
-
const handleMinChange = (0,
|
|
6789
|
+
const handleMinChange = (0, import_react46.useCallback)(
|
|
6716
6790
|
(event) => {
|
|
6717
6791
|
const newMinValue = event.target.value ?? void 0;
|
|
6718
6792
|
const currentMaxValue = maxValue;
|
|
@@ -6724,7 +6798,7 @@ function PercentageRange(props) {
|
|
|
6724
6798
|
},
|
|
6725
6799
|
[maxValue, setInternalValue]
|
|
6726
6800
|
);
|
|
6727
|
-
const handleMaxChange = (0,
|
|
6801
|
+
const handleMaxChange = (0, import_react46.useCallback)(
|
|
6728
6802
|
(event) => {
|
|
6729
6803
|
const newMaxValue = event.target.value ?? void 0;
|
|
6730
6804
|
const currentMinValue = minValue;
|
|
@@ -6739,7 +6813,7 @@ function PercentageRange(props) {
|
|
|
6739
6813
|
if (hidden) {
|
|
6740
6814
|
return null;
|
|
6741
6815
|
}
|
|
6742
|
-
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(
|
|
6743
6817
|
PercentageInput,
|
|
6744
6818
|
{
|
|
6745
6819
|
label: "Minimum",
|
|
@@ -6753,7 +6827,7 @@ function PercentageRange(props) {
|
|
|
6753
6827
|
"aria-label": "Minimum percentage",
|
|
6754
6828
|
placeholder: "0%"
|
|
6755
6829
|
}
|
|
6756
|
-
), /* @__PURE__ */
|
|
6830
|
+
), /* @__PURE__ */ import_react46.default.createElement(
|
|
6757
6831
|
PercentageInput,
|
|
6758
6832
|
{
|
|
6759
6833
|
label: "Maximum",
|
|
@@ -6772,13 +6846,13 @@ function PercentageRange(props) {
|
|
|
6772
6846
|
PercentageRange.displayName = "PercentageRange";
|
|
6773
6847
|
|
|
6774
6848
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
6775
|
-
var
|
|
6849
|
+
var import_react47 = __toESM(require("react"));
|
|
6776
6850
|
var import_joy57 = require("@mui/joy");
|
|
6777
6851
|
function Autocomplete2(props) {
|
|
6778
6852
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
6779
6853
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
6780
6854
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
6781
|
-
const handleChange = (0,
|
|
6855
|
+
const handleChange = (0, import_react47.useCallback)(
|
|
6782
6856
|
(event) => {
|
|
6783
6857
|
const val = event.target.value ?? void 0;
|
|
6784
6858
|
if (val) {
|
|
@@ -6793,7 +6867,7 @@ function Autocomplete2(props) {
|
|
|
6793
6867
|
if (hidden) {
|
|
6794
6868
|
return null;
|
|
6795
6869
|
}
|
|
6796
|
-
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(
|
|
6797
6871
|
Autocomplete,
|
|
6798
6872
|
{
|
|
6799
6873
|
value: autocompleteValue,
|
|
@@ -6828,13 +6902,13 @@ function FilterMenu(props) {
|
|
|
6828
6902
|
void 0
|
|
6829
6903
|
// onChange는 Apply 버튼에서만 호출
|
|
6830
6904
|
);
|
|
6831
|
-
const dropdownRegistry = (0,
|
|
6832
|
-
(0,
|
|
6905
|
+
const dropdownRegistry = (0, import_react48.useContext)(DropdownNestedRegistryContext);
|
|
6906
|
+
(0, import_react48.useEffect)(() => {
|
|
6833
6907
|
if (!dropdownRegistry) return void 0;
|
|
6834
6908
|
dropdownRegistry.register();
|
|
6835
6909
|
return () => dropdownRegistry.unregister();
|
|
6836
6910
|
}, [dropdownRegistry]);
|
|
6837
|
-
const handleFilterChange = (0,
|
|
6911
|
+
const handleFilterChange = (0, import_react48.useCallback)(
|
|
6838
6912
|
(filterId, value) => {
|
|
6839
6913
|
setInternalValues((prev) => ({
|
|
6840
6914
|
...prev,
|
|
@@ -6843,17 +6917,17 @@ function FilterMenu(props) {
|
|
|
6843
6917
|
},
|
|
6844
6918
|
[setInternalValues]
|
|
6845
6919
|
);
|
|
6846
|
-
const handleApply = (0,
|
|
6920
|
+
const handleApply = (0, import_react48.useCallback)(() => {
|
|
6847
6921
|
onChange?.(internalValues);
|
|
6848
6922
|
onClose?.();
|
|
6849
6923
|
}, [onChange, onClose, internalValues]);
|
|
6850
|
-
const handleClear = (0,
|
|
6924
|
+
const handleClear = (0, import_react48.useCallback)(() => {
|
|
6851
6925
|
const clearedValues = resetValues || {};
|
|
6852
6926
|
setInternalValues(clearedValues);
|
|
6853
6927
|
onChange?.(clearedValues);
|
|
6854
6928
|
onClose?.();
|
|
6855
6929
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
6856
|
-
return /* @__PURE__ */
|
|
6930
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
6857
6931
|
ModalDialog,
|
|
6858
6932
|
{
|
|
6859
6933
|
sx: {
|
|
@@ -6863,9 +6937,9 @@ function FilterMenu(props) {
|
|
|
6863
6937
|
top: "initial"
|
|
6864
6938
|
}
|
|
6865
6939
|
},
|
|
6866
|
-
/* @__PURE__ */
|
|
6940
|
+
/* @__PURE__ */ import_react48.default.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ import_react48.default.createElement(import_joy58.Stack, { spacing: 6 }, filters?.map((filter) => {
|
|
6867
6941
|
const FilterComponent = componentMap[filter.type];
|
|
6868
|
-
return FilterComponent ? /* @__PURE__ */
|
|
6942
|
+
return FilterComponent ? /* @__PURE__ */ import_react48.default.createElement(
|
|
6869
6943
|
FilterComponent,
|
|
6870
6944
|
{
|
|
6871
6945
|
key: filter.id,
|
|
@@ -6877,13 +6951,13 @@ function FilterMenu(props) {
|
|
|
6877
6951
|
}
|
|
6878
6952
|
) : null;
|
|
6879
6953
|
}))),
|
|
6880
|
-
/* @__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"))
|
|
6881
6955
|
);
|
|
6882
6956
|
}
|
|
6883
6957
|
FilterMenu.displayName = "FilterMenu";
|
|
6884
6958
|
|
|
6885
6959
|
// src/components/Uploader/Uploader.tsx
|
|
6886
|
-
var
|
|
6960
|
+
var import_react49 = __toESM(require("react"));
|
|
6887
6961
|
var import_joy59 = require("@mui/joy");
|
|
6888
6962
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
6889
6963
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
@@ -6946,7 +7020,7 @@ var getFileSize = (n) => {
|
|
|
6946
7020
|
};
|
|
6947
7021
|
var Preview = (props) => {
|
|
6948
7022
|
const { files, uploaded, onDelete } = props;
|
|
6949
|
-
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(
|
|
6950
7024
|
Typography_default,
|
|
6951
7025
|
{
|
|
6952
7026
|
level: "body-sm",
|
|
@@ -6958,7 +7032,7 @@ var Preview = (props) => {
|
|
|
6958
7032
|
}
|
|
6959
7033
|
},
|
|
6960
7034
|
file.name
|
|
6961
|
-
), !!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))))));
|
|
6962
7036
|
};
|
|
6963
7037
|
var UploaderRoot = (0, import_joy59.styled)(Stack_default, {
|
|
6964
7038
|
name: "Uploader",
|
|
@@ -7001,7 +7075,7 @@ var UploaderIcon = (0, import_joy59.styled)(import_CloudUploadRounded.default, {
|
|
|
7001
7075
|
}
|
|
7002
7076
|
})
|
|
7003
7077
|
);
|
|
7004
|
-
var Uploader =
|
|
7078
|
+
var Uploader = import_react49.default.memo((props) => {
|
|
7005
7079
|
const {
|
|
7006
7080
|
accept,
|
|
7007
7081
|
minCount,
|
|
@@ -7017,14 +7091,14 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7017
7091
|
error: errorProp,
|
|
7018
7092
|
helperText: helperTextProp
|
|
7019
7093
|
} = props;
|
|
7020
|
-
const dropZoneRef = (0,
|
|
7021
|
-
const inputRef = (0,
|
|
7022
|
-
const [errorText, setErrorText] = (0,
|
|
7023
|
-
const [files, setFiles] = (0,
|
|
7024
|
-
const [uploaded, setUploaded] = (0,
|
|
7025
|
-
const [previewState, setPreviewState] = (0,
|
|
7026
|
-
const accepts = (0,
|
|
7027
|
-
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)(
|
|
7028
7102
|
() => accepts.flatMap((type) => {
|
|
7029
7103
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
7030
7104
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -7033,7 +7107,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7033
7107
|
}),
|
|
7034
7108
|
[accepts]
|
|
7035
7109
|
);
|
|
7036
|
-
const helperText = (0,
|
|
7110
|
+
const helperText = (0, import_react49.useMemo)(() => {
|
|
7037
7111
|
if (helperTextProp) {
|
|
7038
7112
|
return helperTextProp;
|
|
7039
7113
|
}
|
|
@@ -7063,12 +7137,12 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7063
7137
|
}
|
|
7064
7138
|
return helperTexts.join(", ");
|
|
7065
7139
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
7066
|
-
const error = (0,
|
|
7067
|
-
const showDropZone = (0,
|
|
7140
|
+
const error = (0, import_react49.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
7141
|
+
const showDropZone = (0, import_react49.useMemo)(
|
|
7068
7142
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
7069
7143
|
[files, maxCount, uploaded]
|
|
7070
7144
|
);
|
|
7071
|
-
const addFiles = (0,
|
|
7145
|
+
const addFiles = (0, import_react49.useCallback)(
|
|
7072
7146
|
(uploads) => {
|
|
7073
7147
|
try {
|
|
7074
7148
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -7113,7 +7187,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7113
7187
|
},
|
|
7114
7188
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
7115
7189
|
);
|
|
7116
|
-
(0,
|
|
7190
|
+
(0, import_react49.useEffect)(() => {
|
|
7117
7191
|
if (!dropZoneRef.current || disabled) {
|
|
7118
7192
|
return;
|
|
7119
7193
|
}
|
|
@@ -7141,7 +7215,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7141
7215
|
})
|
|
7142
7216
|
);
|
|
7143
7217
|
}, [disabled, addFiles]);
|
|
7144
|
-
(0,
|
|
7218
|
+
(0, import_react49.useEffect)(() => {
|
|
7145
7219
|
if (inputRef.current && minCount) {
|
|
7146
7220
|
if (files.length < minCount) {
|
|
7147
7221
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -7150,14 +7224,14 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7150
7224
|
}
|
|
7151
7225
|
}
|
|
7152
7226
|
}, [inputRef, files, minCount]);
|
|
7153
|
-
const handleFileChanged = (0,
|
|
7227
|
+
const handleFileChanged = (0, import_react49.useCallback)(
|
|
7154
7228
|
(event) => {
|
|
7155
7229
|
const files2 = Array.from(event.target.files || []);
|
|
7156
7230
|
addFiles(files2);
|
|
7157
7231
|
},
|
|
7158
7232
|
[addFiles]
|
|
7159
7233
|
);
|
|
7160
|
-
const handleDeleteFile = (0,
|
|
7234
|
+
const handleDeleteFile = (0, import_react49.useCallback)(
|
|
7161
7235
|
(deletedFile) => {
|
|
7162
7236
|
if (deletedFile instanceof File) {
|
|
7163
7237
|
setFiles((current) => {
|
|
@@ -7177,10 +7251,10 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7177
7251
|
},
|
|
7178
7252
|
[name, onChange, onDelete]
|
|
7179
7253
|
);
|
|
7180
|
-
const handleUploaderButtonClick = (0,
|
|
7254
|
+
const handleUploaderButtonClick = (0, import_react49.useCallback)(() => {
|
|
7181
7255
|
inputRef.current?.click();
|
|
7182
7256
|
}, []);
|
|
7183
|
-
const uploader = /* @__PURE__ */
|
|
7257
|
+
const uploader = /* @__PURE__ */ import_react49.default.createElement(
|
|
7184
7258
|
FileDropZone,
|
|
7185
7259
|
{
|
|
7186
7260
|
state: previewState,
|
|
@@ -7189,8 +7263,8 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7189
7263
|
ref: dropZoneRef,
|
|
7190
7264
|
onClick: handleUploaderButtonClick
|
|
7191
7265
|
},
|
|
7192
|
-
/* @__PURE__ */
|
|
7193
|
-
/* @__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(
|
|
7194
7268
|
VisuallyHiddenInput,
|
|
7195
7269
|
{
|
|
7196
7270
|
disabled,
|
|
@@ -7213,7 +7287,7 @@ var Uploader = import_react48.default.memo((props) => {
|
|
|
7213
7287
|
}
|
|
7214
7288
|
)
|
|
7215
7289
|
);
|
|
7216
|
-
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 }));
|
|
7217
7291
|
});
|
|
7218
7292
|
Uploader.displayName = "Uploader";
|
|
7219
7293
|
|
|
@@ -7221,9 +7295,12 @@ Uploader.displayName = "Uploader";
|
|
|
7221
7295
|
var import_joy60 = require("@mui/joy");
|
|
7222
7296
|
|
|
7223
7297
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
7224
|
-
var
|
|
7298
|
+
var import_react50 = __toESM(require("react"));
|
|
7225
7299
|
var import_joy61 = require("@mui/joy");
|
|
7226
|
-
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) {
|
|
7227
7304
|
const {
|
|
7228
7305
|
size,
|
|
7229
7306
|
icon,
|
|
@@ -7234,8 +7311,10 @@ function IconMenuButton(props) {
|
|
|
7234
7311
|
variant = "plain",
|
|
7235
7312
|
placement = "bottom"
|
|
7236
7313
|
} = props;
|
|
7314
|
+
const { ref: buttonComponentRef, ...buttonComponentProps } = props.buttonComponentProps ?? {};
|
|
7315
|
+
const mergedButtonRef = useMergedRef(buttonComponentRef, ref);
|
|
7237
7316
|
if (!items.length) {
|
|
7238
|
-
return /* @__PURE__ */
|
|
7317
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
7239
7318
|
import_joy61.IconButton,
|
|
7240
7319
|
{
|
|
7241
7320
|
component: props.buttonComponent ?? "button",
|
|
@@ -7244,15 +7323,16 @@ function IconMenuButton(props) {
|
|
|
7244
7323
|
color,
|
|
7245
7324
|
disabled,
|
|
7246
7325
|
loading,
|
|
7247
|
-
...
|
|
7326
|
+
...buttonComponentProps,
|
|
7327
|
+
ref: mergedButtonRef
|
|
7248
7328
|
},
|
|
7249
7329
|
icon
|
|
7250
7330
|
);
|
|
7251
7331
|
}
|
|
7252
|
-
return /* @__PURE__ */
|
|
7332
|
+
return /* @__PURE__ */ import_react50.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react50.default.createElement(
|
|
7253
7333
|
import_joy61.MenuButton,
|
|
7254
7334
|
{
|
|
7255
|
-
slots: { root:
|
|
7335
|
+
slots: { root: MenuButtonRootSlot },
|
|
7256
7336
|
slotProps: {
|
|
7257
7337
|
root: {
|
|
7258
7338
|
component: props.buttonComponent ?? "button",
|
|
@@ -7261,24 +7341,27 @@ function IconMenuButton(props) {
|
|
|
7261
7341
|
color,
|
|
7262
7342
|
disabled,
|
|
7263
7343
|
loading,
|
|
7264
|
-
...
|
|
7344
|
+
...buttonComponentProps,
|
|
7345
|
+
// Joy의 useSlot이 내부 ref와 이 ref를 합쳐준다. 위 no-items 분기와 같은 경로로 ref를 넘긴다.
|
|
7346
|
+
ref: mergedButtonRef
|
|
7265
7347
|
}
|
|
7266
7348
|
}
|
|
7267
7349
|
},
|
|
7268
7350
|
icon
|
|
7269
|
-
), /* @__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))));
|
|
7270
7352
|
}
|
|
7353
|
+
var IconMenuButton = import_react50.default.forwardRef(IconMenuButtonInner);
|
|
7271
7354
|
IconMenuButton.displayName = "IconMenuButton";
|
|
7272
7355
|
|
|
7273
7356
|
// src/components/Markdown/Markdown.tsx
|
|
7274
|
-
var
|
|
7357
|
+
var import_react51 = __toESM(require("react"));
|
|
7275
7358
|
var import_joy62 = require("@mui/joy");
|
|
7276
7359
|
var import_joy63 = require("@mui/joy");
|
|
7277
7360
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
7278
|
-
var LazyReactMarkdown = (0,
|
|
7361
|
+
var LazyReactMarkdown = (0, import_react51.lazy)(() => import("react-markdown"));
|
|
7279
7362
|
var Markdown = (props) => {
|
|
7280
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
7281
|
-
(0,
|
|
7363
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react51.useState)(null);
|
|
7364
|
+
(0, import_react51.useEffect)(() => {
|
|
7282
7365
|
const loadRehypeAccent = async () => {
|
|
7283
7366
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
7284
7367
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -7300,8 +7383,8 @@ var Markdown = (props) => {
|
|
|
7300
7383
|
if (!rehypeAccent2) {
|
|
7301
7384
|
return null;
|
|
7302
7385
|
}
|
|
7303
|
-
return /* @__PURE__ */
|
|
7304
|
-
|
|
7386
|
+
return /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react51.default.createElement(
|
|
7387
|
+
import_react51.Suspense,
|
|
7305
7388
|
{
|
|
7306
7389
|
fallback: (
|
|
7307
7390
|
// While in the fallback state, prevent browser auto-translation (e.g. Chrome/Google Translate)
|
|
@@ -7309,10 +7392,10 @@ var Markdown = (props) => {
|
|
|
7309
7392
|
// swaps the fallback for the real content via insertBefore; if the browser has mutated the DOM
|
|
7310
7393
|
// in the meantime, the reference node's parent changes and React throws a DOMException
|
|
7311
7394
|
// ("Failed to execute 'insertBefore' on 'Node'"), crashing the subtree. (cf. facebook/react#11538)
|
|
7312
|
-
fallback || /* @__PURE__ */
|
|
7395
|
+
fallback || /* @__PURE__ */ import_react51.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react51.default.createElement(import_joy62.Skeleton, null, content || ""))
|
|
7313
7396
|
)
|
|
7314
7397
|
},
|
|
7315
|
-
/* @__PURE__ */
|
|
7398
|
+
/* @__PURE__ */ import_react51.default.createElement(
|
|
7316
7399
|
LazyReactMarkdown,
|
|
7317
7400
|
{
|
|
7318
7401
|
...markdownOptions,
|
|
@@ -7320,17 +7403,17 @@ var Markdown = (props) => {
|
|
|
7320
7403
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
7321
7404
|
remarkPlugins: [import_remark_gfm.default],
|
|
7322
7405
|
components: {
|
|
7323
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
7324
|
-
hr: () => /* @__PURE__ */
|
|
7325
|
-
b: ({ children }) => /* @__PURE__ */
|
|
7326
|
-
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),
|
|
7327
7410
|
// Table components
|
|
7328
|
-
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)),
|
|
7329
7412
|
// Code components
|
|
7330
7413
|
code: ({ children, className }) => {
|
|
7331
7414
|
const isBlock = className?.startsWith("language-");
|
|
7332
7415
|
if (isBlock) {
|
|
7333
|
-
return /* @__PURE__ */
|
|
7416
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
7334
7417
|
Typography,
|
|
7335
7418
|
{
|
|
7336
7419
|
component: "code",
|
|
@@ -7344,7 +7427,7 @@ var Markdown = (props) => {
|
|
|
7344
7427
|
children
|
|
7345
7428
|
);
|
|
7346
7429
|
}
|
|
7347
|
-
return /* @__PURE__ */
|
|
7430
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
7348
7431
|
Typography,
|
|
7349
7432
|
{
|
|
7350
7433
|
component: "code",
|
|
@@ -7359,7 +7442,7 @@ var Markdown = (props) => {
|
|
|
7359
7442
|
children
|
|
7360
7443
|
);
|
|
7361
7444
|
},
|
|
7362
|
-
pre: ({ children }) => /* @__PURE__ */
|
|
7445
|
+
pre: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
7363
7446
|
Sheet,
|
|
7364
7447
|
{
|
|
7365
7448
|
variant: "soft",
|
|
@@ -7377,12 +7460,12 @@ var Markdown = (props) => {
|
|
|
7377
7460
|
// Task list checkbox
|
|
7378
7461
|
input: ({ checked, type }) => {
|
|
7379
7462
|
if (type === "checkbox") {
|
|
7380
|
-
return /* @__PURE__ */
|
|
7463
|
+
return /* @__PURE__ */ import_react51.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
|
|
7381
7464
|
}
|
|
7382
|
-
return /* @__PURE__ */
|
|
7465
|
+
return /* @__PURE__ */ import_react51.default.createElement("input", { checked, type });
|
|
7383
7466
|
},
|
|
7384
7467
|
// Blockquote
|
|
7385
|
-
blockquote: ({ children }) => /* @__PURE__ */
|
|
7468
|
+
blockquote: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
7386
7469
|
Sheet,
|
|
7387
7470
|
{
|
|
7388
7471
|
variant: "soft",
|
|
@@ -7391,12 +7474,12 @@ var Markdown = (props) => {
|
|
|
7391
7474
|
children
|
|
7392
7475
|
),
|
|
7393
7476
|
// Image
|
|
7394
|
-
img: ({ src, alt }) => /* @__PURE__ */
|
|
7477
|
+
img: ({ src, alt }) => /* @__PURE__ */ import_react51.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
|
|
7395
7478
|
// Text style components
|
|
7396
|
-
em: ({ children }) => /* @__PURE__ */
|
|
7397
|
-
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),
|
|
7398
7481
|
// Span for accent color (from rehype-accent plugin)
|
|
7399
|
-
span: ({ children, node }) => /* @__PURE__ */
|
|
7482
|
+
span: ({ children, node }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
|
|
7400
7483
|
...markdownOptions?.components
|
|
7401
7484
|
}
|
|
7402
7485
|
}
|
|
@@ -7406,7 +7489,7 @@ var Markdown = (props) => {
|
|
|
7406
7489
|
Markdown.displayName = "Markdown";
|
|
7407
7490
|
|
|
7408
7491
|
// src/components/MenuButton/MenuButton.tsx
|
|
7409
|
-
var
|
|
7492
|
+
var import_react52 = __toESM(require("react"));
|
|
7410
7493
|
var import_joy64 = require("@mui/joy");
|
|
7411
7494
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
7412
7495
|
function MenuButton2(props) {
|
|
@@ -7424,7 +7507,7 @@ function MenuButton2(props) {
|
|
|
7424
7507
|
placement = "bottom"
|
|
7425
7508
|
} = props;
|
|
7426
7509
|
if (!items.length) {
|
|
7427
|
-
return /* @__PURE__ */
|
|
7510
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
7428
7511
|
import_joy64.Button,
|
|
7429
7512
|
{
|
|
7430
7513
|
component: props.buttonComponent ?? "button",
|
|
@@ -7435,12 +7518,12 @@ function MenuButton2(props) {
|
|
|
7435
7518
|
loading,
|
|
7436
7519
|
startDecorator,
|
|
7437
7520
|
...props.buttonComponentProps ?? {},
|
|
7438
|
-
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)
|
|
7439
7522
|
},
|
|
7440
7523
|
buttonText
|
|
7441
7524
|
);
|
|
7442
7525
|
}
|
|
7443
|
-
return /* @__PURE__ */
|
|
7526
|
+
return /* @__PURE__ */ import_react52.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react52.default.createElement(
|
|
7444
7527
|
import_joy64.MenuButton,
|
|
7445
7528
|
{
|
|
7446
7529
|
component: props.buttonComponent ?? "button",
|
|
@@ -7451,15 +7534,15 @@ function MenuButton2(props) {
|
|
|
7451
7534
|
loading,
|
|
7452
7535
|
startDecorator,
|
|
7453
7536
|
...props.buttonComponentProps ?? {},
|
|
7454
|
-
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)
|
|
7455
7538
|
},
|
|
7456
7539
|
buttonText
|
|
7457
|
-
), /* @__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))));
|
|
7458
7541
|
}
|
|
7459
7542
|
MenuButton2.displayName = "MenuButton";
|
|
7460
7543
|
|
|
7461
7544
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
7462
|
-
var
|
|
7545
|
+
var import_react53 = __toESM(require("react"));
|
|
7463
7546
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
7464
7547
|
var import_joy65 = require("@mui/joy");
|
|
7465
7548
|
var import_base6 = require("@mui/base");
|
|
@@ -7515,7 +7598,7 @@ function parseDate4(dateString, format) {
|
|
|
7515
7598
|
const result = new Date(year, month, day);
|
|
7516
7599
|
return result;
|
|
7517
7600
|
}
|
|
7518
|
-
var MonthPicker = (0,
|
|
7601
|
+
var MonthPicker = (0, import_react53.forwardRef)((inProps, ref) => {
|
|
7519
7602
|
const props = (0, import_joy65.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
7520
7603
|
const {
|
|
7521
7604
|
onChange,
|
|
@@ -7542,18 +7625,18 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7542
7625
|
locale,
|
|
7543
7626
|
...innerProps
|
|
7544
7627
|
} = props;
|
|
7545
|
-
const innerRef = (0,
|
|
7546
|
-
const buttonRef = (0,
|
|
7628
|
+
const innerRef = (0, import_react53.useRef)(null);
|
|
7629
|
+
const buttonRef = (0, import_react53.useRef)(null);
|
|
7547
7630
|
const [rawValue, setValue, isControlled] = useControlledState(
|
|
7548
7631
|
props.value,
|
|
7549
7632
|
props.defaultValue ?? null,
|
|
7550
|
-
(0,
|
|
7633
|
+
(0, import_react53.useCallback)(
|
|
7551
7634
|
(value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
|
|
7552
7635
|
[props.name, onChange]
|
|
7553
7636
|
)
|
|
7554
7637
|
);
|
|
7555
7638
|
const value = rawValue ?? "";
|
|
7556
|
-
const getFormattedDisplayValue = (0,
|
|
7639
|
+
const getFormattedDisplayValue = (0, import_react53.useCallback)(
|
|
7557
7640
|
(inputValue) => {
|
|
7558
7641
|
if (!inputValue) return "";
|
|
7559
7642
|
try {
|
|
@@ -7564,19 +7647,19 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7564
7647
|
},
|
|
7565
7648
|
[format, displayFormat, locale]
|
|
7566
7649
|
);
|
|
7567
|
-
const [displayValue, setDisplayValue] = (0,
|
|
7568
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
7650
|
+
const [displayValue, setDisplayValue] = (0, import_react53.useState)(() => getFormattedDisplayValue(value));
|
|
7651
|
+
const [anchorEl, setAnchorEl] = (0, import_react53.useState)(null);
|
|
7569
7652
|
const open = Boolean(anchorEl);
|
|
7570
|
-
(0,
|
|
7653
|
+
(0, import_react53.useEffect)(() => {
|
|
7571
7654
|
if (!anchorEl) {
|
|
7572
7655
|
innerRef.current?.blur();
|
|
7573
7656
|
}
|
|
7574
7657
|
}, [anchorEl, innerRef]);
|
|
7575
|
-
(0,
|
|
7576
|
-
(0,
|
|
7658
|
+
(0, import_react53.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
7659
|
+
(0, import_react53.useEffect)(() => {
|
|
7577
7660
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
7578
7661
|
}, [value, getFormattedDisplayValue]);
|
|
7579
|
-
const handleChange = (0,
|
|
7662
|
+
const handleChange = (0, import_react53.useCallback)(
|
|
7580
7663
|
(event) => {
|
|
7581
7664
|
const newValue = event.target.value;
|
|
7582
7665
|
setValue(newValue);
|
|
@@ -7586,21 +7669,21 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7586
7669
|
},
|
|
7587
7670
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
7588
7671
|
);
|
|
7589
|
-
const handleCalendarToggle = (0,
|
|
7672
|
+
const handleCalendarToggle = (0, import_react53.useCallback)(
|
|
7590
7673
|
(event) => {
|
|
7591
7674
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
7592
7675
|
innerRef.current?.focus();
|
|
7593
7676
|
},
|
|
7594
7677
|
[anchorEl, setAnchorEl, innerRef]
|
|
7595
7678
|
);
|
|
7596
|
-
const handleInputMouseDown = (0,
|
|
7679
|
+
const handleInputMouseDown = (0, import_react53.useCallback)(
|
|
7597
7680
|
(event) => {
|
|
7598
7681
|
event.preventDefault();
|
|
7599
7682
|
buttonRef.current?.focus();
|
|
7600
7683
|
},
|
|
7601
7684
|
[buttonRef]
|
|
7602
7685
|
);
|
|
7603
|
-
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(
|
|
7604
7687
|
Input_default,
|
|
7605
7688
|
{
|
|
7606
7689
|
...innerProps,
|
|
@@ -7630,7 +7713,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7630
7713
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
7631
7714
|
fontFamily: "monospace"
|
|
7632
7715
|
},
|
|
7633
|
-
endDecorator: /* @__PURE__ */
|
|
7716
|
+
endDecorator: /* @__PURE__ */ import_react53.default.createElement(
|
|
7634
7717
|
IconButton_default,
|
|
7635
7718
|
{
|
|
7636
7719
|
ref: buttonRef,
|
|
@@ -7642,12 +7725,12 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7642
7725
|
"aria-expanded": open,
|
|
7643
7726
|
disabled
|
|
7644
7727
|
},
|
|
7645
|
-
/* @__PURE__ */
|
|
7728
|
+
/* @__PURE__ */ import_react53.default.createElement(import_CalendarToday4.default, null)
|
|
7646
7729
|
),
|
|
7647
7730
|
label,
|
|
7648
7731
|
helperText
|
|
7649
7732
|
}
|
|
7650
|
-
), open && /* @__PURE__ */
|
|
7733
|
+
), open && /* @__PURE__ */ import_react53.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react53.default.createElement(
|
|
7651
7734
|
StyledPopper4,
|
|
7652
7735
|
{
|
|
7653
7736
|
id: "month-picker-popper",
|
|
@@ -7666,7 +7749,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7666
7749
|
"aria-label": "Calendar Tooltip",
|
|
7667
7750
|
"aria-expanded": open
|
|
7668
7751
|
},
|
|
7669
|
-
/* @__PURE__ */
|
|
7752
|
+
/* @__PURE__ */ import_react53.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react53.default.createElement(
|
|
7670
7753
|
Calendar_default,
|
|
7671
7754
|
{
|
|
7672
7755
|
view: "month",
|
|
@@ -7687,14 +7770,14 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7687
7770
|
disablePast,
|
|
7688
7771
|
locale
|
|
7689
7772
|
}
|
|
7690
|
-
), /* @__PURE__ */
|
|
7773
|
+
), /* @__PURE__ */ import_react53.default.createElement(
|
|
7691
7774
|
DialogActions_default,
|
|
7692
7775
|
{
|
|
7693
7776
|
sx: {
|
|
7694
7777
|
p: 1
|
|
7695
7778
|
}
|
|
7696
7779
|
},
|
|
7697
|
-
/* @__PURE__ */
|
|
7780
|
+
/* @__PURE__ */ import_react53.default.createElement(
|
|
7698
7781
|
Button_default,
|
|
7699
7782
|
{
|
|
7700
7783
|
size,
|
|
@@ -7717,7 +7800,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
|
|
|
7717
7800
|
});
|
|
7718
7801
|
|
|
7719
7802
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
7720
|
-
var
|
|
7803
|
+
var import_react54 = __toESM(require("react"));
|
|
7721
7804
|
var import_joy66 = require("@mui/joy");
|
|
7722
7805
|
var AccordionSummary2 = (0, import_joy66.styled)(import_joy66.AccordionSummary, {
|
|
7723
7806
|
name: "NavigationGroup",
|
|
@@ -7741,11 +7824,11 @@ var AccordionDetails2 = (0, import_joy66.styled)(import_joy66.AccordionDetails,
|
|
|
7741
7824
|
}));
|
|
7742
7825
|
function NavigationGroup(props) {
|
|
7743
7826
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
7744
|
-
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));
|
|
7745
7828
|
}
|
|
7746
7829
|
|
|
7747
7830
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
7748
|
-
var
|
|
7831
|
+
var import_react55 = __toESM(require("react"));
|
|
7749
7832
|
var import_joy67 = require("@mui/joy");
|
|
7750
7833
|
var ListItemButton = (0, import_joy67.styled)(import_joy67.ListItemButton, {
|
|
7751
7834
|
name: "NavigationItem",
|
|
@@ -7774,7 +7857,7 @@ function NavigationItem(props) {
|
|
|
7774
7857
|
const handleClick = () => {
|
|
7775
7858
|
onClick?.(id);
|
|
7776
7859
|
};
|
|
7777
|
-
return /* @__PURE__ */
|
|
7860
|
+
return /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItem, { ...rest }, /* @__PURE__ */ import_react55.default.createElement(
|
|
7778
7861
|
ListItemButton,
|
|
7779
7862
|
{
|
|
7780
7863
|
level,
|
|
@@ -7783,21 +7866,21 @@ function NavigationItem(props) {
|
|
|
7783
7866
|
"aria-current": selected,
|
|
7784
7867
|
onClick: handleClick
|
|
7785
7868
|
},
|
|
7786
|
-
startDecorator && /* @__PURE__ */
|
|
7869
|
+
startDecorator && /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItemDecorator, null, startDecorator),
|
|
7787
7870
|
children
|
|
7788
7871
|
));
|
|
7789
7872
|
}
|
|
7790
7873
|
|
|
7791
7874
|
// src/components/Navigator/Navigator.tsx
|
|
7792
|
-
var
|
|
7875
|
+
var import_react56 = __toESM(require("react"));
|
|
7793
7876
|
function Navigator(props) {
|
|
7794
7877
|
const { items, level = 0, onSelect } = props;
|
|
7795
7878
|
const handleItemClick = (id) => {
|
|
7796
7879
|
onSelect?.(id);
|
|
7797
7880
|
};
|
|
7798
|
-
return /* @__PURE__ */
|
|
7881
|
+
return /* @__PURE__ */ import_react56.default.createElement("div", null, items.map((item, index) => {
|
|
7799
7882
|
if (item.type === "item") {
|
|
7800
|
-
return /* @__PURE__ */
|
|
7883
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
7801
7884
|
NavigationItem,
|
|
7802
7885
|
{
|
|
7803
7886
|
key: item.id,
|
|
@@ -7810,7 +7893,7 @@ function Navigator(props) {
|
|
|
7810
7893
|
item.title
|
|
7811
7894
|
);
|
|
7812
7895
|
} else if (item.type === "group") {
|
|
7813
|
-
return /* @__PURE__ */
|
|
7896
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
7814
7897
|
NavigationGroup,
|
|
7815
7898
|
{
|
|
7816
7899
|
key: `${item.title}-${index}`,
|
|
@@ -7828,7 +7911,7 @@ function Navigator(props) {
|
|
|
7828
7911
|
Navigator.displayName = "Navigator";
|
|
7829
7912
|
|
|
7830
7913
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
7831
|
-
var
|
|
7914
|
+
var import_react57 = __toESM(require("react"));
|
|
7832
7915
|
var import_joy68 = require("@mui/joy");
|
|
7833
7916
|
var import_base7 = require("@mui/base");
|
|
7834
7917
|
var import_ArrowDropDown = __toESM(require("@mui/icons-material/ArrowDropDown"));
|
|
@@ -7838,9 +7921,9 @@ var StyledProfileCard = (0, import_joy68.styled)(import_joy3.Stack, {
|
|
|
7838
7921
|
})({});
|
|
7839
7922
|
function ProfileCard(props) {
|
|
7840
7923
|
const { children, chip, caption, size } = props;
|
|
7841
|
-
const captionLevel = (0,
|
|
7842
|
-
const nameLevel = (0,
|
|
7843
|
-
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));
|
|
7844
7927
|
}
|
|
7845
7928
|
ProfileCard.displayName = "ProfileCard";
|
|
7846
7929
|
var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton, {
|
|
@@ -7852,16 +7935,16 @@ var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton,
|
|
|
7852
7935
|
}));
|
|
7853
7936
|
function ProfileMenuButton(props) {
|
|
7854
7937
|
const { size = "sm", src, alt, children, getInitial, ...innerProps } = props;
|
|
7855
|
-
return /* @__PURE__ */
|
|
7938
|
+
return /* @__PURE__ */ import_react57.default.createElement(
|
|
7856
7939
|
StyledProfileMenuButton,
|
|
7857
7940
|
{
|
|
7858
7941
|
variant: "plain",
|
|
7859
7942
|
color: "neutral",
|
|
7860
7943
|
size,
|
|
7861
|
-
endDecorator: /* @__PURE__ */
|
|
7944
|
+
endDecorator: /* @__PURE__ */ import_react57.default.createElement(import_ArrowDropDown.default, null),
|
|
7862
7945
|
...innerProps
|
|
7863
7946
|
},
|
|
7864
|
-
/* @__PURE__ */
|
|
7947
|
+
/* @__PURE__ */ import_react57.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
7865
7948
|
);
|
|
7866
7949
|
}
|
|
7867
7950
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
@@ -7881,9 +7964,9 @@ function ProfileMenu(inProps) {
|
|
|
7881
7964
|
const [open, setOpen] = useControlledState(
|
|
7882
7965
|
_open,
|
|
7883
7966
|
defaultOpen ?? false,
|
|
7884
|
-
(0,
|
|
7967
|
+
(0, import_react57.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
|
|
7885
7968
|
);
|
|
7886
|
-
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(
|
|
7887
7970
|
ProfileMenuButton,
|
|
7888
7971
|
{
|
|
7889
7972
|
size,
|
|
@@ -7893,7 +7976,7 @@ function ProfileMenu(inProps) {
|
|
|
7893
7976
|
getInitial
|
|
7894
7977
|
},
|
|
7895
7978
|
profile.name
|
|
7896
|
-
), /* @__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(
|
|
7897
7980
|
MenuItem,
|
|
7898
7981
|
{
|
|
7899
7982
|
key: label,
|
|
@@ -7909,7 +7992,7 @@ function ProfileMenu(inProps) {
|
|
|
7909
7992
|
ProfileMenu.displayName = "ProfileMenu";
|
|
7910
7993
|
|
|
7911
7994
|
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
7912
|
-
var
|
|
7995
|
+
var import_react58 = __toESM(require("react"));
|
|
7913
7996
|
var import_joy69 = require("@mui/joy");
|
|
7914
7997
|
var RadioTileGroupRoot = (0, import_joy69.styled)(RadioGroup, {
|
|
7915
7998
|
name: "RadioTileGroup",
|
|
@@ -7997,7 +8080,7 @@ function RadioTileGroup(props) {
|
|
|
7997
8080
|
error,
|
|
7998
8081
|
required
|
|
7999
8082
|
} = props;
|
|
8000
|
-
const radioGroup = /* @__PURE__ */
|
|
8083
|
+
const radioGroup = /* @__PURE__ */ import_react58.default.createElement(
|
|
8001
8084
|
RadioTileGroupRoot,
|
|
8002
8085
|
{
|
|
8003
8086
|
overlay: true,
|
|
@@ -8008,7 +8091,7 @@ function RadioTileGroup(props) {
|
|
|
8008
8091
|
flex,
|
|
8009
8092
|
columns
|
|
8010
8093
|
},
|
|
8011
|
-
options.map((option) => /* @__PURE__ */
|
|
8094
|
+
options.map((option) => /* @__PURE__ */ import_react58.default.createElement(
|
|
8012
8095
|
RadioTileSheet,
|
|
8013
8096
|
{
|
|
8014
8097
|
key: option.value,
|
|
@@ -8018,7 +8101,7 @@ function RadioTileGroup(props) {
|
|
|
8018
8101
|
flex,
|
|
8019
8102
|
textAlign
|
|
8020
8103
|
},
|
|
8021
|
-
/* @__PURE__ */
|
|
8104
|
+
/* @__PURE__ */ import_react58.default.createElement(
|
|
8022
8105
|
Radio,
|
|
8023
8106
|
{
|
|
8024
8107
|
id: `${option.value}`,
|
|
@@ -8047,7 +8130,7 @@ function RadioTileGroup(props) {
|
|
|
8047
8130
|
}
|
|
8048
8131
|
}
|
|
8049
8132
|
),
|
|
8050
|
-
option.startDecorator && /* @__PURE__ */
|
|
8133
|
+
option.startDecorator && /* @__PURE__ */ import_react58.default.createElement(
|
|
8051
8134
|
Box_default,
|
|
8052
8135
|
{
|
|
8053
8136
|
sx: {
|
|
@@ -8068,15 +8151,15 @@ function RadioTileGroup(props) {
|
|
|
8068
8151
|
)
|
|
8069
8152
|
))
|
|
8070
8153
|
);
|
|
8071
|
-
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));
|
|
8072
8155
|
}
|
|
8073
8156
|
RadioTileGroup.displayName = "RadioTileGroup";
|
|
8074
8157
|
|
|
8075
8158
|
// src/components/RadioList/RadioList.tsx
|
|
8076
|
-
var
|
|
8159
|
+
var import_react59 = __toESM(require("react"));
|
|
8077
8160
|
function RadioList(props) {
|
|
8078
8161
|
const { items, ...innerProps } = props;
|
|
8079
|
-
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 })));
|
|
8080
8163
|
}
|
|
8081
8164
|
RadioList.displayName = "RadioList";
|
|
8082
8165
|
|
|
@@ -8167,7 +8250,7 @@ var SearchBar = React56.forwardRef(function SearchBar2(inProps, ref) {
|
|
|
8167
8250
|
SearchBar.displayName = "SearchBar";
|
|
8168
8251
|
|
|
8169
8252
|
// src/components/Stepper/Stepper.tsx
|
|
8170
|
-
var
|
|
8253
|
+
var import_react60 = __toESM(require("react"));
|
|
8171
8254
|
var import_joy70 = require("@mui/joy");
|
|
8172
8255
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
8173
8256
|
var import_framer_motion27 = require("framer-motion");
|
|
@@ -8196,7 +8279,7 @@ function Stepper(props) {
|
|
|
8196
8279
|
stepOrientation = "horizontal"
|
|
8197
8280
|
} = props;
|
|
8198
8281
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
8199
|
-
return /* @__PURE__ */
|
|
8282
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
8200
8283
|
MotionStepper,
|
|
8201
8284
|
{
|
|
8202
8285
|
orientation,
|
|
@@ -8235,23 +8318,23 @@ function Stepper(props) {
|
|
|
8235
8318
|
const completed = activeStep > i + 1;
|
|
8236
8319
|
const disabled = activeStep < i + 1;
|
|
8237
8320
|
const hasContent = step.label || step.extraContent;
|
|
8238
|
-
return /* @__PURE__ */
|
|
8321
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
8239
8322
|
Step,
|
|
8240
8323
|
{
|
|
8241
8324
|
key: `step-${i}`,
|
|
8242
|
-
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),
|
|
8243
8326
|
active,
|
|
8244
8327
|
completed,
|
|
8245
8328
|
disabled,
|
|
8246
8329
|
orientation: effectiveStepOrientation
|
|
8247
8330
|
},
|
|
8248
|
-
hasContent && /* @__PURE__ */
|
|
8331
|
+
hasContent && /* @__PURE__ */ import_react60.default.createElement(
|
|
8249
8332
|
Stack_default,
|
|
8250
8333
|
{
|
|
8251
8334
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
8252
8335
|
},
|
|
8253
|
-
step.label && /* @__PURE__ */
|
|
8254
|
-
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)
|
|
8255
8338
|
)
|
|
8256
8339
|
);
|
|
8257
8340
|
})
|
|
@@ -8260,7 +8343,7 @@ function Stepper(props) {
|
|
|
8260
8343
|
Stepper.displayName = "Stepper";
|
|
8261
8344
|
|
|
8262
8345
|
// src/components/Switch/Switch.tsx
|
|
8263
|
-
var
|
|
8346
|
+
var import_react61 = __toESM(require("react"));
|
|
8264
8347
|
var import_joy71 = require("@mui/joy");
|
|
8265
8348
|
var import_framer_motion28 = require("framer-motion");
|
|
8266
8349
|
var MotionSwitch = (0, import_framer_motion28.motion)(import_joy71.Switch);
|
|
@@ -8282,14 +8365,14 @@ var StyledThumb = (0, import_joy71.styled)(import_framer_motion28.motion.div)({
|
|
|
8282
8365
|
right: "var(--Switch-thumbOffset)"
|
|
8283
8366
|
}
|
|
8284
8367
|
});
|
|
8285
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
8368
|
+
var Thumb = (props) => /* @__PURE__ */ import_react61.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
8286
8369
|
var spring = {
|
|
8287
8370
|
type: "spring",
|
|
8288
8371
|
stiffness: 700,
|
|
8289
8372
|
damping: 30
|
|
8290
8373
|
};
|
|
8291
8374
|
var Switch = (props) => {
|
|
8292
|
-
return /* @__PURE__ */
|
|
8375
|
+
return /* @__PURE__ */ import_react61.default.createElement(
|
|
8293
8376
|
MotionSwitch,
|
|
8294
8377
|
{
|
|
8295
8378
|
...props,
|
|
@@ -8303,7 +8386,7 @@ var Switch = (props) => {
|
|
|
8303
8386
|
Switch.displayName = "Switch";
|
|
8304
8387
|
|
|
8305
8388
|
// src/components/Tabs/Tabs.tsx
|
|
8306
|
-
var
|
|
8389
|
+
var import_react62 = __toESM(require("react"));
|
|
8307
8390
|
var import_joy72 = require("@mui/joy");
|
|
8308
8391
|
var StyledTabs = (0, import_joy72.styled)(import_joy72.Tabs)(({ theme }) => ({
|
|
8309
8392
|
backgroundColor: theme.palette.background.body
|
|
@@ -8319,15 +8402,15 @@ var StyledTab = (0, import_joy72.styled)(import_joy72.Tab)(({ theme }) => ({
|
|
|
8319
8402
|
backgroundColor: theme.palette.background.body
|
|
8320
8403
|
}
|
|
8321
8404
|
}));
|
|
8322
|
-
var Tab = (0,
|
|
8323
|
-
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);
|
|
8324
8407
|
});
|
|
8325
8408
|
Tab.displayName = "Tab";
|
|
8326
8409
|
var TabList = import_joy72.TabList;
|
|
8327
8410
|
var TabPanel = import_joy72.TabPanel;
|
|
8328
8411
|
|
|
8329
8412
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
8330
|
-
var
|
|
8413
|
+
var import_react63 = __toESM(require("react"));
|
|
8331
8414
|
var import_joy73 = require("@mui/joy");
|
|
8332
8415
|
var colorScheme = {
|
|
8333
8416
|
palette: {
|
|
@@ -8724,6 +8807,6 @@ var defaultTheme = (0, import_joy73.extendTheme)({
|
|
|
8724
8807
|
});
|
|
8725
8808
|
function ThemeProvider(props) {
|
|
8726
8809
|
const theme = props.theme || defaultTheme;
|
|
8727
|
-
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));
|
|
8728
8811
|
}
|
|
8729
8812
|
ThemeProvider.displayName = "ThemeProvider";
|