import { __assign, __extends } from "tslib";
import { jsx as _jsx } from "react/jsx-runtime";
import { PureComponent, Children } from 'react';
import cx from 'classnames';
var buildInDotsColors = ['black', 'blue', 'red', 'green'];
var SwiperDots = (function (_super) {
    __extends(SwiperDots, _super);
    function SwiperDots() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.isDotActive = function (index, currentIndex, length) {
            return (index === currentIndex ||
                (index === 0 && currentIndex > length - 1) ||
                (index === length - 1 && currentIndex < 0));
        };
        _this.isBuildInColor = function (dotsColor) {
            return buildInDotsColors.indexOf(dotsColor) !== -1;
        };
        return _this;
    }
    SwiperDots.prototype.render = function () {
        var _a;
        var _this = this;
        var _b = this.props, dotsColor = _b.dotsColor, dotsSize = _b.dotsSize, items = _b.items, currentIndex = _b.currentIndex, dotsType = _b.dotsType, onDotsClick = _b.onDotsClick, dotsTheme = _b.dotsTheme;
        var classString = cx('zent-swiper__dots', "zent-swiper__dots-" + dotsSize, "zent-swiper__dots--" + dotsType, "zent-swiper__dots--" + dotsTheme, (_a = {},
            _a["zent-swiper__dots-" + dotsColor] = this.isBuildInColor(dotsColor),
            _a));
        return (_jsx("ul", __assign({ className: classString, "data-zv": 'v10.0.12' }, { children: Children.map(items, function (item, index) {
                var isActive = _this.isDotActive(index, currentIndex, items.length);
                if (isActive && !_this.isBuildInColor(dotsColor)) {
                    return (_jsx("li", { style: { background: dotsColor }, className: "zent-swiper__dots-item zent-swiper__dots-item-active", "data-zv": 'v10.0.12' }, index));
                }
                return (_jsx("li", { className: cx('zent-swiper__dots-item', {
                        'zent-swiper__dots-item-active': isActive,
                    }), onClick: function () { return onDotsClick(index); }, "data-zv": 'v10.0.12' }, index));
            }) }), void 0));
    };
    return SwiperDots;
}(PureComponent));
export default SwiperDots;
