"use strict"; exports.id = 5313; exports.ids = [5313]; exports.modules = { /***/ 8282: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": () => (/* binding */ SuAdminLayout) }); // EXTERNAL MODULE: external "react/jsx-runtime" var jsx_runtime_ = __webpack_require__(997); // EXTERNAL MODULE: external "react" var external_react_ = __webpack_require__(6689); var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_); // EXTERNAL MODULE: external "next/head" var head_ = __webpack_require__(968); var head_default = /*#__PURE__*/__webpack_require__.n(head_); // EXTERNAL MODULE: ./components/general/Logo.jsx var Logo = __webpack_require__(4017); // EXTERNAL MODULE: external "@mui/icons-material/CottageTwoTone" var CottageTwoTone_ = __webpack_require__(386); var CottageTwoTone_default = /*#__PURE__*/__webpack_require__.n(CottageTwoTone_); // EXTERNAL MODULE: external "@mui/icons-material/PeopleAltTwoTone" var PeopleAltTwoTone_ = __webpack_require__(8245); var PeopleAltTwoTone_default = /*#__PURE__*/__webpack_require__.n(PeopleAltTwoTone_); // EXTERNAL MODULE: external "@mui/icons-material/ErrorTwoTone" var ErrorTwoTone_ = __webpack_require__(6094); var ErrorTwoTone_default = /*#__PURE__*/__webpack_require__.n(ErrorTwoTone_); // EXTERNAL MODULE: external "@mui/icons-material/BackupTwoTone" var BackupTwoTone_ = __webpack_require__(9318); var BackupTwoTone_default = /*#__PURE__*/__webpack_require__.n(BackupTwoTone_); // EXTERNAL MODULE: external "@mui/icons-material/DocumentScannerTwoTone" var DocumentScannerTwoTone_ = __webpack_require__(6817); // EXTERNAL MODULE: external "@mui/icons-material/TerminalTwoTone" var TerminalTwoTone_ = __webpack_require__(415); var TerminalTwoTone_default = /*#__PURE__*/__webpack_require__.n(TerminalTwoTone_); // EXTERNAL MODULE: external "@mui/icons-material/LockPersonTwoTone" var LockPersonTwoTone_ = __webpack_require__(6547); var LockPersonTwoTone_default = /*#__PURE__*/__webpack_require__.n(LockPersonTwoTone_); ;// CONCATENATED MODULE: ./layouts/components/SuAdminLayout/Aside.jsx // @ts-check /** * ============================================================================== * Imports * ============================================================================== */ "use client"; /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * ============================================================================== * Main Component { Functional } * ============================================================================== * @param {object} props - React component props */ function Aside(props) { /** * Get Contexts * * @abstract { React.useContext } */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Javascript Variables * * @abstract Non hook variables and functions */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * React Hooks * * @abstract { useState, useEffect, useRef, etc ... } */ const [collapseAsideMobile, setCollapseAsideMobile] = external_react_default().useState(true); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Function Return * * @abstract Main Function Return */ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("aside", { className: "aside" + (collapseAsideMobile ? " mobile-collapsed" : " mobile-expanded"), style: { maxWidth: collapseAsideMobile ? "250px" : "300px", zIndex: 800 }, children: [ /*#__PURE__*/ jsx_runtime_.jsx(Logo/* default */.Z, { adminAside: true, collapseAsideMobile: collapseAsideMobile, setCollapseAsideMobile: setCollapseAsideMobile }), /*#__PURE__*/ jsx_runtime_.jsx("hr", { className: "opacity-0 mt-4" }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "main-links" + (collapseAsideMobile ? " hidden lg:flex" : " "), children: [ /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", { href: `/su`, "data-currentlink": `/su`, "data-strictlink": "true", children: [ /*#__PURE__*/ jsx_runtime_.jsx((CottageTwoTone_default()), { className: "text-slate-400" }), /*#__PURE__*/ jsx_runtime_.jsx("span", { children: "Dashboard" }) ] }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", { href: `/su/users`, "data-currentlink": `/su/users`, children: [ /*#__PURE__*/ jsx_runtime_.jsx((PeopleAltTwoTone_default()), { className: "text-slate-400" }), /*#__PURE__*/ jsx_runtime_.jsx("span", { children: "Users" }) ] }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", { href: `/su/error-logs`, "data-currentlink": `/su/error-logs`, children: [ /*#__PURE__*/ jsx_runtime_.jsx((ErrorTwoTone_default()), { className: "text-slate-400" }), /*#__PURE__*/ jsx_runtime_.jsx("span", { children: "Error Logs" }) ] }), false && /*#__PURE__*/ 0, /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", { href: `/su/backups`, "data-currentlink": `/su/backups`, children: [ /*#__PURE__*/ jsx_runtime_.jsx((BackupTwoTone_default()), { className: "text-slate-400" }), /*#__PURE__*/ jsx_runtime_.jsx("span", { children: "Backups" }) ] }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", { href: `/su/console`, "data-currentlink": `/su/console`, children: [ /*#__PURE__*/ jsx_runtime_.jsx((TerminalTwoTone_default()), { className: "text-slate-400" }), /*#__PURE__*/ jsx_runtime_.jsx("span", { children: "Console" }) ] }), true && /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", { href: `/su/envar`, "data-currentlink": `/su/envar`, children: [ /*#__PURE__*/ jsx_runtime_.jsx((LockPersonTwoTone_default()), { className: "text-slate-400" }), /*#__PURE__*/ jsx_runtime_.jsx("span", { children: "Env" }) ] }) ] }) ] }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// } // EXTERNAL MODULE: ./components/general/ThemeSelector.jsx var ThemeSelector = __webpack_require__(4981); // EXTERNAL MODULE: external "lucide-react" var external_lucide_react_ = __webpack_require__(2423); ;// CONCATENATED MODULE: ./layouts/components/SuAdminLayout/AdminHeader.jsx // @ts-check /** * ============================================================================== * Imports * ============================================================================== */ "use client"; /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * ============================================================================== * Main Component { Functional } * ============================================================================== * @param {object} props - React component props * @param {import("@/package-shared/types").UserType} props.user * @param {React.ReactNode} [props.extraHeaderContent] */ function AdminHeader({ user , extraHeaderContent }) { /** * Get Contexts * * @abstract { React.useContext } */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Javascript Variables * * @abstract Non hook variables and functions */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * React Hooks * * @abstract { useState, useEffect, useRef, etc ... } */ const [activeUser, setActiveUser] = external_react_default().useState(user ? user : null); external_react_default().useEffect(()=>{ if (user?.logged_in_status) { setActiveUser(user ? user : null); } }, [ user ]); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Function Return * * @abstract Main Function Return */ return /*#__PURE__*/ jsx_runtime_.jsx("section", { className: "overflow-visible w-full px-0 md:px-8 py-0 flex justify-center bg-white dark:bg-slate-800 shadow-lg gap-4 dark:shadow-black/10 z-50 shadow-slate-900/5", style: { zIndex: 700, border: "none" }, children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "w-full items-center justify-between gap-4 md:gap-8", children: [ /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "hidden xl:flex flex-col items-stretch grow fixed xl:static top-0 right-0 px-4 xl:px-0 shadow-xl xl:shadow-none h-screen xl:h-auto overflow-auto xl:overflow-visible w-screen sl:w-auto bg-white xl:bg-transparent pb-10 xl:pb-0", id: "main-nav-content-wrapper", children: [ /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "items-center mb-2 flex xl:hidden", children: [ /*#__PURE__*/ jsx_runtime_.jsx("a", { href: "/", className: "hidden xl:flex", children: /*#__PURE__*/ jsx_runtime_.jsx("img", { src: "/images/logo-icon-alt-2.png", alt: "Logo Icon", width: 37 }) }), /*#__PURE__*/ jsx_runtime_.jsx("button", { className: "outlined gray ml-auto", onClick: (e)=>{ /** @type {any} */ const mainNavWrapper = document.getElementById("main-nav-content-wrapper"); mainNavWrapper?.classList.toggle("hidden"); }, style: { border: "none" }, children: /*#__PURE__*/ jsx_runtime_.jsx("span", { className: "font-semibold text-4xl", children: "✕" }) }) ] }), /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "flex items-center w-full gap-6 grow flex-col xl:flex-row justify-start xl:justify-between", children: /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "gap-2 flex-col-reverse xl:flex-row gap-y-6 w-full xl:w-auto py-2", children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "ml-auto dropdown-wrapper", children: [ /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "bg-white rounded-full overflow-hidden", style: { width: "36px", height: "36px" }, children: /*#__PURE__*/ jsx_runtime_.jsx("img", { src: "/images/user-preset-thumbnail.png", alt: "User Image", width: 35, className: "w-full h-full object-cover" }) }), /*#__PURE__*/ jsx_runtime_.jsx("span", { children: /*#__PURE__*/ jsx_runtime_.jsx("b", { children: "Super User" }) }), /*#__PURE__*/ jsx_runtime_.jsx(external_lucide_react_.ChevronDown, { size: 20 }), /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "dropdown", children: /*#__PURE__*/ jsx_runtime_.jsx("a", { href: `/su/logout`, children: "Logout" }) }) ] }) }) }) ] }), /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "ml-2", children: /*#__PURE__*/ jsx_runtime_.jsx(ThemeSelector/* default */.Z, {}) }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("button", { className: "bg-transparent w-16 p-4 gap-1.5 flex xl:hidden flex-col hover:bg-transparent transition-all ml-auto", onClick: (e)=>{ /** @type {any} */ const mainNavWrapper = document.getElementById("main-nav-content-wrapper"); mainNavWrapper?.classList.toggle("hidden"); }, style: { minWidth: "50px", backgroundColor: "transparent" }, id: "main-header-hamburger-button", "aria-label": "Mobile Hambutget Button", children: [ /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full" }), /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full" }), /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full" }) ] }) ] }) }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// } // EXTERNAL MODULE: ./functions/frontend/updateNavLinks.js var updateNavLinks = __webpack_require__(9678); ;// CONCATENATED MODULE: ./layouts/SuAdminLayout.jsx // @ts-check /** * ============================================================================== * Imports * ============================================================================== */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * ============================================================================== * Main Component { Functional } * ============================================================================== * @param {object} props - React Props * @param {React.ReactNode} props.children - children component * @param {React.ReactNode} [props.head] - head Items * @param {import("@/package-shared/types").UserType} props.user - user object */ function SuAdminLayout({ children , head , user }) { /** * Get Contexts * * @abstract { React.useContext } */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Javascript Variables * * @abstract Non hook variables and functions */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * React Hooks * * @abstract { useState, useEffect, useRef, etc ... } */ external_react_default().useEffect(()=>{ /** @type { NodeListOf } */ const links = document.querySelectorAll("aside .main-links a"); (0,updateNavLinks/* default */.Z)({ links: links }); }, []); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Function Return * * @abstract Main Function Return */ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)((external_react_default()).Fragment, { children: [ /*#__PURE__*/ (0,jsx_runtime_.jsxs)((head_default()), { children: [ /*#__PURE__*/ jsx_runtime_.jsx("link", { rel: "stylesheet", href: "/styles/admin.css" }), head ] }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "admin w-full flex items-start gap-0", children: [ /*#__PURE__*/ jsx_runtime_.jsx(Aside, {}), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("main", { className: "relative", children: [ /*#__PURE__*/ jsx_runtime_.jsx(AdminHeader, { user: user }), /*#__PURE__*/ jsx_runtime_.jsx("div", { className: "flex-col items-start gap-6 px-4 sl:px-8 py-8 bg-slate-50 dark:bg-slate-900", children: children }), /*#__PURE__*/ jsx_runtime_.jsx("footer", { className: "flex justify-center w-full items-center p-4", children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", { className: "max-w-6xl w-full justify-center flex-wrap", children: [ /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", { href: "/", className: "flex items-center gap-2", children: [ /*#__PURE__*/ jsx_runtime_.jsx("img", { src: "/images/logo-icon-alt-2.png", alt: "Datasquirel Logo", width: 30 }), /*#__PURE__*/ jsx_runtime_.jsx("span", { className: "text-lg font-bold", children: "Datasquirel" }) ] }), /*#__PURE__*/ jsx_runtime_.jsx("span", { className: "opacity-25", children: "|" }), /*#__PURE__*/ (0,jsx_runtime_.jsxs)("span", { className: "text-sm text-slate-400 dark:text-slate-600 text-center", children: [ new Date().getFullYear(), " \xa9 Datasquirel. All rights reserved." ] }), /*#__PURE__*/ jsx_runtime_.jsx("span", { className: "opacity-25", children: "|" }), /*#__PURE__*/ jsx_runtime_.jsx("a", { href: "/docs", children: "Docs" }), /*#__PURE__*/ jsx_runtime_.jsx("span", { className: "opacity-25", children: "|" }), /*#__PURE__*/ jsx_runtime_.jsx("a", { href: "/terms", children: "Terms" }) ] }) }) ] }) ] }) ] }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// } /***/ }) }; ;