P8-Panels/app/theme/variants/p8p_pagination_variants.js

52 lines
1.8 KiB
JavaScript

/*
Парус 8 - Панели мониторинга
Расширение стилистики Pagination
*/
//---------------------
//Подключение библиотек
//---------------------
import { P8P_TABLE_PAGINATOR_ALIGN, P8P_TABLE_PAGINATOR_POSITION } from "../../components/p8p_table/p8p_table_constants"; //Константы таблиц
//----------------
//Интерфейс модуля
//----------------
//Кастомные пагинаторы
export const P8P_PAGINATIONS = ({ theme, pagesAlign, position }) => ({
primary: {},
P8PTablePagination: {
display: "flex",
justifyContent:
pagesAlign === P8P_TABLE_PAGINATOR_ALIGN.LEFT
? "flex-start"
: pagesAlign === P8P_TABLE_PAGINATOR_ALIGN.CENTER
? "space-around"
: "flex-end",
...(position === P8P_TABLE_PAGINATOR_POSITION.TOP ? { paddingBottom: "10px" } : { paddingTop: "10px" }),
"& .MuiPaginationItem-root": {
...theme.typography.P8PBody2
}
}
});
//Наименование кастомных пагинаторов
export const P8P_PAGINATION_VARIANT = {
TABLE_PAGINATION: "P8PTablePagination"
};
//Кастомная стилистика компонента
export const P8P_PAGINATION_OVERRIDES = {
styleOverrides: {
root: ({ ownerState, theme }) => {
//Определяем вариант
const variant = ownerState?.variant || "primary";
//Определяем доп. параметры
const { pagesAlign, position } = ownerState["data-variant-props"] || {};
//Возвращаем стили варианта
return P8P_PAGINATIONS({ theme, pagesAlign, position })[variant];
}
}
};