// Возвращает DOM-элемент слайда по индексу, учитывая виртуализованные элементы с data-атрибутом.
var getItemElementByIndex = function getItemElementByIndex(_ref) {
  var _trackRef$current;
  var trackRef = _ref.trackRef,
    itemsCollection = _ref.itemsCollection,
    index = _ref.index,
    itemAttribute = _ref.itemAttribute;
  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);
};

// Подсчет отступа для скролла до переданного индекса.
var getCalculatedPos = function getCalculatedPos(_ref2) {
  var scrollRef = _ref2.scrollRef,
    trackRef = _ref2.trackRef,
    itemsCollection = _ref2.itemsCollection,
    index = _ref2.index,
    scrollAlign = _ref2.scrollAlign,
    itemAttribute = _ref2.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;
      }
  }
};

export { getCalculatedPos, getItemElementByIndex };
