import { extend, mergeData } from '../../vue';
import { NAME_CARD_IMG_LAZY } from '../../constants/components';
import { sortKeys, omit, keys } from '../../utils/object';
import { makePropsConfigurable } from '../../utils/props';
import { props as props$2 } from '../image/img';
import { props as props$1, BImgLazy } from '../image/img-lazy';
import { props as props$3 } from './card-img';

// --- Props ---

const props = makePropsConfigurable(sortKeys({
  ...omit(props$1, keys(props$2)),
  ...omit(props$3, ['src', 'alt', 'width', 'height'])
}), NAME_CARD_IMG_LAZY);

// --- Main component ---

// @vue/component
const BCardImgLazy = /*#__PURE__*/extend({
  name: NAME_CARD_IMG_LAZY,
  functional: true,
  props,
  render(h, _ref) {
    let {
      props,
      data
    } = _ref;
    let baseClass = 'card-img';
    if (props.top) {
      baseClass += '-top';
    } else if (props.right || props.end) {
      baseClass += '-right';
    } else if (props.bottom) {
      baseClass += '-bottom';
    } else if (props.left || props.start) {
      baseClass += '-left';
    }
    return h(BImgLazy, mergeData(data, {
      class: [baseClass],
      // Exclude `left` and `right` props before passing to `<b-img-lazy>`
      props: omit(props, ['left', 'right'])
    }));
  }
});

export { BCardImgLazy, props };
