583 lines
22 KiB
JavaScript
583 lines
22 KiB
JavaScript
import { jsx as A, jsxs as l, Fragment as $ } from "react/jsx-runtime";
|
|
import { Box as s, HStack as u, VStack as C, Image as B, Text as I, useDisclosure as _, Stack as ee, Tooltip as P, IconButton as G, Icon as d, Drawer as Ae, DrawerOverlay as oe, DrawerContent as ne, DrawerCloseButton as te, DrawerHeader as re, DrawerBody as le, SimpleGrid as ge, Link as ae } from "@chakra-ui/react";
|
|
import { forwardRef as x, useRef as ie, Children as ce, isValidElement as se } from "react";
|
|
import { usePermission as Ie, logoutKeycloakFromRuntime as de } from "./core-runtime.js";
|
|
const Ce = "data:image/webp;base64,UklGRpwQAABXRUJQVlA4WAoAAAAcAAAAKQAAOwAAQUxQSFQEAAABoHbb2rG3HtB6FdS2bQ03qW3btm3btm3btm3bbnCyP9xP3jd9T0RMABHsSorXZsvtPb3Se41jZVyvSXXa32uqP/Xxmq7fo3jNACXzmn4q7jUdNdRryuuG3bAbztgR4R9evC9hBQ2Gzk0EgVE9i5U1PLZpndFDup+IkgU9K5LDjSr6kwGqSVIu8rXwbEAaN3wfajUkGPxHo6DAYI+c2xO4QVuFBAC1xgGVZ3mU8HYcd/we6DAwbFs26LnIoxxfkrhDM6kcfaRPmdky1qOCyuWW7y3tKiVJAT6fWnqUXy3dor7CKtT5oOE0VGGPMmu9e77XtIjCw3FeDUrkUZyfH2K4RW29iwE00GE8tl1Qs3Di1BrQIZ7rhvJAjEfq5obdiv46Z7do8ELSYfqrLMzW3zRuOCd3SGik+auaRh2Z3xwVVJry0lpMu0FX/ZqRAtigm/4Q/YvFTWorTYznCs5lEdMi9efDwX/aQb7/1AWyL2nc7oHUN9G1R6yVZgE2GzEsIt9Ll3SqxsNSfUiMDVgkbXuunk2kuzEMO1EtYj5MC4U/NyXlZ21wAY1/SNLDZj/1KwvW0Szy3/IBcp2IwhDp7Ojhh2W+bPBA6tRlXhqL2BZjV2G2CCRDkMIN2lTguDRzqnQvlhHPcN0raZEoN7bL4XzJyRppZxdJam9kNMrdcVpgh1nhDGeadDXba2M94FvJ2DEYM3ZMoIPVadpIb1MMk3kQKNIESPwogRHw9k03GBYSJIUuj1w8WF/zscFiI7AwIzBwBeZiSU0jvVmWvWfnnKT8qOBKkPzg3VVPNBoqbQVs50pYnJb06oCKA/ickZpjOqmgokS/XwzIdtvfcNyQecJpTJBGYp1m7zk72/YB9F4PMRPDbSOsFECxMK3BDBx84reyMyY4hbGuE9Wff50e+ZTx0AX4XdbtaECuA5LUnOGqh3kmIGeIpF3dQyWdAGiqoHxAvV+Sgpo65ms8lrfT7Zc5LXflE1oNuK5rFFAmWArblTPNCS3F+mniIRYhSVmlIUABPYgCGT7p0fhstPihRY7wUjPKUH2mqi0wWi0gyhXNj0qWA9JIwr+dG9r9ktSe1uoEthuv/GCmhuEaHaz3tXHzdE1gqKRuFNAgiBs6HnJrNFnPS5vS4u6KqUAFSV2I8mU25AjLDUfXUfaTbtXB/eaPHZDkh9QDlhyDkq8jUeCKo3yQhkbDwzjfSgIbpAkQ8CIKFc/A1IBsP4Nq4vmSS0BgmPYD20pSeD3JetruaRERmFxdgHV6Fw2KDSDdQgITtpEmRQQDlR8SPVAVoFvsSLMciTkoPUlDMqdH9oNfs0KG5xeBlAG0iQ/XJH282NnhETEvfy0MKa+2B+IQPwbslKQpDiIwxi71chBlQhks6zXLcfD+nnJErK3v3yulIKBYHKBMiLb6+RLxGZd/Oto4pl+GpGQJkpSSf5q0x469ExsWjZd8zl+Ns/0bIEqmokVSQc25Nv7fVlA4IE4BAADwCACdASoqADwAPpE+l0elo6IhMBgKqLASCWYAeY3124Tt2+M8I7dlHoAdJh/qkeBtGaWg1ChNvDuWSwq8xHivZQhVY/yMTqKrsFwfI4RDAAD+/K4wmeoq1E47qjIzyMegBTzGNbaUAv8rmdDbv4kghBOnmR/8XYLhxravlAnOE1epcqaVsh2lcQs5g97rmsbIO0zMpZRMU/29Z0JKLD67mRIy50yTMBnHMtR3uiBwXfRUrkawU63YdXSClV8L7pfW5yvYxByMocKBxjmyPaO12tcgdRUhWef+c9QpjtR8Vtq+4L9b/qhtLZ7i2dhFS8FiOuEMoT4N3E6He4KE7r++L8tQgFD+uhk/dQ0f/u8es/c0V8zW/ddFpOLdSl5M/92PEp9I9eXeHKvY5V4/n0JMzGZO2BsR/qzofRa1tMIFHZ/zZqDzofsf7QetLgAARVhJRu4AAABNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAAB0AAAByATIAAgAAABQAAACQh2kABAAAAAEAAACkAAAAAAAAASwAAAABAAABLAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpAAAyMDE4OjA4OjEzIDE0OjI1OjUzAAAEkAQAAgAAABQAAADaoAEAAwAAAAEAAQAAoAIABAAAAAEAAAAqoAMABAAAAAEAAAA8AAAAADIwMTg6MDg6MTMgMTQ6MjU6NTMAWE1QINYJAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE4LTA4LTEzVDE0OjI1OjUzKzA0OjMwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE4LTA4LTEzVDE0OjI1OjUzKzA0OjMwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOC0wOC0xM1QxNDoyNTo1MyswNDozMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wOC0xM1QxNDoyNTo1MyswNDozMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoxMDU3ZjgxNy03YTEzLThiNGEtODc1Ni1lYWM1MWEyZDRiYTY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDgtMTNUMTQ6MjU6NTMrMDQ6MzA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDZjNmM4ODYtZDY2My1jMzQzLTkwZTUtNjQ4ZWJlYTkxYzgxPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjEwNTdmODE3LTdhMTMtOGI0YS04NzU2LWVhYzUxYTJkNGJhNjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NWI3ZmJlNDgtMDc0ZS01NzRhLWFlNTctN2RmYjA4NmI1N2Q3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjA2YzZjODg2LWQ2NjMtYzM0My05MGU1LTY0OGViZWE5MWM4MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4KICAgICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgICAgIDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEwYjgxNWMzLTkzYjMtODU0MC04NmY0LTA0OTEyZTY5Y2Y4NTwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K";
|
|
function pe({ children: o, ...e }) {
|
|
return /* @__PURE__ */ A(
|
|
s,
|
|
{
|
|
as: "header",
|
|
w: "100%",
|
|
h: { base: "64px", lg: "110px" },
|
|
flexShrink: 0,
|
|
borderBottom: "1px",
|
|
borderColor: "gray.200",
|
|
bg: "#4299E1",
|
|
px: { base: 3, sm: 4, lg: "20px" },
|
|
color: "white",
|
|
...e,
|
|
children: /* @__PURE__ */ A(
|
|
u,
|
|
{
|
|
h: "100%",
|
|
w: "100%",
|
|
minW: 0,
|
|
alignItems: "center",
|
|
justifyContent: "space-between",
|
|
children: o
|
|
}
|
|
)
|
|
}
|
|
);
|
|
}
|
|
function be({ children: o, ...e }) {
|
|
return /* @__PURE__ */ A(
|
|
u,
|
|
{
|
|
alignItems: "center",
|
|
justifyContent: "flex-start",
|
|
h: "100%",
|
|
minW: 0,
|
|
flex: "1",
|
|
spacing: { base: 2.5, lg: 3 },
|
|
py: { base: "6px", lg: "10px" },
|
|
...e,
|
|
children: o
|
|
}
|
|
);
|
|
}
|
|
function he(o) {
|
|
return /* @__PURE__ */ A(
|
|
B,
|
|
{
|
|
loading: "lazy",
|
|
alt: "logo",
|
|
w: { base: "46px", lg: "80px" },
|
|
maxW: { base: "46px", lg: "80px" },
|
|
maxH: { base: "48px", lg: "80px" },
|
|
objectFit: "contain",
|
|
flexShrink: 0,
|
|
...o
|
|
}
|
|
);
|
|
}
|
|
function ue({ children: o, ...e }) {
|
|
return /* @__PURE__ */ A(
|
|
C,
|
|
{
|
|
alignItems: "flex-start",
|
|
justifyContent: "center",
|
|
h: "100%",
|
|
minW: 0,
|
|
maxW: "100%",
|
|
flex: "0 1 auto",
|
|
spacing: { base: 0, lg: 1 },
|
|
...e,
|
|
children: o
|
|
}
|
|
);
|
|
}
|
|
function xe({ children: o, ...e }) {
|
|
return /* @__PURE__ */ A(
|
|
I,
|
|
{
|
|
maxW: "100%",
|
|
fontWeight: "bold",
|
|
fontSize: { base: "15px", lg: "20px" },
|
|
lineHeight: "short",
|
|
textAlign: "start",
|
|
noOfLines: 1,
|
|
...e,
|
|
children: o
|
|
}
|
|
);
|
|
}
|
|
function me({ children: o, ...e }) {
|
|
return /* @__PURE__ */ A(
|
|
I,
|
|
{
|
|
maxW: "100%",
|
|
fontSize: { base: "10px", sm: "11px", lg: "16px" },
|
|
lineHeight: { base: "shorter", lg: "normal" },
|
|
textAlign: "start",
|
|
noOfLines: 1,
|
|
...e,
|
|
children: o
|
|
}
|
|
);
|
|
}
|
|
function we({ logoSrc: o = Ce, ...e }) {
|
|
return /* @__PURE__ */ l(
|
|
C,
|
|
{
|
|
w: "fit-content",
|
|
flexShrink: 0,
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
spacing: { base: 0, lg: 1 },
|
|
py: { base: "6px", lg: "10px" },
|
|
...e,
|
|
children: [
|
|
/* @__PURE__ */ A(
|
|
B,
|
|
{
|
|
src: o,
|
|
alt: "نشان مؤسسه باقرالعلوم",
|
|
loading: "lazy",
|
|
w: { base: "38px", lg: "90px" },
|
|
maxH: { base: "46px", lg: "72px" },
|
|
objectFit: "contain"
|
|
}
|
|
),
|
|
/* @__PURE__ */ A(
|
|
I,
|
|
{
|
|
display: { base: "none", lg: "block" },
|
|
fontSize: "xs",
|
|
fontWeight: "bold",
|
|
textAlign: "center",
|
|
whiteSpace: "nowrap",
|
|
children: "مؤسسه تولید سیستمهای خبره و هوشمند اسلامی باقرالعلوم(ع)"
|
|
}
|
|
)
|
|
]
|
|
}
|
|
);
|
|
}
|
|
const We = Object.assign(pe, {
|
|
BrandSection: be,
|
|
Logo: he,
|
|
Brand: ue,
|
|
Title: xe,
|
|
Description: me,
|
|
Bi: we
|
|
}), v = x(
|
|
({ title: o, children: e, width: t = "1em", height: r = "1em", ...g }, a) => /* @__PURE__ */ l(
|
|
"svg",
|
|
{
|
|
ref: a,
|
|
xmlns: "http://www.w3.org/2000/svg",
|
|
width: t,
|
|
height: r,
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: "2",
|
|
strokeLinecap: "round",
|
|
strokeLinejoin: "round",
|
|
"aria-hidden": o ? void 0 : !0,
|
|
role: o ? "img" : void 0,
|
|
...g,
|
|
children: [
|
|
o && /* @__PURE__ */ A("title", { children: o }),
|
|
e
|
|
]
|
|
}
|
|
)
|
|
);
|
|
v.displayName = "SvgIcon";
|
|
const Q = x((o, e) => /* @__PURE__ */ l(v, { ref: e, strokeWidth: "3", ...o, children: [
|
|
/* @__PURE__ */ A("circle", { cx: "12", cy: "12", r: "1" }),
|
|
/* @__PURE__ */ A("circle", { cx: "19", cy: "12", r: "1" }),
|
|
/* @__PURE__ */ A("circle", { cx: "5", cy: "12", r: "1" })
|
|
] }));
|
|
Q.displayName = "MoreHorizontalIcon";
|
|
const O = x((o, e) => /* @__PURE__ */ l(v, { ref: e, strokeWidth: "3", ...o, children: [
|
|
/* @__PURE__ */ A("path", { d: "m16 17 5-5-5-5" }),
|
|
/* @__PURE__ */ A("path", { d: "M21 12H9" }),
|
|
/* @__PURE__ */ A("path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" })
|
|
] }));
|
|
O.displayName = "ExitIcon";
|
|
const T = (o = "") => {
|
|
const e = String(o).split(/[?#]/)[0] || "";
|
|
return !e || e === "/" ? e || "/" : e.replace(/\/+$/, "");
|
|
}, L = (o, e) => {
|
|
const t = T(o);
|
|
return [e == null ? void 0 : e.path, ...(e == null ? void 0 : e.aliases) || []].filter(Boolean).map(T).some(
|
|
(g) => t === g || t.startsWith(`${g}/`)
|
|
);
|
|
}, Se = (o = [], e) => o.find((t) => L(e, t)), W = x(
|
|
({ linkComponent: o, href: e, children: t, ...r }, g) => /* @__PURE__ */ A(ae, { ref: g, href: e, ...o ? { as: o } : {}, ...r, children: t })
|
|
);
|
|
W.displayName = "SidebarLink";
|
|
const fe = ({
|
|
item: o,
|
|
isActive: e,
|
|
isDisabled: t,
|
|
linkComponent: r,
|
|
onNavigate: g
|
|
}) => {
|
|
const a = {
|
|
variant: e ? "solid" : "ghost",
|
|
colorScheme: e ? "blue" : void 0,
|
|
icon: /* @__PURE__ */ A(d, { as: o.icon }),
|
|
fontSize: "xl",
|
|
size: { base: "sm", lg: "lg" },
|
|
"aria-label": o.title,
|
|
"aria-current": e ? "page" : void 0
|
|
};
|
|
let p;
|
|
if (t || e)
|
|
p = /* @__PURE__ */ A(
|
|
G,
|
|
{
|
|
...a,
|
|
isDisabled: t,
|
|
cursor: e && !t ? "default" : void 0
|
|
}
|
|
);
|
|
else {
|
|
const m = r ? { as: r, href: o.path } : { as: "a", href: o.path };
|
|
p = /* @__PURE__ */ A(
|
|
G,
|
|
{
|
|
...a,
|
|
...m,
|
|
onClick: g
|
|
}
|
|
);
|
|
}
|
|
return /* @__PURE__ */ A(
|
|
P,
|
|
{
|
|
label: t ? "عدم دسترسی" : o.title,
|
|
placement: "left-start",
|
|
hasArrow: !0,
|
|
rounded: "md",
|
|
py: 2,
|
|
px: 4,
|
|
fontWeight: "bold",
|
|
closeDelay: 150,
|
|
children: /* @__PURE__ */ A(s, { as: "span", children: p })
|
|
}
|
|
);
|
|
}, ye = ({
|
|
item: o,
|
|
isActive: e,
|
|
isDisabled: t,
|
|
linkComponent: r,
|
|
onNavigate: g
|
|
}) => {
|
|
const a = /* @__PURE__ */ l(
|
|
C,
|
|
{
|
|
as: "span",
|
|
spacing: 0.5,
|
|
w: "full",
|
|
minW: 0,
|
|
py: 1,
|
|
px: 1,
|
|
borderRadius: "xl",
|
|
color: e ? "blue.600" : "gray.600",
|
|
bg: e ? "blue.50" : "transparent",
|
|
opacity: t ? 0.4 : 1,
|
|
transition: "background-color 150ms ease, color 150ms ease",
|
|
children: [
|
|
/* @__PURE__ */ A(d, { as: o.icon, boxSize: 5 }),
|
|
/* @__PURE__ */ A(
|
|
I,
|
|
{
|
|
as: "span",
|
|
w: "full",
|
|
fontSize: "10px",
|
|
fontWeight: e ? "bold" : "medium",
|
|
lineHeight: "short",
|
|
textAlign: "center",
|
|
noOfLines: 1,
|
|
children: o.mobileTitle || o.title
|
|
}
|
|
)
|
|
]
|
|
}
|
|
);
|
|
return t || e ? /* @__PURE__ */ A(
|
|
s,
|
|
{
|
|
flex: "1",
|
|
minW: 0,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
"aria-disabled": t ? "true" : void 0,
|
|
"aria-current": e ? "page" : void 0,
|
|
children: a
|
|
}
|
|
) : /* @__PURE__ */ A(
|
|
W,
|
|
{
|
|
linkComponent: r,
|
|
href: o.path,
|
|
flex: "1",
|
|
minW: 0,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
_hover: { textDecoration: "none" },
|
|
onClick: g,
|
|
"aria-current": e ? "page" : void 0,
|
|
children: a
|
|
}
|
|
);
|
|
}, V = () => null, Re = ({
|
|
items: o = [],
|
|
currentPath: e,
|
|
linkComponent: t,
|
|
onNavigate: r,
|
|
children: g,
|
|
primaryMobileCount: a = 4,
|
|
moreTitle: p = "بیشتر",
|
|
moreDrawerTitle: m = "سایر بخشهای سامانه",
|
|
desktopProps: H,
|
|
mobileProps: U
|
|
}) => {
|
|
var N, E;
|
|
const { isOpen: X, onOpen: F, onClose: w } = _(), S = ie(), { cannot: J } = Ie(), c = ce.toArray(g).find(
|
|
(n) => se(n) && n.type === V
|
|
), f = !!c, y = ((N = c == null ? void 0 : c.props) == null ? void 0 : N.title) || "خروج", M = ((E = c == null ? void 0 : c.props) == null ? void 0 : E.icon) || O, K = e ?? (typeof window < "u" ? `${window.location.pathname}${window.location.search}` : ""), q = o.slice(0, a), R = o.slice(a), D = (n) => (Array.isArray(n == null ? void 0 : n.perm) ? n.perm : [n == null ? void 0 : n.perm]).filter(Boolean).some((i) => J(i)), b = (n) => L(K, n), Z = R.some(b), k = R.length > 0 || f, z = (n) => {
|
|
r == null || r(n), w();
|
|
}, Y = () => {
|
|
w(), de();
|
|
};
|
|
return /* @__PURE__ */ l($, { children: [
|
|
/* @__PURE__ */ A(
|
|
ee,
|
|
{
|
|
py: 6,
|
|
as: "nav",
|
|
flexShrink: 0,
|
|
justify: "space-between",
|
|
h: "full",
|
|
borderLeft: "1px",
|
|
borderColor: "gray.200",
|
|
overflowY: "scroll",
|
|
sx: {
|
|
"::-webkit-scrollbar": { display: "none" },
|
|
scrollbarWidth: "none",
|
|
msOverflowStyle: "none"
|
|
},
|
|
display: { base: "none", lg: "flex" },
|
|
...H,
|
|
children: /* @__PURE__ */ l(C, { spacing: 2, children: [
|
|
o.map((n) => /* @__PURE__ */ A(
|
|
fe,
|
|
{
|
|
item: n,
|
|
isDisabled: D(n),
|
|
isActive: b(n),
|
|
linkComponent: t,
|
|
onNavigate: () => r == null ? void 0 : r(n)
|
|
},
|
|
n.path
|
|
)),
|
|
f && /* @__PURE__ */ A(
|
|
P,
|
|
{
|
|
label: y,
|
|
placement: "left-start",
|
|
hasArrow: !0,
|
|
rounded: "md",
|
|
py: 2,
|
|
px: 4,
|
|
fontWeight: "bold",
|
|
closeDelay: 150,
|
|
children: /* @__PURE__ */ A(
|
|
G,
|
|
{
|
|
variant: "ghost",
|
|
icon: /* @__PURE__ */ A(d, { as: M }),
|
|
fontSize: "xl",
|
|
size: { base: "sm", lg: "lg" },
|
|
"aria-label": y,
|
|
onClick: Y
|
|
}
|
|
)
|
|
}
|
|
)
|
|
] })
|
|
}
|
|
),
|
|
/* @__PURE__ */ A(
|
|
s,
|
|
{
|
|
as: "nav",
|
|
"aria-label": "ناوبری اصلی موبایل",
|
|
display: { base: "block", lg: "none" },
|
|
position: "fixed",
|
|
insetInline: 0,
|
|
bottom: 0,
|
|
zIndex: 1200,
|
|
bg: "white",
|
|
borderTopWidth: "1px",
|
|
borderColor: "gray.200",
|
|
boxShadow: "0 -6px 18px rgba(0, 0, 0, 0.08)",
|
|
pb: "env(safe-area-inset-bottom)",
|
|
...U,
|
|
children: /* @__PURE__ */ l(u, { h: "56px", px: 1.5, spacing: 1, align: "stretch", children: [
|
|
q.map((n) => /* @__PURE__ */ A(
|
|
ye,
|
|
{
|
|
item: n,
|
|
isDisabled: D(n),
|
|
isActive: b(n),
|
|
linkComponent: t,
|
|
onNavigate: () => z(n)
|
|
},
|
|
n.path
|
|
)),
|
|
k && /* @__PURE__ */ A(
|
|
s,
|
|
{
|
|
as: "button",
|
|
ref: S,
|
|
type: "button",
|
|
flex: "1",
|
|
minW: 0,
|
|
h: "full",
|
|
p: 0,
|
|
border: 0,
|
|
bg: "transparent",
|
|
font: "inherit",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
cursor: "pointer",
|
|
onClick: F,
|
|
"aria-label": "نمایش سایر بخشها",
|
|
children: /* @__PURE__ */ l(
|
|
C,
|
|
{
|
|
spacing: 0.5,
|
|
w: "full",
|
|
py: 1,
|
|
px: 1,
|
|
borderRadius: "xl",
|
|
color: Z ? "blue.600" : "gray.600",
|
|
bg: Z ? "blue.50" : "transparent",
|
|
children: [
|
|
/* @__PURE__ */ A(d, { as: Q, boxSize: 5 }),
|
|
/* @__PURE__ */ A(
|
|
I,
|
|
{
|
|
fontSize: "10px",
|
|
fontWeight: Z ? "bold" : "medium",
|
|
lineHeight: "short",
|
|
children: p
|
|
}
|
|
)
|
|
]
|
|
}
|
|
)
|
|
}
|
|
)
|
|
] })
|
|
}
|
|
),
|
|
k && /* @__PURE__ */ l(
|
|
Ae,
|
|
{
|
|
isOpen: X,
|
|
placement: "bottom",
|
|
onClose: w,
|
|
finalFocusRef: S,
|
|
children: [
|
|
/* @__PURE__ */ A(oe, {}),
|
|
/* @__PURE__ */ l(
|
|
ne,
|
|
{
|
|
borderTopRadius: "2xl",
|
|
maxH: "min(78dvh, 620px)",
|
|
pb: "env(safe-area-inset-bottom)",
|
|
children: [
|
|
/* @__PURE__ */ A(te, { insetInlineEnd: 3, insetInlineStart: "auto" }),
|
|
/* @__PURE__ */ A(re, { borderBottomWidth: "1px", fontSize: "md", children: m }),
|
|
/* @__PURE__ */ l(le, { py: 4, overflowY: "auto", children: [
|
|
/* @__PURE__ */ A(ge, { columns: 4, spacing: 2, children: R.map((n) => {
|
|
const h = D(n), i = b(n), j = /* @__PURE__ */ l(
|
|
C,
|
|
{
|
|
h: "70px",
|
|
minW: 0,
|
|
justify: "center",
|
|
spacing: 1,
|
|
px: 1,
|
|
borderWidth: "1px",
|
|
borderColor: i ? "blue.300" : "gray.200",
|
|
borderRadius: "lg",
|
|
bg: i ? "blue.50" : "white",
|
|
color: i ? "blue.700" : "gray.700",
|
|
opacity: h ? 0.4 : 1,
|
|
children: [
|
|
/* @__PURE__ */ A(d, { as: n.icon, boxSize: 5, flexShrink: 0 }),
|
|
/* @__PURE__ */ A(
|
|
I,
|
|
{
|
|
w: "full",
|
|
fontSize: "10px",
|
|
lineHeight: "shorter",
|
|
fontWeight: i ? "bold" : "medium",
|
|
textAlign: "center",
|
|
noOfLines: 2,
|
|
children: n.mobileTitle || n.title
|
|
}
|
|
)
|
|
]
|
|
}
|
|
);
|
|
return h || i ? /* @__PURE__ */ A(
|
|
s,
|
|
{
|
|
"aria-disabled": h ? "true" : void 0,
|
|
"aria-current": i ? "page" : void 0,
|
|
children: j
|
|
},
|
|
n.path
|
|
) : /* @__PURE__ */ A(
|
|
W,
|
|
{
|
|
linkComponent: t,
|
|
href: n.path,
|
|
_hover: { textDecoration: "none" },
|
|
onClick: () => z(n),
|
|
"aria-current": i ? "page" : void 0,
|
|
children: j
|
|
},
|
|
n.path
|
|
);
|
|
}) }),
|
|
f && /* @__PURE__ */ A(s, { mt: 4, pt: 4, borderTopWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ l(
|
|
u,
|
|
{
|
|
as: "button",
|
|
type: "button",
|
|
w: "full",
|
|
justify: "center",
|
|
py: 3,
|
|
borderRadius: "xl",
|
|
border: 0,
|
|
color: "red.600",
|
|
bg: "red.50",
|
|
cursor: "pointer",
|
|
onClick: Y,
|
|
children: [
|
|
/* @__PURE__ */ A(d, { as: M, boxSize: 5 }),
|
|
/* @__PURE__ */ A(I, { fontWeight: "bold", children: y })
|
|
]
|
|
}
|
|
) })
|
|
] })
|
|
]
|
|
}
|
|
)
|
|
]
|
|
}
|
|
)
|
|
] });
|
|
}, Me = Object.assign(Re, {
|
|
Exit: V
|
|
});
|
|
export {
|
|
We as Header,
|
|
Me as Sidebar,
|
|
Se as getActiveSidebarItem,
|
|
L as isSidebarPathActive
|
|
};
|