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

66 lines
2.0 KiB
JavaScript

/*
Парус 8 - Панели мониторинга
Расширение стилистики DialogContent
*/
//---------------------
//Подключение библиотек
//---------------------
import { P8P_SCROLL, P8P_SCROLL_AUTO } from "../styles/common"; //Стили - общие
//---------
//Константы
//---------
//Общие стили
const defaultStyles = paddingDisabled => ({
...(paddingDisabled ? { padding: "0px" } : {})
});
//----------------
//Интерфейс модуля
//----------------
//Кастомные диалоги (содержимое)
export const P8P_DIALOG_CONTENTS = (theme, paddingDisabled) => ({
primary: {},
P8PPrimary: { ...theme.typography.P8PBody3, ...P8P_SCROLL_AUTO, ...defaultStyles(paddingDisabled) },
P8PTask: {
minWidth: "400px",
overflowX: "auto",
...P8P_SCROLL,
...defaultStyles(paddingDisabled)
},
P8PHint: { ...theme.typography.P8PBody4, color: theme.palette.P8PText.primary, ...defaultStyles(paddingDisabled) },
P8PHidden: {
...theme.typography.P8PBody3,
display: "flex",
flexDirection: "column",
overflow: "hidden",
...defaultStyles(paddingDisabled)
}
});
//Наименование кастомных диалогов (содержимое)
export const P8P_DIALOG_CONTENT_VARIANT = {
PRIMARY: "P8PPrimary",
TASK: "P8PTask",
HINT: "P8PHint",
HIDDEN: "P8PHidden"
};
//Кастомная стилистика компонента
export const P8P_DIALOG_CONTENT_OVERRIDES = {
styleOverrides: {
root: ({ ownerState, theme }) => {
//Определяем вариант
const variant = ownerState["variant"] || "primary";
//Определяем доп. параметры
const { paddingDisabled } = ownerState["data-variant-props"] || {};
//Возвращаем стили варианта
return P8P_DIALOG_CONTENTS(theme, paddingDisabled)[variant];
}
}
};