@unifiedsoftware/react-ui 1.0.13 → 1.0.15
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/index.d.mts +104 -1
- package/dist/index.d.ts +104 -1
- package/dist/index.js +703 -123
- package/dist/index.mjs +672 -87
- package/package.json +3 -1
package/dist/index.js
CHANGED
|
@@ -67,6 +67,7 @@ __export(src_exports, {
|
|
|
67
67
|
CollapseContent: () => CollapseContent_default,
|
|
68
68
|
CollapseContext: () => CollapseContext_default,
|
|
69
69
|
CollapseTrigger: () => CollapseTrigger_default,
|
|
70
|
+
Drawer: () => Drawer_default,
|
|
70
71
|
Icon: () => Icon_default,
|
|
71
72
|
Menu: () => Menu_default,
|
|
72
73
|
MenuContext: () => MenuContext_default,
|
|
@@ -74,7 +75,9 @@ __export(src_exports, {
|
|
|
74
75
|
MenuItem: () => MenuItem_default,
|
|
75
76
|
MenuSubmenu: () => MenuSubmenu_default,
|
|
76
77
|
MenuValueContext: () => MenuValueContext_default,
|
|
78
|
+
MultiSelect: () => MultiSelect_default,
|
|
77
79
|
Portal: () => Portal_default,
|
|
80
|
+
Select: () => Select_default,
|
|
78
81
|
Tab: () => Tab,
|
|
79
82
|
Tabs: () => Tabs,
|
|
80
83
|
Toolbar: () => Toolbar_default,
|
|
@@ -488,15 +491,47 @@ var CollapseTrigger = (0, import_react13.forwardRef)(({ children }, ref) => {
|
|
|
488
491
|
});
|
|
489
492
|
var CollapseTrigger_default = CollapseTrigger;
|
|
490
493
|
|
|
494
|
+
// src/components/Drawer/Drawer.tsx
|
|
495
|
+
var import_clsx8 = __toESM(require("clsx"));
|
|
496
|
+
var import_react14 = require("react");
|
|
497
|
+
var import_react_merge_refs2 = require("react-merge-refs");
|
|
498
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
499
|
+
var Drawer = (0, import_react14.forwardRef)((props, ref) => {
|
|
500
|
+
const { children, className, isOpen, size = "md", position = "left", onClose } = props;
|
|
501
|
+
const nodeRef = (0, import_react14.useRef)(null);
|
|
502
|
+
const handleClose = () => {
|
|
503
|
+
onClose();
|
|
504
|
+
};
|
|
505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Backdrop_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Transition_default, { nodeRef, isOpen, name: `${PREFIX_CLS}drawer`, enter: 600, leave: 300, unmountOnExit: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
506
|
+
"div",
|
|
507
|
+
{
|
|
508
|
+
ref: (0, import_react_merge_refs2.mergeRefs)([ref, nodeRef]),
|
|
509
|
+
className: (0, import_clsx8.default)(
|
|
510
|
+
`${PREFIX_CLS}drawer`,
|
|
511
|
+
{
|
|
512
|
+
[`${PREFIX_CLS}drawer--${size}`]: size,
|
|
513
|
+
[`${PREFIX_CLS}drawer--${position}`]: position
|
|
514
|
+
},
|
|
515
|
+
className
|
|
516
|
+
),
|
|
517
|
+
children: [
|
|
518
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: `${PREFIX_CLS}drawer__overlay` }),
|
|
519
|
+
children
|
|
520
|
+
]
|
|
521
|
+
}
|
|
522
|
+
) }) });
|
|
523
|
+
});
|
|
524
|
+
var Drawer_default = Drawer;
|
|
525
|
+
|
|
491
526
|
// src/components/Menu/Menu.tsx
|
|
492
|
-
var
|
|
493
|
-
var
|
|
527
|
+
var import_clsx12 = __toESM(require("clsx"));
|
|
528
|
+
var import_react20 = require("react");
|
|
494
529
|
|
|
495
530
|
// src/components/Menu/MenuContext.tsx
|
|
496
|
-
var
|
|
497
|
-
var MenuContext = (0,
|
|
531
|
+
var import_react15 = require("react");
|
|
532
|
+
var MenuContext = (0, import_react15.createContext)(null);
|
|
498
533
|
var useMenu = () => {
|
|
499
|
-
const context = (0,
|
|
534
|
+
const context = (0, import_react15.useContext)(MenuContext);
|
|
500
535
|
if (!context) {
|
|
501
536
|
throw new Error("`useMenu` must be used within a `<Menu />`");
|
|
502
537
|
}
|
|
@@ -505,18 +540,18 @@ var useMenu = () => {
|
|
|
505
540
|
var MenuContext_default = MenuContext;
|
|
506
541
|
|
|
507
542
|
// src/components/Menu/MenuGroup.tsx
|
|
508
|
-
var
|
|
509
|
-
var
|
|
543
|
+
var import_clsx11 = __toESM(require("clsx"));
|
|
544
|
+
var import_react19 = require("react");
|
|
510
545
|
|
|
511
546
|
// src/components/Menu/MenuItem.tsx
|
|
512
|
-
var
|
|
513
|
-
var
|
|
547
|
+
var import_clsx9 = __toESM(require("clsx"));
|
|
548
|
+
var import_react17 = require("react");
|
|
514
549
|
|
|
515
550
|
// src/components/Menu/MenuValueContext.tsx
|
|
516
|
-
var
|
|
517
|
-
var MenuValueContext = (0,
|
|
551
|
+
var import_react16 = require("react");
|
|
552
|
+
var MenuValueContext = (0, import_react16.createContext)([]);
|
|
518
553
|
var useMenuItemValue = () => {
|
|
519
|
-
const context = (0,
|
|
554
|
+
const context = (0, import_react16.useContext)(MenuValueContext);
|
|
520
555
|
if (!context) {
|
|
521
556
|
throw new Error("`useMenuValue` must be used within a `<MenuValueContext.Provider />`");
|
|
522
557
|
}
|
|
@@ -525,11 +560,11 @@ var useMenuItemValue = () => {
|
|
|
525
560
|
var MenuValueContext_default = MenuValueContext;
|
|
526
561
|
|
|
527
562
|
// src/components/Menu/MenuItem.tsx
|
|
528
|
-
var
|
|
529
|
-
var MenuItem = (0,
|
|
563
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
564
|
+
var MenuItem = (0, import_react17.forwardRef)((props, ref) => {
|
|
530
565
|
const _a = props, { as: Component = "div", className, style, value, title, icon, level = 1, disabled, onClick } = _a, rest = __objRest(_a, ["as", "className", "style", "value", "title", "icon", "level", "disabled", "onClick"]);
|
|
531
566
|
const { value: menuValue, originalValue, navMode, onChange, onOpen, onItemSelect } = useMenu();
|
|
532
|
-
const values = (0,
|
|
567
|
+
const values = (0, import_react17.useContext)(MenuValueContext_default);
|
|
533
568
|
const mergedValues = [...values, value];
|
|
534
569
|
const handleClick = (event) => {
|
|
535
570
|
if (value !== void 0) {
|
|
@@ -538,17 +573,17 @@ var MenuItem = (0, import_react16.forwardRef)((props, ref) => {
|
|
|
538
573
|
onClick == null ? void 0 : onClick(event);
|
|
539
574
|
onItemSelect == null ? void 0 : onItemSelect(props);
|
|
540
575
|
};
|
|
541
|
-
(0,
|
|
576
|
+
(0, import_react17.useEffect)(() => {
|
|
542
577
|
if (navMode === "automatic" && originalValue.length > 0 && originalValue[originalValue.length - 1] === value) {
|
|
543
578
|
onOpen(values);
|
|
544
579
|
onChange(mergedValues);
|
|
545
580
|
}
|
|
546
581
|
}, [value, originalValue, navMode]);
|
|
547
|
-
return /* @__PURE__ */ (0,
|
|
582
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
548
583
|
Component,
|
|
549
584
|
__spreadProps(__spreadValues({
|
|
550
585
|
ref,
|
|
551
|
-
className: (0,
|
|
586
|
+
className: (0, import_clsx9.default)(
|
|
552
587
|
`${PREFIX_CLS}menu-item`,
|
|
553
588
|
{
|
|
554
589
|
[`${PREFIX_CLS}menu-item--selected`]: menuValue.includes(value),
|
|
@@ -562,9 +597,9 @@ var MenuItem = (0, import_react16.forwardRef)((props, ref) => {
|
|
|
562
597
|
onClick: handleClick
|
|
563
598
|
}, rest), {
|
|
564
599
|
children: [
|
|
565
|
-
/* @__PURE__ */ (0,
|
|
566
|
-
icon && /* @__PURE__ */ (0,
|
|
567
|
-
/* @__PURE__ */ (0,
|
|
600
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: `${PREFIX_CLS}overlay`, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: `${PREFIX_CLS}overlay__surface` }) }),
|
|
601
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: `${PREFIX_CLS}menu-item__icon`, children: icon }),
|
|
602
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: `${PREFIX_CLS}menu-item__content`, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: `${PREFIX_CLS}menu-item__title`, children: title }) })
|
|
568
603
|
]
|
|
569
604
|
})
|
|
570
605
|
);
|
|
@@ -573,8 +608,8 @@ MenuItem.displayName = "MenuItem";
|
|
|
573
608
|
var MenuItem_default = MenuItem;
|
|
574
609
|
|
|
575
610
|
// src/components/Menu/MenuSubmenu.tsx
|
|
576
|
-
var
|
|
577
|
-
var
|
|
611
|
+
var import_clsx10 = __toESM(require("clsx"));
|
|
612
|
+
var import_react18 = require("react");
|
|
578
613
|
|
|
579
614
|
// src/components/Menu/utils.ts
|
|
580
615
|
var getOpenValuesByPathname = (pathname) => {
|
|
@@ -600,7 +635,7 @@ var addOrRemoveValueInArray = (array, value) => {
|
|
|
600
635
|
};
|
|
601
636
|
|
|
602
637
|
// src/components/Menu/MenuSubmenu.tsx
|
|
603
|
-
var
|
|
638
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
604
639
|
var MenuSubmenu = (_a) => {
|
|
605
640
|
var _b = _a, {
|
|
606
641
|
children,
|
|
@@ -624,13 +659,13 @@ var MenuSubmenu = (_a) => {
|
|
|
624
659
|
"onClick"
|
|
625
660
|
]);
|
|
626
661
|
const { value: menuValue, openValues, expandMode, onOpen } = useMenu();
|
|
627
|
-
const values = (0,
|
|
662
|
+
const values = (0, import_react18.useContext)(MenuValueContext_default);
|
|
628
663
|
const isOpen = openValues.includes(value);
|
|
629
664
|
const mergedValues = [...values, value];
|
|
630
|
-
const content = (0,
|
|
665
|
+
const content = (0, import_react18.useMemo)(() => {
|
|
631
666
|
return items == null ? void 0 : items.map((_a2, index) => {
|
|
632
667
|
var _b2 = _a2, { type } = _b2, item = __objRest(_b2, ["type"]);
|
|
633
|
-
return type === "item" ? /* @__PURE__ */ (0,
|
|
668
|
+
return type === "item" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MenuItem_default, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index) : type === "submenu" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MenuSubmenu, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index) : type === "group" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MenuGroup_default, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MenuItem_default, __spreadValues({ level: level !== void 0 ? level + 1 : void 0 }, item), index);
|
|
634
669
|
});
|
|
635
670
|
}, [items]);
|
|
636
671
|
const handleClick = (event) => {
|
|
@@ -648,11 +683,11 @@ var MenuSubmenu = (_a) => {
|
|
|
648
683
|
}
|
|
649
684
|
onClick == null ? void 0 : onClick(event);
|
|
650
685
|
};
|
|
651
|
-
return /* @__PURE__ */ (0,
|
|
652
|
-
/* @__PURE__ */ (0,
|
|
686
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MenuValueContext_default.Provider, { value: mergedValues, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: (0, import_clsx10.default)(`${PREFIX_CLS}menu-submenu`), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Collapse_default, { isOpen, children: [
|
|
687
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CollapseTrigger_default, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
653
688
|
"div",
|
|
654
689
|
__spreadProps(__spreadValues({
|
|
655
|
-
className: (0,
|
|
690
|
+
className: (0, import_clsx10.default)(
|
|
656
691
|
`${PREFIX_CLS}menu-item`,
|
|
657
692
|
{
|
|
658
693
|
[`${PREFIX_CLS}menu-item--selected`]: menuValue.includes(value) || items && mergedValues.includes(menuValue)
|
|
@@ -665,17 +700,17 @@ var MenuSubmenu = (_a) => {
|
|
|
665
700
|
onClick: handleClick
|
|
666
701
|
}, rest), {
|
|
667
702
|
children: [
|
|
668
|
-
/* @__PURE__ */ (0,
|
|
669
|
-
icon && /* @__PURE__ */ (0,
|
|
670
|
-
/* @__PURE__ */ (0,
|
|
671
|
-
/* @__PURE__ */ (0,
|
|
703
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: `${PREFIX_CLS}overlay`, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: `${PREFIX_CLS}overlay__surface` }) }),
|
|
704
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: `${PREFIX_CLS}menu-item__icon`, children: icon }),
|
|
705
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: `${PREFIX_CLS}menu-item__content`, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: `${PREFIX_CLS}menu-item__title`, children: title }) }),
|
|
706
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: `${PREFIX_CLS}menu-item__icon`, children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChevronUpIcon_default, { className: `${PREFIX_CLS}icon` }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChevronDownIcon_default, { className: `${PREFIX_CLS}icon` }) })
|
|
672
707
|
]
|
|
673
708
|
})
|
|
674
709
|
) }),
|
|
675
|
-
/* @__PURE__ */ (0,
|
|
710
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CollapseContent_default, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
676
711
|
"ul",
|
|
677
712
|
{
|
|
678
|
-
className: (0,
|
|
713
|
+
className: (0, import_clsx10.default)(`${PREFIX_CLS}menu`, {
|
|
679
714
|
[`${PREFIX_CLS}menu-open`]: !isOpen
|
|
680
715
|
}),
|
|
681
716
|
children: content || children
|
|
@@ -686,7 +721,7 @@ var MenuSubmenu = (_a) => {
|
|
|
686
721
|
var MenuSubmenu_default = MenuSubmenu;
|
|
687
722
|
|
|
688
723
|
// src/components/Menu/MenuGroup.tsx
|
|
689
|
-
var
|
|
724
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
690
725
|
var MenuGroup = (_a) => {
|
|
691
726
|
var _b = _a, {
|
|
692
727
|
children,
|
|
@@ -705,24 +740,24 @@ var MenuGroup = (_a) => {
|
|
|
705
740
|
"level",
|
|
706
741
|
"items"
|
|
707
742
|
]);
|
|
708
|
-
const content = (0,
|
|
743
|
+
const content = (0, import_react19.useMemo)(() => {
|
|
709
744
|
return items == null ? void 0 : items.map((_a2, index) => {
|
|
710
745
|
var _b2 = _a2, { type } = _b2, item = __objRest(_b2, ["type"]);
|
|
711
|
-
return type === "item" ? /* @__PURE__ */ (0,
|
|
746
|
+
return type === "item" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MenuItem_default, __spreadValues({}, item), index) : type === "submenu" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MenuSubmenu_default, __spreadValues({}, item), index) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MenuItem_default, __spreadValues({}, item), index);
|
|
712
747
|
});
|
|
713
748
|
}, [items]);
|
|
714
|
-
return /* @__PURE__ */ (0,
|
|
715
|
-
/* @__PURE__ */ (0,
|
|
749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
|
|
750
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
716
751
|
"div",
|
|
717
752
|
__spreadProps(__spreadValues({
|
|
718
|
-
className: (0,
|
|
753
|
+
className: (0, import_clsx11.default)(`${PREFIX_CLS}menu-group`, className),
|
|
719
754
|
style: __spreadValues({
|
|
720
755
|
paddingLeft: level <= 1 ? `var(--${PREFIX_CLS}menu-group-padding-x)` : `calc(${level} * var(--${PREFIX_CLS}menu-group-padding-level))`
|
|
721
756
|
}, style)
|
|
722
757
|
}, rest), {
|
|
723
758
|
children: [
|
|
724
|
-
icon && /* @__PURE__ */ (0,
|
|
725
|
-
/* @__PURE__ */ (0,
|
|
759
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: `${PREFIX_CLS}menu-group__icon`, children: icon }),
|
|
760
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: `${PREFIX_CLS}menu-group__content`, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: `${PREFIX_CLS}menu-group__title`, children: title }) })
|
|
726
761
|
]
|
|
727
762
|
})
|
|
728
763
|
),
|
|
@@ -732,7 +767,7 @@ var MenuGroup = (_a) => {
|
|
|
732
767
|
var MenuGroup_default = MenuGroup;
|
|
733
768
|
|
|
734
769
|
// src/components/Menu/Menu.tsx
|
|
735
|
-
var
|
|
770
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
736
771
|
var Menu = (_a) => {
|
|
737
772
|
var _b = _a, {
|
|
738
773
|
children,
|
|
@@ -758,12 +793,12 @@ var Menu = (_a) => {
|
|
|
758
793
|
"onItemSelect"
|
|
759
794
|
]);
|
|
760
795
|
var _a2;
|
|
761
|
-
const [selfValue, setSelfValue] = (0,
|
|
762
|
-
const [selfOpenValues, setSelfOpenValues] = (0,
|
|
763
|
-
const content = (0,
|
|
796
|
+
const [selfValue, setSelfValue] = (0, import_react20.useState)((_a2 = valueProp != null ? valueProp : defaultValue) != null ? _a2 : []);
|
|
797
|
+
const [selfOpenValues, setSelfOpenValues] = (0, import_react20.useState)(openValuesProp != null ? openValuesProp : []);
|
|
798
|
+
const content = (0, import_react20.useMemo)(() => {
|
|
764
799
|
return items == null ? void 0 : items.map((_a3, index) => {
|
|
765
800
|
var _b2 = _a3, { type } = _b2, item = __objRest(_b2, ["type"]);
|
|
766
|
-
return type === "item" ? /* @__PURE__ */ (0,
|
|
801
|
+
return type === "item" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MenuItem_default, __spreadValues({}, item), index) : type === "submenu" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MenuSubmenu_default, __spreadValues({}, item), index) : type === "group" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MenuGroup_default, __spreadValues({}, item), index) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MenuItem_default, __spreadValues({}, item), index);
|
|
767
802
|
});
|
|
768
803
|
}, [items]);
|
|
769
804
|
const handleChange = (value) => {
|
|
@@ -783,17 +818,17 @@ var Menu = (_a) => {
|
|
|
783
818
|
const handleItemSelect = (props) => {
|
|
784
819
|
onItemSelect == null ? void 0 : onItemSelect(props);
|
|
785
820
|
};
|
|
786
|
-
(0,
|
|
821
|
+
(0, import_react20.useEffect)(() => {
|
|
787
822
|
if (valueProp !== void 0 && navMode !== "automatic") {
|
|
788
823
|
setSelfValue(valueProp);
|
|
789
824
|
}
|
|
790
825
|
}, [valueProp]);
|
|
791
|
-
(0,
|
|
826
|
+
(0, import_react20.useEffect)(() => {
|
|
792
827
|
if (openValuesProp !== void 0) {
|
|
793
828
|
setSelfOpenValues(openValuesProp);
|
|
794
829
|
}
|
|
795
830
|
}, [openValuesProp]);
|
|
796
|
-
return /* @__PURE__ */ (0,
|
|
831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
797
832
|
MenuContext_default.Provider,
|
|
798
833
|
{
|
|
799
834
|
value: {
|
|
@@ -806,7 +841,7 @@ var Menu = (_a) => {
|
|
|
806
841
|
onChange: handleChange,
|
|
807
842
|
onItemSelect: handleItemSelect
|
|
808
843
|
},
|
|
809
|
-
children: /* @__PURE__ */ (0,
|
|
844
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", __spreadProps(__spreadValues({ className: (0, import_clsx12.default)(`${PREFIX_CLS}menu`) }, rest), { children: content || children }))
|
|
810
845
|
}
|
|
811
846
|
);
|
|
812
847
|
};
|
|
@@ -814,15 +849,15 @@ Menu.displayName = "Menu";
|
|
|
814
849
|
var Menu_default = Menu;
|
|
815
850
|
|
|
816
851
|
// src/components/Tabs/Tab.tsx
|
|
817
|
-
var
|
|
852
|
+
var import_clsx13 = __toESM(require("clsx"));
|
|
818
853
|
var import_merge_refs = __toESM(require("merge-refs"));
|
|
819
|
-
var
|
|
854
|
+
var import_react24 = require("react");
|
|
820
855
|
|
|
821
856
|
// ../../../node_modules/react-icons/lib/esm/iconBase.js
|
|
822
|
-
var
|
|
857
|
+
var import_react22 = __toESM(require("react"));
|
|
823
858
|
|
|
824
859
|
// ../../../node_modules/react-icons/lib/esm/iconContext.js
|
|
825
|
-
var
|
|
860
|
+
var import_react21 = __toESM(require("react"));
|
|
826
861
|
var DefaultContext = {
|
|
827
862
|
color: void 0,
|
|
828
863
|
size: void 0,
|
|
@@ -830,7 +865,7 @@ var DefaultContext = {
|
|
|
830
865
|
style: void 0,
|
|
831
866
|
attr: void 0
|
|
832
867
|
};
|
|
833
|
-
var IconContext =
|
|
868
|
+
var IconContext = import_react21.default.createContext && import_react21.default.createContext(DefaultContext);
|
|
834
869
|
|
|
835
870
|
// ../../../node_modules/react-icons/lib/esm/iconBase.js
|
|
836
871
|
var __assign = function() {
|
|
@@ -859,14 +894,14 @@ var __rest = function(s, e) {
|
|
|
859
894
|
};
|
|
860
895
|
function Tree2Element(tree) {
|
|
861
896
|
return tree && tree.map(function(node, i) {
|
|
862
|
-
return
|
|
897
|
+
return import_react22.default.createElement(node.tag, __assign({
|
|
863
898
|
key: i
|
|
864
899
|
}, node.attr), Tree2Element(node.child));
|
|
865
900
|
});
|
|
866
901
|
}
|
|
867
902
|
function GenIcon(data) {
|
|
868
903
|
return function(props) {
|
|
869
|
-
return
|
|
904
|
+
return import_react22.default.createElement(IconBase, __assign({
|
|
870
905
|
attr: __assign({}, data.attr)
|
|
871
906
|
}, props), Tree2Element(data.child));
|
|
872
907
|
};
|
|
@@ -880,7 +915,7 @@ function IconBase(props) {
|
|
|
880
915
|
className = conf.className;
|
|
881
916
|
if (props.className)
|
|
882
917
|
className = (className ? className + " " : "") + props.className;
|
|
883
|
-
return
|
|
918
|
+
return import_react22.default.createElement("svg", __assign({
|
|
884
919
|
stroke: "currentColor",
|
|
885
920
|
fill: "currentColor",
|
|
886
921
|
strokeWidth: "0"
|
|
@@ -892,9 +927,9 @@ function IconBase(props) {
|
|
|
892
927
|
height: computedSize,
|
|
893
928
|
width: computedSize,
|
|
894
929
|
xmlns: "http://www.w3.org/2000/svg"
|
|
895
|
-
}), title &&
|
|
930
|
+
}), title && import_react22.default.createElement("title", null, title), props.children);
|
|
896
931
|
};
|
|
897
|
-
return IconContext !== void 0 ?
|
|
932
|
+
return IconContext !== void 0 ? import_react22.default.createElement(IconContext.Consumer, null, function(conf) {
|
|
898
933
|
return elem(conf);
|
|
899
934
|
}) : elem(DefaultContext);
|
|
900
935
|
}
|
|
@@ -905,10 +940,10 @@ function TbX(props) {
|
|
|
905
940
|
}
|
|
906
941
|
|
|
907
942
|
// src/components/Tabs/TabsContext.ts
|
|
908
|
-
var
|
|
909
|
-
var TabsContext = (0,
|
|
943
|
+
var import_react23 = require("react");
|
|
944
|
+
var TabsContext = (0, import_react23.createContext)(null);
|
|
910
945
|
var useTabs = () => {
|
|
911
|
-
const context = (0,
|
|
946
|
+
const context = (0, import_react23.useContext)(TabsContext);
|
|
912
947
|
if (!context) {
|
|
913
948
|
throw new Error("`useTabs` must be used within a `<Tabs />`");
|
|
914
949
|
}
|
|
@@ -916,8 +951,8 @@ var useTabs = () => {
|
|
|
916
951
|
};
|
|
917
952
|
|
|
918
953
|
// src/components/Tabs/Tab.tsx
|
|
919
|
-
var
|
|
920
|
-
var Tab = (0,
|
|
954
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
955
|
+
var Tab = (0, import_react24.forwardRef)(
|
|
921
956
|
(_a, ref) => {
|
|
922
957
|
var _b = _a, {
|
|
923
958
|
as: Component = "div",
|
|
@@ -938,8 +973,8 @@ var Tab = (0, import_react23.forwardRef)(
|
|
|
938
973
|
"disabled",
|
|
939
974
|
"onClick"
|
|
940
975
|
]);
|
|
941
|
-
const tabRef = (0,
|
|
942
|
-
const id = (0,
|
|
976
|
+
const tabRef = (0, import_react24.useRef)(null);
|
|
977
|
+
const id = (0, import_react24.useId)();
|
|
943
978
|
const value = valueProp != null ? valueProp : id;
|
|
944
979
|
const _a2 = useTabs(), { onClose, registerItem } = _a2, tabs = __objRest(_a2, ["onClose", "registerItem"]);
|
|
945
980
|
const handleClick = (event) => {
|
|
@@ -980,17 +1015,17 @@ var Tab = (0, import_react23.forwardRef)(
|
|
|
980
1015
|
event.stopPropagation();
|
|
981
1016
|
onClose(value);
|
|
982
1017
|
};
|
|
983
|
-
(0,
|
|
1018
|
+
(0, import_react24.useEffect)(() => {
|
|
984
1019
|
registerItem({ value, disabled });
|
|
985
1020
|
if (value === tabs.value) {
|
|
986
1021
|
tabs.previousTabRef.current = tabRef.current;
|
|
987
1022
|
}
|
|
988
1023
|
}, [value, tabs.value]);
|
|
989
|
-
return /* @__PURE__ */ (0,
|
|
1024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
990
1025
|
Component,
|
|
991
1026
|
__spreadProps(__spreadValues({
|
|
992
1027
|
ref: (0, import_merge_refs.default)(tabRef, ref, (el) => tabs.tabRefs.current[value] = el),
|
|
993
|
-
className: (0,
|
|
1028
|
+
className: (0, import_clsx13.default)(
|
|
994
1029
|
`${PREFIX_CLS}tab`,
|
|
995
1030
|
{ [`${PREFIX_CLS}tab--selected`]: value === tabs.value, [`${PREFIX_CLS}tab--disabled`]: disabled },
|
|
996
1031
|
className
|
|
@@ -999,12 +1034,12 @@ var Tab = (0, import_react23.forwardRef)(
|
|
|
999
1034
|
onClick: handleClick
|
|
1000
1035
|
}, rest), {
|
|
1001
1036
|
children: [
|
|
1002
|
-
/* @__PURE__ */ (0,
|
|
1003
|
-
/* @__PURE__ */ (0,
|
|
1037
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: `${PREFIX_CLS}overlay`, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: `${PREFIX_CLS}overlay__surface` }) }),
|
|
1038
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: `${PREFIX_CLS}tab__content`, children: [
|
|
1004
1039
|
children,
|
|
1005
|
-
closable && /* @__PURE__ */ (0,
|
|
1040
|
+
closable && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "text", color: "secondary", iconOnly: true, size: "xs", onClick: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon_default, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TbX, {}) }) })
|
|
1006
1041
|
] }),
|
|
1007
|
-
/* @__PURE__ */ (0,
|
|
1042
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: `${PREFIX_CLS}tab__indicator` })
|
|
1008
1043
|
]
|
|
1009
1044
|
})
|
|
1010
1045
|
);
|
|
@@ -1012,8 +1047,8 @@ var Tab = (0, import_react23.forwardRef)(
|
|
|
1012
1047
|
);
|
|
1013
1048
|
|
|
1014
1049
|
// src/components/Tabs/Tabs.tsx
|
|
1015
|
-
var
|
|
1016
|
-
var
|
|
1050
|
+
var import_clsx14 = __toESM(require("clsx"));
|
|
1051
|
+
var import_react25 = require("react");
|
|
1017
1052
|
|
|
1018
1053
|
// src/utils/scroll.ts
|
|
1019
1054
|
var scrollToItem = (parentElement, currentElement) => {
|
|
@@ -1041,7 +1076,7 @@ var scrollToItem = (parentElement, currentElement) => {
|
|
|
1041
1076
|
};
|
|
1042
1077
|
|
|
1043
1078
|
// src/components/Tabs/Tabs.tsx
|
|
1044
|
-
var
|
|
1079
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1045
1080
|
var Tabs = (_a) => {
|
|
1046
1081
|
var _b = _a, {
|
|
1047
1082
|
children,
|
|
@@ -1060,11 +1095,11 @@ var Tabs = (_a) => {
|
|
|
1060
1095
|
"onChange",
|
|
1061
1096
|
"onClose"
|
|
1062
1097
|
]);
|
|
1063
|
-
const tabsRef = (0,
|
|
1064
|
-
const tabRefs = (0,
|
|
1065
|
-
const previousTabRef = (0,
|
|
1066
|
-
const [selfValue, setSelfValue] = (0,
|
|
1067
|
-
const [items, setItems] = (0,
|
|
1098
|
+
const tabsRef = (0, import_react25.useRef)(null);
|
|
1099
|
+
const tabRefs = (0, import_react25.useRef)({});
|
|
1100
|
+
const previousTabRef = (0, import_react25.useRef)(null);
|
|
1101
|
+
const [selfValue, setSelfValue] = (0, import_react25.useState)(value != null ? value : defaultValue);
|
|
1102
|
+
const [items, setItems] = (0, import_react25.useState)([]);
|
|
1068
1103
|
const registerItem = (item) => {
|
|
1069
1104
|
setItems((prevItems) => {
|
|
1070
1105
|
const index = prevItems.findIndex((item2) => item2.value);
|
|
@@ -1091,71 +1126,614 @@ var Tabs = (_a) => {
|
|
|
1091
1126
|
const handleClose = (value2) => {
|
|
1092
1127
|
onClose == null ? void 0 : onClose(value2);
|
|
1093
1128
|
};
|
|
1094
|
-
(0,
|
|
1129
|
+
(0, import_react25.useEffect)(() => {
|
|
1095
1130
|
if (value !== void 0) {
|
|
1096
1131
|
setSelfValue(value);
|
|
1097
1132
|
scrollToTab(value);
|
|
1098
1133
|
}
|
|
1099
1134
|
}, [value]);
|
|
1100
|
-
(0,
|
|
1135
|
+
(0, import_react25.useEffect)(() => {
|
|
1101
1136
|
if (value === void 0) {
|
|
1102
1137
|
const item = items.find((tab) => !tab.disabled);
|
|
1103
1138
|
setSelfValue(item == null ? void 0 : item.value);
|
|
1104
1139
|
}
|
|
1105
1140
|
}, [value, items]);
|
|
1106
|
-
return /* @__PURE__ */ (0,
|
|
1141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1107
1142
|
TabsContext.Provider,
|
|
1108
1143
|
{
|
|
1109
1144
|
value: { previousTabRef, tabRefs, value: selfValue, onChange: handleChange, onClose: handleClose, registerItem },
|
|
1110
1145
|
children: [
|
|
1111
|
-
/* @__PURE__ */ (0,
|
|
1146
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1112
1147
|
"div",
|
|
1113
1148
|
__spreadProps(__spreadValues({
|
|
1114
1149
|
ref: tabsRef,
|
|
1115
|
-
className: (0,
|
|
1150
|
+
className: (0, import_clsx14.default)(`${PREFIX_CLS}tabs`, { [`${PREFIX_CLS}tabs--${alignment}`]: alignment }, className)
|
|
1116
1151
|
}, rest), {
|
|
1117
1152
|
children
|
|
1118
1153
|
})
|
|
1119
1154
|
),
|
|
1120
|
-
/* @__PURE__ */ (0,
|
|
1155
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: `${PREFIX_CLS}divider` })
|
|
1121
1156
|
]
|
|
1122
1157
|
}
|
|
1123
1158
|
);
|
|
1124
1159
|
};
|
|
1125
1160
|
|
|
1126
1161
|
// src/components/Toolbar/Toolbar.tsx
|
|
1127
|
-
var
|
|
1128
|
-
var
|
|
1162
|
+
var import_clsx15 = __toESM(require("clsx"));
|
|
1163
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1129
1164
|
var Toolbar = (props) => {
|
|
1130
1165
|
const _a = props, { children, className, size = "md", startAction, endAction, title, subtitle } = _a, rest = __objRest(_a, ["children", "className", "size", "startAction", "endAction", "title", "subtitle"]);
|
|
1131
|
-
return /* @__PURE__ */ (0,
|
|
1132
|
-
/* @__PURE__ */ (0,
|
|
1133
|
-
/* @__PURE__ */ (0,
|
|
1134
|
-
startAction && /* @__PURE__ */ (0,
|
|
1135
|
-
/* @__PURE__ */ (0,
|
|
1136
|
-
title && /* @__PURE__ */ (0,
|
|
1137
|
-
subtitle && /* @__PURE__ */ (0,
|
|
1166
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", __spreadProps(__spreadValues({ className: (0, import_clsx15.default)(`${PREFIX_CLS}toolbar`, { [`${PREFIX_CLS}toolbar--${size}`]: size }, className) }, rest), { children: [
|
|
1167
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `${PREFIX_CLS}outline-b` }),
|
|
1168
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: (0, import_clsx15.default)(`${PREFIX_CLS}toolbar__container`), children: [
|
|
1169
|
+
startAction && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: (0, import_clsx15.default)(`${PREFIX_CLS}toolbar__start-action`), children: startAction }),
|
|
1170
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: (0, import_clsx15.default)(`${PREFIX_CLS}toolbar__content`), children: title || subtitle ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
1171
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: (0, import_clsx15.default)(`${PREFIX_CLS}toolbar__title`), children: title }),
|
|
1172
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: (0, import_clsx15.default)(`${PREFIX_CLS}toolbar__subtitle`), children: subtitle })
|
|
1138
1173
|
] }) : children }),
|
|
1139
|
-
endAction && /* @__PURE__ */ (0,
|
|
1174
|
+
endAction && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: (0, import_clsx15.default)(`${PREFIX_CLS}toolbar__trailing`), children: endAction })
|
|
1140
1175
|
] })
|
|
1141
1176
|
] }));
|
|
1142
1177
|
};
|
|
1143
1178
|
var Toolbar_default = Toolbar;
|
|
1144
1179
|
|
|
1145
|
-
// src/
|
|
1180
|
+
// src/components/Select/SelectClient.tsx
|
|
1181
|
+
var import_kendo_data_query = require("@progress/kendo-data-query");
|
|
1182
|
+
var import_kendo_react_dropdowns = require("@progress/kendo-react-dropdowns");
|
|
1183
|
+
var import_react26 = require("react");
|
|
1184
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1185
|
+
var SelectClient = ({
|
|
1186
|
+
value: valueProp,
|
|
1187
|
+
data: propData,
|
|
1188
|
+
filter: filterProp,
|
|
1189
|
+
keyField: keyField2 = "key",
|
|
1190
|
+
textField: textField3 = "text",
|
|
1191
|
+
placeholder,
|
|
1192
|
+
virtual,
|
|
1193
|
+
filterable,
|
|
1194
|
+
disabled,
|
|
1195
|
+
loading,
|
|
1196
|
+
className,
|
|
1197
|
+
onChange,
|
|
1198
|
+
onFilterChange
|
|
1199
|
+
}) => {
|
|
1200
|
+
const [value, setValue] = (0, import_react26.useState)(valueProp);
|
|
1201
|
+
const [filter, setFilter] = (0, import_react26.useState)(filterProp);
|
|
1202
|
+
const handleChange = (event) => {
|
|
1203
|
+
const value2 = event.target.value || null;
|
|
1204
|
+
if (valueProp !== void 0) {
|
|
1205
|
+
onChange(value2);
|
|
1206
|
+
} else {
|
|
1207
|
+
setValue(value2);
|
|
1208
|
+
}
|
|
1209
|
+
};
|
|
1210
|
+
const pageSize3 = virtual == null ? void 0 : virtual.pageSize;
|
|
1211
|
+
const filteredData = (0, import_react26.useRef)([]);
|
|
1212
|
+
const [state, setState] = (0, import_react26.useState)({
|
|
1213
|
+
skip: 0,
|
|
1214
|
+
total: propData.total,
|
|
1215
|
+
subsetData: propData.items.slice(0, pageSize3)
|
|
1216
|
+
});
|
|
1217
|
+
const handleFilterChange = (event) => {
|
|
1218
|
+
if (pageSize3) {
|
|
1219
|
+
filteredData.current = (0, import_kendo_data_query.filterBy)(propData.items.slice(), event.filter);
|
|
1220
|
+
const data = filteredData.current.slice(0, pageSize3);
|
|
1221
|
+
setState({
|
|
1222
|
+
subsetData: data,
|
|
1223
|
+
skip: 0,
|
|
1224
|
+
total: filteredData.current.length
|
|
1225
|
+
});
|
|
1226
|
+
}
|
|
1227
|
+
const filter2 = event.filter.value;
|
|
1228
|
+
if (filterProp !== void 0) {
|
|
1229
|
+
onFilterChange == null ? void 0 : onFilterChange(filter2);
|
|
1230
|
+
} else {
|
|
1231
|
+
setFilter(filter2);
|
|
1232
|
+
}
|
|
1233
|
+
};
|
|
1234
|
+
const handlePageChange = (event) => {
|
|
1235
|
+
if (pageSize3) {
|
|
1236
|
+
const skip = event.page.skip;
|
|
1237
|
+
const take = event.page.take;
|
|
1238
|
+
const newSubsetData = filteredData.current.slice(skip, skip + take);
|
|
1239
|
+
setState(__spreadProps(__spreadValues({}, state), { subsetData: newSubsetData, skip }));
|
|
1240
|
+
}
|
|
1241
|
+
};
|
|
1242
|
+
(0, import_react26.useEffect)(() => {
|
|
1243
|
+
if (valueProp !== void 0) {
|
|
1244
|
+
setValue(valueProp);
|
|
1245
|
+
}
|
|
1246
|
+
}, [valueProp]);
|
|
1247
|
+
(0, import_react26.useEffect)(() => {
|
|
1248
|
+
setFilter(filterProp);
|
|
1249
|
+
}, [filterProp]);
|
|
1250
|
+
(0, import_react26.useEffect)(() => {
|
|
1251
|
+
if (pageSize3) {
|
|
1252
|
+
filteredData.current = propData.items.slice();
|
|
1253
|
+
}
|
|
1254
|
+
}, [propData]);
|
|
1255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1256
|
+
import_kendo_react_dropdowns.ComboBox,
|
|
1257
|
+
{
|
|
1258
|
+
value,
|
|
1259
|
+
data: pageSize3 ? state.subsetData : propData.items,
|
|
1260
|
+
placeholder,
|
|
1261
|
+
dataItemKey: keyField2,
|
|
1262
|
+
textField: textField3,
|
|
1263
|
+
filterable,
|
|
1264
|
+
filter,
|
|
1265
|
+
virtual: pageSize3 ? {
|
|
1266
|
+
total: state.total,
|
|
1267
|
+
pageSize: pageSize3,
|
|
1268
|
+
skip: state.skip
|
|
1269
|
+
} : void 0,
|
|
1270
|
+
disabled,
|
|
1271
|
+
loading,
|
|
1272
|
+
className,
|
|
1273
|
+
onChange: handleChange,
|
|
1274
|
+
onFilterChange: handleFilterChange,
|
|
1275
|
+
onPageChange: handlePageChange
|
|
1276
|
+
}
|
|
1277
|
+
);
|
|
1278
|
+
};
|
|
1279
|
+
var SelectClient_default = SelectClient;
|
|
1280
|
+
|
|
1281
|
+
// src/components/Select/SelectServer.tsx
|
|
1282
|
+
var import_kendo_react_dropdowns2 = require("@progress/kendo-react-dropdowns");
|
|
1146
1283
|
var import_react27 = require("react");
|
|
1284
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1285
|
+
var textField = "ContactName";
|
|
1286
|
+
var emptyItem = { [textField]: "loading ...", CustomerID: 0 };
|
|
1287
|
+
var pageSize = 10;
|
|
1288
|
+
var loadingData = [];
|
|
1289
|
+
while (loadingData.length < pageSize) {
|
|
1290
|
+
loadingData.push(__spreadValues({}, emptyItem));
|
|
1291
|
+
}
|
|
1292
|
+
var SelectServer = ({
|
|
1293
|
+
data: dataProp,
|
|
1294
|
+
value: valueProp,
|
|
1295
|
+
keyField: keyField2 = "key",
|
|
1296
|
+
textField: textField3 = "text",
|
|
1297
|
+
placeholder,
|
|
1298
|
+
virtual,
|
|
1299
|
+
filterable,
|
|
1300
|
+
filter: filterProp = "",
|
|
1301
|
+
disabled,
|
|
1302
|
+
loading,
|
|
1303
|
+
className,
|
|
1304
|
+
onChange,
|
|
1305
|
+
onDataChange,
|
|
1306
|
+
onFilterChange,
|
|
1307
|
+
getData,
|
|
1308
|
+
renderItem
|
|
1309
|
+
}) => {
|
|
1310
|
+
var _a;
|
|
1311
|
+
const dataCaching = (0, import_react27.useRef)([]);
|
|
1312
|
+
const pendingRequest = (0, import_react27.useRef)();
|
|
1313
|
+
const requestStarted = (0, import_react27.useRef)(false);
|
|
1314
|
+
const emptyItem3 = { [keyField2]: 0, [textField3]: "loading ..." };
|
|
1315
|
+
const [loadingData3, setLoadingData] = (0, import_react27.useState)([]);
|
|
1316
|
+
const [data, setData] = (0, import_react27.useState)(dataProp.items);
|
|
1317
|
+
const [total, setTotal] = (0, import_react27.useState)(0);
|
|
1318
|
+
const [value, setValue] = (0, import_react27.useState)(valueProp);
|
|
1319
|
+
const [filter, setFilter] = (0, import_react27.useState)(filterProp);
|
|
1320
|
+
const pageSize3 = (_a = virtual == null ? void 0 : virtual.pageSize) != null ? _a : 10;
|
|
1321
|
+
const skipRef = (0, import_react27.useRef)(0);
|
|
1322
|
+
const resetCach = () => {
|
|
1323
|
+
dataCaching.current.length = 0;
|
|
1324
|
+
};
|
|
1325
|
+
const requestData = (0, import_react27.useCallback)((state) => {
|
|
1326
|
+
const { skip } = state;
|
|
1327
|
+
if (requestStarted.current) {
|
|
1328
|
+
clearTimeout(pendingRequest.current);
|
|
1329
|
+
pendingRequest.current = setTimeout(() => {
|
|
1330
|
+
requestData(state);
|
|
1331
|
+
}, 50);
|
|
1332
|
+
return;
|
|
1333
|
+
}
|
|
1334
|
+
requestStarted.current = true;
|
|
1335
|
+
getData(state).then(({ items, total: total2 }) => {
|
|
1336
|
+
items.forEach((item, index) => {
|
|
1337
|
+
dataCaching.current[index + skip] = item;
|
|
1338
|
+
});
|
|
1339
|
+
if (skip === skipRef.current) {
|
|
1340
|
+
setData(items);
|
|
1341
|
+
setTotal(total2);
|
|
1342
|
+
onDataChange == null ? void 0 : onDataChange({ items, total: total2 });
|
|
1343
|
+
}
|
|
1344
|
+
requestStarted.current = false;
|
|
1345
|
+
}).catch(() => {
|
|
1346
|
+
requestStarted.current = false;
|
|
1347
|
+
});
|
|
1348
|
+
}, []);
|
|
1349
|
+
const handleFilterChange = (0, import_react27.useCallback)((event) => {
|
|
1350
|
+
const filter2 = event.filter.value;
|
|
1351
|
+
if (filterProp !== void 0) {
|
|
1352
|
+
onFilterChange == null ? void 0 : onFilterChange(filter2);
|
|
1353
|
+
} else {
|
|
1354
|
+
setFilter(filter2);
|
|
1355
|
+
}
|
|
1356
|
+
resetCach();
|
|
1357
|
+
requestData({ skip: 0, filter: filter2 });
|
|
1358
|
+
setData(loadingData3);
|
|
1359
|
+
skipRef.current = 0;
|
|
1360
|
+
}, []);
|
|
1361
|
+
const shouldRequestData = (0, import_react27.useCallback)((skip) => {
|
|
1362
|
+
for (let i = 0; i < pageSize3; i++) {
|
|
1363
|
+
if (!dataCaching.current[skip + i]) {
|
|
1364
|
+
return true;
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
return false;
|
|
1368
|
+
}, []);
|
|
1369
|
+
const getCachedData = (0, import_react27.useCallback)((skip) => {
|
|
1370
|
+
const data2 = [];
|
|
1371
|
+
for (let i = 0; i < pageSize3; i++) {
|
|
1372
|
+
data2.push(dataCaching.current[i + skip] || emptyItem3);
|
|
1373
|
+
}
|
|
1374
|
+
return data2;
|
|
1375
|
+
}, []);
|
|
1376
|
+
const pageChange = (0, import_react27.useCallback)(
|
|
1377
|
+
(event) => {
|
|
1378
|
+
if (filter !== void 0) {
|
|
1379
|
+
const newSkip = event.page.skip;
|
|
1380
|
+
if (shouldRequestData(newSkip)) {
|
|
1381
|
+
requestData({ skip: newSkip, filter });
|
|
1382
|
+
}
|
|
1383
|
+
const data2 = getCachedData(newSkip);
|
|
1384
|
+
setData(data2);
|
|
1385
|
+
skipRef.current = newSkip;
|
|
1386
|
+
}
|
|
1387
|
+
},
|
|
1388
|
+
[getCachedData, requestData, shouldRequestData, filter]
|
|
1389
|
+
);
|
|
1390
|
+
const handleChange = (0, import_react27.useCallback)((event) => {
|
|
1391
|
+
const value2 = event.target.value;
|
|
1392
|
+
if (value2 && value2[textField3] === emptyItem3[textField3]) {
|
|
1393
|
+
return;
|
|
1394
|
+
}
|
|
1395
|
+
if (valueProp !== void 0) {
|
|
1396
|
+
onChange(value2);
|
|
1397
|
+
} else {
|
|
1398
|
+
setValue(value2);
|
|
1399
|
+
}
|
|
1400
|
+
}, []);
|
|
1401
|
+
const handleItemRender = (li, itemProps) => {
|
|
1402
|
+
const itemChildren = renderItem == null ? void 0 : renderItem(itemProps.dataItem);
|
|
1403
|
+
if (!itemChildren)
|
|
1404
|
+
return (0, import_react27.cloneElement)(li, li.props);
|
|
1405
|
+
return (0, import_react27.cloneElement)(li, li.props, itemChildren);
|
|
1406
|
+
};
|
|
1407
|
+
(0, import_react27.useEffect)(() => {
|
|
1408
|
+
const pageSize4 = 10;
|
|
1409
|
+
const loadingData4 = [];
|
|
1410
|
+
while (loadingData4.length < pageSize4) {
|
|
1411
|
+
loadingData4.push(emptyItem3);
|
|
1412
|
+
}
|
|
1413
|
+
setLoadingData(loadingData4);
|
|
1414
|
+
}, []);
|
|
1415
|
+
(0, import_react27.useEffect)(() => {
|
|
1416
|
+
if (valueProp !== void 0) {
|
|
1417
|
+
setValue(valueProp);
|
|
1418
|
+
}
|
|
1419
|
+
}, [valueProp]);
|
|
1420
|
+
(0, import_react27.useEffect)(() => {
|
|
1421
|
+
if (filterProp !== void 0) {
|
|
1422
|
+
setFilter(filterProp);
|
|
1423
|
+
}
|
|
1424
|
+
}, [filterProp]);
|
|
1425
|
+
(0, import_react27.useEffect)(() => {
|
|
1426
|
+
requestData({ skip: 0, filter });
|
|
1427
|
+
return () => {
|
|
1428
|
+
resetCach();
|
|
1429
|
+
};
|
|
1430
|
+
}, [filter, requestData]);
|
|
1431
|
+
(0, import_react27.useEffect)(() => {
|
|
1432
|
+
setData(dataProp.items);
|
|
1433
|
+
}, [dataProp]);
|
|
1434
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1435
|
+
import_kendo_react_dropdowns2.ComboBox,
|
|
1436
|
+
{
|
|
1437
|
+
data,
|
|
1438
|
+
value,
|
|
1439
|
+
placeholder,
|
|
1440
|
+
dataItemKey: keyField2,
|
|
1441
|
+
textField: textField3,
|
|
1442
|
+
filterable,
|
|
1443
|
+
onFilterChange: handleFilterChange,
|
|
1444
|
+
virtual: {
|
|
1445
|
+
pageSize: pageSize3,
|
|
1446
|
+
skip: skipRef.current,
|
|
1447
|
+
total
|
|
1448
|
+
},
|
|
1449
|
+
disabled,
|
|
1450
|
+
loading,
|
|
1451
|
+
className,
|
|
1452
|
+
onChange: handleChange,
|
|
1453
|
+
onPageChange: pageChange,
|
|
1454
|
+
itemRender: handleItemRender
|
|
1455
|
+
}
|
|
1456
|
+
);
|
|
1457
|
+
};
|
|
1458
|
+
var SelectServer_default = SelectServer;
|
|
1459
|
+
|
|
1460
|
+
// src/components/Select/Select.tsx
|
|
1461
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1462
|
+
var Select = (props) => {
|
|
1463
|
+
return props.filterMode === "client" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectClient_default, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectServer_default, __spreadValues({}, props));
|
|
1464
|
+
};
|
|
1465
|
+
var Select_default = Select;
|
|
1466
|
+
|
|
1467
|
+
// src/components/MultiSelect/MultiSelectClient.tsx
|
|
1468
|
+
var import_kendo_data_query2 = require("@progress/kendo-data-query");
|
|
1469
|
+
var import_kendo_react_dropdowns3 = require("@progress/kendo-react-dropdowns");
|
|
1470
|
+
var import_react28 = require("react");
|
|
1471
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1472
|
+
var textField2 = "text";
|
|
1473
|
+
var keyField = "key";
|
|
1474
|
+
var emptyItem2 = { [textField2]: "loading ...", [keyField]: 0 };
|
|
1475
|
+
var pageSize2 = 10;
|
|
1476
|
+
var loadingData2 = [];
|
|
1477
|
+
while (loadingData2.length < pageSize2) {
|
|
1478
|
+
loadingData2.push(__spreadValues({}, emptyItem2));
|
|
1479
|
+
}
|
|
1480
|
+
var SelectClient2 = ({
|
|
1481
|
+
data: dataProp,
|
|
1482
|
+
value: valueProp,
|
|
1483
|
+
keyField: keyField2 = "key",
|
|
1484
|
+
textField: textField3 = "text",
|
|
1485
|
+
placeholder,
|
|
1486
|
+
virtual,
|
|
1487
|
+
filterable,
|
|
1488
|
+
filter: filterProp,
|
|
1489
|
+
disabled,
|
|
1490
|
+
loading,
|
|
1491
|
+
className,
|
|
1492
|
+
onChange,
|
|
1493
|
+
onFilterChange
|
|
1494
|
+
}) => {
|
|
1495
|
+
const [value, setValue] = (0, import_react28.useState)(valueProp);
|
|
1496
|
+
const [filter, setFilter] = (0, import_react28.useState)(filterProp);
|
|
1497
|
+
const handleChange = (event) => {
|
|
1498
|
+
onChange(event.target.value);
|
|
1499
|
+
};
|
|
1500
|
+
const pageSize3 = virtual == null ? void 0 : virtual.pageSize;
|
|
1501
|
+
const filteredData = (0, import_react28.useRef)([]);
|
|
1502
|
+
const [state, setState] = (0, import_react28.useState)({
|
|
1503
|
+
skip: 0,
|
|
1504
|
+
total: dataProp.total,
|
|
1505
|
+
subsetData: dataProp.items.slice(0, pageSize3)
|
|
1506
|
+
});
|
|
1507
|
+
const handleFilterChange = (event) => {
|
|
1508
|
+
if (pageSize3) {
|
|
1509
|
+
filteredData.current = (0, import_kendo_data_query2.filterBy)(dataProp.items.slice(), event.filter);
|
|
1510
|
+
const data = filteredData.current.slice(0, pageSize3);
|
|
1511
|
+
setState({
|
|
1512
|
+
subsetData: data,
|
|
1513
|
+
skip: 0,
|
|
1514
|
+
total: filteredData.current.length
|
|
1515
|
+
});
|
|
1516
|
+
}
|
|
1517
|
+
onFilterChange == null ? void 0 : onFilterChange(event.filter.value);
|
|
1518
|
+
};
|
|
1519
|
+
const pageChange = (event) => {
|
|
1520
|
+
if (pageSize3) {
|
|
1521
|
+
const skip = event.page.skip;
|
|
1522
|
+
const take = event.page.take;
|
|
1523
|
+
const newSubsetData = filteredData.current.slice(skip, skip + take);
|
|
1524
|
+
setState(__spreadProps(__spreadValues({}, state), { subsetData: newSubsetData, skip }));
|
|
1525
|
+
}
|
|
1526
|
+
};
|
|
1527
|
+
(0, import_react28.useEffect)(() => {
|
|
1528
|
+
setValue(valueProp);
|
|
1529
|
+
}, [valueProp]);
|
|
1530
|
+
(0, import_react28.useEffect)(() => {
|
|
1531
|
+
setFilter(filterProp);
|
|
1532
|
+
}, [filterProp]);
|
|
1533
|
+
(0, import_react28.useEffect)(() => {
|
|
1534
|
+
if (pageSize3) {
|
|
1535
|
+
filteredData.current = dataProp.items.slice();
|
|
1536
|
+
}
|
|
1537
|
+
}, [dataProp]);
|
|
1538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1539
|
+
import_kendo_react_dropdowns3.MultiSelect,
|
|
1540
|
+
{
|
|
1541
|
+
value,
|
|
1542
|
+
data: pageSize3 ? state.subsetData : dataProp.items,
|
|
1543
|
+
placeholder,
|
|
1544
|
+
dataItemKey: keyField2,
|
|
1545
|
+
textField: textField3,
|
|
1546
|
+
filterable,
|
|
1547
|
+
filter,
|
|
1548
|
+
virtual: pageSize3 ? {
|
|
1549
|
+
total: state.total,
|
|
1550
|
+
pageSize: pageSize3,
|
|
1551
|
+
skip: state.skip
|
|
1552
|
+
} : void 0,
|
|
1553
|
+
disabled,
|
|
1554
|
+
loading,
|
|
1555
|
+
className,
|
|
1556
|
+
onChange: handleChange,
|
|
1557
|
+
onFilterChange: handleFilterChange,
|
|
1558
|
+
onPageChange: pageChange
|
|
1559
|
+
}
|
|
1560
|
+
);
|
|
1561
|
+
};
|
|
1562
|
+
var MultiSelectClient_default = SelectClient2;
|
|
1563
|
+
|
|
1564
|
+
// src/components/MultiSelect/MultiSelectServer.tsx
|
|
1565
|
+
var import_kendo_react_dropdowns4 = require("@progress/kendo-react-dropdowns");
|
|
1566
|
+
var import_react29 = require("react");
|
|
1567
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1568
|
+
var MultiSelectServer = ({
|
|
1569
|
+
data: dataProp,
|
|
1570
|
+
value: valueProp,
|
|
1571
|
+
keyField: keyField2 = "key",
|
|
1572
|
+
textField: textField3 = "text",
|
|
1573
|
+
placeholder,
|
|
1574
|
+
virtual,
|
|
1575
|
+
filterable,
|
|
1576
|
+
filter: filterProp = "",
|
|
1577
|
+
disabled,
|
|
1578
|
+
loading,
|
|
1579
|
+
className,
|
|
1580
|
+
onDataChange,
|
|
1581
|
+
onChange,
|
|
1582
|
+
onFilterChange,
|
|
1583
|
+
getData
|
|
1584
|
+
}) => {
|
|
1585
|
+
var _a;
|
|
1586
|
+
const dataCaching = (0, import_react29.useRef)([]);
|
|
1587
|
+
const pendingRequest = (0, import_react29.useRef)();
|
|
1588
|
+
const requestStarted = (0, import_react29.useRef)(false);
|
|
1589
|
+
const emptyItem3 = { [keyField2]: 0, [textField3]: "loading ..." };
|
|
1590
|
+
const [loadingData3, setLoadingData] = (0, import_react29.useState)([]);
|
|
1591
|
+
const [data, setData] = (0, import_react29.useState)(dataProp.items);
|
|
1592
|
+
const [total, setTotal] = (0, import_react29.useState)(0);
|
|
1593
|
+
const [value, setValue] = (0, import_react29.useState)(valueProp);
|
|
1594
|
+
const [filter, setFilter] = (0, import_react29.useState)(filterProp);
|
|
1595
|
+
const pageSize3 = (_a = virtual == null ? void 0 : virtual.pageSize) != null ? _a : 10;
|
|
1596
|
+
const skipRef = (0, import_react29.useRef)(0);
|
|
1597
|
+
const resetCach = () => {
|
|
1598
|
+
dataCaching.current.length = 0;
|
|
1599
|
+
};
|
|
1600
|
+
const requestData = (0, import_react29.useCallback)((state) => {
|
|
1601
|
+
if (requestStarted.current) {
|
|
1602
|
+
clearTimeout(pendingRequest.current);
|
|
1603
|
+
pendingRequest.current = setTimeout(() => {
|
|
1604
|
+
requestData(state);
|
|
1605
|
+
}, 50);
|
|
1606
|
+
return;
|
|
1607
|
+
}
|
|
1608
|
+
requestStarted.current = true;
|
|
1609
|
+
getData(state).then(({ items, total: total2 }) => {
|
|
1610
|
+
const { skip } = state;
|
|
1611
|
+
items.forEach((item, index) => {
|
|
1612
|
+
dataCaching.current[index + skip] = item;
|
|
1613
|
+
});
|
|
1614
|
+
if (skip === skipRef.current) {
|
|
1615
|
+
setData(items);
|
|
1616
|
+
setTotal(total2);
|
|
1617
|
+
onDataChange == null ? void 0 : onDataChange({ items, total: total2 });
|
|
1618
|
+
}
|
|
1619
|
+
requestStarted.current = false;
|
|
1620
|
+
}).catch(() => {
|
|
1621
|
+
requestStarted.current = false;
|
|
1622
|
+
});
|
|
1623
|
+
}, []);
|
|
1624
|
+
const handleFilterChange = (0, import_react29.useCallback)((event) => {
|
|
1625
|
+
const filter2 = event.filter.value;
|
|
1626
|
+
resetCach();
|
|
1627
|
+
requestData({ skip: 0, filter: filter2 });
|
|
1628
|
+
setData(loadingData3);
|
|
1629
|
+
skipRef.current = 0;
|
|
1630
|
+
setFilter(filter2);
|
|
1631
|
+
onFilterChange == null ? void 0 : onFilterChange(filter2);
|
|
1632
|
+
}, []);
|
|
1633
|
+
const shouldRequestData = (0, import_react29.useCallback)((skip) => {
|
|
1634
|
+
for (let i = 0; i < pageSize3; i++) {
|
|
1635
|
+
if (!dataCaching.current[skip + i]) {
|
|
1636
|
+
return true;
|
|
1637
|
+
}
|
|
1638
|
+
}
|
|
1639
|
+
return false;
|
|
1640
|
+
}, []);
|
|
1641
|
+
const getCachedData = (0, import_react29.useCallback)((skip) => {
|
|
1642
|
+
const data2 = [];
|
|
1643
|
+
for (let i = 0; i < pageSize3; i++) {
|
|
1644
|
+
data2.push(dataCaching.current[i + skip] || emptyItem3);
|
|
1645
|
+
}
|
|
1646
|
+
return data2;
|
|
1647
|
+
}, []);
|
|
1648
|
+
const pageChange = (0, import_react29.useCallback)(
|
|
1649
|
+
(event) => {
|
|
1650
|
+
const newSkip = event.page.skip;
|
|
1651
|
+
if (shouldRequestData(newSkip)) {
|
|
1652
|
+
requestData({ skip: newSkip, filter });
|
|
1653
|
+
}
|
|
1654
|
+
const data2 = getCachedData(newSkip);
|
|
1655
|
+
setData(data2);
|
|
1656
|
+
skipRef.current = newSkip;
|
|
1657
|
+
},
|
|
1658
|
+
[getCachedData, requestData, shouldRequestData, filter]
|
|
1659
|
+
);
|
|
1660
|
+
const handleChange = (0, import_react29.useCallback)((event) => {
|
|
1661
|
+
const value2 = event.target.value;
|
|
1662
|
+
if (value2 && value2[textField3] === emptyItem3[textField3]) {
|
|
1663
|
+
return;
|
|
1664
|
+
}
|
|
1665
|
+
setValue(value2);
|
|
1666
|
+
onChange(value2);
|
|
1667
|
+
}, []);
|
|
1668
|
+
(0, import_react29.useEffect)(() => {
|
|
1669
|
+
const pageSize4 = 10;
|
|
1670
|
+
const loadingData4 = [];
|
|
1671
|
+
while (loadingData4.length < pageSize4) {
|
|
1672
|
+
loadingData4.push(emptyItem3);
|
|
1673
|
+
}
|
|
1674
|
+
setLoadingData(loadingData4);
|
|
1675
|
+
}, []);
|
|
1676
|
+
(0, import_react29.useEffect)(() => {
|
|
1677
|
+
setData(dataProp.items);
|
|
1678
|
+
}, [dataProp]);
|
|
1679
|
+
(0, import_react29.useEffect)(() => {
|
|
1680
|
+
setValue(valueProp);
|
|
1681
|
+
}, [valueProp]);
|
|
1682
|
+
(0, import_react29.useEffect)(() => {
|
|
1683
|
+
setFilter(filterProp);
|
|
1684
|
+
}, [filterProp]);
|
|
1685
|
+
(0, import_react29.useEffect)(() => {
|
|
1686
|
+
requestData({ skip: 0, filter });
|
|
1687
|
+
return () => {
|
|
1688
|
+
resetCach();
|
|
1689
|
+
};
|
|
1690
|
+
}, [filter, requestData]);
|
|
1691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1692
|
+
import_kendo_react_dropdowns4.MultiSelect,
|
|
1693
|
+
{
|
|
1694
|
+
data,
|
|
1695
|
+
value,
|
|
1696
|
+
placeholder,
|
|
1697
|
+
dataItemKey: keyField2,
|
|
1698
|
+
textField: textField3,
|
|
1699
|
+
filterable,
|
|
1700
|
+
onFilterChange: handleFilterChange,
|
|
1701
|
+
virtual: {
|
|
1702
|
+
pageSize: pageSize3,
|
|
1703
|
+
skip: skipRef.current,
|
|
1704
|
+
total
|
|
1705
|
+
},
|
|
1706
|
+
disabled,
|
|
1707
|
+
loading,
|
|
1708
|
+
className,
|
|
1709
|
+
onChange: handleChange,
|
|
1710
|
+
onPageChange: pageChange
|
|
1711
|
+
}
|
|
1712
|
+
);
|
|
1713
|
+
};
|
|
1714
|
+
var MultiSelectServer_default = MultiSelectServer;
|
|
1715
|
+
|
|
1716
|
+
// src/components/MultiSelect/MultiSelect.tsx
|
|
1717
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1718
|
+
var MultiSelect3 = (props) => {
|
|
1719
|
+
return props.filterMode === "client" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MultiSelectClient_default, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MultiSelectServer_default, __spreadValues({}, props));
|
|
1720
|
+
};
|
|
1721
|
+
var MultiSelect_default = MultiSelect3;
|
|
1722
|
+
|
|
1723
|
+
// src/hooks/useLocalStorage.tsx
|
|
1724
|
+
var import_react32 = require("react");
|
|
1147
1725
|
|
|
1148
1726
|
// src/hooks/useEventListener.tsx
|
|
1149
|
-
var
|
|
1727
|
+
var import_react31 = require("react");
|
|
1150
1728
|
|
|
1151
1729
|
// src/hooks/useIsomorphicLayoutEffect.tsx
|
|
1152
|
-
var
|
|
1153
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ?
|
|
1730
|
+
var import_react30 = require("react");
|
|
1731
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? import_react30.useLayoutEffect : import_react30.useEffect;
|
|
1154
1732
|
var useIsomorphicLayoutEffect_default = useIsomorphicLayoutEffect;
|
|
1155
1733
|
|
|
1156
1734
|
// src/hooks/useEventListener.tsx
|
|
1157
1735
|
function useEventListener(handler) {
|
|
1158
|
-
const savedHandler = (0,
|
|
1736
|
+
const savedHandler = (0, import_react31.useRef)(handler);
|
|
1159
1737
|
useIsomorphicLayoutEffect_default(() => {
|
|
1160
1738
|
savedHandler.current = handler;
|
|
1161
1739
|
}, [handler]);
|
|
@@ -1164,7 +1742,7 @@ var useEventListener_default = useEventListener;
|
|
|
1164
1742
|
|
|
1165
1743
|
// src/hooks/useLocalStorage.tsx
|
|
1166
1744
|
function useLocalStorage(key, initialValue) {
|
|
1167
|
-
const readValue = (0,
|
|
1745
|
+
const readValue = (0, import_react32.useCallback)(() => {
|
|
1168
1746
|
if (typeof window === "undefined") {
|
|
1169
1747
|
return initialValue;
|
|
1170
1748
|
}
|
|
@@ -1176,8 +1754,8 @@ function useLocalStorage(key, initialValue) {
|
|
|
1176
1754
|
return initialValue;
|
|
1177
1755
|
}
|
|
1178
1756
|
}, [initialValue, key]);
|
|
1179
|
-
const [storedValue, setStoredValue] = (0,
|
|
1180
|
-
const setValue = (0,
|
|
1757
|
+
const [storedValue, setStoredValue] = (0, import_react32.useState)(readValue);
|
|
1758
|
+
const setValue = (0, import_react32.useCallback)(
|
|
1181
1759
|
(value) => {
|
|
1182
1760
|
if (typeof window == "undefined") {
|
|
1183
1761
|
console.warn(`Tried setting localStorage key \u201C${key}\u201D even though environment is not a client`);
|
|
@@ -1193,10 +1771,10 @@ function useLocalStorage(key, initialValue) {
|
|
|
1193
1771
|
},
|
|
1194
1772
|
[key, storedValue]
|
|
1195
1773
|
);
|
|
1196
|
-
(0,
|
|
1774
|
+
(0, import_react32.useEffect)(() => {
|
|
1197
1775
|
setStoredValue(readValue());
|
|
1198
1776
|
}, []);
|
|
1199
|
-
const handleStorageChange = (0,
|
|
1777
|
+
const handleStorageChange = (0, import_react32.useCallback)(() => {
|
|
1200
1778
|
setStoredValue(readValue());
|
|
1201
1779
|
}, [readValue]);
|
|
1202
1780
|
useEventListener_default("storage", handleStorageChange);
|
|
@@ -1207,28 +1785,27 @@ function parseJSON(value) {
|
|
|
1207
1785
|
try {
|
|
1208
1786
|
return value === "undefined" ? void 0 : JSON.parse(value != null ? value : "");
|
|
1209
1787
|
} catch (e) {
|
|
1210
|
-
console.log("parsing error on", { value });
|
|
1211
1788
|
return void 0;
|
|
1212
1789
|
}
|
|
1213
1790
|
}
|
|
1214
1791
|
|
|
1215
1792
|
// src/hooks/usePrevious.tsx
|
|
1216
|
-
var
|
|
1793
|
+
var import_react33 = require("react");
|
|
1217
1794
|
var usePrevious = (value) => {
|
|
1218
|
-
const ref = (0,
|
|
1219
|
-
(0,
|
|
1795
|
+
const ref = (0, import_react33.useRef)();
|
|
1796
|
+
(0, import_react33.useEffect)(() => {
|
|
1220
1797
|
ref.current = value;
|
|
1221
1798
|
});
|
|
1222
1799
|
return ref.current;
|
|
1223
1800
|
};
|
|
1224
1801
|
|
|
1225
1802
|
// src/hooks/useStep.tsx
|
|
1226
|
-
var
|
|
1803
|
+
var import_react34 = require("react");
|
|
1227
1804
|
var useStep = (maxStep) => {
|
|
1228
|
-
const [currentStep, setCurrentStep] = (0,
|
|
1229
|
-
const canGoToNextStep = (0,
|
|
1230
|
-
const canGoToPrevStep = (0,
|
|
1231
|
-
const setStep = (0,
|
|
1805
|
+
const [currentStep, setCurrentStep] = (0, import_react34.useState)(1);
|
|
1806
|
+
const canGoToNextStep = (0, import_react34.useMemo)(() => currentStep + 1 <= maxStep, [currentStep, maxStep]);
|
|
1807
|
+
const canGoToPrevStep = (0, import_react34.useMemo)(() => currentStep - 1 >= 1, [currentStep]);
|
|
1808
|
+
const setStep = (0, import_react34.useCallback)(
|
|
1232
1809
|
(step) => {
|
|
1233
1810
|
const newStep = step instanceof Function ? step(currentStep) : step;
|
|
1234
1811
|
if (newStep >= 1 && newStep <= maxStep) {
|
|
@@ -1239,17 +1816,17 @@ var useStep = (maxStep) => {
|
|
|
1239
1816
|
},
|
|
1240
1817
|
[maxStep, currentStep]
|
|
1241
1818
|
);
|
|
1242
|
-
const goToNextStep = (0,
|
|
1819
|
+
const goToNextStep = (0, import_react34.useCallback)(() => {
|
|
1243
1820
|
if (canGoToNextStep) {
|
|
1244
1821
|
setCurrentStep((step) => step + 1);
|
|
1245
1822
|
}
|
|
1246
1823
|
}, [canGoToNextStep]);
|
|
1247
|
-
const goToPrevStep = (0,
|
|
1824
|
+
const goToPrevStep = (0, import_react34.useCallback)(() => {
|
|
1248
1825
|
if (canGoToPrevStep) {
|
|
1249
1826
|
setCurrentStep((step) => step - 1);
|
|
1250
1827
|
}
|
|
1251
1828
|
}, [canGoToPrevStep]);
|
|
1252
|
-
const reset = (0,
|
|
1829
|
+
const reset = (0, import_react34.useCallback)(() => {
|
|
1253
1830
|
setCurrentStep(1);
|
|
1254
1831
|
}, []);
|
|
1255
1832
|
return [
|
|
@@ -1274,6 +1851,7 @@ var useStep = (maxStep) => {
|
|
|
1274
1851
|
CollapseContent,
|
|
1275
1852
|
CollapseContext,
|
|
1276
1853
|
CollapseTrigger,
|
|
1854
|
+
Drawer,
|
|
1277
1855
|
Icon,
|
|
1278
1856
|
Menu,
|
|
1279
1857
|
MenuContext,
|
|
@@ -1281,7 +1859,9 @@ var useStep = (maxStep) => {
|
|
|
1281
1859
|
MenuItem,
|
|
1282
1860
|
MenuSubmenu,
|
|
1283
1861
|
MenuValueContext,
|
|
1862
|
+
MultiSelect,
|
|
1284
1863
|
Portal,
|
|
1864
|
+
Select,
|
|
1285
1865
|
Tab,
|
|
1286
1866
|
Tabs,
|
|
1287
1867
|
Toolbar,
|