// Возвращает DOM-элемент слайда по индексу, учитывая виртуализованные элементы с data-атрибутом.
export var getItemElementByIndex = function getItemElementByIndex(param) {
    var trackRef = param.trackRef, itemsCollection = param.itemsCollection, index = param.index, itemAttribute = param.itemAttribute;
    var _trackRef_current;
    var indexedItem = (_trackRef_current = trackRef.current) === null || _trackRef_current === void 0 ? void 0 : _trackRef_current.querySelector("[".concat(itemAttribute, '="').concat(index, '"]'));
    if (indexedItem) {
        return indexedItem;
    }
    return itemsCollection.item(index);
};
// Подсчет отступа для скролла до переданного индекса.
export var getCalculatedPos = function getCalculatedPos(param) {
    var scrollRef = param.scrollRef, trackRef = param.trackRef, itemsCollection = param.itemsCollection, index = param.index, scrollAlign = param.scrollAlign, itemAttribute = param.itemAttribute;
    var item = getItemElementByIndex({
        trackRef: trackRef,
        itemsCollection: itemsCollection,
        index: index,
        itemAttribute: itemAttribute
    });
    if (!item || !trackRef.current || !scrollRef.current) {
        return 0;
    }
    var itemRect = item.getBoundingClientRect();
    var trackRect = trackRef.current.getBoundingClientRect();
    var scrollRect = scrollRef.current.getBoundingClientRect();
    var left = itemRect.left - trackRect.left + trackRef.current.scrollLeft;
    switch(scrollAlign){
        case 'start':
            {
                return left;
            }
        case 'center':
            {
                return left - scrollRect.width / 2 + itemRect.width / 2;
            }
        case 'end':
            {
                return left - scrollRect.width + itemRect.width;
            }
        default:
            {
                return 0;
            }
    }
};
