module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/dist/";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 88);
/******/ })
/************************************************************************/
/******/ ({

/***/ 0:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent (
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier, /* server only */
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) { // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functioal component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection (h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing
        ? [].concat(existing, hook)
        : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}


/***/ }),

/***/ 11:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/locale");

/***/ }),

/***/ 13:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/button");

/***/ }),

/***/ 18:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/checkbox");

/***/ }),

/***/ 19:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/scrollbar");

/***/ }),

/***/ 3:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/utils/util");

/***/ }),

/***/ 31:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/row");

/***/ }),

/***/ 46:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/pagination");

/***/ }),

/***/ 47:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/empty");

/***/ }),

/***/ 48:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/wp-table-column");

/***/ }),

/***/ 61:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/table");

/***/ }),

/***/ 62:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/dropdown-menu");

/***/ }),

/***/ 63:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/dropdown");

/***/ }),

/***/ 64:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/dropdown-item");

/***/ }),

/***/ 7:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/utils/types");

/***/ }),

/***/ 8:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/mixins/locale");

/***/ }),

/***/ 88:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: external "wp-element-ui/lib/pagination"
var pagination_ = __webpack_require__(46);
var pagination_default = /*#__PURE__*/__webpack_require__.n(pagination_);

// EXTERNAL MODULE: external "wp-element-ui/lib/table"
var table_ = __webpack_require__(61);
var table_default = /*#__PURE__*/__webpack_require__.n(table_);

// EXTERNAL MODULE: external "wp-element-ui/lib/empty"
var empty_ = __webpack_require__(47);
var empty_default = /*#__PURE__*/__webpack_require__.n(empty_);

// EXTERNAL MODULE: external "wp-element-ui/lib/button"
var button_ = __webpack_require__(13);
var button_default = /*#__PURE__*/__webpack_require__.n(button_);

// EXTERNAL MODULE: external "wp-element-ui/lib/utils/types"
var types_ = __webpack_require__(7);

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/wp-table/src/ToolBar.vue?vue&type=template&id=ff45cbc2&
var ToolBarvue_type_template_id_ff45cbc2_render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "el-row",
    {
      staticStyle: { "margin-bottom": "20px" },
      attrs: { type: "flex", justify: "start", align: "middle" }
    },
    [
      _vm._t("toolbar-prefix"),
      _vm.isShowRefreshTool || _vm.isShowSizeTool || _vm.isShowSettingTool
        ? _c(
            "div",
            { class: "el-table-tools-bar-" + _vm.justify },
            [
              _vm._t("toolbar-suffix"),
              _vm.isShowRefreshTool
                ? _c("i", {
                    staticClass: "el-icon-refresh el-table-tools-icon-item",
                    attrs: { title: "刷新" },
                    on: {
                      click: function($event) {
                        $event.stopPropagation()
                        return _vm.handleRefresh($event)
                      }
                    }
                  })
                : _vm._e(),
              _vm.isShowSizeTool
                ? _c(
                    "el-dropdown",
                    {
                      attrs: { placement: "bottom" },
                      on: { command: _vm.onSizeToolCommand }
                    },
                    [
                      _c(
                        "span",
                        {
                          staticClass: "el-table-tools-icon-item-size",
                          attrs: { title: "表格密度" }
                        },
                        [
                          _c(
                            "svg",
                            {
                              attrs: {
                                viewBox: "64 64 896 896",
                                focusable: "false",
                                "data-icon": "column-height",
                                width: "19px",
                                height: "19px",
                                fill: "currentColor",
                                "aria-hidden": "true"
                              }
                            },
                            [
                              _c("path", {
                                attrs: {
                                  d:
                                    "M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 00-11.3 0L403.6 366.3a7.23 7.23 0 005.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"
                                }
                              })
                            ]
                          )
                        ]
                      ),
                      _c(
                        "el-dropdown-menu",
                        { attrs: { slot: "dropdown" }, slot: "dropdown" },
                        [
                          _c(
                            "el-dropdown-item",
                            {
                              staticClass: "el-table-tool-size-bar-dropdown",
                              class: {
                                "is-active": _vm.tableSize === "medium"
                              },
                              attrs: { command: "medium" }
                            },
                            [_vm._v("默认")]
                          ),
                          _c(
                            "el-dropdown-item",
                            {
                              staticClass: "el-table-tool-size-bar-dropdown",
                              class: { "is-active": _vm.tableSize === "small" },
                              attrs: { command: "small" }
                            },
                            [_vm._v("中等")]
                          ),
                          _c(
                            "el-dropdown-item",
                            {
                              staticClass: "el-table-tool-size-bar-dropdown",
                              class: { "is-active": _vm.tableSize === "mini" },
                              attrs: { command: "mini" }
                            },
                            [_vm._v("紧凑")]
                          )
                        ],
                        1
                      )
                    ],
                    1
                  )
                : _vm._e(),
              _vm.isShowSettingTool
                ? _c(
                    "el-dropdown",
                    {
                      attrs: {
                        placement: "bottom",
                        "hide-on-click": false,
                        trigger: "hover"
                      }
                    },
                    [
                      _vm.isShowSettingTool
                        ? _c("i", {
                            staticClass:
                              "el-icon-setting el-table-tools-icon-item",
                            attrs: { title: "设置" }
                          })
                        : _vm._e(),
                      _c(
                        "el-dropdown-menu",
                        { attrs: { slot: "dropdown" }, slot: "dropdown" },
                        [
                          _c(
                            "el-row",
                            {
                              staticStyle: { padding: "0 20px" },
                              attrs: { type: "flex", align: "middle" }
                            },
                            [
                              _c("el-checkbox", {
                                attrs: {
                                  indeterminate: _vm.isIndeterminate,
                                  value: _vm.isCheckAll,
                                  title: "全选"
                                },
                                on: { change: _vm.onCheckAllChange }
                              }),
                              _c(
                                "h3",
                                { staticClass: "el-table-setting-menu-title" },
                                [_vm._v("设 置")]
                              ),
                              _c(
                                "el-button",
                                {
                                  staticStyle: { "margin-left": "auto" },
                                  attrs: {
                                    type: "text",
                                    icon: "el-icon-refresh-right"
                                  },
                                  on: {
                                    click: function($event) {
                                      $event.stopPropagation()
                                      return _vm.handleCancelFixed($event)
                                    }
                                  }
                                },
                                [_vm._v("全部取消固定")]
                              )
                            ],
                            1
                          ),
                          _c(
                            "el-scrollbar",
                            {
                              attrs: { "view-style": [{ maxHeight: "300px" }] }
                            },
                            [
                              _c(
                                "transition-group",
                                { attrs: { name: "drag", tag: "div" } },
                                _vm._l(_vm.controlTableColumns, function(item) {
                                  return _c(
                                    "el-dropdown-item",
                                    {
                                      key:
                                        "setting-bar-dropdown-item" +
                                        item.columnUUid,
                                      attrs: { command: item.columnUUid }
                                    },
                                    [
                                      _c(
                                        "el-checkbox",
                                        {
                                          attrs: { value: item.isShow },
                                          on: {
                                            input: function($event) {
                                              _vm.onToolSettingCheckboxChange(
                                                item
                                              )
                                            }
                                          }
                                        },
                                        [
                                          _vm._v(
                                            "\n                " +
                                              _vm._s(item.label) +
                                              "\n              "
                                          )
                                        ]
                                      ),
                                      _c(
                                        "el-button",
                                        {
                                          staticStyle: {
                                            "margin-left": "10px",
                                            padding: "7px"
                                          },
                                          attrs: {
                                            type: "primary",
                                            size: "mini",
                                            plain: !(
                                              item.fixed === "left" ||
                                              item.fixed === true
                                            )
                                          },
                                          on: {
                                            click: function($event) {
                                              $event.stopPropagation()
                                              _vm.handleFixed(item, "left")
                                            }
                                          }
                                        },
                                        [_vm._v("固定在左侧")]
                                      ),
                                      _c(
                                        "el-button",
                                        {
                                          staticStyle: { padding: "7px" },
                                          attrs: {
                                            type: "primary",
                                            size: "mini",
                                            plain: item.fixed !== "right"
                                          },
                                          on: {
                                            click: function($event) {
                                              $event.stopPropagation()
                                              _vm.handleFixed(item, "right")
                                            }
                                          }
                                        },
                                        [_vm._v("固定在右侧")]
                                      ),
                                      _c(
                                        "el-button",
                                        {
                                          staticStyle: { padding: "7px" },
                                          attrs: {
                                            type: "primary",
                                            size: "mini",
                                            plain: !!item.fixed
                                          },
                                          on: {
                                            click: function($event) {
                                              $event.stopPropagation()
                                              _vm.handleFixed(item, undefined)
                                            }
                                          }
                                        },
                                        [_vm._v("取消固定")]
                                      )
                                    ],
                                    1
                                  )
                                }),
                                1
                              )
                            ],
                            1
                          )
                        ],
                        1
                      )
                    ],
                    1
                  )
                : _vm._e()
            ],
            2
          )
        : _vm._e()
    ],
    2
  )
}
var staticRenderFns = []
ToolBarvue_type_template_id_ff45cbc2_render._withStripped = true


// CONCATENATED MODULE: ./packages/wp-table/src/ToolBar.vue?vue&type=template&id=ff45cbc2&

// EXTERNAL MODULE: external "wp-element-ui/lib/dropdown-menu"
var dropdown_menu_ = __webpack_require__(62);
var dropdown_menu_default = /*#__PURE__*/__webpack_require__.n(dropdown_menu_);

// EXTERNAL MODULE: external "wp-element-ui/lib/dropdown"
var dropdown_ = __webpack_require__(63);
var dropdown_default = /*#__PURE__*/__webpack_require__.n(dropdown_);

// EXTERNAL MODULE: external "wp-element-ui/lib/dropdown-item"
var dropdown_item_ = __webpack_require__(64);
var dropdown_item_default = /*#__PURE__*/__webpack_require__.n(dropdown_item_);

// EXTERNAL MODULE: external "wp-element-ui/lib/row"
var row_ = __webpack_require__(31);
var row_default = /*#__PURE__*/__webpack_require__.n(row_);

// EXTERNAL MODULE: external "wp-element-ui/lib/checkbox"
var checkbox_ = __webpack_require__(18);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(checkbox_);

// EXTERNAL MODULE: external "wp-element-ui/lib/scrollbar"
var scrollbar_ = __webpack_require__(19);
var scrollbar_default = /*#__PURE__*/__webpack_require__.n(scrollbar_);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/wp-table/src/ToolBar.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//








/* harmony default export */ var ToolBarvue_type_script_lang_js_ = ({
  name: 'ElWpToolBar',
  props: {
    isShowRefreshTool: Boolean,
    isShowSizeTool: Boolean,
    isShowSettingTool: Boolean,
    // 水平排列方式，默认居右
    justify: {
      type: String,
      default: 'right'
    },
    controlTableColumns: Array,
    tableSize: String
  },
  components: {
    ElButton: button_default.a,
    ElDropdownMenu: dropdown_menu_default.a,
    ElDropdown: dropdown_default.a,
    ElDropdownItem: dropdown_item_default.a,
    ElRow: row_default.a,
    ElCheckbox: checkbox_default.a,
    ElScrollbar: scrollbar_default.a
  },
  computed: {
    isCheckAll: function isCheckAll() {
      return this.controlTableColumns.every(function (item) {
        return item.isShow;
      });
    },
    isIndeterminate: function isIndeterminate() {
      return !this.isCheckAll && this.controlTableColumns.some(function (item) {
        return item.isShow;
      });
    }
  },
  methods: {
    onSizeToolCommand: function onSizeToolCommand(command) {
      this.$emit('onTableSize', command);
    },
    onToolSettingCheckboxChange: function onToolSettingCheckboxChange(item) {
      this.$emit('onToolSettingCheckboxChange', item);
    },
    handleFixed: function handleFixed(item, fixed) {
      this.$emit('onToolSettingFixedChange', item, fixed);
    },
    onCheckAllChange: function onCheckAllChange(val) {
      this.$emit('onCheckAllChange', val);
    },
    handleRefresh: function handleRefresh() {
      this.$emit('refresh');
    },
    handleCancelFixed: function handleCancelFixed() {
      this.$emit('cancelAllFixed');
    }
  }
});
// CONCATENATED MODULE: ./packages/wp-table/src/ToolBar.vue?vue&type=script&lang=js&
 /* harmony default export */ var src_ToolBarvue_type_script_lang_js_ = (ToolBarvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(0);

// CONCATENATED MODULE: ./packages/wp-table/src/ToolBar.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  src_ToolBarvue_type_script_lang_js_,
  ToolBarvue_type_template_id_ff45cbc2_render,
  staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "packages/wp-table/src/ToolBar.vue"
/* harmony default export */ var ToolBar = (component.exports);
// EXTERNAL MODULE: external "wp-element-ui/lib/utils/lodash"
var lodash_ = __webpack_require__(9);

// EXTERNAL MODULE: external "wp-element-ui/lib/utils/util"
var util_ = __webpack_require__(3);

// EXTERNAL MODULE: external "wp-element-ui/lib/mixins/locale"
var locale_ = __webpack_require__(8);
var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);

// EXTERNAL MODULE: external "wp-element-ui/lib/locale"
var lib_locale_ = __webpack_require__(11);

// EXTERNAL MODULE: external "wp-element-ui/lib/wp-table-column"
var wp_table_column_ = __webpack_require__(48);
var wp_table_column_default = /*#__PURE__*/__webpack_require__.n(wp_table_column_);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/wp-table/src/main.vue?vue&type=script&lang=js&












/* harmony default export */ var mainvue_type_script_lang_js_ = ({
  name: 'ElWpTable',
  props: {
    // 加载按钮的文字
    emptyBtnText: {
      type: String,
      default: Object(lib_locale_["t"])('el.wpCommon.reload')
    },
    // 为空时的图片
    emptyImage: {
      type: String
    },
    errorImage: String, // 错误时的图片
    // 加载按钮点击事件的处理
    onEmptyBtnClick: {
      type: Function
    },
    // 当表格多选时rowKey为必填
    maxSelect: {
      type: Number
    },
    // 多选表格时是否保存之前选中的
    reserveSelection: {
      type: Boolean,
      default: true
    },
    // 分页相关key
    paginationKey: {
      type: Object,
      default: function _default() {
        return Object.create(null);
      }
    },
    // 分页组件的props
    paginationProps: {
      type: Object,
      default: function _default() {
        return Object.create(null);
      }
    },
    // 默认的pageSize
    pageSize: {
      type: Number,
      default: 20
    },
    // 加载数据
    loadData: {
      type: Function,
      required: true
    },

    size: {
      type: String,
      default: 'mini'
    },

    width: {
      type: String,
      default: '100%'
    },

    height: [String, Number],

    maxHeight: [String, Number],

    fit: {
      type: Boolean,
      default: true
    },

    stripe: {
      type: Boolean,
      default: true
    },

    border: {
      type: Boolean,
      default: true
    },

    rowKey: {
      type: String,
      default: 'id',
      required: true
    },

    context: {},

    showHeader: {
      type: Boolean,
      default: true
    },

    showSummary: Boolean,

    sumText: String,

    summaryMethod: Function,

    rowClassName: [String, Function],

    rowStyle: [Object, Function],

    cellClassName: [String, Function],

    cellStyle: [Object, Function],

    headerRowClassName: [String, Function],

    headerRowStyle: [Object, Function],

    headerCellClassName: [String, Function],

    headerCellStyle: [Object, Function],

    highlightCurrentRow: {
      type: Boolean,
      default: true
    },
    highlightSelectionRow: {
      type: Boolean,
      default: false
    },

    currentRowKey: [String, Number],

    emptyText: String,

    expandRowKeys: Array,

    defaultExpandAll: Boolean,

    defaultSort: Object,

    tooltipEffect: String,

    spanMethod: Function,

    selectOnIndeterminate: {
      type: Boolean,
      default: true
    },

    indent: {
      type: Number,
      default: 16
    },

    lazy: Boolean,

    load: Function,

    treeProps: {
      type: Object,
      default: function _default() {
        return {
          hasChildren: 'hasChildren',
          children: 'children'
        };
      }
    },
    // 是否显示刷新选项
    isShowRefreshTool: {
      type: Boolean,
      default: true
    },
    // 是否显示设置选项
    isShowSettingTool: {
      type: Boolean,
      default: true
    },
    // 是否显示大小
    isShowSizeTool: {
      type: Boolean,
      default: true
    },
    toolAlign: {
      type: String,
      validator: function validator(val) {
        return [undefined, '', 'left', 'right'].indexOf(val) > -1;
      }
    },
    loadingText: String
  },
  mixins: [locale_default.a],
  data: function data(vm) {
    var _pagination;

    var rootPagination = vm.$ELEMENT ? vm.$ELEMENT.paginationKey || Object.create(null) : Object.create(null);
    var realPaginationKey = Object(lodash_["assign"])({
      page: 'page',
      pageSize: 'pageSize',
      total: 'total',
      list: 'list' // 列表记录字段key
    }, rootPagination, vm.paginationKey);
    return {
      tableList: [], // 列表数据
      pagination: (_pagination = {}, _pagination[realPaginationKey.page] = 1, _pagination[realPaginationKey.pageSize] = vm.pageSize, _pagination[realPaginationKey.total] = 0, _pagination),
      isError: false, // 是否加载错误
      isLoading: true, // 是否加载中
      selected: [], // 默认选中的selected
      tableSize: this.size,
      controlTableColumns: [] // 受控制的el-tableColumns
    };
  },

  watch: {
    size: function size(val) {
      this.tableSize = val;
    }
  },
  components: {
    ElPagination: pagination_default.a,
    ToolBar: ToolBar,
    ElTable: table_default.a,
    ElButton: button_default.a,
    ElEmpty: empty_default.a,
    ElWpTableColumn: wp_table_column_default.a
  },
  computed: {
    // loadData是否是函数
    loadDataIsFn: function loadDataIsFn(_ref) {
      var loadData = _ref.loadData;

      return typeof loadData === 'function';
    },
    realEmptyImage: function realEmptyImage() {
      return this.emptyImage || (this.$ELEMENT ? this.$ELEMENT.emptyImage : undefined);
    },
    realErrorImage: function realErrorImage() {
      return this.errorImage || (this.$ELEMENT ? this.$ELEMENT.errorImage : undefined) || this.realEmptyImage;
    },

    // 表格列表数据
    listData: function listData(_ref2) {
      var loadDataIsFn = _ref2.loadDataIsFn;

      return loadDataIsFn ? this.tableList : this.loadData;
    },
    columnUUidMapValue: function columnUUidMapValue() {
      return this.controlTableColumns.reduce(function (preVal, curVal) {
        preVal[curVal.columnUUid] = curVal;
        return preVal;
      }, Object.create(null));
    },
    realPaginationKey: function realPaginationKey() {
      var rootPagination = this.$ELEMENT ? this.$ELEMENT.paginationKey || Object.create(null) : Object.create(null);
      return Object(lodash_["assign"])({
        page: 'page',
        pageSize: 'pageSize',
        total: 'total',
        list: 'list' // 列表记录字段key
      }, rootPagination, this.paginationKey);
    }
  },
  created: function created() {
    if (!this.$isServer && this.loadDataIsFn) {
      this.getTableList(this.pagination);
    }
    if (!this.$isServer) {
      // 监听来自tableColumn的变化
      this.$on('columnPropValueChange', this.onTableColumnPropChange);
    }
  },
  mounted: function mounted() {
    var children = this.$vnode.componentOptions ? this.$vnode.componentOptions.children : [];
    if (Array.isArray(children) && children.length > 0) {
      children.forEach(function (vnode, index) {
        if (vnode.componentInstance) {
          vnode.componentInstance.originOrder = index;
        }
      });
      this.setControlTableColumns();
    }
  },

  methods: {
    // 这点需要根据实际开发进行修改
    getTableList: function getTableList(pagination) {
      var _loadData,
          _this = this;

      var page = pagination[this.realPaginationKey.page],
          pageSize = pagination[this.realPaginationKey.pageSize];

      this.isLoading = true;
      return this.loadData((_loadData = {}, _loadData[this.realPaginationKey.page] = page, _loadData[this.realPaginationKey.pageSize] = pageSize, _loadData)).then(function (res) {
        var _assign;

        if (res && Object(types_["isObject"])(res) && Object.keys(res).length > 0) {
          _this.tableList = res[_this.realPaginationKey.list] || [];
          Object.keys(_this.pagination).forEach(function (key) {
            if (Object.prototype.hasOwnProperty.call(res, key)) {
              _this.setPagination(key, res[key]);
            }
          });
        } else {
          _this.tableList = [];
        }
        if (_this.isError) {
          _this.isError = false;
        }
        _this.$emit('loaded', _this.isError, Object(lodash_["assign"])((_assign = {}, _assign[_this.realPaginationKey.list] = _this.tableList, _assign), _this.pagination));
        _this.isLoading = false;
        return {
          isError: _this.isError
        };
      }).catch(function (e) {
        var _assign2;

        _this.tableList = [];
        _this.isError = true;
        _this.$emit('loaded', _this.isError, Object(lodash_["assign"])((_assign2 = {}, _assign2[_this.realPaginationKey.list] = _this.tableList, _assign2), _this.pagination));
        _this.isLoading = false;
        throw e;
      });
    },

    // 强制刷新表格数据
    refresh: function refresh(isForce) {
      var _this2 = this;

      var page = this.pagination[this.realPaginationKey.page];
      var pageSize = this.pagination[this.realPaginationKey.pageSize];
      // 是否强制刷新回到第一页
      if (isForce) {
        var _getTableList;

        return this.getTableList((_getTableList = {}, _getTableList[this.realPaginationKey.page] = 1, _getTableList[this.realPaginationKey.pageSize] = pageSize, _getTableList)).then(function (res) {
          _this2.clearSelection();
          return res;
        });
      } else {
        var _getTableList2;

        return this.getTableList((_getTableList2 = {}, _getTableList2[this.realPaginationKey.page] = page, _getTableList2[this.realPaginationKey.pageSize] = pageSize, _getTableList2));
      }
    },

    // 处理分页
    handlePagination: function handlePagination(pagination) {
      if (this.loadDataIsFn) {
        var _getTableList3;

        this.getTableList((_getTableList3 = {}, _getTableList3[this.realPaginationKey.page] = pagination.page, _getTableList3[this.realPaginationKey.pageSize] = pagination.pageSize, _getTableList3));
      }
      this.$emit('pagination', pagination);
    },

    // 获取表格实例
    getTableVm: function getTableVm() {
      return this.$refs.wpTable;
    },

    // 设置pagination数据
    setPagination: function setPagination(key, value) {
      this.$set(this.pagination, key, value);
    },
    clearSelection: function clearSelection() {
      var tableVm = this.getTableVm();
      tableVm && tableVm.clearSelection();
    },
    onSelectable: function onSelectable(row) {
      var selected = this.selected;
      if (!this.maxSelect || !(Array.isArray(selected) && selected.length > 0)) return true;
      var rowKey = this.rowKey;
      var index = Object(lodash_["findIndex"])(selected, function (item) {
        var value = Object(types_["isObject"])(item) ? item[rowKey] : item;
        return value + '' === row[rowKey] + '';
      });
      return selected.length >= this.maxSelect ? index !== -1 : true;
    },
    setSelected: function setSelected(list) {
      var _this3 = this;

      if (Array.isArray(list)) {
        var tableVm = this.getTableVm();
        tableVm.clearSelection();
        list.forEach(function (item) {
          var currentRow = Object(lodash_["find"])(_this3.tableList, function (row) {
            var value = Object(types_["isObject"])(item) ? item[_this3.rowKey] : item;
            return value + '' === row[_this3.rowKey] + '';
          });
          tableVm.toggleRowSelection(currentRow);
        });
      }
    },
    getSelected: function getSelected(isGetInfo) {
      if (isGetInfo) return this.selectedInfo || [];
      return this.selected || [];
    },

    // 获取受控制的列
    getElTableColumns: function getElTableColumns() {
      // 所有写在wp-table里面的vnode节点都在这
      var children = this.$vnode.componentOptions ? this.$vnode.componentOptions.children : null;
      return Array.isArray(children) ? children.filter(this.checkIsElTableColumn) : [];
    },
    handleSelectionChange: function handleSelectionChange(list) {
      var _this4 = this;

      if (this.maxSelect && list.length > this.maxSelect) {
        var tableVm = this.getTableVm();
        tableVm.clearSelection(); // 用于多选表格，清空用户的选择
        for (var i = 0; i < this.maxSelect; i++) {
          // 用于多选表格，切换某一行的选中状态，如果使用了第二个参数，则是设置这一行选中与否（selected 为 true 则选中）
          tableVm.toggleRowSelection(list[i]);
        }
        return;
      }
      var listClone = list.map(function (item) {
        return item[_this4.rowKey];
      });
      this.selected = listClone;
      this.selectedInfo = list;
      this.$emit('selection-change', listClone, list);
    },

    // 渲染slot为空的插槽
    renderEmpty: function renderEmpty(h) {
      var _this5 = this;

      var scoped = typeof this.$scopedSlots.empty === 'function' ? this.$scopedSlots.empty({
        isError: this.isError,
        isLoading: this.isLoading
      }) : null;
      if (scoped) return scoped;
      if (this.$slots.empty) return this.$slots.empty;
      return h(
        'el-empty',
        { 'class': { 'el-wp-table-empty-is-loading': this.isLoading },
          attrs: { image: this.isError ? this.realErrorImage : this.realEmptyImage,
            description: this.isError ? this.t('el.image.error') : this.emptyText, 'image-size': 100 },
          style: 'line-height: 16px' },
        [h(
          'el-button',
          {
            attrs: { type: 'primary', size: 'mini'
            },
            on: {
              'click': function click() {
                if (_this5.isError) {
                  _this5.refresh(false);
                } else {
                  if (typeof _this5.onEmptyBtnClick === 'function') {
                    _this5.onEmptyBtnClick();
                  } else {
                    _this5.refresh(false);
                  }
                }
              }
            }
          },
          [this.isError ? this.t('el.wpCommon.reload') : this.emptyBtnText]
        )]
      );
    },

    // 渲染分页
    renderPagination: function renderPagination(h) {
      var _this6 = this;

      return h('el-pagination', {
        props: Object(lodash_["assign"])({
          total: this.pagination[this.realPaginationKey.total],
          pageSize: this.pagination[this.realPaginationKey.pageSize],
          currentPage: this.pagination[this.realPaginationKey.page]
        }, this.paginationProps),
        on: {
          'size-change': function sizeChange(val) {
            return _this6.handlePagination({
              page: _this6.pagination[_this6.realPaginationKey.page],
              pageSize: val
            });
          },
          'current-change': function currentChange(val) {
            return _this6.handlePagination({
              page: val,
              pageSize: _this6.pagination[_this6.realPaginationKey.pageSize]
            });
          },
          'update:pageSize': function updatePageSize(val) {
            _this6.pagination[_this6.realPaginationKey.pageSize] = val;
          },
          'update:currentPage': function updateCurrentPage(val) {
            _this6.pagination[_this6.realPaginationKey.page] = val;
          }
        }
      });
    },

    // 手动设置受控制的列
    setControlTableColumns: function setControlTableColumns() {
      var getValue = function getValue(vnode, key) {
        if (vnode.componentInstance) {
          return vnode.componentInstance[key];
        }
        return vnode.componentOptions.propsData[key];
      };
      this.controlTableColumns = this.getElTableColumns().map(function (vNode) {
        var isShow = getValue(vNode, 'isShow');
        var order = getValue(vNode, 'order');
        return {
          label: getValue(vNode, 'label'),
          fixed: getValue(vNode, 'customFixed'),
          isShow: typeof isShow === 'boolean' ? isShow : true, // 是否显示
          originOrder: getValue(vNode, 'originOrder'), // 原始排序order
          order: typeof order === 'undefined' ? getValue(vNode, 'originOrder') : order, // 排序order
          columnUUid: getValue(vNode, 'columnUUid')
        };
      });
    },
    renderDefault: function renderDefault(h) {
      // TODO 排序功能待思考怎么做
      return this.$slots.default;
    },
    getTableColumnVmByUUid: function getTableColumnVmByUUid(columnUUid) {
      return Object(lodash_["find"])(this.getElTableColumns(), function (vnode) {
        return vnode.componentInstance.columnUUid === columnUUid;
      });
    },

    // 渲染工具栏
    renderToolBar: function renderToolBar(h) {
      var _this7 = this;

      return h('ToolBar', {
        props: {
          isShowSizeTool: this.isShowSizeTool,
          isShowSettingTool: this.isShowSettingTool,
          isShowRefreshTool: this.isShowRefreshTool,
          controlTableColumns: this.controlTableColumns,
          tableSize: this.tableSize,
          justify: this.toolAlign
        },
        on: {
          onTableSize: function onTableSize(val) {
            _this7.tableSize = val;
          },
          onToolSettingFixedChange: function onToolSettingFixedChange(item, fixed) {
            var currentColumn = _this7.getTableColumnVmByUUid(item.columnUUid);
            if (currentColumn) {
              currentColumn.componentInstance.setFixed(fixed);
              item.fixed = fixed;
            }
          },
          onToolSettingCheckboxChange: function onToolSettingCheckboxChange(item) {
            var isShowValue = !item.isShow;
            var currentColumn = _this7.getTableColumnVmByUUid(item.columnUUid);
            if (currentColumn) {
              currentColumn.componentInstance.setVisibleStatus(isShowValue);
              item.isShow = isShowValue;
            }
          },
          refresh: this.refresh,
          onCheckAllChange: function onCheckAllChange(val) {
            if (val) {
              _this7.getElTableColumns().forEach(function (vnode) {
                vnode.componentInstance.show();
              });
              _this7.controlTableColumns.forEach(function (item) {
                item.isShow = true;
              });
            } else {
              _this7.getElTableColumns().forEach(function (vnode) {
                vnode.componentInstance.hide();
              });
              _this7.controlTableColumns.forEach(function (item) {
                item.isShow = false;
              });
            }
          },
          cancelAllFixed: function cancelAllFixed() {
            _this7.getElTableColumns().forEach(function (vnode) {
              vnode.componentInstance.setFixed(undefined);
            });
            _this7.controlTableColumns.forEach(function (item) {
              item.fixed = undefined;
            });
          }
        }
      }, [h('template', { slot: 'toolbar-prefix' }, this.$slots.toolbarPrefix || this.$slots['toolbar-prefix']), h('template', { slot: 'toolbar-suffix' }, this.$slots.toolbarSuffix || this.$slots['toolbar-suffix'])]);
    },
    checkIsElTableColumn: function checkIsElTableColumn(vnode) {
      return (/ElWpTableColumn$/g.test(vnode.tag) && (vnode.componentInstance ? !!vnode.componentInstance.label && vnode.componentInstance.isAddToolBar : false)
      );
    },
    onTableColumnPropChange: function onTableColumnPropChange(columnUUid, _ref3) {
      var prop = _ref3.prop,
          value = _ref3.value;

      var selectItem = Object(lodash_["find"])(this.controlTableColumns, function (item) {
        return item.columnUUid === columnUUid;
      });
      if (selectItem) {
        selectItem[prop] = value;
      }
    },

    /**
     * @description - 表格删除刷新时的方法, 主要作用为当删除最后一页数据时，删除的个数大于当前的pageSize时，当前页数自动减一
     * @param {number} [delCount] - 删除的个数
     * @return {Promise<unknown>}
     */
    refreshOfDelete: function refreshOfDelete(delCount) {
      delCount = delCount || 1;
      var page = this.pagination[this.realPaginationKey.page];
      var pageSize = this.pagination[this.realPaginationKey.pageSize];
      var total = this.pagination[this.realPaginationKey.total];
      // 删除之后当前最大页数
      var currentMaxPage = Math.max(Math.ceil((total - delCount) / pageSize), 1);
      // 如果删除之前的页数大于删除之后的页数那么就页数重置为删除之后的最大页数
      if (page > currentMaxPage) {
        this.setPagination(this.realPaginationKey.page, currentMaxPage);
      }
      return this.refresh(false);
    }
  },
  render: function render(h) {
    return h(
      'div',
      { style: { width: this.width } },
      [this.renderToolBar(h), h(
        'el-table',
        {
          ref: 'wpTable',
          'class': 'el-wp-table',
          attrs: { 'element-loading-text': this.loadingText || this.t('el.select.loading'),
            'element-loading-background': 'rgba(255, 255, 255, 0.7)',

            data: this.listData,
            size: this.tableSize,
            height: this.height,
            'max-height': this.maxHeight,
            fit: this.fit,
            stripe: this.stripe,
            'row-key': this.rowKey,
            border: this.border,
            context: this.context,
            'show-header': this.showHeader,
            'show-summary': this.showSummary,
            'sum-text': this.sumText,
            'summary-method': this.summaryMethod,
            'row-class-name': this.rowClassName,
            'row-style': this.rowStyle,
            'cell-class-name': this.cellClassName,
            'cell-style': this.cellStyle,
            'header-cell-class-name': this.headerCellClassName,
            'header-cell-style': this.headerCellStyle,
            'header-row-class-name': this.headerRowClassName,
            'header-row-style': this.headerRowStyle,
            'highlight-current-row': this.highlightCurrentRow,
            'highlight-selection-row': this.highlightSelectionRow,
            'current-row-key': this.currentRowKey,
            'expand-row-keys': this.expandRowKeys,
            'default-expand-all': this.defaultExpandAll,
            'default-sort': this.defaultSort,
            'tooltip-effect': this.tooltipEffect,
            'span-method': this.spanMethod,
            'select-on-indeterminate': this.selectOnIndeterminate,
            indent: this.indent,
            lazy: this.lazy,
            load: this.load,
            'tree-props': this.treeProps },
          directives: [{
            name: 'loading',
            value: this.isLoading
          }],
          on: {
            'selection-change': this.handleSelectionChange,
            'select': this.$listeners.select || util_["noop"],
            'select-all': this.$listeners['select-all'] || this.$listeners.selectAll || util_["noop"],
            'cell-mouse-enter': this.$listeners['cell-mouse-enter'] || this.$listeners.cellMouseEnter || util_["noop"],
            'cell-mouse-leave': this.$listeners['cell-mouse-leave'] || this.$listeners.cellMouseLeave || util_["noop"],
            'cell-click': this.$listeners['cell-click'] || this.$listeners.cellClick || util_["noop"],
            'cell-dblclick': this.$listeners['cell-dblclick'] || this.$listeners.cellDblclick || util_["noop"],
            'row-click': this.$listeners['row-click'] || this.$listeners.rowClick || util_["noop"],
            'row-contextmenu': this.$listeners['row-contextmenu'] || this.$listeners.rowContextmenu || util_["noop"],
            'row-dblclick': this.$listeners['row-dblclick'] || this.$listeners.rowDblclick || util_["noop"],
            'header-click': this.$listeners['header-click'] || this.$listeners.headerClick || util_["noop"],
            'header-contextmenu': this.$listeners['header-contextmenu'] || this.$listeners.headerContextmenu || util_["noop"],
            'sort-change': this.$listeners['sort-change'] || this.$listeners.sortChange || util_["noop"],
            'filter-change': this.$listeners['filter-change'] || this.$listeners.filterChange || util_["noop"],
            'current-change': this.$listeners['current-change'] || this.$listeners.currentChange || util_["noop"],
            'header-dragend': this.$listeners['header-dragend'] || this.$listeners.headerDragend || util_["noop"],
            'expand-change': this.$listeners['expand-change'] || this.$listeners.expandChange || util_["noop"]
          }
        },
        [this.maxSelect && h('el-wp-table-column', {
          attrs: {
            type: 'selection',
            width: '50',
            fixed: true,
            align: 'center',
            'is-add-tool-bar': false,
            selectable: this.onSelectable,
            'reserve-selection': this.reserveSelection,
            resizable: false }
        }), this.renderDefault(h), h(
          'template',
          { slot: 'append' },
          [this.$slots.append]
        ), h(
          'template',
          { slot: 'empty' },
          [this.renderEmpty(h)]
        )]
      ), this.renderPagination(h)]
    );
  }
});
// CONCATENATED MODULE: ./packages/wp-table/src/main.vue?vue&type=script&lang=js&
 /* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./packages/wp-table/src/main.vue
var main_render, main_staticRenderFns




/* normalize component */

var main_component = Object(componentNormalizer["a" /* default */])(
  src_mainvue_type_script_lang_js_,
  main_render,
  main_staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var main_api; }
main_component.options.__file = "packages/wp-table/src/main.vue"
/* harmony default export */ var main = (main_component.exports);
// CONCATENATED MODULE: ./packages/wp-table/index.js


/* istanbul ignore next */
main.install = function (Vue) {
  Vue.component(main.name, main);
};

/* harmony default export */ var wp_table = __webpack_exports__["default"] = (main);

/***/ }),

/***/ 9:
/***/ (function(module, exports) {

module.exports = require("wp-element-ui/lib/utils/lodash");

/***/ })

/******/ });