test-lib-audits
Version:
React library for audits
212 lines (177 loc) • 7.59 kB
JavaScript
;
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 _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(function () {
var enterModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).enterModule;
enterModule && enterModule(module);
})();
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; }
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
return a;
};
var defaultButton = function defaultButton(props) {
return _react2.default.createElement(
"button",
props,
props.children
);
};
var Pagination = function (_React$Component) {
_inherits(Pagination, _React$Component);
function Pagination(props) {
_classCallCheck(this, Pagination);
var _this = _possibleConstructorReturn(this, (Pagination.__proto__ || Object.getPrototypeOf(Pagination)).call(this));
_this.filterPages = function (visiblePages, totalPages) {
return visiblePages.filter(function (page) {
return page <= totalPages;
});
};
_this.getVisiblePages = function (page, total) {
if (total < 7) {
return _this.filterPages([1, 2, 3, 4, 5, 6], total);
} else {
if (page % 5 >= 0 && page > 4 && page + 2 < total) {
return [1, page - 1, page, page + 1, total];
} else if (page % 5 >= 0 && page > 4 && page + 2 >= total) {
return [1, total - 3, total - 2, total - 1, total];
} else {
return [1, 2, 3, 4, 5, total];
}
}
};
_this.changePage = _this.changePage.bind(_this);
_this.goto = _this.goto.bind(_this);
_this.state = {
visiblePages: _this.getVisiblePages(null, props.pages)
};
return _this;
}
_createClass(Pagination, [{
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
if (this.props.pages !== nextProps.pages) {
this.setState({
visiblePages: this.getVisiblePages(null, nextProps.pages)
});
}
this.changePage(nextProps.page + 1);
}
}, {
key: "changePage",
value: function changePage(page) {
var activePage = this.props.page + 1;
if (page === activePage) {
return;
}
var visiblePages = this.getVisiblePages(page, this.props.pages);
this.setState({
visiblePages: this.filterPages(visiblePages, this.props.pages)
});
this.props.onPageChange(page - 1);
}
}, {
key: "goto",
value: function goto(e) {
this.props.onPageChange(e.target.value - 1);
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var _props$PageButtonComp = this.props.PageButtonComponent,
PageButtonComponent = _props$PageButtonComp === undefined ? defaultButton : _props$PageButtonComp;
var visiblePages = this.state.visiblePages;
var activePage = this.props.page + 1;
return _react2.default.createElement(
"div",
{ className: "Table__pagination" },
_react2.default.createElement(
"div",
{ className: "Table__prevPageWrapper" },
_react2.default.createElement(
PageButtonComponent,
{
className: "Table__pageButton",
onClick: function onClick() {
if (activePage === 1) return;
_this2.changePage(activePage - 1);
},
disabled: activePage === 1 },
"<"
)
),
_react2.default.createElement(
"div",
{ className: "Table__visiblePagesWrapper" },
visiblePages.map(function (page, index, array) {
return _react2.default.createElement(
PageButtonComponent,
{
key: page,
className: activePage === page ? "Table__pageButton Table__pageButton--active" : "Table__pageButton",
onClick: _this2.changePage.bind(null, page) },
array[index - 1] + 2 < page ? "..." + page : page
);
})
),
_react2.default.createElement(
"div",
{ className: "Table__nextPageWrapper" },
_react2.default.createElement(
PageButtonComponent,
{
className: "Table__pageButton",
onClick: function onClick() {
if (activePage === _this2.props.pages) return;
_this2.changePage(activePage + 1);
},
disabled: activePage === this.props.pages },
">"
)
)
);
}
}, {
key: "__reactstandin__regenerateByEval",
// @ts-ignore
value: function __reactstandin__regenerateByEval(key, code) {
// @ts-ignore
this[key] = eval(code);
}
}]);
return Pagination;
}(_react2.default.Component);
Pagination.propTypes = {
pages: _propTypes2.default.number,
page: _propTypes2.default.number,
PageButtonComponent: _propTypes2.default.any,
onPageChange: _propTypes2.default.func,
previousText: _propTypes2.default.string,
nextText: _propTypes2.default.string
};
var _default = Pagination;
exports.default = _default;
;
(function () {
var reactHotLoader = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).default;
if (!reactHotLoader) {
return;
}
reactHotLoader.register(defaultButton, "defaultButton", "src/components/TableContent/Pagination.js");
reactHotLoader.register(Pagination, "Pagination", "src/components/TableContent/Pagination.js");
reactHotLoader.register(_default, "default", "src/components/TableContent/Pagination.js");
})();
;
(function () {
var leaveModule = (typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal : require('react-hot-loader')).leaveModule;
leaveModule && leaveModule(module);
})();