(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory(require("vue"));
	else if(typeof define === 'function' && define.amd)
		define(["vue"], factory);
	else if(typeof exports === 'object')
		exports["vue-element-ui-plus"] = factory(require("vue"));
	else
		root["vue-element-ui-plus"] = factory(root["vue"]);
})(self, (__WEBPACK_EXTERNAL_MODULE__748__) => {
return /******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	var __webpack_modules__ = ({

/***/ 601:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "mf": () => (/* binding */ isFunction)
/* harmony export */ });
/* unused harmony exports isString, isObject, isHtmlElement, isUndefined, isDefined */
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(748);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }

function isString(obj) {
  return Object.prototype.toString.call(obj) === '[object String]';
}
function isObject(obj) {
  return Object.prototype.toString.call(obj) === '[object Object]';
}
function isHtmlElement(node) {
  return node && node.nodeType === Node.ELEMENT_NODE;
}

/**
 *  - Inspired:
 *    https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
 */
var isFunction = function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
};
if ( true && (typeof Int8Array === "undefined" ? "undefined" : _typeof(Int8Array)) !== 'object' && ((vue__WEBPACK_IMPORTED_MODULE_0___default().prototype.$isServer) || typeof document.childNodes !== 'function')) {
  isFunction = function isFunction(obj) {
    return typeof obj === 'function' || false;
  };
}

var isUndefined = function isUndefined(val) {
  return val === void 0;
};
var isDefined = function isDefined(val) {
  return val !== undefined && val !== null;
};

/***/ }),

/***/ 748:
/***/ ((module) => {

module.exports = __WEBPACK_EXTERNAL_MODULE__748__;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
(() => {

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* binding */ descriptions)
});

;// CONCATENATED MODULE: ./packages/descriptions/src/descriptions-row.js
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
/* harmony default export */ const descriptions_row = ({
  name: 'ElDescriptionsRow',
  props: {
    row: {
      type: Array
    }
  },
  inject: ['elDescriptions'],
  render: function render(h) {
    var elDescriptions = this.elDescriptions;
    var row = (this.row || []).map(function (item) {
      return _objectSpread(_objectSpread({}, item), {}, {
        label: item.slots.label || item.props.label
      }, ['labelClassName', 'contentClassName', 'labelStyle', 'contentStyle'].reduce(function (res, key) {
        res[key] = item.props[key] || elDescriptions[key];
        return res;
      }, {}));
    });
    if (elDescriptions.direction === 'vertical') {
      return h("tbody", [h("tr", {
        "class": "el-descriptions-row"
      }, [row.map(function (item) {
        return h("th", {
          "class": _defineProperty({
            'el-descriptions-item__cell': true,
            'el-descriptions-item__label': true,
            'has-colon': elDescriptions.border ? false : elDescriptions.colon,
            'is-bordered-label': elDescriptions.border
          }, item.labelClassName, true),
          "style": item.labelStyle,
          "attrs": {
            "colSpan": item.props.span
          }
        }, [item.label]);
      })]), h("tr", {
        "class": "el-descriptions-row"
      }, [row.map(function (item) {
        return h("td", {
          "class": ['el-descriptions-item__cell', 'el-descriptions-item__content', item.contentClassName],
          "style": item.contentStyle,
          "attrs": {
            "colSpan": item.props.span
          }
        }, [item.slots["default"]]);
      })])]);
    }
    if (elDescriptions.border) {
      return h("tbody", [h("tr", {
        "class": "el-descriptions-row"
      }, [row.map(function (item) {
        return [h("th", {
          "class": _defineProperty({
            'el-descriptions-item__cell': true,
            'el-descriptions-item__label': true,
            'is-bordered-label': elDescriptions.border
          }, item.labelClassName, true),
          "style": item.labelStyle,
          "attrs": {
            "colSpan": "1"
          }
        }, [item.label]), h("td", {
          "class": ['el-descriptions-item__cell', 'el-descriptions-item__content', item.contentClassName],
          "style": item.contentStyle,
          "attrs": {
            "colSpan": item.props.span * 2 - 1
          }
        }, [item.slots["default"]])];
      })])]);
    }
    return h("tbody", [h("tr", {
      "class": "el-descriptions-row"
    }, [row.map(function (item) {
      return h("td", {
        "class": "el-descriptions-item el-descriptions-item__cell",
        "attrs": {
          "colSpan": item.props.span
        }
      }, [h("div", {
        "class": "el-descriptions-item__container"
      }, [h("span", {
        "class": _defineProperty({
          'el-descriptions-item__label': true,
          'has-colon': elDescriptions.colon
        }, item.labelClassName, true),
        "style": item.labelStyle
      }, [item.label]), h("span", {
        "class": ['el-descriptions-item__content', item.contentClassName],
        "style": item.contentStyle
      }, [item.slots["default"]])])]);
    })])]);
  }
});
// EXTERNAL MODULE: ./src/utils/types.js
var types = __webpack_require__(601);
;// CONCATENATED MODULE: ./packages/descriptions/src/index.js
function src_typeof(obj) { "@babel/helpers - typeof"; return src_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, src_typeof(obj); }
function src_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function src_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? src_ownKeys(Object(source), !0).forEach(function (key) { src_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : src_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function src_defineProperty(obj, key, value) { key = src_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function src_toPropertyKey(arg) { var key = src_toPrimitive(arg, "string"); return src_typeof(key) === "symbol" ? key : String(key); }
function src_toPrimitive(input, hint) { if (src_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (src_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }


/* harmony default export */ const src = ({
  name: 'ElDescriptions',
  components: src_defineProperty({}, descriptions_row.name, descriptions_row),
  props: {
    border: {
      type: Boolean,
      "default": false
    },
    column: {
      type: Number,
      "default": 3
    },
    direction: {
      type: String,
      "default": 'horizontal'
    },
    size: {
      type: String
      // validator: isValidComponentSize,
    },

    title: {
      type: String,
      "default": ''
    },
    extra: {
      type: String,
      "default": ''
    },
    labelStyle: {
      type: Object
    },
    contentStyle: {
      type: Object
    },
    labelClassName: {
      type: String,
      "default": ''
    },
    contentClassName: {
      type: String,
      "default": ''
    },
    colon: {
      type: Boolean,
      "default": true
    }
  },
  computed: {
    descriptionsSize: function descriptionsSize() {
      return this.size || (this.$ELEMENT || {}).size;
    }
  },
  provide: function provide() {
    return {
      elDescriptions: this
    };
  },
  methods: {
    getOptionProps: function getOptionProps(vnode) {
      if (vnode.componentOptions) {
        var componentOptions = vnode.componentOptions;
        var _componentOptions$pro = componentOptions.propsData,
          propsData = _componentOptions$pro === void 0 ? {} : _componentOptions$pro,
          _componentOptions$Cto = componentOptions.Ctor,
          Ctor = _componentOptions$Cto === void 0 ? {} : _componentOptions$Cto;
        var props = (Ctor.options || {}).props || {};
        var res = {};
        for (var k in props) {
          var v = props[k];
          var defaultValue = v["default"];
          if (defaultValue !== undefined) {
            res[k] = (0,types/* isFunction */.mf)(defaultValue) ? defaultValue.call(vnode) : defaultValue;
          }
        }
        return src_objectSpread(src_objectSpread({}, res), propsData);
      }
      return {};
    },
    getSlots: function getSlots(vnode) {
      var _this = this;
      var componentOptions = vnode.componentOptions || {};
      var children = vnode.children || componentOptions.children || [];
      var slots = {};
      children.forEach(function (child) {
        if (!_this.isEmptyElement(child)) {
          var name = child.data && child.data.slot || 'default';
          slots[name] = slots[name] || [];
          if (child.tag === 'template') {
            slots[name].push(child.children);
          } else {
            slots[name].push(child);
          }
        }
      });
      return src_objectSpread({}, slots);
    },
    isEmptyElement: function isEmptyElement(c) {
      return !(c.tag || c.text && c.text.trim() !== '');
    },
    filledNode: function filledNode(node, span, count) {
      var isLast = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
      if (!node.props) {
        node.props = {};
      }
      if (span > count) {
        node.props.span = count;
      }
      if (isLast) {
        // set the max span, cause of the last td
        node.props.span = count;
      }
      return node;
    },
    getRows: function getRows() {
      var _this2 = this;
      var children = (this.$slots["default"] || []).filter(function (vnode) {
        return vnode.tag && vnode.componentOptions && vnode.componentOptions.Ctor.options.name === 'ElDescriptionsItem';
      });
      var nodes = children.map(function (vnode) {
        return {
          props: _this2.getOptionProps(vnode),
          slots: _this2.getSlots(vnode),
          vnode: vnode
        };
      });
      var rows = [];
      var temp = [];
      var count = this.column;
      nodes.forEach(function (node, index) {
        var span = node.props.span || 1;
        if (index === children.length - 1) {
          temp.push(_this2.filledNode(node, span, count, true));
          rows.push(temp);
          return;
        }
        if (span < count) {
          count -= span;
          temp.push(node);
        } else {
          temp.push(_this2.filledNode(node, span, count));
          rows.push(temp);
          count = _this2.column;
          temp = [];
        }
      });
      return rows;
    }
  },
  render: function render() {
    var h = arguments[0];
    var title = this.title,
      extra = this.extra,
      border = this.border,
      descriptionsSize = this.descriptionsSize,
      $slots = this.$slots;
    var rows = this.getRows();
    return h("div", {
      "class": "el-descriptions"
    }, [title || extra || $slots.title || $slots.extra ? h("div", {
      "class": "el-descriptions__header"
    }, [h("div", {
      "class": "el-descriptions__title"
    }, [$slots.title ? $slots.title : title]), h("div", {
      "class": "el-descriptions__extra"
    }, [$slots.extra ? $slots.extra : extra])]) : null, h("div", {
      "class": "el-descriptions__body"
    }, [h("table", {
      "class": ['el-descriptions__table', {
        'is-bordered': border
      }, descriptionsSize ? "el-descriptions--".concat(descriptionsSize) : '']
    }, [rows.map(function (row) {
      return h(descriptions_row, {
        "attrs": {
          "row": row
        }
      });
    })])])]);
  }
});
;// CONCATENATED MODULE: ./packages/descriptions/index.js


/* istanbul ignore next */
src.install = function install(Vue) {
  Vue.component(src.name, src);
};
/* harmony default export */ const descriptions = (src);
})();

__webpack_exports__ = __webpack_exports__["default"];
/******/ 	return __webpack_exports__;
/******/ })()
;
});