sass-references/angular-material/material/paginator/paginator-intl.ts

73 lines
2.3 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
import {Injectable, Optional, SkipSelf} from '@angular/core';
import {Subject} from 'rxjs';
/**
* To modify the labels and text displayed, create a new instance of MatPaginatorIntl and
* include it in a custom provider
*/
@Injectable({providedIn: 'root'})
export class MatPaginatorIntl {
/**
* Stream to emit from when labels are changed. Use this to notify components when the labels have
* changed after initialization.
*/
readonly changes: Subject<void> = new Subject<void>();
/** A label for the page size selector. */
itemsPerPageLabel: string = 'Items per page:';
/** A label for the button that increments the current page. */
nextPageLabel: string = 'Next page';
/** A label for the button that decrements the current page. */
previousPageLabel: string = 'Previous page';
/** A label for the button that moves to the first page. */
firstPageLabel: string = 'First page';
/** A label for the button that moves to the last page. */
lastPageLabel: string = 'Last page';
/** A label for the range of items within the current page and the length of the whole list. */
getRangeLabel: (page: number, pageSize: number, length: number) => string = (
page: number,
pageSize: number,
length: number,
) => {
if (length == 0 || pageSize == 0) {
return `0 of ${length}`;
}
length = Math.max(length, 0);
const startIndex = page * pageSize;
// If the start index exceeds the list length, do not try and fix the end index to the end.
const endIndex =
startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;
return `${startIndex + 1} ${endIndex} of ${length}`;
};
}
/** @docs-private */
export function MAT_PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl: MatPaginatorIntl) {
return parentIntl || new MatPaginatorIntl();
}
/** @docs-private */
export const MAT_PAGINATOR_INTL_PROVIDER = {
// If there is already an MatPaginatorIntl available, use that. Otherwise, provide a new one.
provide: MatPaginatorIntl,
deps: [[new Optional(), new SkipSelf(), MatPaginatorIntl]],
useFactory: MAT_PAGINATOR_INTL_PROVIDER_FACTORY,
};