_data-table-pagination.scss 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. @use '@material/feature-targeting/feature-targeting';
  2. @use '@material/typography/typography';
  3. @use '@material/rtl/mixins' as rtl;
  4. @use '@material/icon-button/icon-button-theme';
  5. @use '@material/select/select-theme';
  6. @use '@material/list/evolution-mixins' as list-theme;
  7. @use '@material/menu/mixins' as menu-theme;
  8. @use './data-table-theme';
  9. // stylelint-disable selector-class-pattern --
  10. // NOTE: We disable `selector-class-pattern` above to allow using `mdc-` class
  11. // selectors.
  12. /// Sets core styles for data table pagination.
  13. @mixin core-styles($query: feature-targeting.all()) {
  14. .mdc-data-table__pagination {
  15. @include typography.typography(body2, $query: $query);
  16. }
  17. @include static-styles($query);
  18. }
  19. @mixin static-styles($query: feature-targeting.all()) {
  20. $feat-structure: feature-targeting.create-target($query, structure);
  21. .mdc-data-table__pagination {
  22. @include feature-targeting.targets($feat-structure) {
  23. box-sizing: border-box;
  24. display: flex;
  25. justify-content: flex-end;
  26. }
  27. }
  28. .mdc-data-table__pagination-trailing {
  29. @include feature-targeting.targets($feat-structure) {
  30. @include rtl.reflexive-box(margin, left, 4px);
  31. align-items: center;
  32. display: flex;
  33. flex-wrap: wrap;
  34. justify-content: flex-end;
  35. }
  36. }
  37. .mdc-data-table__pagination-navigation {
  38. @include feature-targeting.targets($feat-structure) {
  39. align-items: center;
  40. display: flex;
  41. }
  42. }
  43. .mdc-data-table__pagination-button {
  44. @include icon-button-theme.flip-icon-in-rtl($query: $query);
  45. @include feature-targeting.targets($feat-structure) {
  46. @include rtl.reflexive-box(margin, right, 4px);
  47. }
  48. }
  49. .mdc-data-table__pagination-total {
  50. @include feature-targeting.targets($feat-structure) {
  51. @include rtl.reflexive-property(
  52. margin,
  53. $left-value: 14px,
  54. $right-value: 36px
  55. );
  56. white-space: nowrap;
  57. }
  58. }
  59. .mdc-data-table__pagination-rows-per-page {
  60. @include feature-targeting.targets($feat-structure) {
  61. @include rtl.reflexive-box(margin, right, 22px);
  62. align-items: center;
  63. display: inline-flex;
  64. }
  65. }
  66. .mdc-data-table__pagination-rows-per-page-label {
  67. @include feature-targeting.targets($feat-structure) {
  68. @include rtl.reflexive-box(margin, right, 12px);
  69. white-space: nowrap;
  70. }
  71. }
  72. .mdc-data-table__pagination-rows-per-page-select {
  73. @include select-theme.variable-width($min-width: 80px, $query: $query);
  74. @include menu-theme.min-width(80px, $query: $query);
  75. @include feature-targeting.targets($feat-structure) {
  76. margin: 8px 0;
  77. }
  78. // TODO(b/158196144): Set it to `-5` density scale using density mixin when
  79. // select component supports it.
  80. @include select-theme.outlined-height(
  81. data-table-theme.$pagination-rows-per-page-select-height,
  82. $query: $query
  83. );
  84. .mdc-list-item {
  85. @include list-theme.one-line-item-height(
  86. data-table-theme.$pagination-rows-per-page-select-height,
  87. $query: $query
  88. );
  89. }
  90. }
  91. }