@dartech/arsenal-ui 1.4.28 → 1.4.29
Sign up to get free protection for your applications and to get access to all the features.
- package/index.js +92 -11
- package/package.json +1 -1
- package/src/lib/Property/UpsertProperty/PropertyValueField/BooleanValueField.d.ts +0 -1
- package/src/lib/Property/UpsertProperty/PropertyValueField/DateTimeValueField.d.ts +0 -1
- package/src/lib/Property/UpsertProperty/PropertyValueField/DateValueField.d.ts +0 -1
- package/src/lib/Property/UpsertProperty/PropertyValueField/JsonValueField.d.ts +0 -1
- package/src/lib/Property/UpsertProperty/PropertyValueField/TimeValueField.d.ts +0 -1
- package/src/lib/Property/ViewProperty/PropertyItem.d.ts +0 -1
- package/src/lib/Sidebar/SidebarContext.d.ts +1 -0
- package/src/lib/Sidebar/SidebarLink/SidebarNestedItem.d.ts +1 -1
- package/src/lib/Sidebar/SidebarLink/SidebarRootItem.d.ts +11 -0
package/index.js
CHANGED
@@ -6810,10 +6810,14 @@ const SidebarContextProvider = ({
|
|
6810
6810
|
}
|
6811
6811
|
}));
|
6812
6812
|
}, [collapsed]);
|
6813
|
+
const toggleRootElementLink = useCallback((name, isCollapsed) => {
|
6814
|
+
localStorage.setItem(`${name.toLowerCase()}_collapsed`, `${!isCollapsed}`);
|
6815
|
+
}, []);
|
6813
6816
|
return jsx(SidebarContext.Provider, Object.assign({
|
6814
6817
|
value: {
|
6815
6818
|
collapsed,
|
6816
|
-
toggleCollapse
|
6819
|
+
toggleCollapse,
|
6820
|
+
toggleRootElementLink
|
6817
6821
|
}
|
6818
6822
|
}, {
|
6819
6823
|
children: children
|
@@ -7327,12 +7331,16 @@ const ListItemIcon = styled(MuiListItemIcon)(({
|
|
7327
7331
|
const ListSubheader = styled(MuiListSubheader)(({
|
7328
7332
|
theme
|
7329
7333
|
}) => ({
|
7334
|
+
textTransform: 'uppercase',
|
7335
|
+
borderRadius: theme.spacing(2.5),
|
7330
7336
|
backgroundColor: theme.palette.secondary.main,
|
7331
7337
|
color: '#fff',
|
7332
7338
|
paddingLeft: 0,
|
7333
|
-
|
7339
|
+
paddingRight: 0,
|
7334
7340
|
position: 'relative',
|
7335
|
-
|
7341
|
+
'&:hover': {
|
7342
|
+
backgroundColor: 'rgba(255, 255, 255, 0.08)'
|
7343
|
+
},
|
7336
7344
|
'&.collapsed': {
|
7337
7345
|
fontSize: 24,
|
7338
7346
|
textAlign: 'center',
|
@@ -7361,7 +7369,7 @@ const ChildrenList = styled(MuiList)(props => ({
|
|
7361
7369
|
margin: 0,
|
7362
7370
|
padding: 0,
|
7363
7371
|
'& .MuiListItemText-root:not(.main)': {
|
7364
|
-
paddingLeft: props.theme.spacing(
|
7372
|
+
paddingLeft: props.theme.spacing(8.5)
|
7365
7373
|
}
|
7366
7374
|
}));
|
7367
7375
|
const CollapseButton = styled(MuiButtonBase)(props => ({
|
@@ -7519,6 +7527,50 @@ var SidebarLinkItem$1 = SidebarLinkItem;
|
|
7519
7527
|
var img$1 = "data:image/svg+xml,%3csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg opacity='0.6'%3e%3cpath d='M10.3533 2.81334C10.447 2.90709 10.4996 3.03417 10.4996 3.16667C10.4996 3.29917 10.447 3.42626 10.3533 3.52001L5.87334 8.00001L10.3533 12.48C10.4025 12.5258 10.4419 12.581 10.4692 12.6423C10.4965 12.7036 10.5112 12.7699 10.5124 12.837C10.5136 12.9041 10.5012 12.9708 10.4761 13.0331C10.4509 13.0953 10.4135 13.1519 10.366 13.1994C10.3186 13.2468 10.262 13.2843 10.1997 13.3094C10.1375 13.3346 10.0708 13.3469 10.0037 13.3457C9.93652 13.3446 9.87032 13.3299 9.80898 13.3025C9.74765 13.2752 9.69245 13.2358 9.64667 13.1867L4.81334 8.35334C4.71971 8.25959 4.66711 8.13251 4.66711 8.00001C4.66711 7.86751 4.71971 7.74042 4.81334 7.64667L9.64667 2.81334C9.74042 2.71971 9.86751 2.66711 10 2.66711C10.1325 2.66711 10.2596 2.71971 10.3533 2.81334Z' fill='white'/%3e%3c/g%3e%3c/svg%3e";
|
7520
7528
|
var ArrowIcon$1 = img$1;
|
7521
7529
|
|
7530
|
+
const SidebarRootItem = ({
|
7531
|
+
route,
|
7532
|
+
isActive,
|
7533
|
+
isListOpen,
|
7534
|
+
handleClick,
|
7535
|
+
isSubmenu
|
7536
|
+
}) => {
|
7537
|
+
return jsx(ListSubheader, {
|
7538
|
+
children: jsx(ListItem, Object.assign({
|
7539
|
+
disablePadding: true,
|
7540
|
+
onClick: handleClick
|
7541
|
+
}, {
|
7542
|
+
children: jsxs(ListItemButton, Object.assign({
|
7543
|
+
className: classnames({
|
7544
|
+
active: isActive,
|
7545
|
+
main: route.main
|
7546
|
+
}),
|
7547
|
+
sx: {
|
7548
|
+
justifyContent: 'space-between'
|
7549
|
+
}
|
7550
|
+
}, {
|
7551
|
+
children: [jsx(ListItemText, {
|
7552
|
+
primary: route.name,
|
7553
|
+
className: classnames({
|
7554
|
+
main: route.main
|
7555
|
+
}),
|
7556
|
+
sx: !isSubmenu ? {
|
7557
|
+
display: 'none'
|
7558
|
+
} : {}
|
7559
|
+
}), route.name, jsx(Box, {
|
7560
|
+
component: "img",
|
7561
|
+
src: ArrowIcon$1,
|
7562
|
+
mr: 3,
|
7563
|
+
sx: {
|
7564
|
+
transition: 'transform .3s',
|
7565
|
+
transform: `rotate(${isListOpen ? 0 : '-90deg'})`
|
7566
|
+
}
|
7567
|
+
})]
|
7568
|
+
}))
|
7569
|
+
}))
|
7570
|
+
});
|
7571
|
+
};
|
7572
|
+
var SidebarRootItem$1 = SidebarRootItem;
|
7573
|
+
|
7522
7574
|
function SidebarNestedItem({
|
7523
7575
|
route,
|
7524
7576
|
isActive,
|
@@ -7560,12 +7612,15 @@ function SidebarNestedItem({
|
|
7560
7612
|
mr: 3,
|
7561
7613
|
sx: {
|
7562
7614
|
transition: 'transform .3s',
|
7563
|
-
transform: `rotate(${isListOpen ? '-90deg' : 0})
|
7564
|
-
opacity: collapsed ? 0 : 1
|
7615
|
+
transform: `rotate(${isListOpen ? '-90deg' : 0})`
|
7565
7616
|
}
|
7566
7617
|
})]
|
7567
7618
|
}))
|
7568
|
-
})) : jsx(
|
7619
|
+
})) : (route === null || route === void 0 ? void 0 : route.rootLink) ? jsx(SidebarRootItem$1, {
|
7620
|
+
route: route,
|
7621
|
+
handleClick: handleClick,
|
7622
|
+
isListOpen: isListOpen
|
7623
|
+
}) : jsx(ListSubheader, {
|
7569
7624
|
children: route.name
|
7570
7625
|
});
|
7571
7626
|
}
|
@@ -7574,20 +7629,46 @@ const SidebarLink = ({
|
|
7574
7629
|
route,
|
7575
7630
|
isSubmenu
|
7576
7631
|
}) => {
|
7577
|
-
var _a, _b;
|
7632
|
+
var _a, _b, _c;
|
7578
7633
|
const location = useLocation();
|
7579
7634
|
const {
|
7580
|
-
collapsed
|
7635
|
+
collapsed,
|
7636
|
+
toggleRootElementLink
|
7581
7637
|
} = useSidebarContext();
|
7582
7638
|
const [open, setOpen] = useState(false);
|
7639
|
+
const [rootLinkCollapsed, setRootLinkCollapsed] = useState(localStorage.getItem(`${route.name.toLowerCase()}_collapsed`) === 'true');
|
7583
7640
|
const isActive = useMemo(() => !!(route.link || route.rootLink) && location.pathname.startsWith(route.link || route.rootLink), [location.pathname, route]);
|
7584
7641
|
const handleClick = () => {
|
7585
7642
|
setOpen(!open);
|
7586
7643
|
};
|
7644
|
+
const handleRootClick = useCallback(() => {
|
7645
|
+
if (route && route.rootLink) {
|
7646
|
+
toggleRootElementLink(route.name, rootLinkCollapsed);
|
7647
|
+
setRootLinkCollapsed(!rootLinkCollapsed);
|
7648
|
+
}
|
7649
|
+
}, [rootLinkCollapsed, route, toggleRootElementLink]);
|
7587
7650
|
useEffect(() => {
|
7588
7651
|
setOpen(isActive);
|
7589
7652
|
}, [isActive]);
|
7590
|
-
return ((_a = route.children) === null || _a === void 0 ? void 0 : _a.length) && (!collapsed || collapsed && isSubmenu) ? jsxs(Fragment, {
|
7653
|
+
return (route === null || route === void 0 ? void 0 : route.rootLink) && ((_a = route.children) === null || _a === void 0 ? void 0 : _a.length) && (!collapsed || collapsed && isSubmenu) ? jsxs(Fragment, {
|
7654
|
+
children: [jsx(SidebarNestedItem, {
|
7655
|
+
route: route,
|
7656
|
+
isActive: isActive,
|
7657
|
+
handleClick: handleRootClick,
|
7658
|
+
isListOpen: rootLinkCollapsed,
|
7659
|
+
isSubmenu: isSubmenu
|
7660
|
+
}), jsx(Collapse, Object.assign({
|
7661
|
+
in: !rootLinkCollapsed,
|
7662
|
+
timeout: "auto"
|
7663
|
+
}, {
|
7664
|
+
children: jsx(ChildrenList, {
|
7665
|
+
children: route.children.map(childRoute => jsx(SidebarLink, {
|
7666
|
+
route: childRoute,
|
7667
|
+
isSubmenu: isSubmenu
|
7668
|
+
}, childRoute.name))
|
7669
|
+
})
|
7670
|
+
}))]
|
7671
|
+
}) : ((_b = route.children) === null || _b === void 0 ? void 0 : _b.length) && (!collapsed || collapsed && isSubmenu) ? jsxs(Fragment, {
|
7591
7672
|
children: [jsx(SidebarNestedItem, {
|
7592
7673
|
route: route,
|
7593
7674
|
isActive: isActive,
|
@@ -7599,7 +7680,7 @@ const SidebarLink = ({
|
|
7599
7680
|
timeout: "auto"
|
7600
7681
|
}, {
|
7601
7682
|
children: jsx(ChildrenList, {
|
7602
|
-
children: (
|
7683
|
+
children: (_c = route.children) === null || _c === void 0 ? void 0 : _c.map((childRoute, index) => jsx(SidebarLink, {
|
7603
7684
|
route: childRoute,
|
7604
7685
|
isSubmenu: isSubmenu
|
7605
7686
|
}, childRoute.name))
|
package/package.json
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
type SidebarContextProps = {
|
3
3
|
collapsed: boolean;
|
4
4
|
toggleCollapse: () => void;
|
5
|
+
toggleRootElementLink?: (name: string, isCollapsed: boolean) => void;
|
5
6
|
};
|
6
7
|
export declare const SidebarContext: import("react").Context<SidebarContextProps>;
|
7
8
|
export declare const useSidebarContext: () => SidebarContextProps;
|
@@ -7,5 +7,5 @@ type Props = {
|
|
7
7
|
isSubmenu?: boolean;
|
8
8
|
handleClick: () => void;
|
9
9
|
};
|
10
|
-
declare function SidebarNestedItem({ route, isActive, isListOpen, handleClick, isSubmenu }: Props): JSX.Element;
|
10
|
+
declare function SidebarNestedItem({ route, isActive, isListOpen, handleClick, isSubmenu, }: Props): JSX.Element;
|
11
11
|
export default SidebarNestedItem;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import type { Route } from '../../../interfaces';
|
3
|
+
type Props = {
|
4
|
+
route: Route;
|
5
|
+
isActive?: boolean;
|
6
|
+
isListOpen?: boolean;
|
7
|
+
isSubmenu?: boolean;
|
8
|
+
handleClick?: () => void;
|
9
|
+
};
|
10
|
+
declare const SidebarRootItem: ({ route, isActive, isListOpen, handleClick, isSubmenu, }: Props) => JSX.Element;
|
11
|
+
export default SidebarRootItem;
|