| import { __awaiter } from 'tslib'; |
| import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'; |
| import { MatSelectHarness } from '@angular/material/select/testing'; |
| import { coerceNumberProperty } from '@angular/cdk/coercion'; |
| |
| /** |
| * @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.io/license |
| */ |
| class _MatPaginatorHarnessBase extends ComponentHarness { |
| /** Goes to the next page in the paginator. */ |
| goToNextPage() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._nextButton()).click(); |
| }); |
| } |
| /** Goes to the previous page in the paginator. */ |
| goToPreviousPage() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._previousButton()).click(); |
| }); |
| } |
| /** Goes to the first page in the paginator. */ |
| goToFirstPage() { |
| return __awaiter(this, void 0, void 0, function* () { |
| const button = yield this._firstPageButton(); |
| // The first page button isn't enabled by default so we need to check for it. |
| if (!button) { |
| throw Error('Could not find first page button inside paginator. ' + |
| 'Make sure that `showFirstLastButtons` is enabled.'); |
| } |
| return button.click(); |
| }); |
| } |
| /** Goes to the last page in the paginator. */ |
| goToLastPage() { |
| return __awaiter(this, void 0, void 0, function* () { |
| const button = yield this._lastPageButton(); |
| // The last page button isn't enabled by default so we need to check for it. |
| if (!button) { |
| throw Error('Could not find last page button inside paginator. ' + |
| 'Make sure that `showFirstLastButtons` is enabled.'); |
| } |
| return button.click(); |
| }); |
| } |
| /** |
| * Sets the page size of the paginator. |
| * @param size Page size that should be select. |
| */ |
| setPageSize(size) { |
| return __awaiter(this, void 0, void 0, function* () { |
| const select = yield this._select(); |
| // The select is only available if the `pageSizeOptions` are |
| // set to an array with more than one item. |
| if (!select) { |
| throw Error('Cannot find page size selector in paginator. ' + |
| 'Make sure that the `pageSizeOptions` have been configured.'); |
| } |
| return select.clickOptions({ text: `${size}` }); |
| }); |
| } |
| /** Gets the page size of the paginator. */ |
| getPageSize() { |
| return __awaiter(this, void 0, void 0, function* () { |
| const select = yield this._select(); |
| const value = select ? select.getValueText() : (yield this._pageSizeFallback()).text(); |
| return coerceNumberProperty(yield value); |
| }); |
| } |
| /** Gets the text of the range labe of the paginator. */ |
| getRangeLabel() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._rangeLabel()).text(); |
| }); |
| } |
| } |
| /** Harness for interacting with a standard mat-paginator in tests. */ |
| class MatPaginatorHarness extends _MatPaginatorHarnessBase { |
| constructor() { |
| super(...arguments); |
| this._nextButton = this.locatorFor('.mat-paginator-navigation-next'); |
| this._previousButton = this.locatorFor('.mat-paginator-navigation-previous'); |
| this._firstPageButton = this.locatorForOptional('.mat-paginator-navigation-first'); |
| this._lastPageButton = this.locatorForOptional('.mat-paginator-navigation-last'); |
| this._select = this.locatorForOptional(MatSelectHarness.with({ |
| ancestor: '.mat-paginator-page-size' |
| })); |
| this._pageSizeFallback = this.locatorFor('.mat-paginator-page-size-value'); |
| this._rangeLabel = this.locatorFor('.mat-paginator-range-label'); |
| } |
| /** |
| * Gets a `HarnessPredicate` that can be used to search for a `MatPaginatorHarness` that meets |
| * certain criteria. |
| * @param options Options for filtering which paginator instances are considered a match. |
| * @return a `HarnessPredicate` configured with the given options. |
| */ |
| static with(options = {}) { |
| return new HarnessPredicate(MatPaginatorHarness, options); |
| } |
| } |
| /** Selector used to find paginator instances. */ |
| MatPaginatorHarness.hostSelector = '.mat-paginator'; |
| |
| /** |
| * @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.io/license |
| */ |
| |
| /** |
| * @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.io/license |
| */ |
| |
| /** |
| * @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.io/license |
| */ |
| |
| export { MatPaginatorHarness, _MatPaginatorHarnessBase }; |
| //# sourceMappingURL=testing.js.map |