@v-c/pagination 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/LICENSE +21 -0
  2. package/dist/Options.cjs +162 -0
  3. package/dist/Options.d.ts +17 -0
  4. package/dist/Options.js +155 -0
  5. package/dist/Pager.cjs +80 -0
  6. package/dist/Pager.d.ts +14 -0
  7. package/dist/Pager.js +74 -0
  8. package/dist/Pagination.cjs +592 -0
  9. package/dist/Pagination.d.ts +3 -0
  10. package/dist/Pagination.js +582 -0
  11. package/dist/_virtual/rolldown_runtime.cjs +21 -0
  12. package/dist/index.cjs +6 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.js +2 -0
  15. package/dist/interface.cjs +30 -0
  16. package/dist/interface.d.ts +108 -0
  17. package/dist/interface.js +29 -0
  18. package/dist/locale/am.cjs +19 -0
  19. package/dist/locale/am.d.ts +3 -0
  20. package/dist/locale/am.js +14 -0
  21. package/dist/locale/ar_EG.cjs +19 -0
  22. package/dist/locale/ar_EG.d.ts +3 -0
  23. package/dist/locale/ar_EG.js +14 -0
  24. package/dist/locale/az_AZ.cjs +19 -0
  25. package/dist/locale/az_AZ.d.ts +3 -0
  26. package/dist/locale/az_AZ.js +14 -0
  27. package/dist/locale/bg_BG.cjs +19 -0
  28. package/dist/locale/bg_BG.d.ts +3 -0
  29. package/dist/locale/bg_BG.js +14 -0
  30. package/dist/locale/bn_BD.cjs +19 -0
  31. package/dist/locale/bn_BD.d.ts +3 -0
  32. package/dist/locale/bn_BD.js +14 -0
  33. package/dist/locale/by_BY.cjs +19 -0
  34. package/dist/locale/by_BY.d.ts +3 -0
  35. package/dist/locale/by_BY.js +14 -0
  36. package/dist/locale/ca_ES.cjs +19 -0
  37. package/dist/locale/ca_ES.d.ts +3 -0
  38. package/dist/locale/ca_ES.js +14 -0
  39. package/dist/locale/cs_CZ.cjs +19 -0
  40. package/dist/locale/cs_CZ.d.ts +3 -0
  41. package/dist/locale/cs_CZ.js +14 -0
  42. package/dist/locale/da_DK.cjs +19 -0
  43. package/dist/locale/da_DK.d.ts +3 -0
  44. package/dist/locale/da_DK.js +14 -0
  45. package/dist/locale/de_DE.cjs +19 -0
  46. package/dist/locale/de_DE.d.ts +3 -0
  47. package/dist/locale/de_DE.js +14 -0
  48. package/dist/locale/el_GR.cjs +19 -0
  49. package/dist/locale/el_GR.d.ts +3 -0
  50. package/dist/locale/el_GR.js +14 -0
  51. package/dist/locale/en_GB.cjs +19 -0
  52. package/dist/locale/en_GB.d.ts +3 -0
  53. package/dist/locale/en_GB.js +14 -0
  54. package/dist/locale/en_US.cjs +19 -0
  55. package/dist/locale/en_US.d.ts +3 -0
  56. package/dist/locale/en_US.js +14 -0
  57. package/dist/locale/es_ES.cjs +19 -0
  58. package/dist/locale/es_ES.d.ts +3 -0
  59. package/dist/locale/es_ES.js +14 -0
  60. package/dist/locale/et_EE.cjs +19 -0
  61. package/dist/locale/et_EE.d.ts +3 -0
  62. package/dist/locale/et_EE.js +14 -0
  63. package/dist/locale/eu_ES.cjs +19 -0
  64. package/dist/locale/eu_ES.d.ts +3 -0
  65. package/dist/locale/eu_ES.js +14 -0
  66. package/dist/locale/fa_IR.cjs +19 -0
  67. package/dist/locale/fa_IR.d.ts +3 -0
  68. package/dist/locale/fa_IR.js +14 -0
  69. package/dist/locale/fi_FI.cjs +19 -0
  70. package/dist/locale/fi_FI.d.ts +3 -0
  71. package/dist/locale/fi_FI.js +14 -0
  72. package/dist/locale/fr_BE.cjs +19 -0
  73. package/dist/locale/fr_BE.d.ts +3 -0
  74. package/dist/locale/fr_BE.js +14 -0
  75. package/dist/locale/fr_CA.cjs +19 -0
  76. package/dist/locale/fr_CA.d.ts +3 -0
  77. package/dist/locale/fr_CA.js +14 -0
  78. package/dist/locale/fr_FR.cjs +19 -0
  79. package/dist/locale/fr_FR.d.ts +3 -0
  80. package/dist/locale/fr_FR.js +14 -0
  81. package/dist/locale/ga_IE.cjs +19 -0
  82. package/dist/locale/ga_IE.d.ts +3 -0
  83. package/dist/locale/ga_IE.js +14 -0
  84. package/dist/locale/gl_ES.cjs +19 -0
  85. package/dist/locale/gl_ES.d.ts +3 -0
  86. package/dist/locale/gl_ES.js +14 -0
  87. package/dist/locale/he_IL.cjs +19 -0
  88. package/dist/locale/he_IL.d.ts +3 -0
  89. package/dist/locale/he_IL.js +14 -0
  90. package/dist/locale/hi_IN.cjs +19 -0
  91. package/dist/locale/hi_IN.d.ts +3 -0
  92. package/dist/locale/hi_IN.js +14 -0
  93. package/dist/locale/hr_HR.cjs +19 -0
  94. package/dist/locale/hr_HR.d.ts +3 -0
  95. package/dist/locale/hr_HR.js +14 -0
  96. package/dist/locale/hu_HU.cjs +19 -0
  97. package/dist/locale/hu_HU.d.ts +3 -0
  98. package/dist/locale/hu_HU.js +14 -0
  99. package/dist/locale/id_ID.cjs +19 -0
  100. package/dist/locale/id_ID.d.ts +3 -0
  101. package/dist/locale/id_ID.js +14 -0
  102. package/dist/locale/is_IS.cjs +19 -0
  103. package/dist/locale/is_IS.d.ts +3 -0
  104. package/dist/locale/is_IS.js +14 -0
  105. package/dist/locale/it_IT.cjs +19 -0
  106. package/dist/locale/it_IT.d.ts +3 -0
  107. package/dist/locale/it_IT.js +14 -0
  108. package/dist/locale/ja_JP.cjs +19 -0
  109. package/dist/locale/ja_JP.d.ts +3 -0
  110. package/dist/locale/ja_JP.js +14 -0
  111. package/dist/locale/ka_GE.cjs +19 -0
  112. package/dist/locale/ka_GE.d.ts +3 -0
  113. package/dist/locale/ka_GE.js +14 -0
  114. package/dist/locale/kk_KZ.cjs +19 -0
  115. package/dist/locale/kk_KZ.d.ts +3 -0
  116. package/dist/locale/kk_KZ.js +14 -0
  117. package/dist/locale/km_KH.cjs +19 -0
  118. package/dist/locale/km_KH.d.ts +3 -0
  119. package/dist/locale/km_KH.js +14 -0
  120. package/dist/locale/kmr_IQ.cjs +19 -0
  121. package/dist/locale/kmr_IQ.d.ts +3 -0
  122. package/dist/locale/kmr_IQ.js +14 -0
  123. package/dist/locale/kn_IN.cjs +19 -0
  124. package/dist/locale/kn_IN.d.ts +3 -0
  125. package/dist/locale/kn_IN.js +14 -0
  126. package/dist/locale/ko_KR.cjs +19 -0
  127. package/dist/locale/ko_KR.d.ts +3 -0
  128. package/dist/locale/ko_KR.js +14 -0
  129. package/dist/locale/lt_LT.cjs +19 -0
  130. package/dist/locale/lt_LT.d.ts +3 -0
  131. package/dist/locale/lt_LT.js +14 -0
  132. package/dist/locale/lv_LV.cjs +19 -0
  133. package/dist/locale/lv_LV.d.ts +3 -0
  134. package/dist/locale/lv_LV.js +14 -0
  135. package/dist/locale/mk_MK.cjs +19 -0
  136. package/dist/locale/mk_MK.d.ts +3 -0
  137. package/dist/locale/mk_MK.js +14 -0
  138. package/dist/locale/ml_IN.cjs +19 -0
  139. package/dist/locale/ml_IN.d.ts +3 -0
  140. package/dist/locale/ml_IN.js +14 -0
  141. package/dist/locale/mn_MN.cjs +19 -0
  142. package/dist/locale/mn_MN.d.ts +3 -0
  143. package/dist/locale/mn_MN.js +14 -0
  144. package/dist/locale/mr_IN.cjs +19 -0
  145. package/dist/locale/mr_IN.d.ts +3 -0
  146. package/dist/locale/mr_IN.js +14 -0
  147. package/dist/locale/ms_MY.cjs +19 -0
  148. package/dist/locale/ms_MY.d.ts +3 -0
  149. package/dist/locale/ms_MY.js +14 -0
  150. package/dist/locale/my_MM.cjs +19 -0
  151. package/dist/locale/my_MM.d.ts +3 -0
  152. package/dist/locale/my_MM.js +14 -0
  153. package/dist/locale/nb_NO.cjs +18 -0
  154. package/dist/locale/nb_NO.d.ts +3 -0
  155. package/dist/locale/nb_NO.js +13 -0
  156. package/dist/locale/ne_NP.cjs +19 -0
  157. package/dist/locale/ne_NP.d.ts +3 -0
  158. package/dist/locale/ne_NP.js +14 -0
  159. package/dist/locale/nl_BE.cjs +19 -0
  160. package/dist/locale/nl_BE.d.ts +3 -0
  161. package/dist/locale/nl_BE.js +14 -0
  162. package/dist/locale/nl_NL.cjs +19 -0
  163. package/dist/locale/nl_NL.d.ts +3 -0
  164. package/dist/locale/nl_NL.js +14 -0
  165. package/dist/locale/pa_IN.cjs +19 -0
  166. package/dist/locale/pa_IN.d.ts +3 -0
  167. package/dist/locale/pa_IN.js +14 -0
  168. package/dist/locale/pb_IN.cjs +19 -0
  169. package/dist/locale/pb_IN.d.ts +3 -0
  170. package/dist/locale/pb_IN.js +14 -0
  171. package/dist/locale/pl_PL.cjs +19 -0
  172. package/dist/locale/pl_PL.d.ts +3 -0
  173. package/dist/locale/pl_PL.js +14 -0
  174. package/dist/locale/pt_BR.cjs +19 -0
  175. package/dist/locale/pt_BR.d.ts +3 -0
  176. package/dist/locale/pt_BR.js +14 -0
  177. package/dist/locale/pt_PT.cjs +19 -0
  178. package/dist/locale/pt_PT.d.ts +3 -0
  179. package/dist/locale/pt_PT.js +14 -0
  180. package/dist/locale/ro_RO.cjs +19 -0
  181. package/dist/locale/ro_RO.d.ts +3 -0
  182. package/dist/locale/ro_RO.js +14 -0
  183. package/dist/locale/ru_RU.cjs +19 -0
  184. package/dist/locale/ru_RU.d.ts +3 -0
  185. package/dist/locale/ru_RU.js +14 -0
  186. package/dist/locale/si_LK.cjs +19 -0
  187. package/dist/locale/si_LK.d.ts +3 -0
  188. package/dist/locale/si_LK.js +14 -0
  189. package/dist/locale/sk_SK.cjs +19 -0
  190. package/dist/locale/sk_SK.d.ts +3 -0
  191. package/dist/locale/sk_SK.js +14 -0
  192. package/dist/locale/sl_SI.cjs +19 -0
  193. package/dist/locale/sl_SI.d.ts +3 -0
  194. package/dist/locale/sl_SI.js +14 -0
  195. package/dist/locale/sr_Cyrl_RS.cjs +18 -0
  196. package/dist/locale/sr_Cyrl_RS.d.ts +3 -0
  197. package/dist/locale/sr_Cyrl_RS.js +13 -0
  198. package/dist/locale/sr_RS.cjs +18 -0
  199. package/dist/locale/sr_RS.d.ts +3 -0
  200. package/dist/locale/sr_RS.js +13 -0
  201. package/dist/locale/sv_SE.cjs +19 -0
  202. package/dist/locale/sv_SE.d.ts +3 -0
  203. package/dist/locale/sv_SE.js +14 -0
  204. package/dist/locale/ta_IN.cjs +19 -0
  205. package/dist/locale/ta_IN.d.ts +3 -0
  206. package/dist/locale/ta_IN.js +14 -0
  207. package/dist/locale/te_IN.cjs +19 -0
  208. package/dist/locale/te_IN.d.ts +3 -0
  209. package/dist/locale/te_IN.js +14 -0
  210. package/dist/locale/th_TH.cjs +19 -0
  211. package/dist/locale/th_TH.d.ts +3 -0
  212. package/dist/locale/th_TH.js +14 -0
  213. package/dist/locale/tk_TK.cjs +19 -0
  214. package/dist/locale/tk_TK.d.ts +3 -0
  215. package/dist/locale/tk_TK.js +14 -0
  216. package/dist/locale/tr_TR.cjs +19 -0
  217. package/dist/locale/tr_TR.d.ts +3 -0
  218. package/dist/locale/tr_TR.js +14 -0
  219. package/dist/locale/ug_CN.cjs +19 -0
  220. package/dist/locale/ug_CN.d.ts +3 -0
  221. package/dist/locale/ug_CN.js +14 -0
  222. package/dist/locale/uk_UA.cjs +19 -0
  223. package/dist/locale/uk_UA.d.ts +3 -0
  224. package/dist/locale/uk_UA.js +14 -0
  225. package/dist/locale/ur_PK.cjs +19 -0
  226. package/dist/locale/ur_PK.d.ts +3 -0
  227. package/dist/locale/ur_PK.js +14 -0
  228. package/dist/locale/uz_UZ.cjs +19 -0
  229. package/dist/locale/uz_UZ.d.ts +3 -0
  230. package/dist/locale/uz_UZ.js +14 -0
  231. package/dist/locale/vi_VN.cjs +19 -0
  232. package/dist/locale/vi_VN.d.ts +3 -0
  233. package/dist/locale/vi_VN.js +14 -0
  234. package/dist/locale/zh_CN.cjs +19 -0
  235. package/dist/locale/zh_CN.d.ts +3 -0
  236. package/dist/locale/zh_CN.js +14 -0
  237. package/dist/locale/zh_TW.cjs +19 -0
  238. package/dist/locale/zh_TW.d.ts +3 -0
  239. package/dist/locale/zh_TW.js +14 -0
  240. package/package.json +55 -0
@@ -0,0 +1,592 @@
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_rolldown_runtime = require("./_virtual/rolldown_runtime.cjs");
6
+ const require_Options = require("./Options.cjs");
7
+ const require_Pager = require("./Pager.cjs");
8
+ const require_zh_CN = require("./locale/zh_CN.cjs");
9
+ let vue = require("vue");
10
+ let _v_c_util_dist_KeyCode = require("@v-c/util/dist/KeyCode");
11
+ _v_c_util_dist_KeyCode = require_rolldown_runtime.__toESM(_v_c_util_dist_KeyCode);
12
+ let _v_c_util = require("@v-c/util");
13
+ let _v_c_util_dist_hooks_useMergedState = require("@v-c/util/dist/hooks/useMergedState");
14
+ _v_c_util_dist_hooks_useMergedState = require_rolldown_runtime.__toESM(_v_c_util_dist_hooks_useMergedState);
15
+ let _v_c_util_dist_pickAttrs = require("@v-c/util/dist/pickAttrs");
16
+ _v_c_util_dist_pickAttrs = require_rolldown_runtime.__toESM(_v_c_util_dist_pickAttrs);
17
+ let _v_c_util_dist_props_util = require("@v-c/util/dist/props-util");
18
+ let _v_c_util_dist_vnode = require("@v-c/util/dist/vnode");
19
+ let _v_c_util_dist_warning = require("@v-c/util/dist/warning");
20
+ _v_c_util_dist_warning = require_rolldown_runtime.__toESM(_v_c_util_dist_warning);
21
+ function isInteger(v) {
22
+ const value = Number(v);
23
+ return typeof value === "number" && !Number.isNaN(value) && isFinite(value) && Math.floor(value) === value;
24
+ }
25
+ var defaultItemRender = (_page, _type, element) => element;
26
+ function calculatePage(p, pageSize, total) {
27
+ const _pageSize = typeof p === "undefined" ? pageSize : p;
28
+ return Math.floor((total - 1) / _pageSize) + 1;
29
+ }
30
+ var paginationDefaults = {
31
+ prefixCls: "vc-pagination",
32
+ selectPrefixCls: "vc-select",
33
+ defaultCurrent: 1,
34
+ total: 0,
35
+ defaultPageSize: 10,
36
+ showPrevNextJumpers: true,
37
+ showTitle: true,
38
+ locale: require_zh_CN.default,
39
+ totalBoundaryShowSizeChanger: 50
40
+ };
41
+ var Pagination = /* @__PURE__ */ (0, vue.defineComponent)((props, { attrs }) => {
42
+ const paginationRef = (0, vue.ref)();
43
+ const mergedPrefixCls = (0, vue.computed)(() => props.prefixCls ?? paginationDefaults.prefixCls);
44
+ const mergedSelectPrefixCls = (0, vue.computed)(() => props.selectPrefixCls ?? paginationDefaults.selectPrefixCls);
45
+ const mergedLocale = (0, vue.computed)(() => props.locale ?? paginationDefaults.locale);
46
+ const mergedTotal = (0, vue.computed)(() => props.total ?? paginationDefaults.total);
47
+ const mergedShowPrevNextJumpers = (0, vue.computed)(() => props.showPrevNextJumpers ?? paginationDefaults.showPrevNextJumpers);
48
+ const mergedShowTitle = (0, vue.computed)(() => props.showTitle ?? paginationDefaults.showTitle);
49
+ const mergedTotalBoundaryShowSizeChanger = (0, vue.computed)(() => props.totalBoundaryShowSizeChanger ?? paginationDefaults.totalBoundaryShowSizeChanger);
50
+ const pageSizeProp = (0, vue.toRef)(props, "pageSize");
51
+ const [pageSize, setPageSize] = (0, _v_c_util_dist_hooks_useMergedState.default)(paginationDefaults.defaultPageSize, {
52
+ value: pageSizeProp,
53
+ defaultValue: props.defaultPageSize ?? paginationDefaults.defaultPageSize
54
+ });
55
+ const currentProp = (0, vue.toRef)(props, "current");
56
+ const allPages = (0, vue.computed)(() => calculatePage(void 0, pageSize.value, mergedTotal.value));
57
+ const [current, setCurrent] = (0, _v_c_util_dist_hooks_useMergedState.default)(paginationDefaults.defaultCurrent, {
58
+ value: currentProp,
59
+ defaultValue: props.defaultCurrent ?? paginationDefaults.defaultCurrent,
60
+ postState: (c) => Math.max(1, Math.min(c ?? 1, calculatePage(void 0, pageSize.value, mergedTotal.value)))
61
+ });
62
+ const internalInputVal = (0, vue.ref)(current.value);
63
+ (0, vue.watchEffect)(() => {
64
+ internalInputVal.value = current.value;
65
+ });
66
+ if (process.env.NODE_ENV !== "production") (0, vue.watchEffect)(() => {
67
+ (0, _v_c_util_dist_warning.default)(props?.current !== void 0 ? !!props.onChange : true, "You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");
68
+ });
69
+ function getValidValue(e) {
70
+ const inputValue = e.target.value;
71
+ const allPages$1 = calculatePage(void 0, pageSize.value, mergedTotal.value);
72
+ let value;
73
+ if (inputValue === "") value = inputValue;
74
+ else if (Number.isNaN(Number(inputValue))) value = internalInputVal.value;
75
+ else if (inputValue >= allPages$1) value = allPages$1;
76
+ else value = Number(inputValue);
77
+ return value;
78
+ }
79
+ function isValid(page) {
80
+ return isInteger(page) && page !== current.value && isInteger(mergedTotal.value) && mergedTotal.value > 0;
81
+ }
82
+ function getItemIcon(icon, label) {
83
+ const prefixCls = mergedPrefixCls.value;
84
+ let iconNode = icon || (0, vue.createVNode)("button", {
85
+ "type": "button",
86
+ "aria-label": label,
87
+ "class": `${prefixCls}-item-link`
88
+ }, null);
89
+ if (typeof icon === "function") iconNode = (0, vue.h)(icon, { ...props });
90
+ return iconNode;
91
+ }
92
+ const prevPage = (0, vue.computed)(() => current.value - 1 > 0 ? current.value - 1 : 0);
93
+ const nextPage = (0, vue.computed)(() => current.value + 1 < allPages.value ? current.value + 1 : allPages.value);
94
+ const jumpPrevPage = (0, vue.computed)(() => Math.max(1, current.value - (props.showLessItems ? 3 : 5)));
95
+ const jumpNextPage = (0, vue.computed)(() => Math.min(calculatePage(void 0, pageSize.value, mergedTotal.value), current.value + (props.showLessItems ? 3 : 5)));
96
+ const hasPrev = (0, vue.computed)(() => current.value > 1);
97
+ const hasNext = (0, vue.computed)(() => current.value < calculatePage(void 0, pageSize.value, mergedTotal.value));
98
+ const goButton = (0, vue.computed)(() => props.showQuickJumper && props.showQuickJumper.goButton);
99
+ function handleChange(page) {
100
+ if (typeof page !== "undefined" && isValid(page) && !props.disabled) {
101
+ const currentPage = calculatePage(void 0, pageSize.value, mergedTotal.value);
102
+ let newPage = page;
103
+ if (page > currentPage) newPage = currentPage;
104
+ else if (page < 1) newPage = 1;
105
+ if (newPage !== internalInputVal.value) internalInputVal.value = newPage;
106
+ setCurrent(newPage);
107
+ props.onChange?.(newPage, pageSize.value);
108
+ return newPage;
109
+ }
110
+ return current.value;
111
+ }
112
+ function prevHandle() {
113
+ if (hasPrev.value) handleChange(current.value - 1);
114
+ }
115
+ function nextHandle() {
116
+ if (hasNext.value) handleChange(current.value + 1);
117
+ }
118
+ function jumpPrevHandle() {
119
+ handleChange(jumpPrevPage.value);
120
+ }
121
+ function jumpNextHandle() {
122
+ handleChange(jumpNextPage.value);
123
+ }
124
+ function runIfEnter(event, callback, ...restParams) {
125
+ if (event.key === "Enter" || event.charCode === _v_c_util_dist_KeyCode.default.ENTER || event.keyCode === _v_c_util_dist_KeyCode.default.ENTER) callback(...restParams);
126
+ }
127
+ function runIfEnterPrev(event) {
128
+ runIfEnter(event, prevHandle);
129
+ }
130
+ function runIfEnterNext(event) {
131
+ runIfEnter(event, nextHandle);
132
+ }
133
+ function runIfEnterJumpPrev(event) {
134
+ runIfEnter(event, jumpPrevHandle);
135
+ }
136
+ function runIfEnterJumpNext(event) {
137
+ runIfEnter(event, jumpNextHandle);
138
+ }
139
+ function renderPrev(prevPage$1) {
140
+ const prevButton = (props.itemRender || defaultItemRender)?.(prevPage$1, "prev", getItemIcon(props.prevIcon, "prev page"));
141
+ const nextProps = {};
142
+ if (!hasPrev.value) nextProps.disabled = true;
143
+ return (0, vue.isVNode)(prevButton) ? (0, _v_c_util_dist_vnode.cloneElement)(prevButton, nextProps) : prevButton;
144
+ }
145
+ function renderNext(nextPage$1) {
146
+ const nextButton = (props.itemRender || defaultItemRender)?.(nextPage$1, "next", getItemIcon(props.nextIcon, "next page"));
147
+ const nextProps = {};
148
+ if (!hasNext.value) nextProps.disabled = true;
149
+ return (0, vue.isVNode)(nextButton) ? (0, _v_c_util_dist_vnode.cloneElement)(nextButton, nextProps) : nextButton;
150
+ }
151
+ function handleGoTO(event) {
152
+ if (event.type === "click" || event.keyCode === _v_c_util_dist_KeyCode.default.ENTER) handleChange(internalInputVal.value);
153
+ }
154
+ function handleKeyDown(event) {
155
+ if (event.keyCode === _v_c_util_dist_KeyCode.default.UP || event.keyCode === _v_c_util_dist_KeyCode.default.DOWN) event.preventDefault();
156
+ }
157
+ function handleKeyUp(event) {
158
+ const value = getValidValue(event);
159
+ if (value !== internalInputVal.value) internalInputVal.value = value;
160
+ switch (event.keyCode) {
161
+ case _v_c_util_dist_KeyCode.default.ENTER:
162
+ handleChange(value);
163
+ break;
164
+ case _v_c_util_dist_KeyCode.default.UP:
165
+ handleChange(value - 1);
166
+ break;
167
+ case _v_c_util_dist_KeyCode.default.DOWN:
168
+ handleChange(value + 1);
169
+ break;
170
+ default: break;
171
+ }
172
+ }
173
+ function handleBlur(event) {
174
+ handleChange(getValidValue(event));
175
+ }
176
+ function changePageSize(size) {
177
+ const newCurrent = calculatePage(size, pageSize.value, mergedTotal.value);
178
+ const nextCurrent = current.value > newCurrent && newCurrent !== 0 ? newCurrent : current.value;
179
+ setPageSize(size);
180
+ internalInputVal.value = nextCurrent;
181
+ props.onShowSizeChange?.(current.value, size);
182
+ setCurrent(nextCurrent);
183
+ props.onChange?.(nextCurrent, size);
184
+ }
185
+ const shouldDisplayQuickJumper = (0, vue.computed)(() => mergedTotal.value > pageSize.value ? props.showQuickJumper : false);
186
+ return () => {
187
+ const { align, simple, showTotal, showLessItems, jumpPrevIcon, jumpNextIcon, pageSizeOptions, disabled, classNames: paginationClassNames, styles, hideOnSinglePage, sizeChangerRender, showSizeChanger: showSizeChangerProp, totalBoundaryShowSizeChanger, itemRender } = props;
188
+ const prefixCls = mergedPrefixCls.value;
189
+ const selectPrefixCls = mergedSelectPrefixCls.value;
190
+ const locale = mergedLocale.value;
191
+ const total = mergedTotal.value;
192
+ const showTitle = mergedShowTitle.value;
193
+ const showPrevNextJumpers = mergedShowPrevNextJumpers.value;
194
+ const totalBoundary = totalBoundaryShowSizeChanger ?? mergedTotalBoundaryShowSizeChanger.value;
195
+ const showSizeChanger = showSizeChangerProp ?? total > totalBoundary;
196
+ const mergedItemRender = itemRender || defaultItemRender;
197
+ const { style, className } = (0, _v_c_util_dist_props_util.getAttrStyleAndClass)(attrs);
198
+ const dataOrAriaAttributeProps = (0, _v_c_util_dist_pickAttrs.default)(attrs, {
199
+ aria: true,
200
+ data: true
201
+ });
202
+ if (hideOnSinglePage && total <= pageSize.value) return null;
203
+ const itemClassName = paginationClassNames?.item;
204
+ const itemStyle = styles?.item;
205
+ let prev = renderPrev(prevPage.value);
206
+ if (prev) {
207
+ const prevDisabled = !hasPrev.value || !allPages.value;
208
+ (function() {
209
+ return prev;
210
+ })();
211
+ prev = (0, vue.createVNode)("li", {
212
+ "title": showTitle ? locale?.prev_page : void 0,
213
+ "onClick": prevHandle,
214
+ "tabindex": prevDisabled ? void 0 : 0,
215
+ "onKeydown": runIfEnterPrev,
216
+ "class": (0, _v_c_util.classNames)(`${prefixCls}-prev`, itemClassName, { [`${prefixCls}-disabled`]: prevDisabled }),
217
+ "style": itemStyle,
218
+ "aria-disabled": prevDisabled
219
+ }, [prev]);
220
+ }
221
+ let next = renderNext(nextPage.value);
222
+ if (next) {
223
+ let nextDisabled, nextTabIndex;
224
+ if (simple) {
225
+ nextDisabled = !hasNext.value;
226
+ nextTabIndex = hasPrev.value ? 0 : null;
227
+ } else {
228
+ nextDisabled = !hasNext.value || !allPages.value;
229
+ nextTabIndex = nextDisabled ? null : 0;
230
+ }
231
+ (function() {
232
+ return next;
233
+ })();
234
+ next = (0, vue.createVNode)("li", {
235
+ "title": showTitle ? locale?.next_page : void 0,
236
+ "onClick": nextHandle,
237
+ "tabindex": nextTabIndex ?? void 0,
238
+ "onKeydown": runIfEnterNext,
239
+ "class": (0, _v_c_util.classNames)(`${prefixCls}-next`, itemClassName, { [`${prefixCls}-disabled`]: nextDisabled }),
240
+ "style": itemStyle,
241
+ "aria-disabled": nextDisabled
242
+ }, [next]);
243
+ }
244
+ const totalText = showTotal && (0, vue.createVNode)("li", { "class": `${prefixCls}-total-text` }, [showTotal(total, [total === 0 ? 0 : (current.value - 1) * pageSize.value + 1, current.value * pageSize.value > total ? total : current.value * pageSize.value])]);
245
+ const isReadOnly = typeof simple === "object" ? simple.readOnly : !simple;
246
+ let gotoButton = goButton.value;
247
+ let simplePager = null;
248
+ if (simple) {
249
+ if (goButton.value) {
250
+ if (typeof goButton.value === "boolean") gotoButton = (0, vue.createVNode)("button", {
251
+ "type": "button",
252
+ "onClick": handleGoTO,
253
+ "onKeyup": handleGoTO
254
+ }, [locale?.jump_to_confirm]);
255
+ else gotoButton = (0, vue.createVNode)("span", {
256
+ "onClick": handleGoTO,
257
+ "onKeyup": handleGoTO
258
+ }, [goButton.value]);
259
+ (function() {
260
+ return gotoButton;
261
+ })();
262
+ gotoButton = (0, vue.createVNode)("li", {
263
+ "title": showTitle ? `${locale?.jump_to}${current.value}/${allPages.value}` : void 0,
264
+ "class": `${prefixCls}-simple-pager`
265
+ }, [gotoButton]);
266
+ }
267
+ simplePager = (0, vue.createVNode)("li", {
268
+ "title": showTitle ? `${current.value}/${allPages.value}` : void 0,
269
+ "class": (0, _v_c_util.classNames)(`${prefixCls}-simple-pager`, itemClassName),
270
+ "style": itemStyle
271
+ }, [
272
+ isReadOnly ? internalInputVal.value : (0, vue.createVNode)("input", {
273
+ "type": "text",
274
+ "aria-label": locale?.jump_to,
275
+ "value": internalInputVal.value,
276
+ "disabled": disabled,
277
+ "onKeydown": handleKeyDown,
278
+ "onKeyup": handleKeyUp,
279
+ "onChange": handleKeyUp,
280
+ "onBlur": handleBlur,
281
+ "size": 3
282
+ }, null),
283
+ (0, vue.createVNode)("span", { "class": `${prefixCls}-slash` }, [(0, vue.createTextVNode)("/")]),
284
+ allPages.value
285
+ ]);
286
+ }
287
+ const pagerProps = {
288
+ rootPrefixCls: prefixCls,
289
+ onClick: handleChange,
290
+ onKeyPress: runIfEnter,
291
+ showTitle,
292
+ itemRender: mergedItemRender,
293
+ page: -1,
294
+ className: itemClassName,
295
+ style: itemStyle
296
+ };
297
+ const pagerList = [];
298
+ const pageBufferSize = showLessItems ? 1 : 2;
299
+ if (allPages.value <= 3 + pageBufferSize * 2) {
300
+ if (!allPages.value) pagerList.push((0, vue.createVNode)(require_Pager.default, (0, vue.mergeProps)(pagerProps, {
301
+ "key": "noPager",
302
+ "page": 1,
303
+ "className": `${prefixCls}-item-disabled`
304
+ }), null));
305
+ for (let i = 1; i <= allPages.value; i += 1) pagerList.push((0, vue.createVNode)(require_Pager.default, (0, vue.mergeProps)(pagerProps, {
306
+ "key": i,
307
+ "page": i,
308
+ "active": current.value === i
309
+ }), null));
310
+ } else {
311
+ const prevItemTitle = showLessItems ? locale?.prev_3 : locale?.prev_5;
312
+ const nextItemTitle = showLessItems ? locale?.next_3 : locale?.next_5;
313
+ const jumpPrevContent = mergedItemRender(jumpPrevPage.value, "jump-prev", getItemIcon(jumpPrevIcon, "prev page"));
314
+ const jumpNextContent = mergedItemRender(jumpNextPage.value, "jump-next", getItemIcon(jumpNextIcon, "next page"));
315
+ let jumpPrev = null;
316
+ let jumpNext = null;
317
+ if (showPrevNextJumpers) {
318
+ jumpPrev = jumpPrevContent ? (0, vue.createVNode)("li", {
319
+ "title": showTitle ? prevItemTitle : void 0,
320
+ "key": "prev",
321
+ "onClick": jumpPrevHandle,
322
+ "tabindex": 0,
323
+ "onKeydown": runIfEnterJumpPrev,
324
+ "class": (0, _v_c_util.classNames)(`${prefixCls}-jump-prev`, { [`${prefixCls}-jump-prev-custom-icon`]: !!jumpPrevIcon })
325
+ }, [jumpPrevContent]) : null;
326
+ jumpNext = jumpNextContent ? (0, vue.createVNode)("li", {
327
+ "title": showTitle ? nextItemTitle : void 0,
328
+ "key": "next",
329
+ "onClick": jumpNextHandle,
330
+ "tabindex": 0,
331
+ "onKeydown": runIfEnterJumpNext,
332
+ "class": (0, _v_c_util.classNames)(`${prefixCls}-jump-next`, { [`${prefixCls}-jump-next-custom-icon`]: !!jumpNextIcon })
333
+ }, [jumpNextContent]) : null;
334
+ }
335
+ let left = Math.max(1, current.value - pageBufferSize);
336
+ let right = Math.min(current.value + pageBufferSize, allPages.value);
337
+ if (current.value - 1 <= pageBufferSize) right = 1 + pageBufferSize * 2;
338
+ if (allPages.value - current.value <= pageBufferSize) left = allPages.value - pageBufferSize * 2;
339
+ for (let i = left; i <= right; i += 1) pagerList.push((0, vue.createVNode)(require_Pager.default, (0, vue.mergeProps)(pagerProps, {
340
+ "key": i,
341
+ "page": i,
342
+ "active": current.value === i
343
+ }), null));
344
+ if (current.value - 1 >= pageBufferSize * 2 && current.value !== 3) {
345
+ if (pagerList[0]) pagerList[0] = (0, _v_c_util_dist_vnode.cloneElement)(pagerList[0], { className: (0, _v_c_util.classNames)(`${prefixCls}-item-after-jump-prev`, pagerList[0].props?.className) });
346
+ pagerList.unshift(jumpPrev);
347
+ }
348
+ if (allPages.value - current.value >= pageBufferSize * 2 && current.value !== allPages.value - 2) {
349
+ const lastOne = pagerList[pagerList.length - 1];
350
+ if (lastOne) pagerList[pagerList.length - 1] = (0, _v_c_util_dist_vnode.cloneElement)(lastOne, { className: (0, _v_c_util.classNames)(`${prefixCls}-item-before-jump-next`, lastOne.props?.className) });
351
+ pagerList.push(jumpNext);
352
+ }
353
+ if (left !== 1) pagerList.unshift((0, vue.createVNode)(require_Pager.default, (0, vue.mergeProps)(pagerProps, {
354
+ "key": 1,
355
+ "page": 1
356
+ }), null));
357
+ if (right !== allPages.value) pagerList.push((0, vue.createVNode)(require_Pager.default, (0, vue.mergeProps)(pagerProps, {
358
+ "key": allPages.value,
359
+ "page": allPages.value
360
+ }), null));
361
+ }
362
+ const cls = (0, _v_c_util.classNames)(prefixCls, props.className, className, {
363
+ [`${prefixCls}-start`]: align === "start",
364
+ [`${prefixCls}-center`]: align === "center",
365
+ [`${prefixCls}-end`]: align === "end",
366
+ [`${prefixCls}-simple`]: simple,
367
+ [`${prefixCls}-disabled`]: disabled
368
+ });
369
+ return (0, vue.createVNode)("ul", (0, vue.mergeProps)({
370
+ "ref": paginationRef,
371
+ "class": cls,
372
+ "style": style
373
+ }, dataOrAriaAttributeProps), [
374
+ totalText,
375
+ prev,
376
+ simple ? simplePager : pagerList,
377
+ next,
378
+ (0, vue.createVNode)(require_Options.default, {
379
+ "locale": locale,
380
+ "rootPrefixCls": prefixCls,
381
+ "disabled": disabled,
382
+ "selectPrefixCls": selectPrefixCls,
383
+ "changeSize": changePageSize,
384
+ "pageSizeOptions": pageSizeOptions,
385
+ "pageSize": pageSize.value,
386
+ "quickGo": shouldDisplayQuickJumper.value ? handleChange : void 0,
387
+ "goButton": gotoButton,
388
+ "showSizeChanger": showSizeChanger,
389
+ "sizeChangerRender": sizeChangerRender
390
+ }, null)
391
+ ]);
392
+ };
393
+ }, {
394
+ props: {
395
+ onChange: {
396
+ type: Function,
397
+ required: false,
398
+ default: void 0
399
+ },
400
+ onShowSizeChange: {
401
+ type: Function,
402
+ required: false,
403
+ default: void 0
404
+ },
405
+ itemRender: {
406
+ type: Function,
407
+ required: false,
408
+ default: void 0
409
+ },
410
+ showTotal: {
411
+ type: Function,
412
+ required: false,
413
+ default: void 0
414
+ },
415
+ role: {
416
+ type: [String, null],
417
+ required: false,
418
+ default: void 0
419
+ },
420
+ styles: {
421
+ type: Object,
422
+ required: false,
423
+ default: void 0
424
+ },
425
+ classNames: {
426
+ type: Object,
427
+ required: false,
428
+ default: void 0
429
+ },
430
+ className: {
431
+ type: String,
432
+ required: false,
433
+ default: void 0
434
+ },
435
+ selectPrefixCls: {
436
+ type: String,
437
+ required: false,
438
+ default: void 0
439
+ },
440
+ prefixCls: {
441
+ type: String,
442
+ required: false,
443
+ default: void 0
444
+ },
445
+ pageSizeOptions: {
446
+ type: Array,
447
+ required: false,
448
+ default: void 0
449
+ },
450
+ current: {
451
+ type: Number,
452
+ required: false,
453
+ default: void 0
454
+ },
455
+ defaultCurrent: {
456
+ type: Number,
457
+ required: false,
458
+ default: void 0
459
+ },
460
+ total: {
461
+ type: Number,
462
+ required: false,
463
+ default: void 0
464
+ },
465
+ totalBoundaryShowSizeChanger: {
466
+ type: Number,
467
+ required: false,
468
+ default: void 0
469
+ },
470
+ pageSize: {
471
+ type: Number,
472
+ required: false,
473
+ default: void 0
474
+ },
475
+ defaultPageSize: {
476
+ type: Number,
477
+ required: false,
478
+ default: void 0
479
+ },
480
+ hideOnSinglePage: {
481
+ type: Boolean,
482
+ required: false,
483
+ default: void 0
484
+ },
485
+ align: {
486
+ type: String,
487
+ required: false,
488
+ default: void 0
489
+ },
490
+ showSizeChanger: {
491
+ type: Boolean,
492
+ required: false,
493
+ default: void 0
494
+ },
495
+ sizeChangerRender: {
496
+ type: Function,
497
+ required: false,
498
+ default: void 0
499
+ },
500
+ showLessItems: {
501
+ type: Boolean,
502
+ required: false,
503
+ default: void 0
504
+ },
505
+ showPrevNextJumpers: {
506
+ type: Boolean,
507
+ required: false,
508
+ default: void 0
509
+ },
510
+ showQuickJumper: {
511
+ type: [Boolean, Object],
512
+ required: false,
513
+ default: void 0
514
+ },
515
+ showTitle: {
516
+ type: Boolean,
517
+ required: false,
518
+ default: void 0
519
+ },
520
+ simple: {
521
+ type: [Boolean, Object],
522
+ required: false,
523
+ default: void 0
524
+ },
525
+ disabled: {
526
+ type: Boolean,
527
+ required: false,
528
+ default: void 0
529
+ },
530
+ locale: {
531
+ type: Object,
532
+ required: false,
533
+ default: void 0
534
+ },
535
+ prevIcon: {
536
+ type: [
537
+ Object,
538
+ Function,
539
+ String,
540
+ Number,
541
+ null,
542
+ Boolean,
543
+ Array
544
+ ],
545
+ required: false,
546
+ default: void 0
547
+ },
548
+ nextIcon: {
549
+ type: [
550
+ Object,
551
+ Function,
552
+ String,
553
+ Number,
554
+ null,
555
+ Boolean,
556
+ Array
557
+ ],
558
+ required: false,
559
+ default: void 0
560
+ },
561
+ jumpPrevIcon: {
562
+ type: [
563
+ Object,
564
+ Function,
565
+ String,
566
+ Number,
567
+ null,
568
+ Boolean,
569
+ Array
570
+ ],
571
+ required: false,
572
+ default: void 0
573
+ },
574
+ jumpNextIcon: {
575
+ type: [
576
+ Object,
577
+ Function,
578
+ String,
579
+ Number,
580
+ null,
581
+ Boolean,
582
+ Array
583
+ ],
584
+ required: false,
585
+ default: void 0
586
+ }
587
+ },
588
+ name: "VCPagination",
589
+ inheritAttrs: false
590
+ });
591
+ var Pagination_default = Pagination;
592
+ exports.default = Pagination_default;
@@ -0,0 +1,3 @@
1
+ import { PaginationProps } from './interface';
2
+ declare const Pagination: import('vue').DefineSetupFnComponent<PaginationProps, {}, {}, PaginationProps & {}, import('vue').PublicProps>;
3
+ export default Pagination;