// @ts-nocheck

/* eslint-disable */
// Styles
import "./VCard.sass"; // Extensions

import VSheet from "../VSheet/index.mjs"; // Mixins

import Loadable from "../../mixins/loadable/index.mjs";
import Routable from "../../mixins/routable/index.mjs"; // Helpers

import mixins from "../../util/mixins.mjs"; // Types

/* @vue/component */
export default mixins(Loadable, Routable, VSheet).extend({
  name: 'v-card',
  props: {
    flat: Boolean,
    hover: Boolean,
    img: String,
    link: Boolean,
    loaderHeight: {
      type: [Number, String],
      default: 4
    },
    raised: Boolean
  },
  computed: {
    classes() {
      return {
        'v-card': true,
        ...Routable.options.computed.classes.call(this),
        'v-card--flat': this.flat,
        'v-card--hover': this.hover,
        'v-card--link': this.isClickable,
        'v-card--loading': this.loading,
        'v-card--disabled': this.disabled,
        'v-card--raised': this.raised,
        ...VSheet.options.computed.classes.call(this)
      };
    },

    styles() {
      const style = { ...VSheet.options.computed.styles.call(this)
      };

      if (this.img) {
        style.background = "url(\"".concat(this.img, "\") center center / cover no-repeat");
      }

      return style;
    }

  },
  methods: {
    genProgress() {
      const render = Loadable.options.methods.genProgress.call(this);
      if (!render) return null;
      return this.$createElement('div', {
        staticClass: 'v-card__progress',
        key: 'progress'
      }, [render]);
    }

  },

  render(h) {
    const {
      tag,
      data
    } = this.generateRouteLink();
    data.style = this.styles;

    if (this.isClickable) {
      data.attrs = data.attrs || {};
      data.attrs.tabindex = 0;
    }

    return h(tag, this.setBackgroundColor(this.color, data), [this.genProgress(), this.$slots.default]);
  }

});
//# sourceMappingURL=VCard.mjs.map