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