dsql-admin/dsql-app/.local_dist/server/chunks/5313.js
2024-11-05 12:12:42 +01:00

516 lines
25 KiB
JavaScript

"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_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<HTMLAnchorElement> } */ 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"
})
]
})
})
]
})
]
})
]
});
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
}
/***/ })
};
;