react-bootstrap-table2-paginator
Version:
it's the pagination addon for react-bootstrap-table2
1,302 lines (1,045 loc) • 226 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("react"));
else if(typeof define === 'function' && define.amd)
define(["react"], factory);
else if(typeof exports === 'object')
exports["ReactBootstrapTable2Paginator"] = factory(require("react"));
else
root["ReactBootstrapTable2Paginator"] = factory(root["React"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {
return /******/ (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 = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 15);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
/**
* Copyright 2013-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
if (false) {
var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
Symbol.for &&
Symbol.for('react.element')) ||
0xeac7;
var isValidElement = function(object) {
return typeof object === 'object' &&
object !== null &&
object.$$typeof === REACT_ELEMENT_TYPE;
};
// By explicitly using `prop-types` you are opting into new development behavior.
// http://fb.me/prop-types-in-prod
var throwOnDirectAccess = true;
module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);
} else {
// By explicitly using `prop-types` you are opting into new production behavior.
// http://fb.me/prop-types-in-prod
module.exports = __webpack_require__(16)();
}
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = {
PAGINATION_SIZE: 5,
PAGE_START_INDEX: 1,
With_FIRST_AND_LAST: true,
SHOW_ALL_PAGE_BTNS: false,
SHOW_TOTAL: false,
PAGINATION_TOTAL: null,
FIRST_PAGE_TEXT: '<<',
PRE_PAGE_TEXT: '<',
NEXT_PAGE_TEXT: '>',
LAST_PAGE_TEXT: '>>',
NEXT_PAGE_TITLE: 'next page',
LAST_PAGE_TITLE: 'last page',
PRE_PAGE_TITLE: 'previous page',
FIRST_PAGE_TITLE: 'first page',
SIZE_PER_PAGE_LIST: [10, 25, 30, 50],
HIDE_SIZE_PER_PAGE: false,
HIDE_PAGE_LIST_ONLY_ONE_PAGE: false
};
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _const = __webpack_require__(2);
var _const2 = _interopRequireDefault(_const);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint no-mixed-operators: 0 */
exports.default = function (ExtendBase) {
return function (_ExtendBase) {
_inherits(PageResolver, _ExtendBase);
function PageResolver() {
_classCallCheck(this, PageResolver);
return _possibleConstructorReturn(this, (PageResolver.__proto__ || Object.getPrototypeOf(PageResolver)).apply(this, arguments));
}
_createClass(PageResolver, [{
key: 'backToPrevPage',
value: function backToPrevPage() {
var _props = this.props,
currPage = _props.currPage,
pageStartIndex = _props.pageStartIndex;
return currPage - 1 < pageStartIndex ? pageStartIndex : currPage - 1;
}
}, {
key: 'initialState',
value: function initialState() {
var totalPages = this.calculateTotalPage();
var lastPage = this.calculateLastPage(totalPages);
return { totalPages: totalPages, lastPage: lastPage };
}
}, {
key: 'calculateTotalPage',
value: function calculateTotalPage() {
var sizePerPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.currSizePerPage;
var dataSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.dataSize;
return Math.ceil(dataSize / sizePerPage);
}
}, {
key: 'calculateLastPage',
value: function calculateLastPage(totalPages) {
var pageStartIndex = this.props.pageStartIndex;
return pageStartIndex + totalPages - 1;
}
}, {
key: 'calculateFromTo',
value: function calculateFromTo() {
var _props2 = this.props,
dataSize = _props2.dataSize,
currPage = _props2.currPage,
currSizePerPage = _props2.currSizePerPage,
pageStartIndex = _props2.pageStartIndex;
var offset = Math.abs(_const2.default.PAGE_START_INDEX - pageStartIndex);
var from = (currPage - pageStartIndex) * currSizePerPage;
from = dataSize === 0 ? 0 : from + 1;
var to = Math.min(currSizePerPage * (currPage + offset), dataSize);
if (to > dataSize) to = dataSize;
return [from, to];
}
}, {
key: 'calculatePages',
value: function calculatePages(totalPages, lastPage) {
var _props3 = this.props,
currPage = _props3.currPage,
paginationSize = _props3.paginationSize,
pageStartIndex = _props3.pageStartIndex,
withFirstAndLast = _props3.withFirstAndLast,
firstPageText = _props3.firstPageText,
prePageText = _props3.prePageText,
nextPageText = _props3.nextPageText,
lastPageText = _props3.lastPageText,
alwaysShowAllBtns = _props3.alwaysShowAllBtns;
var pages = [];
var endPage = totalPages;
if (endPage <= 0) return [];
var startPage = Math.max(currPage - Math.floor(paginationSize / 2), pageStartIndex);
endPage = startPage + paginationSize - 1;
if (endPage > lastPage) {
endPage = lastPage;
startPage = endPage - paginationSize + 1;
}
if (alwaysShowAllBtns) {
if (withFirstAndLast) {
pages = [firstPageText, prePageText];
} else {
pages = [prePageText];
}
}
if (startPage !== pageStartIndex && totalPages > paginationSize && withFirstAndLast && pages.length === 0) {
pages = [firstPageText, prePageText];
} else if (totalPages > 1 && pages.length === 0) {
pages = [prePageText];
}
for (var i = startPage; i <= endPage; i += 1) {
if (i >= pageStartIndex) pages.push(i);
}
if (alwaysShowAllBtns || endPage <= lastPage && pages.length > 1) {
pages.push(nextPageText);
}
if (endPage !== lastPage && withFirstAndLast || withFirstAndLast && alwaysShowAllBtns) {
pages.push(lastPageText);
}
// if ((endPage <= lastPage && pages.length > 1) || alwaysShowAllBtns) {
// pages.push(nextPageText);
// }
// if (endPage !== lastPage && withFirstAndLast) {
// pages.push(lastPageText);
// }
return pages;
}
}, {
key: 'calculatePageStatus',
value: function calculatePageStatus() {
var pages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var _this2 = this;
var lastPage = arguments[1];
var disablePageTitle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var _props4 = this.props,
currPage = _props4.currPage,
pageStartIndex = _props4.pageStartIndex,
firstPageText = _props4.firstPageText,
prePageText = _props4.prePageText,
nextPageText = _props4.nextPageText,
lastPageText = _props4.lastPageText,
alwaysShowAllBtns = _props4.alwaysShowAllBtns;
var isStart = function isStart(page) {
return currPage === pageStartIndex && (page === firstPageText || page === prePageText);
};
var isEnd = function isEnd(page) {
return currPage === lastPage && (page === nextPageText || page === lastPageText);
};
return pages.filter(function (page) {
if (alwaysShowAllBtns) {
return true;
}
return !(isStart(page) || isEnd(page));
}).map(function (page) {
var title = void 0;
var active = page === currPage;
var disabled = isStart(page) || isEnd(page);
if (page === nextPageText) {
title = _this2.props.nextPageTitle;
} else if (page === prePageText) {
title = _this2.props.prePageTitle;
} else if (page === firstPageText) {
title = _this2.props.firstPageTitle;
} else if (page === lastPageText) {
title = _this2.props.lastPageTitle;
} else {
title = '' + page;
}
var pageResult = { page: page, active: active, disabled: disabled };
if (!disablePageTitle) {
pageResult.title = title;
}
return pageResult;
});
}
}, {
key: 'calculateSizePerPageStatus',
value: function calculateSizePerPageStatus() {
var sizePerPageList = this.props.sizePerPageList;
return sizePerPageList.map(function (_sizePerPage) {
var pageText = typeof _sizePerPage.text !== 'undefined' ? _sizePerPage.text : _sizePerPage;
var pageNumber = typeof _sizePerPage.value !== 'undefined' ? _sizePerPage.value : _sizePerPage;
return {
text: '' + pageText,
page: pageNumber
};
});
}
}]);
return PageResolver;
}(ExtendBase);
};
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
Copyright (c) 2017 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/* global define */
(function () {
'use strict';
var hasOwn = {}.hasOwnProperty;
function classNames () {
var classes = [];
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (!arg) continue;
var argType = typeof arg;
if (argType === 'string' || argType === 'number') {
classes.push(arg);
} else if (Array.isArray(arg) && arg.length) {
var inner = classNames.apply(null, arg);
if (inner) {
classes.push(inner);
}
} else if (argType === 'object') {
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes.push(key);
}
}
}
}
return classes.join(' ');
}
if (typeof module !== 'undefined' && module.exports) {
classNames.default = classNames;
module.exports = classNames;
} else if (true) {
// register as 'classnames', consistent with npm package name
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
return classNames;
}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {
window.classNames = classNames;
}
}());
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _pageResolver2 = __webpack_require__(3);
var _pageResolver3 = _interopRequireDefault(_pageResolver2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/prop-types: 0 */
/* eslint camelcase: 0 */
exports.default = function (WrappedComponent) {
return function (_pageResolver) {
_inherits(PaginationHandler, _pageResolver);
function PaginationHandler(props) {
_classCallCheck(this, PaginationHandler);
var _this = _possibleConstructorReturn(this, (PaginationHandler.__proto__ || Object.getPrototypeOf(PaginationHandler)).call(this, props));
_this.handleChangePage = _this.handleChangePage.bind(_this);
_this.handleChangeSizePerPage = _this.handleChangeSizePerPage.bind(_this);
_this.state = _this.initialState();
return _this;
}
_createClass(PaginationHandler, [{
key: 'UNSAFE_componentWillReceiveProps',
value: function UNSAFE_componentWillReceiveProps(nextProps) {
var dataSize = nextProps.dataSize,
currSizePerPage = nextProps.currSizePerPage;
if (currSizePerPage !== this.props.currSizePerPage || dataSize !== this.props.dataSize) {
var totalPages = this.calculateTotalPage(currSizePerPage, dataSize);
var lastPage = this.calculateLastPage(totalPages);
this.setState({ totalPages: totalPages, lastPage: lastPage });
}
}
}, {
key: 'handleChangeSizePerPage',
value: function handleChangeSizePerPage(sizePerPage) {
var _props = this.props,
currSizePerPage = _props.currSizePerPage,
onSizePerPageChange = _props.onSizePerPageChange;
var selectedSize = typeof sizePerPage === 'string' ? parseInt(sizePerPage, 10) : sizePerPage;
var currPage = this.props.currPage;
if (selectedSize !== currSizePerPage) {
var newTotalPages = this.calculateTotalPage(selectedSize);
var newLastPage = this.calculateLastPage(newTotalPages);
if (currPage > newLastPage) currPage = newLastPage;
onSizePerPageChange(selectedSize, currPage);
}
}
}, {
key: 'handleChangePage',
value: function handleChangePage(newPage) {
var page = void 0;
var _props2 = this.props,
currPage = _props2.currPage,
pageStartIndex = _props2.pageStartIndex,
prePageText = _props2.prePageText,
nextPageText = _props2.nextPageText,
lastPageText = _props2.lastPageText,
firstPageText = _props2.firstPageText,
onPageChange = _props2.onPageChange;
var lastPage = this.state.lastPage;
if (newPage === prePageText) {
page = this.backToPrevPage();
} else if (newPage === nextPageText) {
page = currPage + 1 > lastPage ? lastPage : currPage + 1;
} else if (newPage === lastPageText) {
page = lastPage;
} else if (newPage === firstPageText) {
page = pageStartIndex;
} else {
page = parseInt(newPage, 10);
}
if (page !== currPage) {
onPageChange(page);
}
}
}, {
key: 'render',
value: function render() {
return _react2.default.createElement(WrappedComponent, _extends({}, this.props, {
lastPage: this.state.lastPage,
totalPages: this.state.totalPages,
onPageChange: this.handleChangePage,
onSizePerPageChange: this.handleChangeSizePerPage
}));
}
}]);
return PaginationHandler;
}((0, _pageResolver3.default)(_react.Component));
};
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /* eslint react/prop-types: 0 */
exports.default = function (WrappedComponent) {
return function (_ref) {
var page = _ref.page,
sizePerPage = _ref.sizePerPage,
rest = _objectWithoutProperties(_ref, ['page', 'sizePerPage']);
return _react2.default.createElement(WrappedComponent, _extends({}, rest, {
currPage: page,
currSizePerPage: sizePerPage
}));
};
};
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _events = __webpack_require__(20);
var _events2 = _interopRequireDefault(_events);
var _const = __webpack_require__(2);
var _const2 = _interopRequireDefault(_const);
var _page = __webpack_require__(8);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/prop-types: 0 */
/* eslint react/require-default-props: 0 */
/* eslint no-lonely-if: 0 */
/* eslint camelcase: 0 */
var StateContext = _react2.default.createContext();
var StateProvider = function (_React$Component) {
_inherits(StateProvider, _React$Component);
function StateProvider(props) {
_classCallCheck(this, StateProvider);
var _this = _possibleConstructorReturn(this, (StateProvider.__proto__ || Object.getPrototypeOf(StateProvider)).call(this, props));
_initialiseProps.call(_this);
_this.handleChangePage = _this.handleChangePage.bind(_this);
_this.handleDataSizeChange = _this.handleDataSizeChange.bind(_this);
_this.handleChangeSizePerPage = _this.handleChangeSizePerPage.bind(_this);
var currPage = void 0;
var currSizePerPage = void 0;
var options = props.pagination.options;
var sizePerPageList = options.sizePerPageList || _const2.default.SIZE_PER_PAGE_LIST;
// initialize current page
if (typeof options.page !== 'undefined') {
currPage = options.page;
} else if (typeof options.pageStartIndex !== 'undefined') {
currPage = options.pageStartIndex;
} else {
currPage = _const2.default.PAGE_START_INDEX;
}
// initialize current sizePerPage
if (typeof options.sizePerPage !== 'undefined') {
currSizePerPage = options.sizePerPage;
} else if (_typeof(sizePerPageList[0]) === 'object') {
currSizePerPage = sizePerPageList[0].value;
} else {
currSizePerPage = sizePerPageList[0];
}
_this.currPage = currPage;
_this.dataSize = options.totalSize;
_this.currSizePerPage = currSizePerPage;
_this.dataChangeListener = new _events2.default();
_this.dataChangeListener.on('filterChanged', _this.handleDataSizeChange);
return _this;
}
_createClass(StateProvider, [{
key: 'UNSAFE_componentWillReceiveProps',
value: function UNSAFE_componentWillReceiveProps(nextProps) {
var custom = nextProps.pagination.options.custom;
// user should align the page when the page is not fit to the data size when remote enable
if (this.isRemotePagination() || custom) {
if (typeof nextProps.pagination.options.page !== 'undefined') {
this.currPage = nextProps.pagination.options.page;
}
if (typeof nextProps.pagination.options.sizePerPage !== 'undefined') {
this.currSizePerPage = nextProps.pagination.options.sizePerPage;
}
if (typeof nextProps.pagination.options.totalSize !== 'undefined') {
this.dataSize = nextProps.pagination.options.totalSize;
}
}
}
}, {
key: 'handleDataSizeChange',
value: function handleDataSizeChange(newDataSize) {
var options = this.props.pagination.options;
var pageStartIndex = typeof options.pageStartIndex === 'undefined' ? _const2.default.PAGE_START_INDEX : options.pageStartIndex;
this.currPage = (0, _page.alignPage)(newDataSize, this.dataSize, this.currPage, this.currSizePerPage, pageStartIndex);
this.dataSize = newDataSize;
this.forceUpdate();
}
}, {
key: 'handleChangePage',
value: function handleChangePage(currPage) {
var currSizePerPage = this.currSizePerPage;
var options = this.props.pagination.options;
if (options.onPageChange) {
options.onPageChange(currPage, currSizePerPage);
}
this.currPage = currPage;
if (this.isRemotePagination()) {
this.getPaginationRemoteEmitter().emit('paginationChange', currPage, currSizePerPage);
return;
}
this.forceUpdate();
}
}, {
key: 'handleChangeSizePerPage',
value: function handleChangeSizePerPage(currSizePerPage, currPage) {
var options = this.props.pagination.options;
if (options.onSizePerPageChange) {
options.onSizePerPageChange(currSizePerPage, currPage);
}
this.currPage = currPage;
this.currSizePerPage = currSizePerPage;
if (this.isRemotePagination()) {
this.getPaginationRemoteEmitter().emit('paginationChange', currPage, currSizePerPage);
return;
}
this.forceUpdate();
}
}, {
key: 'render',
value: function render() {
var paginationProps = this.getPaginationProps();
var pagination = _extends({}, this.props.pagination, {
options: paginationProps
});
return _react2.default.createElement(
StateContext.Provider,
{
value: {
paginationProps: paginationProps,
paginationTableProps: {
pagination: pagination,
setPaginationRemoteEmitter: this.setPaginationRemoteEmitter,
dataChangeListener: this.dataChangeListener
}
}
},
this.props.children
);
}
}]);
return StateProvider;
}(_react2.default.Component);
var _initialiseProps = function _initialiseProps() {
var _this2 = this;
this.getPaginationProps = function () {
var _props = _this2.props,
options = _props.pagination.options,
bootstrap4 = _props.bootstrap4,
tableId = _props.tableId;
var currPage = _this2.currPage,
currSizePerPage = _this2.currSizePerPage,
dataSize = _this2.dataSize;
var withFirstAndLast = typeof options.withFirstAndLast === 'undefined' ? _const2.default.With_FIRST_AND_LAST : options.withFirstAndLast;
var alwaysShowAllBtns = typeof options.alwaysShowAllBtns === 'undefined' ? _const2.default.SHOW_ALL_PAGE_BTNS : options.alwaysShowAllBtns;
var hideSizePerPage = typeof options.hideSizePerPage === 'undefined' ? _const2.default.HIDE_SIZE_PER_PAGE : options.hideSizePerPage;
var hidePageListOnlyOnePage = typeof options.hidePageListOnlyOnePage === 'undefined' ? _const2.default.HIDE_PAGE_LIST_ONLY_ONE_PAGE : options.hidePageListOnlyOnePage;
var pageStartIndex = typeof options.pageStartIndex === 'undefined' ? _const2.default.PAGE_START_INDEX : options.pageStartIndex;
return _extends({}, options, {
bootstrap4: bootstrap4,
tableId: tableId,
page: currPage,
sizePerPage: currSizePerPage,
pageStartIndex: pageStartIndex,
hidePageListOnlyOnePage: hidePageListOnlyOnePage,
hideSizePerPage: hideSizePerPage,
alwaysShowAllBtns: alwaysShowAllBtns,
withFirstAndLast: withFirstAndLast,
dataSize: dataSize,
sizePerPageList: options.sizePerPageList || _const2.default.SIZE_PER_PAGE_LIST,
paginationSize: options.paginationSize || _const2.default.PAGINATION_SIZE,
showTotal: options.showTotal,
pageListRenderer: options.pageListRenderer,
pageButtonRenderer: options.pageButtonRenderer,
sizePerPageRenderer: options.sizePerPageRenderer,
paginationTotalRenderer: options.paginationTotalRenderer,
sizePerPageOptionRenderer: options.sizePerPageOptionRenderer,
firstPageText: options.firstPageText || _const2.default.FIRST_PAGE_TEXT,
prePageText: options.prePageText || _const2.default.PRE_PAGE_TEXT,
nextPageText: options.nextPageText || _const2.default.NEXT_PAGE_TEXT,
lastPageText: options.lastPageText || _const2.default.LAST_PAGE_TEXT,
prePageTitle: options.prePageTitle || _const2.default.PRE_PAGE_TITLE,
nextPageTitle: options.nextPageTitle || _const2.default.NEXT_PAGE_TITLE,
firstPageTitle: options.firstPageTitle || _const2.default.FIRST_PAGE_TITLE,
lastPageTitle: options.lastPageTitle || _const2.default.LAST_PAGE_TITLE,
onPageChange: _this2.handleChangePage,
onSizePerPageChange: _this2.handleChangeSizePerPage
});
};
this.setPaginationRemoteEmitter = function (remoteEmitter) {
_this2.remoteEmitter = remoteEmitter;
};
this.getPaginationRemoteEmitter = function () {
return _this2.remoteEmitter || _this2.props.remoteEmitter;
};
this.isRemotePagination = function () {
var e = {};
_this2.remoteEmitter.emit('isRemotePagination', e);
return e.result;
};
};
exports.default = function () {
return {
Provider: StateProvider,
Consumer: StateContext.Consumer
};
};
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getByCurrPage = exports.alignPage = undefined;
var _const = __webpack_require__(2);
var _const2 = _interopRequireDefault(_const);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var getNormalizedPage = function getNormalizedPage(page, pageStartIndex) {
var offset = Math.abs(1 - pageStartIndex);
return page + offset;
};
var endIndex = function endIndex(page, sizePerPage, pageStartIndex) {
return getNormalizedPage(page, pageStartIndex) * sizePerPage - 1;
};
var startIndex = function startIndex(end, sizePerPage) {
return end - (sizePerPage - 1);
};
var alignPage = exports.alignPage = function alignPage(dataSize, prevDataSize, page, sizePerPage, pageStartIndex) {
if (prevDataSize < dataSize) return page;
if (page < pageStartIndex) return pageStartIndex;
if (dataSize <= 0) return pageStartIndex;
if (page >= Math.floor(dataSize / sizePerPage) + pageStartIndex && pageStartIndex === 1) {
return Math.ceil(dataSize / sizePerPage);
}
if (page >= Math.floor(dataSize / sizePerPage) && pageStartIndex === 0) {
var newPage = Math.ceil(dataSize / sizePerPage);
return newPage - Math.abs(_const2.default.PAGE_START_INDEX - pageStartIndex);
}
return page;
};
var getByCurrPage = exports.getByCurrPage = function getByCurrPage(data, page, sizePerPage, pageStartIndex) {
var dataSize = data.length;
if (!dataSize) return [];
var end = endIndex(page, sizePerPage, pageStartIndex);
var start = startIndex(end, sizePerPage);
var result = [];
for (var i = start; i <= end; i += 1) {
result.push(data[i]);
if (i + 1 === dataSize) break;
}
return result;
};
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SizePerPageDropdownWithAdapter = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _pageResolver2 = __webpack_require__(3);
var _pageResolver3 = _interopRequireDefault(_pageResolver2);
var _sizePerPageDropdown = __webpack_require__(10);
var _sizePerPageDropdown2 = _interopRequireDefault(_sizePerPageDropdown);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/prop-types: 0 */
var sizePerPageDropdownAdapter = function sizePerPageDropdownAdapter(WrappedComponent) {
return function (_pageResolver) {
_inherits(SizePerPageDropdownAdapter, _pageResolver);
function SizePerPageDropdownAdapter(props) {
_classCallCheck(this, SizePerPageDropdownAdapter);
var _this = _possibleConstructorReturn(this, (SizePerPageDropdownAdapter.__proto__ || Object.getPrototypeOf(SizePerPageDropdownAdapter)).call(this, props));
_this.closeDropDown = _this.closeDropDown.bind(_this);
_this.toggleDropDown = _this.toggleDropDown.bind(_this);
_this.handleChangeSizePerPage = _this.handleChangeSizePerPage.bind(_this);
_this.state = { dropdownOpen: false };
return _this;
}
_createClass(SizePerPageDropdownAdapter, [{
key: 'toggleDropDown',
value: function toggleDropDown() {
var dropdownOpen = !this.state.dropdownOpen;
this.setState(function () {
return { dropdownOpen: dropdownOpen };
});
}
}, {
key: 'closeDropDown',
value: function closeDropDown() {
this.setState(function () {
return { dropdownOpen: false };
});
}
}, {
key: 'handleChangeSizePerPage',
value: function handleChangeSizePerPage(sizePerPage) {
this.props.onSizePerPageChange(sizePerPage);
this.closeDropDown();
}
}, {
key: 'render',
value: function render() {
var _props = this.props,
tableId = _props.tableId,
bootstrap4 = _props.bootstrap4,
sizePerPageList = _props.sizePerPageList,
currSizePerPage = _props.currSizePerPage,
hideSizePerPage = _props.hideSizePerPage,
sizePerPageRenderer = _props.sizePerPageRenderer,
sizePerPageOptionRenderer = _props.sizePerPageOptionRenderer;
var open = this.state.dropdownOpen;
if (sizePerPageList.length > 1 && !hideSizePerPage) {
if (sizePerPageRenderer) {
return sizePerPageRenderer({
options: this.calculateSizePerPageStatus(),
currSizePerPage: '' + currSizePerPage,
onSizePerPageChange: this.handleChangeSizePerPage
});
}
return _react2.default.createElement(WrappedComponent, _extends({}, this.props, {
currSizePerPage: '' + currSizePerPage,
options: this.calculateSizePerPageStatus(),
optionRenderer: sizePerPageOptionRenderer,
onSizePerPageChange: this.handleChangeSizePerPage,
onClick: this.toggleDropDown,
onBlur: this.closeDropDown,
open: open,
tableId: tableId,
bootstrap4: bootstrap4
}));
}
return null;
}
}]);
return SizePerPageDropdownAdapter;
}((0, _pageResolver3.default)(_react.Component));
};
var SizePerPageDropdownWithAdapter = exports.SizePerPageDropdownWithAdapter = sizePerPageDropdownAdapter(_sizePerPageDropdown2.default);
exports.default = sizePerPageDropdownAdapter;
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _classnames = __webpack_require__(4);
var _classnames2 = _interopRequireDefault(_classnames);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _sizePerPageOption = __webpack_require__(23);
var _sizePerPageOption2 = _interopRequireDefault(_sizePerPageOption);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var sizePerPageDefaultClass = 'react-bs-table-sizePerPage-dropdown';
var SizePerPageDropDown = function SizePerPageDropDown(props) {
var open = props.open,
tableId = props.tableId,
hidden = props.hidden,
onClick = props.onClick,
onBlur = props.onBlur,
options = props.options,
className = props.className,
variation = props.variation,
bootstrap4 = props.bootstrap4,
btnContextual = props.btnContextual,
optionRenderer = props.optionRenderer,
currSizePerPage = props.currSizePerPage,
onSizePerPageChange = props.onSizePerPageChange;
var dropDownStyle = { visibility: hidden ? 'hidden' : 'visible' };
var openClass = open ? 'open show' : '';
var dropdownClasses = (0, _classnames2.default)(openClass, sizePerPageDefaultClass, variation, className);
var id = tableId ? tableId + '-pageDropDown' : 'pageDropDown';
return _react2.default.createElement(
'span',
{
style: dropDownStyle,
className: dropdownClasses
},
_react2.default.createElement(
'button',
{
id: id,
type: 'button',
className: 'btn ' + btnContextual + ' dropdown-toggle',
'data-toggle': 'dropdown',
'aria-expanded': open,
onClick: onClick,
onBlur: onBlur
},
currSizePerPage,
' ',
bootstrap4 ? null : _react2.default.createElement(
'span',
null,
_react2.default.createElement('span', { className: 'caret' })
)
),
_react2.default.createElement(
'ul',
{
className: 'dropdown-menu ' + openClass,
role: 'menu',
'aria-labelledby': id
},
options.map(function (option) {
if (optionRenderer) {
return optionRenderer(_extends({}, option, {
onSizePerPageChange: onSizePerPageChange
}));
}
return _react2.default.createElement(_sizePerPageOption2.default, _extends({}, option, {
key: option.text,
bootstrap4: bootstrap4,
onSizePerPageChange: onSizePerPageChange
}));
})
)
);
};
SizePerPageDropDown.propTypes = {
currSizePerPage: _propTypes2.default.string.isRequired,
options: _propTypes2.default.array.isRequired,
onClick: _propTypes2.default.func.isRequired,
onBlur: _propTypes2.default.func.isRequired,
onSizePerPageChange: _propTypes2.default.func.isRequired,
bootstrap4: _propTypes2.default.bool,
tableId: _propTypes2.default.string,
open: _propTypes2.default.bool,
hidden: _propTypes2.default.bool,
btnContextual: _propTypes2.default.string,
variation: _propTypes2.default.oneOf(['dropdown', 'dropup']),
className: _propTypes2.default.string,
optionRenderer: _propTypes2.default.func
};
SizePerPageDropDown.defaultProps = {
open: false,
hidden: false,
btnContextual: 'btn-default btn-secondary',
variation: 'dropdown',
className: '',
optionRenderer: null,
bootstrap4: false,
tableId: null
};
exports.default = SizePerPageDropDown;
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PaginationListWithAdapter = undefined;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _pageResolver2 = __webpack_require__(3);
var _pageResolver3 = _interopRequireDefault(_pageResolver2);
var _paginationList = __webpack_require__(12);
var _paginationList2 = _interopRequireDefault(_paginationList);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/prop-types: 0 */
var paginationListAdapter = function paginationListAdapter(WrappedComponent) {
return function (_pageResolver) {
_inherits(PaginationListAdapter, _pageResolver);
function PaginationListAdapter() {
_classCallCheck(this, PaginationListAdapter);
return _possibleConstructorReturn(this, (PaginationListAdapter.__proto__ || Object.getPrototypeOf(PaginationListAdapter)).apply(this, arguments));
}
_createClass(PaginationListAdapter, [{
key: 'render',
value: function render() {
var _props = this.props,
lastPage = _props.lastPage,
totalPages = _props.totalPages,
pageButtonRenderer = _props.pageButtonRenderer,
onPageChange = _props.onPageChange,
disablePageTitle = _props.disablePageTitle,
hidePageListOnlyOnePage = _props.hidePageListOnlyOnePage;
var pages = this.calculatePageStatus(this.calculatePages(totalPages, lastPage), lastPage, disablePageTitle);
if (totalPages === 1 && hidePageListOnlyOnePage) {
return null;
}
return _react2.default.createElement(WrappedComponent, {
pageButtonRenderer: pageButtonRenderer,
onPageChange: onPageChange,
pages: pages
});
}
}]);
return PaginationListAdapter;
}((0, _pageResolver3.default)(_react.Component));
};
var PaginationListWithAdapter = exports.PaginationListWithAdapter = paginationListAdapter(_paginationList2.default);
exports.default = paginationListAdapter;
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _pageButton = __webpack_require__(24);
var _pageButton2 = _interopRequireDefault(_pageButton);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PaginatonList = function PaginatonList(props) {
return _react2.default.createElement(
'ul',
{ className: 'pagination react-bootstrap-table-page-btns-ul' },
props.pages.map(function (pageProps) {
if (props.pageButtonRenderer) {
return props.pageButtonRenderer(_extends({}, pageProps, {
onPageChange: props.onPageChange
}));
}
return _react2.default.createElement(_pageButton2.default, _extends({
key: pageProps.page
}, pageProps, {
onPageChange: props.onPageChange
}));
})
);
};
PaginatonList.propTypes = {
pages: _propTypes2.default.arrayOf(_propTypes2.default.shape({
page: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.number, _propTypes2.default.string]),
active: _propTypes2.default.bool,
disable: _propTypes2.default.bool,
title: _propTypes2.default.string
})).isRequired,
onPageChange: _propTypes2.default.func.isRequired,
pageButtonRenderer: _propTypes2.default.func
};
PaginatonList.defaultProps = {
pageButtonRenderer: null
};
exports.default = PaginatonList;
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PaginationTotalWithAdapter = undefined;
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("In