@orbe-agro/client-core 5.1.8 → 5.1.9
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/@ecme/components/layouts/Layouts.js +12 -12
- package/dist/@ecme/components/layouts/Layouts.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.js +19 -17
- package/dist/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.js +28 -27
- package/dist/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.js.map +1 -1
- package/dist/@ecme/components/layouts/RouteNotFound.js +11 -0
- package/dist/@ecme/components/layouts/RouteNotFound.js.map +1 -0
- package/dist/@ecme/components/template/Header.js +17 -15
- package/dist/@ecme/components/template/Header.js.map +1 -1
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.js +3 -12
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.js.map +1 -1
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.js +18 -17
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.js.map +1 -1
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuNavLink.js +15 -23
- package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuNavLink.js.map +1 -1
- package/dist/@ecme/components/template/MobileNav.js +31 -29
- package/dist/@ecme/components/template/MobileNav.js.map +1 -1
- package/dist/@ecme/components/template/SideNav.js +31 -29
- package/dist/@ecme/components/template/SideNav.js.map +1 -1
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.js +34 -40
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.js.map +1 -1
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.js +67 -110
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.js.map +1 -1
- package/dist/@types/@ecme/components/layouts/Layouts.d.ts +8 -2
- package/dist/@types/@ecme/components/layouts/Layouts.d.ts.map +1 -1
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.d.ts +5 -3
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.d.ts.map +1 -1
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.d.ts +6 -2
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.d.ts.map +1 -1
- package/dist/@types/@ecme/components/layouts/RouteNotFound.d.ts +7 -0
- package/dist/@types/@ecme/components/layouts/RouteNotFound.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/Header.d.ts +4 -2
- package/dist/@types/@ecme/components/template/Header.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.d.ts +2 -2
- package/dist/@types/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.d.ts +6 -5
- package/dist/@types/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/HorizontalMenuContent/HorizontalMenuNavLink.d.ts +9 -5
- package/dist/@types/@ecme/components/template/HorizontalMenuContent/HorizontalMenuNavLink.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/MobileNav.d.ts +3 -1
- package/dist/@types/@ecme/components/template/MobileNav.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/SideNav.d.ts +4 -2
- package/dist/@types/@ecme/components/template/SideNav.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.d.ts +4 -2
- package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.d.ts +7 -4
- package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { Suspense as
|
|
3
|
-
import
|
|
2
|
+
import { Suspense as i } from "react";
|
|
3
|
+
import u from "../shared/Loading.js";
|
|
4
4
|
import "../../auth/index.js";
|
|
5
|
-
import { useThemeStore as
|
|
5
|
+
import { useThemeStore as p } from "../../store/themeStore.js";
|
|
6
6
|
import "./PostLoginLayout/index.js";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
const
|
|
11
|
-
const
|
|
7
|
+
import f from "./PreLoginLayout.js";
|
|
8
|
+
import l from "../../auth/useAuth.js";
|
|
9
|
+
import s from "./PostLoginLayout/PostLoginLayout.js";
|
|
10
|
+
const P = ({ children: t, linkRenderer: r }) => {
|
|
11
|
+
const e = p((a) => a.layout.type), { authenticated: m } = l();
|
|
12
12
|
return /* @__PURE__ */ o(
|
|
13
|
-
|
|
13
|
+
i,
|
|
14
14
|
{
|
|
15
|
-
fallback: /* @__PURE__ */ o("div", { className: "flex flex-auto flex-col h-[100vh]", children: /* @__PURE__ */ o(
|
|
16
|
-
children:
|
|
15
|
+
fallback: /* @__PURE__ */ o("div", { className: "flex flex-auto flex-col h-[100vh]", children: /* @__PURE__ */ o(u, { loading: !0 }) }),
|
|
16
|
+
children: m ? /* @__PURE__ */ o(s, { layoutType: e, linkRenderer: r, children: t }) : /* @__PURE__ */ o(f, { children: t })
|
|
17
17
|
}
|
|
18
18
|
);
|
|
19
19
|
};
|
|
20
20
|
export {
|
|
21
|
-
|
|
21
|
+
P as default
|
|
22
22
|
};
|
|
23
23
|
//# sourceMappingURL=Layouts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layouts.js","sources":["../../../../lib/@ecme/components/layouts/Layouts.tsx"],"sourcesContent":["import { Suspense } from
|
|
1
|
+
{"version":3,"file":"Layouts.js","sources":["../../../../lib/@ecme/components/layouts/Layouts.tsx"],"sourcesContent":["import { Suspense } from \"react\";\nimport Loading from \"@/components/shared/Loading\";\nimport type { CommonProps } from \"@/@types/common\";\nimport { useAuth } from \"@/auth\";\nimport { useThemeStore } from \"@/store/themeStore\";\nimport PostLoginLayout from \"./PostLoginLayout\";\nimport PreLoginLayout from \"./PreLoginLayout\";\nimport { NavigationTree } from \"@/@types\";\n\nexport type LinkRenderer = (\n nav: NavigationTree,\n children: React.ReactNode\n) => React.ReactNode;\n\ninterface LayoutProps extends CommonProps {\n menuConfig?: any;\n linkRenderer?: LinkRenderer;\n}\n\nconst Layout = ({ children, linkRenderer }: LayoutProps) => {\n const layoutType = useThemeStore((state) => state.layout.type);\n\n const { authenticated } = useAuth();\n\n return (\n <Suspense\n fallback={\n <div className=\"flex flex-auto flex-col h-[100vh]\">\n <Loading loading={true} />\n </div>\n }\n >\n {authenticated ? (\n <PostLoginLayout layoutType={layoutType} linkRenderer={linkRenderer}>\n {children}\n </PostLoginLayout>\n ) : (\n <PreLoginLayout>{children}</PreLoginLayout>\n )}\n </Suspense>\n );\n};\n\nexport default Layout;\n"],"names":["Layout","children","linkRenderer","layoutType","useThemeStore","state","authenticated","useAuth","jsx","Suspense","Loading","PostLoginLayout","PreLoginLayout"],"mappings":";;;;;;;;;AAmBA,MAAMA,IAAS,CAAC,EAAE,UAAAC,GAAU,cAAAC,QAAgC;AAC1D,QAAMC,IAAaC,EAAc,CAACC,MAAUA,EAAM,OAAO,IAAI,GAEvD,EAAE,eAAAC,EAAA,IAAkBC,EAAA;AAE1B,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACG,OAAA,EAAI,WAAU,qCACb,UAAA,gBAAAD,EAACE,GAAA,EAAQ,SAAS,GAAA,CAAM,EAAA,CAC1B;AAAA,MAGD,UAAAJ,sBACEK,GAAA,EAAgB,YAAAR,GAAwB,cAAAD,GACtC,UAAAD,EAAA,CACH,IAEA,gBAAAO,EAACI,GAAA,EAAgB,UAAAX,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAIlC;"}
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { lazy as o, Suspense as
|
|
3
|
-
import { LAYOUT_BLANK as
|
|
4
|
-
import
|
|
2
|
+
import { lazy as o, Suspense as p } from "react";
|
|
3
|
+
import { LAYOUT_BLANK as A, LAYOUT_CONTENT_OVERLAY as a, LAYOUT_FRAMELESS_SIDE as l, LAYOUT_TOP_BAR_CLASSIC as s, LAYOUT_STACKED_SIDE as _, LAYOUT_COLLAPSIBLE_SIDE as O } from "../../../constants/theme.constant.js";
|
|
4
|
+
import n from "../../shared/Loading.js";
|
|
5
5
|
const r = {
|
|
6
|
-
[
|
|
7
|
-
|
|
8
|
-
),
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
[O]: o(() => import("./components/CollapsibleSide.js")),
|
|
7
|
+
[_]: o(() => import("./components/StackedSide.js")),
|
|
8
|
+
[s]: o(() => import("./components/TopBarClassic.js")),
|
|
9
|
+
[l]: o(() => import("./components/FrameLessSide.js")),
|
|
10
|
+
[a]: o(() => import("./components/ContentOverlay.js")),
|
|
11
|
+
[A]: o(() => import("./components/Blank.js"))
|
|
12
|
+
}, E = ({
|
|
13
|
+
layoutType: L,
|
|
14
|
+
children: i,
|
|
15
|
+
linkRenderer: m
|
|
16
|
+
}) => {
|
|
17
|
+
const e = r[L] ?? r[Object.keys(r)[0]];
|
|
16
18
|
return /* @__PURE__ */ t(
|
|
17
|
-
|
|
19
|
+
p,
|
|
18
20
|
{
|
|
19
|
-
fallback: /* @__PURE__ */ t("div", { className: "flex flex-auto flex-col h-[100vh]", children: /* @__PURE__ */ t(
|
|
20
|
-
children: /* @__PURE__ */ t(
|
|
21
|
+
fallback: /* @__PURE__ */ t("div", { className: "flex flex-auto flex-col h-[100vh]", children: /* @__PURE__ */ t(n, { loading: !0 }) }),
|
|
22
|
+
children: /* @__PURE__ */ t(e, { linkRenderer: m, children: i })
|
|
21
23
|
}
|
|
22
24
|
);
|
|
23
25
|
};
|
|
24
26
|
export {
|
|
25
|
-
|
|
27
|
+
E as default
|
|
26
28
|
};
|
|
27
29
|
//# sourceMappingURL=PostLoginLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostLoginLayout.js","sources":["../../../../../lib/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.tsx"],"sourcesContent":["import { lazy, Suspense } from
|
|
1
|
+
{"version":3,"file":"PostLoginLayout.js","sources":["../../../../../lib/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.tsx"],"sourcesContent":["import { lazy, Suspense } from \"react\";\nimport {\n LAYOUT_COLLAPSIBLE_SIDE,\n LAYOUT_STACKED_SIDE,\n LAYOUT_TOP_BAR_CLASSIC,\n LAYOUT_FRAMELESS_SIDE,\n LAYOUT_CONTENT_OVERLAY,\n LAYOUT_BLANK,\n} from \"@/constants/theme.constant\";\nimport Loading from \"@/components/shared/Loading\";\nimport type { CommonProps } from \"@/@types/common\";\nimport type { LazyExoticComponent, JSX } from \"react\";\nimport type { LayoutType } from \"@/@types/theme\";\nimport { LinkRenderer } from \"../Layouts\";\n\ntype Layouts = Record<\n string,\n LazyExoticComponent<<T extends CommonProps>(props: T) => JSX.Element>\n>;\n\ninterface PostLoginLayoutProps extends CommonProps {\n layoutType: LayoutType;\n linkRenderer?: LinkRenderer;\n}\n\nconst layouts: Layouts = {\n [LAYOUT_COLLAPSIBLE_SIDE]: lazy(() => import(\"./components/CollapsibleSide\")),\n [LAYOUT_STACKED_SIDE]: lazy(() => import(\"./components/StackedSide\")),\n [LAYOUT_TOP_BAR_CLASSIC]: lazy(() => import(\"./components/TopBarClassic\")),\n [LAYOUT_FRAMELESS_SIDE]: lazy(() => import(\"./components/FrameLessSide\")),\n [LAYOUT_CONTENT_OVERLAY]: lazy(() => import(\"./components/ContentOverlay\")),\n [LAYOUT_BLANK]: lazy(() => import(\"./components/Blank\")),\n};\n\nconst PostLoginLayout = ({\n layoutType,\n children,\n linkRenderer,\n}: PostLoginLayoutProps) => {\n const AppLayout = layouts[layoutType] ?? layouts[Object.keys(layouts)[0]];\n\n return (\n <Suspense\n fallback={\n <div className=\"flex flex-auto flex-col h-[100vh]\">\n <Loading loading={true} />\n </div>\n }\n >\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <AppLayout linkRenderer={linkRenderer}>{children}</AppLayout>\n </Suspense>\n );\n};\n\nexport default PostLoginLayout;\n"],"names":["layouts","LAYOUT_COLLAPSIBLE_SIDE","lazy","LAYOUT_STACKED_SIDE","LAYOUT_TOP_BAR_CLASSIC","LAYOUT_FRAMELESS_SIDE","LAYOUT_CONTENT_OVERLAY","LAYOUT_BLANK","PostLoginLayout","layoutType","children","linkRenderer","AppLayout","jsx","Suspense","Loading"],"mappings":";;;;AAyBA,MAAMA,IAAmB;AAAA,EACvB,CAACC,CAAuB,GAAGC,EAAK,MAAM,OAAO,iCAA8B,CAAC;AAAA,EAC5E,CAACC,CAAmB,GAAGD,EAAK,MAAM,OAAO,6BAA0B,CAAC;AAAA,EACpE,CAACE,CAAsB,GAAGF,EAAK,MAAM,OAAO,+BAA4B,CAAC;AAAA,EACzE,CAACG,CAAqB,GAAGH,EAAK,MAAM,OAAO,+BAA4B,CAAC;AAAA,EACxE,CAACI,CAAsB,GAAGJ,EAAK,MAAM,OAAO,gCAA6B,CAAC;AAAA,EAC1E,CAACK,CAAY,GAAGL,EAAK,MAAM,OAAO,uBAAoB,CAAC;AACzD,GAEMM,IAAkB,CAAC;AAAA,EACvB,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AACF,MAA4B;AAC1B,QAAMC,IAAYZ,EAAQS,CAAU,KAAKT,EAAQ,OAAO,KAAKA,CAAO,EAAE,CAAC,CAAC;AAExE,SACE,gBAAAa;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,4BACG,OAAA,EAAI,WAAU,qCACb,UAAA,gBAAAD,EAACE,GAAA,EAAQ,SAAS,GAAA,CAAM,EAAA,CAC1B;AAAA,MAKF,UAAA,gBAAAF,EAACD,GAAA,EAAU,cAAAD,GAA6B,UAAAD,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGvD;"}
|
|
@@ -1,52 +1,53 @@
|
|
|
1
|
-
import { jsx as e, jsxs as o, Fragment as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
1
|
+
import { jsx as e, jsxs as o, Fragment as a } from "react/jsx-runtime";
|
|
2
|
+
import t from "../../../template/SideNav.js";
|
|
3
|
+
import f from "../../../template/Header.js";
|
|
4
|
+
import s from "../../../template/SideNavToggle.js";
|
|
5
|
+
import p from "../../../template/MobileNav.js";
|
|
6
|
+
import c from "../../../template/Search.js";
|
|
7
7
|
import d from "../../../template/LanguageSelector.js";
|
|
8
8
|
import "../../../template/Notification/index.js";
|
|
9
|
-
import
|
|
9
|
+
import n from "../../../template/UserProfileDropdown.js";
|
|
10
10
|
import "../../../template/SidePanel/index.js";
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import { LAYOUT_COLLAPSIBLE_SIDE as
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
const
|
|
17
|
-
const { larger: r, smaller: i } =
|
|
11
|
+
import x from "../../../template/LayoutBase.js";
|
|
12
|
+
import h from "../../../../utils/hooks/useResponsive.js";
|
|
13
|
+
import { LAYOUT_COLLAPSIBLE_SIDE as u } from "../../../../constants/theme.constant.js";
|
|
14
|
+
import g from "../../../template/Notification/Notification.js";
|
|
15
|
+
import v from "../../../template/SidePanel/SidePanel.js";
|
|
16
|
+
const T = ({ children: m, linkRenderer: l }) => {
|
|
17
|
+
const { larger: r, smaller: i } = h();
|
|
18
18
|
return /* @__PURE__ */ e(
|
|
19
|
-
|
|
19
|
+
x,
|
|
20
20
|
{
|
|
21
|
-
type:
|
|
21
|
+
type: u,
|
|
22
22
|
className: "app-layout-collapsible-side flex flex-auto flex-col",
|
|
23
23
|
children: /* @__PURE__ */ o("div", { className: "flex min-w-0 flex-auto", children: [
|
|
24
|
-
r.lg && /* @__PURE__ */ e(
|
|
24
|
+
r.lg && /* @__PURE__ */ e(t, { linkRenderer: l }),
|
|
25
25
|
/* @__PURE__ */ o("div", { className: "relative flex min-h-screen w-full min-w-0 flex-auto flex-col", children: [
|
|
26
26
|
/* @__PURE__ */ e(
|
|
27
|
-
|
|
27
|
+
f,
|
|
28
28
|
{
|
|
29
|
+
linkRenderer: l,
|
|
29
30
|
className: "shadow dark:shadow-2xl",
|
|
30
|
-
headerStart: /* @__PURE__ */ o(
|
|
31
|
-
i.lg && /* @__PURE__ */ e(
|
|
32
|
-
r.lg && /* @__PURE__ */ e(
|
|
33
|
-
/* @__PURE__ */ e(
|
|
31
|
+
headerStart: /* @__PURE__ */ o(a, { children: [
|
|
32
|
+
i.lg && /* @__PURE__ */ e(p, { linkRenderer: l }),
|
|
33
|
+
r.lg && /* @__PURE__ */ e(s, {}),
|
|
34
|
+
/* @__PURE__ */ e(c, {})
|
|
34
35
|
] }),
|
|
35
|
-
headerEnd: /* @__PURE__ */ o(
|
|
36
|
+
headerEnd: /* @__PURE__ */ o(a, { children: [
|
|
36
37
|
/* @__PURE__ */ e(d, {}),
|
|
37
|
-
/* @__PURE__ */ e(u, {}),
|
|
38
38
|
/* @__PURE__ */ e(g, {}),
|
|
39
|
-
/* @__PURE__ */ e(
|
|
39
|
+
/* @__PURE__ */ e(v, {}),
|
|
40
|
+
/* @__PURE__ */ e(n, { hoverable: !1 })
|
|
40
41
|
] })
|
|
41
42
|
}
|
|
42
43
|
),
|
|
43
|
-
/* @__PURE__ */ e("div", { className: "flex h-full flex-auto flex-col", children:
|
|
44
|
+
/* @__PURE__ */ e("div", { className: "flex h-full flex-auto flex-col", children: m })
|
|
44
45
|
] })
|
|
45
46
|
] })
|
|
46
47
|
}
|
|
47
48
|
);
|
|
48
49
|
};
|
|
49
50
|
export {
|
|
50
|
-
|
|
51
|
+
T as default
|
|
51
52
|
};
|
|
52
53
|
//# sourceMappingURL=CollapsibleSide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleSide.js","sources":["../../../../../../lib/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.tsx"],"sourcesContent":["import SideNav from
|
|
1
|
+
{"version":3,"file":"CollapsibleSide.js","sources":["../../../../../../lib/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.tsx"],"sourcesContent":["import SideNav from \"@/components/template/SideNav\";\nimport Header from \"@/components/template/Header\";\nimport SideNavToggle from \"@/components/template/SideNavToggle\";\nimport MobileNav from \"@/components/template/MobileNav\";\nimport Search from \"@/components/template/Search\";\nimport LanguageSelector from \"@/components/template/LanguageSelector\";\nimport Notification from \"@/components/template/Notification\";\nimport UserProfileDropdown from \"@/components/template/UserProfileDropdown\";\nimport SidePanel from \"@/components/template/SidePanel\";\nimport LayoutBase from \"@/components/template/LayoutBase\";\nimport useResponsive from \"@/utils/hooks/useResponsive\";\nimport { LAYOUT_COLLAPSIBLE_SIDE } from \"@/constants/theme.constant\";\nimport type { CommonProps } from \"@/@types/common\";\nimport { LinkRenderer } from \"../../Layouts\";\n\ninterface CollapsibleSideProps extends CommonProps {\n linkRenderer?: LinkRenderer;\n}\n\nconst CollapsibleSide = ({ children, linkRenderer }: CollapsibleSideProps) => {\n const { larger, smaller } = useResponsive();\n\n return (\n <LayoutBase\n type={LAYOUT_COLLAPSIBLE_SIDE}\n className=\"app-layout-collapsible-side flex flex-auto flex-col\"\n >\n <div className=\"flex min-w-0 flex-auto\">\n {larger.lg && <SideNav linkRenderer={linkRenderer} />}\n <div className=\"relative flex min-h-screen w-full min-w-0 flex-auto flex-col\">\n <Header\n linkRenderer={linkRenderer}\n className=\"shadow dark:shadow-2xl\"\n headerStart={\n <>\n {smaller.lg && <MobileNav linkRenderer={linkRenderer} />}\n {larger.lg && <SideNavToggle />}\n <Search />\n </>\n }\n headerEnd={\n <>\n <LanguageSelector />\n <Notification />\n <SidePanel />\n <UserProfileDropdown hoverable={false} />\n </>\n }\n />\n <div className=\"flex h-full flex-auto flex-col\">{children}</div>\n </div>\n </div>\n </LayoutBase>\n );\n};\n\nexport default CollapsibleSide;\n"],"names":["CollapsibleSide","children","linkRenderer","larger","smaller","useResponsive","jsx","LayoutBase","LAYOUT_COLLAPSIBLE_SIDE","jsxs","SideNav","Header","Fragment","MobileNav","SideNavToggle","Search","LanguageSelector","Notification","SidePanel","UserProfileDropdown"],"mappings":";;;;;;;;;;;;;;;AAmBA,MAAMA,IAAkB,CAAC,EAAE,UAAAC,GAAU,cAAAC,QAAyC;AAC5E,QAAM,EAAE,QAAAC,GAAQ,SAAAC,EAAA,IAAYC,EAAA;AAE5B,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMC;AAAA,MACN,WAAU;AAAA,MAEV,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAA;AAAA,QAAAN,EAAO,MAAM,gBAAAG,EAACI,GAAA,EAAQ,cAAAR,EAAA,CAA4B;AAAA,QACnD,gBAAAO,EAAC,OAAA,EAAI,WAAU,gEACb,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,cAAAT;AAAA,cACA,WAAU;AAAA,cACV,aACE,gBAAAO,EAAAG,GAAA,EACG,UAAA;AAAA,gBAAAR,EAAQ,MAAM,gBAAAE,EAACO,GAAA,EAAU,cAAAX,EAAA,CAA4B;AAAA,gBACrDC,EAAO,MAAM,gBAAAG,EAACQ,GAAA,CAAA,CAAc;AAAA,kCAC5BC,GAAA,CAAA,CAAO;AAAA,cAAA,GACV;AAAA,cAEF,WACE,gBAAAN,EAAAG,GAAA,EACE,UAAA;AAAA,gBAAA,gBAAAN,EAACU,GAAA,EAAiB;AAAA,kCACjBC,GAAA,EAAa;AAAA,kCACbC,GAAA,EAAU;AAAA,gBACX,gBAAAZ,EAACa,GAAA,EAAoB,WAAW,GAAA,CAAO;AAAA,cAAA,EAAA,CACzC;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJ,gBAAAb,EAAC,OAAA,EAAI,WAAU,kCAAkC,UAAAL,EAAA,CAAS;AAAA,QAAA,EAAA,CAC5D;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import "../../assets/index.js";
|
|
3
|
+
import o from "../../assets/svg/SpaceSignBoard.js";
|
|
4
|
+
const l = ({ children: t }) => /* @__PURE__ */ r("div", { className: "h-full flex flex-col items-center justify-center", children: [
|
|
5
|
+
/* @__PURE__ */ e(o, { height: 280, width: 280 }),
|
|
6
|
+
/* @__PURE__ */ e("div", { className: "mt-10 text-center", children: t })
|
|
7
|
+
] });
|
|
8
|
+
export {
|
|
9
|
+
l as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=RouteNotFound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteNotFound.js","sources":["../../../../lib/@ecme/components/layouts/RouteNotFound.tsx"],"sourcesContent":["// client-core/src/components/layouts/BaseNotFoundLayout.tsx\n\nimport type { ReactNode } from \"react\";\nimport { SpaceSignBoard } from \"@/assets\";\n\ninterface BaseNotFoundLayoutProps {\n children: ReactNode;\n}\n\nconst RouteNotFound = ({ children }: BaseNotFoundLayoutProps) => {\n return (\n <div className=\"h-full flex flex-col items-center justify-center\">\n <SpaceSignBoard height={280} width={280} />\n <div className=\"mt-10 text-center\">{children}</div>\n </div>\n );\n};\n\nexport default RouteNotFound;\n"],"names":["RouteNotFound","children","jsxs","jsx","SpaceSignBoard"],"mappings":";;;AASA,MAAMA,IAAgB,CAAC,EAAE,UAAAC,QAErB,gBAAAC,EAAC,OAAA,EAAI,WAAU,oDACb,UAAA;AAAA,EAAA,gBAAAC,EAACC,GAAA,EAAe,QAAQ,KAAK,OAAO,KAAK;AAAA,EACzC,gBAAAD,EAAC,OAAA,EAAI,WAAU,qBAAqB,UAAAF,EAAA,CAAS;AAAA,GAC/C;"}
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import { jsx as e, jsxs as h } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import { HEADER_HEIGHT as
|
|
4
|
-
|
|
2
|
+
import n from "../../utils/classNames.js";
|
|
3
|
+
import { HEADER_HEIGHT as p } from "../../constants/theme.constant.js";
|
|
4
|
+
import u, { Children as f, cloneElement as N } from "react";
|
|
5
|
+
const R = (d) => {
|
|
5
6
|
const {
|
|
6
|
-
headerStart:
|
|
7
|
+
headerStart: a,
|
|
7
8
|
headerEnd: i,
|
|
8
|
-
headerMiddle:
|
|
9
|
-
className:
|
|
9
|
+
headerMiddle: t,
|
|
10
|
+
className: s,
|
|
10
11
|
container: c,
|
|
11
|
-
wrapperClass:
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
wrapperClass: l,
|
|
13
|
+
linkRenderer: o
|
|
14
|
+
} = d, m = () => a ? f.map(a, (r) => u.isValidElement(r) ? N(r, { linkRenderer: o }) : r) : null;
|
|
15
|
+
return /* @__PURE__ */ e("header", { className: n("header", s), children: /* @__PURE__ */ h(
|
|
14
16
|
"div",
|
|
15
17
|
{
|
|
16
|
-
className:
|
|
18
|
+
className: n(
|
|
17
19
|
"header-wrapper",
|
|
18
20
|
c && "container mx-auto",
|
|
19
|
-
|
|
21
|
+
l
|
|
20
22
|
),
|
|
21
|
-
style: { height:
|
|
23
|
+
style: { height: p },
|
|
22
24
|
children: [
|
|
23
|
-
/* @__PURE__ */ e("div", { className: "header-action header-action-start", children:
|
|
24
|
-
|
|
25
|
+
/* @__PURE__ */ e("div", { className: "header-action header-action-start", children: m() }),
|
|
26
|
+
t && /* @__PURE__ */ e("div", { className: "header-action header-action-middle", children: t }),
|
|
25
27
|
/* @__PURE__ */ e("div", { className: "header-action header-action-end", children: i })
|
|
26
28
|
]
|
|
27
29
|
}
|
|
28
30
|
) });
|
|
29
31
|
};
|
|
30
32
|
export {
|
|
31
|
-
|
|
33
|
+
R as default
|
|
32
34
|
};
|
|
33
35
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../lib/@ecme/components/template/Header.tsx"],"sourcesContent":["import classNames from
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../lib/@ecme/components/template/Header.tsx"],"sourcesContent":["import classNames from \"@/utils/classNames\";\nimport { HEADER_HEIGHT } from \"@/constants/theme.constant\";\nimport React, { Children, cloneElement, type ReactNode } from \"react\";\nimport type { CommonProps } from \"@/@types/common\";\nimport { LinkRenderer } from \"../layouts/Layouts\";\n\ninterface HeaderProps extends CommonProps {\n headerStart?: ReactNode;\n headerEnd?: ReactNode;\n headerMiddle?: ReactNode;\n container?: boolean;\n wrapperClass?: string;\n linkRenderer?: LinkRenderer;\n}\n\nconst Header = (props: HeaderProps) => {\n const {\n headerStart,\n headerEnd,\n headerMiddle,\n className,\n container,\n wrapperClass,\n linkRenderer,\n } = props;\n\n const renderHeaderStart = () => {\n if (!headerStart) {\n return null;\n }\n return Children.map(headerStart, (child) => {\n if (React.isValidElement(child)) {\n return cloneElement(child as React.ReactElement<any>, { linkRenderer });\n }\n return child;\n });\n };\n\n return (\n <header className={classNames(\"header\", className)}>\n <div\n className={classNames(\n \"header-wrapper\",\n container && \"container mx-auto\",\n wrapperClass\n )}\n style={{ height: HEADER_HEIGHT }}\n >\n <div className=\"header-action header-action-start\">\n {renderHeaderStart()}\n </div>\n {headerMiddle && (\n <div className=\"header-action header-action-middle\">\n {headerMiddle}\n </div>\n )}\n <div className=\"header-action header-action-end\">{headerEnd}</div>\n </div>\n </header>\n );\n};\n\nexport default Header;\n"],"names":["Header","props","headerStart","headerEnd","headerMiddle","className","container","wrapperClass","linkRenderer","renderHeaderStart","Children","child","React","cloneElement","classNames","jsxs","HEADER_HEIGHT","jsx"],"mappings":";;;;AAeA,MAAMA,IAAS,CAACC,MAAuB;AACrC,QAAM;AAAA,IACJ,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEP,GAEEQ,IAAoB,MACnBP,IAGEQ,EAAS,IAAIR,GAAa,CAACS,MAC5BC,EAAM,eAAeD,CAAK,IACrBE,EAAaF,GAAkC,EAAE,cAAAH,GAAc,IAEjEG,CACR,IAPQ;AAUX,2BACG,UAAA,EAAO,WAAWG,EAAW,UAAUT,CAAS,GAC/C,UAAA,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD;AAAA,QACT;AAAA,QACAR,KAAa;AAAA,QACbC;AAAA,MAAA;AAAA,MAEF,OAAO,EAAE,QAAQS,EAAA;AAAA,MAEjB,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,qCACZ,UAAAR,EAAA,GACH;AAAA,QACCL,KACC,gBAAAa,EAAC,OAAA,EAAI,WAAU,sCACZ,UAAAb,GACH;AAAA,QAEF,gBAAAa,EAAC,OAAA,EAAI,WAAU,mCAAmC,UAAAd,EAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEhE;AAEJ;"}
|
package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.js
CHANGED
|
@@ -119,10 +119,7 @@ const C = {
|
|
|
119
119
|
path: s.path,
|
|
120
120
|
isExternalLink: s.isExternalLink,
|
|
121
121
|
icon: k[s.icon] || /* @__PURE__ */ e(f, {}),
|
|
122
|
-
title: n(
|
|
123
|
-
s.translateKey,
|
|
124
|
-
s.title
|
|
125
|
-
),
|
|
122
|
+
title: n(s.translateKey, s.title),
|
|
126
123
|
description: n(
|
|
127
124
|
((y = (m = s.meta) == null ? void 0 : m.description) == null ? void 0 : y.translateKey) || "",
|
|
128
125
|
((b = (t = s.meta) == null ? void 0 : t.description) == null ? void 0 : b.label) || ""
|
|
@@ -212,10 +209,7 @@ const C = {
|
|
|
212
209
|
/* @__PURE__ */ e(T, { icon: r.icon }),
|
|
213
210
|
/* @__PURE__ */ e("span", { children: o(r.translateKey, r.title) })
|
|
214
211
|
] }),
|
|
215
|
-
children: r.subMenu && r.subMenu.length > 0 && p(
|
|
216
|
-
r.subMenu,
|
|
217
|
-
g
|
|
218
|
-
)
|
|
212
|
+
children: r.subMenu && r.subMenu.length > 0 && p(r.subMenu, g)
|
|
219
213
|
}
|
|
220
214
|
)
|
|
221
215
|
] })
|
|
@@ -265,10 +259,7 @@ const C = {
|
|
|
265
259
|
}
|
|
266
260
|
) }),
|
|
267
261
|
/* @__PURE__ */ a("div", { className: "min-w-0", children: [
|
|
268
|
-
/* @__PURE__ */ e("div", { className: "heading-text font-bold", children: o(
|
|
269
|
-
t.translateKey,
|
|
270
|
-
t.title
|
|
271
|
-
) }),
|
|
262
|
+
/* @__PURE__ */ e("div", { className: "heading-text font-bold", children: o(t.translateKey, t.title) }),
|
|
272
263
|
/* @__PURE__ */ e("div", { className: "text-xs truncate", children: o(
|
|
273
264
|
((E = (b = t.meta) == null ? void 0 : b.description) == null ? void 0 : E.translateKey) || "",
|
|
274
265
|
((M = (K = t.meta) == null ? void 0 : K.description) == null ? void 0 : M.label) || ""
|
package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalMenuDropdownContent.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.tsx"],"sourcesContent":["import { useState } from 'react'\nimport Avatar from '@/components/ui/Avatar'\nimport Dropdown from '@/components/ui/Dropdown'\nimport HorizontalMenuNavLink from './HorizontalMenuNavLink'\nimport AuthorityCheck from '@/components/shared/AuthorityCheck'\nimport classNames from '@/utils/classNames'\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from '@/constants/navigation.constant'\nimport navigationIcon from '@/configs/navigation-icon.config'\nimport { TbCircle } from 'react-icons/tb'\nimport type { CommonProps, TraslationFn } from '@/@types/common'\nimport type { NavigationTree, HorizontalMenuMeta } from '@/@types/navigation'\nimport type { ReactNode, HTMLProps } from 'react'\n\ninterface LayoutProps extends CommonProps {\n navigationTree: NavigationTree[]\n t: TraslationFn\n onDropdownClose: () => void\n routeKey: string\n routeParentKey?: string\n userAuthority: string[]\n}\n\ninterface HorizontalMenuDropdownContentProps extends LayoutProps {\n layoutMeta?: HorizontalMenuMeta\n}\n\nconst gridClasses = {\n 1: {\n grid: 'grid-cols-1',\n width: 'w-[150px]',\n },\n 2: {\n grid: 'grid-cols-2',\n width: 'w-[350px]',\n },\n 3: {\n grid: 'grid-cols-3',\n width: 'w-[750px]',\n },\n 4: {\n grid: 'grid-cols-4',\n width: 'w-[950px]',\n },\n 5: {\n grid: 'grid-cols-5',\n width: 'w-[1150px]',\n },\n}\n\nconst MenuItem = ({\n children,\n className,\n active,\n ...rest\n}: CommonProps & { active?: boolean } & HTMLProps<HTMLDivElement>) => {\n return (\n <div\n className={classNames(\n 'cursor-pointer font-semibold px-3 rounded-lg flex items-center w-full whitespace-nowrap gap-x-2 transition-colors duration-150 hover:text-gray-900 hover:bg-gray-100 dark:hover:text-gray-100 dark:hover:bg-gray-800',\n active && 'bg-gray-100 dark:bg-gray-800',\n className,\n )}\n role=\"menuitem\"\n {...rest}\n >\n {children}\n </div>\n )\n}\n\nconst MenuIcon = ({ icon }: { icon: string }) => {\n if (typeof icon !== 'string' && !icon) {\n return <></>\n }\n\n return (\n <>\n {navigationIcon[icon] && (\n <span className={`text-xl`}>\n {navigationIcon[icon] || <TbCircle />}\n </span>\n )}\n </>\n )\n}\n\nconst MenuLink = ({\n path,\n isExternalLink,\n onClick,\n icon,\n title,\n description,\n active,\n}: {\n path: string\n isExternalLink?: boolean\n onClick: () => void\n icon: ReactNode\n title: string\n description: string\n active?: boolean\n}) => (\n <HorizontalMenuNavLink\n path={path}\n isExternalLink={isExternalLink}\n className=\"gap-2 block\"\n onClick={onClick}\n >\n <MenuItem className=\"py-2 px-2 gap-3\" active={active}>\n <div>\n <Avatar\n className={classNames(\n 'bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600',\n active ? 'text-primary' : 'heading-text',\n )}\n size={40}\n icon={icon}\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">{title}</div>\n <div className=\"text-xs truncate\">{description}</div>\n </div>\n </MenuItem>\n </HorizontalMenuNavLink>\n)\n\nconst ColumnsLayout = (\n props: LayoutProps & {\n columns: 1 | 2 | 3 | 4 | 5\n showColumnTitle?: boolean\n },\n) => {\n const {\n navigationTree,\n t,\n onDropdownClose,\n columns = 1,\n showColumnTitle = true,\n routeKey,\n userAuthority,\n } = props\n\n return (\n <div className=\"flex max-w-[1400px] w-full\">\n <div\n className={classNames(\n 'grid gap-y-6 gap-x-8 p-6 flex-1',\n gridClasses[columns]?.grid,\n )}\n >\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"max-w-[250px]\">\n {showColumnTitle && (\n <div className=\"heading-text font-bold mb-2\">\n {t(nav.translateKey, nav.title)}\n </div>\n )}\n {nav.subMenu.map((subNav) => (\n <AuthorityCheck\n key={subNav.key}\n userAuthority={userAuthority}\n authority={subNav.authority}\n >\n <div key={subNav.key}>\n <MenuLink\n path={subNav.path}\n isExternalLink={\n subNav.isExternalLink\n }\n icon={\n navigationIcon[\n subNav.icon\n ] || <TbCircle />\n }\n title={t(\n subNav.translateKey,\n subNav.title,\n )}\n description={t(\n subNav.meta?.description\n ?.translateKey ||\n '',\n subNav.meta?.description\n ?.label || '',\n )}\n active={\n subNav.key === routeKey\n }\n onClick={onDropdownClose}\n />\n </div>\n </AuthorityCheck>\n ))}\n </div>\n </AuthorityCheck>\n )\n }\n return null\n })}\n </div>\n {navigationTree.some((nav) => nav.type === NAV_ITEM_TYPE_ITEM) && (\n <div\n className={classNames(\n 'ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 min-w-[280px] p-4 flex flex-col',\n )}\n >\n {navigationTree.map((nav) => {\n if (\n nav.subMenu.length === 0 &&\n nav.type === NAV_ITEM_TYPE_ITEM\n ) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <MenuLink\n key={nav.key}\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n icon={\n navigationIcon[nav.icon] || (\n <TbCircle />\n )\n }\n title={t(nav.translateKey, nav.title)}\n description={t(\n nav.meta?.description\n ?.translateKey || '',\n nav.meta?.description?.label || '',\n )}\n active={nav.key === routeKey}\n onClick={onDropdownClose}\n />\n </AuthorityCheck>\n )\n }\n return null\n })}\n </div>\n )}\n </div>\n )\n}\n\nconst DefaultLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n routeKey,\n userAuthority,\n}: LayoutProps) => {\n const renderNavigation = (navTree: NavigationTree[], cascade: number) => {\n const nextCascade = cascade + 1\n\n return (\n <div className={classNames(cascade === 0 && 'p-3')}>\n {navTree.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <ul>\n {nav.type === NAV_ITEM_TYPE_ITEM && (\n <Dropdown.Item active={routeKey === nav.key}>\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 h-full\"\n onClick={onDropdownClose}\n >\n <MenuIcon icon={nav.icon} />\n <span>\n {t(nav.translateKey, nav.title)}\n </span>\n </HorizontalMenuNavLink>\n </Dropdown.Item>\n )}\n {nav.type === NAV_ITEM_TYPE_COLLAPSE && (\n <Dropdown\n renderTitle={\n <span className=\"flex items-center gap-2\">\n <MenuIcon icon={nav.icon} />\n <span>\n {t(nav.translateKey, nav.title)}\n </span>\n </span>\n }\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(\n nav.subMenu,\n nextCascade,\n )}\n </Dropdown>\n )}\n </ul>\n </AuthorityCheck>\n ))}\n </div>\n )\n }\n\n return <>{renderNavigation(navigationTree, 0)}</>\n}\n\nconst TabLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n columns,\n routeKey,\n userAuthority,\n routeParentKey,\n}: LayoutProps & { columns: 1 | 2 | 3 | 4 | 5 }) => {\n const [activeKey, setActiveKey] = useState(\n navigationTree.some((nav) => nav.key === routeParentKey)\n ? routeParentKey\n : navigationTree[0]?.key || '',\n )\n\n return (\n <div className=\"flex\">\n <div className=\"p-4\">\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"min-w-[250px]\">\n <div key={nav.key}>\n <MenuItem\n className=\"py-2 px-2 gap-3\"\n active={nav.key === activeKey}\n onClick={() =>\n setActiveKey(nav.key)\n }\n >\n <div>\n <Avatar\n className={classNames(\n 'bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600',\n nav.key === routeKey\n ? 'text-primary'\n : 'heading-text',\n )}\n size={40}\n icon={\n navigationIcon[\n nav.icon\n ] || <TbCircle />\n }\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">\n {t(\n nav.translateKey,\n nav.title,\n )}\n </div>\n <div className=\"text-xs truncate\">\n {t(\n nav.meta?.description\n ?.translateKey ||\n '',\n nav.meta?.description\n ?.label || '',\n )}\n </div>\n </div>\n </MenuItem>\n </div>\n </div>\n </AuthorityCheck>\n )\n }\n return null\n })}\n </div>\n {navigationTree.some(\n (nav) =>\n nav.key === activeKey &&\n nav.type === NAV_ITEM_TYPE_COLLAPSE,\n ) && (\n <div className=\"ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 p-6\">\n <div\n className={classNames(\n 'grid gap-x-8 flex-1',\n gridClasses[columns]?.grid,\n gridClasses[columns]?.width,\n )}\n >\n {navigationTree\n .find((nav) => nav.key === activeKey)\n ?.subMenu.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 group\"\n onClick={() => onDropdownClose()}\n >\n <div\n className={classNames(\n 'flex items-center gap-2 h-[42px] heading-text group-hover:text-primary',\n routeKey === nav.key &&\n 'text-primary',\n )}\n >\n <span className=\"text-xl\">\n {navigationIcon[nav.icon] || (\n <TbCircle />\n )}\n </span>\n <span>\n {t(nav.translateKey, nav.title)}\n </span>\n </div>\n </HorizontalMenuNavLink>\n </AuthorityCheck>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n\nconst HorizontalMenuDropdownContent = (\n props: HorizontalMenuDropdownContentProps,\n) => {\n const { style, navigationTree, layoutMeta, ...rest } = props\n\n return (\n <div\n className=\"rounded-2xl bg-white dark:bg-gray-900 ring-0 shadow-[0px_48px_64px_-16px_rgba(0,0,0,0.25)] border border-gray-100 dark:border-gray-800 focus:outline-none min-w-[180px]\"\n style={style}\n >\n {layoutMeta?.layout === 'default' && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n {layoutMeta?.layout === 'columns' && (\n <ColumnsLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n showColumnTitle={layoutMeta.showColumnTitle}\n {...rest}\n />\n )}\n {layoutMeta?.layout === 'tabs' && (\n <TabLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n {...rest}\n />\n )}\n {!layoutMeta && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n </div>\n )\n}\n\nexport default HorizontalMenuDropdownContent\n"],"names":["gridClasses","MenuItem","children","className","active","rest","jsx","classNames","MenuIcon","icon","Fragment","navigationIcon","TbCircle","MenuLink","path","isExternalLink","onClick","title","description","HorizontalMenuNavLink","jsxs","Avatar","ColumnsLayout","props","navigationTree","t","onDropdownClose","columns","showColumnTitle","routeKey","userAuthority","_a","nav","AuthorityCheck","subNav","_b","_d","_c","NAV_ITEM_TYPE_ITEM","DefaultLayout","renderNavigation","navTree","cascade","nextCascade","Dropdown","NAV_ITEM_TYPE_COLLAPSE","TabLayout","routeParentKey","activeKey","setActiveKey","useState","HorizontalMenuDropdownContent","style","layoutMeta"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HorizontalMenuDropdownContent.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownContent.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport Avatar from \"@/components/ui/Avatar\";\nimport Dropdown from \"@/components/ui/Dropdown\";\nimport HorizontalMenuNavLink from \"./HorizontalMenuNavLink\";\nimport AuthorityCheck from \"@/components/shared/AuthorityCheck\";\nimport classNames from \"@/utils/classNames\";\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from \"@/constants/navigation.constant\";\nimport navigationIcon from \"@/configs/navigation-icon.config\";\nimport { TbCircle } from \"react-icons/tb\";\nimport type { CommonProps, TraslationFn } from \"@/@types/common\";\nimport type { NavigationTree, HorizontalMenuMeta } from \"@/@types/navigation\";\nimport type { ReactNode, HTMLProps } from \"react\";\n\ninterface LayoutProps extends CommonProps {\n navigationTree: NavigationTree[];\n t: TraslationFn;\n onDropdownClose: () => void;\n routeKey: string;\n routeParentKey?: string;\n userAuthority: string[];\n}\n\ninterface HorizontalMenuDropdownContentProps extends LayoutProps {\n layoutMeta?: HorizontalMenuMeta;\n}\n\nconst gridClasses = {\n 1: {\n grid: \"grid-cols-1\",\n width: \"w-[150px]\",\n },\n 2: {\n grid: \"grid-cols-2\",\n width: \"w-[350px]\",\n },\n 3: {\n grid: \"grid-cols-3\",\n width: \"w-[750px]\",\n },\n 4: {\n grid: \"grid-cols-4\",\n width: \"w-[950px]\",\n },\n 5: {\n grid: \"grid-cols-5\",\n width: \"w-[1150px]\",\n },\n};\n\nconst MenuItem = ({\n children,\n className,\n active,\n ...rest\n}: CommonProps & { active?: boolean } & HTMLProps<HTMLDivElement>) => {\n return (\n <div\n className={classNames(\n \"cursor-pointer font-semibold px-3 rounded-lg flex items-center w-full whitespace-nowrap gap-x-2 transition-colors duration-150 hover:text-gray-900 hover:bg-gray-100 dark:hover:text-gray-100 dark:hover:bg-gray-800\",\n active && \"bg-gray-100 dark:bg-gray-800\",\n className\n )}\n role=\"menuitem\"\n {...rest}\n >\n {children}\n </div>\n );\n};\n\nconst MenuIcon = ({ icon }: { icon: string }) => {\n if (typeof icon !== \"string\" && !icon) {\n return <></>;\n }\n\n return (\n <>\n {navigationIcon[icon] && (\n <span className={`text-xl`}>\n {navigationIcon[icon] || <TbCircle />}\n </span>\n )}\n </>\n );\n};\n\nconst MenuLink = ({\n path,\n isExternalLink,\n onClick,\n icon,\n title,\n description,\n active,\n}: {\n path: string;\n isExternalLink?: boolean;\n onClick: () => void;\n icon: ReactNode;\n title: string;\n description: string;\n active?: boolean;\n}) => (\n <HorizontalMenuNavLink\n path={path}\n isExternalLink={isExternalLink}\n className=\"gap-2 block\"\n onClick={onClick}\n >\n <MenuItem className=\"py-2 px-2 gap-3\" active={active}>\n <div>\n <Avatar\n className={classNames(\n \"bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\",\n active ? \"text-primary\" : \"heading-text\"\n )}\n size={40}\n icon={icon}\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">{title}</div>\n <div className=\"text-xs truncate\">{description}</div>\n </div>\n </MenuItem>\n </HorizontalMenuNavLink>\n);\n\nconst ColumnsLayout = (\n props: LayoutProps & {\n columns: 1 | 2 | 3 | 4 | 5;\n showColumnTitle?: boolean;\n }\n) => {\n const {\n navigationTree,\n t,\n onDropdownClose,\n columns = 1,\n showColumnTitle = true,\n routeKey,\n userAuthority,\n } = props;\n\n return (\n <div className=\"flex max-w-[1400px] w-full\">\n <div\n className={classNames(\n \"grid gap-y-6 gap-x-8 p-6 flex-1\",\n gridClasses[columns]?.grid\n )}\n >\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"max-w-[250px]\">\n {showColumnTitle && (\n <div className=\"heading-text font-bold mb-2\">\n {t(nav.translateKey, nav.title)}\n </div>\n )}\n {nav.subMenu.map((subNav) => (\n <AuthorityCheck\n key={subNav.key}\n userAuthority={userAuthority}\n authority={subNav.authority}\n >\n <div key={subNav.key}>\n <MenuLink\n path={subNav.path}\n isExternalLink={subNav.isExternalLink}\n icon={navigationIcon[subNav.icon] || <TbCircle />}\n title={t(subNav.translateKey, subNav.title)}\n description={t(\n subNav.meta?.description?.translateKey || \"\",\n subNav.meta?.description?.label || \"\"\n )}\n active={subNav.key === routeKey}\n onClick={onDropdownClose}\n />\n </div>\n </AuthorityCheck>\n ))}\n </div>\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n {navigationTree.some((nav) => nav.type === NAV_ITEM_TYPE_ITEM) && (\n <div\n className={classNames(\n \"ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 min-w-[280px] p-4 flex flex-col\"\n )}\n >\n {navigationTree.map((nav) => {\n if (nav.subMenu.length === 0 && nav.type === NAV_ITEM_TYPE_ITEM) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <MenuLink\n key={nav.key}\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n icon={navigationIcon[nav.icon] || <TbCircle />}\n title={t(nav.translateKey, nav.title)}\n description={t(\n nav.meta?.description?.translateKey || \"\",\n nav.meta?.description?.label || \"\"\n )}\n active={nav.key === routeKey}\n onClick={onDropdownClose}\n />\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n )}\n </div>\n );\n};\n\nconst DefaultLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n routeKey,\n userAuthority,\n}: LayoutProps) => {\n const renderNavigation = (navTree: NavigationTree[], cascade: number) => {\n const nextCascade = cascade + 1;\n\n return (\n <div className={classNames(cascade === 0 && \"p-3\")}>\n {navTree.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <ul>\n {nav.type === NAV_ITEM_TYPE_ITEM && (\n <Dropdown.Item active={routeKey === nav.key}>\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 h-full\"\n onClick={onDropdownClose}\n >\n <MenuIcon icon={nav.icon} />\n <span>{t(nav.translateKey, nav.title)}</span>\n </HorizontalMenuNavLink>\n </Dropdown.Item>\n )}\n {nav.type === NAV_ITEM_TYPE_COLLAPSE && (\n <Dropdown\n renderTitle={\n <span className=\"flex items-center gap-2\">\n <MenuIcon icon={nav.icon} />\n <span>{t(nav.translateKey, nav.title)}</span>\n </span>\n }\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(nav.subMenu, nextCascade)}\n </Dropdown>\n )}\n </ul>\n </AuthorityCheck>\n ))}\n </div>\n );\n };\n\n return <>{renderNavigation(navigationTree, 0)}</>;\n};\n\nconst TabLayout = ({\n navigationTree,\n t,\n onDropdownClose,\n columns,\n routeKey,\n userAuthority,\n routeParentKey,\n}: LayoutProps & { columns: 1 | 2 | 3 | 4 | 5 }) => {\n const [activeKey, setActiveKey] = useState(\n navigationTree.some((nav) => nav.key === routeParentKey)\n ? routeParentKey\n : navigationTree[0]?.key || \"\"\n );\n\n return (\n <div className=\"flex\">\n <div className=\"p-4\">\n {navigationTree.map((nav) => {\n if (nav.subMenu.length > 0) {\n return (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <div className=\"min-w-[250px]\">\n <div key={nav.key}>\n <MenuItem\n className=\"py-2 px-2 gap-3\"\n active={nav.key === activeKey}\n onClick={() => setActiveKey(nav.key)}\n >\n <div>\n <Avatar\n className={classNames(\n \"bg-white dark:bg-transparent p-2 border-2 border-gray-200 dark:border-gray-600\",\n nav.key === routeKey\n ? \"text-primary\"\n : \"heading-text\"\n )}\n size={40}\n icon={navigationIcon[nav.icon] || <TbCircle />}\n shape=\"round\"\n />\n </div>\n <div className=\"min-w-0\">\n <div className=\"heading-text font-bold\">\n {t(nav.translateKey, nav.title)}\n </div>\n <div className=\"text-xs truncate\">\n {t(\n nav.meta?.description?.translateKey || \"\",\n nav.meta?.description?.label || \"\"\n )}\n </div>\n </div>\n </MenuItem>\n </div>\n </div>\n </AuthorityCheck>\n );\n }\n return null;\n })}\n </div>\n {navigationTree.some(\n (nav) => nav.key === activeKey && nav.type === NAV_ITEM_TYPE_COLLAPSE\n ) && (\n <div className=\"ltr:border-l rtl:border-r border-gray-200 dark:border-gray-800 p-6\">\n <div\n className={classNames(\n \"grid gap-x-8 flex-1\",\n gridClasses[columns]?.grid,\n gridClasses[columns]?.width\n )}\n >\n {navigationTree\n .find((nav) => nav.key === activeKey)\n ?.subMenu.map((nav) => (\n <AuthorityCheck\n key={nav.key}\n userAuthority={userAuthority}\n authority={nav.authority}\n >\n <HorizontalMenuNavLink\n path={nav.path}\n isExternalLink={nav.isExternalLink}\n className=\"gap-2 group\"\n onClick={() => onDropdownClose()}\n >\n <div\n className={classNames(\n \"flex items-center gap-2 h-[42px] heading-text group-hover:text-primary\",\n routeKey === nav.key && \"text-primary\"\n )}\n >\n <span className=\"text-xl\">\n {navigationIcon[nav.icon] || <TbCircle />}\n </span>\n <span>{t(nav.translateKey, nav.title)}</span>\n </div>\n </HorizontalMenuNavLink>\n </AuthorityCheck>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst HorizontalMenuDropdownContent = (\n props: HorizontalMenuDropdownContentProps\n) => {\n const { style, navigationTree, layoutMeta, ...rest } = props;\n\n return (\n <div\n className=\"rounded-2xl bg-white dark:bg-gray-900 ring-0 shadow-[0px_48px_64px_-16px_rgba(0,0,0,0.25)] border border-gray-100 dark:border-gray-800 focus:outline-none min-w-[180px]\"\n style={style}\n >\n {layoutMeta?.layout === \"default\" && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n {layoutMeta?.layout === \"columns\" && (\n <ColumnsLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n showColumnTitle={layoutMeta.showColumnTitle}\n {...rest}\n />\n )}\n {layoutMeta?.layout === \"tabs\" && (\n <TabLayout\n navigationTree={navigationTree}\n columns={layoutMeta.columns}\n {...rest}\n />\n )}\n {!layoutMeta && (\n <DefaultLayout navigationTree={navigationTree} {...rest} />\n )}\n </div>\n );\n};\n\nexport default HorizontalMenuDropdownContent;\n"],"names":["gridClasses","MenuItem","children","className","active","rest","jsx","classNames","MenuIcon","icon","Fragment","navigationIcon","TbCircle","MenuLink","path","isExternalLink","onClick","title","description","HorizontalMenuNavLink","jsxs","Avatar","ColumnsLayout","props","navigationTree","t","onDropdownClose","columns","showColumnTitle","routeKey","userAuthority","_a","nav","AuthorityCheck","subNav","_b","_d","_c","NAV_ITEM_TYPE_ITEM","DefaultLayout","renderNavigation","navTree","cascade","nextCascade","Dropdown","NAV_ITEM_TYPE_COLLAPSE","TabLayout","routeParentKey","activeKey","setActiveKey","useState","HorizontalMenuDropdownContent","style","layoutMeta"],"mappings":"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"}
|
package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.js
CHANGED
|
@@ -1,36 +1,37 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
const
|
|
5
|
-
const { className:
|
|
6
|
-
className:
|
|
1
|
+
import { jsx as e, Fragment as l } from "react/jsx-runtime";
|
|
2
|
+
import b from "../../../utils/classNames.js";
|
|
3
|
+
import d from "./HorizontalMenuNavLink.js";
|
|
4
|
+
const p = (n) => {
|
|
5
|
+
const { className: a, active: i, asElement: t = "button", ...r } = n, o = {
|
|
6
|
+
className: b(
|
|
7
7
|
"font-semibold inline-flex h-9 w-max items-center justify-center rounded-lg bg-background px-4 py-2 dark:text-gray-300 dark:hover:text-gray-100 text-gray-900 hover:bg-gray-100 dark:hover:bg-white/10 transition-colors",
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
a,
|
|
9
|
+
i && "bg-gray-100 hover:bg-gray-200 dark:bg-white/10 dark:hover:bg-white/20"
|
|
10
10
|
)
|
|
11
11
|
};
|
|
12
|
-
if (
|
|
13
|
-
const { path:
|
|
14
|
-
return /* @__PURE__ */
|
|
15
|
-
|
|
12
|
+
if (t === "a") {
|
|
13
|
+
const { path: s, isExternalLink: g, linkRenderer: m, ...c } = r;
|
|
14
|
+
return /* @__PURE__ */ e(
|
|
15
|
+
d,
|
|
16
16
|
{
|
|
17
|
-
|
|
17
|
+
linkRenderer: m,
|
|
18
|
+
path: s,
|
|
18
19
|
isExternalLink: g,
|
|
19
20
|
...o,
|
|
20
|
-
...
|
|
21
|
+
...c
|
|
21
22
|
}
|
|
22
23
|
);
|
|
23
24
|
}
|
|
24
|
-
return
|
|
25
|
+
return t === "button" ? /* @__PURE__ */ e(
|
|
25
26
|
"button",
|
|
26
27
|
{
|
|
27
28
|
ref: r.ref,
|
|
28
29
|
...o,
|
|
29
30
|
...r
|
|
30
31
|
}
|
|
31
|
-
) : /* @__PURE__ */
|
|
32
|
+
) : /* @__PURE__ */ e(l, {});
|
|
32
33
|
};
|
|
33
34
|
export {
|
|
34
|
-
|
|
35
|
+
p as default
|
|
35
36
|
};
|
|
36
37
|
//# sourceMappingURL=HorizontalMenuDropdownTrigger.js.map
|
package/dist/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalMenuDropdownTrigger.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.tsx"],"sourcesContent":["import classNames from
|
|
1
|
+
{"version":3,"file":"HorizontalMenuDropdownTrigger.js","sources":["../../../../../lib/@ecme/components/template/HorizontalMenuContent/HorizontalMenuDropdownTrigger.tsx"],"sourcesContent":["import classNames from \"@/utils/classNames\";\nimport HorizontalMenuNavLink from \"./HorizontalMenuNavLink\";\nimport type { CommonProps } from \"@/@types/common\";\nimport type { HorizontalMenuNavLinkProps } from \"./HorizontalMenuNavLink\";\nimport type { ButtonHTMLAttributes, Ref } from \"react\";\n\ninterface HorizontalMenuDropdownTriggerCommonProps extends CommonProps {\n active?: boolean;\n}\n\ninterface ButtonProps\n extends HorizontalMenuDropdownTriggerCommonProps,\n ButtonHTMLAttributes<HTMLButtonElement> {\n asElement?: \"button\";\n ref?: Ref<HTMLButtonElement>;\n}\n\ninterface AnchorProps\n extends HorizontalMenuNavLinkProps,\n HorizontalMenuDropdownTriggerCommonProps {\n asElement?: \"a\";\n path: string;\n isExternalLink?: boolean;\n linkRenderer?: HorizontalMenuNavLinkProps[\"linkRenderer\"];\n}\n\ntype HorizontalMenuDropdownTriggerProps = ButtonProps | AnchorProps;\n\nconst HorizontalMenuDropdownTrigger = (\n props: HorizontalMenuDropdownTriggerProps\n) => {\n const { className, active, asElement = \"button\", ...rest } = props;\n const commonProps = {\n className: classNames(\n \"font-semibold inline-flex h-9 w-max items-center justify-center rounded-lg bg-background px-4 py-2 dark:text-gray-300 dark:hover:text-gray-100 text-gray-900 hover:bg-gray-100 dark:hover:bg-white/10 transition-colors\",\n className,\n active &&\n \"bg-gray-100 hover:bg-gray-200 dark:bg-white/10 dark:hover:bg-white/20\"\n ),\n };\n\n if (asElement === \"a\") {\n const { path, isExternalLink, linkRenderer, ...anchorProps } =\n rest as AnchorProps;\n return (\n <HorizontalMenuNavLink\n linkRenderer={linkRenderer}\n path={path as string}\n isExternalLink={isExternalLink}\n {...commonProps}\n {...anchorProps}\n />\n );\n }\n\n if (asElement === \"button\") {\n return (\n <button\n ref={(rest as ButtonProps).ref}\n {...commonProps}\n {...(rest as ButtonProps)}\n />\n );\n }\n\n return <></>;\n};\n\nexport default HorizontalMenuDropdownTrigger;\n"],"names":["HorizontalMenuDropdownTrigger","props","className","active","asElement","rest","commonProps","classNames","path","isExternalLink","linkRenderer","anchorProps","jsx","HorizontalMenuNavLink","Fragment"],"mappings":";;;AA4BA,MAAMA,IAAgC,CACpCC,MACG;AACH,QAAM,EAAE,WAAAC,GAAW,QAAAC,GAAQ,WAAAC,IAAY,UAAU,GAAGC,MAASJ,GACvDK,IAAc;AAAA,IAClB,WAAWC;AAAA,MACT;AAAA,MACAL;AAAA,MACAC,KACE;AAAA,IAAA;AAAA,EACJ;AAGF,MAAIC,MAAc,KAAK;AACrB,UAAM,EAAE,MAAAI,GAAM,gBAAAC,GAAgB,cAAAC,GAAc,GAAGC,MAC7CN;AACF,WACE,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,cAAAH;AAAA,QACA,MAAAF;AAAA,QACA,gBAAAC;AAAA,QACC,GAAGH;AAAA,QACH,GAAGK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AAIJ,SAAIP,MAAc,WAEd,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAMP,EAAqB;AAAA,MAC1B,GAAGC;AAAA,MACH,GAAID;AAAA,IAAA;AAAA,EAAA,IAKJ,gBAAAO,EAAAE,GAAA,EAAE;AACX;"}
|