"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TagsList = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const styles_1 = require("./styles");
const Tag_1 = require("./Tag");
const useLogic_1 = require("./useLogic");
const utils_1 = require("./utils");
/**
 * Предназначен для отображения списка тегов в таких компонентах как: Select, Autocomplete, TreeLikeAutocomplete
 * Не предназначен для использования в продуктах, не экспортируется из пакета
 */
const TagsList = (props) => {
    const { hiddenCount, tagsContainerRef, visibleOptions, getTagProps, showCounter, } = (0, useLogic_1.useLogic)(props);
    const { className, keyId, isDisabled, onClick, getOptionLabel } = props;
    return ((0, jsx_runtime_1.jsxs)(styles_1.Wrapper, { className: className, ref: tagsContainerRef, children: [visibleOptions?.map((option) => {
                const tagProps = getTagProps(option);
                return ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { isDisabled: isDisabled, onClick: onClick, ...tagProps }, (0, utils_1.getKey)(option, keyId, getOptionLabel)));
            }), showCounter && ((0, jsx_runtime_1.jsx)(styles_1.CounterTag, { isDisabled: isDisabled, label: `+${hiddenCount}`, onClick: onClick }, "more"))] }));
};
exports.TagsList = TagsList;
