165 lines
4.4 KiB
SCSS
165 lines
4.4 KiB
SCSS
@use '@angular/cdk';
|
|
@use '../core/tokens/m2/mat/paginator' as tokens-mat-paginator;
|
|
@use '../core/tokens/token-utils';
|
|
@use '../core/style/vendor-prefixes';
|
|
|
|
$padding: 0 8px;
|
|
$page-size-margin-right: 8px;
|
|
|
|
$items-per-page-label-margin: 0 4px;
|
|
$selector-margin: 0 4px;
|
|
$selector-trigger-width: 84px;
|
|
$touch-target-height: 48px;
|
|
|
|
$range-label-margin: 0 32px 0 24px;
|
|
$button-icon-size: 28px;
|
|
|
|
.mat-mdc-paginator {
|
|
display: block;
|
|
|
|
@include token-utils.use-tokens(
|
|
tokens-mat-paginator.$prefix,
|
|
tokens-mat-paginator.get-token-slots()
|
|
) {
|
|
@include vendor-prefixes.smooth-font();
|
|
@include token-utils.create-token-slot(color, container-text-color);
|
|
@include token-utils.create-token-slot(background-color, container-background-color);
|
|
@include token-utils.create-token-slot(font-family, container-text-font);
|
|
@include token-utils.create-token-slot(line-height, container-text-line-height);
|
|
@include token-utils.create-token-slot(font-size, container-text-size);
|
|
@include token-utils.create-token-slot(font-weight, container-text-weight);
|
|
@include token-utils.create-token-slot(letter-spacing, container-text-tracking);
|
|
|
|
// Apply custom form-field density for paginator.
|
|
@include token-utils.create-token-slot(
|
|
--mat-form-field-container-height,
|
|
form-field-container-height
|
|
);
|
|
@include token-utils.create-token-slot(
|
|
--mat-form-field-container-vertical-padding,
|
|
form-field-container-vertical-padding
|
|
);
|
|
|
|
.mat-mdc-select-value {
|
|
@include token-utils.create-token-slot(font-size, select-trigger-text-size);
|
|
}
|
|
}
|
|
|
|
// This element reserves space for hints and error messages.
|
|
// Hide it since we know that we won't need it.
|
|
.mat-mdc-form-field-subscript-wrapper {
|
|
display: none;
|
|
}
|
|
|
|
.mat-mdc-select {
|
|
// The smaller font size inherited from the paginator throws off the centering of the select
|
|
// inside the form field. This `line-height` helps to center it relative to the other text.
|
|
line-height: 1.5;
|
|
}
|
|
}
|
|
|
|
// Note: this wrapper element is only used to get the flexbox vertical centering to work
|
|
// with the `min-height` on IE11. It can be removed if we drop support for IE.
|
|
.mat-mdc-paginator-outer-container {
|
|
display: flex;
|
|
}
|
|
|
|
.mat-mdc-paginator-container {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
padding: $padding;
|
|
flex-wrap: wrap;
|
|
width: 100%;
|
|
|
|
@include token-utils.use-tokens(
|
|
tokens-mat-paginator.$prefix,
|
|
tokens-mat-paginator.get-token-slots()
|
|
) {
|
|
@include token-utils.create-token-slot(min-height, container-size);
|
|
}
|
|
}
|
|
|
|
.mat-mdc-paginator-page-size {
|
|
display: flex;
|
|
align-items: baseline;
|
|
margin-right: $page-size-margin-right;
|
|
|
|
[dir='rtl'] & {
|
|
margin-right: 0;
|
|
margin-left: $page-size-margin-right;
|
|
}
|
|
}
|
|
|
|
.mat-mdc-paginator-page-size-label {
|
|
margin: $items-per-page-label-margin;
|
|
}
|
|
|
|
.mat-mdc-paginator-page-size-select {
|
|
margin: $selector-margin;
|
|
width: $selector-trigger-width;
|
|
}
|
|
|
|
.mat-mdc-paginator-range-label {
|
|
margin: $range-label-margin;
|
|
}
|
|
|
|
.mat-mdc-paginator-range-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.mat-mdc-paginator-icon {
|
|
display: inline-block;
|
|
width: $button-icon-size;
|
|
|
|
@include token-utils.use-tokens(
|
|
tokens-mat-paginator.$prefix,
|
|
tokens-mat-paginator.get-token-slots()
|
|
) {
|
|
@include token-utils.create-token-slot(fill, enabled-icon-color);
|
|
|
|
.mat-mdc-icon-button[aria-disabled] & {
|
|
@include token-utils.create-token-slot(fill, disabled-icon-color);
|
|
}
|
|
}
|
|
|
|
[dir='rtl'] & {
|
|
transform: rotate(180deg);
|
|
}
|
|
}
|
|
|
|
@include cdk.high-contrast {
|
|
// The disabled button icon has to be set explicitly since the selector is too specific.
|
|
.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,
|
|
.mat-mdc-paginator-icon {
|
|
fill: currentColor;
|
|
|
|
// On Chromium browsers the `currentColor` blends in with the
|
|
// background for SVGs so we have to fall back to `CanvasText`.
|
|
fill: CanvasText;
|
|
}
|
|
|
|
.mat-mdc-paginator-range-actions .mat-mdc-icon-button {
|
|
outline: solid 1px;
|
|
}
|
|
}
|
|
|
|
.mat-mdc-paginator-touch-target {
|
|
@include token-utils.use-tokens(
|
|
tokens-mat-paginator.$prefix,
|
|
tokens-mat-paginator.get-token-slots()
|
|
) {
|
|
@include token-utils.create-token-slot(display, touch-target-display);
|
|
}
|
|
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: $selector-trigger-width;
|
|
height: $touch-target-height;
|
|
background-color: transparent;
|
|
transform: translate(-50%, -50%);
|
|
cursor: pointer;
|
|
}
|