"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importDefault(require("react"));
var prop_types_1 = __importDefault(require("prop-types"));
var PurePagination_1 = require("./PurePagination");
var CounterText_1 = require("./CounterText");
var CommonListLayout_1 = require("./common/CommonListLayout");
var index_en_US_1 = __importDefault(require("../../../lang/common/index-en_US"));
// CommonListLayout
var PureListLayout = /** @class */ (function (_super) {
    __extends(PureListLayout, _super);
    function PureListLayout() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.renderCounterText = function () {
            var _a = _this.props, hasStoreCounterText = _a.hasStoreCounterText, counter = _a.counter, storeCounterText = _a.storeCounterText;
            if (!hasStoreCounterText) {
                return null;
            }
            return react_1.default.createElement(CounterText_1.CounterText, { counter: counter, template: storeCounterText });
        };
        _this.renderPagination = function (showPageSizeSelector) {
            if (showPageSizeSelector === void 0) { showPageSizeSelector = true; }
            var _a = _this.props, paginationProps = _a.paginationProps, paginationComponent = _a.paginationComponent;
            var PaginationComponent = paginationComponent;
            return (react_1.default.createElement(PaginationComponent, __assign({ showPageSizeSelector: showPageSizeSelector }, paginationProps)));
        };
        return _this;
    }
    PureListLayout.prototype.render = function () {
        return (react_1.default.createElement(CommonListLayout_1.CommonListLayout, __assign({ renderCounterText: this.renderCounterText, renderPagination: this.renderPagination }, this.props)));
    };
    PureListLayout.propTypes = {
        hasStoreCounterText: prop_types_1.default.bool,
        storeCounterText: prop_types_1.default.string,
        paginationProps: prop_types_1.default.shape(PurePagination_1.PurePagination['propTypes']),
        paginationComponent: prop_types_1.default.func,
        counter: prop_types_1.default.number
    };
    PureListLayout.defaultProps = {
        hasStoreCounterText: true,
        get storeCounterText() {
            return index_en_US_1.default.TOTAL_AMOUNT;
        },
        paginationProps: PurePagination_1.PurePagination.defaultProps,
        paginationComponent: PurePagination_1.PurePagination,
        counter: 0
    };
    PureListLayout.VIEW_MODE_DETAILS = CommonListLayout_1.CommonListLayout.VIEW_MODE_DETAILS;
    PureListLayout.VIEW_MODE_FULL = CommonListLayout_1.CommonListLayout.VIEW_MODE_FULL;
    return PureListLayout;
}(react_1.default.Component));
exports.PureListLayout = PureListLayout;
//# sourceMappingURL=PureListLayout.js.map