/********************************************************************************
 * Copyright (c) 2020 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0
 *
 * SPDX-License-Identifier: EPL-2.0
 ********************************************************************************/

import {Component, EventEmitter, Input, Output} from "@angular/core";

@Component({
    selector: "app-pagination-counter",
    templateUrl: "./pagination-counter.component.html",
    styleUrls: ["./pagination-counter.component.scss"],
})
export class PaginationCounterComponent {

    @Input()
    public appDisabled: boolean;

    @Input()
    public appPage: number;

    @Input()
    public appPageSize: number;

    @Output()
    public appPageChange = new EventEmitter<number>();

    public getPreviousPage() {
        this.appPageChange.emit(this.appPage - 1);
    }

    public getNextPage() {
        this.appPageChange.emit(this.appPage + 1);
    }

}
