import { Component, ContentChild, AfterContentInit, inject, } from "@angular/core"; import { SamPaginationNextComponent } from "../../../../layout/pagination/pagination.module"; import { SamPageNextService } from "../architecture"; @Component({ selector: "sam-action-bar", template: `
`, standalone: false, }) export class SamActionBarComponent implements AfterContentInit { private _service = inject(SamPageNextService, { optional: true }); @ContentChild(SamPaginationNextComponent, { static: true }) public pagination: SamPaginationNextComponent; public ngAfterContentInit() { if (this.pagination) { this._setupPagination(); } } private _setupPagination() { if (this.pagination) { this.pagination.pageChange.subscribe((evt) => this._onPageChange(evt)); // Fire off initial value this.pagination.pageChange.emit(this.pagination.currentPage); this.pagination.unitsChange.subscribe((evt) => this._onUnitsChange(evt)); } } private _onPageChange(event?: unknown) { void event; const pg = { pageSize: this.pagination.pageSize, currentPage: this.pagination.currentPage, totalPages: this.pagination.totalPages, totalUnits: this.pagination.totalUnits, }; this._service.model.properties["pagination"].setValue(pg); } private _onUnitsChange(size?: unknown) { void size; const pg = { pageSize: this.pagination.pageSize, currentPage: this.pagination.currentPage, totalPages: this.pagination.totalPages, totalUnits: this.pagination.totalUnits, }; this._service.model.properties["pagination"].setValue(pg); } }