Я столкнулся с такой же ситуацией и нашел следующее решение. Хотя это не обязательно идеально , оно позволяет вам продолжить выполнение желаемого соглашения.
styles.js
---------
const styles = (theme: Theme) =>
createStyles({
root: {
position: 'relative',
height: 'calc(100vh - 128px)',
},
//Apply changes to agGrid material HeaderRoot
myClassAppliedToGrid: {
'& .ag-header[ref="headerRoot"]':{
writingMode: 'vertical-lr',
marginTop: '100px',
}
}
//OR
//Apply Changes to agGrid material header row
myClassAppliedToGrid: {
'& .ag-header-row':{
writingMode: 'vertical-lr',
marginTop: '100px',
}
}
})
export default styles
Основная идея заключается в том, чтобы использовать синтаксис & SASS, чтобы «добраться до» agGrid и создать более конкретные c CSS классы, чтобы вы могли их переопределить. (см. https://css-tricks.com/the-sass-ampersand/ для получения дополнительной информации)
Ключевые сведения:
.parent {
& .child {}
}
превращается в
.parent .child {}
и
.some-class {
&.another-class {}
}
превращается в
.some-class.another-class { }
Используя этот Sytanx, вы сможете создавать CSS классы, которые вы можете применять к вашей сетке, столбцам, строкам и т. Д. c правильно переопределит материал ag-grid theme.
Вот еще один пример, но этот класс применяется к ячейке, используя agGrid cellStyleRules, когда над ним перетаскивается строка, а не применяет класс к сетке в целом. Таким образом, он воздействует только на ячейки, у которых происходит перетаскивание строк:
rowDraggedOverCellsTopEdge: {
'&.ag-cell': {
borderTopColor: theme.palette.gray[50],
borderTopWidth: 8,
backgroundColor: fade(theme.palette.gray[50], 0.3)
}
},
Наконец, одна вещь, которую я не делал, но рекомендовал бы исследовать, - это переопределение темы agGrid, особенно если у вас версия 23 +
https://www.ag-grid.com/javascript-grid-themes-provided/#customising -themes
Это может быть хорошей идеей, чтобы переопределить базовые настройки темы таким образом, если вы ожидаете последовательного внешнего вида ваши сетки на протяжении всего приложения.
Ура!