This commit is contained in:
2026-05-25 17:08:18 +08:00
parent df501f6151
commit f1259b71b5
9178 changed files with 1626125 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
The MIT License (MIT)
Copyright (c) 2014-present yiminghe
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+84
View File
@@ -0,0 +1,84 @@
# @rc-component/pagination
React Pagination Component.
[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![build status][github-actions-image]][github-actions-url]
[![Codecov][codecov-image]][codecov-url]
[![bundle size][bundlephobia-image]][bundlephobia-url]
[![dumi][dumi-image]][dumi-url]
[npm-image]: http://img.shields.io/npm/v/@rc-component/pagination.svg?style=flat-square
[npm-url]: http://npmjs.org/package/@rc-component/pagination
[github-actions-image]: https://github.com/react-component/pagination/actions/workflows/main.yml/badge.svg
[github-actions-url]: https://github.com/react-component/pagination/actions/workflows/main.yml
[codecov-image]: https://img.shields.io/codecov/c/github/react-component/pagination/master.svg?style=flat-square
[codecov-url]: https://codecov.io/gh/react-component/pagination/branch/master
[download-image]: https://img.shields.io/npm/dm/@rc-component/pagination.svg?style=flat-square
[download-url]: https://npmjs.org/package/@rc-component/pagination
[bundlephobia-url]: https://bundlephobia.com/result?p=@rc-component/pagination
[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/@rc-component/pagination
[dumi-url]: https://github.com/umijs/dumi
[dumi-image]: https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square
## Development
```
npm install
npm start
```
## Examples
Online example: `https://pagination-react-component.vercel.app`
Local example: `npm run start` then `http://localhost:9001`
## Install
[![@rc-component/pagination](https://nodei.co/npm/@rc-component/pagination.png)](https://npmjs.org/package/@rc-component/pagination)
## Usage
```js
import Pagination from '@rc-component/pagination';
ReactDOM.render(<Pagination />, container);
```
## API
// prettier-ignore
| Parameter | Description | Type | Default |
| --- | --- | --- | --- |
| disabled | disable pagination | Bool | - |
| align | align of pagination | start \| center \| end | undefined |
| defaultCurrent | uncontrolled current page | Number | 1 |
| current | current page | Number | undefined |
| total | items total count | Number | 0 |
| defaultPageSize | default items per page | Number | 10 |
| pageSize | items per page | Number | 10 |
| onChange | page change callback | Function(current, pageSize) | - |
| showSizeChanger | show pageSize changer | boolean \| [SelectProps](https://github.com/react-component/select/blob/561f8b7d69fd5dd2cd7d917c88976cca4e539a9d/src/Select.tsx#L112) | `false` when total less than `totalBoundaryShowSizeChanger`, `true` when otherwise |
| totalBoundaryShowSizeChanger | when total larger than it, `showSizeChanger` will be true | number | 50 |
| pageSizeOptions | specify the sizeChanger selections | Array<String> | ['10', '20', '50', '100'] |
| onShowSizeChange | pageSize change callback | Function(current, size) | - |
| hideOnSinglePage | hide on single page | Bool | false |
| showPrevNextJumpers | show jump-prev, jump-next | Bool | true |
| showQuickJumper | show quick goto jumper | Bool / Object | false / {goButton: true} |
| showTotal | show total records and range | Function(total, [from, to]) | - |
| className | className of pagination | String | - |
| simple | when set, show simple pager | Bool / { readOnly?: boolean; } | - |
| locale | to set l10n config | Object | [zh_CN](https://github.com/react-component/pagination/blob/master/src/locale/zh_CN.js) |
| style | the style of pagination | Object | {} |
| showLessItems | show less page items | Bool | false |
| showTitle | show page items title | Bool | true |
| itemRender | custom page item renderer | Function(current, type: 'page' \| 'prev' \| 'next' \| 'jump-prev' \| 'jump-next', element): React.ReactNode \| `(current, type, element) => element` | |
| prevIcon | specify the default previous icon | ReactNode \| (props: PaginationProps) => ReactNode | |
| nextIcon | specify the default next icon | ReactNode \| (props: PaginationProps) => ReactNode | |
| jumpPrevIcon | specify the default previous icon | ReactNode \| (props: PaginationProps) => ReactNode | |
| jumpNextIcon | specify the default next icon | ReactNode \| (props: PaginationProps) => ReactNode | |
## License
@rc-component/pagination is released under the MIT license.
+289
View File
@@ -0,0 +1,289 @@
.rc-pagination {
display: flex;
margin: 0;
padding: 0;
font-size: 14px;
}
.rc-pagination ul,
.rc-pagination ol {
margin: 0;
padding: 0;
list-style: none;
}
.rc-pagination-start {
justify-content: start;
}
.rc-pagination-center {
justify-content: center;
}
.rc-pagination-end {
justify-content: end;
}
.rc-pagination::after {
display: block;
clear: both;
height: 0;
overflow: hidden;
visibility: hidden;
content: ' ';
}
.rc-pagination-total-text {
display: inline-block;
height: 28px;
margin-right: 8px;
line-height: 26px;
vertical-align: middle;
}
.rc-pagination-item {
display: inline-block;
min-width: 28px;
height: 28px;
margin-right: 8px;
font-family: Arial;
line-height: 26px;
text-align: center;
vertical-align: middle;
list-style: none;
background-color: #fff;
border: 1px solid #d9d9d9;
border-radius: 2px;
outline: 0;
cursor: pointer;
user-select: none;
}
.rc-pagination-item a {
display: block;
padding: 0 6px;
color: rgba(0, 0, 0, 0.85);
transition: none;
}
.rc-pagination-item a:hover {
text-decoration: none;
}
.rc-pagination-item:focus,
.rc-pagination-item:hover {
border-color: #1890ff;
transition: all 0.3s;
}
.rc-pagination-item:focus a,
.rc-pagination-item:hover a {
color: #1890ff;
}
.rc-pagination-item-active {
font-weight: 500;
background: #fff;
border-color: #1890ff;
}
.rc-pagination-item-active a {
color: #1890ff;
}
.rc-pagination-item-active:focus,
.rc-pagination-item-active:hover {
border-color: #40a9ff;
}
.rc-pagination-item-active:focus a,
.rc-pagination-item-active:hover a {
color: #40a9ff;
}
.rc-pagination-jump-prev,
.rc-pagination-jump-next {
outline: 0;
}
.rc-pagination-jump-prev button,
.rc-pagination-jump-next button {
background: transparent;
border: none;
cursor: pointer;
color: #666;
}
.rc-pagination-jump-prev button:after,
.rc-pagination-jump-next button:after {
display: block;
content: '•••';
}
.rc-pagination-prev,
.rc-pagination-jump-prev,
.rc-pagination-jump-next {
margin-right: 8px;
}
.rc-pagination-prev,
.rc-pagination-next,
.rc-pagination-jump-prev,
.rc-pagination-jump-next {
display: inline-block;
min-width: 28px;
height: 28px;
color: rgba(0, 0, 0, 0.85);
font-family: Arial;
line-height: 28px;
text-align: center;
vertical-align: middle;
list-style: none;
border-radius: 2px;
cursor: pointer;
transition: all 0.3s;
}
.rc-pagination-prev,
.rc-pagination-next {
outline: 0;
}
.rc-pagination-prev button,
.rc-pagination-next button {
color: rgba(0, 0, 0, 0.85);
cursor: pointer;
user-select: none;
}
.rc-pagination-prev:hover button,
.rc-pagination-next:hover button {
border-color: #40a9ff;
}
.rc-pagination-prev .rc-pagination-item-link,
.rc-pagination-next .rc-pagination-item-link {
display: block;
width: 100%;
height: 100%;
font-size: 12px;
text-align: center;
background-color: #fff;
border: 1px solid #d9d9d9;
border-radius: 2px;
outline: none;
transition: all 0.3s;
}
.rc-pagination-prev:focus .rc-pagination-item-link,
.rc-pagination-next:focus .rc-pagination-item-link,
.rc-pagination-prev:hover .rc-pagination-item-link,
.rc-pagination-next:hover .rc-pagination-item-link {
color: #1890ff;
border-color: #1890ff;
}
.rc-pagination-prev button:after {
content: '';
display: block;
}
.rc-pagination-next button:after {
content: '';
display: block;
}
.rc-pagination-disabled,
.rc-pagination-disabled:hover,
.rc-pagination-disabled:focus {
cursor: not-allowed;
}
.rc-pagination-disabled .rc-pagination-item-link,
.rc-pagination-disabled:hover .rc-pagination-item-link,
.rc-pagination-disabled:focus .rc-pagination-item-link {
color: rgba(0, 0, 0, 0.25);
border-color: #d9d9d9;
cursor: not-allowed;
}
.rc-pagination-slash {
margin: 0 10px 0 12px;
}
.rc-pagination-options {
display: inline-block;
margin-left: 16px;
vertical-align: middle;
}
@media all and (-ms-high-contrast: none) {
.rc-pagination-options *::-ms-backdrop,
.rc-pagination-options {
vertical-align: top;
}
}
.rc-pagination-options-size-changer.rc-select {
display: inline-block;
width: auto;
margin-right: 8px;
}
.rc-pagination-options-quick-jumper {
display: inline-block;
height: 28px;
line-height: 28px;
vertical-align: top;
}
.rc-pagination-options-quick-jumper input {
width: 50px;
margin: 0 8px;
}
.rc-pagination-simple .rc-pagination-prev,
.rc-pagination-simple .rc-pagination-next {
height: 24px;
line-height: 24px;
vertical-align: top;
}
.rc-pagination-simple .rc-pagination-prev .rc-pagination-item-link,
.rc-pagination-simple .rc-pagination-next .rc-pagination-item-link {
height: 24px;
background-color: transparent;
border: 0;
}
.rc-pagination-simple .rc-pagination-prev .rc-pagination-item-link::after,
.rc-pagination-simple .rc-pagination-next .rc-pagination-item-link::after {
height: 24px;
line-height: 24px;
}
.rc-pagination-simple .rc-pagination-simple-pager {
display: flex;
align-items: center;
height: 24px;
margin-right: 8px;
}
.rc-pagination-simple .rc-pagination-simple-pager input {
box-sizing: border-box;
height: 100%;
padding: 0 6px;
text-align: center;
background-color: #fff;
border: 1px solid #d9d9d9;
border-radius: 2px;
outline: none;
transition: border-color 0.3s;
}
.rc-pagination-simple .rc-pagination-simple-pager input:hover {
border-color: #1890ff;
}
.rc-pagination.rc-pagination-disabled {
cursor: not-allowed;
}
.rc-pagination.rc-pagination-disabled .rc-pagination-item {
background: #f5f5f5;
border-color: #d9d9d9;
cursor: not-allowed;
}
.rc-pagination.rc-pagination-disabled .rc-pagination-item a {
color: rgba(0, 0, 0, 0.25);
background: transparent;
border: none;
cursor: not-allowed;
}
.rc-pagination.rc-pagination-disabled .rc-pagination-item-active {
background: #dbdbdb;
border-color: transparent;
}
.rc-pagination.rc-pagination-disabled .rc-pagination-item-active a {
color: #fff;
}
.rc-pagination.rc-pagination-disabled .rc-pagination-item-link {
color: rgba(0, 0, 0, 0.25);
background: #f5f5f5;
border-color: #d9d9d9;
cursor: not-allowed;
}
.rc-pagination.rc-pagination-disabled .rc-pagination-item-link-icon {
opacity: 0;
}
.rc-pagination.rc-pagination-disabled .rc-pagination-item-ellipsis {
opacity: 1;
}
@media only screen and (max-width: 992px) {
.rc-pagination-item-after-jump-prev,
.rc-pagination-item-before-jump-next {
display: none;
}
}
@media only screen and (max-width: 576px) {
.rc-pagination-options {
display: none;
}
}
+342
View File
@@ -0,0 +1,342 @@
@pagination-prefix-cls: rc-pagination;
@primary-color: #1890ff;
@pagination-item-bg: #fff;
@pagination-item-size: 28px;
@pagination-item-size-sm: 24px;
@pagination-font-family: Arial;
@pagination-font-weight-active: 500;
@pagination-item-bg-active: #fff;
@pagination-item-link-bg: #fff;
@pagination-item-disabled-color-active: #fff;
@pagination-item-disabled-bg-active: darken(hsv(0, 0, 96%), 10%);
@pagination-item-input-bg: #fff;
.@{pagination-prefix-cls} {
display: flex;
margin: 0;
padding: 0;
font-size: 14px;
ul,
ol {
margin: 0;
padding: 0;
list-style: none;
}
&-start {
justify-content: start;
}
&-center {
justify-content: center;
}
&-end {
justify-content: end;
}
&::after {
display: block;
clear: both;
height: 0;
overflow: hidden;
visibility: hidden;
content: ' ';
}
&-total-text {
display: inline-block;
height: @pagination-item-size;
margin-right: 8px;
line-height: @pagination-item-size - 2px;
vertical-align: middle;
}
&-item {
display: inline-block;
min-width: @pagination-item-size;
height: @pagination-item-size;
margin-right: 8px;
font-family: @pagination-font-family;
line-height: @pagination-item-size - 2px;
text-align: center;
vertical-align: middle;
list-style: none;
background-color: @pagination-item-bg;
border: 1px solid #d9d9d9;
border-radius: 2px;
outline: 0;
cursor: pointer;
user-select: none;
a {
display: block;
padding: 0 6px;
color: rgba(0, 0, 0, 0.85);
transition: none;
&:hover {
text-decoration: none;
}
}
&:focus,
&:hover {
border-color: @primary-color;
transition: all 0.3s;
a {
color: @primary-color;
}
}
&-active {
font-weight: @pagination-font-weight-active;
background: @pagination-item-bg-active;
border-color: @primary-color;
a {
color: @primary-color;
}
&:focus,
&:hover {
border-color: #40a9ff;
}
&:focus a,
&:hover a {
color: #40a9ff;
}
}
}
&-jump-prev,
&-jump-next {
outline: 0;
button {
background: transparent;
border: none;
cursor: pointer;
color: #666;
}
button:after {
display: block;
content: '•••';
}
}
&-prev,
&-jump-prev,
&-jump-next {
margin-right: 8px;
}
&-prev,
&-next,
&-jump-prev,
&-jump-next {
display: inline-block;
min-width: @pagination-item-size;
height: @pagination-item-size;
color: rgba(0, 0, 0, 0.85);
font-family: @pagination-font-family;
line-height: @pagination-item-size;
text-align: center;
vertical-align: middle;
list-style: none;
border-radius: 2px;
cursor: pointer;
transition: all 0.3s;
}
&-prev,
&-next {
outline: 0;
button {
color: rgba(0, 0, 0, 0.85);
cursor: pointer;
user-select: none;
}
&:hover button {
border-color: #40a9ff;
}
.@{pagination-prefix-cls}-item-link {
display: block;
width: 100%;
height: 100%;
font-size: 12px;
text-align: center;
background-color: @pagination-item-link-bg;
border: 1px solid #d9d9d9;
border-radius: 2px;
outline: none;
transition: all 0.3s;
}
&:focus .@{pagination-prefix-cls}-item-link,
&:hover .@{pagination-prefix-cls}-item-link {
color: @primary-color;
border-color: @primary-color;
}
}
&-prev button:after {
content: '';
display: block;
}
&-next button:after {
content: '';
display: block;
}
&-disabled {
&,
&:hover,
&:focus {
cursor: not-allowed;
.@{pagination-prefix-cls}-item-link {
color: fade(#000, 25%);
border-color: #d9d9d9;
cursor: not-allowed;
}
}
}
&-slash {
margin: 0 10px 0 12px;
}
&-options {
display: inline-block;
margin-left: 16px;
vertical-align: middle;
// IE11 css hack. `*::-ms-backdrop,` is a must have
@media all and (-ms-high-contrast: none) {
*::-ms-backdrop,
& {
vertical-align: top;
}
}
&-size-changer.rc-select {
display: inline-block;
width: auto;
margin-right: 8px;
}
&-quick-jumper {
display: inline-block;
height: 28px;
line-height: 28px;
vertical-align: top;
input {
width: 50px;
margin: 0 8px;
}
}
}
&-simple &-prev,
&-simple &-next {
height: @pagination-item-size-sm;
line-height: @pagination-item-size-sm;
vertical-align: top;
.@{pagination-prefix-cls}-item-link {
height: @pagination-item-size-sm;
background-color: transparent;
border: 0;
&::after {
height: @pagination-item-size-sm;
line-height: @pagination-item-size-sm;
}
}
}
&-simple &-simple-pager {
display: flex;
align-items: center;
height: @pagination-item-size-sm;
margin-right: 8px;
input {
box-sizing: border-box;
height: 100%;
padding: 0 6px;
text-align: center;
background-color: @pagination-item-input-bg;
border: 1px solid #d9d9d9;
border-radius: 2px;
outline: none;
transition: border-color 0.3s;
&:hover {
border-color: @primary-color;
}
}
}
// ============================ Disabled ============================
&&-disabled {
cursor: not-allowed;
.@{pagination-prefix-cls}-item {
background: hsv(0, 0, 96%);
border-color: #d9d9d9;
cursor: not-allowed;
a {
color: fade(#000, 25%);
background: transparent;
border: none;
cursor: not-allowed;
}
&-active {
background: @pagination-item-disabled-bg-active;
border-color: transparent;
a {
color: @pagination-item-disabled-color-active;
}
}
}
.@{pagination-prefix-cls}-item-link {
color: fade(#000, 25%);
background: hsv(0, 0, 96%);
border-color: #d9d9d9;
cursor: not-allowed;
}
.@{pagination-prefix-cls}-item-link-icon {
opacity: 0;
}
.@{pagination-prefix-cls}-item-ellipsis {
opacity: 1;
}
}
}
@media only screen and (max-width: 992px) {
.@{pagination-prefix-cls}-item {
&-after-jump-prev,
&-before-jump-next {
display: none;
}
}
}
@media only screen and (max-width: 576px) {
.@{pagination-prefix-cls}-options {
display: none;
}
}
+29
View File
@@ -0,0 +1,29 @@
import React from 'react';
import type { PaginationLocale } from './interface';
export type SizeChangerRender = (info: {
disabled: boolean;
size: number;
onSizeChange: (value: string | number) => void;
'aria-label': string;
className: string;
options: {
label: string;
value: string | number;
}[];
}) => React.ReactNode;
interface OptionsProps {
disabled?: boolean;
locale: PaginationLocale;
rootPrefixCls: string;
selectPrefixCls?: string;
pageSize: number;
pageSizeOptions?: number[];
goButton?: boolean | string;
changeSize?: (size: number) => void;
quickGo?: (value: number) => void;
buildOptionText?: (value: number | string) => string;
showSizeChanger: boolean;
sizeChangerRender?: SizeChangerRender;
}
declare const Options: React.FC<OptionsProps>;
export default Options;
+120
View File
@@ -0,0 +1,120 @@
import KEYCODE from "@rc-component/util/es/KeyCode";
import React from 'react';
const defaultPageSizeOptions = [10, 20, 50, 100];
const Options = props => {
const {
pageSizeOptions = defaultPageSizeOptions,
locale,
changeSize,
pageSize,
goButton,
quickGo,
rootPrefixCls,
disabled,
buildOptionText,
showSizeChanger,
sizeChangerRender
} = props;
const [goInputText, setGoInputText] = React.useState('');
const getValidValue = React.useMemo(() => {
return !goInputText || Number.isNaN(goInputText) ? undefined : Number(goInputText);
}, [goInputText]);
const mergeBuildOptionText = typeof buildOptionText === 'function' ? buildOptionText : value => `${value} ${locale.items_per_page}`;
const handleChange = e => {
const value = e.target.value;
if (/^\d*$/.test(value)) {
setGoInputText(value);
}
};
const handleBlur = e => {
if (goButton || goInputText === '') {
return;
}
setGoInputText('');
if (e.relatedTarget && (e.relatedTarget.className.includes(`${rootPrefixCls}-item-link`) || e.relatedTarget.className.includes(`${rootPrefixCls}-item`))) {
return;
}
quickGo?.(getValidValue);
};
const go = e => {
if (goInputText === '') {
return;
}
if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {
setGoInputText('');
quickGo?.(getValidValue);
}
};
const getPageSizeOptions = () => {
if (pageSizeOptions.some(option => option.toString() === pageSize.toString())) {
return pageSizeOptions;
}
return pageSizeOptions.concat([pageSize]).sort((a, b) => {
const numberA = Number.isNaN(Number(a)) ? 0 : Number(a);
const numberB = Number.isNaN(Number(b)) ? 0 : Number(b);
return numberA - numberB;
});
};
// ============== cls ==============
const prefixCls = `${rootPrefixCls}-options`;
// ============== render ==============
if (!showSizeChanger && !quickGo) {
return null;
}
let changeSelect = null;
let goInput = null;
let gotoButton = null;
// >>>>> Size Changer
if (showSizeChanger && sizeChangerRender) {
changeSelect = sizeChangerRender({
disabled,
size: pageSize,
onSizeChange: nextValue => {
changeSize?.(Number(nextValue));
},
'aria-label': locale.page_size,
className: `${prefixCls}-size-changer`,
options: getPageSizeOptions().map(opt => ({
label: mergeBuildOptionText(opt),
value: opt
}))
});
}
// >>>>> Quick Go
if (quickGo) {
if (goButton) {
gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement("button", {
type: "button",
onClick: go,
onKeyUp: go,
disabled: disabled,
className: `${prefixCls}-quick-jumper-button`
}, locale.jump_to_confirm) : /*#__PURE__*/React.createElement("span", {
onClick: go,
onKeyUp: go
}, goButton);
}
goInput = /*#__PURE__*/React.createElement("div", {
className: `${prefixCls}-quick-jumper`
}, locale.jump_to, /*#__PURE__*/React.createElement("input", {
disabled: disabled,
type: "text",
value: goInputText,
onChange: handleChange,
onKeyUp: go,
onBlur: handleBlur,
"aria-label": locale.page
}), locale.page, gotoButton);
}
return /*#__PURE__*/React.createElement("li", {
className: prefixCls
}, changeSelect, goInput);
};
if (process.env.NODE_ENV !== 'production') {
Options.displayName = 'Options';
}
export default Options;
+14
View File
@@ -0,0 +1,14 @@
import React from 'react';
import type { PaginationProps } from './interface';
export interface PagerProps extends Pick<PaginationProps, 'itemRender'> {
rootPrefixCls: string;
page: number;
active?: boolean;
className?: string;
style?: React.CSSProperties;
showTitle: boolean;
onClick?: (page: number) => void;
onKeyPress?: (e: React.KeyboardEvent<HTMLLIElement>, onClick: PagerProps['onClick'], page: PagerProps['page']) => void;
}
declare const Pager: React.FC<PagerProps>;
export default Pager;
+42
View File
@@ -0,0 +1,42 @@
/* eslint react/prop-types: 0 */
import { clsx } from 'clsx';
import React from 'react';
const Pager = props => {
const {
rootPrefixCls,
page,
active,
className,
style,
showTitle,
onClick,
onKeyPress,
itemRender
} = props;
const prefixCls = `${rootPrefixCls}-item`;
const cls = clsx(prefixCls, `${prefixCls}-${page}`, {
[`${prefixCls}-active`]: active,
[`${prefixCls}-disabled`]: !page
}, className);
const handleClick = () => {
onClick(page);
};
const handleKeyPress = e => {
onKeyPress(e, onClick, page);
};
const pager = itemRender(page, 'page', /*#__PURE__*/React.createElement("a", {
rel: "nofollow"
}, page));
return pager ? /*#__PURE__*/React.createElement("li", {
title: showTitle ? String(page) : null,
className: cls,
style: style,
onClick: handleClick,
onKeyDown: handleKeyPress,
tabIndex: 0
}, pager) : null;
};
if (process.env.NODE_ENV !== 'production') {
Pager.displayName = 'Pager';
}
export default Pager;
@@ -0,0 +1,4 @@
import React from 'react';
import type { PaginationProps } from './interface';
declare const Pagination: React.FC<PaginationProps>;
export default Pagination;
+437
View File
@@ -0,0 +1,437 @@
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }
import { clsx } from 'clsx';
import useControlledState from "@rc-component/util/es/hooks/useControlledState";
import KeyCode from "@rc-component/util/es/KeyCode";
import pickAttrs from "@rc-component/util/es/pickAttrs";
import warning from "@rc-component/util/es/warning";
import React, { useEffect } from 'react';
import zhCN from "./locale/zh_CN";
import Options from "./Options";
import Pager from "./Pager";
const defaultItemRender = (_, __, element) => element;
function noop() {}
function isInteger(v) {
const value = Number(v);
return typeof value === 'number' && !Number.isNaN(value) && isFinite(value) && Math.floor(value) === value;
}
function calculatePage(p, pageSize, total) {
const _pageSize = typeof p === 'undefined' ? pageSize : p;
return Math.floor((total - 1) / _pageSize) + 1;
}
const Pagination = props => {
const {
// cls
prefixCls = 'rc-pagination',
selectPrefixCls = 'rc-select',
className,
classNames: paginationClassNames,
styles,
// control
current: currentProp,
defaultCurrent = 1,
total = 0,
pageSize: pageSizeProp,
defaultPageSize = 10,
onChange = noop,
// config
hideOnSinglePage,
align,
showPrevNextJumpers = true,
showQuickJumper,
showLessItems,
showTitle = true,
onShowSizeChange = noop,
locale = zhCN,
style,
totalBoundaryShowSizeChanger = 50,
disabled,
simple,
showTotal,
showSizeChanger = total > totalBoundaryShowSizeChanger,
sizeChangerRender,
pageSizeOptions,
// render
itemRender = defaultItemRender,
jumpPrevIcon,
jumpNextIcon,
prevIcon,
nextIcon
} = props;
const paginationRef = React.useRef(null);
const [pageSize, setPageSize] = useControlledState(defaultPageSize, pageSizeProp);
const [internalCurrent, setCurrent] = useControlledState(defaultCurrent, currentProp);
const current = Math.max(1, Math.min(internalCurrent, calculatePage(undefined, pageSize, total)));
const [internalInputVal, setInternalInputVal] = React.useState(current);
useEffect(() => {
setInternalInputVal(current);
}, [current]);
const hasOnChange = onChange !== noop;
const hasCurrent = ('current' in props);
if (process.env.NODE_ENV !== 'production') {
warning(hasCurrent ? hasOnChange : true, 'You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');
}
const jumpPrevPage = Math.max(1, current - (showLessItems ? 3 : 5));
const jumpNextPage = Math.min(calculatePage(undefined, pageSize, total), current + (showLessItems ? 3 : 5));
function getItemIcon(icon, label) {
let iconNode = icon || /*#__PURE__*/React.createElement("button", {
type: "button",
"aria-label": label,
className: `${prefixCls}-item-link`
});
if (typeof icon === 'function') {
iconNode = /*#__PURE__*/React.createElement(icon, props);
}
return iconNode;
}
function getValidValue(e) {
const inputValue = e.target.value;
const allPages = calculatePage(undefined, pageSize, total);
let value;
if (inputValue === '') {
value = inputValue;
} else if (Number.isNaN(Number(inputValue))) {
value = internalInputVal;
} else if (inputValue >= allPages) {
value = allPages;
} else {
value = Number(inputValue);
}
return value;
}
function isValid(page) {
return isInteger(page) && page !== current && isInteger(total) && total > 0;
}
const shouldDisplayQuickJumper = total > pageSize ? showQuickJumper : false;
/**
* prevent "up arrow" key reseting cursor position within textbox
* @see https://stackoverflow.com/a/1081114
*/
function handleKeyDown(event) {
if (event.keyCode === KeyCode.UP || event.keyCode === KeyCode.DOWN) {
event.preventDefault();
}
}
function handleKeyUp(event) {
const value = getValidValue(event);
if (value !== internalInputVal) {
setInternalInputVal(value);
}
switch (event.keyCode) {
case KeyCode.ENTER:
handleChange(value);
break;
case KeyCode.UP:
handleChange(value - 1);
break;
case KeyCode.DOWN:
handleChange(value + 1);
break;
default:
break;
}
}
function handleBlur(event) {
handleChange(getValidValue(event));
}
function changePageSize(size) {
const newCurrent = calculatePage(size, pageSize, total);
const nextCurrent = current > newCurrent && newCurrent !== 0 ? newCurrent : current;
setPageSize(size);
setInternalInputVal(nextCurrent);
onShowSizeChange?.(current, size);
setCurrent(nextCurrent);
onChange?.(nextCurrent, size);
}
function handleChange(page) {
if (isValid(page) && !disabled) {
const currentPage = calculatePage(undefined, pageSize, total);
let newPage = page;
if (page > currentPage) {
newPage = currentPage;
} else if (page < 1) {
newPage = 1;
}
if (newPage !== internalInputVal) {
setInternalInputVal(newPage);
}
setCurrent(newPage);
onChange?.(newPage, pageSize);
return newPage;
}
return current;
}
const hasPrev = current > 1;
const hasNext = current < calculatePage(undefined, pageSize, total);
function prevHandle() {
if (hasPrev) handleChange(current - 1);
}
function nextHandle() {
if (hasNext) handleChange(current + 1);
}
function jumpPrevHandle() {
handleChange(jumpPrevPage);
}
function jumpNextHandle() {
handleChange(jumpNextPage);
}
function runIfEnter(event, callback, ...restParams) {
if (event.key === 'Enter' || event.charCode === KeyCode.ENTER || event.keyCode === KeyCode.ENTER) {
callback(...restParams);
}
}
function runIfEnterPrev(event) {
runIfEnter(event, prevHandle);
}
function runIfEnterNext(event) {
runIfEnter(event, nextHandle);
}
function runIfEnterJumpPrev(event) {
runIfEnter(event, jumpPrevHandle);
}
function runIfEnterJumpNext(event) {
runIfEnter(event, jumpNextHandle);
}
function renderPrev(prevPage) {
const prevButton = itemRender(prevPage, 'prev', getItemIcon(prevIcon, 'prev page'));
return /*#__PURE__*/React.isValidElement(prevButton) ? /*#__PURE__*/React.cloneElement(prevButton, {
disabled: !hasPrev
}) : prevButton;
}
function renderNext(nextPage) {
const nextButton = itemRender(nextPage, 'next', getItemIcon(nextIcon, 'next page'));
return /*#__PURE__*/React.isValidElement(nextButton) ? /*#__PURE__*/React.cloneElement(nextButton, {
disabled: !hasNext
}) : nextButton;
}
function handleGoTO(event) {
if (event.type === 'click' || event.keyCode === KeyCode.ENTER) {
handleChange(internalInputVal);
}
}
let jumpPrev = null;
const dataOrAriaAttributeProps = pickAttrs(props, {
aria: true,
data: true
});
const totalText = showTotal && /*#__PURE__*/React.createElement("li", {
className: `${prefixCls}-total-text`
}, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));
let jumpNext = null;
const allPages = calculatePage(undefined, pageSize, total);
// ================== Render ==================
// When hideOnSinglePage is true and there is only 1 page, hide the pager
if (hideOnSinglePage && total <= pageSize) {
return null;
}
const pagerList = [];
const pagerProps = {
rootPrefixCls: prefixCls,
onClick: handleChange,
onKeyPress: runIfEnter,
showTitle,
itemRender,
page: -1,
className: paginationClassNames?.item,
style: styles?.item
};
const prevPage = current - 1 > 0 ? current - 1 : 0;
const nextPage = current + 1 < allPages ? current + 1 : allPages;
const goButton = showQuickJumper && showQuickJumper.goButton;
// ================== Simple ==================
// FIXME: ts type
const isReadOnly = typeof simple === 'object' ? simple.readOnly : !simple;
let gotoButton = goButton;
let simplePager = null;
if (simple) {
// ====== Simple quick jump ======
if (goButton) {
if (typeof goButton === 'boolean') {
gotoButton = /*#__PURE__*/React.createElement("button", {
type: "button",
onClick: handleGoTO,
onKeyUp: handleGoTO
}, locale.jump_to_confirm);
} else {
gotoButton = /*#__PURE__*/React.createElement("span", {
onClick: handleGoTO,
onKeyUp: handleGoTO
}, goButton);
}
gotoButton = /*#__PURE__*/React.createElement("li", {
title: showTitle ? `${locale.jump_to}${current}/${allPages}` : null,
className: `${prefixCls}-simple-pager`
}, gotoButton);
}
simplePager = /*#__PURE__*/React.createElement("li", {
title: showTitle ? `${current}/${allPages}` : null,
className: clsx(`${prefixCls}-simple-pager`, paginationClassNames?.item),
style: styles?.item
}, isReadOnly ? internalInputVal : /*#__PURE__*/React.createElement("input", {
type: "text",
"aria-label": locale.jump_to,
value: internalInputVal,
disabled: disabled,
onKeyDown: handleKeyDown,
onKeyUp: handleKeyUp,
onChange: handleKeyUp,
onBlur: handleBlur,
size: 3
}), /*#__PURE__*/React.createElement("span", {
className: `${prefixCls}-slash`
}, "/"), allPages);
}
// ====================== Normal ======================
const pageBufferSize = showLessItems ? 1 : 2;
if (allPages <= 3 + pageBufferSize * 2) {
if (!allPages) {
pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {
key: "noPager",
page: 1,
className: `${prefixCls}-item-disabled`
})));
}
for (let i = 1; i <= allPages; i += 1) {
pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {
key: i,
page: i,
active: current === i
})));
}
} else {
const prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;
const nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;
const jumpPrevContent = itemRender(jumpPrevPage, 'jump-prev', getItemIcon(jumpPrevIcon, 'prev page'));
const jumpNextContent = itemRender(jumpNextPage, 'jump-next', getItemIcon(jumpNextIcon, 'next page'));
if (showPrevNextJumpers) {
jumpPrev = jumpPrevContent ? /*#__PURE__*/React.createElement("li", {
title: showTitle ? prevItemTitle : null,
key: "prev",
onClick: jumpPrevHandle,
tabIndex: 0,
onKeyDown: runIfEnterJumpPrev,
className: clsx(`${prefixCls}-jump-prev`, {
[`${prefixCls}-jump-prev-custom-icon`]: !!jumpPrevIcon
})
}, jumpPrevContent) : null;
jumpNext = jumpNextContent ? /*#__PURE__*/React.createElement("li", {
title: showTitle ? nextItemTitle : null,
key: "next",
onClick: jumpNextHandle,
tabIndex: 0,
onKeyDown: runIfEnterJumpNext,
className: clsx(`${prefixCls}-jump-next`, {
[`${prefixCls}-jump-next-custom-icon`]: !!jumpNextIcon
})
}, jumpNextContent) : null;
}
let left = Math.max(1, current - pageBufferSize);
let right = Math.min(current + pageBufferSize, allPages);
if (current - 1 <= pageBufferSize) {
right = 1 + pageBufferSize * 2;
}
if (allPages - current <= pageBufferSize) {
left = allPages - pageBufferSize * 2;
}
for (let i = left; i <= right; i += 1) {
pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {
key: i,
page: i,
active: current === i
})));
}
if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {
pagerList[0] = /*#__PURE__*/React.cloneElement(pagerList[0], {
className: clsx(`${prefixCls}-item-after-jump-prev`, pagerList[0].props.className)
});
pagerList.unshift(jumpPrev);
}
if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {
const lastOne = pagerList[pagerList.length - 1];
pagerList[pagerList.length - 1] = /*#__PURE__*/React.cloneElement(lastOne, {
className: clsx(`${prefixCls}-item-before-jump-next`, lastOne.props.className)
});
pagerList.push(jumpNext);
}
if (left !== 1) {
pagerList.unshift( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {
key: 1,
page: 1
})));
}
if (right !== allPages) {
pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {
key: allPages,
page: allPages
})));
}
}
let prev = renderPrev(prevPage);
if (prev) {
const prevDisabled = !hasPrev || !allPages;
prev = /*#__PURE__*/React.createElement("li", {
title: showTitle ? locale.prev_page : null,
onClick: prevHandle,
tabIndex: prevDisabled ? null : 0,
onKeyDown: runIfEnterPrev,
className: clsx(`${prefixCls}-prev`, paginationClassNames?.item, {
[`${prefixCls}-disabled`]: prevDisabled
}),
style: styles?.item,
"aria-disabled": prevDisabled
}, prev);
}
let next = renderNext(nextPage);
if (next) {
let nextDisabled, nextTabIndex;
if (simple) {
nextDisabled = !hasNext;
nextTabIndex = hasPrev ? 0 : null;
} else {
nextDisabled = !hasNext || !allPages;
nextTabIndex = nextDisabled ? null : 0;
}
next = /*#__PURE__*/React.createElement("li", {
title: showTitle ? locale.next_page : null,
onClick: nextHandle,
tabIndex: nextTabIndex,
onKeyDown: runIfEnterNext,
className: clsx(`${prefixCls}-next`, paginationClassNames?.item, {
[`${prefixCls}-disabled`]: nextDisabled
}),
style: styles?.item,
"aria-disabled": nextDisabled
}, next);
}
const cls = clsx(prefixCls, className, {
[`${prefixCls}-start`]: align === 'start',
[`${prefixCls}-center`]: align === 'center',
[`${prefixCls}-end`]: align === 'end',
[`${prefixCls}-simple`]: simple,
[`${prefixCls}-disabled`]: disabled
});
return /*#__PURE__*/React.createElement("ul", _extends({
className: cls,
style: style,
ref: paginationRef
}, dataOrAriaAttributeProps), totalText, prev, simple ? simplePager : pagerList, next, /*#__PURE__*/React.createElement(Options, {
locale: locale,
rootPrefixCls: prefixCls,
disabled: disabled,
selectPrefixCls: selectPrefixCls,
changeSize: changePageSize,
pageSize: pageSize,
pageSizeOptions: pageSizeOptions,
quickGo: shouldDisplayQuickJumper ? handleChange : null,
goButton: gotoButton,
showSizeChanger: showSizeChanger,
sizeChangerRender: sizeChangerRender
}));
};
if (process.env.NODE_ENV !== 'production') {
Pagination.displayName = 'Pagination';
}
export default Pagination;
+2
View File
@@ -0,0 +1,2 @@
export { default } from './Pagination';
export type { PaginationLocale, PaginationProps } from './interface';
+1
View File
@@ -0,0 +1 @@
export { default } from "./Pagination";
@@ -0,0 +1,61 @@
import type React from 'react';
import type { SizeChangerRender } from './Options';
export interface PaginationLocale {
items_per_page?: string;
jump_to?: string;
jump_to_confirm?: string;
page?: string;
prev_page?: string;
next_page?: string;
prev_5?: string;
next_5?: string;
prev_3?: string;
next_3?: string;
page_size?: string;
}
type SemanticName = 'item';
export interface PaginationData {
styles?: Partial<Record<SemanticName, React.CSSProperties>>;
classNames?: Partial<Record<SemanticName, string>>;
className: string;
selectPrefixCls: string;
prefixCls: string;
pageSizeOptions: number[];
current: number;
defaultCurrent: number;
total: number;
totalBoundaryShowSizeChanger?: number;
pageSize: number;
defaultPageSize: number;
hideOnSinglePage: boolean;
align: 'start' | 'center' | 'end';
showSizeChanger: boolean;
sizeChangerRender?: SizeChangerRender;
showLessItems: boolean;
showPrevNextJumpers: boolean;
showQuickJumper: boolean | object;
showTitle: boolean;
simple: boolean | {
readOnly?: boolean;
};
disabled: boolean;
locale: PaginationLocale;
style: React.CSSProperties;
prevIcon: React.ComponentType | React.ReactNode;
nextIcon: React.ComponentType | React.ReactNode;
jumpPrevIcon: React.ComponentType | React.ReactNode;
jumpNextIcon: React.ComponentType | React.ReactNode;
}
export interface PaginationProps extends Partial<PaginationData>, React.AriaAttributes {
onChange?: (page: number, pageSize: number) => void;
onShowSizeChange?: (current: number, size: number) => void;
itemRender?: (page: number, type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next', element: React.ReactNode) => React.ReactNode;
showTotal?: (total: number, range: [number, number]) => React.ReactNode;
role?: React.AriaRole | undefined;
}
export interface PaginationState {
current: number;
currentInputValue: number;
pageSize: number;
}
export {};
@@ -0,0 +1 @@
export {};
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
+16
View File
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ ግፅ',
jump_to: 'ሂድ ወደ',
jump_to_confirm: 'አረጋግጥ',
page: 'ገፅ',
// Pagination
prev_page: 'ያለፈው ገፅ',
next_page: 'ቀጣይ ገፅ',
prev_5: 'ያለፈው 5 ገፅ',
next_5: 'ቀጣይ 5 ገፅ',
prev_3: 'ያለፈው 3 ገፅ',
next_3: 'ቀጣይ 3 ገፅ',
page_size: 'የገፅ መጠን'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ الصفحة',
jump_to: 'الذهاب إلى',
jump_to_confirm: 'تأكيد',
page: 'الصفحة',
// Pagination
prev_page: 'الصفحة السابقة',
next_page: 'الصفحة التالية',
prev_5: 'خمس صفحات سابقة',
next_5: 'خمس صفحات تالية',
prev_3: 'ثلاث صفحات سابقة',
next_3: 'ثلاث صفحات تالية',
page_size: 'مقاس الصفحه'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ səhifə',
jump_to: 'Get',
jump_to_confirm: 'təsdiqlə',
page: '',
// Pagination
prev_page: 'Əvvəlki Səhifə',
next_page: 'Növbəti Səhifə',
prev_5: 'Əvvəlki 5 Səhifə',
next_5: 'Növbəti 5 Səhifə',
prev_3: 'Əvvəlki 3 Səhifə',
next_3: 'Növbəti 3 Səhifə',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ страница',
jump_to: 'Към',
jump_to_confirm: 'потвърждавам',
page: '',
// Pagination
prev_page: 'Предишна страница',
next_page: 'Следваща страница',
prev_5: 'Предишни 5 страници',
next_5: 'Следващи 5 страници',
prev_3: 'Предишни 3 страници',
next_3: 'Следващи 3 страници',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ পৃষ্ঠা',
jump_to: 'যাও',
jump_to_confirm: 'নিশ্চিত',
page: 'পৃষ্ঠা',
// Pagination
prev_page: 'আগের পৃষ্ঠা',
next_page: 'পরের পৃষ্ঠা',
prev_5: 'পূর্ববর্তী ৫ পৃষ্ঠা',
next_5: 'পরবর্তী ৫ পৃষ্ঠা',
prev_3: 'পূর্ববর্তী ৩ পৃষ্ঠা',
next_3: 'পরবর্তী ৩ পৃষ্ঠা',
page_size: 'পাতার আকার'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/старонка',
jump_to: 'Перайсці',
jump_to_confirm: 'Пацвердзіць',
page: '',
// Pagination
prev_page: 'Назад',
next_page: 'Наперад',
prev_5: 'Папярэднія 5',
next_5: 'Наступныя 5',
prev_3: 'Папярэднія 3',
next_3: 'Наступныя 3',
page_size: 'памер старонкі'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ pàgina',
jump_to: 'Anar a',
jump_to_confirm: 'Confirma',
page: '',
// Pagination
prev_page: 'Pàgina prèvia',
next_page: 'Pàgina següent',
prev_5: '5 pàgines prèvies',
next_5: '5 pàgines següents',
prev_3: '3 pàgines prèvies',
next_3: '3 pàgines següents',
page_size: 'mida de la pàgina'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ strana',
jump_to: 'Přejít',
jump_to_confirm: 'potvrdit',
page: '',
// Pagination
prev_page: 'Předchozí strana',
next_page: 'Následující strana',
prev_5: 'Předchozích 5 stran',
next_5: 'Následujících 5 stran',
prev_3: 'Předchozí 3 strany',
next_3: 'Následující 3 strany',
page_size: 'velikost stránky'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ side',
jump_to: 'Gå til',
jump_to_confirm: 'bekræft',
page: 'Side',
// Pagination
prev_page: 'Forrige Side',
next_page: 'Næste Side',
prev_5: 'Forrige 5 Sider',
next_5: 'Næste 5 Sider',
prev_3: 'Forrige 3 Sider',
next_3: 'Næste 3 Sider',
page_size: 'sidestørrelse'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ Seite',
jump_to: 'Gehe zu',
jump_to_confirm: 'bestätigen',
page: 'Seite',
// Pagination
prev_page: 'Vorherige Seite',
next_page: 'Nächste Seite',
prev_5: '5 Seiten zurück',
next_5: '5 Seiten vor',
prev_3: '3 Seiten zurück',
next_3: '3 Seiten vor',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ σελίδα',
jump_to: 'Μετάβαση',
jump_to_confirm: 'επιβεβαιώνω',
page: '',
// Pagination
prev_page: 'Προηγούμενη Σελίδα',
next_page: 'Επόμενη Σελίδα',
prev_5: 'Προηγούμενες 5 Σελίδες',
next_5: 'Επόμενες 5 σελίδες',
prev_3: 'Προηγούμενες 3 Σελίδες',
next_3: 'Επόμενες 3 Σελίδες',
page_size: 'Μέγεθος σελίδας'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ page',
jump_to: 'Go to',
jump_to_confirm: 'confirm',
page: 'Page',
// Pagination
prev_page: 'Previous Page',
next_page: 'Next Page',
prev_5: 'Previous 5 Pages',
next_5: 'Next 5 Pages',
prev_3: 'Previous 3 Pages',
next_3: 'Next 3 Pages',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ page',
jump_to: 'Go to',
jump_to_confirm: 'confirm',
page: 'Page',
// Pagination
prev_page: 'Previous Page',
next_page: 'Next Page',
prev_5: 'Previous 5 Pages',
next_5: 'Next 5 Pages',
prev_3: 'Previous 3 Pages',
next_3: 'Next 3 Pages',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ página',
jump_to: 'Ir a',
jump_to_confirm: 'confirmar',
page: 'Página',
// Pagination
prev_page: 'Página anterior',
next_page: 'Página siguiente',
prev_5: '5 páginas previas',
next_5: '5 páginas siguientes',
prev_3: '3 páginas previas',
next_3: '3 páginas siguientes',
page_size: 'tamaño de página'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ leheküljel',
jump_to: 'Hüppa',
jump_to_confirm: 'Kinnitage',
page: '',
// Pagination
prev_page: 'Eelmine leht',
next_page: 'Järgmine leht',
prev_5: 'Eelmised 5 lehekülge',
next_5: 'Järgmised 5 lehekülge',
prev_3: 'Eelmised 3 lehekülge',
next_3: 'Järgmised 3 lehekülge',
page_size: 'lehe suurus'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ orrialde',
jump_to: '-ra joan',
jump_to_confirm: 'baieztatu',
page: 'Orrialde',
// Pagination
prev_page: 'Aurreko orrialdea',
next_page: 'Hurrengo orrialdea',
prev_5: 'aurreko 5 orrialde',
next_5: 'hurrengo 5 orrialde',
prev_3: 'aurreko 3 orrialde',
next_3: 'hurrengo 3 orrialde',
page_size: 'orrien tamaina'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ صفحه',
jump_to: 'برو به',
jump_to_confirm: 'تایید',
page: '',
// Pagination
prev_page: 'صفحه قبلی',
next_page: 'صفحه بعدی',
prev_5: '۵ صفحه قبلی',
next_5: '۵ صفحه بعدی',
prev_3: '۳ صفحه قبلی',
next_3: '۳ صفحه بعدی',
page_size: 'اندازه صفحه'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ sivu',
jump_to: 'Mene',
jump_to_confirm: 'Potvrdite',
page: 'Sivu',
// Pagination
prev_page: 'Edellinen sivu',
next_page: 'Seuraava sivu',
prev_5: 'Edelliset 5 sivua',
next_5: 'Seuraavat 5 sivua',
prev_3: 'Edelliset 3 sivua',
next_3: 'Seuraavat 3 sivua',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ page',
jump_to: 'Aller à',
jump_to_confirm: 'confirmer',
page: '',
// Pagination
prev_page: 'Page précédente',
next_page: 'Page suivante',
prev_5: '5 Pages précédentes',
next_5: '5 Pages suivantes',
prev_3: '3 Pages précédentes',
next_3: '3 Pages suivantes',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ page',
jump_to: 'Aller à',
jump_to_confirm: 'confirmer',
page: 'Page',
// Pagination
prev_page: 'Page précédente',
next_page: 'Page suivante',
prev_5: '5 Pages précédentes',
next_5: '5 Pages suivantes',
prev_3: '3 Pages précédentes',
next_3: '3 Pages suivantes',
page_size: 'taille de la page'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ page',
jump_to: 'Aller à',
jump_to_confirm: 'confirmer',
page: 'Page',
// Pagination
prev_page: 'Page précédente',
next_page: 'Page suivante',
prev_5: '5 Pages précédentes',
next_5: '5 Pages suivantes',
prev_3: '3 Pages précédentes',
next_3: '3 Pages suivantes',
page_size: 'taille de la page'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ leathanach',
jump_to: 'Téigh',
jump_to_confirm: 'dheimhnigh',
page: '',
// Pagination
prev_page: 'Leathanach Roimhe Seo',
next_page: 'An chéad leathanach eile',
prev_5: '5 leathanach roimhe seo',
next_5: 'Ar Aghaidh 5 Leathanaigh',
prev_3: '3 leathanach roimhe seo',
next_3: 'Ar Aghaidh 3 Leathanaigh',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ páxina',
jump_to: 'Ir a',
jump_to_confirm: 'confirmar',
page: '',
// Pagination
prev_page: 'Páxina anterior',
next_page: 'Páxina seguinte',
prev_5: '5 páxinas previas',
next_5: '5 páxinas seguintes',
prev_3: '3 páxinas previas',
next_3: '3 páxinas seguintes',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ עמוד',
jump_to: 'עבור אל',
jump_to_confirm: 'אישור',
page: '',
// Pagination
prev_page: 'העמוד הקודם',
next_page: 'העמוד הבא',
prev_5: '5 עמודים קודמים',
next_5: '5 עמודים הבאים',
prev_3: '3 עמודים קודמים',
next_3: '3 עמודים הבאים',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ पृष्ठ',
jump_to: 'इस पर चलें',
jump_to_confirm: 'पुष्टि करें',
page: '',
// Pagination
prev_page: 'पिछला पृष्ठ',
next_page: 'अगला पृष्ठ',
prev_5: 'पिछले 5 पृष्ठ',
next_5: 'अगले 5 पृष्ठ',
prev_3: 'पिछले 3 पृष्ठ',
next_3: 'अगले 3 पेज',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ str',
jump_to: 'Idi na',
jump_to_confirm: 'potvrdi',
page: '',
// Pagination
prev_page: 'Prijašnja stranica',
next_page: 'Sljedeća stranica',
prev_5: 'Prijašnjih 5 stranica',
next_5: 'Sljedećih 5 stranica',
prev_3: 'Prijašnje 3 stranice',
next_3: 'Sljedeće 3 stranice',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,25 @@
const locale = {
// Options
items_per_page: '/ oldal',
// '/ page',
jump_to: 'Ugrás',
// 'Goto',
jump_to_confirm: 'megerősít',
// 'confirm',
page: '',
// Pagination
prev_page: 'Előző oldal',
// 'Previous Page',
next_page: 'Következő oldal',
// 'Next Page',
prev_5: 'Előző 5 oldal',
// 'Previous 5 Pages',
next_5: 'Következő 5 oldal',
// 'Next 5 Pages',
prev_3: 'Előző 3 oldal',
// 'Previous 3 Pages',
next_3: 'Következő 3 oldal',
// 'Next 3 Pages',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ halaman',
jump_to: 'Menuju',
jump_to_confirm: 'konfirmasi',
page: 'Halaman',
// Pagination
prev_page: 'Halaman Sebelumnya',
next_page: 'Halaman Berikutnya',
prev_5: '5 Halaman Sebelumnya',
next_5: '5 Halaman Berikutnya',
prev_3: '3 Halaman Sebelumnya',
next_3: '3 Halaman Berikutnya',
page_size: 'ukuran halaman'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ síðu',
jump_to: 'Síða',
jump_to_confirm: 'staðfest',
page: '',
// Pagination
prev_page: 'Fyrri síða',
next_page: 'Næsta síða',
prev_5: 'Til baka 5 síður',
next_5: 'Áfram 5 síður',
prev_3: 'Til baka 3 síður',
next_3: 'Áfram 3 síður',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ pagina',
jump_to: 'vai a',
jump_to_confirm: 'Conferma',
page: 'Pagina',
// Pagination
prev_page: 'Pagina precedente',
next_page: 'Pagina successiva',
prev_5: 'Precedente 5 pagine',
next_5: 'Prossime 5 pagine',
prev_3: 'Precedente 3 pagine',
next_3: 'Prossime 3 pagine',
page_size: 'dimensioni della pagina'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '件 / ページ',
jump_to: '移動',
jump_to_confirm: '確認する',
page: 'ページ',
// Pagination
prev_page: '前のページ',
next_page: '次のページ',
prev_5: '前 5ページ',
next_5: '次 5ページ',
prev_3: '前 3ページ',
next_3: '次 3ページ',
page_size: 'ページサイズ'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ გვერდი.',
jump_to: 'გადასვლა',
jump_to_confirm: 'დადასტურება',
page: '',
// Pagination
prev_page: 'წინა გვერდი',
next_page: 'შემდეგი გვერდი',
prev_5: 'წინა 5 გვერდი',
next_5: 'შემდეგი 5 გვერდი',
prev_3: 'წინა 3 გვერდი',
next_3: 'შემდეგი 3 გვერდი',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ бет',
jump_to: 'Секіру',
jump_to_confirm: 'Растау',
page: '',
// Pagination
prev_page: 'Артқа',
next_page: 'Алға',
prev_5: 'Алдыңғы 5',
next_5: 'Келесі 5',
prev_3: 'Алдыңғы 3',
next_3: 'Келесі 3',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ ទំព័រ',
jump_to: 'លោត​ទៅ',
jump_to_confirm: 'បញ្ជាក់',
page: 'ទំព័រ',
// Pagination
prev_page: 'ទំព័រ​មុន',
next_page: 'ទំព័រ​​បន្ទាប់',
prev_5: '៥ ទំព័រថយក្រោយ',
next_5: '៥ ទំព័រទៅមុខ',
prev_3: '៣ ទំព័រថយក្រោយ',
next_3: '៣ ទំព័រទៅមុខ',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ rûpel',
jump_to: 'Biçe',
jump_to_confirm: 'piştrast bike',
page: '',
// Pagination
prev_page: 'Rûpelê Pêş',
next_page: 'Rûpelê Paş',
prev_5: '5 Rûpelên Pêş',
next_5: '5 Rûpelên Paş',
prev_3: '3 Rûpelên Pêş',
next_3: '3 Rûpelên Paş',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ ಪುಟ',
jump_to: 'ಜಿಗಿತವನ್ನು',
jump_to_confirm: 'ಖಚಿತಪಡಿಸಲು ಜಿಗಿತವನ್ನು',
page: '',
// Pagination
prev_page: 'ಹಿಂದಿನ ಪುಟ',
next_page: 'ಮುಂದಿನ ಪುಟ',
prev_5: 'ಹಿಂದಿನ 5 ಪುಟಗಳು',
next_5: 'ಮುಂದಿನ 5 ಪುಟಗಳು',
prev_3: 'ಹಿಂದಿನ 3 ಪುಟಗಳು',
next_3: 'ಮುಂದಿನ 3 ಪುಟಗಳು',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ 페이지',
jump_to: '이동하기',
jump_to_confirm: '확인하다',
page: '페이지',
// Pagination
prev_page: '이전 페이지',
next_page: '다음 페이지',
prev_5: '이전 5 페이지',
next_5: '다음 5 페이지',
prev_3: '이전 3 페이지',
next_3: '다음 3 페이지',
page_size: '페이지 크기'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ psl.',
jump_to: 'Pereiti į',
jump_to_confirm: 'patvirtinti',
page: 'psl.',
// Pagination
prev_page: 'Atgal',
next_page: 'Pirmyn',
prev_5: 'Grįžti 5 psl.',
next_5: 'Peršokti 5 psl.',
prev_3: 'Grįžti 3 psl.',
next_3: 'Peršokti 3 psl.',
page_size: 'Puslapio dydis'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ lappuse',
jump_to: 'iet uz',
jump_to_confirm: 'apstiprināt',
page: '',
// Pagination
prev_page: 'Iepriekšējā lapa',
next_page: 'Nākamā lapaspuse',
prev_5: 'Iepriekšējās 5 lapas',
next_5: 'Nākamās 5 lapas',
prev_3: 'Iepriekšējās 3 lapas',
next_3: 'Nākamās 3 lapas',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ стр',
jump_to: 'Оди на',
jump_to_confirm: 'потврди',
page: '',
// Pagination
prev_page: 'Претходна страница',
next_page: 'Наредна страница',
prev_5: 'Претходни 5 страници',
next_5: 'Наредни 5 страници',
prev_3: 'Претходни 3 страници',
next_3: 'Наредни 3 страници',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ പേജ്',
jump_to: 'അടുത്തത്',
jump_to_confirm: 'ഉറപ്പാക്കുക',
page: '',
// Pagination
prev_page: 'മുൻപുള്ള പേജ്',
next_page: 'അടുത്ത പേജ്',
prev_5: 'മുൻപുള്ള 5 പേജുകൾ',
next_5: 'അടുത്ത 5 പേജുകൾ',
prev_3: 'മുൻപുള്ള 3 പേജുകൾ',
next_3: 'അടുത്ത 3 പേജുകൾ',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ хуудас',
jump_to: 'Шилжих',
jump_to_confirm: 'сонгох',
page: '',
// Pagination
prev_page: 'Өмнөх хуудас',
next_page: 'Дараагийн хуудас',
prev_5: 'Дараагийн 5 хуудас',
next_5: 'Дараагийн 5 хуудас',
prev_3: 'Дараагийн 3 хуудас',
next_3: 'Дараагийн 3 хуудас',
page_size: 'Page Size'
};
export default locale;
@@ -0,0 +1,3 @@
import type { PaginationLocale } from '../interface';
declare const locale: PaginationLocale;
export default locale;
@@ -0,0 +1,16 @@
const locale = {
// Options
items_per_page: '/ पृष्ठ',
jump_to: 'यावर जा ',
jump_to_confirm: 'पुष्टी करा',
page: 'पृष्ठ',
// Pagination
prev_page: 'मागील पृष्ठ',
next_page: 'पुढील पृष्ठ',
prev_5: 'मागील ५ पृष्ठे',
next_5: 'पुढील ५ पृष्ठे',
prev_3: 'मागील ३ पृष्ठे',
next_3: 'पुढील ३ पृष्ठे',
page_size: 'पृष्ठ आकार'
};
export default locale;

Some files were not shown because too many files have changed in this diff Show More