import './es.array.includes-42f5881f.js';
import { n as normalizeComponent } from './normalize-component-1b2cdbb6.js';

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/**
 * Base Component for everything Box shaped
 */
var script = {
  name: 'BaseBox',
  props: {
    /**
     * specify the tag type of the box
     */
    renderElementAs: {
      type: String,
      default: 'div'
    },

    /**
     * define the size of the box
     * should be an object with width and / or height
     */
    boxSize: {
      type: Object,
      default: function _default() {
        return {
          width: '200px'
        };
      }
    },

    /**
     * define the ratio of width and height of the box
     * (in percent string, e.g. 1:1 --> '100', 1:2 --> '50')
     */
    boxRatio: {
      type: String,
      default: '100'
    },

    /**
     *  enable or disable hover
     */
    boxHover: {
      type: Boolean,
      default: true
    },

    /**
     *  set boxShadow size
     */
    boxShadowSize: {
      type: String,
      default: 'small',
      validator: function validator(val) {
        return ['small', 'large'].includes(val);
      }
    },

    /**
     * set disabled attribute (e.g. for button elements)
     */
    disabled: {
      type: Boolean,
      default: false
    },
    additionalAttributes: {
      type: Object,
      default: function _default() {}
    }
  },
  methods: {
    clicked: function clicked(event) {
      /**
       * event emitted upon box click
       *
       * @type {Event}
       */
      this.$emit('clicked', event);
    }
  }
};

/* script */
var __vue_script__ = script;
/* template */

var __vue_render__ = function __vue_render__() {
  var _vm = this;

  var _h = _vm.$createElement;

  var _c = _vm._self._c || _h;

  return _c(_vm.renderElementAs, _vm._b({
    tag: "compontent",
    class: ['base-box', 'base-box-' + _vm.$props.boxRatio, 'base-box-shadow-' + _vm.boxShadowSize, {
      'base-box-hover': _vm.boxHover && !_vm.disabled
    }],
    style: _vm.boxSize,
    attrs: {
      "disabled": _vm.disabled,
      "type": _vm.renderElementAs === 'button' ? 'button' : ''
    },
    on: {
      "click": _vm.clicked
    }
  }, 'compontent', _vm.additionalAttributes, false), [_vm._t("default")], 2);
};

var __vue_staticRenderFns__ = [];
/* style */

var __vue_inject_styles__ = undefined;
/* scoped */

var __vue_scope_id__ = "data-v-8168e9c8";
/* module identifier */

var __vue_module_identifier__ = undefined;
/* functional template */

var __vue_is_functional_template__ = false;
/* style inject */

/* style inject SSR */

/* style inject shadow dom */

var __vue_component__ = /*#__PURE__*/normalizeComponent({
  render: __vue_render__,
  staticRenderFns: __vue_staticRenderFns__
}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);

var BaseBox = __vue_component__;

export { BaseBox as B };
