import { __assign, __extends } from "tslib";
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import cx from 'classnames';
import PageSizeChanger from '../components/PageSizeChanger';
import NormalPageList from '../components/list/NormalPageList';
import PageJumper from '../components/jumper/PageJumper';
import BasePagination from './BasePagination';
var AbstractPagination = (function (_super) {
    __extends(AbstractPagination, _super);
    function AbstractPagination() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    AbstractPagination.prototype.render = function () {
        var layout = this.getLayout(this.props);
        var _a = this.props, current = _a.current, pageSize = _a.pageSize, pageSizeOptions = _a.pageSizeOptions, showQuickJumper = _a.showQuickJumper, showSizeChanger = _a.showSizeChanger, buttonBordered = _a.buttonBordered, className = _a.className, formatTotal = _a.formatTotal, lastPageHelp = _a.lastPageHelp;
        var total = this.getTotal();
        return (_jsxs("div", __assign({ className: cx("zent-pagination zent-pagination--" + this.name, className), "data-zv": 'v10.0.12' }, { children: [showSizeChanger && (_jsx(PageSizeChanger, { pageSize: pageSize, total: total, formatTotal: formatTotal, pageSizeOptions: pageSizeOptions, onPageSizeChange: this.onPageSizeChange }, void 0)), _jsx(NormalPageList, { layout: layout, current: current, buttonBordered: buttonBordered, onPageChange: this.onPageChange, lastPageHelp: lastPageHelp }, void 0), showQuickJumper && _jsx(PageJumper, { onJump: this.onPageChange }, void 0)] }), void 0));
    };
    return AbstractPagination;
}(BasePagination));
export { AbstractPagination };
export default AbstractPagination;
