UNPKG

@premieroctet/next-admin

Version:

Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje

140 lines (139 loc) 6.18 kB
"use strict"; var __webpack_require__ = {}; (()=>{ __webpack_require__.n = (module)=>{ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module; __webpack_require__.d(getter, { a: getter }); return getter; }; })(); (()=>{ __webpack_require__.d = (exports1, definition)=>{ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, { enumerable: true, get: definition[key] }); }; })(); (()=>{ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop); })(); (()=>{ __webpack_require__.r = (exports1)=>{ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, { value: 'Module' }); Object.defineProperty(exports1, '__esModule', { value: true }); }; })(); var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>useDataColumns }); const jsx_runtime_namespaceObject = require("react/jsx-runtime"); const external_react_namespaceObject = require("react"); const Cell_js_namespaceObject = require("../components/Cell.js"); var Cell_js_default = /*#__PURE__*/ __webpack_require__.n(Cell_js_namespaceObject); const TableHead_js_namespaceObject = require("../components/TableHead.js"); var TableHead_js_default = /*#__PURE__*/ __webpack_require__.n(TableHead_js_namespaceObject); const ConfigContext_js_namespaceObject = require("../context/ConfigContext.js"); const I18nContext_js_namespaceObject = require("../context/I18nContext.js"); const external_useRouterInternal_js_namespaceObject = require("./useRouterInternal.js"); const useDataColumns_useDataColumns = ({ sortable, data, resource, sortDirection, sortColumn, resourcesIdProperty, rawData })=>{ const { router, query } = (0, external_useRouterInternal_js_namespaceObject.useRouterInternal)(); const { isAppDir, options: configOptions } = (0, ConfigContext_js_namespaceObject.useConfig)(); const { t } = (0, I18nContext_js_namespaceObject.useI18n)(); const options = configOptions?.model?.[resource]; const allDisplayedFields = (0, external_react_namespaceObject.useMemo)(()=>{ if (options?.list?.display) return options.list.display.map((disp)=>{ if ("string" == typeof disp) return { name: disp, virtual: false, label: void 0 }; return { name: disp.key, virtual: true, label: t(disp.label) }; }); if (data?.[0]) return Object.keys(data[0]).map((key)=>({ name: key, virtual: false, label: void 0 })); return []; }, []); return (0, external_react_namespaceObject.useMemo)(()=>data && data?.length > 0 ? allDisplayedFields.map((property)=>{ const propertyName = property.name; const isVirtualField = property.virtual; const propertyAlias = t(`model.${resource}.fields.${propertyName}`, {}, options?.aliases?.[propertyName] || property.label || propertyName); const isColumnSortable = sortable && !isVirtualField; return { accessorKey: propertyName, header: ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(TableHead_js_default(), { className: isColumnSortable ? "cursor-pointer" : "cursor-default", sortDirection: sortDirection, sortColumn: sortColumn, property: propertyName, propertyName: propertyAlias, onClick: ()=>{ if (isColumnSortable) router?.push({ pathname: location.pathname, query: { ...query, sortColumn: propertyName, sortDirection: "asc" === query.sortDirection ? "desc" : "asc" } }); } }, propertyName), cell: ({ row })=>{ const modelData = row.original; const cellData = modelData[propertyName]; const dataFormatter = isVirtualField ? options?.list?.display?.find((disp)=>"object" == typeof disp && disp.key === propertyName)?.formatter : options?.list?.fields?.[propertyName]?.formatter; return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Cell_js_default(), { cell: cellData, formatter: isAppDir ? void 0 : dataFormatter ? (row, ctx)=>{ if (isVirtualField) return dataFormatter?.({ row, locale: ctx?.locale }); return dataFormatter?.(row[propertyName], ctx); } : void 0, copyable: options?.list?.copy?.includes(propertyName), getRawData: ()=>rawData?.[row.index] }); } }; }) : [], [ data, allDisplayedFields, t, resource, options?.aliases, options?.list?.display, options?.list?.fields, options?.list?.copy, sortable, sortDirection, sortColumn, router, query, isAppDir, rawData ]); }; const useDataColumns = useDataColumns_useDataColumns; exports["default"] = __webpack_exports__["default"]; for(var __webpack_i__ in __webpack_exports__)if (-1 === [ "default" ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__]; Object.defineProperty(exports, '__esModule', { value: true });