element-ui
Version:
A Component Library for Vue.js.
999 lines (842 loc) • 26.6 kB
JavaScript
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, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // 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 = 54);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, exports) {
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file.
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
module.exports = function normalizeComponent (
rawScriptExports,
compiledTemplate,
functionalTemplate,
injectStyles,
scopeId,
moduleIdentifier /* server only */
) {
var esModule
var scriptExports = rawScriptExports = rawScriptExports || {}
// ES6 modules interop
var type = typeof rawScriptExports.default
if (type === 'object' || type === 'function') {
esModule = rawScriptExports
scriptExports = rawScriptExports.default
}
// Vue.extend constructor export interop
var options = typeof scriptExports === 'function'
? scriptExports.options
: scriptExports
// render functions
if (compiledTemplate) {
options.render = compiledTemplate.render
options.staticRenderFns = compiledTemplate.staticRenderFns
options._compiled = true
}
// functional template
if (functionalTemplate) {
options.functional = true
}
// scopedId
if (scopeId) {
options._scopeId = 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 = injectStyles
}
if (hook) {
var functional = options.functional
var existing = functional
? options.render
: options.beforeCreate
if (!functional) {
// inject component registration as beforeCreate hook
options.beforeCreate = existing
? [].concat(existing, hook)
: [hook]
} else {
// 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
options.render = function renderWithStyleInjection (h, context) {
hook.call(context)
return existing(h, context)
}
}
}
return {
esModule: esModule,
exports: scriptExports,
options: options
}
}
/***/ }),
/***/ 3:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/utils/util");
/***/ }),
/***/ 5:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/mixins/locale");
/***/ }),
/***/ 54:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _pagination = __webpack_require__(55);
var _pagination2 = _interopRequireDefault(_pagination);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* istanbul ignore next */
_pagination2.default.install = function (Vue) {
Vue.component(_pagination2.default.name, _pagination2.default);
};
exports.default = _pagination2.default;
/***/ }),
/***/ 55:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _pager = __webpack_require__(56);
var _pager2 = _interopRequireDefault(_pager);
var _select = __webpack_require__(59);
var _select2 = _interopRequireDefault(_select);
var _option = __webpack_require__(60);
var _option2 = _interopRequireDefault(_option);
var _input = __webpack_require__(6);
var _input2 = _interopRequireDefault(_input);
var _locale = __webpack_require__(5);
var _locale2 = _interopRequireDefault(_locale);
var _util = __webpack_require__(3);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
name: 'ElPagination',
props: {
pageSize: {
type: Number,
default: 10
},
small: Boolean,
total: Number,
pageCount: Number,
pagerCount: {
type: Number,
validator: function validator(value) {
return (value | 0) === value && value > 4 && value < 22 && value % 2 === 1;
},
default: 7
},
currentPage: {
type: Number,
default: 1
},
layout: {
default: 'prev, pager, next, jumper, ->, total'
},
pageSizes: {
type: Array,
default: function _default() {
return [10, 20, 30, 40, 50, 100];
}
},
popperClass: String,
prevText: String,
nextText: String,
background: Boolean,
disabled: Boolean
},
data: function data() {
return {
internalCurrentPage: 1,
internalPageSize: 0,
lastEmittedPage: -1,
userChangePageSize: false
};
},
render: function render(h) {
var template = h(
'div',
{ 'class': ['el-pagination', {
'is-background': this.background,
'el-pagination--small': this.small
}] },
[]
);
var layout = this.layout || '';
if (!layout) return;
var TEMPLATE_MAP = {
prev: h(
'prev',
null,
[]
),
jumper: h(
'jumper',
null,
[]
),
pager: h(
'pager',
{
attrs: { currentPage: this.internalCurrentPage, pageCount: this.internalPageCount, pagerCount: this.pagerCount, disabled: this.disabled },
on: {
'change': this.handleCurrentChange
}
},
[]
),
next: h(
'next',
null,
[]
),
sizes: h(
'sizes',
{
attrs: { pageSizes: this.pageSizes }
},
[]
),
slot: h(
'my-slot',
null,
[]
),
total: h(
'total',
null,
[]
)
};
var components = layout.split(',').map(function (item) {
return item.trim();
});
var rightWrapper = h(
'div',
{ 'class': 'el-pagination__rightwrapper' },
[]
);
var haveRightWrapper = false;
template.children = template.children || [];
rightWrapper.children = rightWrapper.children || [];
components.forEach(function (compo) {
if (compo === '->') {
haveRightWrapper = true;
return;
}
if (!haveRightWrapper) {
template.children.push(TEMPLATE_MAP[compo]);
} else {
rightWrapper.children.push(TEMPLATE_MAP[compo]);
}
});
if (haveRightWrapper) {
template.children.unshift(rightWrapper);
}
return template;
},
components: {
MySlot: {
render: function render(h) {
return this.$parent.$slots.default ? this.$parent.$slots.default[0] : '';
}
},
Prev: {
render: function render(h) {
return h(
'button',
{
attrs: {
type: 'button',
disabled: this.$parent.disabled || this.$parent.internalCurrentPage <= 1
},
'class': 'btn-prev', on: {
'click': this.$parent.prev
}
},
[this.$parent.prevText ? h(
'span',
null,
[this.$parent.prevText]
) : h(
'i',
{ 'class': 'el-icon el-icon-arrow-left' },
[]
)]
);
}
},
Next: {
render: function render(h) {
return h(
'button',
{
attrs: {
type: 'button',
disabled: this.$parent.disabled || this.$parent.internalCurrentPage === this.$parent.internalPageCount || this.$parent.internalPageCount === 0
},
'class': 'btn-next', on: {
'click': this.$parent.next
}
},
[this.$parent.nextText ? h(
'span',
null,
[this.$parent.nextText]
) : h(
'i',
{ 'class': 'el-icon el-icon-arrow-right' },
[]
)]
);
}
},
Sizes: {
mixins: [_locale2.default],
props: {
pageSizes: Array
},
watch: {
pageSizes: {
immediate: true,
handler: function handler(newVal, oldVal) {
if ((0, _util.valueEquals)(newVal, oldVal)) return;
if (Array.isArray(newVal)) {
this.$parent.internalPageSize = newVal.indexOf(this.$parent.pageSize) > -1 ? this.$parent.pageSize : this.pageSizes[0];
}
}
}
},
render: function render(h) {
var _this = this;
return h(
'span',
{ 'class': 'el-pagination__sizes' },
[h(
'el-select',
{
attrs: {
value: this.$parent.internalPageSize,
popperClass: this.$parent.popperClass || '',
size: 'mini',
disabled: this.$parent.disabled },
on: {
'input': this.handleChange
}
},
[this.pageSizes.map(function (item) {
return h(
'el-option',
{
attrs: {
value: item,
label: item + _this.t('el.pagination.pagesize') }
},
[]
);
})]
)]
);
},
components: {
ElSelect: _select2.default,
ElOption: _option2.default
},
methods: {
handleChange: function handleChange(val) {
if (val !== this.$parent.internalPageSize) {
this.$parent.internalPageSize = val = parseInt(val, 10);
this.$parent.userChangePageSize = true;
this.$parent.$emit('size-change', val);
this.$parent.$emit('update:pageSize', val);
}
}
}
},
Jumper: {
mixins: [_locale2.default],
data: function data() {
return {
oldValue: null
};
},
components: { ElInput: _input2.default },
watch: {
'$parent.internalPageSize': function $parentInternalPageSize() {
var _this2 = this;
this.$nextTick(function () {
_this2.$refs.input.$el.querySelector('input').value = _this2.$parent.internalCurrentPage;
});
}
},
methods: {
handleFocus: function handleFocus(event) {
this.oldValue = event.target.value;
},
handleBlur: function handleBlur(_ref) {
var target = _ref.target;
this.resetValueIfNeed(target.value);
this.reassignMaxValue(target.value);
},
handleKeyup: function handleKeyup(_ref2) {
var keyCode = _ref2.keyCode,
target = _ref2.target;
if (keyCode === 13 && this.oldValue && target.value !== this.oldValue) {
this.handleChange(target.value);
}
},
handleChange: function handleChange(value) {
this.$parent.internalCurrentPage = this.$parent.getValidCurrentPage(value);
this.$parent.emitChange();
this.oldValue = null;
this.resetValueIfNeed(value);
},
resetValueIfNeed: function resetValueIfNeed(value) {
var num = parseInt(value, 10);
if (!isNaN(num)) {
if (num < 1) {
this.$refs.input.setCurrentValue(1);
} else {
this.reassignMaxValue(value);
}
}
},
reassignMaxValue: function reassignMaxValue(value) {
var internalPageCount = this.$parent.internalPageCount;
if (+value > internalPageCount) {
this.$refs.input.setCurrentValue(internalPageCount);
}
}
},
render: function render(h) {
return h(
'span',
{ 'class': 'el-pagination__jump' },
[this.t('el.pagination.goto'), h(
'el-input',
{
'class': 'el-pagination__editor is-in-pagination',
attrs: { min: 1,
max: this.$parent.internalPageCount,
value: this.$parent.internalCurrentPage,
type: 'number',
disabled: this.$parent.disabled
},
domProps: {
'value': this.$parent.internalCurrentPage
},
ref: 'input', nativeOn: {
'keyup': this.handleKeyup
},
on: {
'change': this.handleChange,
'focus': this.handleFocus,
'blur': this.handleBlur
}
},
[]
), this.t('el.pagination.pageClassifier')]
);
}
},
Total: {
mixins: [_locale2.default],
render: function render(h) {
return typeof this.$parent.total === 'number' ? h(
'span',
{ 'class': 'el-pagination__total' },
[this.t('el.pagination.total', { total: this.$parent.total })]
) : '';
}
},
Pager: _pager2.default
},
methods: {
handleCurrentChange: function handleCurrentChange(val) {
this.internalCurrentPage = this.getValidCurrentPage(val);
this.userChangePageSize = true;
this.emitChange();
},
prev: function prev() {
if (this.disabled) return;
var newVal = this.internalCurrentPage - 1;
this.internalCurrentPage = this.getValidCurrentPage(newVal);
this.$emit('prev-click', this.internalCurrentPage);
this.emitChange();
},
next: function next() {
if (this.disabled) return;
var newVal = this.internalCurrentPage + 1;
this.internalCurrentPage = this.getValidCurrentPage(newVal);
this.$emit('next-click', this.internalCurrentPage);
this.emitChange();
},
getValidCurrentPage: function getValidCurrentPage(value) {
value = parseInt(value, 10);
var havePageCount = typeof this.internalPageCount === 'number';
var resetValue = void 0;
if (!havePageCount) {
if (isNaN(value) || value < 1) resetValue = 1;
} else {
if (value < 1) {
resetValue = 1;
} else if (value > this.internalPageCount) {
resetValue = this.internalPageCount;
}
}
if (resetValue === undefined && isNaN(value)) {
resetValue = 1;
} else if (resetValue === 0) {
resetValue = 1;
}
return resetValue === undefined ? value : resetValue;
},
emitChange: function emitChange() {
var _this3 = this;
this.$nextTick(function () {
if (_this3.internalCurrentPage !== _this3.lastEmittedPage || _this3.userChangePageSize) {
_this3.$emit('current-change', _this3.internalCurrentPage);
_this3.lastEmittedPage = _this3.internalCurrentPage;
_this3.userChangePageSize = false;
}
});
}
},
computed: {
internalPageCount: function internalPageCount() {
if (typeof this.total === 'number') {
return Math.ceil(this.total / this.internalPageSize);
} else if (typeof this.pageCount === 'number') {
return this.pageCount;
}
return null;
}
},
watch: {
currentPage: {
immediate: true,
handler: function handler(val) {
this.internalCurrentPage = val;
}
},
pageSize: {
immediate: true,
handler: function handler(val) {
this.internalPageSize = isNaN(val) ? 10 : val;
}
},
internalCurrentPage: {
immediate: true,
handler: function handler(newVal, oldVal) {
newVal = parseInt(newVal, 10);
/* istanbul ignore if */
if (isNaN(newVal)) {
newVal = oldVal || 1;
} else {
newVal = this.getValidCurrentPage(newVal);
}
if (newVal !== undefined) {
this.internalCurrentPage = newVal;
if (oldVal !== newVal) {
this.$emit('update:currentPage', newVal);
}
} else {
this.$emit('update:currentPage', newVal);
}
this.lastEmittedPage = -1;
}
},
internalPageCount: function internalPageCount(newVal) {
/* istanbul ignore if */
var oldPage = this.internalCurrentPage;
if (newVal > 0 && oldPage === 0) {
this.internalCurrentPage = 1;
} else if (oldPage > newVal) {
this.internalCurrentPage = newVal === 0 ? 1 : newVal;
this.userChangePageSize && this.emitChange();
}
this.userChangePageSize = false;
}
}
};
/***/ }),
/***/ 56:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue__ = __webpack_require__(57);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_046e52c4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_pager_vue__ = __webpack_require__(58);
var normalizeComponent = __webpack_require__(0)
/* script */
/* template */
/* template functional */
var __vue_template_functional__ = false
/* styles */
var __vue_styles__ = null
/* scopeId */
var __vue_scopeId__ = null
/* moduleIdentifier (server only) */
var __vue_module_identifier__ = null
var Component = normalizeComponent(
__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue___default.a,
__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_046e52c4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_pager_vue__["a" /* default */],
__vue_template_functional__,
__vue_styles__,
__vue_scopeId__,
__vue_module_identifier__
)
/* harmony default export */ __webpack_exports__["default"] = (Component.exports);
/***/ }),
/***/ 57:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
exports.default = {
name: 'ElPager',
props: {
currentPage: Number,
pageCount: Number,
pagerCount: Number,
disabled: Boolean
},
watch: {
showPrevMore: function showPrevMore(val) {
if (!val) this.quickprevIconClass = 'el-icon-more';
},
showNextMore: function showNextMore(val) {
if (!val) this.quicknextIconClass = 'el-icon-more';
}
},
methods: {
onPagerClick: function onPagerClick(event) {
var target = event.target;
if (target.tagName === 'UL' || this.disabled) {
return;
}
var newPage = Number(event.target.textContent);
var pageCount = this.pageCount;
var currentPage = this.currentPage;
var pagerCountOffset = this.pagerCount - 2;
if (target.className.indexOf('more') !== -1) {
if (target.className.indexOf('quickprev') !== -1) {
newPage = currentPage - pagerCountOffset;
} else if (target.className.indexOf('quicknext') !== -1) {
newPage = currentPage + pagerCountOffset;
}
}
/* istanbul ignore if */
if (!isNaN(newPage)) {
if (newPage < 1) {
newPage = 1;
}
if (newPage > pageCount) {
newPage = pageCount;
}
}
if (newPage !== currentPage) {
this.$emit('change', newPage);
}
},
onMouseenter: function onMouseenter(direction) {
if (this.disabled) return;
if (direction === 'left') {
this.quickprevIconClass = 'el-icon-d-arrow-left';
} else {
this.quicknextIconClass = 'el-icon-d-arrow-right';
}
}
},
computed: {
pagers: function pagers() {
var pagerCount = this.pagerCount;
var halfPagerCount = (pagerCount - 1) / 2;
var currentPage = Number(this.currentPage);
var pageCount = Number(this.pageCount);
var showPrevMore = false;
var showNextMore = false;
if (pageCount > pagerCount) {
if (currentPage > pagerCount - halfPagerCount) {
showPrevMore = true;
}
if (currentPage < pageCount - halfPagerCount) {
showNextMore = true;
}
}
var array = [];
if (showPrevMore && !showNextMore) {
var startPage = pageCount - (pagerCount - 2);
for (var i = startPage; i < pageCount; i++) {
array.push(i);
}
} else if (!showPrevMore && showNextMore) {
for (var _i = 2; _i < pagerCount; _i++) {
array.push(_i);
}
} else if (showPrevMore && showNextMore) {
var offset = Math.floor(pagerCount / 2) - 1;
for (var _i2 = currentPage - offset; _i2 <= currentPage + offset; _i2++) {
array.push(_i2);
}
} else {
for (var _i3 = 2; _i3 < pageCount; _i3++) {
array.push(_i3);
}
}
this.showPrevMore = showPrevMore;
this.showNextMore = showNextMore;
return array;
}
},
data: function data() {
return {
current: null,
showPrevMore: false,
showNextMore: false,
quicknextIconClass: 'el-icon-more',
quickprevIconClass: 'el-icon-more'
};
}
};
/***/ }),
/***/ 58:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:"el-pager",on:{"click":_vm.onPagerClick}},[(_vm.pageCount > 0)?_c('li',{staticClass:"number",class:{ active: _vm.currentPage === 1, disabled: _vm.disabled }},[_vm._v("1")]):_vm._e(),(_vm.showPrevMore)?_c('li',{staticClass:"el-icon more btn-quickprev",class:[_vm.quickprevIconClass, { disabled: _vm.disabled }],on:{"mouseenter":function($event){_vm.onMouseenter('left')},"mouseleave":function($event){_vm.quickprevIconClass = 'el-icon-more'}}}):_vm._e(),_vm._l((_vm.pagers),function(pager){return _c('li',{key:pager,staticClass:"number",class:{ active: _vm.currentPage === pager, disabled: _vm.disabled }},[_vm._v(_vm._s(pager))])}),(_vm.showNextMore)?_c('li',{staticClass:"el-icon more btn-quicknext",class:[_vm.quicknextIconClass, { disabled: _vm.disabled }],on:{"mouseenter":function($event){_vm.onMouseenter('right')},"mouseleave":function($event){_vm.quicknextIconClass = 'el-icon-more'}}}):_vm._e(),(_vm.pageCount > 1)?_c('li',{staticClass:"number",class:{ active: _vm.currentPage === _vm.pageCount, disabled: _vm.disabled }},[_vm._v(_vm._s(_vm.pageCount))]):_vm._e()],2)}
var staticRenderFns = []
var esExports = { render: render, staticRenderFns: staticRenderFns }
/* harmony default export */ __webpack_exports__["a"] = (esExports);
/***/ }),
/***/ 59:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/select");
/***/ }),
/***/ 6:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/input");
/***/ }),
/***/ 60:
/***/ (function(module, exports) {
module.exports = require("element-ui/lib/option");
/***/ })
/******/ });